Das Schneider CPC Systembuch

Die Firmware des Schneider CPC

HIGH KERNEL JUMPBLOCK

Die obere Sprungleiste des MAIN FIRMWARE JUMPBLOCK: KERNEL
Die Firmware des Schneider CPC: KERNEL
Kernel

B900: HI KL U ROM ENABLE

Blende das momentan selektierte obere Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)Rom ein.

Eingaben:    keine
Ausgaben:    Operationen: BD5B / 349A / 349A:  FLO SUBA = alter ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
Rom-Status
Unverändert: BC,DE,HL,IX,IY

Das momentan im obersten Adressviertel angewählte Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM wird eingeblendet. Lesezugriffe 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
über &C000 lesen nun die Werte aus diesem Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM. Der Ausgabewert in Operationen: BD5B / 349A / 349A: FLO SUBA kann benutzt werden, um später mit &HIGH KERNEL JUMPBLOCK: B90C: HI KL ROM RESTOREB90C HI KL ROM RESTORE den alten ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
wieder herzustellen.

B903: HI KL U ROM DISABLE

Blende das obere Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM aus und RAM ein.

Eingaben:    keine
Ausgaben:    Operationen: BD5B / 349A / 349A:  FLO SUBA = alter ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
Unverändert: BC,DE,HL,IX,IY

Das momentan im obersten Adressblock angewählte Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM wird ausgeblendet. Lesezugriffe 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
über &C000 beziehen sich nun auf Die Anschlussbelegungen der wichtigsten ICs im CPC: Das RAM 4164das RAM (normalerweise der Bildwiederholspeicher). Der Ausgabewert in Operationen: BD5B / 349A / 349A: FLO SUBA kann benutzt werden, um zu einem späteren Zeitpunkt mit &HIGH KERNEL JUMPBLOCK: B90C: HI KL ROM RESTOREB90C HI KL ROM RESTORE den alten ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
wieder herzustellen.

B906: HI KL L ROM ENABLE

Blende unten das Betriebssystems-ROM ein.

Eingaben:    keine
Ausgaben:    Operationen: BD5B / 349A / 349A:  FLO SUBA = alter ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
Unverändert: BC,DE,HL,IX,IY

Das Betriebssystem-ROM wird eingeblendet. Lesezugriffe 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
unterhalb von &4000 erhalten nun ihre Werte aus diesem Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM. Normalerweise wird dieses Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM nur eingeblendet, wenn eine Betriebssystem-Routine via ROM-Konfiguration: RestartsRestart aufgerufen wird, ansonsten findet man unten nur RAM. Der Ausgabewert im A-Register kann hinterher an &HIGH KERNEL JUMPBLOCK: B90C: HI KL ROM RESTOREB90C HI KL ROM RESTORE übergeben werden, um den alten ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
wieder herzustellen.

B909: HI KL L ROM DISABLE

Blende das untere Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM wieder aus und RAM ein.

Eingaben:    keine
Ausgaben:    Operationen: BD5B / 349A / 349A:  FLO SUBA = alter ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
Unverändert: BC,DE,HL,IX,IY

Dieser Vektor blendet das untere Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM (Betriebssystem) wieder aus. Der Ausgabewert im A-Register kann ebenfalls wieder benutzt werden, um mit &HIGH KERNEL JUMPBLOCK: B90C: HI KL ROM RESTOREB90C HI KL ROM RESTORE den alten ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
wiederherzustellen.

B90C: HI KL ROM RESTORE

Stelle eine frühere Die Speicherkonfiguration im Schneider CPC: ROM-KonfigurationROM-Konfiguration wieder her.

Eingaben:    Operationen: BD5B / 349A / 349A:  FLO SUBA = alter ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
bzw. ROM-Selection Ausgaben: keine Unverändert: BC,DE,HL,IX,IY

Mit Hilfe dieses Vektors kann eine alte Die Speicherkonfiguration im Schneider CPC: ROM-KonfigurationROM-Konfiguration, die im A-Register übergeben wird, wieder hergestellt werden. Da ein Programm, das beispielsweise das untere Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM mit &HIGH KERNEL JUMPBLOCK: B906: HI KL L ROM ENABLEB906 HI KL L ROM ENABLE eingeblendet hat, nicht sicher wissen kann, dass dieses Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM auch vorher wirklich nicht eingeblendet war, ist es mitunter höchst unsicher, das Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM nachher einfach mit 6HIGH KERNEL JUMPBLOCK: B909: HI KL L ROM DISABLEB909 HI KL L ROM DISABLE wieder auszublenden.

B90F: HI KL ROM SELECT

Wähle ein bestimmtes Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM an und blende es ein.

Eingaben:    C = ROM-Select-Byte
Ausgaben:    C = alte ROM-Selection
             LOW KERNEL JUMPBLOCK: 000B:  LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
= alter ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
Unverändert: DE,HL,IX,IY

Entsprechend C wird im obersten Speicherblock ein neues Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM angewählt und eingeblendet. Die Ausgabewerte reflektieren die alte Die Speicherkonfiguration im Schneider CPC: ROM-KonfigurationROM-Konfiguration, die sich aus ROM-Selection und ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
zusammensetzt. Diese Werte können an &HIGH KERNEL JUMPBLOCK: B918: HI KL ROM DESELECTIONB918 HI MAIN FIRMWARE JUMPBLOCK: KERNEL
Die Firmware des Schneider CPC: KERNEL
KL
Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM DESELECT übergeben werden, um später die alte Die Speicherkonfiguration im Schneider CPC: ROM-KonfigurationROM-Konfiguration wieder herzustellen.

B912: HI KL CURR SELECTION

Frage an, welches Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM oben gerade selektiert ist.

Eingaben:    keine
Ausgaben:    Operationen: BD5B / 349A / 349A:  FLO SUBA = aktuelles ROM-Select-Byte
Unverändert: F,BC,DE,HL,IX,IY

Es ist nicht nur für andere Programme interessant, welches Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM im oberen Adressblock gerade angewählt (aber nicht unbedingt eingeblendet) ist, auch dem Programm in diesem Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM selbst kann das mitunter noch unbekannt sein.

Die Hardware-Designer bei Amstrad dachten sich nämlich, dass sich jeder CPC-Benutzer irgendwann auch eine Modulbox kauft, in die er dann Programm-Module einstecken kann. Die Module enthalten dabei nichts weiter als ein Die Anschlussbelegungen der wichtigsten ICs im CPC: Die EPROMs 27128 und 27256Eprom, mit eben diesem Programm. Die Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM- Select-Adresse wird aber vom Steckplatz in der Modulbox bestimmt. Ein solches ROM-Programm kann also von vornherein gar nicht wissen, auf welcher ROM-Adresse es laufen wird.

Um nun aber trotzdem mit anderen Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMs kommunizieren zu können, sollen sich diese Programm des LOW KERNEL JUMPBLOCK: 0018 - RST 3: LOW FAR CALLRST_3 (FAR Maschinencode über HIMEM: CALLCALL) bedienen, für den eine 'FAR ADDRESS' benötigt wird. In dieser 'FAR ADDRESS' muss außer der (bekannten) Routinenadresse auch das ROM-Select-Byte angegeben werden. Das ist aber nicht von vornherein festlegbar. Deswegen sollen die FAR-ADDRESS-Bloecke erst bei der Initialisierung im RAM installiert werden, nachdem die eigene Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM- Select-Adresse erfragt wurde.

B915: HI KL PROBE ROM

Bestimme Klasse & Version eines ROMs.

Eingaben:    C = ROM-Select-Byte
Ausgaben:    Operationen: BD5B / 349A / 349A:  FLO SUBA = B915:  HI KL PROBE ROM: ROM CLass:ROM Class
             L = Mark Number
             H = Version Number
Unverändert: C,DE,IX,IY

Dieser Vektor blendet das gewünschte Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM kurzzeitig ein, um die ersten drei Datentypen: Bytes
Datenbreite: Bytes
Bytes
daraus zu lesen. Diese enthalten einige mehr oder weniger wichtige, statistische Informationen über das Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM. Interessant ist nur die B915: HI KL PROBE ROM: ROM CLass:ROM CLASS, die immer auf der ersten Adresse des Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMs (&C000) zu finden ist:

ROM CLass:

Operationen: BD5B / 349A / 349A: FLO SUBA = 0 - Vordergrundprogramm
Operationen: BD5B / 349A / 349A: FLO SUBA = 1 - Hintergrundprogramm
Operationen: BD5B / 349A / 349A: FLO SUBA = 2 - Erweiterungs-ROM (Zusatz-ROM zu 0 oder 1)
Operationen: BD5B / 349A / 349A: FLO SUBA = &80 - Das gesetzte 7. Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
kennzeichnet das eingebaute Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM des Basic-Interpreters. Fühlt sich von der ausgegebenen ROM-Adresse kein extern angeschlossenes Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM angesprochen, wird automatisch dieses Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM eingeblendet. Der Basic-Interpreter ist also auf jeder unbenutzten ROM-Adresse ansprechbar.

B918: HI KL ROM DESELECTION

Stelle eine frühere ROM-Konfiguration: ROM-Selektion
Anschluss eines Zusatz-ROM: ROM-Selektion
ROM-Selektion
wieder her.

Eingaben:    C = alte ROM-Selection
             LOW KERNEL JUMPBLOCK: 000B:  LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
= alter ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
Ausgaben: C = zuletzt angewähltes Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM Unverändert: AF,DE,HL,IX,IY

Mit diesem Vektor wird die duch &HIGH KERNEL JUMPBLOCK: B90F: HI KL ROM SELECTB90F HI KL ROM SELECT vorgenommene Veränderung der Die Speicherkonfiguration im Schneider CPC: ROM-KonfigurationROM-Konfiguration wieder rückgängig gemacht.

B91B: HI KL LDIR

Führe ein LDIR im RAM durch.

Eingaben:    HL = Adresse des ersten Quellbytes
             DE = Adresse des ersten Zielbytes
             BC = Länge des zu verschiebenden RAM-Bereiches
Ausgaben:    wie nach LDIR
Unverändert: wie nach LDIR

B91E: HI KL LDDR

Führe ein LDDR im RAM durch.

Eingaben:    HL = Adresse des ersten Quellbytes
             DE = Adresse des ersten Zielbytes
             BC = Länge des zu verschiebenden RAM-Bereiches
Ausgaben:    wie nach LDDR
Unverändert: wie nach LDDR

B921: HI KL POLL SYNCHRONOUS

Erklärung der Anschlussbelegung: TestTeste, ob eine synchronisierbare Unterbrechung auf ihre Ausführung wartet.

Eingaben:    keine
Ausgaben:    CY=0 -> SYNCHRONOUS Der Kernel - Software-Interrupts: EventsEVENT PENDING QUEUE ist leer
             CY=1 -> in der Queue wartet ein Der Kernel - Software-Interrupts: EventsEvent, das behandelt werden sollte
Unverändert: BC,DE,HL,IX,IY

Diese RAM-residente Routine dient dazu, mit möglichst wenig Zeitverlust die SYNCHRONOUS Der Kernel - Software-Interrupts: EventsEVENT PENDIG QUEUE zu pollen. Dies kann auch aus einer Event-Behandlungsroutine heraus geschehen. In diesem Fall versteckt der MAIN FIRMWARE JUMPBLOCK: KERNEL
Die Firmware des Schneider CPC: KERNEL
Kernel
alle Der Kernel - Software-Interrupts: EventsEvents mit niedrigerer Priorität, als die des laufenden Der Kernel - Software-Interrupts: EventsEvents.

Wartet ein Der Kernel - Software-Interrupts: EventsEvent (mit höherer Priorität) auf seine Ausführung, so sollten danach &KERNEL: BCFB: KL NEXT SYNCBCFB KL NEXT SYNC, &KERNEL: BCFE: KL DO SYNCBCFE KL DO SYNC und &KERNEL: BD01: KL DONE SYNCBD01 KL DONE SYNC aufgerufen werden.

B92A: HI KL SCAN NEEDED

Nur CPC 664 und 6128!

Teile dem MAIN FIRMWARE JUMPBLOCK: KERNEL
Die Firmware des Schneider CPC: KERNEL
Kernel
mit, dass Einleitung: Die Tastatur
Anhang: Die Tastatur
die Tastatur
mit dem nächsten Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupt abgefragt werden muss.

Eingaben:    keine
Ausgaben:    keine
Unverändert: AF,BC,DE,IX,IY

Diese Routine setzt einfach den Systemspeicher des Frequenzteilers für den TICKER-Interrupt auf Eins. Dadurch wird der MAIN FIRMWARE JUMPBLOCK: KERNEL
Die Firmware des Schneider CPC: KERNEL
Kernel
glauben gemacht, die TICKER Datenspeicherung und Datenstrukturen: ChainsCHAIN sei bereits beim nächsten Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupt wieder dran. Da die Der Key Manager: Tastatur-AbfrageTastatur-Abfrage völlig system- konform als TICKER Der Kernel - Software-Interrupts: EventsEVENT eingebunden ist, wird auch Einleitung: Die Tastatur
Anhang: Die Tastatur
die Tastatur
beim nächsten Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupt abgefragt.

Wiederholtes Aufrufen dieses Vektors kann die Geschwindigkeit der TICKER-Liste bis auf 300 Kicks pro Sekunde hochtreiben.

Valid HTML   Valid CSS