0 REM ******************************* 10 REM ** DIGGER COPYRIGHT (C) 1987 ** 20 REM ** BY RICHARD CARAVELLA ** 30 REM ** 105 PHYLLIS DRIVE ** 40 REM ** LINDENHURST NY 11757 ** 50 REM ******************************* 60 REM ** 041187 ** 70 CLR:POKE53280,0:POKE53281,0:POKE783,0 75 PRINT"[147]"CHR$(8)CHR$(142):A=RND(-TI/79):GOSUB690 80 POKE 52,48: POKE 56,48: CLR 90 FOR I=49152 TO 49196: READ A: POKE I,A: NEXT 100 SYS 49152: REM XFER CHAR ROM 105 FOR I=49152 TO 49188: READ A: POKE I,A: NEXT: REM INSTALL SEQ READER 110 READA:IFA=-1THEN130 120 FORI=0TO7:READB:POKE12288+A*8+I,B:NEXT:GOTO110 130 POKE53272,(PEEK(53272)AND240)OR12:GOSUB730 140 Q=54272:W=54296:QW=54273:WE=54276:G=54277:KK=54278:FORJ=QTOW:NEXT:POKEW,15 150 POKEG,64:POKEKK,48 160 POKE53280,12:POKE53281,0:S$="[152]+":S=HS 170 A=1024:B=55296:D$="[145][154]^ ":A$="[158][166][166][166][166][166][166][166][166][166][166]":M$="@" 180 C$="[152][166] [166]":RD=0:L=1:S=5:D=4:E$="[152]++++" 190 IFD<1THEN830 200 IFRD=3THENL=L+1:RD=0 210 IFL=10ANDRD=0THEND=D+1 220 RD=RD+1:LL=L:IFLL>=10THENLL=10 230 FORI=1TOL:POKEQW,50+L:POKEQ,100:POKEWE,33:FORZ=1TO20:NEXT:POKEWE,0:NEXT 240 X=20:Y=12:PRINT"[147]":FORI=1TO18:PRINT"[152][166]";:NEXT:PRINT"[155]____[152]";:FORI=1TO18 250 PRINT"[152][166]";:NEXT:FORI=1TO20:PRINTC$;:NEXT:FORI=1TO18:PRINT"[152][166]";:NEXT 260 PRINT"[155]____[152]";:FORI=1TO17:PRINT"[152][166]";:NEXT:POKEA+999,102:POKEB+999,12 270 FORI=1TO10:Y1=INT(RND(1)*19)+4:X1=INT(RND(1)*33)+2 280 POKE782,X1:POKE781,Y1:SYS65520:PRINTE$:NEXT 290 FORI=1TO25:Y1=INT(RND(1)*19)+4:X1=INT(RND(1)*36)+2:P=INT(RND(1)*3)+35 300 POKE646,(RND(1)*15):POKE782,X1:POKE781,Y1:SYS65520:PRINTCHR$(P):NEXT 310 FORI=1TOLL*2:Y1=INT(RND(1)*19)+4:X1=INT(RND(1)*23)+2 320 POKE782,X1:POKE781,Y1:SYS65520:PRINTA$:NEXT 330 GOSUB480:PRINT"[145][155] LEVEL"L" ROUND"RD;" ";:FORI=1TOD:PRINTD$;:NEXT 340 GET K$: IF K$=CHR$(140) THEN 1200 345 J%=PEEK(56320)AND31:XX=X:YY=Y:X=X+SGN(J%AND4)-SGN(J%AND8) 350 Y=Y+SGN(J%AND1)-SGN(J%AND2) 380 IF(J%AND16)=.THENGOTO560 390 IFPEEK(A+X+40*Y)=102THENX=XX:Y=YY:GOTO460 400 IFPEEK(A+X+40*Y)=32THENS=S-5 410 IFPEEK(A+X+40*Y)=35THENS=S+10*L 420 IFPEEK(A+X+40*Y)=36THENS=S+15*L 430 IFPEEK(A+X+40*Y)=37THENS=S+20*L 440 IFPEEK(A+X+40*Y)=31THEN190 450 IFRND(1)*1>.5ANDR>=1THEN520 460 POKEA+XX+40*YY,43:POKEA+X+40*Y,30:POKEB+X+40*Y,12 470 PRINT""SPC(45)"[155]SCORE:"S;"[157] ":GOTO340 480 R=INT(RND(1)*4)+1 490 FORI=1TOR:M(I,1)=INT(RND(1)*19)+4:M(I,2)=INT(RND(1)*36)+2 500 POKEQW,40:POKEQ,200:POKEWE,33:FORZ=1TO20:NEXT:POKEWE,0 510 POKE782,M(I,2):POKE781,M(I,1):SYS65520:PRINTM$:NEXT:RETURN 520 FORI=1TOR:X1=M(I,2):Y1=M(I,1):POKE782,X1:POKE781,Y1:SYS65520:PRINTS$; 530 Y1=Y1+SGN(Y-Y1):X1=X1+SGN(X-X1):POKE782,X1:POKE781,Y1:SYS65520:PRINTM$; 540 IFX=X1ANDY=Y1THEND=D-1:GOTO190 550 M(I,1)=Y1:M(I,2)=X1:NEXT:GOTO460 560 H=X:V=Y 570 H=H+SGN(J%AND4)-SGN(J%AND8):V=V+SGN(J%AND1)-SGN(J%AND2) 610 POKEQW,45:POKEQ,100:POKEWE,33:FORZ=1TO5:NEXT:POKEWE,0 620 IFPEEK(A+H+40*V)=0THEN650 630 IFPEEK(A+H+40*V)<>43THENGOTO390 640 POKEA+H+40*V,42:POKEB+H+40*V,2:POKEA+H+40*V,43:POKEB+H+40*V,12:GOTO570 650 FORI=1TOR:X1=M(I,2):Y1=M(I,1):POKE782,X1:POKE781,Y1:SYS65520:PRINTS$;:NEXT 660 POKEQW,45+R:POKEQ,200:POKEWE,33:FORZ=1TO25:NEXT:POKEWE,0 670 S=S+20*L:R=R-1:IFR<=0THENGOTO390 680 GOSUB490:GOTO390 690 PRINT"[147]":FORI=1TO9:FORJ=1TO15:PRINTTAB(J)" DIGGER[145]" 700 R=RND(1)*14+1:POKE646,R:FORK=1TO25:NEXT:NEXT:PRINT"":NEXT 710 PRINT"[159]COPYRIGHT (C) 1987 BY RICHARD CARAVELLA" 720 PRINTTAB(10)"ALL RIGHTS RESERVED" 725 PRINT" PUBLISHED BY SOFTDISK PUBLISHING, INC.": RETURN 730 PRINT"[147]"TAB(11)"[159]THIS IS DIGGER ^":PRINTTAB(10)"# = 20 PTS. X LEVEL" 740 PRINTTAB(10)"[154]$ = 25 PTS. X LEVEL":PRINTTAB(10)"[158]% = 50 PTS. X LEVEL" 750 PRINTTAB(6)"[159]@ MONSTER = 20 PTS. X LEVEL":PRINTTAB(13)"+ = -5 POINTS" 760 PRINTTAB(8)"[159]HIT FIRE BUTTON TO START" 765 PRINTTAB(8)"[158]HIT F8[158] TO EXIT TO UPTIME" 770 PRINTTAB(4)"[154]HIT ANY OTHER KEY FOR DIRECTIONS" 775 GET A$: IF A$<>"" THEN 775 780 P=PEEK(56320):IF(PAND16)=.THENRETURN 790 GETA$: IF A$=CHR$(140) THEN 1200 795 IF A$="" THEN 780 800 GOSUB 1300: REM READ INSTR. FILE 810 IF K$=CHR$(140) THEN 1200 820 RETURN 830 PRINT"":PRINTTAB(14)"[144]GAME OVER":FORI=1TO3:FORJ=1TO16:POKE53280,J 840 POKEQW,45+J:POKEQ,148+I:POKEWE,33:FORZ=1TO20:NEXT:POKEWE,0 850 NEXT:NEXT:POKE53281,0:POKE53280,0:PRINT"[147]" 860 TS=S:IFS>HSTHENHS=TS 870 PRINTTAB(12)"[154]FINAL SCORE:"S:PRINTTAB(12)"HIGH SCORE:"HS 880 PRINTTAB(5)"[159]HIT FIRE BUTTON TO PLAY AGAIN" 881 PRINTTAB(8)"HIT F8 TO EXIT TO UPTIME" 882 GET K$: P=PEEK(56320) 883 IF (P AND 16)=. THEN 160 884 IF K$<>CHR$(140) THEN 882 885 GOTO 1200 886 REM *** CHAR ROM XFER.ML *** 890 DATA 120,165,001,041,251,133,001,169 895 DATA 208,162,048,160,000,133,252,134 900 DATA 254,132,251,132,253,162,008,177 905 DATA 251,145,253,200,208,249,230,252 910 DATA 230,254,202,208,242,165,001,009 920 DATA 004,133,001,088,096 925 REM *** SEQ READER.ML *** 930 DATA 162,002,160,000,024,032,240,255 940 DATA 162,002,032,198,255,032,165,255 950 DATA 166,144,134,002,201,047,240,009 960 DATA 032,210,255,165,002,041,064,240 970 DATA 236,032,204,255,096 995 REM *** REDEFINED CHAR DATA *** 1000 DATA 000,102,060,102,102,126,219,195,195 1010 DATA 035,112,024,024,126,255,255,126,60 1020 DATA 036,024,060,255,102,102,102,060,024 1030 DATA 037,006,012,024,060,126,255,255,126 1040 DATA 030,060,255,195,255,060,102,102,231 1050 DATA 031,016,025,153,255,255,153,136,128 1060 DATA 042,000,000,060,060,060,000,000,000 1070 DATA 043,255,255,255,255,255,255,255,255,-1 1200 SYS (8*4096)+4 1300 OPEN15,8,15,"I0" 1310 OPEN2,8,2,"DIGGER DOCS,S,R" 1320 GOSUB 1600: IF EN<>0 THEN GOSUB 1400: RETURN 1325 P=0 1330 GOSUB 1500: REM INSTR. PAGE HEADER 1340 SYS 49152: REM READ SEQ FILE 1350 GOSUB 1600: IF EN<>0 THEN GOSUB 1400: RETURN 1360 GET K$: IF K$<>"" THEN 1360 1362 GET K$: IF K$="" THEN 1362 1365 IF K$="S" THEN 1380 1370 IF K$<>CHR$(13) THEN 1362 1375 IF (PEEK(2) AND 64)=0 THEN 1330 1380 CLOSE2: CLOSE15: RETURN 1400 CLOSE2: CLOSE15 1410 PRINT"[147]"SPC(13)"[150]DISK I/O ERROR" 1420 PRINTSPC(7)"[159]PRESS SPACEBAR TO CONTINUE" 1430 GET K$: IF K$<>CHR$(32) THEN 1430 1440 RETURN 1500 PRINT"";: P=P+1 1510 PRINTSPC(25)"[159] PAGE";P;"[157] 0F 6 " 1520 FORX=1TO20 1530 PRINT" " 1540 NEXT 1550 PRINTSPC(7)"PRESS [153]S[159] TO START THE GAME" 1560 PRINTSPC(5)"PRESS [158]RETURN[159] FOR THE NEXT PAGE" 1570 RETURN 1600 INPUT#15,EN,EM$,ET,ES: RETURN