|
Es sind nur die Befehle aufgeführt, die sich von ihrem Code her in Gruppen zusammenfassen lassen. Die Codes der fehlenden Befehle können aus der vorhergehenden Tabelle entnommen werden.
Die Opcodes werden nur mit den Datentypen: Bytes Datenbreite: BytesBytes angegeben, die den Befehl klassifizieren. Das oder die Datentypen: Bytes Datenbreite: BytesBytes für eventuell nötige Operanden werden nicht explizit angegeben.
Die Fließkomma-Routinen: OperationenOperationen, die das IX und IY-Register anstelle von HL benutzen, sind auch nicht aufgeführt, da sie sich von den HL-Befehlen nur durch den Prefix #DD bzw. #FD unterscheiden. Doppelregisterbefehle, wie LD_HL,nnnn, bekommen einfach den Prefix davorgesetzt:
DEFB #DD ' Prefix IX
DEFB #21 ' Opcode: LD HL,nnnn
DEFW adresse
Byte-Indirekt-HL-Operationen arbeiten dann indirekt zu IX bzw. IY mit einem Distanz-Byte. Beispielsweise LD LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB,(IX+dis):
DEFB #DD ' Prefix IX
DEFB #46 ' Opcode: LD LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB,(HL)
DEFB dis ' Distanz (Offset)
oder: LD (IX+dis),zahl
DEFB #DD ' Prefix IX
DEFB #36 ' Opcode: LD (HL),nn
DEFB dis ' Distanz (Offset)
DEFB zahl ' Argument
Befehlsgruppe ! Opcode (binär) ! Bemerkung
---------------+-------------------+-------------------------------------------
Byte-Befehle ! !
---------------+-------------------+-------------------------------------------
LD r,r' ! 01.r..r' ! r und r' : 000 -> LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB
LD r,n ! 00.r.110 ! 001 -> C
ADD Operationen: BD5B / 349A / 349A: FLO SUBA,r ! 10000.r. ! 010 -> D
ADC Operationen: BD5B / 349A / 349A: FLO SUBA,r ! 10001.r. ! 011 -> LOW KERNEL JUMPBLOCK: 000E: LOW PCBC INSTRUCTION LOW KERNEL JUMPBLOCK: 001E: LOW PCHL INSTRUCTIONE
SUB r ! 10010.r. ! 100 -> H
SBC Operationen: BD5B / 349A / 349A: FLO SUBA,r ! 10011.r. ! 101 -> L
AND r ! 10100.r. ! 110 -> (HL)
XOR r ! 10101.r. ! 111 -> Operationen: BD5B / 349A / 349A: FLO SUBA
OR r ! 10110.r. !
CP r ! 10111.r. ! 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 LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTb : 000 -> 0
INC r ! 00.r.100 ! 001 -> 1
DEC r ! 00.r.101 ! 010 -> 2
RLC r ! 11001011 00000.r. ! 011 -> 3
RRC r ! 11001011 00001.r. ! 100 -> 4
RL r ! 11001011 00010.r. ! 101 -> 5
RR r ! 11001011 00011.r. ! 110 -> 6
SLA r ! 11001011 00100.r. ! 111 -> 7
SRA r ! 11001011 00101.r. !
SLL r ! 11001011 00110.r. !
SRL r ! 11001011 00111.r. !
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 LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTb,r ! 11001011 01.LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTb..r. !
RES LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTb,r ! 11001011 10.LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTb..r. !
SET LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTb,r ! 11001011 11.LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTb..r. !
IN r,(c) ! 11101101 01.r.000 !
OUT (c),r ! 11101101 01.r.001 !
---------------+-------------------+-------------------------------------------
2-Byte-Befehle ! !
---------------+-------------------+-------------------------------------------
LD rr,nn ! 00rr0001 ! rr : 00 -> BC
LD rr,(nn) ! 11101101 01rr1011 ! 01 -> DE
LD (nn),rr ! 11101101 01rr0011 ! 10 -> HL
ADD HL,rr ! 00rr1001 ! 11 -> SP
ADC HL,rr ! 11101101 01rr1010 !
SBC HL,rr ! 11101101 01rr0010 !
INC rr ! 00rr0011 !
DEC rr ! 00rr1011 !
PUSH rr ! 11rr0101 ! rr : 00 -> BC 01 -> DE
POP rr ! 11rr0001 ! 10 -> HL 11 -> AF
---------------+-------------------+-------------------------------------------
Verzweigungen ! !
---------------+-------------------+-------------------------------------------
JP c,nn ! 11.c.010 ! c : 000 -> NZ 001 -> Z
Maschinencode über HIMEM: CALLCALL c,nn ! 11.c.100 ! (Bedingg.) 010 -> NC 011 -> C
RET c ! 11.c.000 ! 100 -> PO 101 -> PE
! ! 110 -> P 111 -> M
---------------+-------------------+-------------------------------------------
JR cc,dis ! 001cc000 ! cc : 00 -> NZ 01 -> Z
! ! 10 -> NC 11 -> C
---------------+-------------------+-------------------------------------------
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 ENTRYRST n*8 ! 11.n.111 ! 0...n...7 => 0...n*8...56
---------------+-------------------+-------------------------------------------
| |