Das Schneider CPC Systembuch

Anhang

Die Z80

Ausführungszeiten für die einzelnen Befehle der Z80

Die Arbeitsgeschwindigkeit einer 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
hängt im Allgemeinen von der Frequenz des Eingangstaktes ab. Da Anhang: Die Z80die Z80 im Schneider CPC aber nur mit jedem 4. Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Takt
Erklärung der Anschlussbelegung: Takt
Erklärung zu den verwendeten Bezeichnungen: Takt
Takt
auf die Speicher zugreifen darf, ergibt sich als kleinstes Zeitraster genau eine Mikrosekunde (der Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Takt
Erklärung der Anschlussbelegung: Takt
Erklärung zu den verwendeten Bezeichnungen: Takt
Takt
hat eine Frequenz von 4 MHz, also 4 Taktperioden pro Mikrosekunde).

Die Befehls-Ausführungszeiten sind deshalb in Mikrosekunden angegeben. Diese Zeiten sind NICHT auf andere Z80-Rechner übertragbar!

Queues als verkettete Liste: Anmerkung:Anmerkung: Speziell die Zeiten für JR, JR cc und DJNZ sind wahrscheinlich falsch. [kio 2006-03-10]

Befehlsgruppe                   !  Zeit !   Bemerkung
--------------------------------+-------+-------------------------------------
8-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
Ladebefehle ! ! --------------------------------+-------+------------------------------------- LD r,r' ! 1 ! LD r,n ! 2 ! r und r' : Erklärung der Anschlussbelegung: A, B, CA,B,C,D,LOW KERNEL JUMPBLOCK: 000E: LOW PCBC INSTRUCTION
LOW KERNEL JUMPBLOCK: 001E: LOW PCHL INSTRUCTION
E
,H,L LD r,(rr) LD (rr),r ! 2 ! rr : AF,BC,DE,HL,SP LD r,(IX+dis) LD (IX+dis),r ! 5 ! n : Datentypen: Bytes
Datenbreite: Bytes
Byte
, direkt LD (HL),n ! 3 ! nn : Datenbreite: WordsWord, direkt LD (IX+dis),n ! 6 ! dis : Adressdistanz, direkt LD Operationen: BD5B / 349A / 349A: FLO SUBA,(nn) LD (nn),Operationen: BD5B / 349A / 349A: FLO SUBA ! 4 ! LD Operationen: BD5B / 349A / 349A: FLO SUBA,I LD Operationen: BD5B / 349A / 349A: FLO SUBA,R LD I,Operationen: BD5B / 349A / 349A: FLO SUBA LD R,Operationen: BD5B / 349A / 349A: FLO SUBA ! 2 ! --------------------------------+-------+ 16-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
Ladebefehle ! ! --------------------------------+-------+ LD rr,nn ! 3 ! LD IX,nn ! 4 ! LD HL,(nn) LD (nn),HL ! 5 ! LD rr,(HL) LD (nn),rr ! 6 ! LD IX,(nn) LD (nn),IX ! 6 ! LD SP,HL ! 2 ! LD SP,IX ! 3 ! PUSH rr ! 4 ! PUSH IX ! 5 ! POP rr ! 3 ! POP IX ! 4 ! ! ! EXX EX AF,AF' EX DE,HL ! 1 ! EX (SP),HL ! 6 ! EX (SP),IX ! 7 ! --------------------------------+-------+ Block-Befehle ! i / ii! (i): nicht-letzter Durchgang --------------------------------+-------+ (ii): letzter Durchgang LDI LDD ! 5 ! CPI CPD ! 4 ! INI IND OUTI OUTD ! 5 ! nicht sinnvoll anwendbar LDIR LDDR ! 6 / 5 ! CPIR CPDR ! 6 / 4 ! OTIR OTDR INIR INDR ! ----- ! Befehlssatz der Z80 sortiert nach Funktionen: Block-I/O-BefehleBlock-I/O-Befehle nicht anwendbar !! --------------------------------+-------+ Befehlssatz der Z80 sortiert nach Funktionen: Ein- und Ausgabe-BefehleEin- und Ausgabe-Befehle ! ! --------------------------------+-------+ IN Operationen: BD5B / 349A / 349A: FLO SUBA,(n) OUT Operationen: BD5B / 349A / 349A: FLO SUBA,(n) ! 3 ! IN r,(C) OUT (C),r ! 4 ! --------------------------------+-------+ 8-Bit-Arithmetische und logische Befehle! --------------------------------+-------+ oper. r ! 1 ! oper. = ADD, ADC, SUB, SBC oper. n oper. (HL) ! 2 ! AND, XOR, OR, CP oper. (IX+dis) ! 5 ! INC r DEC r ! 4 ! INC (HL) DEC (HL) ! 3 ! INC (IX+dis) DEC (IX+dis) ! 6 ! CPL ! 1 ! NEG ! 2 ! --------------------------------+-------+ 16-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
Arithmetik ! ! --------------------------------+-------+ ADD HL,rr ! 3 ! ADC HL,rr SBC HL,rr ! 4 ! ADD IX,rr ! 4 ! INC rr DEC rr ! 2 ! INC IX DEC IX ! 3 ! --------------------------------+-------+ 8-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
Schiebe-Operationen ! ! --------------------------------+-------+ RLCA RRCA RLA RRA ! 1 ! oper. = RLC, RRC, RL, RR oper. r ! 2 ! SLA, SRA, SLL, SRL oper. (HL) ! 4 ! oper. (IX+dis) ! 7 ! RLD RRD ! 5 ! --------------------------------+-------+ 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
Erklärung der Anschlussbelegung: TestTest- und Setz-Befehle ! ! --------------------------------+-------+ 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 INTERRUPT
b
,r ! 2 ! LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
b
= Bitnummer 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 INTERRUPT
b
,(HL) ! 3 ! 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 INTERRUPT
b
,(IX+dis) ! 6 ! SET LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
b
,r RES LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
b
,r ! 2 ! SET LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
b
,(HL) RES LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
b
,(HL) ! 4 ! SET LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
b
,(IX+dis) RES (IX+dis) ! 7 ! --------------------------------+-------+ Sprünge und Grundlagen: UnterprogrammeUnterprogramme ! i / ii! --------------------------------+-------+ JP nn JP c,nn ! 3 ! c = Bedingung JP (HL) ! 1 ! JP (IX) ! 2 ! (i): wenn c nicht erfüllt ist JR dis ! 3 ! und keine Verzweigung erfolgt. JR c,dis ! 2 / 3 ! (ii): wenn c erfüllt ist und DJNZ dis ! 3 / 4 ! das Programm verzweigt. Maschinencode über HIMEM: CALLCALL nn ! 5 ! Maschinencode über HIMEM: CALLCALL c,nn ! 3 / 5 ! 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
n ! 4 ! RET ! 3 ! RET c ! 2 / 4 ! RETI RETN ! 4 ! --------------------------------+-------+ Verschiedenes: ! ! --------------------------------+-------+ DAA CCF SCF ! 1 ! EI DI NOP Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: HaltHALT ! 1 ! IM 0 IM 1 IM 2 ! 1 ! --------------------------------+-------+

Valid HTML   Valid CSS