burn 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (190) hide show
  1. data/LICENSE +621 -0
  2. data/README.md +467 -0
  3. data/Rakefile +1 -0
  4. data/bin/burn +14 -0
  5. data/lib/burn/builder.rb +65 -0
  6. data/lib/burn/cli.rb +187 -0
  7. data/lib/burn/debug.rb +25 -0
  8. data/lib/burn/dsl/channel_stream.rb +105 -0
  9. data/lib/burn/dsl/declare.rb +42 -0
  10. data/lib/burn/dsl/dsl_base.rb +31 -0
  11. data/lib/burn/dsl/music.rb +36 -0
  12. data/lib/burn/dsl/note.rb +125 -0
  13. data/lib/burn/dsl/scene.rb +278 -0
  14. data/lib/burn/dsl/sound.rb +30 -0
  15. data/lib/burn/dsl/sound_effect.rb +91 -0
  16. data/lib/burn/dsl.rb +8 -0
  17. data/lib/burn/generator/assembly_music.rb +47 -0
  18. data/lib/burn/generator/assembly_sound_effect.rb +33 -0
  19. data/lib/burn/generator/c_source.rb +54 -0
  20. data/lib/burn/generator/template/mus_template.s +49 -0
  21. data/lib/burn/generator/template/template.c +88 -0
  22. data/lib/burn/generator.rb +3 -0
  23. data/lib/burn/tools/mac/cc65/asminc/_file.inc +27 -0
  24. data/lib/burn/tools/mac/cc65/asminc/_heap.inc +35 -0
  25. data/lib/burn/tools/mac/cc65/asminc/apple2.inc +64 -0
  26. data/lib/burn/tools/mac/cc65/asminc/atari.inc +1175 -0
  27. data/lib/burn/tools/mac/cc65/asminc/atari.mac +59 -0
  28. data/lib/burn/tools/mac/cc65/asminc/atmos.inc +110 -0
  29. data/lib/burn/tools/mac/cc65/asminc/c128.inc +214 -0
  30. data/lib/burn/tools/mac/cc65/asminc/c16.inc +9 -0
  31. data/lib/burn/tools/mac/cc65/asminc/c64.inc +212 -0
  32. data/lib/burn/tools/mac/cc65/asminc/cbm.mac +50 -0
  33. data/lib/burn/tools/mac/cc65/asminc/cbm510.inc +182 -0
  34. data/lib/burn/tools/mac/cc65/asminc/cbm610.inc +110 -0
  35. data/lib/burn/tools/mac/cc65/asminc/cbm_filetype.inc +34 -0
  36. data/lib/burn/tools/mac/cc65/asminc/cpu.mac +24 -0
  37. data/lib/burn/tools/mac/cc65/asminc/ctype.inc +29 -0
  38. data/lib/burn/tools/mac/cc65/asminc/em-error.inc +49 -0
  39. data/lib/burn/tools/mac/cc65/asminc/em-kernel.inc +106 -0
  40. data/lib/burn/tools/mac/cc65/asminc/errno.inc +36 -0
  41. data/lib/burn/tools/mac/cc65/asminc/fcntl.inc +21 -0
  42. data/lib/burn/tools/mac/cc65/asminc/generic.mac +55 -0
  43. data/lib/burn/tools/mac/cc65/asminc/get_tv.inc +22 -0
  44. data/lib/burn/tools/mac/cc65/asminc/joy-error.inc +44 -0
  45. data/lib/burn/tools/mac/cc65/asminc/joy-kernel.inc +85 -0
  46. data/lib/burn/tools/mac/cc65/asminc/longbranch.mac +88 -0
  47. data/lib/burn/tools/mac/cc65/asminc/lynx.inc +279 -0
  48. data/lib/burn/tools/mac/cc65/asminc/modload.inc +78 -0
  49. data/lib/burn/tools/mac/cc65/asminc/mouse-kernel.inc +180 -0
  50. data/lib/burn/tools/mac/cc65/asminc/nes.inc +93 -0
  51. data/lib/burn/tools/mac/cc65/asminc/o65.inc +150 -0
  52. data/lib/burn/tools/mac/cc65/asminc/opcodes.inc +509 -0
  53. data/lib/burn/tools/mac/cc65/asminc/pet.inc +54 -0
  54. data/lib/burn/tools/mac/cc65/asminc/plus4.inc +86 -0
  55. data/lib/burn/tools/mac/cc65/asminc/ser-error.inc +54 -0
  56. data/lib/burn/tools/mac/cc65/asminc/ser-kernel.inc +162 -0
  57. data/lib/burn/tools/mac/cc65/asminc/signal.inc +57 -0
  58. data/lib/burn/tools/mac/cc65/asminc/smc.inc +245 -0
  59. data/lib/burn/tools/mac/cc65/asminc/stdio.inc +70 -0
  60. data/lib/burn/tools/mac/cc65/asminc/supervision.inc +76 -0
  61. data/lib/burn/tools/mac/cc65/asminc/tgi-error.inc +52 -0
  62. data/lib/burn/tools/mac/cc65/asminc/tgi-kernel.inc +234 -0
  63. data/lib/burn/tools/mac/cc65/asminc/tgi-vectorfont.inc +70 -0
  64. data/lib/burn/tools/mac/cc65/asminc/time.inc +59 -0
  65. data/lib/burn/tools/mac/cc65/asminc/utsname.inc +46 -0
  66. data/lib/burn/tools/mac/cc65/asminc/vic20.inc +75 -0
  67. data/lib/burn/tools/mac/cc65/asminc/zeropage.inc +26 -0
  68. data/lib/burn/tools/mac/cc65/bin/ca65 +0 -0
  69. data/lib/burn/tools/mac/cc65/bin/cc65 +0 -0
  70. data/lib/burn/tools/mac/cc65/bin/ld65 +0 -0
  71. data/lib/burn/tools/other/cc65/asminc/_file.inc +27 -0
  72. data/lib/burn/tools/other/cc65/asminc/_heap.inc +35 -0
  73. data/lib/burn/tools/other/cc65/asminc/apple2.inc +64 -0
  74. data/lib/burn/tools/other/cc65/asminc/atari.inc +1175 -0
  75. data/lib/burn/tools/other/cc65/asminc/atari.mac +59 -0
  76. data/lib/burn/tools/other/cc65/asminc/atmos.inc +110 -0
  77. data/lib/burn/tools/other/cc65/asminc/c128.inc +214 -0
  78. data/lib/burn/tools/other/cc65/asminc/c16.inc +9 -0
  79. data/lib/burn/tools/other/cc65/asminc/c64.inc +212 -0
  80. data/lib/burn/tools/other/cc65/asminc/cbm.mac +50 -0
  81. data/lib/burn/tools/other/cc65/asminc/cbm510.inc +182 -0
  82. data/lib/burn/tools/other/cc65/asminc/cbm610.inc +110 -0
  83. data/lib/burn/tools/other/cc65/asminc/cbm_filetype.inc +34 -0
  84. data/lib/burn/tools/other/cc65/asminc/cpu.mac +24 -0
  85. data/lib/burn/tools/other/cc65/asminc/ctype.inc +29 -0
  86. data/lib/burn/tools/other/cc65/asminc/em-error.inc +49 -0
  87. data/lib/burn/tools/other/cc65/asminc/em-kernel.inc +106 -0
  88. data/lib/burn/tools/other/cc65/asminc/errno.inc +36 -0
  89. data/lib/burn/tools/other/cc65/asminc/fcntl.inc +21 -0
  90. data/lib/burn/tools/other/cc65/asminc/generic.mac +55 -0
  91. data/lib/burn/tools/other/cc65/asminc/get_tv.inc +22 -0
  92. data/lib/burn/tools/other/cc65/asminc/joy-error.inc +44 -0
  93. data/lib/burn/tools/other/cc65/asminc/joy-kernel.inc +85 -0
  94. data/lib/burn/tools/other/cc65/asminc/longbranch.mac +88 -0
  95. data/lib/burn/tools/other/cc65/asminc/lynx.inc +279 -0
  96. data/lib/burn/tools/other/cc65/asminc/modload.inc +78 -0
  97. data/lib/burn/tools/other/cc65/asminc/mouse-kernel.inc +180 -0
  98. data/lib/burn/tools/other/cc65/asminc/nes.inc +93 -0
  99. data/lib/burn/tools/other/cc65/asminc/o65.inc +150 -0
  100. data/lib/burn/tools/other/cc65/asminc/opcodes.inc +509 -0
  101. data/lib/burn/tools/other/cc65/asminc/pet.inc +54 -0
  102. data/lib/burn/tools/other/cc65/asminc/plus4.inc +86 -0
  103. data/lib/burn/tools/other/cc65/asminc/ser-error.inc +54 -0
  104. data/lib/burn/tools/other/cc65/asminc/ser-kernel.inc +162 -0
  105. data/lib/burn/tools/other/cc65/asminc/signal.inc +57 -0
  106. data/lib/burn/tools/other/cc65/asminc/smc.inc +245 -0
  107. data/lib/burn/tools/other/cc65/asminc/stdio.inc +70 -0
  108. data/lib/burn/tools/other/cc65/asminc/supervision.inc +76 -0
  109. data/lib/burn/tools/other/cc65/asminc/tgi-error.inc +52 -0
  110. data/lib/burn/tools/other/cc65/asminc/tgi-kernel.inc +234 -0
  111. data/lib/burn/tools/other/cc65/asminc/tgi-vectorfont.inc +70 -0
  112. data/lib/burn/tools/other/cc65/asminc/time.inc +59 -0
  113. data/lib/burn/tools/other/cc65/asminc/utsname.inc +46 -0
  114. data/lib/burn/tools/other/cc65/asminc/vic20.inc +75 -0
  115. data/lib/burn/tools/other/cc65/asminc/zeropage.inc +26 -0
  116. data/lib/burn/tools/other/cc65/bin/ca65 +0 -0
  117. data/lib/burn/tools/other/cc65/bin/cc65 +0 -0
  118. data/lib/burn/tools/other/cc65/bin/ld65 +0 -0
  119. data/lib/burn/tools/win/cc65/asminc/_file.inc +27 -0
  120. data/lib/burn/tools/win/cc65/asminc/_heap.inc +35 -0
  121. data/lib/burn/tools/win/cc65/asminc/apple2.inc +64 -0
  122. data/lib/burn/tools/win/cc65/asminc/atari.inc +1101 -0
  123. data/lib/burn/tools/win/cc65/asminc/atmos.inc +31 -0
  124. data/lib/burn/tools/win/cc65/asminc/c128.inc +213 -0
  125. data/lib/burn/tools/win/cc65/asminc/c16.inc +9 -0
  126. data/lib/burn/tools/win/cc65/asminc/c64.inc +212 -0
  127. data/lib/burn/tools/win/cc65/asminc/cbm510.inc +182 -0
  128. data/lib/burn/tools/win/cc65/asminc/cbm610.inc +110 -0
  129. data/lib/burn/tools/win/cc65/asminc/ctype.inc +29 -0
  130. data/lib/burn/tools/win/cc65/asminc/em-error.inc +44 -0
  131. data/lib/burn/tools/win/cc65/asminc/em-kernel.inc +100 -0
  132. data/lib/burn/tools/win/cc65/asminc/errno.inc +36 -0
  133. data/lib/burn/tools/win/cc65/asminc/fcntl.inc +21 -0
  134. data/lib/burn/tools/win/cc65/asminc/get_tv.inc +22 -0
  135. data/lib/burn/tools/win/cc65/asminc/joy-error.inc +44 -0
  136. data/lib/burn/tools/win/cc65/asminc/joy-kernel.inc +85 -0
  137. data/lib/burn/tools/win/cc65/asminc/lynx.inc +273 -0
  138. data/lib/burn/tools/win/cc65/asminc/modload.inc +78 -0
  139. data/lib/burn/tools/win/cc65/asminc/mouse-kernel.inc +179 -0
  140. data/lib/burn/tools/win/cc65/asminc/nes.inc +93 -0
  141. data/lib/burn/tools/win/cc65/asminc/o65.inc +135 -0
  142. data/lib/burn/tools/win/cc65/asminc/pet.inc +45 -0
  143. data/lib/burn/tools/win/cc65/asminc/plus4.inc +87 -0
  144. data/lib/burn/tools/win/cc65/asminc/rs232.inc +19 -0
  145. data/lib/burn/tools/win/cc65/asminc/ser-error.inc +50 -0
  146. data/lib/burn/tools/win/cc65/asminc/ser-kernel.inc +161 -0
  147. data/lib/burn/tools/win/cc65/asminc/signal.inc +57 -0
  148. data/lib/burn/tools/win/cc65/asminc/stdio.inc +70 -0
  149. data/lib/burn/tools/win/cc65/asminc/supervision.inc +76 -0
  150. data/lib/burn/tools/win/cc65/asminc/tgi-error.inc +48 -0
  151. data/lib/burn/tools/win/cc65/asminc/tgi-kernel.inc +183 -0
  152. data/lib/burn/tools/win/cc65/asminc/tgi-mode.inc +48 -0
  153. data/lib/burn/tools/win/cc65/asminc/time.inc +59 -0
  154. data/lib/burn/tools/win/cc65/asminc/utsname.inc +46 -0
  155. data/lib/burn/tools/win/cc65/asminc/vic20.inc +77 -0
  156. data/lib/burn/tools/win/cc65/asminc/zeropage.inc +22 -0
  157. data/lib/burn/tools/win/cc65/bin/ca65.exe +0 -0
  158. data/lib/burn/tools/win/cc65/bin/cc65.exe +0 -0
  159. data/lib/burn/tools/win/cc65/bin/ld65.exe +0 -0
  160. data/lib/burn/util/os.rb +38 -0
  161. data/lib/burn/util/patternizer.rb +62 -0
  162. data/lib/burn/util/pxes.rb +180 -0
  163. data/lib/burn/util/server.rb +21 -0
  164. data/lib/burn/util.rb +4 -0
  165. data/lib/burn/version.rb +3 -0
  166. data/lib/burn/workspace_default/asset/crt0.s +260 -0
  167. data/lib/burn/workspace_default/asset/famitone.s +1031 -0
  168. data/lib/burn/workspace_default/asset/mus_instruments.s +50 -0
  169. data/lib/burn/workspace_default/asset/music.s +3 -0
  170. data/lib/burn/workspace_default/asset/nes.cfg +83 -0
  171. data/lib/burn/workspace_default/asset/neslib.h +213 -0
  172. data/lib/burn/workspace_default/asset/neslib.s +923 -0
  173. data/lib/burn/workspace_default/asset/runtime.lib +0 -0
  174. data/lib/burn/workspace_default/asset/sounds.s +143 -0
  175. data/lib/burn/workspace_default/asset/test.h +22 -0
  176. data/lib/burn/workspace_default/asset/tileset.chr +0 -0
  177. data/lib/burn/workspace_default/release/js/emulator.html +42 -0
  178. data/lib/burn/workspace_default/release/js/js/dynamicaudio-89ba58da476270a9b630.min.js +1 -0
  179. data/lib/burn/workspace_default/release/js/js/jquery-1.4.2.min.js +154 -0
  180. data/lib/burn/workspace_default/release/js/js/jsnes-4e7a7260aa.js +7149 -0
  181. data/lib/burn/workspace_default/release/js/swf/dynamicaudio.swf +0 -0
  182. data/lib/burn/workspace_default/scripts/compile.bat +30 -0
  183. data/lib/burn/workspace_default/scripts/compile.sh +30 -0
  184. data/lib/burn.rb +11 -0
  185. data/test/helper.rb +8 -0
  186. data/test/runner.rb +2 -0
  187. data/test/test_burn.rb +14 -0
  188. data/test/test_dsl.rb +22 -0
  189. data/test/test_pxes.rb +48 -0
  190. metadata +270 -0
@@ -0,0 +1,44 @@
1
+ ;/*****************************************************************************/
2
+ ;/* */
3
+ ;/* joy-error.inc */
4
+ ;/* */
5
+ ;/* Joystick error codes */
6
+ ;/* */
7
+ ;/* */
8
+ ;/* */
9
+ ;/* (C) 2002 Ullrich von Bassewitz */
10
+ ;/* Wacholderweg 14 */
11
+ ;/* D-70597 Stuttgart */
12
+ ;/* EMail: uz@musoftware.de */
13
+ ;/* */
14
+ ;/* */
15
+ ;/* This software is provided 'as-is', without any expressed or implied */
16
+ ;/* warranty. In no event will the authors be held liable for any damages */
17
+ ;/* arising from the use of this software. */
18
+ ;/* */
19
+ ;/* Permission is granted to anyone to use this software for any purpose, */
20
+ ;/* including commercial applications, and to alter it and redistribute it */
21
+ ;/* freely, subject to the following restrictions: */
22
+ ;/* */
23
+ ;/* 1. The origin of this software must not be misrepresented; you must not */
24
+ ;/* claim that you wrote the original software. If you use this software */
25
+ ;/* in a product, an acknowledgment in the product documentation would be */
26
+ ;/* appreciated but is not required. */
27
+ ;/* 2. Altered source versions must be plainly marked as such, and must not */
28
+ ;/* be misrepresented as being the original software. */
29
+ ;/* 3. This notice may not be removed or altered from any source */
30
+ ;/* distribution. */
31
+ ;/* */
32
+ ;/*****************************************************************************/
33
+
34
+
35
+
36
+ ; Error codes
37
+ JOY_ERR_OK = 0 ; No error
38
+ JOY_ERR_NO_DRIVER = 1 ; No driver available
39
+ JOY_ERR_CANNOT_LOAD = 2 ; Error loading driver
40
+ JOY_ERR_INV_DRIVER = 3 ; Invalid driver
41
+ JOY_ERR_NO_DEVICE = 4 ; Device (hardware) not found
42
+
43
+
44
+
@@ -0,0 +1,85 @@
1
+ ;/*****************************************************************************/
2
+ ;/* */
3
+ ;/* joy-kernel.inc */
4
+ ;/* */
5
+ ;/* Internally used joystick functions */
6
+ ;/* */
7
+ ;/* */
8
+ ;/* */
9
+ ;/* (C) 2002-2006, Ullrich von Bassewitz */
10
+ ;/* R�merstra�e 52 */
11
+ ;/* D-70794 Filderstadt */
12
+ ;/* EMail: uz@cc65.org */
13
+ ;/* */
14
+ ;/* */
15
+ ;/* This software is provided 'as-is', without any expressed or implied */
16
+ ;/* warranty. In no event will the authors be held liable for any damages */
17
+ ;/* arising from the use of this software. */
18
+ ;/* */
19
+ ;/* Permission is granted to anyone to use this software for any purpose, */
20
+ ;/* including commercial applications, and to alter it and redistribute it */
21
+ ;/* freely, subject to the following restrictions: */
22
+ ;/* */
23
+ ;/* 1. The origin of this software must not be misrepresented; you must not */
24
+ ;/* claim that you wrote the original software. If you use this software */
25
+ ;/* in a product, an acknowledgment in the product documentation would be */
26
+ ;/* appreciated but is not required. */
27
+ ;/* 2. Altered source versions must be plainly marked as such, and must not */
28
+ ;/* be misrepresented as being the original software. */
29
+ ;/* 3. This notice may not be removed or altered from any source */
30
+ ;/* distribution. */
31
+ ;/* */
32
+ ;/*****************************************************************************/
33
+
34
+
35
+
36
+
37
+
38
+
39
+ ;------------------------------------------------------------------------------
40
+ ; Driver header stuff
41
+
42
+ .struct JOY_HDR
43
+ ID .byte 3 ; $6A, $6F, $79 ("joy")
44
+ VERSION .byte 1 ; Interface version
45
+ LIBREF .addr ; Library reference
46
+ MASKS .byte 8 ; Joystick state mask array
47
+ JUMPTAB .struct
48
+ INSTALL .addr ; INSTALL routine
49
+ UNINSTALL .addr ; UNINSTALL routine
50
+ COUNT .addr ; COUNT routine
51
+ READ .addr ; READ routine
52
+ IRQ .addr ; IRQ routine
53
+ .endstruct
54
+ .endstruct
55
+
56
+ ;------------------------------------------------------------------------------
57
+ ; The JOY API version, stored in JOY_HDR::VERSION
58
+
59
+ JOY_API_VERSION = $02
60
+
61
+ ;------------------------------------------------------------------------------
62
+ ; Variables
63
+
64
+ .global _joy_drv ; Pointer to driver
65
+ .global _joy_masks
66
+
67
+ ;------------------------------------------------------------------------------
68
+ ; Driver entry points
69
+
70
+ .global joy_install
71
+ .global joy_uninstall
72
+ .global joy_count
73
+ .global joy_read
74
+
75
+ ;------------------------------------------------------------------------------
76
+ ; C callable functions
77
+
78
+ .global _joy_load_driver
79
+ .global _joy_unload
80
+ .global _joy_install
81
+ .global _joy_uninstall
82
+ .global _joy_count
83
+ .global _joy_read
84
+
85
+ .global _joy_clear_ptr
@@ -0,0 +1,88 @@
1
+ .macro jeq Target
2
+ .if .match(Target, 0)
3
+ bne *+5
4
+ jmp Target
5
+ .elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
6
+ beq Target
7
+ .else
8
+ bne *+5
9
+ jmp Target
10
+ .endif
11
+ .endmacro
12
+ .macro jne Target
13
+ .if .match(Target, 0)
14
+ beq *+5
15
+ jmp Target
16
+ .elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
17
+ bne Target
18
+ .else
19
+ beq *+5
20
+ jmp Target
21
+ .endif
22
+ .endmacro
23
+ .macro jmi Target
24
+ .if .match(Target, 0)
25
+ bpl *+5
26
+ jmp Target
27
+ .elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
28
+ bmi Target
29
+ .else
30
+ bpl *+5
31
+ jmp Target
32
+ .endif
33
+ .endmacro
34
+ .macro jpl Target
35
+ .if .match(Target, 0)
36
+ bmi *+5
37
+ jmp Target
38
+ .elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
39
+ bpl Target
40
+ .else
41
+ bmi *+5
42
+ jmp Target
43
+ .endif
44
+ .endmacro
45
+ .macro jcs Target
46
+ .if .match(Target, 0)
47
+ bcc *+5
48
+ jmp Target
49
+ .elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
50
+ bcs Target
51
+ .else
52
+ bcc *+5
53
+ jmp Target
54
+ .endif
55
+ .endmacro
56
+ .macro jcc Target
57
+ .if .match(Target, 0)
58
+ bcs *+5
59
+ jmp Target
60
+ .elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
61
+ bcc Target
62
+ .else
63
+ bcs *+5
64
+ jmp Target
65
+ .endif
66
+ .endmacro
67
+ .macro jvs Target
68
+ .if .match(Target, 0)
69
+ bvc *+5
70
+ jmp Target
71
+ .elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
72
+ bvs Target
73
+ .else
74
+ bvc *+5
75
+ jmp Target
76
+ .endif
77
+ .endmacro
78
+ .macro jvc Target
79
+ .if .match(Target, 0)
80
+ bvs *+5
81
+ jmp Target
82
+ .elseif .def(Target) .and .const((*-2)-(Target)) .and ((*+2)-(Target) <= 127)
83
+ bvc Target
84
+ .else
85
+ bvs *+5
86
+ jmp Target
87
+ .endif
88
+ .endmacro
@@ -0,0 +1,279 @@
1
+ ; Lynx system hardware includes
2
+ ; Shawn Jefferson
3
+ ; June 18th, 2004
4
+ ;
5
+ ; Reference:
6
+ ; Bastian Schick's Lynx Documentation
7
+ ; http://www.geocities.com/SiliconValley/Byte/4242/lynx/
8
+ ;
9
+
10
+ ; ***
11
+ ; *** Suzy Addresses
12
+ ; ***
13
+
14
+ ; Sprite Control Block
15
+
16
+ TMPADRL = $FC00
17
+ TMPADRH = $FC01
18
+ TILTACUML = $FC02
19
+ TILTACUMH = $FC03
20
+ HOFFL = $FC04
21
+ HOFFH = $FC05
22
+ VOFFL = $FC06
23
+ VOFFH = $FC07
24
+ VIDBASL = $FC08
25
+ VIDBASH = $FC09
26
+ COLLBASL = $FC0A
27
+ COLLBASH = $FC0B
28
+ VIDADRL = $FC0C
29
+ VIDADRH = $FC0D
30
+ COLLADRL = $FC0E
31
+ COLLADRH = $FC0F
32
+ SCBNEXTL = $FC10
33
+ SCBNEXTH = $FC11
34
+ SPRDLINEL = $FC12
35
+ SPRDLINEH = $FC13
36
+ HPOSSTRTL = $FC14
37
+ HPOSSTRTH = $FC15
38
+ VPOSSTRTL = $FC16
39
+ VPOSSTRTH = $FC17
40
+ SPRHSIZL = $FC18
41
+ SPRHSIZH = $FC19
42
+ SPRVSIZL = $FC1A
43
+ SPRVSIZH = $FC1B
44
+ STRETCHL = $FC1C
45
+ STRETCHH = $FC1D
46
+ TILTL = $FC1E
47
+ TILTH = $FC1F
48
+ SPRDOFFL = $FC20
49
+ SPRDOFFH = $FC21
50
+ SPRVPOSL = $FC22
51
+ SPRVPOSH = $FC23
52
+ COLLOFFL = $FC24
53
+ COLLOFFH = $FC25
54
+ VSIZACUML = $FC26
55
+ VSIZACUMH = $FC27
56
+ HSIZOFFL = $FC28
57
+ HSIZOFFH = $FC29
58
+ VSIZOFFL = $FC2A
59
+ VSIZOFFH = $FC2B
60
+ SCBADRL = $FC2C
61
+ SCBADRH = $FC2D
62
+ PROCADRL = $FC2E
63
+ PROCADRH = $FC2F
64
+
65
+ ; Suzy Math
66
+
67
+ MATHD = $FC52
68
+ MATHC = $FC53
69
+ MATHB = $FC54
70
+ MATHA = $FC55
71
+ MATHP = $FC56
72
+ MATHN = $FC57
73
+ MATHH = $FC60
74
+ MATHG = $FC61
75
+ MATHF = $FC62
76
+ MATHE = $FC63
77
+ MATHM = $FC6C
78
+ MATHL = $FC6D
79
+ MATHK = $FC6E
80
+ MATHJ = $FC6F
81
+
82
+ ; Suzy Misc
83
+
84
+ SPRCTL0 = $FC80
85
+ SPRCTL1 = $FC81
86
+ SPRCOLL = $FC82
87
+ SPRINIT = $FC83
88
+ SUZYHREV = $FC88
89
+ SUZYSREV = $FC89
90
+ SUZYBUSEN = $FC90
91
+ SPRGO = $FC91
92
+ SPRSYS = $FC92
93
+ JOYSTICK = $FCB0
94
+ SWITCHES = $FCB1
95
+ RCART0 = $FCB2
96
+ RCART1 = $FCB3
97
+ LEDS = $FCC0
98
+ PARSTATUS = $FCC2
99
+ PARDATA = $FCC3
100
+ HOWIE = $FCC4
101
+
102
+
103
+ ; ***
104
+ ; *** Mikey Addresses
105
+ ; ***
106
+
107
+ ; Mikey Timers
108
+
109
+ TIMER0 = $FD00
110
+ TIMER1 = $FD04
111
+ TIMER2 = $FD08
112
+ TIMER3 = $FD0C
113
+ TIMER4 = $FD10
114
+ TIMER5 = $FD14
115
+ TIMER6 = $FD18
116
+ TIMER7 = $FD1C
117
+ HTIMER = $FD00 ; horizontal line timer (timer 0)
118
+ VTIMER = $FD08 ; vertical blank timer (timer 2)
119
+ STIMER = $FD1C ; sound timer (timer 7)
120
+
121
+ HTIMBKUP = $FD00 ; horizontal line timer (timer 0)
122
+ HTIMCTLA = $FD01
123
+ HTIMCNT = $FD02
124
+ HTIMCTLB = $FD03
125
+ VTIMBKUP = $FD08 ; vertical blank timer (timer 2)
126
+ VTIMCTLA = $FD09
127
+ VTIMCNT = $FD0A
128
+ VTIMCTLB = $FD0B
129
+ BAUDBKUP = $FD10 ; serial timer (timer 4)
130
+ STIMBKUP = $FD1C ; sound timer (timer 7)
131
+ STIMCTLA = $FD1D
132
+ STIMCNT = $FD1E
133
+ STIMCTLB = $FD1F
134
+
135
+ TIM0BKUP = $FD00
136
+ TIM0CTLA = $FD01
137
+ TIM0CNT = $FD02
138
+ TIM0CTLB = $FD03
139
+ TIM1BKUP = $FD04
140
+ TIM1CTLA = $FD05
141
+ TIM1CNT = $FD06
142
+ TIM1CTLB = $FD07
143
+ TIM2BKUP = $FD08
144
+ TIM2CTLA = $FD09
145
+ TIM2CNT = $FD0A
146
+ TIM2CTLB = $FD0B
147
+ TIM3BKUP = $FD0C
148
+ TIM3CTLA = $FD0D
149
+ TIM3CNT = $FD0E
150
+ TIM3CTLB = $FD0F
151
+ TIM4BKUP = $FD10
152
+ TIM4CTLA = $FD11
153
+ TIM4CNT = $FD12
154
+ TIM4CTLB = $FD13
155
+ TIM5BKUP = $FD14
156
+ TIM5CTLA = $FD15
157
+ TIM5CNT = $FD16
158
+ TIM5CTLB = $FD17
159
+ TIM6BKUP = $FD18
160
+ TIM6CTLA = $FD19
161
+ TIM6CNT = $FD1A
162
+ TIM6CTLB = $FD1B
163
+ TIM7BKUP = $FD1C
164
+ TIM7CTLA = $FD1D
165
+ TIM7CNT = $FD1E
166
+ TIM7CTLB = $FD1F
167
+
168
+ ; Mikey Audio
169
+
170
+ AUDIO0 = $FD20 ; audio channel 0
171
+ AUDIO1 = $FD28 ; audio channel 1
172
+ AUDIO2 = $FD30 ; audio channel 2
173
+ AUDIO3 = $FD38 ; audio channel 3
174
+
175
+ AUD0VOL = $FD20
176
+ AUD0FEED = $FD21
177
+ AUD0OUT = $FD22
178
+ AUD0SHIFT = $FD23
179
+ AUD0BKUP = $FD24
180
+ AUD0CTLA = $FD25
181
+ AUD0CNT = $FD26
182
+ AUD0CTLB = $FD27
183
+ AUD1VOL = $FD28
184
+ AUD1FEED = $FD29
185
+ AUD1OUT = $FD2A
186
+ AUD1SHIFT = $FD2B
187
+ AUD1BKUP = $FD2C
188
+ AUD1CTLA = $FD2D
189
+ AUD1CNT = $FD2E
190
+ AUD1CTLB = $FD2F
191
+ AUD2VOL = $FD30
192
+ AUD2FEED = $FD31
193
+ AUD2OUT = $FD32
194
+ AUD2SHIFT = $FD33
195
+ AUD2BKUP = $FD34
196
+ AUD2CTLA = $FD35
197
+ AUD2CNT = $FD36
198
+ AUD2CTLB = $FD37
199
+ AUD3VOL = $FD38
200
+ AUD3FEED = $FD39
201
+ AUD3OUT = $FD3A
202
+ AUD3SHIFT = $FD3B
203
+ AUD3BKUP = $FD3C
204
+ AUD3CTLA = $FD3D
205
+ AUD3CNT = $FD3E
206
+ AUD3CTLB = $FD3F
207
+ MSTEREO = $FD50
208
+
209
+ ; Mikey Misc
210
+
211
+ ; Interrupt bits in INTRST and INTSET
212
+ TIMER0_INTERRUPT = $01
213
+ TIMER1_INTERRUPT = $02
214
+ TIMER2_INTERRUPT = $04
215
+ TIMER3_INTERRUPT = $08
216
+ TIMER4_INTERRUPT = $10
217
+ TIMER5_INTERRUPT = $20
218
+ TIMER6_INTERRUPT = $40
219
+ TIMER7_INTERRUPT = $80
220
+
221
+ HBL_INTERRUPT = TIMER0_INTERRUPT
222
+ VBL_INTERRUPT = TIMER2_INTERRUPT
223
+ SERIAL_INTERRUPT = TIMER4_INTERRUPT
224
+ SND_INTERRUPT = TIMER7_INTERRUPT
225
+
226
+ INTRST = $FD80
227
+ INTSET = $FD81
228
+ MAGRDY0 = $FD84
229
+ MAGRDY1 = $FD85
230
+ AUDIN = $FD86
231
+ SYSCTL1 = $FD87
232
+ MIKEYHREV = $FD88
233
+ MIKEYSREV = $FD89
234
+ IODIR = $FD8A
235
+ IODAT = $FD8B
236
+ TxIntEnable = %10000000
237
+ RxIntEnable = %01000000
238
+ TxParEnable = %00010000
239
+ ResetErr = %00001000
240
+ TxOpenColl = %00000100
241
+ TxBreak = %00000010
242
+ ParEven = %00000001
243
+ TxReady = %10000000
244
+ RxReady = %01000000
245
+ TxEmpty = %00100000
246
+ RxParityErr = %00010000
247
+ RxOverrun = %00001000
248
+ RxFrameErr = %00000100
249
+ RxBreak = %00000010
250
+ ParityBit = %00000001
251
+ SERCTL = $FD8C
252
+ SERDAT = $FD8D
253
+ SDONEACK = $FD90
254
+ CPUSLEEP = $FD91
255
+ DISPCTL = $FD92
256
+ PBKUP = $FD93
257
+ DISPADRL = $FD94
258
+ DISPADRH = $FD95
259
+ MTEST0 = $FD9C
260
+ MTEST1 = $FD9D
261
+ MTEST2 = $FD9E
262
+ PALETTE = $FDA0 ; hardware rgb palette
263
+ GCOLMAP = $FDA0 ; hardware rgb palette (green)
264
+ RBCOLMAP = $FDB0 ; hardware rgb palette (red-blue)
265
+
266
+
267
+ ; ***
268
+ ; *** Misc Hardware + 6502 vectors
269
+ ; ***
270
+
271
+ MAPCTL = $FFF9
272
+ VECTORS = $FFFB
273
+ INTVECTL = $FFFE
274
+ INTVECTH = $FFFF
275
+ RSTVECTL = $FFFC
276
+ RSTVECTH = $FFFD
277
+ NMIVECTL = $FFFA
278
+ NMIVECTH = $FFFB
279
+
@@ -0,0 +1,78 @@
1
+ ;*****************************************************************************/
2
+ ;* */
3
+ ;* modload.inc */
4
+ ;* */
5
+ ;* o65 module loader interface for cc65 */
6
+ ;* */
7
+ ;* */
8
+ ;* */
9
+ ;* (C) 2002 Ullrich von Bassewitz */
10
+ ;* Wacholderweg 14 */
11
+ ;* D-70597 Stuttgart */
12
+ ;* EMail: uz@musoftware.de */
13
+ ;* */
14
+ ;* */
15
+ ;* This software is provided 'as-is', without any expressed or implied */
16
+ ;* warranty. In no event will the authors be held liable for any damages */
17
+ ;* arising from the use of this software. */
18
+ ;* */
19
+ ;* Permission is granted to anyone to use this software for any purpose, */
20
+ ;* including commercial applications, and to alter it and redistribute it */
21
+ ;* freely, subject to the following restrictions: */
22
+ ;* */
23
+ ;* 1. The origin of this software must not be misrepresented; you must not */
24
+ ;* claim that you wrote the original software. If you use this software */
25
+ ;* in a product, an acknowledgment in the product documentation would be */
26
+ ;* appreciated but is not required. */
27
+ ;* 2. Altered source versions must be plainly marked as such, and must not */
28
+ ;* be misrepresented as being the original software. */
29
+ ;* 3. This notice may not be removed or altered from any source */
30
+ ;* distribution. */
31
+ ;* */
32
+ ;*****************************************************************************/
33
+
34
+
35
+
36
+ ; Exports structures and functions to load relocatable o65 modules at
37
+ ; runtime.
38
+
39
+
40
+
41
+ ; Offsets for the mod_ctrl struct. This struct is passed to the module loader.
42
+ ; It contains stuff, the loader needs to work, and another area where the
43
+ ; loader will place informational data if it was successful. You will have to
44
+ ; check the return code of mod_load before accessing any of these additional
45
+ ; struct members.
46
+ .struct MOD_CTRL
47
+ READ .addr
48
+ CALLERDATA .word
49
+ MODULE .addr ; Pointer to module data
50
+ MODULE_SIZE .word ; Total size of loaded module
51
+ MODULE_ID .word
52
+ .endstruct
53
+
54
+ ; unsigned char mod_load (struct mod_ctrl* ctrl);
55
+ ; /* Load a module into memory and relocate it. The function will return an
56
+ ; * error code (see below). If MLOAD_OK is returned, the outgoing fields in
57
+ ; * the passed mod_ctrl struct contain information about the module just
58
+ ; * loaded.
59
+ ; */
60
+ .global _mod_load
61
+
62
+ ; void mod_free (void* module);
63
+ ; /* Free a loaded module. Note: The given pointer is the pointer to the
64
+ ; * module memory, not a pointer to a control structure.
65
+ ; */
66
+ .global _mod_free
67
+
68
+ ; Errors
69
+ .enum
70
+ MLOAD_OK ; Module load successful
71
+ MLOAD_ERR_READ ; Read error
72
+ MLOAD_ERR_HDR ; Header error
73
+ MLOAD_ERR_OS ; Wrong OS
74
+ MLOAD_ERR_FMT ; Data format error
75
+ MLOAD_ERR_MEM ; Not enough memory
76
+ .endenum
77
+
78
+