.he Files In a Ramfloppy Updateing Subsystem, FIRUS

1. Einleitung

Zieì deò Entwicklunç deó Programmpaketeó FIRUÓ isô  es¬  Nutzerî 
eineó  Kà 85/² bió /´ ¬  diå nichô ií Besitú eineó Floppù  Disë 
Aufsatzeó sind¬  einå deò CAOS-Betriebsarô deó Ä 00´ Floppù Disë 
Systemó {hnlichå Nutzeroberfl{chå zuò Verf}gunç zõ stellen® 
Dazõ  werdeî diå Schreib-Lesespeicher¬  diå sicè iî  deî  Modul
sch{chteî deó Anwenderger{teó befindeî zõ eineò Ramfloppù zusam
mengestellt®  Programmå  unä Dateî werdeî aló Dateieî  verwalteô 
unä sinä unteò eineí bió zõ 1² Zeicheî langeî Nameî aufzufinden® 
Deò  Dateiaufbaõ unä deò Aufbaõ deò Dateisteuerbl|ckå entsprichô 
dabeé genaõ dem¬ deò unteò deí Betriebssysteí MikroDOÓ ií dorti
geî  Ramfloppù benutzô wird®  Diå Zuordnunç deò  Schachtadresseî 
unä Speichersegmentå zõ Spur- unä Sektornummeò entsprichô  eben
falló deò iî MikroDOS.
Das Programmpaket FIRUS setzt sich aus vier Teilen zusammen.
1©  Dienstprogramme¬  diå  unteò CAOÓ aufgerufeî werdeî unä  diå 
    Aktivit{ô  aî  daó  Ramfloppyverwaltungsprogramí  }bergeben¬ 
    bzw® siå aî daó CAOÓ zur}ckgeben.
2©  Daó Ramfloppyverwaltungsprogramm¬ eó }bernimmô unä }bergiebô 
    Dateî zuí CAOÓ Dienstprogramm® 
3©  Eiî BDOS-{hnlicheó Programm¬ daó diå logischå Verwaltunç voî 
    Dateieî unä Dateisteuerbl|ckeî }bernimmt.
3)  BIOS-{hnliche Routinen zur physischen Dateiarbeit.


2. Die Anordnung der Programme und  Dateien im RAM

Folgendå Minimalbelegunç deó Ger{teó miô Speicheò wirä vorausge
setztº  RAÍ  voî ° bió 3fffH¬  BWÓ unä int®  RAÍ voî  8000È  bió 
0bfffÈ unä daó Ramfloppy¬  daó sicè iî 16ë gro~eî Segmenteî }beò 
deò 8000È auft}rmt.
Diå  Dienstprogrammå  befindeî sicè ií GrundRAÍ unä  werdeî  voî 
CAOÓ  auó  gestartet®  Ií ersteî Segmenô deó Ramfloppù  befindeô 
sicè daó Directory® Ií allerletzteî Segmenô deó Ramfloppù befin
deî  sicè  daó  Ramfloppyverwaltungsprogramm¬  daó  BDOA{hnlichå 
logischå  Dateiverwaltungsprogramí unä Teilå deó BIOS®  Auæ  deò 
Seitå  ° deó Grundraí befindeî sicè Datenpuffeò unä  eiî  Daten- 
unä  Aktivit{tsverteilprogramm¬  }beò diå diå einzelneî Teilpro
grammå kommunizieren.


3. Schnittstellen zwischen den verschiedenen Programmteilen

3.1®  Diå  Schnittstellå zwischeî deî Dienstprogrammeî  unä  deí 
Ramfloppyverwaltungsprogramm

auæ deò Seitå ° deó GrundRAÍ befindeô sicè deò Verst{ndigungsbe
reicè  zwischeî  Dienstprogrammeî  unä  Ramfloppyverwaltungspro
gramm® Deî Speicherpl1tzeî wirä folgendå Funktioî zugewiesen:
0 bis 0bH      ASCII-Puffer f}r Dateinamen
ocH bis 0eH    Sprung in das FLOAD des BASIC-Interpreters
0fÈ bió 0a6è   daó Programí  H{ndleò zuò ]bertragunç  voî  Dateî                
               unä   Aktivit{teî  zwischeî   deî   verschiedeneî                
               Speicherbereichen.
0a7È bió 0cdÈ  Puffeò  f}ò einå Zeichenkette®  Hieò findeô  einå 
               Zeilå  f}ò einå Bildschirmausschrifô platz¬  wirä 
               z.B® beií Kommandï DIÒ benutzt.
0ceH           Nummer des letzten Schachtes des Ramfloppy
0cfÈ           Nummeò deó letzteî Segmenteó deó Ramfloppy®  ]beò Š               dieså beideî Wertå kanî daó Ramfloppyverwaltungs
               programí unä daó BDOS-{hnlichå logischå Dateiver
               waltungsprogramí aufgefundeî werden.
0d0H           Schacht
0d1H           Segment             Quelle
0d2H, 0d3H     Adresse             Datentransfer

0d4H           Schacht
0d5H           Segment             Ziel
0d6H, 0d7H     Adresse             Datentransfer
Dieså  Wertå werdeî voí BIOÓ eingetrageî undvoí H{ndleò benutzt¬ 
uí  Dateî zwischeî deí Ramfloppù unä deí Grundraí odeò deí  FCB-
Puffeò  deó BDOS-{hnlicheî logischeî  Dateiverwaltungsprogrammeó 
zutransportieren.
0d8H bis 0f9H  Eintrittspunkte f}r das Programm Service
ab 0faH        das Programm FLOAD


3.²  Speicherbelegunç unä Schnittstelleî zwischeî deî Programmeî 
im letzten Segment des Ramfloppy

Iî  dieseí  Speicherbereicè befindeî sicè  daó  Ramfloppyverwal
tungsprogramm¬  eiî  MinimalBDOÓ unä eiî BIOS®  Dieså  Programmå 
sinä   }beò   diå  ersteî  Adresseî  deó  letzteî   Ramsegmenteó 
erreichbar.
8000È  bió  8002È     JÐ   WBOOÔ     ;Sprunç  zuò  BIOS-Funktioî 
                      Warmstart®   Kennô  maî  diå  Schacht- unä 
                      Sektornummeò  deó  Letzteî  Segmenteó  deó 
                      Ramfloppy¬ sï kanî eó nacè eineí eventuel
                      leî  Absturú  durcè  Zuschalteî  unä  CALÌ  
                      800È  wiederhergestellô  werden®   Uí  diå 
                      Zieladresså  dieseó Sprungeó heruí isô diå 
                      BIOS-Sprungleistå  genaõ  sï  wiå  iî  CPÍ 
                      angeordnet.
8003H  8004H          reserviert
8005È bió 8007È       JÐ    BDOS;}beò CALÌ 8005È wirä daó  BDOS-
                      {hnlichå logischå Dateiverwaltungsprogramí 
                      erreicht.
aâ 8008È              befindeô sicè daó Ramfloppyverwaltungspro-
                      gramm.

 Auæ  då Adresså 8000È befindeô sicè eiî Ansprunç iî  diå  BIOS-
Sprungleiste® Folgendå BIOS-Funktioneî werdeî realisiert:
WBOOT¬  HOME¬  SELDSK(}nuò  f}ò daó Laufwerë ¬  daó  Ramfloppy)¬ 
SETTRK¬  SETSEc¬  SETDMA¬  READ¬  WRITEunä SECTRAN® Allå andereî 
BIOS-Funktioneî sinä kurzgeschlossen®  Parameteò werdeî ií Regi
steò à erwartet®  Deò Aufruæ dieseò Funktioneî entsprichô  genaõ 
deí beé CPM-{hnlicheî Betriebssystemen.
Das MinimalBDOS enth{lt folgende Funktionen:
12)  Versionsnummer holen
13)  Diskettensystem r}cksetzen
14)  Laufwerk w{hlen
15)  Datei er|ffnen
16)  Datei schlie~en
17)  ersten Eintrag suchen
18)  n{chsten Eintrag suchen
19)  Datei l|schen
20)  sequentiell lesen
21)  sequentiell schreiben
22)  Datei erzeugen
23)  Datei umbenennen
Š24)  Abfrage Laufwerk in online-Zustand
25)  aktuelles Laufwerk
26)  DMA-Adresse setzen
27)  Belegungsvektor holen
28)  Schreibschutz setzen
29)  Schreibschutzvektor holen
30)  Dateiattribute setzen
31)  Parameteradresse holen
32)  Benutzernummer holen
33)  wahlfrei lesen
34)  wahlfrei schreiben
35)  Dateigr|~e berechnen
36)  Feld f}r wahlfreien Zugriff setzen
37)  Diskette r}cksetzen
46)  Abfrage des freien Platzes auf der Diskette
152) Vorbereiten des Dateisteuerblockes
allå  andereî Funktioneî sinä kurzgeschlossen®  Eingabeparameteò 
werdeî   iî  Ä  odeò  DÅ  erwartet¬  Ausgabeî  erfolgeî  iî  deî 
Registern A und HL.
Daó  RAMFloppyverwaltungsprogramí  erwarteô ií  Registeò  à eiî 
Steuerbyte®  Eó  isô  iî seineò Wirkunç deí Steuerbytå  f}ò  daó 
Programm DEP identisch.