69 lines
2.4 KiB
Plaintext
69 lines
2.4 KiB
Plaintext
100 RANDOMIZE:RAD
|
|||
|
|
110 DIM PMEM(129),DMEM(128)
|
||
|
|
120 RESTORE 1000
|
||
|
|
130 I=0
|
||
|
|
140 READ PMEM(I)
|
||
|
|
150 I=I+1
|
||
|
|
160 IF PMEM(I-1)>-1 THEN 140
|
||
|
|
170 L,IAT,V1,V2,V3=0
|
||
|
|
180 A=PMEM(L):L=L+1
|
||
|
|
190 IF A<0 THEN 770
|
||
|
|
200 CMD=INT(A/2097152)
|
||
|
|
210 IF IAT=1 THEN 220 ELSE 230
|
||
|
|
220 P1=INT(V1):P2=INT(V2):P3=INT(V3):IAT=0:GOTO 250
|
||
|
|
230 A=A-CMD*2097152:P1=INT(A/16384):A=A-P1*16384
|
||
|
|
240 P2=INT(A/128):P3=A-P2*128
|
||
|
|
250 DMEM(0)=0:DMEM(127)=1:DMEM(126)=-1
|
||
|
|
260 V1=DMEM(P1):V2=DMEM(P2):V3=DMEM(P3)
|
||
|
|
270 IF CMD=1 THEN 280 ELSE 430
|
||
|
|
280 IF P1=0 AND V2=0 THEN L=P3:GOTO 180
|
||
|
|
290 IF P1=1 AND V2>0 THEN L=P3:GOTO 180
|
||
|
|
300 IF P1=2 AND V2<0 THEN L=P3:GOTO 180
|
||
|
|
310 IF P1=3 AND V2>=0 THEN L=P3:GOTO 180
|
||
|
|
320 IF P1=4 AND V2<=0 THEN L=P3:GOTO 180
|
||
|
|
330 IF P1=5 AND V2<>0 THEN L=P3:GOTO 180
|
||
|
|
340 IF P1=6 THEN L=P3:GOTO 180
|
||
|
|
350 IF P1=7 AND V2=0 THEN L=INT(V3):GOTO 180
|
||
|
|
360 IF P1=8 AND V2>0 THEN L=INT(V3):GOTO 180
|
||
|
|
370 IF P1=9 AND V2<0 THEN L=INT(V3):GOTO 180
|
||
|
|
380 IF P1=10 AND V2>=0 THEN L=INT(V3):GOTO 180
|
||
|
|
390 IF P1=11 AND V2<=0 THEN L=INT(V3):GOTO 180
|
||
|
|
400 IF P1=12 AND V2<>0 THEN L=INT(V3):GOTO 180
|
||
|
|
410 IF P1=13 THEN L=INT(V3):GOTO 180
|
||
|
|
420 IF P1=14 THEN DMEM(125)=L:L=P3:GOTO 180
|
||
|
|
430 IF CMD=2 THEN IAT=1:GOTO 180
|
||
|
|
440 IF CMD=3 THEN 450 ELSE 520
|
||
|
|
450 FOR I=P2 TO P3
|
||
|
|
460 IF P1=0 THEN PRINT(DMEM(I)):PAUSE
|
||
|
|
470 IF P1=1 THEN INPUT DMEM(I)
|
||
|
|
480 IF P1=2 THEN 490 ELSE 500
|
||
|
|
490 IF DMEM(I)=10 THEN PAUSE ELSE PRINT(CHR$(INT(DMEM(I))));
|
||
|
|
500 IF P1=3 THEN DMEM(I)=ASC(KEY$)
|
||
|
|
510 NEXT I:GOTO 180
|
||
|
|
520 IF CMD=4 THEN 530 ELSE 580
|
||
|
|
530 IF P1=0 THEN DMEM(P3)=P2:GOTO 180
|
||
|
|
540 IF P1=1 THEN DMEM(P3)=V2:GOTO 180
|
||
|
|
550 IF P1=2 THEN DMEM(INT(V3))=P2:GOTO 180
|
||
|
|
560 IF P1=3 THEN DMEM(INT(V3))=V2:GOTO 180
|
||
|
|
570 IF P1=4 THEN DMEM(INT(V3))=DMEM(INT(V2)):GOTO 180
|
||
|
|
580 IF CMD=5 THEN DMEM(P3)=P1*100+P2+V3/100:GOTO 180
|
||
|
|
590 IF CMD=6 THEN 600 ELSE 720
|
||
|
|
600 IF P1=0 THEN DMEM(P3)=V2+V3:GOTO 180
|
||
|
|
610 IF P1=1 THEN DMEM(P3)=V2-V3:GOTO 180
|
||
|
|
620 IF P1=2 THEN DMEM(P3)=V2*V3:GOTO 180
|
||
|
|
630 IF P1=3 THEN 640 ELSE 650
|
||
|
|
640 IF V3=0 THEN DMEM(P3)=0:GOTO 180 ELSE DMEM(P3)=V2/V3:GOTO 180
|
||
|
|
650 IF P1=4 THEN 660 ELSE 680
|
||
|
|
660 IF V3=0 THEN DMEM(P3)=INT(V2):GOTO 180 ELSE 670
|
||
|
|
670 DMEM(P3)=V2-V3*INT(V2/V3):GOTO 180
|
||
|
|
680 IF P1=5 THEN DMEM(P3)=ABS(V2):GOTO 180
|
||
|
|
690 IF P1=6 THEN DMEM(P3)=SQR(ABS(V2)):GOTO 180
|
||
|
|
700 IF P1=7 THEN DMEM(P3)=EXP(V2):GOTO 180
|
||
|
|
710 IF P1=8 THEN DMEM(P3)=LN(ABS(V2)):GOTO 180
|
||
|
|
720 IF P1=9 THEN DMEM(P3)=SIN(V2):GOTO 180
|
||
|
|
730 IF P1=10 THEN DMEM(P3)=COS(V2):GOTO 180
|
||
|
|
740 IF P1=11 THEN DMEM(P3)=ATN(V2):GOTO 180
|
||
|
|
750 IF CMD=7 THEN DMEM(P3)=INT(V1)+INT(RND*(INT(V2)-INT(V1)+1))
|
||
|
|
760 GOTO 180
|
||
|
|
770 END
|