30 GOTO 100
80 ; S1$;S1%(0%)
100 DEFFNM%(I%,J%)=I%-I%/J%*J%
120 DEFFNL%(I%)=SWAP%(I%) AND 255%
140 DEFFNR%(I%)=I% AND 255%
150 GOTO 3260
190 P0%=0% : E%=0% : F3%=0% : P5%=-1% : X7%=10%
200 GOSUB 2910 : IF R% RETURN
210 E%=0% : B1%=0% : F2%=0% : F6%=0% : GOSUB 450 : GOSUB 720 : IF R% 340
220 V%=P0% : GOSUB 1930 : IF E% 340
230 P2%=0% : F1%=0% : L2%=L1%
240 L1%=L2% : E%=0% : IF O%=0% 340
250 GOSUB 940 : IF R% 280
260 IF F1% E%=9% ELSE E%=3%
270 GOTO 340
280 F1%=-1% : B5%=B1% : I0%=0% : X1%=0% : O0%=FNL%(O1%) : GOSUB 1030 : IF NOT R% 240
290 IF E% 340
300 O0%=FNR%(O1%) : GOSUB 1030 : IF NOT R% 240
310 IF E% 340
320 IF X1% GOSUB 390
330 GOSUB 540 : IF E%=0% AND B%<>0% E%=9%
340 GOSUB 2990 : GOSUB 3150 : IF F3% RETURN
380 GOTO 200
390 B1%(4%)=B1%(3%) : B1%(3%)=B1%(2%) : B1%(2%)=B1%(1%) : B1%(1%)=253%-FNM%(X1%,2%)*32% : B1%=B1%+1%
400 IF X1%>2% B1%(4%)=B1%(3%) : B1%(3%)=D% AND 255% : B1%=B1%+1%
410 RETURN
450 L1%=1% : L$="" : GOSUB 540 : IF B% THEN IF RIGHT$(B$,B%)=":" THEN B%=B%-1% : B$=LEFT$(B$,B%) : GOTO 470
460 IF LEFT$(L1$,1%)=" " 490
470 IF B%95% C$=CHR$(ASC(C$) AND 223%)
580 GOSUB 640 : IF 0%=INSTR(1%,C1$,C$) 570
590 IF C$<>'"' 630
600 GOSUB 640 : IF C$='"' 570
610 IF C$<>CHR$(13%) 600
620 E%=13%
630 B%=LEN(B$) : RETURN
640 B$=B$+C$
680 L1%=L1%+1% : C$=MID$(L1$,L1%,1%) : RETURN
720 R%=0% : IF O%=0% RETURN
730 I%=INSTR(1%," ORG EQU END DEFB DEFW DEFS DEFM "," "+O$+" ") : IF I%=0% RETURN
740 R%=-1% : GOSUB 540 : ON (I%+4%)/5% GOTO 750,760,770,780,790,800,810
750 F6%=-1% : GOSUB 2290 : P0%=V% : P5%=100% : GOTO 890
760 F6%=-1% : GOSUB 2290 : S$=L$ : S%=V% : F2%=1% : GOSUB 1940 : R%=-1% : RETURN
770 F3%=-1% : P0%=0% : GOTO 890
780 GOSUB 2250 : B1%(1%)=V% : B1%=1% : GOTO 890
790 GOSUB 2290 : B1%(1%)=FNR%(V%) : B1%(2%)=FNL%(V%) : B1%=2% : GOTO 890
800 F6%=-1% : GOSUB 2290 : B1%=V% : F2%=2% : GOTO 890
810 IF B%=0% E%=9% : RETURN
820 IF LEFT$(B$,1%)<>'"' OR RIGHT$(B$,B%)<>'"' E%=13% : RETURN
830 P5%=100% : GOSUB 3150 : B%=B%-2% : B$=MID$(B$,2%,B%) : FOR I%=1% TO B% : C$=MID$(B$,I%,1%) : IF C$<>'"' 860
840 I%=I%+1% : IF I%>B% E%=13% : RETURN
850 C$=MID$(B$,I%,1%) : IF C$<>'"' E%=13% : RETURN
860 IF B1%=20% E%=6% : RETURN
870 B1%=B1%+1% : B1%(B1%)=ASC(C$) : NEXT I%
890 V%=P0% : GOSUB 1930 : R%=-1% : RETURN
940 R%=0% : IF O%>4% RETURN
950 O$=LEFT$(O$+" ",4%)
960 P2%=INSTR(P2%+1%,T1$,O$) : IF P2%=0% RETURN
970 IF FNM%(P2%,4%)<>1% 960
980 I%=P2%/4% : B1%(1%)=FNL%(T1%(I%)) : B1%(2%)=FNR%(T1%(I%)) : B1%=2%+(B1%(2%)=255%) : R%=-1%
990 IF I%=128%)*6%-(O0%>=192%)*7% : O0%=O0% AND 63% : IF O0%=0% R%=-1% : RETURN
1040 GOSUB 540 : IF O0%>14% 1070
1050 IF B%=0% R%=0% : RETURN
1060 ON O0% GOSUB 1110,1130,1210,1230,1250,1260,1290,1290,1320,1340,1360 : GOTO 1090
1070 IF O0%<32% GOSUB 1400 : GOTO 1090
1080 ON O0%-39% GOSUB 1460,1550,1590,1630,1680,1740,1750,1790,1830
1090 B1%(B5%)=B1%(B5%) OR R2%*M2% : IF R2%<>-1% R%=-1%
1100 RETURN
1110 IF B%=1% R2%=INSTR(1%,"BCDEHL A",B$)-1%
1120 RETURN
1130 GOSUB 1110 : IF R2%<>-1% RETURN
1140 GOSUB 1870 : IF I0%=0% OR B%<2% RETURN
1150 IF B$="HL" R2%=6% : RETURN
1160 C$=LEFT$(B$,2%) : IF C$="IX" R2%=6% : X1%=3%
1170 IF C$="IY" R2%=6% : X1%=4%
1180 B%=B%-2% : IF B%=0% OR R2%=-1% D%=0% : RETURN
1190 B$=RIGHT$(B$,3%) : GOSUB 2290 : IF V%<-128% OR V%>127% E%=10%
1200 D%=V% : RETURN
1210 GOSUB 1130 : IF I0% OR R2%<>-1% RETURN
1220 B1%(1%)=B1%(1%) XOR 70% : GOTO 1490
1230 IF B%=2% R2%=INSTR(1%," BC DE HL SP",B$)/3%-1%
1240 RETURN
1250 GOSUB 1230 : GOTO 1500
1260 GOSUB 1230 : IF R2%=3% R2%=-1%
1270 IF B$="AF" R2%=3%
1280 GOTO 1500
1290 GOSUB 1250
1300 IF R2%=2% AND X1%<>O0%-6% R2%=-1%
1310 X1%=0% : RETURN
1320 IF B$="HL" R2%=2%
1330 GOTO 1500
1340 GOSUB 1870 : IF I0%=0% RETURN
1350 GOTO 1320
1360 I%=INSTR(1%," (BC) (DE) "," "+B$+" ") : IF I%<>0% R2%=I%/6% : RETURN
1370 GOSUB 1680 : R2%=3% : RETURN
1400 I%=INSTR(1%," A I R (C) HL IX IY DE AF AF' SP (SP) "," "+B$+" ")
1410 IF O0%=I%/4%+19% R2%=0%
1420 RETURN
1460 GOSUB 1870
1470 IF NOT I0% OR E% R2%=-1% : RETURN
1480 GOSUB 2250 : B1%(2%)=V% : B1%=2% : R2%=0% : RETURN
1490 GOSUB 1870 : I0%= NOT I0% : GOTO 1470
1500 IF B$="IX" R2%=2% : X1%=1%
1510 IF B$="IY" R2%=2% : X1%=2%
1520 RETURN
1550 GOSUB 2250 : R2%=V% : IF V%>7% E%=10%
1560 RETURN
1590 GOSUB 2290 : V%=V%-P0%-2% : IF V%<-128% OR V%>127% E%=10%
1600 B1%(2%)=FNR%(V%) : B1%=2% : R2%=0% : RETURN
1630 GOSUB 2250 : IF FNM%(V%,8%) OR (V%>56%) E%=10%
1640 R2%=V% : RETURN
1680 GOSUB 1870
1690 IF NOT I0% OR E% R2%=-1% : RETURN
1700 GOSUB 2290 : B1%(B1%+1%)=FNR%(V%) : B1%=B1%+2% : B1%(B1%)=FNL%(V%) : R2%=0% : RETURN
1740 GOSUB 1870 : I0%= NOT I0% : GOTO 1690
1750 R2%=INSTR(1%," NZ Z NC C PO PE P M "," "+B$+" ")/3%-1% : RETURN
1790 GOSUB 1750 : IF R%>3% R2%=-1%
1800 RETURN
1830 GOSUB 2250 : IF V%>2% E%=10% : RETURN
1840 R2%=0% : B1%(2%)=70%-(V%>0%)*16%-(V%>1%)*8% : RETURN
1870 IF LEFT$(B$,1%)<>"(" OR RIGHT$(B$,B%)<>")" I0%=0% : RETURN
1880 IF I0% E%=9%
1890 I0%=-1% : B%=B%-2% : B$=MID$(B$,2%,B%) : RETURN
1930 S$=L$ : S%=V%
1940 IF LEN(S$)=0 RETURN
1950 GOSUB 2180 : IF E% RETURN
1960 IF P%=2% 1990
1970 S1%=S1%+1% : IF S1%>S8% E%=20% : RETURN
1980 S1$=S1$+S$ : S1%(S1%)=S% : RETURN
1990 GOSUB 2050 : GOSUB 2050 : IF R% E%=11%
2000 RETURN
2050 R%=R%*S9%
2060 R%=INSTR(R%+1,S1$,S$) : IF R%=0% RETURN
2070 IF FNM%(R%,S9%)<>1% 2060
2080 R%=R%/S9%+1% : RETURN
2110 GOSUB 2180 : IF R% R%=0% : RETURN
2120 IF P%=1% AND F6%=0% R%=-1% : S%=0% : RETURN
2130 GOSUB 2050 : IF R%=0% E%=8% : RETURN
2140 S%=S1%(R%) : RETURN
2180 R%=-1% : IF LEN(S$)>S9% E%=2% : RETURN
2190 IF INSTR(1%,C5$,MID$(S$,1%,1%))=0% 2220
2200 FOR I%=2% TO LEN(S$) : IF INSTR(1%,C5$+C6$+"_?",MID$(S$,I%,1%))=0% 2220
2210 NEXT I% : S$=S$+SPACE$(S9%-LEN(S$)) : R%=0% : RETURN
2220 E%=2% : RETURN
2250 GOSUB 2290 : IF V% AND 65280% E%=10%
2260 RETURN
2290 GOSUB 2330 : IF E<-32768% OR E>65535 E%=10% ELSE V%=E
2300 RETURN
2330 B2%=1% : E0%=-1% : E1%=1% : E=0% : E1%(0%,1%)=6% : E1%(0%,0%)=8%
2340 GOSUB 2650 : IF E2%<>5% AND E2%<>6% 2380
2350 E2%=E2%-4% : E3%=0%
2360 E1%(E1%,0%)=E2% : E1%(E1%,1%)=E3% : E1%=E1%+1% : GOTO 2340
2370 E1%(E1%,0%)=E2% : E1%(E1%,1%)=E3% : E1%=E1%+1% : GOTO 2340
2380 IF E2%=9% E0%=E0%+1% : E0(E0%)=E3% : GOTO 2440
2390 IF E2%=0% 2360
2400 E%=6% : RETURN
2440 GOSUB 2650
2450 IF E2%<3% OR E2%>8% 2400
2460 IF E3%65535 THEN E0(E0%)=E0(E0%)-65536 : GOTO 2610
2620 GOTO 2460
2650 S$="" : IF B2%>B% E2%=8% : E3%=7% : RETURN
2660 C$=MID$(B$,B2%,1%) : B2%=B2%+1% : IF INSTR(1%,C5$,C$) 2740
2670 IF INSTR(1%,C6$,C$) 2800
2680 IF C$='"' 2770
2690 I%=INSTR(1%,"*/+-)($",C$) : IF I%=0% E%=5% : RETURN
2700 IF I%=7% E2%=9% : E3%=P0% : RETURN
2710 E2%=I%+2% : E3%=(I%-1%)/2%+2% : IF E2%=8% E2%=0%
2720 IF E2%=7% E3%=5%
2730 RETURN
2740 S$=S$+C$ : IF B2%>B% 2760
2750 C$=MID$(B$,B2%,1%) : IF INSTR(1%,C5$+C6$+"?_",C$) B2%=B2%+1% : GOTO 2740
2760 GOSUB 2110 : E2%=9% : E3%=S% : RETURN
2770 E2%=9% : E3%=ASC(MID$(B$,B2%,1%))
2780 IF MID$(B$,B2%+1%,1%)<>'"' E%=13%
2790 B2%=B2%+2% : RETURN
2800 S$=S$+C$ : E2%=9%
2810 IF B2%>B% 2830
2820 C$=MID$(B$,B2%,1%) : IF INSTR(1%,C3$+"QOH",C$) B2%=B2%+1% : GOTO 2800
2830 I%=INSTR(1%,"DHBOQ",RIGHT$(S$,LEN(S$)))
2840 IF I% S$=LEFT$(S$,LEN(S$)-1%)
2850 I%=10%+I%/2%*6%+14%*(I%>2%) : E=0% : FOR J%=1% TO LEN(S$)
2860 J1%=INSTR(1%,C3$,MID$(S$,J%,1%)) : IF J1%=0% OR J1%>I% E%=4% : RETURN
2870 E=J1%-1%+E*I% : NEXT J% : IF E>65535 OR E<-32768% E%=10% ELSE E3%=E
2880 RETURN
2910 R%=0% : ONERRORGOTO 2930
2920 INPUTLINE #1%L1$ : GOTO 2940
2930 IF ERRCODE=34% R%=-1% : RETURN ELSE CLOSE 1% : STOP
2940 ONERRORGOTO 0 : IF LEN(L1$)=2% R%=-1%
2950 RETURN
2990 IF P%=1% AND E%=10% E%=0%
3000 IF E% E9%=E9%+1%
3010 IF F7% AND P%=1% AND E%=0% 3080
3020 IF E% OR F2%=1% 3070
3030 R%=FNL%(P0%) : GOSUB 3100 : R%=FNR%(P0%) : GOSUB 3100
3040 ; #L9%TAB(6%); : IF F2% 3070
3050 FOR I5%=1% TO B1% : IF I5%>4% 3070
3060 R%=B1%(I5%) : GOSUB 3100 : NEXT I5%
3070 ; #F9%TAB(16%)L1$;
3080 IF E% ; #F9%"Fel nr:"E%
3090 IF E%>=20% 3640 ELSE RETURN
3100 R%=R% AND 255% : ; #F9%MID$(C3$,R%/16%+1%,1%)MID$(C3$,FNM%(R%,16%)+1%,1%); : RETURN
3150 IF P%=2% 3190
3160 IF E%=0% P0%=P0%+B1%
3170 RETURN
3190 IF F2%=2% P0%=P0%+B1% : RETURN
3200 IF P5%>=13% OR P6%<>P0% AND B1%<>0% ; #3%
3210 IF (P5%=-1% OR P5%>=13% OR P6%<>P0%) AND B1%<>0% ; #3%X7%"POKE"P0%"%"; : P5%=0% : X7%=X7%+10%
3220 FOR I%=1% TO B1% : P5%=P5%+1% : ; #3%","B1%(I%)"%"; : NEXT I% : P0%=P0%+B1% : P6%=P0% : RETURN
3260 DIM C$=16%,C1$=6%,C3$=16%,C5$=31%,C6$=10%
3270 C1$=" ,;"""+CHR$(9%,13%) : OPEN "ASMCON" ASFILE 1%
3280 INPUT #1%,T1%,T1%,T2%,C5$,C6$,C3$ : T2%=T2%+1% : DIM T1$=4%*(T1%+1%),T1%(T1%),T2%(T2%)
3290 FOR I%=0% TO T1% : IF I%