10 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM" 20 LOCATE 7,8 ,0:PRINT "General utility programs" 30 COLOR 9 ,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184) 40 LOCATE 11,9,0:PRINT CHR$(179)+" SERPENT "+CHR$(179) 50 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179) 60 COLOR 9,0:LOCATE 13,9,0:PRINT CHR$(179)+" Version 00 "+CHR$(179) 70 BEEP 80 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190) 90 COLOR 15,0,1:LOCATE 17,7,0:PRINT "OCTOBER 06 1982 USR-5-5-K " 100 COLOR 9,0:LOCATE 23,6,0:PRINT "Press space bar to continue..." 110 IF INKEY$ <> "" THEN GOTO 110 120 CMD$ = INKEY$ 130 IF CMD$ = "" THEN GOTO 120 140 IF CMD$ = CHR$(27) THEN GOTO 160 150 IF CMD$ <> " " THEN GOTO 120 160 REM TRANSFER COMMAND 500 SCREEN 0,1:WIDTH 40:COLOR 1,0,1:KEY OFF:DEF SEG=0:POKE 1047,32 510 DL=0:L=10:SL=3:P=0 520 CLS:LOCATE 13,3:PRINT "press a key to start or ESC to end":A$=INPUT$(1):IF A$=CHR$(27) THEN CLS:COLOR 7,,0:END 530 X1=1:Y1=0:HX=1:HY=1:Y2=0:X2=1:EX=1:EY=1:AP=0:LE=L:PX(1)=2:PY(1)=24:PX1(1)=1:PY1(1)=-1:PX(2)=39:PY(2)=24:PX1(2)=-1:PY1(2)=-1 540 CLS:PS=1/(DL+1)*40:FOR R=1 TO DL:GOSUB 950:NEXT 550 FOR R=1 TO 40:LOCATE 25,R:PRINT "Û";:NEXT 560 COLOR 4:FOR R=1 TO 5:LOCATE RND*22+2,RND*39+1:PRINT "”";:NEXT 570 A=VAL(INKEY$):COLOR 1:LOCATE HY,HX:IF Y1=0 THEN PRINT "Ä"; ELSE PRINT "³"; 571 FOR X = 1 TO 5000:FOR Y = 1 TO 20:NEXT Y,X 580 IF A=4 AND X1<>-1 THEN X1=-1:LOCATE HY,HX:IF Y1=1 THEN PRINT "Ù";:Y1=0 ELSE PRINT "¿";:Y1=0:GOTO 620 590 IF A=6 AND X1<>1 THEN X1=1:LOCATE HY,HX:IF Y1=1 THEN PRINT "À";:Y1=0 ELSE PRINT "Ú";:Y1=0:GOTO 620 600 IF A=2 AND Y1<>1 THEN Y1=1:LOCATE HY,HX:IF X1=1 THEN PRINT "¿";:X1=0 ELSE PRINT "Ú";:X1=0:GOTO 620 610 IF A=8 AND Y1<>-1 THEN Y1=-1:LOCATE HY,HX:IF X1=1 THEN PRINT "Ù";:X1=0 ELSE PRINT "À";:X1=0:GOTO 620 620 HX=HX+X1:HY=HY+Y1:IF HX<1 OR HX>40 OR HY<1 OR HY>24 THEN GOTO 860 630 S=SCREEN(HY,HX):IF S<219 AND S>178 OR S=235 THEN 860 640 IF S=148 THEN SC=SC+10:LOCATE 25,20-LEN(STR$(SC))/2:PRINT SC;:L=L+1:SOUND 100,1:SOUND 1000,.5:AP=AP+1:IF AP<5 THEN 750 ELSE FOR R=1 TO 10:A$=INKEY$:NEXT:DL=DL+1:IF DL=5 THEN DL=0:P=P+1:GOTO 530 ELSE 530 650 IF S=162 THEN 860 660 LOCATE HY,HX:IF Y1=0 THEN PRINT "³"; ELSE PRINT "Ä"; 670 IF LE>1 THEN LE=LE-1:GOTO 750 680 '------------------------------ 690 S=SCREEN(EY,EX):LOCATE EY,EX:PRINT " "; 700 IF S=179 THEN EY=EY+Y2 ELSE IF S=196 THEN EX=EX+X2 710 IF S=191 THEN IF X2=1 THEN X2=0:Y2=1:EY=EY+Y2 ELSE IF Y2=-1 THEN Y2=0:X2=-1:EX=EX+X2 720 IF S=192 THEN IF X2=-1 THEN X2=0:Y2=-1:EY=EY+Y2 ELSE IF Y2=1 THEN Y2=0:X2=1:EX=EX+X2 730 IF S=217 THEN IF X2=1 THEN X2=0:Y2=-1:EY=EY+Y2 ELSE IF Y2=1 THEN Y2=0:X2=-1:EX=EX+X2 740 IF S=218 THEN IF X2=-1 THEN X2=0:Y2=1:EY=EY+Y2 ELSE IF Y2=-1 THEN Y2=0:X2=1:EX=EX+X2 750 COLOR 9:FOR PL=1 TO P 760 LOCATE PY(PL),PX(PL):PRINT " ";:PX(PL)=PX(PL)+PX1(PL):PY(PL)=PY(PL)+PY1(PL) 770 IF PX(PL)<2 OR PX(PL)>39 THEN PX1(PL)=-PX1(PL):GOTO 820 780 IF PY(PL)<2 OR PY(PL)>24 THEN PY1(PL)=-PY1(PL):GOTO 820 790 S1=SCREEN(PY(PL)+PY1(PL),PX(PL)):S2=SCREEN(PY(PL),PX(PL)+PX1(PL)):IF S1<219 AND S1>178 THEN PY1(PL)=-PY1(PL) 800 IF S2<219 AND S2>178 THEN PX1(PL)=-PX1(PL) 810 LOCATE PY(PL),PX(PL):PRINT "¢"; 820 NEXT 830 '----------------------------- 840 GOTO 570 850 '------------------------------ 860 FOR R=31000! TO 400 STEP -50:COLOR ,,R MOD 16:SOUND R,.05:NEXT:FOR R=1 TO 10:A$=INKEY$:NEXT:COLOR ,,1 870 SL=SL-1:IF SL>0 THEN 530 880 COLOR 4,,4:CLS:EX=20:HX=20:S=2550:FOR HY=1 TO 25 890 LOCATE HY,HX:PRINT "Ä";:S=S-50:SOUND S,1:LOCATE HY,HX:PRINT "³"; 900 NEXT:FOR EY=1 TO 25 910 LOCATE EY,EX:PRINT " ";:S=S-25:SOUND S,1:NEXT 920 SOUND -50,1:SOUND 37,5:FOR W=1 TO 2500:NEXT 930 GOTO 500 940 '------------------------------ 950 FOR LP=5 TO 19:LOCATE LP,PS:PRINT "³"STRING$(9,28)"³";:NEXT 960 LOCATE 12,PS:PRINT "ÅÄÄÄÄÄÄÄÄÄÅ"; 970 PS=PS+5:RETURN