D Z80.BAS ( "CRT:M3":,:"LPT:S2"LP$(`),PB$(`),PC$(`),PD$(`),PE$(@),PF$(`)B,C,D,E,H,L,(HL),A#(ADD,ADC,SUB,SBC,AND,XOR,OR,CP2BC,BC,DE,DE,HL,HL,SP,SP%<NZ,Z,NC,C,PO,PE,P,M,BC,DE,HL,AF"FRLC,RRC,RL,RR,SLA,SRA,DB,SRLPX`:P$(X):X ZX`:PB$(X):X dX`:PC$(X):X nX`:PD$(X):X xX@:PE$(X):X X`:PF$(X):XA(X)(X 8)B(X)(X `)C(X)(X )#C$:L(C$):U:X*A$(C$,U,):A$"P"P P: A$"H"H H: A$"-"ADX:X: A$"+"OFX:X: A$"/"AMX: 9A$"0" A$"F" A$"A" A$"9""!!! E !!!": &A$"A"A(A$):A(A$)\3XXA:XXX(X)UU:UL : P"CRT:":"LPT:"H 4 "A(AD),A? ,6O2$P$(A(A)):O3$P$(B(A)):PB@A &JA| AO1$"LD": 'TX((A)):O1$PB$(X)0^X X@O2$"A":O2$O3$:O3$"" h  r:'TRI|O2$PC$(A(A)): & :'ICTVRTBA :XBO1$"INC": &B O1$"DEC": &PB@O1$"LD":PB:O3$("00"((AD)),)"H":  BA B@O1$"INC": rB0O1$"DEC": rBO1$"LD":PB@:O2$PC$(A(A)):O3$("0"((AD)),)("0"((AD)),)"H": 6BO1$"ADD":O2$"HL":O3$PC$(A(A)):  BA ;BO1$"JR":PB:O2$PD$(C(A)): z: $AO1$"NOP":O2$"": &.AO1$"EX":O2$"AF":O3$"AF":  O1$"LD" A f:O3$"HL": &AH f:O3$"A": !0A(O2$"HL": p:  :AhO2$"A": p: DAO1$"DJNZ": NA@O1$"JR": X(A `)` 7bO1$"LD":O3$"A":A O2$"(DE)":O2$"(BC)"%lA A$O2$:O2$O3$:O3$A$ v  z:O2$O3$: & p: O2$"("O2$")": O3$"("O3$")":  :'DB/O1$"DB":O2$((AD))"H":PB: &P %("000"(ADOF),)" ";HXPB:("0"((ADX)),);:X:(p)":";XPB:O4(ADX):O4 O4 O4 O4 O4_ O4 O4 O4 O4 O4 O4 O4 O4 O4 O4O4(O4);:X (0)O1$;(`)O2$;O3$""","O3$:  H' P("000"(ADOF),)" ";WXPB:P("00"((ADX)),);:X:P(PB)":";A XPB:O4(ADX):O4 O4~O4*P(O4);:X-4P(PB)O1$;( (O1$))O2$;>O3$""P","O3$:P"HADADPB:ADAMX: 'RA$:A$"" ":“A$(P) \A$:A$"" \: "f p:O2$O3$:O3$"":ZpPB@:O3$("0"((AD)),)("0"((AD)),)"H":gzO3$("000"(AD(AD)(((AD)))),)"H":PB::'OSTATNI(7,23,39,55,15,31,47,63,201,251,2431RLCA,RLA,DAA,SCF,RRCA,RRA,CPL,CCF,RET,EI,DI  !X :B:AB X  .YX:O1$:Y:O2$"":PB: &:'IVCTVRTAK A] A} Am Z BA 7B@O1$"RET":O2$PD$(A(A)):PB: &.AYO1$"EXX":O2$"":PB: &.AIO1$"RET":O2$"":PB: &,BBO1$"JP":O2$PD$(A(A)): .$BDO1$"CALL":O2$PD$(A(A)): P.BGO1$"RST":PB:O2$("0"(A(A)),)"H": &#8AMO1$"CALL": f: !BACO1$"JP": f: NLASO1$"OUT":PB:O2$"("((AD))"H)":O3$"A": :VAcO1$"EX":O2$"(SP)":O3$"HL":PB: 1`AiO1$"JP":O2$"(HL)":PB: &8jAyO1$"LD":O2$"SP":O3$"HL":PB: 8tAkO1$"EX":O2$"DE":O3$"HL":PB: *~BA BE (A ) )198,214,230,246,206,222,238,254,219&ADD,SUB,AND,OR,ADC,SBC,XOR,CP,IN  X:B:ABXX   XYX:O1$:Y:O2$"A":PB:O3$("0"((AD)),)"H":  :'STACK%A O1$"PUSH":O1$"POP"*O2$PE$(A(A)):PB: & :'CEBEA(AD); AO1$PF$(A(A)):A< A` : FAO1$"BIT": 2A@O1$"RES": 2(O1$"SET" 2:'PARA21<O2$(A(A)):O3$P$(B(A)):PB:  F:'PARAM"PO2$P$(B(A)):PB: & Z:'ED'dA(AD):PB:BA nB xA~ A@ BA :B ^B |B B BA :B B   68,69,70,86,103,77,94,111+ NEG,RETN,IM 0,IM 1,RRD,RETI,IM 2,RLD  X`:B:BAXX   YX:O1$:YO2$"": & :'LDIE160,161,162,163,168,169,170,171,176,177,178,179,184,185,186,187P" LDI,CPI,INI,OUTI,LDD,CPD,IND,OUTD,LDIR,CPIR,INIR,OTIR,LDDR,CPDR,INDR,OTDR , 6Xp:B:BAX @ "JYX:O1$:YTO2$"": & ^:'INhA` +rO1$"IN":O2$P$(A(A)):O3$"()":  |:'OUTAb ,O1$"OUT":O2$"()":O3$P$(A(A)):  :'SBC,O1$"SBC":O2$"HL":O3$PC$(A(A)):  :'ADC,O1$"ADC":O2$"HL":O3$PC$(A(A)):  :'LDAF AV lO1$"LD":O3$PC$(A(A)):O2$"("("0"((AD@)),)("0"((AD)),)"H)"/PB:A A$O2$:O2$O3$:O3$A$   :'I,AA  ;O1$"LD":O2$"I":O3$"A":A A$O2$:O2$O3$:O3$A$   A O1$"DEC":O1$"INC&O3$"": I0A O3$"("O3$")":(A )A$O2$:O2$O3$:O3$A$ : <DPB:A(AD@):(A `)@ : *<NAO1$PF$(A(A)):A< A` :€ &XAO1$"BIT": vbA@O1$"RES": vlO1$"SET" vO3$O2$:O2$(A(A)):  A]O2$"IX":O2$"IYNA(AD):PB:(A )O1$"ADD":O3$PC$(A(A)): (A ) cO1$"LD":PB@:(A ) (A @)ADAD: p:ADAD:PB: 0AK DN(A ) *:O3$O2$:AA@:O2$P$(A(A)):A` : "APO1$"INC": *: &"ATO1$"DEC": *: &JAX *:O3$("0"((AD@)),)"H":PB: J(A )AA@:O1$PB$(A(A)): *:O3$O2$:O2$"A": -(A )` *:O3$P$(B(A)): 'PB:AaO1$"POP": &/AcO1$"EX":O3$O2$:O2$"(SP)": AeO1$"PUSH": &, AiO1$"JP":O2$"("O2$")": &$AyO3$O2$:O2$"SP":   -*O2$"("O2$"+"((AD))"H)":4:'HEX VYPIS>PC:XADAM#HA$("000"(X),)" "HRYp:A$A$("0"((XY)),)" ":Y:A$A$" "\Yp:A(XY):A A A A A_ A A A A A A A A A A A$A$" ":A$A$(A)fY:A$A$""pPPA$*uA$:PCP(@):PC(zX:ADAM:H H:X: @)"" ( `)"" ( )"" ( )"" ( )"":A$(LE)P$:LE0