home *** CD-ROM | disk | FTP | other *** search
/ Commodore Disk User Volume 4 #3 / Commodore_Disk_User_Vol.4_3_1991_-.d64 / aw-modules (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  6KB  |  171 lines

  1. 10 rem *********************************
  2. 20 rem *                               *
  3. 30 rem *   adventure writing series    *
  4. 40 rem * (c) commodore disk user 1990  *
  5. 50 rem *                               *
  6. 60 rem *  sample routines from demad   *
  7. 70 rem *    written by jason finch     *
  8. 80 rem *                               *
  9. 90 rem *********************************
  10. 100 :
  11. 110 a=a+1
  12. 120 ifa=1thenload"aw-modules.mc",8,1: rem ## load machine code
  13. 130 ifa=2thenload"pic4",8,1:          rem ## load initial picture
  14. 140 ifa=3thenload"aw-sample text",8,1:rem ## load some sample text
  15. 150 :
  16. 160 rem *******************************
  17. 170 rem * sys 49152:  rasters on      *
  18. 180 rem * sys 49155:  rasters off     *
  19. 190 rem * sys 49158:  display picture *
  20. 200 rem * sys 49161,c:display text    *
  21. 210 rem * sys 49164:  scroll text up  *
  22. 220 rem * sys 49167:  clear bitmap    *
  23. 230 rem * sys 49170:  load picture    *
  24. 240 rem *******************************
  25. 250 :
  26. 260 poke 53280,0:poke 53281,0: gosub 1180:rem ## set screen cols. and read data
  27. 270 print chr$(147);chr$(8):rem ## clear text screen
  28. 280 sys 49167:rem ## clear bitmap screen
  29. 290 sys 49158:rem ## "decompress" pic.
  30. 300 poke 49295,0: sys 49152:rem ## rasters on (with black bar)
  31. 310 :
  32. 320 :
  33. 330 rem *******************************
  34. 340 rem * routine to illuminate       *
  35. 350 rem * bar slowly                  *
  36. 360 rem *******************************
  37. 370 :
  38. 380 poke 49295,11: for t=1 to 50:next
  39. 390 poke 49295,12: for t=1 to 50:next
  40. 400 poke 49295,15: for t=1 to 50:next
  41. 410 poke 49295,1:  for t=1 to 50:next
  42. 420 poke 49295,7:  for t=1 to 90:next
  43. 430 poke 49295,13
  44. 440 :
  45. 450 sys 49164: sys 49164: sys 49164:rem ## scroll text window
  46. 460 poke 2,170: sys 49161,13:rem ## display text - length 170 - colour l.green
  47. 470 :
  48. 480 rem *******************************
  49. 490 rem * this is the input routine - *
  50. 500 rem * used to handle the entering *
  51. 510 rem * of the text by the player   *
  52. 520 rem * of your epic adventure.     *
  53. 530 rem *                             *
  54. 540 rem * usually incorporate it as a *
  55. 550 rem * sub-routine and call with   *
  56. 560 rem * 'gosub' to the right place. *
  57. 570 rem *******************************
  58. 580 :
  59. 590 sys 49164: gosub 1130:rem ## scroll text window
  60. 600 print"[158]> ";:c$="":rem ## display prompt
  61. 610 print" [157][146]";:rem ## cursor block
  62. 620 get z$: if z$="" then 620:rem ## wait for key
  63. 630 z=asc(z$): if (z<32 and z<>13 and z<>20) or z>90 then 620:rem ## validity?
  64. 640 l=len(c$): if l>35 then 700:rem ## length of input
  65. 650 if z$="*" and l=0 then print"[210][197][208][197][193][212] [204][193][211][212][160][195][207][205][205][193][206][196]";:c$=oc$:goto740
  66. 660 if z=13 or z=20 then 700:rem ## space or delete pressed
  67. 670 z=z-5*(z=34):rem ## alter input if quotes pressed
  68. 680 c$=c$+z$: z=z-128*(z>64):rem ## add letter to command
  69. 690 print chr$(z);: goto 610:rem ## print letter and go back
  70. 700 if z=13 and l>0 then print" ";:oc$=c$:goto740:rem ## end input
  71. 710 if z=20 and l>0 then print" [157][157] [157]";: c$=left$(c$,l-1):rem ## delete
  72. 720 goto610:rem ## go back for more
  73. 730 :
  74. 740 if c$>"1" and c$<"5" and l=1 then 870:rem ## if 2/3/4 load picture
  75. 750 :
  76. 760 sys 49164: gosub 1130:rem ## scroll text window
  77. 770 print"[154][207]k.  [208]ress 2,3 or 4 to load picture.";
  78. 780 sys 49164: gosub 1130
  79. 790 print"[154][210]emember to insert correct disk though!";
  80. 800 sys 49164: goto 590:rem ## go back for some more text
  81. 810 :
  82. 820 rem *******************************
  83. 830 rem * routine to darken the       *
  84. 840 rem * bar slowly                  *
  85. 850 rem *******************************
  86. 860 :
  87. 870 poke 49295,7:  for t=1 to 90:next
  88. 880 poke 49295,1:  for t=1 to 50:next
  89. 890 poke 49295,15: for t=1 to 50:next
  90. 900 poke 49295,12: for t=1 to 50:next
  91. 910 poke 49295,11: for t=1 to 50:next
  92. 920 poke 49295,0
  93. 930 sys 49167:rem ## clear bitmap screen
  94. 940 sys 49155:rem ## rasters off
  95. 950 print"                                       "
  96. 960 print"              "
  97. 970 open 15,8,15,"i0":open 2,8,0,"pic"+c$+",p,r": rem ## check disk for pic.
  98. 980 input#15,e: close 2: close 15
  99. 990 if e>0 then 1040:rem ## not found
  100. 1000 print"[212]emporary message: [204][207][193][196][201][206][199][160][208][201][195][212][213][210][197]"
  101. 1010 poke 49852,asc(c$):rem ## store pic no. in load routine
  102. 1020 sys 49170:rem ## load picture
  103. 1030 goto 290: rem ## return to start to display picture etc.
  104. 1040 print"[147][212]emporary message: [198][201][204][197] [206][207][212][160][198][207][213][206][196]"
  105. 1050 print"[208]ress any key":poke 198,0: wait 198,1: poke 198,0
  106. 1060 goto 290
  107. 1070 :
  108. 1080 rem *******************************
  109. 1090 rem * routine to position cursor  *
  110. 1100 rem * on the bottom line          *
  111. 1110 rem *******************************
  112. 1120 :
  113. 1130 poke 781,24:poke 782,0: poke 783,0:sys 65520: return
  114. 1140 rem *******************************
  115. 1150 rem * a bit of sample data for ya!*
  116. 1160 rem *******************************
  117. 1170 :
  118. 1180 nv=20: nn=20: nl=4: nr=11: rem ## set no. of verbs/nouns/links/rooms
  119. 1190 dim v$(nv),n$(nn),l$(nl),d$(nn),il%(nn),w%(nn),d%(nr,8)
  120. 1200 :
  121. 1210 for x=1 to nn
  122. 1220 read n$(x),d$(x),il%(x),w%(x): rem ## read noun/descrip/init loc/weight
  123. 1230 next
  124. 1240 :
  125. 1250 for x=1 to nv: read v$(x): next: rem ## read in verbs
  126. 1260 for x=1 to nl: read l$(x): next: rem ## read in linking words
  127. 1270 for x=1 to nr: for y=0 to 7
  128. 1280 read d%(x,y): rem ## read direction info
  129. 1290 next y,x
  130. 1300 return
  131. 1310 data knife,a sharp knife,-1,10
  132. 1320 data knife,a blood-stained knife,0,10
  133. 1330 data rat,a rat,9,15
  134. 1340 data rat,a dead rat,0,15
  135. 1350 data witch,a witch,5,500
  136. 1360 data cauldron,a bubbling cauldron,5,500
  137. 1370 data coin,a small coin,0,1
  138. 1380 data coin,a medium-sized coin,0,2
  139. 1390 data coin,a large coin,0,3
  140. 1400 data key,a wooden key,0,5
  141. 1410 data rocks,some large jagged rocks,1,500
  142. 1420 data tree,a tall tree,10,500
  143. 1430 data stump,a tree stump,4,500
  144. 1440 data grass,a clump of green grass,3,10
  145. 1450 data bridge,a bridge,8,500
  146. 1460 data plank,a long plank of wood,0,30
  147. 1470 data chair,a comfy armchair,6,500
  148. 1480 data fireplace,a brick fireplace,6,500
  149. 1490 data picture,a picture,6,500
  150. 1500 data chest,a large wooden chest,6,500
  151. 1510 :
  152. 1520 data north,northeast,east,southeast
  153. 1530 data south,southwest,west,northwest
  154. 1540 data get,drop,inventory,quit
  155. 1550 data open,close,kill,examine
  156. 1560 data offer,turn,repair,look
  157. 1570 :
  158. 1580 data small,medium,large,to
  159. 1590 :
  160. 1600 data 0,0,0,0,3,0,0,0
  161. 1610 data 0,0,0,5,4,0,0,0
  162. 1620 data 1,0,4,0,0,0,0,0
  163. 1630 data 2,0,0,0,8,0,3,0
  164. 1640 data 0,0,0,0,0,0,0,2
  165. 1650 data 0,0,6,0,0,0,0,0
  166. 1660 data 0,0,0,0,11,0,0,0
  167. 1670 data 4,0,0,0,0,0,0,0
  168. 1680 data 7,0,9,0,0,0,0,0
  169. 1690 data 8,0,10,0,0,11,0,0
  170. 1700 data 9,0,0,0,10,0,7,0
  171.