MARIA.S 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. .6502
  2. .SUBTTL "MARIA EQUATES -- ATARI CONFIDENTIAL"
  3. *************************************************************************
  4. * THIS DOCUMENT CONTAINS CONFIDENTIAL PROPRIETARY INFORMATION *
  5. * OF ATARI WHICH MAY NOT BE COPIED, DISCLOSED, OR USED EXCEPT *
  6. * AS EXPRESSLY AUTHORIZED IN WRITING BY ATARI. *
  7. *************************************************************************
  8. *
  9. * MEMORY MAP USAGE OF THE 7800
  10. *
  11. * 00-1F TIA REGISTERS
  12. * 20-3F MARIA REGISTERS
  13. * 40-FF ZERO PAGE RAM
  14. * 100-13F SHADOW OF TIA AND MARIA REGISTERS -- USED FOR
  15. * PUSHING ACCUMULATOR ONTO REGISTERS
  16. * 140-1FF RAM (STACK)
  17. * 200-27F NOT USED
  18. * 280-2FF PIA PORTS AND TIMERS
  19. * 300-17FF NOT USED
  20. * 1800-203F RAM
  21. * 2040-20FF SHADOW OF ZERO PAGE RAM
  22. * 2100-213F RAM
  23. * 2140-21FF SHADOW OF STACK RAM
  24. * 2200-27FF RAM
  25. * 2800-3FFF DUPLICATION OF ADDRESS SPACE 2000-27FF
  26. * 4000-FF7F UNUSED ADDRESS SPACE
  27. * FF80-FFF9 RESERVED FOR ENCRYPTION
  28. * FFFA-FFFF 6502 VECTORS
  29. *
  30. .org 0
  31. TIA: ds.b 1 ;BASE ADDRESS FOR TIA CHIP
  32. PTCTRL: ds.b 1 ;INPUT PORT CONTROL ("VBLANK" IN TIA )
  33. ds.b 6
  34. *
  35. * AFTER INITIALIZING SWCHB AS FOLLOWS:
  36. *
  37. * LDA #$14
  38. * STA CTLSWB
  39. * LDA #0
  40. * STA SWCHB
  41. *
  42. * ...LEFT AND RIGHT FIRE BUTTONS CAN BE READ FROM THE FOLLOWING 4 LOCATIONS:
  43. *
  44. * THESE ARE ALSO USED FOR PADDLE INPUT
  45. INPT4B: ds.b 1 ;PLAYER 0, RIGHT FIRE BUTTON (D7=1 WHEN PUSHED)
  46. INPT4A: ds.b 1 ;PLAYER 0, LEFT FIRE BUTTON (D7=1 WHEN PUSHED)
  47. INPT5B: ds.b 1 ;PLAYER 1, RIGHT FIRE BUTTON (D7=1 WHEN PUSHED)
  48. INPT5A: ds.b 1 ;PLAYER 1, LEFT FIRE BUTTON (D7=1 WHEN PUSHED)
  49. *
  50. * LEFT OR RIGHT FIRE BUTTONS READ FROM THESE LOCATIONS:
  51. *
  52. INPT4: ds.b 1 ;PLAYER 0 FIRE BUTTON INPUT (D7=0 WHEN PUSHED)
  53. INPT5: ds.b 1 ;PLAYER 1 FIRE BUTTON INPUT (D7=0 WHEN PUSHED)
  54. ds.b 7
  55. *
  56. AUDC0: ds.b 1 ;AUDIO CONTROL CHANNEL 0
  57. AUDC1: ds.b 1 ;AUDIO CONTROL CHANNEL 1
  58. AUDF0: ds.b 1 ;AUDIO FREQUENCY CHANNEL 0
  59. AUDF1: ds.b 1 ;AUDIO FREQUENCY CHANNEL 1
  60. AUDV0: ds.b 1 ;AUDIO VOLUME CHANNEL 0
  61. AUDV1: ds.b 1 ;AUDIO VOLUME CHANNEL 1
  62. ;
  63. ;******************************************************************************
  64. ;
  65. .org $20
  66. *
  67. MARIA: ;BASE ADDRESS FOR MARIA CHIP
  68. BKGRND: ;BACKGROUND COLOR
  69. BACKGRND: ds.b 1 ;synonym used by GCC
  70. P0C1: ds.b 1 ;PALETTE 0 - COLOR 1
  71. P0C2: ds.b 1 ; - COLOR 2
  72. P0C3: ds.b 1 ; - COLOR 3
  73. WSYNC: ds.b 1 ;WAIT FOR SYNC
  74. P1C1: ds.b 1 ;PALETTE 1 - COLOR 1
  75. P1C2: ds.b 1 ; - COLOR 2
  76. P1C3: ds.b 1 ; - COLOR 3
  77. MSTAT: ds.b 1 ;MARIA STATUS
  78. P2C1: ds.b 1 ;PALETTE 2 - COLOR 1
  79. P2C2: ds.b 1 ; - COLOR 2
  80. P2C3: ds.b 1 ; - COLOR 3
  81. DPPH: ds.b 1 ;DISPLAY LIST LIST POINT HIGH BYTE
  82. P3C1: ds.b 1 ;PALETTE 3 - COLOR 1
  83. P3C2: ds.b 1 ; - COLOR 2
  84. P3C3: ds.b 1 ; - COLOR 3
  85. DPPL: ds.b 1 ;DISPLAY LIST LIST POINT LOW BYTE
  86. P4C1: ds.b 1 ;PALETTE 4 - COLOR 1
  87. P4C2: ds.b 1 ; - COLOR 2
  88. P4C3: ds.b 1 ; - COLOR 3
  89. CHARBASE: ds.b 1 ;CHARACTER BASE ADDRESS
  90. P5C1: ds.b 1 ;PALETTE 5 - COLOR 1
  91. P5C2: ds.b 1 ; - COLOR 2
  92. P5C3: ds.b 1 ; - COLOR 3
  93. OFFSET: ds.b 1 ;FOR FUTURE EXPANSION HERE - STORE ZER0 HERE
  94. P6C1: ds.b 1 ;PALETTE 6 - COLOR 1
  95. P6C2: ds.b 1 ; - COLOR 2
  96. P6C3: ds.b 1 ; - COLOR 3
  97. CTRL: ds.b 1 ;MARIA CONTROL REGISTER
  98. P7C1: ds.b 1 ;PALETTE 7 - COLOR 1
  99. P7C2: ds.b 1 ; - COLOR 2
  100. P7C3: ds.b 1 ; - COLOR 3
  101. *
  102. * PIA AND TIMER (6532) LOCATIONS
  103. *
  104. .ORG $280
  105. *
  106. SWCHA: .DS.B 1 ;LEFT & RIGHT JOYSTICKS
  107. *
  108. * LEFT RITE
  109. * 7654 3210 ;BIT POSITION (=0 IF SWITCH IS CLOSED)
  110. * ---- ----
  111. * RLDU RLDU ;RIGHT/LEFT/DOWN/UP
  112. *
  113. CTLSWA: .DS.B 1 ;SWCHA DATA DIRECTION (0=INPUT)
  114. *
  115. SWCHB: .DS.B 1 ;CONSOLE SWITCHES
  116. *
  117. * D7-RITE DIFFICULTY
  118. * D6-LEFT DIFFICULTY
  119. * D5/D4 NOT USED
  120. * D3-PAUSE
  121. * D2-NOT USED
  122. * D1-GAME SELECT
  123. * D0-GAME RESET
  124. *
  125. CTLSWB: .DS.B 1 ;SWCHB DATA DIRECTION (0=INPUT)
  126. *
  127. INTIM: .DS.B 1 ;INTERVAL TIMER READ
  128. .DS.B 15
  129. TIM1T: .DS.B 1 ;SET 1 CLK INTERVAL (838 NSEC/INTERVAL)
  130. TIM8T: .DS.B 1 ;SET 8 CLK INTERVAL (6.7 USEC/INTERVAL)
  131. TIM64T: .DS.B 1 ;SET 64 CLK INTERVAL (53.6 USEC/INTERVAL)
  132. T1024T: .DS.B 1 ;SET 1024 CLK INTERVAL (858.2 USEC/INTERVAL)
  133. .DS.B 6
  134. TIM64TI:
  135. .DS.B 1 ;INTERRUPT TIMER 64T
  136. *
  137. *
  138. *
  139. *
  140. RESET = 1 ;bits for consle switches
  141. SELECT = 2
  142. PAUSE = 8
  143. RAM1 = $1800 ;FIRST SEGMENT OF MEMORY MINUS THE ZP,STACK, AND CHIPS
  144. RAM2 = $2100 ;FIRST SEGMENT OF MEMORY MINUS THE ZP,STACK, AND CHIPS
  145. RAM3 = $2200 ;FIRST SEGMENT OF MEMORY MINUS THE ZP,STACK, AND CHIPS
  146. R1SIZE = ($2040-RAM1) ;SIZE OF THE RAM1 BLOCK
  147. R2SIZE = ($2140-RAM2) ;SIZE OF THE RAM2 BLOCK
  148. R3SIZE = ($2800-RAM3) ;SIZE OF THE RAM3 BLOCK
  149. .subttl "system macros 7800"
  150. *********************************************************
  151. * MARIA MACROS FOR EASIER GRAPHICS CONSTRUCTION *
  152. *********************************************************
  153. *
  154. *
  155. *this macro constructs a 4 byte header for display lists
  156. *
  157. .macro header address,palette,width,hpos
  158. dc.b \address & $ff
  159. dc.b (\palette*$20) | ($1f & -\width)
  160. dc.b \address >> 8
  161. dc.b \hpos
  162. .endm
  163. ;
  164. ;this macro constructs a 5 byte header for display lists
  165. ;
  166. .macro xheader address,palette,width,hpos,wm,ind
  167. dc.b \address & $ff
  168. dc.b ((\wm*$80) | $40 | (\ind*$20))
  169. dc.b \address >> 8
  170. dc.b ((\palette*$20) | ($1F & -\width))
  171. dc.b \hpos
  172. .endm
  173. ;
  174. ;this macro constructs a end-of-display-list header
  175. ;
  176. .macro nullhdr
  177. dc.b 0,0
  178. .endm
  179. ;
  180. ;this macro constructs a display list entry for the display list list
  181. ;
  182. .macro display dli,h16,h8,offset,address
  183. dc.b ((\dli*$80) | (\h16*$40) | (\h8*$20) | \offset)
  184. dc.b \address >> 8
  185. dc.b \address & $ff
  186. .endm
  187. ;
  188. ;this macro loads a palette register with a color
  189. ;
  190. .macro paint palnum,colornum,color,lum
  191. lda #(\color*$10) | \lum
  192. sta \bkgrnd | ((\palnum*4) | (\colornum))
  193. .endm
  194. ;
  195. ;this macro writes to the crtl register
  196. ;
  197. ckoff = $0 ;normal color
  198. ckon = $1 ;kill the color
  199. dmaoff = $3 ;turn off dma
  200. dmaon = $2 ;normal dma
  201. char1b = $0 ;one byte character definition
  202. char2b = $1 ;two byte character definition
  203. bcoff = $0 ;black border
  204. bcback = $1 ;background colored border
  205. kangoff = $0 ;transparency
  206. kangon = $1 ;"kangaroo" mode : no transparency!
  207. mode1 = $0 ;160x2 or 160x4 modes
  208. modebd = $2 ;320b or 320d modes
  209. modeac = $3 ;320a or 320c modes
  210. .macro screen ck,dma,cw,bc,km,mode
  211. lda #((\ck*$80) | (\dma*$20) | (\cw*$10) | (\bc*8) | (\km*4)|\mode)
  212. sta CTRL
  213. .endm
  214. .macro dppload adr
  215. lda #\adr & $ff
  216. sta DPPL
  217. sta sdppl
  218. lda #\adr >> 8
  219. sta DPPH
  220. sta sdpph
  221. .endm
  222. ;********************************************************
  223. ; end of the system macros definitions *
  224. ;********************************************************