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%