home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / commodore-scene-files / Coverdisks / CDU / V4D04.D64 / ge.info < prev    next >
Encoding:
Text File  |  2019-04-13  |  8.9 KB  |  354 lines

  1.                                
  2.         
  3.      ╟┴╠┴├╘╔├ ┼╬├╧╒╬╘┼╥- ┼╪╘╥┴ ╔╬╞╧
  4.     ================================
  5.  
  6.          -* ┬Y ╨. ═AKEPEACE *-
  7.  
  8.      -* (├)  ┴LPHAVITE ╨UBLICATIONS *-
  9.  
  10.  
  11.  
  12.          ═ACHINE ├ODE ╥OUTINES
  13.         -----------------------
  14.  
  15.  
  16.  ╘HE ═ACHINE ├ODE USES A ╩UMP ╘ABLE
  17. STARTING AT $C000 (49152). ╘HE START
  18. ADDRESS OF EACH ROUTINE IS FOLLOWED BY
  19. THE VARIABLE WHICH IS USED IN THE ┬┴╙╔├
  20. PROGRAM TO RUN IT, E.G  ╙┘╙ ╞╪,1
  21.  ┴N ASTERISK DENOTES THE ROUTINE IS ON
  22. THE UTILITIES SECTION (SEE BELOW). ╘HE
  23. ADDRESS BELOW IS THE ONE USED IN THE
  24. UTILITIES SECTION.
  25.  ╫┴╥╬╔╬╟! ╘HESE ROUTINES CANNOT BE USED
  26. FROM WITHIN MACHINE CODE AS THEY READ
  27. PARAMETERS FROM ┬┴╙╔├.
  28.  
  29.  
  30.         ╘HE ╒TILITIES ╙ECTION
  31.        -----------------------
  32.  
  33.  ╧N THE DISK IS A SHORTENED VERSION OF
  34. THE MACHINE CODE SECTION WHICH CONTAINS
  35. SOME USEFUL ROUTINES THAT COULD BE USED
  36. IN OTHER ┬┴╙╔├ PROGRAMS. ╘O USE THESE,
  37. ╠╧┴─"╟┼.═├ ╒╘╔╠╙",8,1. ╘HEN ANY OF THE
  38. FOLLOWING CAN BE USED:
  39.  
  40.  ┴╘=49152 ╨RINT ┴╘
  41.  ╙╨=49155 ╨ULSING ╙PRITE 1
  42.  ╙┼=49158 ╞LASH ╙PRITE 1 MOMENTARILY
  43.  ╞╪=49161 ╞OUR SOUNDS
  44.  ╨╒=49164 ╨ULSE A LINE OF TEXT
  45.  ├╙=49167 '├HASE ╠IGHTS' EFFECT ON TEXT
  46.  ╥╓=49170 ╥EVERSE TEXT
  47.  ╙├=49173 ╙CROLL A MESSAGE!
  48.  
  49.  ┴FTER DEFINING THE VARIABLES ABOVE,
  50. THE ROUTINES CAN BE USED BY ╙┘╙ ╞╪,1
  51. OR WHICHEVER.
  52.  
  53.  
  54. * 49152 ┴╘,POS (0-999),STRING
  55.   49152
  56.  
  57.  ╘HIS POSITIONS THE CURSOR AT 'POS' AND
  58. PRINTS THE FOLLOWING STRING. ┼XAMPLES:
  59.  
  60. ╙┘╙ ┴╘,80,"╚ELLO!"
  61. ╙┘╙ ┴╘,120,"";
  62. ╙┘╙ ┴╘,20,A$+"╚I.";
  63. ETC. 
  64.  
  65.  ╬.┬. ╘HE VERSION OF THIS ON THE
  66. ╒TILITIES ╙ECTION REQUIRES AN ╪,┘
  67. [(0,0) IS THE TOP-LEFT, (39,24) THE
  68. BOTTOM-RIGHT] POSITION RATHER THAN A
  69. SCREEN POSITION. ╧THERWISE, THEY ARE
  70. THE SAME.
  71.  
  72. * 49155 ╙╔,SPEED (0-255)
  73.   49155
  74.  
  75.  ╘HIS TURNS ON ╙PRITE 1, AND SETS UP AN
  76. ╔╥╤ AT $0314 TO PULSE THE SPRITE AT
  77. 'SPEED' SPEED.
  78. ╨╧╦ING 251,1 MAKES THE SPRITE FLASH
  79. BLACK AND WHITE UNTIL ╨╧╦┼ 251,0
  80.  $02 IS USED AS A COUNTDOWN FOR THE
  81. NEXT COLOUR CHANGE.
  82.  $╞├ CONTAINS THE CURRENT COLOUR OF THE
  83. SPRITE.
  84.  ╘HIS ROUTINE PERFROMS THE NECESSARY
  85. BANK-SWITCHING TO ALLOW THE CHARACTER
  86. SET AT $7800 TO BE ACCESSED. ╘HE SCREEN
  87. POSITION MUST ALSO BE CHANGED TO $7400.
  88. ┴LL THIS IS DONE BY:
  89.  ╨╧╦┼ 648,116   ═OVE SCREEN TO $7400
  90.  ╨╧╦┼ 56576,150 ╨OINT ╓╔├ ├HIP TO ┬ANK1
  91.  ╨╧╦┼ 53272,223 ╨OINT ╓╔├ ├HIP TO:
  92.                 $7400 - ╙CREEN.
  93.                 $7800 - ├HARACTER SET.
  94.  
  95.  49158 ├╚,╪ (0-6),┘ (0-6),
  96.              CHARACTER (0-17)
  97.  
  98.  ╘HIS PRINTS ONE OF THE BOARD
  99. CHARACTERS ON TO THE BOARD IN THE
  100. APPROPRIATE PLACE ON THE SCREEN, THE
  101. CALCULATIONS ARE DONE IN ═├.
  102.  
  103.  ╘HE CHARACTERS ARE:
  104.  
  105.     0: ┬LANK SPACE
  106.     1: ┬LACKHOLE
  107.   2-5: ╨LAYER ╧NE SHIPS
  108.     6:            DESTROYER
  109.  7-10: ╨LAYER ╘WO SHIPS
  110.    11:            DESTROYER
  111. 12-13: ┬IG    :
  112. 14-15: ═EDIUM :─EBRIS ├LOUD
  113. 16-17: ╠ARGE  :
  114.  
  115.  49161 ╙╨,╪,┘,╞LAG
  116.  
  117.  ╘HIS MOVES SPRITE 1 TO THE BOARD
  118. POSTION ╪,┘. ╔F ╞LAG IS 1 THEN THE
  119. SPRITE WILL MOVE SMOOTHLY OTHERWISE IT
  120. WILL MOVE THERE DIRECTLY.
  121.  
  122. *49164 ╙┼,SPEED (0-255)
  123.  49158
  124.  
  125.  ╘HIS SETS 251 TO 1 FOR A SHORT TIME
  126. DEPENDING ON THE SPEED, THEN RESETS IT
  127. TO PULSING. ╔T ALSO CHANGES THE SPRITE
  128. POINTER 2040 FROM 13 TO 15
  129. (┼╧╥ #2 IN ═├) AND BACK AGAIN WHEN IT
  130. IS ╙┘╙ED AGAIN.
  131.  
  132. *49167 ╞╪,SOUND (0-3)
  133.  49161
  134.  
  135.  ╘HIS MAKES ONE OF THE FOLLOWING
  136. SOUNDS:
  137.  0: 'DING'
  138.  1: 'BARP'
  139.  2: LAUNCH OF THE BULLET
  140.     (╨╧╦┼ 54276,129 TO FINISH THE
  141.     SOUND).
  142.  3: ┴N EXPLOSION SOUND
  143.  
  144.  49170 ┬1,COLOUR (0-15)
  145.  
  146.  ╘HIS PRINTS THE BORDER AROUND THE EDGE
  147. OF THE SCREEN IN 'COLOUR'.
  148.  
  149.  $├015 49173 ┬2,COLOUR (0-15)
  150.  
  151.  ╘HIS PRINTS THE BOARD IN 'COLOUR'.
  152.  
  153. *49176 ╨╒,POS,LENGTH (0-255),SPEED,╞LAG
  154.  49164 ╨╒,╪,┘,....
  155.  
  156.  ╘HIS PULSES A LINE OR LINES OF TEXT
  157. STARTING AT POS AND PULSING 'LENGTH'
  158. NUMBER OF CHARACTERS AFTER IT AT
  159. 'SPEED'. ╔F ╞LAG IS 1-255, THE ROUTINE
  160. WILL PULSE THE LINE ┴┬╧╓┼ TOO, THIS IS
  161. USED FOR UNDERLINED TEXT. ╥EMEMBER TO
  162. SET POS TO THE LINE BELOW THE TEXT IF
  163. ╞LAG IS SET.
  164.  
  165. *49179 ├╙,(SEE ABOVE)
  166.  49167
  167.  
  168.  ╘HIS IS IDENTICAL TO '╨╒'LSE BUT THE
  169. EFFECT IS LIKE ┴MERICAN ╨OLICE ├AR
  170. LIGHTS, A SORT OF STROBE. ╙EE THE
  171. ╙╘┴╘╒╙ ╥┼╨╧╥╘ JUST BEFORE A MESSAGE.
  172.  
  173.  49182 ┬╠,╪,┘,╞LAG
  174.  
  175.  ╘HIS IS THE SAME AS '╙╨'RITE-MOVE BUT
  176. CHANGES ╙PRITE 1 TO THE BULLET (╨╧╦┼
  177. 2040,15) BEFORE MOVING IT. ╞LAG IS
  178. ALWAYS SET TO 1-255 SO THE BULLET MOVES
  179. SLOWLY.
  180.  
  181.  49185 ╙╥,SPEED
  182.  
  183.  ╘HIS IS HALF WAY THROUGH ╙╨╥╔╥╤ (╙╔),
  184. WHICH RESETS THE SPRITE TO 13 AND SETS
  185. SPRITE PRIORITY ╠╧╫ (IT IS SEEN BEHIND
  186. TEXT). ╔T ALSO CLEARS THE KEYBOARD
  187. BUFFER.
  188.  
  189.  49188 ╫╨
  190.  
  191.  ╘HIS CLEARS THE RIGHT HAND SIDE OF THE
  192. SCREEN FOR USE IN ╙ETUP AND CLEARING
  193. THE DIFFERENT MENUS.
  194.  
  195. *49191 ╥╓,POS,LENGTH
  196.  49170 ╥╓,╪,┘,LENGTH
  197.  
  198.  ╘HIS REVERSES 'LENGTH' NUMBER OF
  199. CHARACTERS STARTING AT 'POS'. ╔T IS
  200. USED IN ╙ETUP TO MOVE THE SELECT BAR.
  201. ╔T REVERSES THE CHARACTERS BY ┼╧╥ING
  202. THEM WITH 128 SO THE ROUTINE WILL NEED
  203. TO BE ╙┘╙ED TWICE TO GET THE TEXT BACK
  204. TO NORMAL.
  205.  
  206. *49194 ╙├,STRING NAME,POS/╪,┘,LENGTH,
  207.  49173          SPEED,╞LAG
  208.  
  209.  ╘HIS IS A VERY HANDY ROUTINE. ╔T LOOKS
  210. FOR A STRING CALLED 'STRING NAME', THIS
  211. CAN EITHER BE 1 OR 2 CHARACTERS LONG.
  212. ╔T SCROLLS THIS MESSAGE AT 'POS'. ╘HE
  213. LENGTH OF THE SCROLL MESSAGE IS
  214. 'LENGTH' AND THE SCROLL SPEED IS
  215. 'SPEED'. ╔F ╞LAG IS SET, THE SCROLLING
  216. WILL STOP AT THE END OF THE STRING,
  217. OTHERWISE THE SCROLLING WILL CONTINUE
  218. TILL THE MESSAGE IS NO LONGER VISIBLE.
  219.  ─URING SCROLLING, PRESSING ╙PACE OR
  220. THE JOYSTICK BUTTON WILL SPEED UP
  221. SCROLLING BY ABOUT 8 TIMES WHEREAS
  222. PRESSING ANY OTHER KEY WILL TEMPORARILY
  223. HALT THE SCROLLING. ═OVING THE JOYSTICK
  224. WILL ALSO DO THIS. ╘HE KEYBOARD BUFFER
  225. IS CLEARED AFTER THE ROUTINE
  226.  
  227.  ┼XAMPLE: (╒SING THE ╒TILITIES):
  228.           ┌┌$="╚ELLO THERE !":╙├=49176
  229.           ╙┘╙ ╙├,┌┌,1024,5,30,0
  230.  
  231.  49197 ┼╪,╪,┘,SPEED
  232.  
  233.  ╘HIS MAKES A EXPLOSION AT ╪,┘ ON THE
  234. BOARD BY PRINTING THE DEBRIS CLOUDS
  235. REPEATEDLY.
  236.  
  237.  49200 ╨┬
  238.  
  239.  ╘HIS PRINTS ALL THE PIECES ON TO THE
  240. BOARD BY LOOKING AT THE INTEGER ARRAY
  241. ┬╧(ARD)%(0,0). ╘HIS ROUTINE EXECUTES IN
  242. A FRACTION OF A SECOND, WHEREAS ┬┴╙╔├
  243. DOES IT IN AROUND 20 SECONDS!
  244.  
  245. =======================================
  246.  
  247.             ┬┴╙╔├ ╓ARIABLES
  248.            -----------------
  249.  
  250.  ┴PART FROM THE VARIABLES USED TO JUMP
  251. TO THE MACHINE CODE, THE MAIN VARIABLES
  252. USED IN THE ┬┴╙╔├ PROGRAM ARE LISTED
  253. BELOW WITH A BRIEF EXPLANATION OF THEIR
  254. USE:
  255.  
  256.   ┬╧%(6,6) ╘HIS INTEGER ARRAY CONTAINS
  257. THE CHARACTERS ON THE BOARD. 0,0 IS AT
  258. THE TOP-LEFT.
  259.  
  260.   ╪,┘ ╘HESE CONTAIN THE COORDINATES FOR
  261. ┬╧%(╪,┘). ╪ AND ┘ ARE ALSO USED IN
  262. MOVING THE SPRITE USING ╙╨ (SEE ABOVE)
  263.  
  264.   ┬╥$(0-10) ╘HESE CONTAIN THE
  265.            DESCRIPTIONS FOR ┬╧%(╪,┘)
  266.            E.G. ╨╠╥.1 ╙╚╔╨ ETC.
  267.  
  268.   ╥$(0-5)   ╘HESE CONTAIN THE RESULTS
  269.            OF FIRING I.E. HIT, MISS ETC.
  270.   ┬╥ ╘HIS CONTAINS ┬╧%(╪,┘)
  271.   ┌  ╘HIS IS THE POSITION FOR ┴╘
  272.   ═╓ ╬UMBER OF MOVES
  273.   ═(0/1) ╬UMBER OF MOVES REMAINING FOR
  274.        ╨LAYER ╧NE/╘WO
  275.   ─╚ ╬UMBER OF HITS TO ZAP DESTROYER
  276.   ─(0/1) ╬UMBER OF HITS REMAINING FOR
  277.          ─ESTOYERS 1 AND 2
  278.  ╙├$ ╘HIS CONTAINS THE MESSAGE TO BE
  279.      SCROLLED USING ╙┘╙ ╙├,...
  280.   ╙╠ ╠ENGTH OF SCROLLING MESSAGE
  281.    ╨ ├URRENT PLAYER: 0 FOR ╨L.1
  282.                      1 FOR ╨L.2
  283.   ├1,├2,├3 ├OUNTERS USED IN ╞╧╥.╬┼╪╘
  284.            LOOPS
  285.   ╨1,╨2,╨3 ╨AUSE LENGTHS FOR ╙CROLLING,
  286.                              ╙ELECT AND
  287.                              ┼XPLOSION.
  288.    ╓ 53248, THE START OF THE ╓╔├ CHIP.
  289.   ╩1 56320 LOCATION FOR ╩╧┘ ╨ORT 2
  290.    ╩ ├ONTENTS OF ╩1 (╩=╨┼┼╦(╩1))
  291.   ╦$ ╒SED TO GET KEYS
  292.   ╒╨$,─╧$,╠┼$,╥╔$,╞╔$ ╦EYS FOR MOVEMENT
  293.   ╒╨ 126 :
  294.   ─╧ 125 :╓ALUES FOR JOYSTICK MOVEMENTS
  295.   ╠┼ 123 :
  296.   ╥╔ 119 :
  297.   ╞╔ 111 :
  298.   ╒,─,╠,╥,╙ ╘HESE FLAGS ARE SET WHEN ╩
  299.             EQUALS ANY OF ╒╨,─╧ ETC. OR
  300.             ╦$ EQUALS ╒╨$,─╧$ ETC.
  301.   ╞ ╘HIS IS A FLAG FOR WHEN ╙PC/╥ET IS
  302.     PRESSED
  303.  
  304. ========================================
  305.              ┬┴╙╔├ ╥OUTINES
  306.             ----------------
  307.  
  308.  
  309.      10 ╙TART, SET UP VARIABLES AND
  310.         PRINT BOARD.
  311.     100 ╙╘┴╥╘, ╙ETUP OPTION.
  312.     200 ═┴╔╬ ╠╧╧╨. ╘HIS MOVES THE
  313.         CURSOR AROUND TILL A PIECE IS
  314.         SELECTED.
  315.     400 ├╚┼├╦ ├HECK FOR VALID SELECTION
  316.     500 ╙┼╠┼├╘ ╨IECE SELECTED, MAIN
  317.         LOOP FOR MOVING PIECE.
  318.     700 ╞╧╥╫┴╥─ ═OVE PIECE ON SQUARE
  319.         FORWARD.
  320.     900 ╥╧╘┴╘┼ ╥OTATES PIECE DEPENDING
  321.         ON ╠ AND ╥ FLAGS.
  322.    1000 ╞╔╥┼! ╘HIS ALSO CHECKS TO SEE
  323.         WHETHER THE PLAYER HAS NO SHIPS
  324.         IF SO, ENDS GAME OR PLAY AGAIN.
  325.    2000 ─┼┬╥╔╙ DIMINISHES DEBRIS.
  326.    2200 ╥┼─╒├┼ ╘╒╥╬╙ ─ECREMENT ═(╨). ╔F
  327.         THIS IS ZERO, ┼╬=1
  328.    2300 ╞╔╬─ ╨╠┴┘┼╥ ╒SED AT THE
  329.         BEGINNING OF EACH ROUND TO MOVE
  330.         CURSOR ON TO A SHIP.
  331.    2500 ├╧══┼╬╘╙ ╨RINTS A DESCRIPTION
  332.         OF THE PIECE UNDER THE CURSOR.
  333.    3000 ╙├╥╧╠╠ ╙CROLLS MESSAGE IN ╙├$
  334.         AT ┌, ╙╠ LENGTH AT ╨1 SPEED.
  335.         ╘HIS ALSO PULSES ╙╘┴╘╒╙ ╥┼╨╧╥╘
  336.         WHEN ┌=1890.
  337.    3300 ╦┼┘/╩╧┘ ╟ETS A ╦EY/╩OYSTICK
  338.         PRESS/MOVEMENT AND SETS ╒,─,╠,╥
  339.         ╞ AND ╙ ACCORDINGLY
  340.    4000 ┘/╬? ╟ETS ┘ES/╬O RESPONSE AND
  341.         SETS ╨╧ IF ╨╧SITIVE REPLY.
  342.         ╙PC/╥ET OR ╞IRE ┬UTTON=┘ES
  343.    6000 ╙┼╘╒╨
  344.    7000 ╠OAD/╙AVE/─EFAULT
  345.    7200 ╠OAD
  346.    7500 ╙AVE
  347.    7600 ─EFAULT
  348.    8000 ┼─╔╘ ╨╔┼├┼╙.
  349.    8700 ╥┼─┼╞╔╬┼ ╦┼┘╙
  350.    9000 ╨╥╔╬╘ ┬╧┴╥─ AND REST OF SCREEN.
  351.   10000 ╓┴╥╔┴┬╠┼╙ ╙ETS UP ┴╠╠ VARIABLES
  352.   11000 ─┴╘┴ FOR VARIABLES.
  353.  
  354. ********┬Y ╨. ═AKEPEACE, ╬OV '89********     '1;EOYcmwüïòƒ⌐│╜╟╤█σ∩