home *** CD-ROM | disk | FTP | other *** search
/ Carousel Volume 2 #1 / carousel.iso / comdore / 64games / catacomb (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1988-11-21  |  4.6 KB  |  120 lines

  1. 1 REM CATACOMBS
  2. 10 REM ********************************
  3. 20 REM *        CATACOMBS V1.0        *
  4. 30 REM *      BY CLEVE BLAKEMORE      *
  5. 40 REM ********************************
  6. 50 POKE53281,.:POKE53280,.:PRINT"[147]"TAB(14)CHR$(8)CHR$(142)" CATACOMBS "
  7. 60 PRINTTAB(6)"[151] PLEASE WAIT...LOADING DATA! ":GOSUB840
  8. 70 POKE53272,30:POKE53265,PEEK(53265)OR64
  9. 80 PRINT""TAB(15)"SKULL  #":PRINTTAB(15)"WIZARD $"
  10. 90 PRINTTAB(15)"BAT    %":PRINTTAB(15)"SPIRIT &":PRINTTAB(15)"SNAKE  '"
  11. 100 B=49152:E=53151:V=53248:S=1024:X=10:Y=5:MX=.:MY=.:R=80:SR=40:M=32
  12. 110 L=.:EX=239:JY=56321:SO=54272:DEF FNA(B)=Y*SR+X+S:DEF FNB(B)=PEEK(TY*SR+TX+S)
  13. 120 DEF FNX(B)=(X-3)*8+28+((X>31)*255):DEFFNE(B)=(X>31)*-1:DEFFNY(X)=Y*8+35
  14. 130 DEF FNJ(X)=15-(PEEK(JY)AND15):DEF FNC(X)=B+MX+TX+((MY+TY)*R)
  15. 140 DEF FNCX(B)=CX(D)+(CX(D)<MX+X)*-1+(CX(D)>MX+X)*1
  16. 150 DEF FNCY(B)=CY(D)+(CY(D)<MY+Y)*-1+(CY(D)>MY+Y)*1
  17. 160 DEF FNK(Q)=PEEK(FNC(.))=M(L)
  18. 170 DEFFNCH(B)=(FNB(.)=M+8)*-1+(FNB(.)=M+9)*-2+(FNB(.)=M+13)*-3
  19. 180 DEFFNET(B)=TX<1ORTX>38ORTY<2ORTY>23
  20. 190 DEF FNM(X)=(B+CX(D)+(CY(D)*R)):DEF FNW(X)=PEEK(FNM(.))<>M:GOSUB640
  21. 200 POKEV+27,1:POKEV+39,7:POKEV+23,1:POKEV+29,1:POKEV,FNX(.):POKEV+1,FNY(.)
  22. 210 POKE2040,15:POKEV+21,1:POKEV+34,1:POKEV+36,11
  23. 220 FORD=SOTOSO+24:POKED,.:NEXT:POKESO,255:POKESO+1,27:POKESO+5,64
  24. 230 POKESO+6,128:POKESO+24,10
  25. 240 D=.:GOTO280
  26. 250 REM JOYSTICK ROUTINE
  27. 260 TX=MX+X(J):TY=MY+Y(J):IFTX<0ORTX>41ORTY<0ORTY>25THEN280
  28. 270 POKESO+4,33:MX=TX:MY=TY
  29. 280 SYS828,MX,MY:POKEFNA(.),.
  30. 290 POKESO+4,.:J=FNJ(.):TX=X+X(J):TY=Y+Y(J):IFFNK(.)THEN440
  31. 300 IFFNB(.)=MTHEN340
  32. 310 ONFNCH(.)GOSUB510,520,530
  33. 320 IFFNB(.)=EXANDKTHEN540
  34. 330 GOTO390
  35. 340 IFFNET(.)THEN260
  36. 350 POKESO+4,129:IFX<>TXORY<>TYTHENPOKEFNA(.),M
  37. 360 X=TX:Y=TY:POKEFNA(.),.:POKEV+16,FNE(.):POKEV,FNX(.):POKEV+1,FNY(.)
  38. 370 POKESO+4,.
  39. 380 REM MONSTER MOVEMENT
  40. 390 D=D+1+(D=2)*3
  41. 400 POKEFNM(.),M:TX=CX(D):TY=CY(D):CX(D)=FNCX(.):IFFNW(.)THENCX(D)=TX
  42. 410 CY(D)=FNCY(.):IFFNW(.)THENCY(D)=TY
  43. 420 POKEFNM(.),M(L)
  44. 430 GOTO280
  45. 440 GOSUB610:PRINT"[157]CHOMP";:GOSUB620
  46. 450 POKEV+21,.:POKEV+33,.
  47. 460 PRINT"[147]"TAB(13)" GOLD = ";G:PRINT" ANOTHER GAME ?[Y OR N]"
  48. 470 POKE198,.
  49. 480 GETA$:IFA$=""THEN480
  50. 490 IFA$="N"THENPOKE679,.:SYS679
  51. 500 POKEV+24,21:POKEV+17,PEEK(V+17)AND191:RUN
  52. 510 GOSUB610:PRINT"G 50":G=G+50:GOSUB620:RETURN
  53. 520 GOSUB610:PRINT" KEY ":K=1:G=G+100:GOSUB620:RETURN
  54. 530 GOSUB610:POKEV+33,2:GOSUB620:POKEV+33,.:G=G-(G>49)*-50:RETURN
  55. 540 POKEV+21,.:L=L+1:IFL=10THEN450
  56. 550 K=.:PRINT"[147]"TAB(4)" PREPARE FOR THE NEXT LEVEL !! "
  57. 560 PRINT""TAB(4)"  DESCENDING DOWN TO LEVEL";L+1;"[157]   "
  58. 570 POKESO+4,17:FORD=100TO.STEP-1::FORX=.TO50:NEXT:POKESO+1,D:NEXT:POKESO+1,27
  59. 580 POKESO+4,.:G=G+25:PRINTTAB(14)"  GOLD = ";G;
  60. 590 GOSUB640:MX=.:MY=.:X=10:Y=5:D=.:POKEV,FNX(.):POKEV+1,FNY(.)
  61. 600 POKEV+16,FNE(.):POKEV+21,1:GOTO280
  62. 610 POKEFNC(.),M:POKEV+21,.:POKE781,Y:POKE782,X-1:POKE783,.:SYS65520:RETURN
  63. 620 POKESO+4,17:FORQ=.TO500:NEXT:POKEV+21,1:POKESO+4,.:RETURN
  64. 630 REM DUNJON GENERATOR
  65. 640 SYS916:POKEV+33,(L<5)*-15:FORQ=192TO204STEP4:POKE648,Q:PRINT"[144][147]":FORD=1TO3
  66. 650 FORX=.TO7:IF(2^XANDL(L))THENPRINT"+++++++++++[146]             ";SPC(40);
  67. 660 PRINT"  +++[146]        +++[146]";
  68. 670 NEXT:NEXT:NEXT:POKE648,4:POKE53283,L+2:FORA=BTOB+R:POKEA,42+64*3:NEXT
  69. 680 FORA=E-RTOE+1:POKEA,42+64*3:NEXT:FORA=BTOESTEPR:POKEA,42+64*3:NEXT
  70. 690 POKEB+3+R*3,47+64
  71. 700 A=RND(1)*60+8:Q=RND(1)*40+5:IFPEEK(B+A+Q*R)<>MTHEN700
  72. 710 POKEB+Q*R+A,EX
  73. 720 FORD=1TOL*2
  74. 730 A=RND(1)*70+5:Q=RND(1)*40+5:IFPEEK(B+Q*R+A)<>MTHEN730
  75. 740 POKEB+Q*R+A,M+8:NEXT
  76. 750 FORD=1TOL*2
  77. 760 A=RND(1)*70+5:Q=RND(1)*40+5:IFPEEK(B+Q*R+A)<>MTHEN760
  78. 770 POKEB+Q*R+A,M+13:NEXT
  79. 780 A=RND(1)*70+5:Q=RND(1)*40+5:IFPEEK(B+Q*R+A)<>MTHEN780
  80. 790 POKEB+Q*R+A,M+9
  81. 800 FORD=.TO2
  82. 810 A=RND(1)*70+5:Q=RND(1)*40+5:IFPEEK(B+Q*R+A)<>MTHEN810
  83. 820 CX(D)=INT(A):CY(D)=INT(Q):NEXT:RETURN
  84. 830 REM REDEFINED CHARACTERS
  85. 840 FORX=1TO33:READA:POKE680+X,A:NEXT:POKE56334,PEEK(56334)AND254
  86. 850 POKE1,PEEK(1)AND251:SYS681:POKE1,PEEK(1)OR4:POKE56334,PEEK(56334)OR1
  87. 860 READA:IFA=-1THEN890
  88. 870 FORX=.TO7:READD:POKE14336+A*8+X,D:NEXT:GOTO860
  89. 880 REM ML SCROLL ROUTINE
  90. 890 DIMX(10),Y(10),CX(2),CY(2),M(9),L(9):FORA=.TO10:READX(A),Y(A):NEXT
  91. 900 FORA=828TO914:READB:POKEA,B:NEXT:FORA=.TO63:POKE15*64+A,255:NEXT
  92. 910 FORA=.TO9:READL(A):NEXT:FORA=.TO9:READM(A):NEXT:FORX=916TO951:READA:POKEX,A
  93. 920 NEXT:RETURN
  94. 930 DATA 169,,133,251,133,253,169,208,133,252,169,56,133,254,162,8
  95. 940 DATA 160,,177,251,145,253,136,208,249,230,252,230,254,202,208,240,96
  96. 950 DATA000,152,152,190,217,024,060,036,195
  97. 960 DATA035,126,153,153,153,126,066,090,126
  98. 970 DATA036,024,126,024,126,153,060,126,126
  99. 980 DATA037,000,036,126,219,129,066,000,000
  100. 990 DATA038,031,021,021,014,028,156,248,112
  101. 1000 DATA039,060,066,002,028,032,024,004,008
  102. 1010 DATA040,000,000,255,129,255,153,129,255
  103. 1020 DATA041,062,034,062,008,008,056,008,056
  104. 1030 DATA042,255,129,189,165,165,189,129,255
  105. 1040 DATA043,249,249,000,159,159,000,249,249
  106. 1050 DATA045,000,000,000,000,016,000,000,000
  107. 1060 DATA047,129,066,036,024,024,036,066,129,-1
  108. 1070 DATA0,0,0,-1,0,1,0,0,-1,0,-1,-1,-1,1,0,0,1,0,1,-1,1,1
  109. 1080 DATA 32,155,183,138,24,105,0,133,4,169,192,105,0,133,5,32,155,183,224
  110. 1090 DATA 0,240,16,165,4,24,105,80,133,4,165,5,105,0,133,5,202,208,240
  111. 1100 DATA 169,0,133,2,169,4,133,3,162,24,160,39,177,4,145,2,136,16,249
  112. 1110 DATA 165,2,24,105,40,133,2,165,3,105,0,133,3,165,4,24,105,80,133
  113. 1120 DATA 4,165,5,105,0,133,5,202,16,218,96
  114. 1130 DATA 201,223,178,245,251,199,143,124,211,255
  115. 1140 DATA 35,36,37,38,39,35,36,37,38,39
  116. 1150 DATA 169,0,133,251,169,192,133,252,162,20,160,0,169,32,145,251,200
  117. 1160 DATA 192,201,208,247,24,169,200,101,251,133,251,144,2,230,252,202
  118. 1170 DATA 208,231,96
  119. 6682 
  120.