Files

65 lines
2.3 KiB
Plaintext

100 RANDOMIZE:RAD
110 DIM PMEM(300),DMEM(256)
120 RESTORE 5000
130 I=0
140 READ PMEM(I), PMEM(I+1)
150 I=I+2
160 IF PMEM(I-2)>-1 THEN 140
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,DMEM(0)=0:DMEM(127)=1
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 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 180
490 IF CMD=4 THEN 500 ELSE 530
500 FOR I=X TO Y
510 IF Z=0 THEN INPUT DMEM(I) ELSE IF Z=2 THEN DMEM(I)=ASC(KEY$)
520 NEXT I:GOTO 180
530 IF CMD=6 THEN 540 ELSE 570
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 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 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 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 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 GOTO 180
730 END