+------------------------------------------------------------------------
|
| DISK-DRIVE 1581: ZEROPAGE, EXTENDED ZEROPAGE, BUFFERS
|
+------------------------------------------------------------------------
|
| Comments done by Peter Steiner, used with permission.
|
| $00-$01/0-1 frei
| $02-$0A/2-10 Jobspeicher fuer die Puffer 0-8
| $0B-$1C/11-28 T&S fuer jeden Job
| $1D-$1E/29-30 ID
| $1F/31 Spurnummer
| $20/32 Seitennummer (0: Vorder-/ 1: Rueckseite)
| $21/33 Sektornummer
| $22/34 Sektorengroesse
| $23-$24/35-36 CRC-Pruefsumme
| $25/37 Flag fuer Diskettenwechsel
| $26/38 Drivemodus 0: Laufwerk inaktiv
| $27/39 Aktuelle Kopfposition
| $28/40 Zwischenspeicher fuer Jobcode
| $29/41 Laenge der Befehlszeile
| $2A-$2B/42-43 An- bzw. Nachlaufzaehler fuer Laufwerksmotor
| $2C/44 Stackpointer bei Controllerschleifen-Aufruf
| $2D/45 Init-Modus
| $2E/46 Sektorversatz (1)
| $2F/47 freie Blocks auf der aktuellen Spur beim BAM-Check
| $30/48 Optionen bei Fehlern
| $31-$32/49-50 Zeiger in die BAM
| $33-$34/51-52 Zeiger auf User-Sprungtabelle
| $35/53 Flags fuer BAM-Zustand
| $36/54 Zwischenspeicher
| $37/55 Modus von JOB $9e: BUFMOV_DV (Programmfehler)
| $38/56 Zwischenspeicher bei Burst-Load / 'u9' (Warmstart)
| $39/57 Zwischenspeicher:
| $3A/58 Zwischenspeicher
| $3B/59 Position des '*' in Kommandozeile
| $3C/60 Flag vom Burst-Load: Datei hat nur einen Block
| $3D/61 Zaehler fuer gefundene Sektoren bei QUERY DISK FORMAT
| $3E/62 1. gefundene Sektornummer bei QUERY DISK FORMAT
| $3F/63 Zwischensp.: aktueller Puffer (bei BAM-Arbeiten)
| $40-$44/64-68 Zwischenspeicher fuer diverse Zwecke
| $45/69 (frei)
| $46-$47/70-71 Sprungvektor fuer User-Befehle
| $48-$49/72-73 Pufferadresse fuer Jobs
| $4A-$4B/74-75 Zeiger in Cachepuffer
| $4C/76 Tracknummer der letzten Datei (LOAD"*")
| $4D/77 Aktuelle Tracknummer
| $4E/78 Aktuelle Sektornummer
| $4F/79 Speicher fuer obere Stackgrenze
| $50/80 Aktuelle Kanalnummer
| $51/81 0: EOI vom Bus / Dateiende
| $52/82 Aktuelle Sekundaeradresse
| $53/83 Sekundaeradresse vom IEC-Bus
| $54/84 Zwischenspeicher fuer aktuelles Datenbyte
| $55/85 Zwischenspeicher fuer:
| $56/86 Zwischenspeicher fuer:
| $57/87 Sektornummer des aktuellen Side-Sektors
| $58/88 Zeiger auf T&S eines Datenblocks im Side-Sektor
| $59/89 Zeiger in die SS-Tabelle des aktuellen SS
| $5A/90 Beim Vergroessern einer REL-Datei
| $5B-$5D/91-93 Rechenregister 1 (z.B. Division)
| $5E-$5F/94-95 (frei)
| $60-$62/96-98 Rechenregister 2
| $63/99 (frei)
| $64-$65/100-101 temporaerer Pufferzeiger
| $66/102 Bitzaehler fuer seriellen Bus
| $67/103 Zaehler (z.B. fuer Laufwerks-/Kanalsuche)
| $68/104 Position im Record
| $69/105 Side-Sektor-Nummer des Records
| $6A/106 Position der gesuchten T&S im Side-Sektor
| $6B/107 Position des Records im Datenblock
| $6C/108 Zwischenspeicher fuer Jobnummer
| $6D/109 Pufferbelegung (b0-6:Puffer0-6, 1=belegt)
| $6E/110 Drivestatus
| $6F/111 Formatkennzeichen von Diskette
| $70/112 Kanalbelegungstabelle
| $71/113 Dir-Block in dem die Datei gefunden wurde
| $72/114 1. Dir-Block mit einem freien Eintrag
| $73/115 Position des freien Eintrags im Dir-Block
| $74/116 Zeiger auf aktuelle Puffernummer
| $75/117 Anzahl der Sektoren pro Track
| $76/118 Bus-Modus
| $77/119 LISTEN-Geraeteadresse (Adresse +$20)
| $78/120 TALK-Geraeteadresse (Adresse +$40)
| $79/121 LED-Flag
| $7A/122 Zwischenspeicher fuer die Sekundaeradresse
| $7B/123 Befehlsmodus-Flag
| $7C/124 Burst-Kommandobyte
| $7D/125 Zwischenspeicher fuer Jobstatus
| $7E-$7F/126-127 Cache-Pufferzeiger fuer Burst-Befehle
| $80/128 Burst-Status
| $81/129 DOS-Fehlerunterdrueckung (Burstzugriff)
| $82/130 Zwischenspeicher im Controller-Programm
| $83/131 Nummer des aktiven Jobs
| $84/132 Nummer der aktiven Jobroutine (0-32)
| $85-$86/133-134 Steuer-Bits fuer Jobbearbeitung (s. $c163)
| $87/135 b7: 1: Cache Puffer veraendert
| $88/136 Solltrack (bei Kopfbewegung)
| $89/137 AND-Maske fuer Burst-Status
| $8A/138 OR-Maske fuer Burst-Status
| $8B-$8C/139-140 Zeiger auf Cachepuffer
| $8D/141 E/A Byte
| $8E/142 Nummer der ersten physikalischen Spur
| $8F/143 Nummer der letzten physikalischen Spur
| $90/144 Starttrack der aktuellen Partition
| $91/145 Sektorengroesse
| $92/146 Anzahl Sektoren auf der Spur
| $93/147 letzter Sektor auf der Spur
| $94/148 1. Sektornummer auf der Spur
| $95/149 Aktueller Track (im Cache Puffer)
| $96/150 Diskettenseite des aktuellen Jobs
| $97/151 Aktuelle Seite (im Cache Puffer)
| $98/152 Kopfberuhigungszeit nach Verschiebung
| $99/153 Index fuer 2-Byte Jobspeicher (z.B. T&S)
| $9A/154 Groesse der Luecke zwischen zwei Sektoren
| $9B/155 Fuellbyte fuer Datenblock
| $9C/156 Zaehler fuer Cache-Verzoegerungszeit
| $9D/157 Cache-Verzoegerungszeit
| $9E/158 Blinkzaehler fuer LED
| $9F-$A7/159-167 (???)
| $A8-$BA/168-186 Sekundaeradressentabelle
| $BB-$CC/187-204 Pufferzeiger 0-8
| $CD-$CE/205-206 Zeiger in INPUT-Puffer
| $CF-$D0/207-208 Zeiger in ERROR-Puffer
| $D1-$D7/209-215 1. Puffer fuer Kanal
| $D8-$DE/216-222 2. Puffer fuer Kanal
| $DF-$E4/223-228 Tabelle: Am laengsten inaktive Kanaele
| $E5-$E9/229-233 Dir-Block, in dem Dateieintrag ist
| $EA-$EE/234-238 Zeiger in den Dir-Block mit dem Eintrag
| $EF-$F3/239-243 Drivenummern der Parameter
| $F4-$F8/244-248 Dateitypen und Flags fuer Joker
| $F9-$FF/249-255 Dateitypentabelle
|
| $0100/256 Gruppennummer des aktuellen Records
| $0101/257 Modus der REL-Datei
| $0102-$0108/258-264 Aktuelle Gruppennummer
| $0109-$010F/265-271 Sektor des Super-Side Sektors
| $0110-$0116/272-278 Track des Super-Side Sektors
| $0117-$018F/279-399 Stackbereich
| $0190-$0191/400-401 w b0f0 Haupt-Leerschleife
| $0192-$0193/402-403 w dafd Interrupt-Routine
| $0194-$0195/404-405 w afca Warmstartvector
| $0196-$0197/406-407 w b262 VALIDATE
| $0198-$0199/408-409 w 8ec5 INITIALIZE
| $019A-$019B/410-411 w b781 Partition
| $019C-$019D/412-413 w 892f Memory-Read/Write
| $019E-$019F/414-415 w 8a5d Block-Befehle
| $01A0-$01A1/416-417 w 898f USER
| $01A2-$01A3/418-419 w a1a1 POSITION (RECORD)
| $01A4-$01A5/420-421 w a956 Utility-Loader (&)
| $01A6-$01A7/422-423 w 876e COPY
| $01A8-$01A9/424-425 w 88c5 RENAME
| $01AA-$01AB/426-427 w 8688 SCRATCH
| $01AC-$01AD/428-429 w b348 NEW
| $01AE-$01AF/430-431 w a7ae Error-Routine des Controllers
| $01B0-$01B1/432-433 w abcf ATN-bearbeiten
| $01B2-$01B3/434-435 w ad5c Daten auf ser. Bus
| $01B4-$01B5/436-437 w aeb8 Daten vom ser. Bus
| $01B6-$01B7/438-439 w c0be Controller-Routine
| $01B8-$01B9/440-441 w cedc log. in phy. Format
| $01BA-$01BB/442-443 w a7f1 Error-Routine des DOS
| $01BC-$01CD/444-461 Jobspeicher HDRS2
| $01CE-$01D6/462-470 Jobspeicher SIDS
| $01D7-$01D8/471-472 Timer B Wert im Hi/Lo-Format
| $01D9/473 Anlaufzeit des Motors
| $01DA/474 Controller-Befehl: 'Restore'
| $01DB/475 Controller-Befehl: 'Seek'
| $01DC/476 Controller-Befehl: 'Step'
| $01DD/477 Controller-Befehl: 'Step-in'
| $01DE/478 Controller-Befehl: 'Step-out'
| $01DF/479 Controller-Befehl: 'Read Sector'
| $01E0/480 Controller-Befehl: 'Write Sector'
| $01E1/481 Controller-Befehl: 'Read Adress'
| $01E2/482 Controller-Befehl: 'Read Track'
| $01E3/483 Controller-Befehl: 'Write Track'
| $01E4/484 Controller-Befehl: 'Force Interrupt'
| $01E5/485 1. Sektor des Verzeichnisses
| $01E6-$01E7/486-487 Zwischenspeicher
| $01E8-$01E9/488-489 Zwischenspeicher
| $01EA/490 Zwischenspeicher: (Burst-) Status/Fehlercode
| $01EB/491 1581-Formatkennzeichen 'D'
| $01EC/492 DOS-Versionsnummer '3'
| $01ED-$01EE/493-494 Laenge der Partition
| $01EF/495 kleinste gefundene Sektornummer (BURST)
| $01F0/496 groesste gefundene Sektornummer (BURST)
| $01F1-$01F9/497-505 Hi-Bytes der Pufferadressen
| $01FA/506 Schreibschutz Status
| $01FB/507 Autoboot-Flag
| $01FC-$01FE/508-510 JMP $BA40: Byte auf FSM-Bus ausgeben
| $01FF/511 (frei)
|
| $0200-$0229/512-553 Kommandopuffer
| $022A-$00/554-0 Aktuelle Befehlsnummer ($80-$89: Block-Befehle)
| $022B/555 Track des Direktory
| $022C/556 letzter Track der aktuellen Partition + 1
| $022D/557 Aktueller Dateityp
| $022E/558 Anzahl der Parameter (vor '=') (Zwischenspeicher)
| $022F/559 Anzahl der Parameter in der Kommandozeile
| $0230/560 Anzahl der Parameter vor '='
| $0231/561 Zaehler fuer Suche im Directory
| $0232/562 Zeiger auf den gefundenen Dir-Eintrag
| $0233/563 Dateityp aus der Kommandozeile
| $0234-$0239/564-569 Kanalstatustabelle
| $023A/570 Kanalstatus fuer Fehlerkanal
| $023B-$0240/571-576 Ausgabe-Bytes der Kanaele an seriellen Bus
| $0241/577 Ausgabe-Byte des Fehlerkanals
| $0242-$0248/578-584 Anzahl der gueltigen Bytes im Datenblock
| $0249-$024F/585-591 Aktuelle Recordnummer oder Dateilaenge Lo
| $0250-$0256/592-598 Aktuelle Recordnummer oder Dateilaenge Hi
| $0257-$025D/599-605 Position des naechsten Records im Block
| $025E-$0264/606-612 Aktuelle Recordlaenge
| $0265-$026B/613-619 Side-Sektor-Puffer fuer Kanal
| $026C/620 aktuelle Parameterlaenge (s. $8526)
| $026D/621 Nummer des gefundenen Dateinamens
| $026E/622 >0: formatiertes Directory wird auf SA 0 ausgegeben
| $026F/623 aktuelle Recordlaenge
| $0270/624 Track des aktuellen Super-Side-Sektors
| $0271/625 Sektor des aktuellen Super-Side-Sektors
| $0272-$027A/626-634 Zwischenspeicher fuer Jobcodes
| $027B-$027C/635-636 (frei)
| $027D-$0283/637-643 Dir-Block mit dem Dateieintrag des Kanals
| $0284-$028A/644-650 Position des Dateieintrags im Dir-Block
| $028B/651 1. Sektornummer der letzten Datei ("*")
| $028C/652 Zwischenspeicher (Kanalnummer)
| $028D/653 Directory: Basic Zeilennummer Lo
| $028E/654 Directory: Basic Zeilennummer Hi
| $028F/655 Zwischenspeicher fuer Zeichensuche
| $0290/656 Zeiger hinter aktuellen Parameter
| $0291-$0296/657-662 Position der Parameter in der Kommandozeile
| $0297-$029B/663-667 Werte aus Kommandozeile Hi-Bytes
| $029C-$02A0/668-672 Werte aus Kommandozeile Lo-Bytes
| $02A1/673 Jokerflag: Aktueller Dateiname enthaelt '*' oder '?'
| $02A2/674 Bitmaske bei Kommandozeilen-Test
| $02A3/675 Anzahl der Laufwerke
| $02A4/676 eine Art Drivenummer (bei Directory-Laden)
| $02A5/677 Such-Ergebnis
| $02A6/678 Flag fuer Directory-Ende (0: Ende)
| $02A7/679 Zugriffsart aus Kommandozeile (R,W,A,M)
| $02A8/680 Fehlerpruefung ausschalten
| $02A9-$02AA/681-682 Anzahl freie Blocks
| $02AB/683 Fehlernummer
| $02AC-$02C7/684-711 Directory-Zeile
| $02C8-$02CF/712-719 (frei)
| $02D0-$02FF/720-767 Fehlerpuffer fuer Meldungen im Klartext
|
| $0300-$03FF/768-1023 Puffer 0
| $0400-$04FF/1024-1279 Puffer 1
| $0500-$05FF/1280-1535 Puffer 2 (User-Puffer)
| $0600-$06FF/1536-1791 Puffer 3
| $0700-$07FF/1792-2047 Puffer 4
| $0800-$08FF/2048-2303 Puffer 5
| $0900-$09FF/2304-2559 Puffer 6
| $0A00-$0AFF/2560-2815 Puffer 7 (BAM Teil 1)
| $0B00-$0BFF/2816-3071 Puffer 8 (BAM Teil 2)
| $0C00-$1FFF/3072-8191 Cache-Puffer
| $1FFF/8191 End of RAM
|
+------------------------------------------------------------------------