+------------------------------------------------------------------------ | | 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 | +------------------------------------------------------------------------ |