.OP .HE Das Fileinterface volksFORTH - CP/M 2.2 Seite # Fileinterface f}r das volksFORTH83 __________________________________ auf CP/M Komputern __________________ Wie geht es los? ________________ Bevor Sie das Glossar lesen, sollten Sie diese kleine Einf}hrung lesen und auf einer leeren Diskette die Beispiele ausprobieren. Wie erzeuge ich ein File, in das ich ein Programm eingeben kann? ________________________________________________________________ Geben Sie bitte folgendes ein: MAKEFILE test.scr Das File test.scr wird auf der Diskette erzeugt, auf dem Sie das Forth gebootet haben. Als n{chstes sch{tzen Sie bitte ab, wie lang Ihr Programm etwa wird. Beachten Sie dabei bitte, da~ der Screen 0 eines Files f}r Hinweise zur Handhabung Ihres Programms und der Screen 1 f}r einen sog. Loadscreen (das ist ein Screen, der den Rest des File l{dt) reserviert sind. Wollen Sie also z.B. 3 Screens Programm eingeben, so mu~ das File 5 Screens lang sein; Sie geben also ein: 5 MORE Fertig! Sie haben jetzt ein File, das die Screens 0..4 enth{lt. Geben Sie jetzt 1 L ein. Sie editieren jetzt den Screen 1 Ihres neuen Files test.scr. Sie k|nnen, falls der Platz nicht ausreicht, Ihr File sp{ter einfach mit MORE verl{ngern. Ein File kann leider nicht verk}rzt werden. Wie spreche ich ein bereits auf der Diskette vorhandenes File an? _________________________________________________________________ Das geht noch einfacher. Geben Sie einfach den Filenamen ein. Reagiert das System mit der Meldung "Haeh?", so kennt das Forth dieses File noch nicht. Sie m}ssen in diesem Fall das Wort USE vor dem Filenamen eingeben, also z.B. USE test.scr Jetzt k|nnen Sie wie oben beschrieben mit 1 L (oder einer anderen Zahl) das File editieren, Das Wort USE erzeugt }brigens im Forthsystem das Wort TEST.SCR, falls es noch nicht vorhanden war. Wissen Sie also nicht mehr, ob Sie ein File schon benutzt haben, so k|nnen Sie mit WORDS nachsehen oder das Wort USE voranstellen. Wie erzeuge ich ein File auf einem vorgegebenem Laufwerk, z.B. A: ? ___________________________________________________________________ Durch Voranstellen des Laufwerks etwa: MAKEFILE a:test.scr Oder durch Eingabe von A: Hierbei wird A: zum aktuellen Laufwerk gemacht. Files ohne Laufwerks angabe werden immer auf dem aktuellen Laufwerk erzeugt. .PA 0) Allgemeines ______________ Im folgenden wird die Benutzung des Fileinterfaces beschrieben. Dieses Fileinterface benutzt die Files des CP/M. Benutzt man ein File von Forth aus, so wird es in Bl|cke zu je 1024 Bytes aufgeteilt, die in gewohnter Wiese anzusprechen sind. Dies trifft auch f}r Files zu, die nicht vom Forth aus erzeugt wurden. Als Konvention wird vor geschlagen, da~ Files, die Forth-Screens, also Quelltexte, enthalten, mit .SCR erweitert werden. Files, die Daten enthalten, die nicht unmittelbar lesbar sind, sollten auf .BLK enden. Zum Umschalten vom Filesystem auf Direktzugriff und umgekehrt gibt es das Wort: DIRECT ( -- ) "direct" Schaltet auf Direktzugriff um. Auf den Filezugriff schalten wir durch das Nennen eines Filenamens. 1) Die Laufwerkswahl ____________________ Files werden immer auf dem aktuellen Laufwerk erzeugt, solange der Filename nicht ausdr}cklich ein anderes Laufwerk vorsieht. Als Betriebssystemname wird dann der vollst{ndige Filename eingetragen, also mit eindeutig festgelegtem Laufwerk. Zum [ndern des aktuellen Laufwerks stehen die folgenden Worte zur Verf}gung: A: ( -- ) "a-colon" Macht Diskettenstation A: zum aktuellen Laufwerk entsprechend der Funktion im CCP. Siehe SETDRIVE. B: ( -- ) "b-colon" Macht Diskettenstation B: zum aktuellen Laufwerk entsprechend der Funktion im CCP. Siehe SETDRIVE. SETDRIVE ( n -- ) "setdrive" Macht die Diskettenstation mit der Nummer n zum aktuellen Laufwerk. Hier bei entspricht n=0 der Diskstation A, n=1 der Diskstation B usw. Um sich den Inhalt einer Diskette anzusehen, gibt es die Worte: FILES ( -- ) "files" Listet den Inhalt des aktuellen Laufwerks (siehe SETDRIVE) auf dem Bild schirm auf. Dieses Wort, zusammen mit dem Wort FILES" entspricht dem Kommando DIR des CCP. In anderen volksFORTH-Filesystemen wird DIR benutzt um Direktories umzuschalten (MS-DOS, GEM-DOS). FILES" ( -- ) "files-quote" Benutzt in der Form FILES" cccc" Listet die Files auf, deren Name cccc ist. Der String cccc darf die bekannten Wildcards ('?','*') sowie eine Laufwerksbezeichnung enthalten. Wird kein Laufwerk angegeben, so werden die Files des aktuellen Laufwerks ausgegeben. .PA 2) Files ________ Files bestehen aus einem Forthname und einem Betriebssystemnamen, die nicht }bereinstimmen m}ssen. Ist das Forthwort, unter dem ein File zugreifbar ist, gemeint, so wird im folgenden vom Forthfile gesprochen. Ist das File auf der Diskette gemeint, das vom CP/M-BDOS verwaltet wird, so wird vom DOS-File gesprochen. Durch das Nennen des Forthnamens wird das Forthfile (und das zugeh|rige DOS-File) zum aktuellen File, auf das sich alle Operationen wir LIST, LOAD. CONVEY usw. beziehen. Beim Bekanntmachen des Files mit USE, MAKEFILE und ASSIGN u.a. wird das File auf dem aktuellen Laufwerk gesucht, wenn kein Laufwerk im Namen angegeben wird. Danach darf das aktuelle Laufwerk beliebig ge{ndert werden, ohne da~ das File dann auf einem anderen Laufwerk gesucht wird. Mit FORTHFILES k|nnen die aktuellen Zuordnungen zwischen Forthfile und DOS-File angezeigt werden. FILE ( -- ) "file" Wird in der Form: FILE benutzt. Erzeugt ein Forthwort mit Name . Wird sp{ter ausgef}hrt, so vermerkt es sich als aktuelles File. Ebenso vermerkt es sich als FROMFILE, was f}r CONVEY wichtig ist. Einem Forthfile wird mit MAKE oder ASSIGN ein DOS-File zugeordnet. MAKE ( -- ) "make" Wird in der Form : MAKE cccc benutzt. Erzeugt ein DOS-File mit Namen cccc auf dem aktuellen (oder angegebenem Laufwerk) und ordnet es dem aktuellen Forthfile zu. Das File wird auch gleich ge|ffnet. Es hat die L{nge Null (siehe MORE). Beispiel FILE ausgabe ausgabe MAKE test.scr erzeugt ein Forthwort AUSGABE und ein File mit dem Namen A:TEST.SCR. (Angenommen A: ist aktuelles Laufwerk.) Alle Operationen wie LOAD, LIST usw. beziehen sich nun auf den entsprechenden Screen in A:TEST.SCR. Beachten Sie bitte, da~ dieses File noch leer ist, und daher eine Fehler bedingung besteht, wenn Zugriffsoperationen ausgef}hrt werden sollen. MAKEFILE ( -- ) "makefile" Wird in der folgender Form benutzt: MAKEFILE Erzeugt ein Forthfile mit dem Namen und erzeugt abschlie~end ein DOS-File mit demselben Namen (und eindeutiger Laufwerksangabe). Die folgende Sequenz w}rde genau dasselber bewirken: FILE MAKE SAVEFILE ( addr len -- ) "savefile" Wird in der folgenden Form benutzt: SAVEFILE Schreibt den String, der an der Adresse addr begint und die L{nge len hat als File mit dem Namen auf die Diskette. KILLFILE ( -- ) "killfile" L|scht das aktuelle File. Unsch|n, da dann das Forthfile noch existiert, das Dosfile aber gel|scht ist, soda~ es bei dem n{chsten Diskettenzugriff einen Fehler gibt, wenn nicht ein anderes File angew{hlt wird. .pa ASSIGN ( -- ) "assign" Wird in der Form ASSIGN cccc benutzt. Ordnet dem aktuellen File das DOS-File mit Namen cccc (mit eindeutiger Laufwerksangabe) zu. Eine Fehlerbedingung besteht, wenn das File nicht gefunden werden kann. USE ( -- ) "use" Dieses Wort ist das wichtigste Wort zum Ausw{hlen von Files. ____________________________________________________________ Es wird in der folgenden Form benutzt: USE Dieses Wort macht das File mit Namen zum aktuellen File, auf das sich LOAD, LIST usw. beziehen. Es erzeugt ein Forthfile mit Namen , falls der Name noch nicht vorhanden war. Anschlie~end wird das File auf dem aktuellen (oder angegebenem) Laufwerk gesucht. Wird das File nicht gefunden, so wird eine Fehlermeldung ausgegeben. Das (automatisch) erzeugte Forthfile verbleibt im Dictionary und mu~ ggf. mit FORGET vergessen werden. CLOSE ( -- ) "close" Schlie~t das aktuelle File. Dabei wird das Inhaltsverzeichnis (Directory) der Diskette aktualisiert. Es werden die zu diesem File geh|renden ge{nderten Bl|cke auf Diskette zur}ckgeschrieben und alle zu diesem File geh|renden Bl|cke in den Block-Puffern gel|scht. OPEN ( -- ) "open" Offnet das aktuelle File. Eine Fehlerbedingung besteht, wenn das File nicht gefunden werden kann. Die Benutzung dieses Wortes ist in den meisten F{llen }berfl}ssig, da Files automatisch bei einem Zugriff ge|ffnet werden. EMPTYFILE ( -- ) "emptyfile" K}rzt das aktuelle File auf die L{nge null. FROM ( -- ) "from" Wird in der folgenden Form benutzt: FROM ist der Name eines Forthfile, aus dem beim Aufruf von CONVEY und COPY Bl|cke herauskopiert werden sollen. Beispiel: filea 1 FROM fileb 3 COPY Kopiert den Block 1 aus FILEB auf den Block 3 von FILEA. Dieses Wort benutzt USE und das File auszuw{hlen. Das bedeutet, da~ FILEB automatisch als Forthfile angelegt wird, wenn es noch nicht im System vorhanden ist. .pa LOADFROM ( n -- ) "loadfrom" Wird in der folgenden Form benutzt: LOADFROM ist der Name eines Forthfiles, aus dem der Block n geladen wird. Beispiel: 15 LOADFROM filea L{dt den Block 15 aus FILEA. Dieses Wort ist wichtig, wenn w{hrend des Ladens eines Files Teile eines anderen Files geladen werden sollen. Dieses Wort benutzt USE, um FILEA zu selektieren. Das bedeutet, da~ auto matisch ein Forthfile mit Namen FILEA erzeugt wird, falls es im System noch nicht vorhanden war. Beachten Sie bitte, da~ dieses Wort nichts mit FROM oder FROMFILE zu tun hat, obwohl es {hnlich hei~t! INCLUDE ( -- ) "include" Wird in der folgenden Form benutzt: INCLUDE ist der Name eines Forthfiles, das vollst{ndig geladen wird. Dabei ist Voraussetzung, da~ auf Screen 1 dieses Files Anweisungen stehen, die zum Laden aller Screens dieses Files f}hren. Siehe auch LOADFROM. CAPACITY ( -- u ) "capacity" u ist die L{nge des aktuellen Files in Forth-Bl|cken (1024 Bytes). Beachten Sie bitte, da~ die L{nge des Files um eins gr|~er ist als die Nummer des letzten Blocks, da der Block 0 mitgez{hlt wird. FORTHFILES ( -- ) "forthfiles" Druckt eine Liste aller Forthfiles, zusammen mit den Namen der zuge h|rigen DOS-Files, deren L{nge und deren Status (ge|ffnet / geschlossen). FROMFILE ( -- addr ) "fromfile" Addr ist die Adresse einer Variablen, die auf das Forth-File zeigt, aus dem COPY und CONVEY Bl|cke lesen. Siehe auch FROM. Bei Nennen eines Forthfiles wird diese Variable gesetzt. LOADFILE ( -- addr ) "loadfile" Addr ist die Adresse einer Variablen, die auf das Forthfile zeigt, das gerade geladen wird. Diese Variable wird bei Aufruf von LOAD, THRU usw. auf das aktuelle File gesetzt. ISFILE ( -- addr ) "isfile" Addr ist die Adresse einer Variablen, die auf das aktuelle Forthfile zeigt. Sie wird bei Ausf}hrung eines Forthfiles gesetzt. FILE? ( -- ) "file-question" Druckt den Namen des aktuellen Forthfiles. MORE ( n -- ) "more" Verl{ngert das aktuelle File um n Screens. Die Screens werden hinten angeh{ngt. Anschlie~end wird das File geschloseen. EOF ( -- f) "end-of-file" f ist ein Flag, das wahr ist, falls }ber das Ende des Files hinausgelesen wurde. f ist falsch, falls auf den zuletzt gelesenen Block noch weitere folgen. .PA 3) Verschiedenes ________________ Beim Vergessen eines Forth-Files mit Hilfe von FORGET, EMPTY usw. werden automatisch alle Blockpuffer, die aus diesem File stammen, gel|scht, und, wenn sie ge{ndert waren, auf die Diskette zur}ckgeschrieben. Das File wird anschlie~end geschlossen. Bei Verwendung von FLUSH werden alle Files geschlossen. FLUSH sollte VOR jedem Diskettenwechsel ausgef}hrt werden, und zwar nicht nur, um die ge{nderten Bl|cke zur}ckzuschreiebn, sondern auch damit alle Files geschlossen werden. Sind n{mlich Files gleichen Namens auf der neuen Diskette vorhanden, so wird sonst eine abweichende L{nge des neuen Files vom Forth nicht erkannt. Nach dem Diskettenwechsel verlangt CP/M das "einloggen" der neuen Diskette. Dies geschieht mit DOS RESET. Wenn dies vergessen wird, so erh{lt man nach einem Schreibversuch auf die neue Diskette "BDOS-ERROR ON xx R/O" und landet zu allem ]berflu~ im CCP. Warum?? Fragen Sie Digital Research! Bei Verwendung von VIEW wird automatisch das richtige File ge|ffnet. .PA 4) CP/M 2.2. interne Worte des Filesystems (Implementation) In diesem Abschnitt findet sich das Glossary f}r die Worte, die zur Implementation des Filesystems benutzt werden. Da das Filesystem noch recht neu ist, sind noch fast alle Namen sichtbar. Das kann sich aber {ndern, wenn klar ist, welche Worte man nicht mehr benutzt. Im Glossary wird oft von Forth-FCB (File-Control-Block) gesprochen. Das sind Speicherbereiche, mit denen Files beschrieben werden. Auch CP/M kennt FCBs. Die CP/M Filefunktionen erwarten alle einen DOS-FCB zur Beschreibung der Files. Die Worte, die diese Funktionen ausl|sen erwarten aber einen Forth-FCB, die im volksFORTH-Filesystem }bliche Beschreibung von Files. Wenn die Gefahr der Verwechselung besteht, so wird ausdr}ck lich von Forth-FCBs und DOS-FCBs gesprochen. Allgemein ist mit der Angabe von FCB ein Forth-FCB gemeint. Seine Struktur ist aus dem Quelltext ersichtlich. (Befehlsfolge: DOS VIEW B/FCB) !fcb ( fcb -- ) "store-f-c-b" Interpretiert das als n{chstes in der Eingabe sthende Wort als Filename und weist es dem fcb zu. !name ( addr len fcb -- ) "store-name" addr gibt die Anfangsadresse eines Strings an, der die L{nge len hat und einen Filenamen enth{lt. Dieser Name wird in den fcb eingetragen. Enth{lt er keine Laufwerksangabe, so wird das aktuelle Laufwerk benutzt und in den FCB geschrieben. (capacity ( forthfcb -- n ) "paren-capacity" n ist die Filegr|~e des durch forthfcb beschrieben Files in Forth- Bl|cken. (close ( fcb -- ) "paren-close" Schlie~t das File, das durch fcb beschrieben wird. Schreibt alle ver{nderten Bl|cke dieses Files auf die Diskette zur}ck und l|scht alle Bl|cke dieses Files in den Blockpuffern. (closefile ( forthfcb -- f ) "paren-closefile" Schlie~t das durch den Forth-FCB angegebene File. f=$FF bedeutet, da~ das File nicht gefunden werden konnte. (Siehe CP/M Operating System Manual) (createfile ( forthfcb -- f ) "paren-createfile" Erzeugt ein File, das durch den angegebenen Forth-FCB beschrieben wird. f=$FF bedeutet, da~ im Inhaltsverzeichnis der Diskette kein Platz mehr ist. (Siehe CP/M Operating System Manual) (dir ( addr len -- ) "paren-dir" addr ist die Anfangsadresse eines Strings der L{nge len, der ein Suchmuster enth{lt. (dir zeigt die Files an, die auf dieses suchmuster passen. Siehe SEARCH0, SEARCHNEXT, FILES, FILES". (file-read ( forthfcb -- f ) "paren-file-read" Liest den im Record-Feld des angegebenen Forth-FCB's bestimten Sektor in den Sektorpuffer ein. f<>0 bedeutet, da~ Daten fehlen. (Siehe CP/M Operating System Manual) (file-write ( forthfcb -- f ) "paren-file-write" Schreibt den Sektorpuffer auf den im Record-Feld des angegebenen Forth- FCB's bestimten Sektor. f<>0 bedeutet, da~ die Diskette voll ist. (Siehe CP/M Operating System Manual) .pa (killfile ( forthfcb -- f ) "paren-killfile" L|scht das durch den Forth-FCB angegebene File. f=$FF bedeutet, da~ das File nicht gefunden werden konnte. (Siehe CP/M Operating System Manual) (makeview ( -- n ) "paren-make-view" n ist eine Zahl die aus dem momentanen Block (BLK) und dem aktuellen File (LOADFILE) berechnet wird. Sie wird in das VIEW-Feld einer neuen Definition geschrieben, und dient dazu sp{ter mit VIEW den Definitions- Ort zu bestimmen. (open ( fcb -- ) "paren-open" \ffnet das durch den FCB angegebene File und tr{gt dessen L{nge ein. Meldet einen Fehler, falls das File nicht gefunden werden konnte. (openfile ( forthfcb -- f ) "paren-open-file" \ffnet das durch den Forth-FCB angegebene File. f=$FF bedeutet, da~ das File nicht gefunden werden konnte. (Siehe CP/M Operating System Manual) (read-seq ( forthfcb -- f ) "paren-read-sequential" Liest den n{chsten Sektor aus dem durch den Forth-FCB angegebene File in den Sektorpuffer ein. f<>0 bedeutet, da~ keine Daten mehr zur Verf}gung stehen. (Siehe CP/M Operating System Manual) (view ( viewblk -- blk' ) "paren-view" blk' ist die relative Blocknummer zum Anfang des in viewblk enthaltenen Files. viewblock hat die Form: fffffffbbbbbbbbb. Wobei f Bits f}r die Filenummer, b Bits f}r den Block angeben. Das File wird von (VIEW auto matisch ge|ffnet. (write-seq ( forthfcb -- f ) "paren-write-sequential" Schreibt den n{chsten Sektor aus dem Sektorpuffer in das durch den Forth- FCB angegebene File. f<>0 bedeutet, da~ die Diskette voll ist. (Siehe CP/M Operating System Manual) .buffers ( -- ) "dot-buffers" Gibt eine Liste der Block-puffer aus, die angibt, welchen Block aus welchem File die Puffer enthalten, und ob sie als UPDATEd markiert sind. .dosfile ( fcb -- ) "dot-dosfile" Gibt den Dos-Namen des durch fcb angegebenen Files aus. .fcb ( fcb -- ) "dot-f-c-b" Gibt den Forth-Namen, den Dos-Namen, die Filegr|~e und den Status (ge|ffnet / geschlossen ) des durch fcb angegebenen Files aus. .file ( fcb -- ) "dot-file" Gibt den Forth-Namen des durch fcb angegebenen Files aus. b/fcb ( -- n ) "bytes-per-f-c-b" n gibt an, wieviele Bytes ein Forth-FCB belegt. b/rec ( -- n ) "bytes-per-record" n gibt an, wieviele Bytes in die Sektoren passen, die vom Betriebssystem benutzt werden. Bei CP/M 2.2 sind dies 128 Bytes. .pa bdos ( arg fun# -- res ) "bdos" Veranla~t einen Sprung ins BDOS. fun# ist der Wert, der ins C-Register geladen wird, die Nummer der aufzurufenden Funktion. arg ist der Wert, der ins DE-Register geladen werden soll, und res ist der Wert, der vom BDOS im A-Register zur}ckgeliefert wird. CP/M BDOS-Aufrufe sind im Operating System Manual beschrieben. createfile ( fcb -- ) "createfile" Erzeugt ein File, da~ durch den FCB beschrieben wird. Meldet einen Fehler, falls dies nicht m|glich ist. default-buffer ( -- addr ) "default-buffer" addr ist die Adresse des Standard Sektorpuffers des BDOS. Dos ( -- ) "dos" Das Vocabulary, indem die meisten Definitionen des Filesystems gemacht werden. dos-error? ( n -- f ) "dos-error-question" f ist TRUE, wenn n=$FF ist, denn das ist das Kennzeichen des BDOS f}r einen Fehler. drive ( forthfcb -- addr ) "drive" Berechnet aus der Adresse eines Forth-FCBs die Adresse, unter der das Laufwerk eingetragen ist. extension ( forthfcb -- addr ) "extension" Berechnet aus der Adresse eines Forth-FCBs die Adresse, an der die Extension beginnt. fcb0 ( -- addr ) "f-c-b-zero" addr ist die Adresse, des vom CCP-benutzten Standard-File-Control-Blocks, so ver{ndert, da~ er einen Forth-FCB halten kann. file-link ( -- addr ) "file-link" addr ist die Adresse einer User-Variablen, die auf den Anfang der Forth- file-liste zeigt. file-r/w ( buffer block fcb r/wf -- f ) "file-r-w" Liest oder schreibt einen Forth-Block von der / auf die Diskette. r/wf gibt an, ob gelesen (rw/f<>FALSE) oder geschrieben (rw/f=FALSE) werden soll. block ist die Nummer des Blocks, buffer die Adresse des Puffers. fcb bestimmt, ob ein File benutzt wird (fcb<>0 ist dann die Adresse eines FCB) oder ob im Direktzugriff gearbeitet werden soll (fcb=0). f ist TRUE, falls ein Fehler aufgetreten ist. Vergleiche R/W. filename ( forthfcb -- addr ) "filename" Berechnet aus der Adresse eines Forth-FCBs die Adresse, an der der Filename beginnt. filenamelen ( -- n ) "filenamelen" n gibt die L{nge der im Betriebssystem benutzten Filenamen an. Bei CP/M sind dies 11 Zeichen (8 Name + 3 Extension) fileno ( forthfcb -- addr ) "file-number" Berechnet aus der Adresse eines Forth-FCBs die Adresse, an der die Filenummer abgelegt ist. .pa filesize ( forthfcb -- addr ) "filesize" Berechnet aus der Adresse eines Forth-FCBs die Adresse, an der die Filegr|~e (in Sectoren) abgelegt ist. in-range ( block fcb -- ) "in-range" Testet, ob der Forth-Block block in dem durch fcb angegebenen File liegt, und gibt eine Fehlermeldung aus, falls dies nicht der Fall ist. opened ( forthfcb -- addr ) "opened" Berechnet aus der Adresse eines Forth-FCBs die Adresse, an der das open- Flag abgelegt ist. read-seq ( -- ) "read-sequential" Liest den n{chsten Sektor aus dem aktuellen File in den Sektorpuffer und liefert einen Fehler, falls dies nicht m|glich ist. rec/blk ( -- n ) "bytes-per-record" n gibt an, wieviele logische CP/M-Sectoren (128 Bytes) in einen Forth- Block passen. Nach dem Forth-83 Standard ist ein Forth-Block 1024 Bytes gro~, B/REC ist dann also 8. record ( forthfcb -- addr ) "record" Berechnet aus der Adresse eines Forth-FCBs die Adresse, an der der Recordz{hler f}r Random-Access-Files beginnt. reset ( -- ) "reset" Initialisiert das Diskettensystem des BDOS. Mu~ nach einem Disketten wechsel benutzt werden! (Siehe CP/M Operating System Manual) search0 ( forthfcb -- f ) "search-zero" Sucht im Inhaltsverzeichnis der Diskette nach dem ersten Vorkommen, des durch den Forth-FCB angegebenen Files. f=$FF bedeutet, da~ das File nicht gefunden werden konnte. (Siehe CP/M Operating System Manual) searchnext ( forthfcb -- f ) "serach-next" Sucht im Inhaltsverzeichnis der Diskette nach dem n{chsten Vorkommen, des durch den Forth-FCB angegebenen Files. f=$FF bedeutet, da~ das File nicht gefunden werden konnte. (Siehe CP/M Operating System Manual) setdma ( dma -- ) "set-d-m-a" dma ist die Adresse des Sektorpuffers, der beim n{chsten Diskettenzugriff benutzt werden soll (Siehe CP/M Operating System Manual) size ( forthfcb -- ) "size" Berechnet die Filegr|~e in dem durch den Forth-FCB beschriebenen File und tr{gt sie in das Feld record ein. (Siehe CP/M Operating System Manual) tab ( -- ) "tab" Geht auf die n{chste Tabulatorposition (alle 20 Spalten). write-seq ( -- ) "write-sequential" Schreibt einen Sektor aus dem Sektorpuffer als n{chsten Sektor des aktuellen Files und meldet einen Fehler, falls dies nicht m|glich ist.