pacmanbl.ctl 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763
  1. ;
  2. ; DZ80 configuration file for pacman.bin
  3. ;
  4. c 0000-37ff ; Mark everything as code to start with
  5. ; Memory map from http://www.arcaderestoration.com/memorymap/3302/Galaxian.aspx
  6. ;l 4000 WorkRAM
  7. l 40C0 CmdQueue
  8. l 4080 QueueTail
  9. l 4082 QueueHead
  10. l 5000 VideoRAM
  11. l 5800 ObjRAM
  12. l 6000 SW0
  13. l 6800 SW1 ; SW1 on read, sound reset BG 1 on write (but not written except on init)
  14. l 7000 DIPSW
  15. l 7001 NMI_ON
  16. l 7004 STARS_ON
  17. l 7006 H_FLIP
  18. l 7007 V_FLIP
  19. l 7800 Watchdog ; Watchdog on read, EFFECT_FREQ on write
  20. # 0000
  21. # 0000 Some equates. There are more at the end of the file.
  22. # 0000
  23. ;p 0000 WorkRAM equ 4000h
  24. p 0000 EFFECT_FREQ equ 7800h
  25. p 0000 SOUND_CTL equ 6800h
  26. p 0000 OUTPUT_CTL equ 6000h
  27. l 0000 RST_00_RESET
  28. ! 0001 Disable NMI
  29. b 0007-0007
  30. l 0008 RST_08_FillBbytes
  31. l 000C doRET
  32. l 000d X000d
  33. l 0010 RST_10_ByteArrayA
  34. # 0018 Access an array of words by the index in B
  35. # 0018 Input: HL = table address, output: HL = content
  36. # 0018 Trashes DE, A, flags
  37. l 0018 RST_18_WordArrayB
  38. ! 001A ByteArrayA
  39. ; RST 20h is followed by an undefined number of addresses
  40. l 0020 RST_20_JumpTable
  41. ! 0022 ByteArrayA
  42. ; RST 28h is followed by 2 bytes
  43. # 0028 Read the two next bytes from the return address and store them
  44. # 0028 in a pointer indicated in X4080 (circular buffer from xxC0 to xxFF)
  45. l 0028 RST_28_EnqueueCmd
  46. ; RST 30h is followed by 3 bytes
  47. # 0030 In a strided table of 16x3 bytes starting at X4090, find a zero
  48. # 0030 in the first element and copy 3 bytes from the return address.
  49. l 0030 RST_30_Copy3ToBlank
  50. l 0038 RST_38_
  51. # 005A Copy 3 bytes from the return address, to (DE) and skip them
  52. # 005A before returning.
  53. l 005A Copy3
  54. l 005D Copy3_loop
  55. b 0064-0065
  56. l 0066 NMI
  57. l 008E NMIHandler
  58. b 0069-008D
  59. y 00AB EFFECT_FREQ
  60. y 00BC 001Ch
  61. y 0217 EFFECT_FREQ
  62. y 0221 EFFECT_FREQ
  63. y 0238 0401h
  64. ! 025B *2
  65. ! 025C *4
  66. ! 025D *5
  67. ! 025E +1
  68. ! 025F (X408b) = (X408b)*5 + 1
  69. ! 0262 *2
  70. ! 0263 *3
  71. ! 0264 *6
  72. ! 0265 *12
  73. ! 0266 *13
  74. ! 0267 +1
  75. ! 0268 (X408c) = (X408c)*13 + 1
  76. b 026A-0271
  77. ! 0290 Jump table index
  78. ! 0291 ?? Unused?
  79. ! 0292 ?? Unused?
  80. ! 0296 Push return address
  81. ! 0297 RST20_JumpTable
  82. ! 0298 Inc (X4204)
  83. ! 029A Inc (X4203)
  84. ! 029C Inc (X4202)
  85. ! 029E Inc (X41d1)
  86. ! 02A0 Clr (X41d2,X41d3,X41d4)
  87. ! 02A6 Inc (X4206)
  88. ! 02A8 Inc (X4207)
  89. ! 02AA Inc (X4208)
  90. a 0298-02AB
  91. ! 02B4 RST28_EnqueueCmd
  92. b 02B5-02B6
  93. ! 0418 RST20_JumpTable
  94. a 0419-0420
  95. ! 0424 RST20_JumpTable
  96. a 0425-0428
  97. ! 0429 RST28_EnqueueCmd
  98. b 042A-042B
  99. ! 042A ClrScr
  100. ! 042B Full
  101. ! 042C RST28_EnqueueCmd
  102. b 042D-042E
  103. ! 042F RST28_EnqueueCmd
  104. b 0430-0431
  105. ! 0432 RST28_EnqueueCmd
  106. b 0433-0434
  107. ! 0435 RST28_EnqueueCmd
  108. b 0436-0437
  109. ! 0438 RST28_EnqueueCmd
  110. b 0439-043A
  111. ! 043B RST28_EnqueueCmd
  112. b 043C-043D
  113. ! 043E RST28_EnqueueCmd
  114. b 043F-0440
  115. ! 045E RST20_JumpTable
  116. a 045F-04A6
  117. ! 04A7 RST28_EnqueueCmd
  118. b 04A8-04A9
  119. ! 04A8 ClrScr
  120. ! 04A9 Omit1stColumn
  121. ! 04AA RST28_EnqueueCmd
  122. b 04AB-04AC
  123. ! 04AD RST28_EnqueueCmd
  124. b 04AE-04AF
  125. ! 04B0 RST28_EnqueueCmd
  126. b 04B1-04B2
  127. ! 0520 RST28_EnqueueCmd
  128. b 0521-0522
  129. ! 0531 RST28_EnqueueCmd
  130. b 0532-0533
  131. ! 0534 RST28_EnqueueCmd
  132. b 0535-0536
  133. ! 0537 RST28_EnqueueCmd
  134. b 0538-0539
  135. ! 053A RST28_EnqueueCmd
  136. b 053B-053C
  137. y 0551 0020h
  138. ! 05D2 RST30_Copy3ToBlank
  139. b 05D3-05D5
  140. ! 05E5 RST30_Copy3ToBlank
  141. b 05E6-05E8
  142. ! 0602 RST18_WordArrayB
  143. y 0610 001Eh
  144. ! 062A RST20_JumpTable
  145. a 062B-0634
  146. ! 0638 RST28_EnqueueCmd
  147. b 0639-063A
  148. ! 0639 ClrScr
  149. ! 063A Omit1stColumn
  150. ! 063B RST28_EnqueueCmd
  151. b 063C-063D
  152. ! 063E RST28_EnqueueCmd
  153. b 063F-0640
  154. ! 0641 RST28_EnqueueCmd
  155. b 0642-0643
  156. ! 0644 RST28_EnqueueCmd
  157. b 0645-0646
  158. ! 0656 RST28_EnqueueCmd
  159. b 0657-0658
  160. ! 0659 RST28_EnqueueCmd
  161. b 065A-065B
  162. ! 06B1 RST28_EnqueueCmd
  163. b 06B2-06B3
  164. ! 06B2 ClrScr
  165. ! 06B3 Omit1stColumn
  166. ! 06B4 RST28_EnqueueCmd
  167. b 06B5-06B6
  168. ! 06B7 RST28_EnqueueCmd
  169. b 06B8-06B9
  170. ! 06BA RST28_EnqueueCmd
  171. b 06BB-06BC
  172. ! 06BD RST28_EnqueueCmd
  173. b 06BE-06BF
  174. ! 06C0 RST28_EnqueueCmd
  175. b 06C1-06C2
  176. ! 06C3 RST28_EnqueueCmd
  177. b 06C4-06C5
  178. ! 06C6 RST28_EnqueueCmd
  179. b 06C7-06C8
  180. ! 06C9 RST28_EnqueueCmd
  181. b 06CA-06CB
  182. b 06DA-06DB
  183. ! 06DC RST30_Copy3ToBlank
  184. b 06DD-06DF
  185. a 06FF-074A
  186. b 07D3-0850
  187. y 0855 001Ch
  188. y 085A 000Ch
  189. y 0862 000Ch
  190. y 086A 000Ch
  191. y 0872 000Eh
  192. y 087B 0003h
  193. y 08CD 002Eh
  194. b 0880-08B5
  195. w 089E-08AF
  196. ! 08BC RST08_FillBbytes
  197. ! 08E2 RST28_EnqueueCmd
  198. b 08E3-08E4
  199. ! 08E5 RST28_EnqueueCmd
  200. b 08E6-08E7
  201. ! 08E8 RST28_EnqueueCmd
  202. b 08E9-08EA
  203. ! 08EB RST28_EnqueueCmd
  204. b 08EC-08ED
  205. ! 08EE RST28_EnqueueCmd
  206. b 08EF-08F0
  207. ! 08F1 RST28_EnqueueCmd
  208. b 08F2-08F3
  209. ! 08F4 RST30_Copy3ToBlank
  210. b 08F5-08F7
  211. ! 08F8 RST30_Copy3ToBlank
  212. b 08F9-08FB
  213. ! 0922 RST28_EnqueueCmd
  214. b 0923-0924
  215. ! 0984 RST28_EnqueueCmd
  216. b 0985-0986
  217. ! 0987 RST30_Copy3ToBlank
  218. b 0988-098A
  219. ! 09A3 RST28_EnqueueCmd
  220. b 09A4-09A5
  221. ! 09A6 RST30_Copy3ToBlank
  222. b 09A7-09A9
  223. ! 09D6 RST28_EnqueueCmd
  224. b 09D7-09D8
  225. ! 09D7 ClrScr
  226. ! 09D8 Omit1stColumn
  227. ! 09D9 RST28_EnqueueCmd
  228. b 09DA-09DB
  229. ! 09DC RST28_EnqueueCmd
  230. b 09DD-09DE
  231. ! 09DF RST28_EnqueueCmd
  232. b 09E0-09E1
  233. ! 09E2 RST28_EnqueueCmd
  234. b 09E3-09E4
  235. ! 09E5 RST28_EnqueueCmd
  236. b 09E6-09E7
  237. ! 09E8 RST28_EnqueueCmd
  238. b 09E9-09EA
  239. ! 09EB RST28_EnqueueCmd
  240. b 09EC-09ED
  241. ! 09EE RST28_EnqueueCmd
  242. b 09EF-09F0
  243. ! 09F1 RST28_EnqueueCmd
  244. b 09F2-09F3
  245. ! 09F4 RST28_EnqueueCmd
  246. b 09F5-09F6
  247. ! 09FE RST28_EnqueueCmd
  248. b 09FF-0A00
  249. ! 0A01 RST28_EnqueueCmd
  250. b 0A02-0A03
  251. ! 0A04 RST30_Copy3ToBlank
  252. b 0A05-0A07
  253. ! 0A0E RST30_Copy3ToBlank
  254. b 0A0F-0A11
  255. ! 0A31 RST30_Copy3ToBlank
  256. b 0A32-0A34
  257. ! 0A48 RST30_Copy3ToBlank
  258. b 0A49-0A4B
  259. y 0A4D 0000h
  260. ! 0A67 RST28_EnqueueCmd
  261. b 0A68-0A69
  262. ! 0A68 ClrScr
  263. ! 0A69 Omit1stColumn
  264. ! 0A6A RST28_EnqueueCmd
  265. b 0A6B-0A6C
  266. ! 0A6D RST28_EnqueueCmd
  267. b 0A6E-0A6F
  268. ! 0A70 RST28_EnqueueCmd
  269. b 0A71-0A72
  270. ! 0A73 RST28_EnqueueCmd
  271. b 0A74-0A75
  272. ! 0A76 RST28_EnqueueCmd
  273. b 0A77-0A78
  274. ! 0A79 RST28_EnqueueCmd
  275. b 0A7A-0A7B
  276. ! 0A7C RST30_Copy3ToBlank
  277. b 0A7D-0A7F
  278. ! 0AA6 RST20_JumpTable
  279. a 0AA7-0AD0
  280. ! 0AEA RST08_FillBbytes
  281. y 0B33 0100h
  282. ! 0F60 ByteArrayA
  283. ! 0F6E RST30_Copy3ToBlank
  284. b 0F6F-0F71
  285. b 0F73-0FB1
  286. y 0FB7 0000h
  287. ! 0FBD RST28_EnqueueCmd
  288. b 0FBE-0FBF
  289. ! 0FC5 RST28_EnqueueCmd
  290. b 0FC6-0FC7
  291. ! 1049 RST20_JumpTable
  292. a 104A-104F
  293. ! 1053 RST20_JumpTable
  294. a 1054-1059
  295. ! 105D RST20_JumpTable
  296. a 105E-1065
  297. ! 1069 RST20_JumpTable
  298. a 106A-1071
  299. ! 1078 ??
  300. y 1079 8064h
  301. ! 10D0 ??
  302. y 10D1 8064h
  303. ! 1114 ??
  304. y 1115 8064h
  305. ! 1181 ??
  306. y 1182 8064h
  307. ! 11EA RST20_JumpTable
  308. a 11EB-11F0
  309. y 1219 0000h
  310. ! 121E RST30_Copy3ToBlank
  311. b 121F-1221
  312. ! 124A RST20_JumpTable
  313. a 124B-126C
  314. y 1275 0078h
  315. y 1282 0000h
  316. y 128A 00B4h
  317. y 12A9 00C3h
  318. y 12B1 00D2h
  319. y 12B9 00E1h
  320. y 12C1 00F0h
  321. y 12C9 00FFh
  322. y 12D1 010Eh
  323. y 12D9 011Dh
  324. y 12E1 012Ch
  325. y 12E9 013Bh
  326. y 12F6 0159h
  327. y 1308 01B8h
  328. y 1390 0000h
  329. y 13A6 0000h
  330. ! 14B1 Push return address
  331. ! 14B5 RST20_JumpTable
  332. a 14B6-14BD
  333. ! 195C ??
  334. y 195D 8094h
  335. ! 1976 RST30_Copy3ToBlank
  336. b 1977-1979
  337. ! 19F7 RST28_EnqueueCmd
  338. b 19F8-19F9
  339. ! 1BBD RST28_EnqueueCmd
  340. b 1BBE-1BBF
  341. ! 1BCE RST28_EnqueueCmd
  342. b 1BCF-1BD0
  343. ! 1C94 RST28_EnqueueCmd
  344. b 1C95-1C96
  345. ! 1CA5 RST28_EnqueueCmd
  346. b 1CA6-1CA7
  347. ! 1D6B RST28_EnqueueCmd
  348. b 1D6C-1D6D
  349. ! 1D7C RST28_EnqueueCmd
  350. b 1D7D-1D7E
  351. ! 1E42 RST28_EnqueueCmd
  352. b 1E43-1E44
  353. ! 1E53 RST28_EnqueueCmd
  354. b 1E54-1E55
  355. ! 1ECB RST18_WordArrayB
  356. ! 1EF2 RST18_WordArrayB
  357. ! 1F19 RST18_WordArrayB
  358. ! 1F40 RST18_WordArrayB
  359. y 1FA8 0400h
  360. ! 205D RST20_JumpTable
  361. a 205E-206B
  362. ! 20BB RST30_Copy3ToBlank
  363. b 20BC-20BE
  364. ! 20E7 RST30_Copy3ToBlank
  365. b 20E8-20EA
  366. ! 20F7 RST20_JumpTable
  367. a 20F8-2113
  368. ! 2127 RST30_Copy3ToBlank
  369. b 2128-212A
  370. ! 21B0 RST30_Copy3ToBlank
  371. b 21B1-21B3
  372. ! 21CB RST30_Copy3ToBlank
  373. b 21CC-21CE
  374. ! 21D2 RST30_Copy3ToBlank
  375. b 21D3-21D5
  376. ! 21E6 RST20_JumpTable
  377. a 21E7-21F2
  378. ! 2223 RST30_Copy3ToBlank
  379. b 2224-2226
  380. ! 224E RST30_Copy3ToBlank
  381. b 224F-2251
  382. # 2257 Continued from RST 00h (RESET)
  383. l 2257 ResetCont
  384. y 2258 SOUND_CTL
  385. ! 225A Clear 8 bytes
  386. y 2262 OUTPUT_CTL
  387. ! 2264 Clear 8 bytes
  388. ! 226E Clear 8 bytes
  389. ;y 2276 WorkRAM
  390. ! 2278 Clear 400h = 1024 bytes
  391. ! 227E Clear RAM
  392. ! 2287 Init 400h = 1024 bytes
  393. ! 228C Fill with 40h
  394. ! 229B Clear 100h = 256 bytes
  395. y 22A3 EFFECT_FREQ
  396. ! 22A5 Upright, right-side-up
  397. ! 22CC Clear 3BEh = 958 bytes
  398. ! 22CE RST08_FillBbytes
  399. ! 22CF RST08_FillBbytes
  400. ! 22D0 RST08_FillBbytes
  401. ! 22D1 RST08_FillBbytes
  402. ! 22D7 RST08_FillBbytes
  403. ! 22EC Fill queue with 0FFh
  404. ! 22EE Length of queue in bytes
  405. ! 22F0 RST08_FillBbytes
  406. # 22F1 Command queue loop
  407. l 22F1 CmdLoop
  408. ! 22F1 Enable NMI
  409. ! 22FC Grab command in A
  410. ! 22FE Ignore if bit 7 set
  411. ! 2301 Clear command in queue (it's still in A)
  412. ! 2304 Grab parameter in B
  413. ! 2305 Clear parameter in queue (it's still in B)
  414. ! 230A Wrap around to start of buffer
  415. ! 230C Update queue head
  416. ! 2312 Push return address
  417. ! 2313 RST20_JumpTable
  418. a 2314-2353
  419. ! 2314 Cmd 00h: Clear Screen. 0: full, 1: omit 1st column
  420. ! 2316 Cmd 01h:
  421. ! 2318 Cmd 02h:
  422. ! 231A Cmd 03h:
  423. ! 231C Cmd 04h:
  424. ! 231E Cmd 05h:
  425. ! 2320 Cmd 06h:
  426. ! 2322 Cmd 07h:
  427. ! 2324 Cmd 08h:
  428. ! 2326 Cmd 09h:
  429. ! 2328 Cmd 0Ah:
  430. ! 232A Cmd 0Bh:
  431. ! 232C Cmd 0Ch:
  432. ! 232E Cmd 0Dh:
  433. ! 2330 Cmd 0Eh:
  434. ! 2332 Cmd 0Fh:
  435. ! 2334 Cmd 10h:
  436. ! 2336 Cmd 11h:
  437. ! 2338 Cmd 12h:
  438. ! 233A Cmd 13h:
  439. ! 233C Cmd 14h:
  440. ! 233E Cmd 15h:
  441. ! 2340 Cmd 16h:
  442. ! 2342 Cmd 17h:
  443. ! 2344 Cmd 18h:
  444. ! 2346 Cmd 19h:
  445. ! 2348 Cmd 1Ah:
  446. ! 234A Cmd 1Bh:
  447. ! 234C Cmd 1Ch:
  448. ! 234E Cmd 1Dh:
  449. ! 2350 Cmd 1Eh:
  450. ! 2352 Cmd 1Fh:
  451. # 2359 Input: B=0: full clear, B=1: partial clear
  452. l 2359 Cmd_ClrScr
  453. ! 235A RST20_JumpTable
  454. a 235B-235E
  455. # 235F Clears all screen
  456. l 235F ClrAll
  457. ! 2361 0400h=1024 bytes
  458. y 2362 0004h
  459. ! 2367 RST08_FillBbytes
  460. # 236C Clears partial screen
  461. l 236C JpPartialClear
  462. ! 236F ?? Unused?
  463. b 236F-2370
  464. ! 2371 ?? Unused?
  465. y 2372 8004h
  466. ! 2374 RST08_FillBbytes
  467. ! 2374 ?? Unused?
  468. ! 239D ?? (A3E0 = 41952 = -23584)
  469. y 239E 0A3E0h
  470. ! 243D RST08_FillBbytes
  471. ! 2442 RST08_FillBbytes
  472. b 246C-248B
  473. y 24C6 8064h
  474. y 24CC 807Ch
  475. y 24D2 907Ch
  476. y 24D8 707Ch
  477. y 24DE 80C4h
  478. y 24E4 2E2Ch
  479. y 24ED 2E2Fh
  480. y 24F6 302Fh
  481. y 24FF 2E2Fh
  482. y 2508 2E38h
  483. y 2511 0100h
  484. y 251A 0001h
  485. y 2523 00FFh
  486. y 252C 00FFh
  487. y 2535 0100h
  488. y 253E 0102h
  489. y 2547 0303h
  490. y 2558 0000h
  491. y 255F 0094h
  492. y 256E 1E32h
  493. y 2589 0100h
  494. ! 25B0 RST08_FillBbytes
  495. ! 25B4 TODO: Appears to be a value, but it could be an address.
  496. y 25B5 0894h
  497. y 25BB 1F32h
  498. y 25C5 0000h
  499. ! 2632 ByteArrayA
  500. ! 263E RST18_WordArrayB
  501. y 26F5 2040h
  502. y 273D 3B40h
  503. y 2755 0040h
  504. y 2779 2E2Ch
  505. y 27A3 2E2Ch
  506. y 27CD 2E2Ch
  507. y 27F7 2E2Ch
  508. ! 299d RST18_WordArrayB
  509. y 29DC 0003h
  510. y 29E2 0304h
  511. y 29ED 0304h
  512. ! 2A25 RST08_FillBbytes
  513. y 2A27 0304h
  514. y 2A33 0304h
  515. # 2A51 Score table. Values are in BCD.
  516. w 2A51-2A6C
  517. ! 2A51 Score of small dot
  518. ! 2A53 Score of big dot
  519. ! 2A55 Score of first ghost eaten
  520. ! 2A57 Score of second ghost eaten
  521. ! 2A59 Score of third ghost eaten
  522. ! 2A5B Score of fourth ghost eaten
  523. ! 2A5D Score of 1st prize (Cherries)
  524. ! 2A5F Score of 2nd prize (Strawberry)
  525. ! 2A61 Score of 3rd prize (Peach)
  526. ! 2A63 Score of 4th prize (Apple)
  527. ! 2A65 Score of 5th prize (Grape/Cherimoya)
  528. ! 2A67 Score of 6th prize (Galaxian)
  529. ! 2A69 Score of 7th prize (Bell)
  530. ! 2A6B Score of 8th prize (Key)
  531. y 2AC0 001Fh
  532. y 2ACB 0020h
  533. y 2B15 0020h
  534. # 2B61 This looks like dead code, all the way to X2bb4.
  535. # 2B98 This is a JP opcode that goes to a place that doesn't make sense.
  536. # 2B98 Maybe this is never executed? Originally: JP X2bfd
  537. b 2B98-2B9A
  538. l 2BB4 X2bb4
  539. ! 2BB8 RST18_WordArrayB
  540. y 2BD4 0000h
  541. p 2BFF ; X2bfd corresponds to a CALL Z,0FD42h, which doesn't make sense
  542. p 2BFF X2bfd EQU $-2
  543. y 2BC3 -0400h
  544. y 2BC8 -0001h
  545. y 2BCF -0020h
  546. ! 2C5F RST18_WordArrayB
  547. ! 2C80 RST20_JumpTable
  548. a 2C81-2CA0
  549. ! 2CAD ByteArrayA
  550. ! 2CB7 ByteArrayA
  551. y 2D1A 0008h
  552. # 2E28 Clears screen except a vertical strip at position 0
  553. l 2E28 PartialClear
  554. ! 2E31 RST08_FillBbytes
  555. b 2E41-37ff
  556. a 31ED-31F0
  557. w 31F1-31F2
  558. a 31F3-321C
  559. w 321D-3222
  560. a 3223-3232
  561. w 3233-3249
  562. a 324B-325A
  563. t 325D-33D9
  564. b 326B
  565. b 32B3
  566. b 3337
  567. b 3345
  568. b 3352
  569. b 335F
  570. b 336C
  571. b 337A
  572. b 3388
  573. t 3435-34AD
  574. # 3542
  575. # 3542 Strided table with fruit/colour
  576. l 3542 FruitCodes
  577. ! 3543 Cherry
  578. ! 3545 Strawberry
  579. ! 3547 1st Peach
  580. ! 3549 2nd Peach
  581. ! 354B 1st Apple
  582. ! 354D 2nd Apple
  583. ! 354F 1st Grape/Cherimoya
  584. ! 3551 2nd Grape/Cherimoya
  585. ! 3553 1st Galaxian
  586. ! 3555 2nd Galaxian
  587. ! 3557 1st Bell
  588. ! 3559 2nd Bell
  589. ! 355B 1st Key
  590. ! 355D 2nd Key
  591. ! 355F 3rd Key
  592. ! 3561 4th Key
  593. ! 3563 5th Key
  594. ! 3565 6th Key
  595. ! 3567 7th Key
  596. ! 3569 8th Key
  597. l 370E BlankZone
  598. ; Added this as a reminder for myself.
  599. ;
  600. ; DZ80.CTL - Control File for DZ80
  601. ;
  602. ; Control codes allowed in the CTL file:
  603. ;
  604. ; A - Address Specifies that the word entry is the address of
  605. ; something for which a label should be generated.
  606. ;
  607. ; B - Byte binary Eight bit binary data (db).
  608. ;
  609. ; C - Code Executable code that must be analyzed.
  610. ;
  611. ; I - Ignore Treat as uninitialized space. Will not be dis-
  612. ; assembled as anything unless some other valid
  613. ; code reaches it.
  614. ;
  615. ; L - Label Generate a label for this address.
  616. ;
  617. ; N - No label Suppress label generation for an address.
  618. ;
  619. ; O - Offset Specify offset to add to addresses.
  620. ;
  621. ; P - Patch Add inline code (macro, for example)
  622. ;
  623. ; S - Symbol Generate a symbol for this value.
  624. ;
  625. ; T - Text ASCII text (db).
  626. ;
  627. ; W - Word binary Sixteen bit binary data (dw).
  628. ;
  629. ; X - Operand name Specify special name for operand.
  630. ;
  631. ; Y - Operand name Specify special name for operand, suppress EQU generatio
  632. ;
  633. ; # - Comment Add header comment to output file.
  634. ;
  635. ; ! - Inline comment Add comment to end of line.
  636. ;
  637. ; The difference between labels and symbols is that a label refers
  638. ; to a referenced address, whereas a symbol may be used for 8 or 16
  639. ; bit immediate data. For some opcodes (eg: ld a,xx) only the symbol
  640. ; table will be searched. Other opcodes (eg: ld hl,xx) will search
  641. ; the label table first and then search the symbol table only if the
  642. ; value is not found in the label table.