Das Schneider CPC Systembuch

Anhang

Systemspeicher im CPC

Das RAM des Betriebssystems

RAM des Kernel
CPC 464      CPC 664      CPC 6128      Bedeutung der Speicherstelle(n)
-------      -------      --------      -------------------------------
b100,b101    b82d,b82e    b82d,b82e     Start der asynchronous pending queue
b102,b103    b82f,b830    b82f,b830     Letzter Die Speicherkonfiguration im Schneider CPC: BlockBlock in der asyn. pend. queue
b104         b831         b831          Die Z80: Wirkung der Z80-Befehle auf die FlagsFlags für Queue-Bearbeitungen
b105,b106    b832,b833    b832,b833     Zw.speicher für SP bei Queue-Bearbeitg.
b107-b186    b834-b8b3    b834-b8b3     Privatstack bei Queue-Bearbeitung
b187-b18a    b8b4-b8b7    b8b4-b8b7     TIME-Speicher
b18b         b8b8         b8b8          Sperrbyte gegen TIME-Überlauf
b18c,b18d    b8b9,b8ba    b8b9,b8ba     Start der frame blyback Datenspeicherung und Datenstrukturen: Chainschain
b18e,b18f    b8bb,b8bc    b8bb,b8bc     Start der fast ticker Datenspeicherung und Datenstrukturen: Chainschain
b190,b191    b8bd,b8be    b8bd,b8be     Start der ticker Datenspeicherung und Datenstrukturen: Chainschain
b192         b8bf         b8bf          1/6-Zählbyte für Ticker
b193,b194    b8c0,b8c1    b8c0,b8c1     Start der synchronous pending queue
b195         b8c2         b8c2          aktuelle synchronous Event-Priorität
b196-b1a5    b8c3-b8d2    b8c3-b8d2     Puffer für RSX-Name --> MAIN FIRMWARE JUMPBLOCK: KERNEL
Die Firmware des Schneider CPC: KERNEL
KL
FIND Befehls-Elemente: CommandsCOMMAND b1a6,b1a7 b8d3,b8d4 b8d3,b8d4 Start der external Befehls-Elemente: Commandscommand Datenspeicherung und Datenstrukturen: Chainschain (Maschinencode über HIMEM: RSXRSXes) ---- ---- b8d5 Aktuelle BD5B: KL RAM SELECT: Mögliche RAM-Konfigurationen:RAM-Konfiguration b1a8 b8d5 b8d6 Aktuelle Die Speicherkonfiguration im Schneider CPC: ROM-KonfigurationROM-Konfiguration b1a9,b1aa b8d6,b8d7 b8d7,b8d8 Startadr. des lfd. Vordergrund-Programms b1ab b8d8 b8d9 & dessen Die Speicherkonfiguration im Schneider CPC: ROM-KonfigurationROM-Konfiguration (->SIDE Maschinencode über HIMEM: CALLCALL) b1ac-b1b9 b8d9-b8f8 b8da-b8f9 IY-Speicher für die Speicheraufteilung durch ein Vordergrund-Programm: Hintergrund-ROMsHintergrund-ROMs CPC 464: 1-7 / CPC664/6128: 0-15 b1ba-b1c7 b8f9-b8ff b8fa-b8ff {unbenutzt}
RAM des Machine Pack
             CPC 664/6128      Bedeutung der Speicherstelle(n)
             ------------      -------------------------------
             b804-b82c         Drucker-Übersetzungstabelle
RAM des Screen Pack
CPC 464      CPC 664/6128      Bedeutung der Speicherstelle(n)
-------      ------------      -------------------------------
b1c8         b7c3              Bildschirm-Modus
b1c9,b1ca    b7c4,b7c5         Scroll-Offset der Das Screen Pack: RAM-ZeilenRAM-Zeilen
b1cb         b7c6              MSB des Bildschirm-Starts (&00,&40,&80 oder &Der Zeichensatz des Schneider CPC: &C0 = 192C0)
b1cc-b1ce    b7c7-b7c9         Überblick: Die Indirections der Firmware-Packs
Die Firmware des Schneider CPC: Die Indirections der Firmware-Packs
Indirection
zum Punkte-Plotten: force/and/or/xor b1cf-b1d6 ---- Pixel-Masken: MaskenbytesMaskenbytes für Pixel im Datentypen: Bytes
Datenbreite: Bytes
Byte
, je nach Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 2:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 1:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 0:
Mode
---- b7ca-b7d1 {unbenutzt} b1d7 b7d2 Blink-Periode Farbsatz 1 b1d8 b7d3 Blink-Periode Farbsatz 0 b1d9-b1e9 b7d4-b7e4 Paletten-Farbnummern für Border&Inks Farbsatz 1 b1eb-b1fa b7e5-b7f5 Paletten-Farbnummern für Border&Inks Farbsatz 0 b1fb b7f6 Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für aktuellen Farbsatz b1fc b7f7 Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für neu zugeordnete Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farben
in der Tabelle b1fd b7f8 Count Down für aktuelle Blink-Periode b1fe-b206 b7f9-b801 frame flyback Die Speicherkonfiguration im Schneider CPC: Blockblock für Farbblinken b207,b208 b802,b803 diverse Speicher für Grafik-Routinen b209-b20b ---- {unbenutzt}
RAM der Text-VDU
CPC 464      CPC 664/6128      Bedeutung der Speicherstelle(n)
-------      ------------      -------------------------------
b20c         b6b5              aktuelles Textfenster
b20d-b21b    b6b6-b6c3         Basic und Maschinencode: ParameterParameter für Die Text-VDU: FensterFenster 0
b21c-b22a    b6c4-b6d1         Basic und Maschinencode: ParameterParameter für Die Text-VDU: FensterFenster 1
b22b-b239    b6b2-b6df         Basic und Maschinencode: ParameterParameter für Die Text-VDU: FensterFenster 2
b23a-b248    b6e0-b6ed         Basic und Maschinencode: ParameterParameter für Die Text-VDU: FensterFenster 3
b249-b257    b6ee-b6fb         Basic und Maschinencode: ParameterParameter für Die Text-VDU: FensterFenster 4
b258-b266    b6fa-b709         Basic und Maschinencode: ParameterParameter für Die Text-VDU: FensterFenster 5
b267-b275    b70a-b717         Basic und Maschinencode: ParameterParameter für Die Text-VDU: FensterFenster 6
b276-b284    b718-b725         Basic und Maschinencode: ParameterParameter für Die Text-VDU: FensterFenster 7
 
b285-b293    b726-b733         Basic und Maschinencode: ParameterParameter für das aktuelle Textfenster
     b285         b726         Cursor-Zeile   ( l.o. = (0,0) )
     b286         b727         Cursor-Spalte  ( l.o. = (0,0) )
     b287         b728         Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für Das Screen Pack: Hardware-ScrollHardware-Scroll möglich (0-HW/&FF-SW)
     b288         b729         Fenstergrenze oben
     b289         b72a         Fenstergrenze links
     b28a         b72b         Fenstergrenze unten
     b28b         b72c         Fenstergrenze rechts
     b28c         b72d         Zählbyte für Scrolls hoch/runter
     b28d         ----         Erklärung zu den verwendeten Bezeichnungen: CursorCursor: Der Zeichensatz des Schneider CPC: &B0 = 176b0= 0-enabled/1-disabled / b1= 0-on/1-off
     b28e         ----         Text-Ausgabe: 0 -> disabled / <>0 -> enabled
     ----         b72e         Erklärung zu den verwendeten Bezeichnungen: CursorCursor: Der Zeichensatz des Schneider CPC: &B0 = 176b0= 0-enabled/1-disabled / b1= 0-on/1-off
                               und Text-Ausgabe: b7= 0-enabled/1-disabled
     b28f         b72f         Das Screen Pack: FarbbytesFarbbyte (Farbbytes: Encoded Inks:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Farbmasken (encoded Inks)
encoded ink
) für PEN b290 b730 Das Screen Pack: FarbbytesFarbbyte (Farbbytes: Encoded Inks:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Farbmasken (encoded Inks)
encoded ink
) für PAPER b291,2 b731,2 Routinen-Adresse entsprechend Die Grafik-VDU: Hintergrund-ModusHintergrund-Modus b293 b733 Text-at-graphics-Flag: 0 -> TAGOFF / <>0 -> TAG   b294 b734 CHR$()-Nummer der ersten Zeichen-Matrize im RAM b295 b735 Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag: 0 -> keine / &FF -> Matrizen im RAM b296,b297 b736,b737 Start-Adresse der Zeichen-Matrizen im RAM b298-b2b7 b738-b757 Puffer für expandierte Zeichen-Matrix b2b8 b758 Anzahl Zeichen im Controlcode-Puffer (<>0 -> Controlcode wartet auf Basic und Maschinencode: ParameterParameter) b2b9-b2c2 b759-b762 Controlcode-Puffer b2c3-b322 b763-b7c2 Controlcode-Tabelle (Anz. Arg. & Routinen-Adr.) b323-b327 ---- {unbenutzt}
RAM der Graphics-VDU
CPC 464      CPC 664/6128      Bedeutung der Speicherstelle(n)
-------      ------------      -------------------------------
b328,b329    b693,b694         Origin: X-Koordinate
b32a,b32b    b695,b696         Origin: Y-Koordinate
b32c,b32d    b697,b698         Grafik-Cursor: X-Koordinate
b32e,b32f    b699,b69a         Grafik-Cursor: Y-Koordinate
b330,b331    b69b,b69c         Grafik-Fenstergrenze: links
b332,b333    b69d,b69e         Grafik-Fenstergrenze: rechts
b334,b335    b69f,b6a0         Grafik-Fenstergrenze: oben
b336,b337    b6a1,b6a2         Grafik-Fenstergrenze: unten
b338         b6a3              Das Screen Pack: FarbbytesFarbbyte (Farbbytes: Encoded Inks:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Farbmasken (encoded Inks)
encoded Ink
) für Vordergrund-Pixel b339 b6a4 Das Screen Pack: FarbbytesFarbbyte (Farbbytes: Encoded Inks:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Farbmasken (encoded Inks)
encoded Ink
) für Hintergrund-Pixel b33a-b346 b6a5-b6b1 Zwischenspeicher für diverse Aufgaben (Print Char. bei TAG, DRAW Linie, FILL) ---- b6b2 Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für Erste-Punkt-Option ---- b6b3 Linien-Maske ---- b6b4 Die Grafik-VDU: Hintergrund-ModusHintergrund-Modus: 0 -> opaque / &FF -> transpar. b347-b34b ---- {unbenutzt}
RAM des Keyboard Managers
CPC 464      CPC 664/6128      Bedeutung der Speicherstelle(n)
-------      ------------      -------------------------------
b34c-b39b    b496-b4e5         Tasten-Übersetzungstabelle für Taste SOLO
b39c-b3eb    b4e6-b535         Tasten-Übersetzungstabelle für Taste mit SHIFT
b3ec-b43b    b536-b585         Tasten-Übersetzungstabelle für Taste mit CTRL
b43c-b445    b586-b58f         Tasten-Repeat-Tabelle
b446-b4dd    b590-b627         Expansionstring-Puffer
b4de         b628              Zähler im Expansion-String
b4df         b629              Nummer des aktuellen Erweiterungszchn. (wenn <>0)
b4e0         b62a              Puffer für put back character
b4e1,b4e2    b62b,b62c         Zeiger auf Expansionstring-Puffer
b4e3,b4e4    b62d,b62e         Zeiger auf dessen Ende
b4e5,b4e6    b62f,b630         Zeiger auf den noch freien Bereich darin
b4e7         b631              b7= 0 -> kein Shift-Lock / =1 -> Shift-Lock
b4e8         b632              b7= 0 -> kein Caps-Lock  / =1 -> Caps-Lock
b4e9         b633              Erste Verzögerungszeit beim 'Repeaten'
b4ea         b634              Zeit für die Wiederholverzögerung dabei
b4eb-b4f4    b635-b63e         Tabelle für aktuell gedrückte Tasten
b4f5-b4fe    b63f-b648         Zwischentabelle dafür
b4ff-b508    b649-b652         Zwischentabelle dafür
b509         b653              Count Down für Der Key Manager: RepeatRepeat
b50a,b50b    b654,b655         Aktuelle Taste (physikalische Informationen)
b50c         b656              Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für Break-Mechanismus: <>0 -> scharf
b50d-b513    b657-b65d         Break-Eventblock
b514-b53b    b65e-b685         Der Key Manager: WarteschlangeWarteschlange für gedrückte Tasten
                               (physikalische Informationen)
b53c-b540    b686-b68a         Basic und Maschinencode: ParameterParameter zur Verwaltung der Der Key Manager: WarteschlangeWarteschlange
b541,b542    b68b,b68c         Zeiger auf Tasten-Übersetzungstabelle SOLO
b543,b544    b68d,b68e         Zeiger auf Tasten-Übersetzungstabelle mit SHIFT
b545,b546    b68f,b690         Zeiger auf Tasten-Übersetzungstabelle mit CTRL
b547,b548    b691,b692         Zeiger auf Tasten-Repeat-Tabelle
b549-b54f    ----              {unbenutzt}
RAM des Sound Manager
CPC 464      CPC 664/6128      Bedeutung der Speicherstelle(n)
-------      ------------      -------------------------------
b550         ----              Zwischenspeicher für restl. Kanal-Aktivitaet
b551         b1ed              alte Kanal-Aktivitaet (für SOUND MANAGER: BCB9: SOUND CONTINUESOUND CONTINUE)
b552         b1ee              aktuelle Kanal-Aktivitaet (Der Zeichensatz des Schneider CPC: &B0 = 176b0/1/2 = Kanal Erklärung der Anschlussbelegung: A, B, CA/B/C)
b553         b1ef              1/3-Zählbyte für Sound-Chain
b554         b1f0              Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für Kanal zu bearbeiten
b555-b55b    b1f1-b1f7         BCEF: KL INIT EVENT: EventblockEventblock für Anhang: Die Tonausgabedie Tonausgabe
b55c-b59a    b1f8-b236         Parameterblock für Kanal Operationen: BD5B / 349A / 349A:  FLO SUBA (u.Operationen: BD5B / 349A / 349A:  FLO SUBA. SOUND MANAGER: BCAA: SOUND QUEUESound Queue)
b59b-b5d9    b237-b275         Parameterblock für Kanal LOW KERNEL JUMPBLOCK: 000B:  LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
(u.Operationen: BD5B / 349A / 349A: FLO SUBA. SOUND MANAGER: BCAA: SOUND QUEUESound Queue) b5da-b618 b276-b2b4 Parameterblock für Kanal C (u.Operationen: BD5B / 349A / 349A: FLO SUBA. SOUND MANAGER: BCAA: SOUND QUEUESound Queue) b619 b2b5 Datentypen: Bytes
Datenbreite: Bytes
Byte
für Kontroll-Register des Die ICs im Überblick: Der PSG AY-3-8912
Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912
PSG
b61a-b709 b2b6-b3a5 Lautstärke-Hüllkurven 1 bis 15 b70a-b7f9 b3a6-b495 Der Sound Manager: Frequenz-Hüllkurven
BCBF: SOUND TONE ENVELOPE: Der Parameterblock der Frequenz-Hüllkurve:
Frequenz-Hüllkurven
1 bis 15 b7fa-b7ff ---- {unbenutzt}
RAM des Cassette Managers
CPC 464      CPC 664/6128      Bedeutung der Speicherstelle(n)
-------      ------------      -------------------------------
b800         b118              0 -> Message on / &FF -> Message off
b801         b119              0 -> Meldung in einem Stück / &FF zerteilt
 
b802         b11a              Status der INPUT-Datei
b803,b804    b11b,b11c         Adresse des 2k-Input-Puffers
b805,b806    b11d,b11e         Zeiger im Input-Puffer
b807-b846    b11f-b15e         Header-Puffer für Input
 
b847         b15f              Status der OUTPUT-Datei
b848,b849    b160,b161         Adresse des 2k-Output-Puffers
b84a,b84b    b162,b163         Zeiger im Output-Puffer
b84c-b88b    b164-b1a3         Header-Puffer für Output
 
b88c-b8cb    b1a4-b1e3         Puffer für neu gelesenen Amsdos: HeaderHeader
b8cc         b1e4              Der Zeichensatz des Schneider CPC: &B0 = 176b0: Eingabe 0-nicht aktiv / 1-aktiv
                               b1: Ausgabe 0-nicht aktiv / 1-aktiv
b8cd         b1e5              Der Cassette Manager: Synchronisations-ZeichenSynchronisations-Zeichen
b8ce-b8d0    b1e6-b1e8         diverse Zwischenspeicher beim Lesen/Schreiben
b8d1         b1e9              Pre-Kompensation
b8d2         b1ea              Speichergeschwindigkeit
b8d3,b8d4    b1eb,b1ec         CRC-Prüfwort
b8d5-b8db    ----              {unbenutzt}
RAM des Zeileneditors
CPC 464      CPC 664/6128      Bedeutung der Speicherstelle(n)
-------      ------------      -------------------------------
b8dc         b114              Erklärung zu den verwendeten Bezeichnungen: CursorCursor/Copycursor-Flag
b8dd         b115              Insert-Flag
b8de,b8df    b116,b117         Koordinaten des Copy-Cursors
b8e0-b8e3    ----              {unbenutzt}
RAM des Floating Point Pack
CPC 464      CPC 664/6128      Bedeutung der Speicherstelle(n)
-------      ------------      -------------------------------
b8e4-b8e7    b100-b103         RND-Zahl (LW oder FLO normalisiert ohne Exponent)
b8e8-b8f6    b104-b112         3 Zwischenspeicher für Fließkommazahlen
b8f7         b113              Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für 0 -> RAD / <>0 -> DEG
b8f8-b8ff    ----              {unbenutzt}

Das RAM des Basic-Interpreters

CPC 464      CPC 664/128      Bedeutung der Speicherstelle(n)
-------      -----------      -------------------------------
ac00         ac00             Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für Space-Unterdrückung beim Tokenisieren
 
ac01-ac1b    ----             Basic-Indirections:
     ac01    ----             Eingabeschleife
     ac04    ----             Fehlerausgabe
     ac07    ----             Befehlsausführung
     ac0a    ----             Funktionsauswertung
     ac0d    ----             Operandenauswertung
     ac10    ----             ASCII-Wort tokenisieren
     ac13    ----             Basic: Die Token des Locomotive-BasicToken zurück nach ASCII wandeln
     ac16    ----             Schlüsselwort tokenisieren
     ac19    ----             Ausführungsroutine zu einem Basic: Die Token des Locomotive-BasicToken suchen
 
ac1c         ac01             Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für AUTO
ac1d,ac1e    ac02,ac03        aktuelle Zeilennummer für AUTO
ac1f,ac20    ac04,ac05        Schrittweite für AUTO
ac21         ac06             aktueller Ausgabekanal (Stream)
ac22         ac07             aktueller Eingabekanal
ac23         ac08             aktuelle X-Position auf dem Drucker
ac24         ac09             WIDTH
ac25         ac0a             aktuelle X-Position in der Ausgabedatei
---          ac0b             Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für ON BREAK CONT (0=aktiv)
ac26         ac0c             Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für NEXT-Behandlungsroutine
ac27-ac2b    ac0d-ac11        Speicher für Startwert in FOR-NEXT-Schleife
ac2c,ac2d    ac12,ac13        Zeiger hinter zugehöriges NEXT
ac2e,ac2f    ac14,ac15        Zeiger auf Zeile mit zugehörigem WEND
 
ac30         ac16             Die Z80: Wirkung der Z80-Befehle auf die FlagsFlags für die Bearbeitung Der Kernel - Software-Interrupts: Synchrone Eventssynchroner Events
ac31-ac35    ac17-ac1b        Parameterblock für ON BREAK GOSUB:
     ac31         ac17        alte Priorität (A-Register nach KERNEL: BCFB: KL NEXT SYNCKL NEXT SYNC)
     ac32,33      ac18,19     Basic-Rücksprungsadresse (PC im Basicprogramm)
     ac34,35      ac1a,1LOW KERNEL JUMPBLOCK: 000B:  LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
b
Adresse des Basic-Unterprogramms ac36,ac37 ac1c,ac1d Zeiger auf Routinenadresse im Break-Eventblock ac38-ac43 ac1e-ac29 ON SQ(1) GOSUB ac38-3e ac1e-24 BCEF: KL INIT EVENT: EventblockEventblock ac3f-43 ac25-29 Parameterblock (wie bein ON BREAK GOSUB) ac44-ac4f ac2a-ac35 ON SQ(2) GOSUB ac50-ac5b ac36-ac41 ON SQ(4) GOSUB ac5c-ac6d ac42-ac53 EVERY/AFTER ,0 GOSUB ac5c-68 ac42-4e Ticker Datenspeicherung und Datenstrukturen: ChainsChain Die Speicherkonfiguration im Schneider CPC: BlockBlock ac69-6d ac4f-53 Parameterblock (wie bei ON BREAK GOSUB) ac6e-ac7f ac54-ac65 EVERY/AFTER ,1 GOSUB ac80-ac91 ac66-ac77 EVERY/AFTER ,2 GOSUB ac92-aca3 ac78-ac89 EVERY/AFTER ,3 GOSUB   aca4-ada5 ac8a-ad8b *** ASCII-Puffer *** (INPUT, Trees: ListenLIST)   ada6,ada7 ad8c,ad8d Zeilenadresse des letzten Fehlers für ERL ada8,ada9 ad8e,ad8f Statementadresse des letzten Fehlers adaa ad90 Nummer des letzten Fehlers für ERR ---- ad91 Fehlernummer für DERR adab,adac ad92,ad93 Statementadresse nach BREAK für CONT adad,adae ad94,ad95 Zeilenadresse nach BREAK für CONT adaf,adb0 ad96,ad97 Adresse des Basic-Programms für ON ERROR GOTO adb1 ad98 Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für ON ERROR (&FF = im On-Error-Pfad) adb2-adba ad99-ada1 Puffer für SOUND-Parameter adbb-adca ada2-adb1 Puffer für ENV- und ENT-Parameter adcb-adcf adb2-adb6 Zwischenspeicher beim Potenzieren   add0-ae03 adb7-adea Startpointer der Datenspeicherung und Datenstrukturen: ChainsChains der normalen Unterprogramme: VariablenVariablen (26 Stück für jeden Variablentypen) ae04,ae05 adeb,adec Startpointer der Datenspeicherung und Datenstrukturen: ChainsChain der DEF FN ae06,ae07 aded,adee Startpointer der Datenspeicherung und Datenstrukturen: ChainsChain der Real-Variablenfelder ae08,ae09 adef,adf0 Startpointer der Datenspeicherung und Datenstrukturen: ChainsChain der Integer-Variablenfelder ae0a,ae0b adf1,adf2 Startpointer der Datenspeicherung und Datenstrukturen: ChainsChain der String-Variablenfelder ae0c-ae25 adf3-ae0c Default-Variablentyp: DEFINT, DEFREAL, DEFSTR (26 Stück für jeden Variablentypen) ae26 ae0d Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für ad-hoc-Dimensionierung von Feldern   ae27-ae2c ae0e-ae13 Zeiger beim Auswerten von Ausdrücken ae2d ae14 Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für CR/LF nach INPUT ae2e,ae2f ae15,ae16 Zeilenadresse des DATA-Zeigers ae30,ae31 ae17,ae18 DATA-Zeiger ae32,ae33 ae19,ae1a Basic-Stackpointer zum Statementanfang ae34,ae35 ae1b,ae1c Adresse des aktuellen Befehls-Elemente: StatementsStatements ae36,ae37 ae1d,ae1e Adresse der aktuellen Basiczeile ae38 ae1f Trace-Flag: 0-TROFF / &FF-TRON ae39 ae20 Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag beim Tokenisieren ae3a ae21 Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag: 0 -> keine Zeilenadressen im Programm. Der Programmtext ist ortsunabhängig. ae3b-ae3e ae22-ae25 Basic und Maschinencode: ParameterParameter für DELETE ae3f,ae40 ae26,ae27 Startadresse beim Laden von Programmen ae41 ae28 Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für Datenspeicherung und Datenstrukturen: ChainsCHAIN / Datenspeicherung und Datenstrukturen: ChainsCHAIN MERGE ae42 ae29 Speicher für File-Typ ae43,ae44 ae2a,ae2b File-Länge ae45 ae2c Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für geschütztes Basicprogramm, wenn &FF ae46-ae6d ae2d-ae51 Puffer für Zahlenwandlung ae6e-ae71 ae52-ae54 diverse Speicher bei der Zahlenwandlung ae72-ae74 ae55-ae57 FAR ADDRESS für Maschinencode über HIMEM: CALLCALL oder RSX-Aufruf ae75,ae76 ae58,ae59 Speicher für Basic-Programmzeiger bei Maschinencode über HIMEM: CALLCALL / Maschinencode über HIMEM: RSXRSX ae77,ae78 ae5a,ae5b Speicher für den SP der Die ICs im Überblick: Die CPU Z80
Das Innenleben der CPC-Rechner: Die CPU Z80
Die Anschlussbelegungen der wichtigsten ICs im CPC: Die CPU Z80
CPU
bei Maschinencode über HIMEM: CALLCALL / Maschinencode über HIMEM: RSXRSX ae79 ae5c ZONE ae7a ae5d Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für Ende des Format-Strings bei PRINT USING   ae7b,ae7c ae5e,ae5f Systemspeicher für Die Aufteilung des RAM durch den Basic-Interpreter: Chaos über HIMEMHIMEM ae7d,ae7e ae60,ae61 Ende des Basic-RAMs nach KERNEL: BCCB: KL ROM WALKKL ROM WALK ae7f,ae80 ae62,ae63 Start des Basic-RAMs nach KERNEL: BCCB: KL ROM WALKKL ROM WALK ae81,ae82 ae64,ae65 Start des Basicprogramms ae83,ae84 ae66,ae67 Ende des Basicprogramms ae85,ae86 ae68,ae69 Start des Variablenbereichs ae87,ae88 ae6a,ae6b Start des Bereichs der Felder ae89,ae8a ae6c,ae6d Ende der Felder   ---- ae6e Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für geschützten Variablenbereich ae8b-b08a ae6f-b06e *** Basic-Stack *** b08b,b08c b06f,b070 Stackpointer im Basic-Stack b08d,b08e b071,b072 Anfang der Datentypen: StringsStrings b08f,b090 b073,b074 Ende der Datentypen: StringsStrings b091 b075 Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für den I/O-Puffer: Der Zeichensatz des Schneider CPC: &B0 = 176b0=1 -> Input aktiv / b1=1 -> Output aktiv / b2=1 -> Puffer reserviert b092,b093 b076,b077 Zeiger auf (CPC 464: vor) I/O-Puffer b094-b099 b078-b07b Zwischenspeicher bei Änderungen von Die Aufteilung des RAM durch den Basic-Interpreter: Chaos über HIMEMHIMEM b09a,b09b b07c,b07d Stackpointer im Stringdescriptor-Stack b09c-b0b9 b07e-b09b Stringdescriptor-Stack b0ba-b0bc b09c-b09e Puffer für einen String-Descriptor b0bd-b0c0 ---- Speicher bei einer Strings: Garbage CollectionGarbage Collection b0c1 b09f Typ des Basic-Akku: Datentypen: RealReal, Datentypen: StringsString oder Integer b0c2-b0c6 b0a0-b0a4 Akku bei der Auswertung von Ausdrücken (Integer, Datentypen: RealReal oder Zeiger auf Stringdescriptor) b0c7-b0ff b0a5-b0ff {unbenutzt}

Das RAM des Amsdos-Disketten-Controllers

Die ortsfesten Systemspeicher
CPC 464/664/6128   Bedeutung der Speicherstelle(n)
----------------   -------------------------------
be40,be41          Adresse des DPH (disc Basic und Maschinencode: Parameterparameter Amsdos: Headerheader) Laufwerk Operationen: BD5B / 349A / 349A:  FLO SUBA
be42,be43          Adresse des DPB (disc Basic und Maschinencode: Parameterparameter Die Speicherkonfiguration im Schneider CPC: Blockblock)  Laufwerk Operationen: BD5B / 349A / 349A:  FLO SUBA
be44,be45          Wartezeit nach Starten des Motors
be46,be47          Wartezeit bis zum Stoppen des Motors nach dem letzten Zugriff
be48               Verzögerungszeit beim Formatieren
be48,be4a          Verzögerungszeit
be4b               Anzahl Datentypen: Bytes
Datenbreite: Bytes
Bytes
aus der Result-Phase Die ICs im Überblick: Der FDC 765
Das Innenleben der CPC-Rechner: Der FDC 765
des FDC
be4c-be52 Puffer für Datentypen: Bytes
Datenbreite: Bytes
Bytes
aus der Result-Phase be53-be5d diverse Speicher für Sektor-Zugriff be5e Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für Sektor lesen/schreiben be5f Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für Motor an/aus be60,be61 Zeiger auf I/O-Puffer für einen Datenspeicherung und Datenstrukturen: RecordsRecord be62,be63 Zeiger auf I/O-Puffer für einen Sektor be64,be65 Zwischenspeicher für SP be66 Low Level Disc Driving: &89 Retry CountRetry Count (max. Anzahl für Leseversuche) be67-be73 ticker Datenspeicherung und Datenstrukturen: Chainschain Die Speicherkonfiguration im Schneider CPC: Blockblock für Motor-Aus-Event be74 Speicher für angewählte Spur be75 Speicher für Befehlsbyte zum Die ICs im Überblick: Der FDC 765FDC be76,be77 Zeiger auf I/O-Puffer für einen Sektor be78 Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für Low Level Disc Driving: &81 Message on/offMessage on/off be79-be7c {unbenutzt} be7d,be7e Puffer für IY = Adresse des dynamisch zugeteilten Speichers be7f-be81 Überblick: Die Indirections der Firmware-Packs
Die Firmware des Schneider CPC: Die Indirections der Firmware-Packs
Indirection
für alle von Die Abteilungen des Betriebssystems: AmsdosAmsdos gepatchten Vektoren
Das dynamisch zugeteilte RAM
CPC 464/664/6128    Bedeutung der Speicherstelle(n)
----------------    -------------------------------
a700                momentan angeaehltes Laufwerk
a701                aktuelle USER-Nummer
a702                aktives Laufwerk
a703,a704           Zeiger auf den disc Basic und Maschinencode: Parameterparameter Amsdos: Headerheader des aktiven Laufwerkes
a705                Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für I/O-Datei auf aktivem Laufwerk offen
a706,a707           Zwischenspeicher für SP
 
a708-a72b           Erweiterter file control Die Speicherkonfiguration im Schneider CPC: Blockblock für OPENIN:
     a708           Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag: &FF -> keine Datei eröffnet, sonst 0/1 = Drive
     a709-a728      aktuell benötigter Directory-Extent
          a709      USER
          a70a-a714 Filename und Extension
          a715      Nummer dieses Extents
          a716,a717 {unbenutzt}
          a718      Anzahl Datenspeicherung und Datenstrukturen: RecordsRecords in diesem Extent
          a719-a728 Block-Belegungstabelle
     a729-a72b      Anzahl bisher gelesener Datenspeicherung und Datenstrukturen: RecordsRecords
 
a72c-a74f           Erweiterter file control Die Speicherkonfiguration im Schneider CPC: Blockblock für OPENOUT:
     a72c           Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag: &FF -> keine Datei eröffnet, sonst 0/1 = Drive
     a72d-a74c      aktuell benötigter Directory-Extent
          a72d      USER
          a72e-a738 Filename und Extension
          a739      Nummer dieses Extents
          a73a,a73b {unbenutzt}
          a73c      Anzahl Datenspeicherung und Datenstrukturen: RecordsRecords in diesem Extent
          a73d-a74c Block-Belegungstabelle
     a74d-a74f      Anzahl bisher geschriebener Datenspeicherung und Datenstrukturen: RecordsRecords
 
a750-a799           Erweiterter Datei-Header für OPENIN:
     a750           Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für zeichenweise (1) lesen oder en Die Speicherkonfiguration im Schneider CPC: Blockblock (2)
     a751,a752      Adresse des 2k-Input-Puffers
     a753,a754      Lesezeiger im Input-Puffer
     a755-a794      Datei-Header ähnlich Die Abteilungen des Betriebssystems: Der Cassette Manager
Der Cassette Manager: Der Cassette Manager
dem Cassette Manager
a755 USER a756-a764 Filename und Extension, mit Nullbytes aufgefüllt a765,a766 ohne Bedeutung a767 Header und Data Record: Datei-Typ:Datei-Typ a768,a769 ohne Bedeutung a76a,a76b Original-Lage der Datei beim Saven a76c ohne Bedeutung a76d,a76e logische Dateilänge a76f,a770 Startadresse für Maschinencode-Programme a771-a794 User field: unbenutzt, kann vom Anwender beschrieben werden a795-a797 Zähler über gelesene Datentypen: Bytes
Datenbreite: Bytes
Bytes
a798,a799 Prüfsumme über den Datei-Header (a755 bis a797)   a79a-a7e3 Erweiterter Datei-Header für OPENOUT: a79a Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für zeichenweise (1) oder en Die Speicherkonfiguration im Schneider CPC: Blockblock (2) a79b,a79c Adresse des 2k-Output-Puffers a79d,a79e Schreibzeiger im Output-Puffer a79f-a7de Datei-Header ähnlich Die Abteilungen des Betriebssystems: Der Cassette Manager
Der Cassette Manager: Der Cassette Manager
dem Cassette Manager
a79f USER a7a0-a7ae Filename und Extension, mit Nullbytes aufgefüllt a7af,a7b0 ohne Bedeutung a7b1 Header und Data Record: Datei-Typ:Datei-Typ a7b2,a7b3 ohne Bedeutung a7b4,a7b5 Original-Lage der Datei beim Saven a7b6 ohne Bedeutung a7b7,a7b8 logische Dateilänge a7b9,a7ba Startadresse für Maschinencode-Programme a7bb-a7de User field: unbenutzt, kann vom Anwender beschrieben werden a7df-a7e1 Zähler über gelesene Datentypen: Bytes
Datenbreite: Bytes
Bytes
a7e2,a7e3 Prüfsumme über den Datei-Header (a79f bis a7e1)   a7e4-a863 Record-Puffer (auch zum Expandieren von Dateinamen benutzt) a864-a88a Puffer für die Kopie der 13 gepatchten CAS-Vektoren a88b-a88d FAR ADDRESS für Speicheraufteilung durch ein Vordergrund-Programm: RST 3
LOW KERNEL JUMPBLOCK: 0000 - RST 0: LOW RESET ENTRY
LOW KERNEL JUMPBLOCK: 0008 - RST 1: LOW LOW JUMP
LOW KERNEL JUMPBLOCK: 0010 - RST 2: LOW SIDE CALL
LOW KERNEL JUMPBLOCK: 0018 - RST 3: LOW FAR CALL
LOW KERNEL JUMPBLOCK: 0020 - RST 4: LOW RAM LAM
LOW KERNEL JUMPBLOCK: 0028 - RST 5: LOW FIRM JUMP
LOW KERNEL JUMPBLOCK: 0030 - RST 6: LOW USER RESTART
LOW KERNEL JUMPBLOCK: 0038 - RST 7: LOW INTERRUPT ENTRY
RST
3 in's Amsdos-ROM a88e-a88f {unbenutzt}   a890-a8cf Extended Disc Basic und Maschinencode: ParameterParameter Die Speicherkonfiguration im Schneider CPC: BlockBlock für Laufwerk Operationen: BD5B / 349A / 349A: FLO SUBA a890,a891 Datenspeicherung und Datenstrukturen: RecordsRecords pro Track a892 Die Speicherkonfiguration im Schneider CPC: BlockBlock Shift a893 Die Speicherkonfiguration im Schneider CPC: BlockBlock Maske a894 Extend Maske a895,a896 höchste, benutzbare Blocknummer a897,a898 Anzahl Extents im Directory +1 a899,a89a Extent-Größe a89b,a89c Anzahl Die Speicherkonfiguration im Schneider CPC: BlockBlocks pro Extent a89d,a89e Anzahl belegter Systemspuren a89f Nummer des ersten Sektors einer Spur a8a0 Sektoren pro Spur a8a1 Länge der Gap3 beim Sektor-Lesen/Schreiben a8a2 Länge der Gap3 beim Formatieren a8a3 Füllbyte beim Formatieren a8a4 Sektorlänge (in der FDC-kodierung) a8a5 Datenspeicherung und Datenstrukturen: RecordsRecords pro Sektor a8a6 aktuelle Spurnummer a8a7 Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für Recalibrate vor Spur-Suchen a8a8 Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für Loggin vor jedem Diskettenzugriff a8a9-a8b8 Puffer für Checksummen a8b9-a8cf 23 Datentypen: Bytes
Datenbreite: Bytes
Bytes
für die Block-Belegungstabelle   a8d0-a90f Extended Disc Basic und Maschinencode: ParameterParameter Die Speicherkonfiguration im Schneider CPC: BlockBlock für Laufwerk LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
a8d0,a8d1 Datenspeicherung und Datenstrukturen: RecordsRecords pro Track a8d2 Die Speicherkonfiguration im Schneider CPC: BlockBlock Shift a8d3 Die Speicherkonfiguration im Schneider CPC: BlockBlock Maske a8d4 Extend Maske a8d5,a8d6 höchste, benutzbare Blocknummer a8d7,a8d8 Anzahl Extents im Directory +1 a8d9,a8da Extent-Größe a8db,a8dc Anzahl Die Speicherkonfiguration im Schneider CPC: BlockBlocks pro Extent a8dd,a8de Anzahl belegter Systemspuren a8df Nummer des ersten Sektors einer Spur a8e0 Sektoren pro Spur a8e1 Länge der Gap3 beim Sektor-Lesen/Schreiben a8e2 Länge der Gap3 beim Formatieren a8e3 Füllbyte beim Formatieren a8e4 Sektorlänge (in der FDC-kodierung) a8e5 Datenspeicherung und Datenstrukturen: RecordsRecords pro Sektor a8e6 aktuelle Spurnummer a8e7 Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für Recalibrate vor Spur-Suchen a8e8 Die Z80: Wirkung der Z80-Befehle auf die FlagsFlag für Loggin vor jedem Diskettenzugriff a8e9-a8f8 Puffer für Checksummen a8f9-a90f 23 Datentypen: Bytes
Datenbreite: Bytes
Bytes
für die Block-Belegungstabelle   a910-a91f Disk Basic und Maschinencode: ParameterParameter Amsdos: HeaderHeader für Laufwerk Operationen: BD5B / 349A / 349A: FLO SUBA: a910,a911 Umsetzung des Skew-Faktors (unbenutzt) a912,a913 aktuelle Spur a914,a915 aktueller Sektor a916,a917 aktuelle Directory-Nummer a918,a919 Zeiger auf den Directory-I/O-Puffer a91a,a91b Zeiger auf Disc Basic und Maschinencode: ParameterParameter Die Speicherkonfiguration im Schneider CPC: BlockBlock (Laufwerk Operationen: BD5B / 349A / 349A: FLO SUBA) a91c,a91d Zeiger auf Puffer für Checksummen a91e,a91f Zeiger auf Block-Belegungstabelle   a920-a92f Disk Basic und Maschinencode: ParameterParameter Amsdos: HeaderHeader für Laufwerk LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
: a920,a921 Umsetzung des Skew-Faktors (unbenutzt) a922,a923 aktuelle Spur a924,a925 aktueller Sektor a926,a927 aktuelle Directory-Nummer a928,a929 Zeiger auf den Directory-I/O-Puffer a92a,a92b Zeiger auf Disc Basic und Maschinencode: ParameterParameter Die Speicherkonfiguration im Schneider CPC: BlockBlock (Laufwerk LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
a92c,a92d Zeiger auf Puffer für Checksummen a92e,a92f Zeiger auf Block-Belegungstabelle   a930-a9af Puffer für einen Directory-Record a9b0-abaf Puffer für einen Sektor

Valid HTML   Valid CSS