Schneider / Amstrad CPC Forum

Amstrad / Schneider CPC => Programmierung => Topic started by: oobdoo on 08. January 2018, 21:02:29

Title: 100% Kontrolle über den CPC
Post by: oobdoo on 08. January 2018, 21:02:29
Was muss man eigendlich tun um 100% Kontrolle über den CPC zu bekommen, so das kein OS oder Interrupt dazwischen fummelt?
Title: Re: 100% Kontrolle über den CPC
Post by: Shining on 08. January 2018, 21:23:42
In Assembler ? Einfach DI. Dann sind alle Interrupts aus und das Betriebssystem kommt nicht mehr dran. Wenn man dann selber Interrupte verwenden will, legt man ins Ram ab Adresse 0x38 einen Jump auf die eigene IRQ-Routine.

Beispiel:
DI
LD HL,#0X0038
LD (HL),#0XC3 ;JP
ld hl, #eigeneInterruptRoutine
ld ( #0x39 ), hl
ei
Title: Re: 100% Kontrolle über den CPC
Post by: TFM on 09. January 2018, 16:57:53
Und ab &0066 den Nicht-maskierbaren-Interrupt (NMI) abfangen, mit einem RETN.

Das ist aber nur wichtig, wenn man die PlayCity oder das Albireo dran hat, da (bisher) nur die beiden Karten NMI's auslösen können.

Der Vorteil des "CPC übernehmen" liegt klar auf der Hand: Man kann mit den Interrupts, RST's und Zweitregistern machen was man will (beim FutureOS habe ich auch darauf geachtet, dass die dem Programmierer zur Verfügung stehen).

Was willst denn am CPC coden?

Title: Re: 100% Kontrolle über den CPC
Post by: oobdoo on 10. January 2018, 18:49:39
Ich will aktuell nichts in Z80 programmieren. Aber hin und wieder schaue ich mir gerne Demos an (C64  :zunge0020:) und dann kam halt mal diese Frage auf.  :D