Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
1 GOTO 113:DATA "B","ADD","NZ","C","ADC","Z","D","SUB","NC","E","SBC","C"
2 DATA "H","AND","PO","L","XOR","PE","*","OR","P","A","CP","M"
3 DATA "BC","RET","DE","JP","*","CA"
4 GOTO 95
5 DIM R$(7),OP$(7),F$(7):FOR I=0 TO 7:READ R$(I):READ OP$(I):READ F$(I):NEXT I
6 A=0:DIM D$(3),BW$(2):FOR I=0 TO 2:READ D$(I):READ BW$(I):NEXT I:D$(3)="SP"
7 R$(6)="(HL)":D$(2)="HL":U$="":B$="LD":CB=0:FI=1
8 GOSUB 9:ON C4+1 GOTO 17,41,43,44
9 C0=PEEK(M):C4=INT(C0/64):C=C0-64*C4:C8=INT(C/8):C=C-8*C8:CF=INT(C8/2)
10 CE=0:IF C8=2*CF THEN CE=1
11 RETURN
12 D=PEEK(M+1):V$="+":IF D>127 THEN D=D-256:V$=""
13 D$=STR$(D):IF D>=0 THEN D$=MID$(D$,2)
14 RETURN
15 M=M+2:D=DEEK(M-1):GOTO 13
16 M=M+1:D=PEEK(M):GOTO 13
17 ON C+1 GOTO 18,23,25,30,32,32,34,35
18 IF C8=0 THEN B$="NOP":ELSE IF C8=1 THEN B$="EXAF":ELSE 20
19 GOTO 4
20 IF C8=2 THEN B$="DJNZ":GOTO 22:ELSE B$="JR":IF C8=3 THEN 22
21 B$=B$+F$(C8-4)
22 GOSUB 12:M=M+1:U$=STR$(M0+D+2):GOTO 4
23 IF CE=0 THEN B$="ADD":U$=D$(2)+","+D$(CF):GOTO 4
24 U$=D$(CF)+",#":GOTO 4
25 IF CF>1 THEN 27:ELSE X$="("+D$(CF)+")"
26 IF CE=1 THEN U$=X$+",A":GOTO 4:ELSE U$="A,"+X$:GOTO 4
27 X$="(#)":Y$=D$(2):IF CF=3 THEN Y$="A"
28 IF CE=1 THEN U$=X$+","+Y$:ELSE U$=Y$+","+X$
29 GOTO 4
30 B$="DEC":IF CE=1 THEN B$="INC"
31 U$=D$(CF):GOTO 4
32 B$="INC":IF C=5 THEN B$="DEC"
33 U$=R$(C8):GOTO 4
34 U$=R$(C8)+",^":GOTO 4
35 IF C8=3 THEN 38:ELSE X$="L":Y$="":IF CF=0 THEN Y$="C"
36 IF CE=0 THEN X$="R"
37 B$="R"+X$+Y$+"A":GOTO 4
38 IF C8=4 THEN B$="DAA":ELSE IF C8=5 THEN B$="CPL$:ELSEB$="SCF "
39 IF C8=7 THEN B$="CCF"
40 GOTO 4
41 IF C0=118 THEN B$="HALT":ELSE U$=R$(C8)+","+R$(C)
42 GOTO 4
43 B$=OP$(C8):U$=R$(C):GOTO 4
44 IF C<>2*INT(C/2)THEN 47:ELSE IF C=6 THEN B$=OP$(C8):ELSE B$=BW$(C/2)+F$(C8)
45 IF C=0 THEN 4:ELSE U$="#":IF C=6 THEN U$="^"
46 GOTO 4
47 IF C=7 THEN B$="RST":U$=MID$(STR$(8*C8),2):GOTO 4
48 IF C=3 THEN 58:ELSE IF CE=0 THEN 52
49 IF C=1 THEN B$="POP":ELSE B$="PUSH"
50 U$=D$(CF):IF CF=3 THEN U$="AF"
51 GOTO 4
52 IF C=5 THEN 55:ELSE IF CF=0 THEN B$="RET":ELSE IF CF=1 THEN B$="EXX"
53 IF CF=2 THEN B$="JP":U$="("+D$(2)+")":ELSE IF CF=3 THEN U$="SP,"+D$(2)
54 GOTO 99
55 IF CF=0 THEN U$="#":B$="CALL":GOTO 4
56 IF CF=2 THEN 63:ELSE FI=2:X$="IX":IF CF=3 THEN X$="IY"
57 M=M+1:GOSUB 12:D$(2)=X$:R$(6)="("+X$+V$+D$+")":GOTO 8
58 IF C8=0 THEN B$="JP":U$="#":GOTO 4:ELSE IF C8=1 THEN 85
59 IF C8=6 THEN B$="DI":GOTO 4:ELSE IF C8=7 THEN B$="EI":GOTO 4
60 IF C8>3 THEN 62:ELSE B$="OUT":IF C8=3 THEN B$="IN"
61 U$="^":GOTO 4
62 B$="EX":IF C8=4 THEN U$="(SP),"+D$(2):GOTO 4:ELSE U$="DE,HL":GOTO 4
63 M=M+1:GOSUB 9:ON C4 GOTO 69,64:GOTO 84
64 IF C0<160 THEN 84:ELSE D$="I":IF CE=0 THEN D$="D"
65 IF CF=3 THEN D$=D$+"R"
66 IF C=1 THEN B$="CP":ELSE IF C=2 THEN B$="IN":ELSE IF C=3 THEN B$="OUT"
67 B$=B$+D$:IF LEN(B$)>4 THEN B$="O"+MID$(B$,3)
68 IF C<4 THEN 4:ELSE 84
69 ON C+1 GOTO 70,70,72,73,75,76,77,79
70 B$="IN":IF C=1 THEN B$="OUT"
71 IF C8=6 THEN 84:ELSE U$=R$(C8):GOTO 4
72 B$=OP$(1+2*CE):U$="HL,"+D$(CF):GOTO 4
73 IF CF=2 THEN 84:ELSE U$="(#)"
74 IF E=0 THEN U$=D$(CF)+","+U$:GOTO 4:ELSE U$=U$;",";D$(CF):GOTO 4
75 IF C0=68 THEN B$="NEG":GOTO 4:ELSE 84
76 IF C0=69 THEN B$="RETN":GOTO 4:ELSE IF C0=77 THEN B$="RETI":GOTO 4:ELSE 84
77 IF C8=1 OR C8>3 THEN 84:ELSE IF C8>0 THEN C8=C8-1
78 B$="IM"+CHR$(48+C8):GOTO 4
79 ON CF+1 GOTO 80,80,82:GOTO 84
80 D$="I":IF CE=0 THEN D$="R"
81 IF CF=0 THEN U$=D$+",A":GOTO 4:ELSE IF CF=1 THEN U$="A,"+D$:GOTO 4
82 D$="R":IF CE=0 THEN D$="L"
83 B$="R"+D$+"D":GOTO 4
84 B$="???":GOTO 4
85 C8=1:M=M+FI:GOSUB 9:IF C4>0 THEN 90:ELSE X$="L":IF CE=0 THEN X$="R"
86 D$="R":IF CF>1 THEN D$="S":GOTO 88:ELSE Y$="C":IF CF=1 THEN Y$=""
87 B$=D$+X$+Y$:U$=R$(C):GOTO 4
88 U$="A":IF C8=7 THEN Y$="L":ELSE IF C8=6 THEN NS=1:Y$="E"
89 GOTO 87
90 B$="BIT":IF C4=2 THEN B$="RES":ELSE IF C4=3 THEN B$="SET"
91 U$=CHR$(C8+48)+","+R$(C):GOTO 4
92 I=M0+(1-SGN(M0+.1))*32768:D=INT(I/256):I=I-256*D:GOSUB 93:D=I
93 C0=D:C=16:FOR K=0 TO 1:L=INT(D/C):D=D-16*L:C=1:IF L>9 THEN L=L+7
94 PRINT CHR$(L+48);:NEXT K:RETURN
95 V$=U$+" ":IF INSTR("(I",V$)>0 AND C8=0 THEN M=M+1
96 I=INSTR("#",V$):K=INSTR("^",V$):L=I+K
97 IF I>0 THEN GOSUB 15:ELSE IF K>0 THEN GOSUB 16:ELSE 99
98 U$=LEFT$(U$,L-1)+D$+MID$(U$,L+1)
99 GOSUB 92:PRINT " ";M0;TAB(10);B$;" ";U$;TAB(22);
100 FOR I=M0 TO M:D=PEEK(I):GOSUB 93:NEXT I:GOSUB 114
101 A$=INKEY$:IF A$=""THEN 101:ELSE B=ASC(A$)
102 IF A+B<>188 AND(A=94 OR B=94)THEN M=M0-1
103 A=B:IF A=27 THEN END:ELSE IF A=64 THEN INPUT "NEW ADRESS";A$:GOSUB 107:M=M0-1
104 M0=M+1:M=M0:IF A<>94 THEN 7
105 GOSUB 92:PRINT " ";M0;TAB(12);:D=PEEK(M0):GOSUB 93:IF C0<32 THEN C0=32
106 PRINT " ";CHR$(C0):GOTO 101
107 IF A$=""OR A$="H"THEN 112
108 IF RIGHT$(A$,1)="H"THEN 110:ELSE M0=VAL(A$):IF M0=VAL(A$+"1")THEN 112
109 M0=M0-(1+SGN(M0-32767.1))*32768:RETURN
110 M0=0:FOR I=1 TO LEN(A$)-1:A=ASC(MID$(A$,I,1))-48:C=0:IF A>9 THEN A=A-7:C=-10
111 IF A+C<0 OR A>15 THEN 112:ELSE M0=M0*16+A:NEXT I:GOTO 109
112 INPUT "***CONVERSION-ERROR - repeat:";A$:GOTO 107
113 CLS:WINDOW 5,25,0,31:OUT 136,4:INPUT "START AT:";A$:GOSUB 107:M=M0:GOTO 5
114 FOR I=M0 TO M:D=PEEK(I):IF D<31 THEN 115:ELSE PRINT TAB(30);(CHR$(D));
115 NEXT I:PRINT:RETURN