diff --git a/mu808.b74 b/mu808.b74 index fe87f40..11a76ce 100644 --- a/mu808.b74 +++ b/mu808.b74 @@ -5,60 +5,60 @@ 140 READ PMEM(I), PMEM(I+1) 150 I=I+2 160 IF PMEM(I-2)>-1 THEN 140 -170 L=1:IAT,V1,V2,V3=0 -180 M=L+L:A=PMEM(M):B=PMEM(M+1) +170 L,IAT,V1,V2,V3=0 +180 L=L+1:M=L+L:A=PMEM(M):B=PMEM(M+1) 190 IF A<0 THEN 730 200 CMD=INT(A/10000) 210 IF IAT=1 THEN 220 ELSE 230 220 X=INT(V1):Y=INT(V2):Z=INT(V3):IAT=0:GOTO 240 230 X=A-CMD*10000:Y=INT(B/10000):Z=B-Y*10000 240 V1,V2,V3=0 -250 IF CMD=5 THEN DMEM(Z)=X+(Y/10000):GOTO 720 +250 IF CMD=5 THEN DMEM(Z)=X+(Y/10000):GOTO 180 260 V1=DMEM(X):V2=DMEM(Y):V3=DMEM(Z) 270 IF CMD=1 THEN 280 ELSE 420 -280 IF X=0 AND V2=0 THEN L=Z-1:GOTO 720 -290 IF X=1 AND V2>0 THEN L=Z-1:GOTO 720 -300 IF X=2 AND V2<0 THEN L=Z-1:GOTO 720 -310 IF X=3 AND V2>=0 THEN L=Z-1:GOTO 720 -320 IF X=4 AND V2<=0 THEN L=Z-1:GOTO 720 -330 IF X=5 AND V2<>0 THEN L=Z-1:GOTO 720 -340 IF X=6 THEN L=Z-1:GOTO 720 -350 IF X=7 AND V2=0 THEN L=INT(V3)-1:GOTO 720 -360 IF X=8 AND V2>0 THEN L=INT(V3)-1:GOTO 720 -370 IF X=9 AND V2<0 THEN L=INT(V3)-1:GOTO 720 -380 IF X=10 AND V2>=0 THEN L=INT(V3)-1:GOTO 720 -390 IF X=11 AND V2<=0 THEN L=INT(V3)-1:GOTO 720 -400 IF X=12 AND V2<>0 THEN L=INT(V3)-1:GOTO 720 -410 IF X=13 THEN L=INT(V3)-1:GOTO 720 -420 IF CMD=2 THEN IAT=1:GOTO 720 +280 IF X=0 AND V2=0 THEN L=Z-1:GOTO 180 +290 IF X=1 AND V2>0 THEN L=Z-1:GOTO 180 +300 IF X=2 AND V2<0 THEN L=Z-1:GOTO 180 +310 IF X=3 AND V2>=0 THEN L=Z-1:GOTO 180 +320 IF X=4 AND V2<=0 THEN L=Z-1:GOTO 180 +330 IF X=5 AND V2<>0 THEN L=Z-1:GOTO 180 +340 IF X=6 THEN L=Z-1:GOTO 180 +350 IF X=7 AND V2=0 THEN L=INT(V3)-1:GOTO 180 +360 IF X=8 AND V2>0 THEN L=INT(V3)-1:GOTO 180 +370 IF X=9 AND V2<0 THEN L=INT(V3)-1:GOTO 180 +380 IF X=10 AND V2>=0 THEN L=INT(V3)-1:GOTO 180 +390 IF X=11 AND V2<=0 THEN L=INT(V3)-1:GOTO 180 +400 IF X=12 AND V2<>0 THEN L=INT(V3)-1:GOTO 180 +410 IF X=13 THEN L=INT(V3)-1:GOTO 180 +420 IF CMD=2 THEN IAT=1:GOTO 180 430 IF CMD=3 THEN 440 ELSE 490 440 FOR I=X TO Y 450 IF Z=0 THEN PRINT(DMEM(I)):PAUSE 460 IF Z=1 THEN 470 ELSE 480 470 IF DMEM(I)=10 THEN PAUSE ELSE PRINT(CHR$(INT(DMEM(I)))); -480 NEXT I:GOTO 720 +480 NEXT I:GOTO 180 490 IF CMD=4 THEN 500 ELSE 530 500 FOR I=X TO Y 510 IF Z=0 THEN INPUT DMEM(I) -520 NEXT I:GOTO 720 +520 NEXT I:GOTO 180 530 IF CMD=6 THEN 540 ELSE 570 -540 IF X=0 THEN DMEM(Z)=Y:GOTO 720 -550 IF X=1 THEN DMEM(Z)=V2:GOTO 720 -560 IF X>1 THEN DMEM(INT(V3))=DMEM(INT(V2)):GOTO 720 -570 IF CMD=7 THEN DMEM(Z)=V1+V2*V3:GOTO 720 -580 IF CMD=8 THEN DMEM(Z)=V1-V2:GOTO 720 +540 IF X=0 THEN DMEM(Z)=Y:GOTO 180 +550 IF X=1 THEN DMEM(Z)=V2:GOTO 180 +560 IF X>1 THEN DMEM(INT(V3))=DMEM(INT(V2)):GOTO 180 +570 IF CMD=7 THEN DMEM(Z)=V1+V2*V3:GOTO 180 +580 IF CMD=8 THEN DMEM(Z)=V1-V2:GOTO 180 590 IF CMD=9 THEN 600 ELSE 610 -600 IF V2=0 THEN DMEM(Z)=0:GOTO 720 ELSE DMEM(Z)=V1/V2:GOTO 720 +600 IF V2=0 THEN DMEM(Z)=0:GOTO 180 ELSE DMEM(Z)=V1/V2:GOTO 180 610 IF CMD=10 THEN 620 ELSE 630 -620 IF V2=0 THEN DMEM(Z)=INT(V1):GOTO 720 ELSE DMEM(Z)=V1-V2*INT(V1/V2):GOTO 720 -630 IF CMD=11 THEN DMEM(Z)=ABS(V2):GOTO 720 -640 IF CMD=12 THEN DMEM(Z)=SQR(ABS(V2)):GOTO 720 +620 IF V2=0 THEN DMEM(Z)=INT(V1):GOTO 180 ELSE DMEM(Z)=V1-V2*INT(V1/V2):GOTO 180 +630 IF CMD=11 THEN DMEM(Z)=ABS(V2):GOTO 180 +640 IF CMD=12 THEN DMEM(Z)=SQR(ABS(V2)):GOTO 180 650 IF CMD=13 THEN 660 ELSE 670 -660 IF X=0 THEN DMEM(Z)=EXP(V2):GOTO 720 ELSE DMEM(Z)=LN(ABS(V2)):GOTO 720 +660 IF X=0 THEN DMEM(Z)=EXP(V2):GOTO 180 ELSE DMEM(Z)=LN(ABS(V2)):GOTO 180 670 IF CMD=14 THEN 680 ELSE 710 -680 IF X=0 THEN DMEM(Z)=SIN(V2):GOTO 720 -690 IF X=1 THEN DMEM(Z)=COS(V2):GOTO 720 -700 IF X>1 THEN DMEM(Z)=ATN(V2):GOTO 720 +680 IF X=0 THEN DMEM(Z)=SIN(V2):GOTO 180 +690 IF X=1 THEN DMEM(Z)=COS(V2):GOTO 180 +700 IF X>1 THEN DMEM(Z)=ATN(V2):GOTO 180 710 IF CMD=15 THEN DMEM(Z)=INT(V1)+INT(RND*(INT(V2)-INT(V1)+1)) -720 L=L+1:GOTO 180 +720 GOTO 180 730 END