•  Back 
  •  Nachrichten-Liste 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : TOS - das Betriebssystem
Author      : 
Version     : tos.hyp (5. März 2013)
Subject     : Programmieren/Atari
Nodes       : 3001
Index Size  : 93602
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Titel
@help       : 
@options    : +g -i -s +x +zz -t4
@width      : 70
View Ref-File8.7.9.1  Das CAB-Protokoll                                         TOS

Das CAB-Protokoll besteht aus einer Reihe von AES-Messages mit deren 
Hilfe beliebige GEM-Programme bestimmte Aufgaben an CAB übertragen 
können, bzw. bestimmte Aktionen mit CAB koordinieren können.

Der Inhalt der Environment-Variablen BROWSER= (sofern definiert) 
enthält den Zugriffspfad von CAB. Sollte sich CAB nicht im Speicher 
befinden kann ein Programm über diese Variable CAB selbst nachstarten.

Eine mögliche Anwendung: Falls man im Internet weitere aktuelle 
Informationen oder Updates zu eigenen Programmen anbietet, könnte man 
mit dem CAB-Protokoll ohne großen Aufwand den Zugriff auf diese 
Informationen aus diesen Programmen heraus ermöglichen. CAB erledigt 
dann den Download der Daten und die Darstellung.

Die Beschreibung der Messages

CAB_HELLO (0xCAB8) (Nachricht von CAB)
CAB verschickt nach seinem Start an alle laufenden Programme diese 
Nachricht

msg[0] = 0xCAB8
msg[1] = Id von CAB
msg[2] = 0
msg[3] = Version des CAB-Protokolls (0x0100 entspricht V1.00)
msg[4] = Bitvektor mit den von CAB (CAB.OVL) unterstützten Internet-
         Protokollen
             Bit 0: HTTP
             Bit 1: FTP
             Bit 2: GOPHER
             Bit 3: WAIS
             Bit 4: MAILTO
             Bit 5: NNTP
             Bit 6: TELNET
             Bit 7-15: 0 (reserviert)
msg[5] = Bitvektor mit den von CAB unterstützten Nachrichten des
         CAB-Protokolls.
             Bit 0: CAB_VIEW
             Bit 1: CAB_MAIL, CAB_MAILSENT
             Bit 2: CAB_REQUESTSTATUS, CAB_RELEASESTATUS, CAB_STATUS,
                    CAB_EXIT
             Bit 3-15: 0 (reserviert)
msg[6] = 0
msg[7] = 0

CAB_SUPPORT (0xCABB) (Nachricht an CAB)
Wird diese Nachricht an CAB geschickt, sendet CAB die Nachricht 
CAB_HELLO zurück. Bleibt CAB_HELLO aus, wird noch eine alte Version 
von CAB benutzt welche das CAB-Protokoll noch nicht unterstützt. Alle 
Programme, die an den Informationen interessiert sind, die CAB_HELLO 
liefert, sollten nach dem Start CAB_SUPPORT an CAB senden. Wird CAB 
erst später gestartet, wird CAB_HELLO automatisch an das Programm 
geschickt.

msg[0] = 0xCABB
msg[1] = Id des PRGs
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0

CAB_VIEW (0xCAB3) (Nachricht an CAB)
Ähnlich wie VA_START aber statt eines Dateinamens wird eine URL 
übergeben. CAB zeigt diese Datei dann an.

msg[0] = 0xCAB3
msg[1] = Id des PRGs
msg[2] = 0
msg[3] = \ Zeiger auf die URL
msg[4] = /
msg[5] = Wenn hier 1 eingetragen wurde, stellt CAB die URL in einem neuen
         Fenster dar, wenn 0 eingetragen wurde wird das oberste CAB-
         Fenster benutzt.
msg[6] = 0
msg[7] = 0

CAB_REQUESTSTATUS (0xCAB5) (Nachricht an CAB)
Kann an CAB geschickt werden, um zu erfahren ob CAB zur Zeit online 
oder offline ist. CAB schickt daraufhin bei jeder Änderung des On-/ 
Offline- Statuses die Message CAB_STATUS.

msg[0] = 0xCAB5
msg[1] = Id des PRGs
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0

CAB_RELEASESTATUS (0xCAB7) (Nachricht an CAB)
Sollte an CAB geschickt werden, wenn ein Programm nicht mehr an den 
on/offline- Informationen interessiert ist, die mit CAB_REQUESTSTATUS 
angefordert wurden (z.B. weil es sich beendet).

msg[0] = 0xCAB7
msg[1] = Id des PRGs
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0

CAB_STATUS (0xCAB6) (Nachricht von CAB)
Wird von CAB an alle Programme verschickt, die sich mit 
CAB_REQUESTSTATUS angemeldet haben.

msg[0] = 0xCAB6
msg[1] = Id von CAB
msg[2] = 0
msg[3] = 1 falls CAB online; 0 falls CAB offline.
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0

CAB_EXIT (0xCAB1) (Nachricht von CAB)
Wird von CAB an alle Programme geschickt, die sich mit 
CAB_REQUESTSTATUS angemeldet haben, sobald sich CAB beendet. Vorher 
wird auch noch ein CAB_STATUS gesendet, in dem der offline-Zustand 
gemeldet wird.

msg[0] = 0xCAB1
msg[1] = Id von CAB
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0

CAB_MAIL (0xCAB9) (Nachricht an CAB)
Kann an CAB geschickt werden, um Mails zu verschicken.

msg[0] = 0xCAB9
msg[1] = Id des PRGs
msg[2] = 0

msg[3] = \ Zeiger auf die URL. Ein 'Betreff' (Subject) kann, durch ein
msg[4] = / Fragezeichen getrennt, direkt an die URL gehängt werden.

msg[5] = \ Zeiger auf eine Datei, die den Mailinhalt enthält oder
msg[6] = / null (dann öffnet CAB einen Editor, in dem die Mail eingegeben
           wird).

msg[7] = Bitvektor mit weiteren Optionen.
             Bit 0: 0 falls die Maildatei sofort verschickt werden soll,
                    oder 1 falls die Maildatei vom Benutzer noch in CAB
                    bearbeitet/geändert werden soll.
             Bit 1: bei 1 wird die Maildatei gelöscht, nachdem sie verschickt
                    wurde, bei 0 bleibt sie erhalten.
             Bit 2-15: 0 (reserviert)

CAB_MAILSENT (0xCABA) (Nachricht von CAB)
Wird von CAB an das Programm geschickt, welches CAB_MAIL gesendet hat 
und enthält Informationen, ob das Verschicken der Mail geklappt hat 
oder nicht.

msg[0] = 0xCABA
msg[1] = Id von CAB
msg[2] = 0
msg[3] = 1 falls die Mail ohne Fehler verschickt wurde; 0 bei Fehler (in
         diesem Fall ist in msg[4] die Fehlerursache zu erfahren).
msg[4] = Enthält eine Fehlernummer, falls msg[3]=0
              0: Keine URL angegeben.
              1: Offline, Netzverbindung gestört, Server nicht erreichbar.
              2: Benutzer hat Aktion abgebrochen (Falls die Mail in CAB
                 bearbeitet werden sollte, hat der Benutzer die
                 Möglichkeit die Aktion abzubrechen)
              3: GEMDOS-Fehler beim Zugriff auf die Maildatei.
              4: Editor zum Bearbeiten konnte nicht aufgerufen werden.
msg[5] = 0
msg[6] = 0
msg[7] = 0

Spezielle Messages für 'Cache-Tools'

CAB_CHANGED (0xCAB0) (Nachricht an/von CAB)
Der Cache (bzw. CACHE.CAB) wurde verändert und soll neu eingelesen 
werden.

msg[0] = 0xCAB0
msg[1] = Id von CAB/des PRGs
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0

CAB_EXIT (0xCAB1) (Nachricht an/von CAB)
CAB oder das Cache-Tool beendet sich (als Info für das jeweils andere 
PRG)

msg[0] = 0xCAB1
msg[1] = Id von CAB/des PRGs
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0

CAB_PATH (0xCAB2) (Nachricht von CAB)
Die lokalen HTML-Verzeichnisse und/oder das Cache-Verzeichnis wurde 
geändert. Nähere Infos sind in der Cache-Tools-Dokumentation zu 
erfahren.

msg[0] = 0xCAB2
msg[1] = Id von CAB
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0

CAB_TERM (0xCAB4) (Nachricht von CAB)
Das Cache-Tool soll sich beenden.

msg[0] = 0xCAB4
msg[1] = Id von CAB
msg[2] = 0
msg[3] = 0
msg[4] = 0
msg[5] = 0
msg[6] = 0
msg[7] = 0