home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / enterprs / c64 / games / dungeon.c64 (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1993-04-06  |  6.3 KB  |  185 lines

  1. 0 GOSUB5000:GOSUB1500:GOSUB200:GOSUB1000:GOSUB1100:GOSUB1300:GOSUB1010
  2. 1 GOSUB1140
  3. 5 GOSUB3000:GOSUB4000:GOSUB1500:TI$="000000"
  4. 7 GOSUB20:GOTO7
  5. 10 JOY=0:JY=PEEK(56320):J2=15-(JYAND15):ONJ2GOTO11,12,12,13,13,13,13,14:RETURN
  6. 11 JOY=-40:RETURN
  7. 12 JOY=40:RETURN
  8. 13 JOY=-1:RETURN
  9. 14 JOY=1:RETURN
  10. 20 GOSUB10
  11. 25 GETA$:IFA$="L"THENGOSUB491:LEVITATE=-1
  12. 27 IFTI$>"000300"THENA$="YOUR TIME RAN OUT":GOTO600
  13. 30 TEMP=PEEK(MAN+JOY)-40:IFTEMP<0THENLEVITATE=0:GOTO170
  14. 40 ONTEMPGOSUB50,60,80,90,110,130,140,150,160:GOTO170
  15. 50 GOSUB220:JOY=0:RETURN
  16. 60 IFNOTLEVITATETHENPOKEMAN,BLANK:GOSUB125:A$="YOU FELL INTO A PIT":GOTO105
  17. 70 K=1:RETURN
  18. 80 KEY=-1:POKE1303,43:POKE55575,1:GOSUB401:RETURN
  19. 90 GOSUB320:IFNOTSWRDTHENA$="YOU LOST TO A BEAST":GOTO600
  20. 100 GOSUB360:RETURN
  21. 105 GOSUB220:FORTD=1TO200:NEXT:GOTO600
  22. 110 BOMB=BOMB-1:POKE1823+40*BOMB,45:POKE56095+40*BOMB,1:IFBOMB=0THEN500
  23. 120 RETURN
  24. 125 GOSUB260:GOSUB220:FORTD=1TO200:RETURN
  25. 130 RETURN
  26. 140 IFNOTKEYTHENGOSUB220:JOY=0:RETURN
  27. 150 RETURN
  28. 160 SWRD=-1:GOSUB401:POKE1423,49:POKE55695,1:RETURN
  29. 170 XH=0:POKEMAN,BLANK:MAN=MAN+JOY:POKEMAN,FIGURE:IFK=1THENPOKEMAN,42:K=1
  30. 180 Q=MAN-1024:Y=INT(Q/40):X=(Q-Y*40)*8:IFX>255THENXH=INT(X/256):X=X-XH*256
  31. 190 Y=Y*8+32:POKEHXSPRITE,XH:POKELXSPRITE,X:POKEYSPRITE,Y:BLANK=32
  32. 195 IFK=1THENK=0:BLANK=42
  33. 196 RETURN
  34. 200 FORI=1TO4:READNO(1,I),DUR(1,I):NEXT
  35. 201 FORI=1TO7:READNO(2,I),NL(2,I),DUR(2,I):NEXT
  36. 205 RETURN
  37. 210 DATA8,100,7,50,7,50,12,300,14
  38. 211 DATA2,24,100,2,24,100,2,24,100
  39. 212 DATA2,163,100,2,24,100,2,163,100
  40. 213 DATA3,35
  41. 220 REM BUMP SOUND
  42. 230 POKEH1,15:POKEL1,10
  43. 240 POKEVOLUME,15:POKEATTDEC,20:POKESUSTREL,5:POKEWAVE,NOISE
  44. 250 FORTD=1TO10:NEXT:POKEWAVE,NOISE-1:FORTD=1TO2:NEXT:RETURN
  45. 260 REM FALLING SOUND
  46. 270 POKE ATTDEC,10:POKESUSTREL,10:POKEVOLUME,15
  47. 280 FORI=200TO100STEP-1
  48. 290 POKEH1,I:POKEH2,100:POKEWAVE,TRIANGLE
  49. 300 FORTD=1TO3:NEXT:POKEWAVE,TRIANGLE-1:FORTD=1TO3:NEXT:NEXTI
  50. 310 RETURN
  51. 320 REM LION SOUND
  52. 330 POKEATTDEC,100:POKESUSTREL,100:POKEVOLUME,15
  53. 340 POKEH1,2:POKEH2,10:POKEWAVE,NOISE:FORTD=1TO1000:NEXT:POKEWAVE,NOISE-1
  54. 350 FORTD=1TO100:NEXT:RETURN
  55. 360 REM VICTORY SOUND
  56. 370 POKEATTDEC,100:POKESUSTREL,100:POKEVOLUME,15
  57. 380 FORI=1TO4:POKEH1,NO(1,I):POKEH2,100:POKEWAVE,SAW
  58. 390 FORTD=1TODUR(1,I):NEXT:POKEWAVE,SAW-1:FORTD=1TODUR(1,I):NEXT:NEXT
  59. 400 RETURN
  60. 401 POKEATTDEC,14:POKESUSTREL,201
  61. 402 POKEH1,120:POKEWAVE,SAW:FORTD=1TO100:NEXT:POKEWAVE,SAW-1
  62. 403 FORTD=1TO200:NEXT:RETURN
  63. 410 REM WIN SOUND AND OPENING SOUND
  64. 420 POKEVOLUME,15:POKEATTDEC,17:POKESUSTREL,140
  65. 430 FORI=1TO7:POKEH2,NO(2,I):POKEH1,NL(2,I):POKEWAVE,SAW
  66. 440 FORTD=1TODUR(2,I):NEXT:POKEWAVE,SAW-1:FORTD=1TODUR(2,I):NEXT:NEXT:RETURN
  67. 450 REM LOSE SOUND
  68. 460 POKEATTDEC,100:POKESUSTREL,120:POKEVOLUME,15
  69. 470 POKEH1,4:POKEL1,48:POKEWAVE,SAW:FORTD=1TO500:NEXT:POKEWAVE,SAW-1
  70. 480 FORTD=1TO400:NEXT:POKEH1,2:POKEL1,24:POKEWAVE,SAW:FORTD=1TO900:NEXT
  71. 485 POKEWAVE,SAW-1:FORTD=1TO500:NEXT:RETURN
  72. 490 REM LEVITATE SOUND
  73. 491 POKEATTDEC,100:POKESUSTREL,250:POKEVOLUME,15
  74. 492 FORA=10TO20:FORB=20TO27:POKEH1,A+B:POKEL1,40:POKEWAVE,TRIANGLE
  75. 493 FORTD=1TO2:NEXT:POKEWAVE,TRIANGLE-1:FORTD=1TO1:NEXT:NEXT:NEXT
  76. 494 RETURN
  77. 500 POKE53269,0:GOSUB410:POKEBACKGROUND,1:FORTD=1TO2000:NEXT
  78. 510 PRINT"ô":POKE251,50:PRINT"ÉCONGRATULATIONS !"
  79. 520 PRINT"YOU SAVED THE CASTLE!"
  80. 530 GOTO700
  81. 600 POKE53269,0:POKEBACKGROUND,1:GOSUB450:FORTD=1TO2000:NEXT
  82. 610 PRINT"ôÉ"SPC(((40-(LEN(A$)))/2))A$
  83. 620 PRINT"YOU LOST THE CASTLE!"
  84. 630 GOTO710
  85. 700 POKE251,0:FORTD=1TO1500:NEXT:PRINT"THIS TIME"
  86. 710 FORTD=1TO500:NEXT:PRINT"      HIT Y FOR FURTHER ADVENTURES"
  87. 720 GETANS$:IFANS$=""THEN720
  88. 730 IFANS$="Y"THEN POKE BACKGROUND,0:GOTO5
  89. 740 POKE251,0:END
  90. 1000 FORL=679TO703:READA:POKEL,A:NEXT:POKE806,167:POKE807,2:POKE251,40:RETURN
  91. 1010 PRINTCHR$(144)"ô  FIND THE BOMBS HIDDEN IN THE DUNGEON."
  92. 1020 PRINT"DON'T FALL INTO A PIT OR GET EATEN BY "
  93. 1030 PRINT"A BEAST. PRESS THE 'L' KEY FOR A "
  94. 1040 PRINT"  LEVITATION SPELL. YOU HAVE 3 MINUTES"
  95. 1050 PRINT"  TO FULFILL YOUR QUEST."
  96. 1060 PRINT:PRINT:PRINT"         (HIT BUTTON TO BEGIN)"
  97. 1065 GOSUB10:IFJY<>111THEN1065
  98. 1067 RETURN
  99. 1070 DATA72,138,72,152,72,166,251,240,8,160,255,136,208,253,202
  100. 1080 DATA208,248,104,168,104,170,104,76,202,241
  101. 1100 CM=14336:CS=53248:POKE56334,PEEK(56334)AND254:POKE1,PEEK(1)AND251
  102. 1110 FORI=0TO1023:POKECM+I,PEEK(CS+I):NEXT
  103. 1120 FORI=CM+320TOCM+320+95:READA:POKEI,ABS(A-255):NEXT
  104. 1130 POKE1,PEEK(1)OR4:POKE56334,PEEK(56334)OR1:RETURN
  105. 1140 POKE53272,(PEEK(53272)AND240)OR14
  106. 1150 RETURN
  107. 1160 DATA247,227,246,193,215,247,235,235,255,34,34,34,255,68,68,68
  108. 1170 DATA255,231,195,129,129,131,199,255,255,191,95,64,90,186,255,255
  109. 1180 DATA191,121,112,1,0,135,55,115,255,239,247,231,195,195,231,255
  110. 1190 DATA255,255,255,255,255,255,255,255,255,255,255,129,129,255,255,255
  111. 1200 DATA255,255,255,255,255,255,255,255,255,253,251,247,143,207,175,255
  112. 1210 DATA191,121,112,1,0,135,55,115,255,255,231,0,0,231,255,255
  113. 1300 PRINTCHR$(147):POKEBACKGROUND,0:POKEBRDER,0
  114. 1305 READL,N:IFN=-1THENGOSUB410:FORTD=1TO2500:NEXT:RETURN
  115. 1310 FORJ=0TON:READS:POKEL+J,S:NEXT:GOTO1305
  116. 1360 DATA1234,17,85,64,73,112,64,110,85,64,75,64,114,64,112,32,32,112,64,75
  117. 1370 DATA1274,16,93,32,32,107,64,115,74,64,73,32,93,32,93,32,32,107,64
  118. 1380 DATA1314,17,74,64,75,75,32,125,85,64,75,32,75,32,74,64,75,109,64,73
  119. 1420 DATA1393,20,114,64,73,73,32,110,85,73,110,85,64,73,112,64,75,85,64,73
  120. 1421 DATA85,73
  121. 1430 DATA110
  122. 1440 DATA1433,20,93,32,93,93,32,93,93,93,93,93,64,73,107,64,32,93,32,93,93
  123. 1441 DATA93,93
  124. 1450 DATA1473,20,113,64,75,74,64,115,125,74,75,74,64,75,109,64,73,74,64,75,125
  125. 1455 DATA74,75,-1,-1
  126. 1500 WAVE=54276:NOISE=129:TRIANGLE=17:VOL=54296:SOUND=54272:ATTDEC=54277
  127. 1505 BACKGROUND=53281:BRDER=53280:LEVITATE=0:SWRD=0:KEY=0:BOMB=3:LOIN=44
  128. 1510 SAW=33:SUSTREL=54278:H1=54273:H2=54272:FIGURE=40:BLANK=32
  129. 1515 HXSPRITE=53264:LXSPRITE=53248:YSPRITE=53249:POKE53271,1:POKE53277,1
  130. 1517 POKE53269,1:FORI=832TO896:POKEI,255:NEXT:POKE2040,13
  131. 1518 POKE53287,1:POKE53275,1
  132. 1520 FORI=SOUNDTOSOUND+28:POKEI,0:NEXT:POKEVOLUME,15:RETURN
  133. 3000 I=49152:IFPEEK(I+2)=216THENSYS49160:GOTO3025
  134. 3010 READA:IFA=256THENSYS49160:GOTO3025
  135. 3020 POKEI,A:I=I+1:GOTO3010
  136. 3025 FORI=1024TO1062:POKEI,41:POKEI+960,41:NEXT
  137. 3027 FORI=55296TO56295:POKEI,0:NEXT:RETURN
  138. 3030 DATA1,0,216,255,255,255,40
  139. 3040 DATA0,169,41,133,251,169,40
  140. 3050 DATA133,253,169,4,133,252,133
  141. 3060 DATA254,169,147,32,210,255,162
  142. 3070 DATA0,160,0,169,41,145,253
  143. 3080 DATA200,192,39,208,249,24,165
  144. 3090 DATA253,105,40,133,253,144,2
  145. 3100 DATA230,254,232,224,23,208,229
  146. 3110 DATA160,0,169,4,145,251,169
  147. 3120 DATA255,141,15,212,169,128,141
  148. 3130 DATA18,212,173,27,212,41,3
  149. 3140 DATA133,173,170,10,168,24,185
  150. 3150 DATA0,192,101,251,133,170,185
  151. 3160 DATA1,192,101,252,133,171,24
  152. 3170 DATA185,0,192,101,170,133,253
  153. 3180 DATA185,1,192,101,171,133,254
  154. 3190 DATA160,0,177,253,201,41,208
  155. 3200 DATA18,138,145,253,169,32,145
  156. 3210 DATA170,165,253,133,251,165,254
  157. 3220 DATA133,252,76,62,192,232,138
  158. 3230 DATA41,3,197,173,208,189,177
  159. 3240 DATA251,170,169,32,145,251,224
  160. 3250 DATA4,240,26,138,10,168,162
  161. 3260 DATA2,56,165,251,249,0,192
  162. 3270 DATA133,251,165,252,249,1,192
  163. 3280 DATA133,252,202,208,238,76,62
  164. 3290 DATA192,169,1,160,0,153,0
  165. 3300 DATA216,153,0,217,153,0,218
  166. 3310 DATA153,0,219,200,208,241,96,256
  167. 4000 REM CHARACTER PLACEMENTS
  168. 4010 T=32:Q=42:FORI=1TO7:GOSUB4100:NEXT
  169. 4020 Q=44:FORI=1TO6:GOSUB4100:NEXT
  170. 4030 Q=45:FORI=1TO3:GOSUB4100:NEXT
  171. 4040 Q=43:FORI=1TO2:GOSUB4100:NEXT
  172. 4050 Q=47:FORI=1TO5
  173. 4055 GOSUB4100
  174. 4060 IF(PEEK(PLACE-40)<>32)OR(PEEK(PLACE+40)<>32)THENPOKEPLACE,BLANK:GOTO4055
  175. 4070 NEXT
  176. 4080 Q=49:GOSUB4100
  177. 4090 Q=FIGURE:GOSUB4100:MAN=PLACE
  178. 4095 T=41:Q=32:FORI=1TO50:GOSUB4100:NEXT:RETURN
  179. 4100 X=(RND(1)*36+2):Y=INT(RND(1)*20+3):PL=Y*40+X+1024:IFPEEK(PLACE)<>TTHEN4100
  180. 4110 POKEPLACE,Q:RETURN
  181. 5000 PRINT"ôPLEASE WAIT"
  182. 5010 RETURN
  183. 59999 END
  184. 60000 OPEN15,8,15,"S0:CASTLE DUNGEON":CLOSE15:SAVE"0:CASTLE DUNGEON",8
  185.