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,182 @@
1
+ ;
2
+ ; Zero page variables and I/O definitions for the CBM 510
3
+ ;
4
+ ; Taken from a kernal disassembly done by myself in 2000/2001.
5
+ ;
6
+ ; Ullrich von Bassewitz, 13.09.2001
7
+
8
+
9
+ ;-----------------------------------------------------------------------------
10
+ ; Zeropage stuff
11
+
12
+ ExecReg = $00
13
+ IndReg = $01
14
+
15
+ ; ---------------------------------------------------------------------------
16
+ ; Screen size
17
+
18
+ XSIZE = 40
19
+ YSIZE = 25
20
+
21
+ ;-----------------------------------------------------------------------------
22
+ ; I/O Definitions
23
+
24
+ ; I/O $d800: VIC
25
+
26
+ VIC_SPR0_X = $00
27
+ VIC_SPR0_Y = $01
28
+ VIC_SPR1_X = $02
29
+ VIC_SPR1_Y = $03
30
+ VIC_SPR2_X = $04
31
+ VIC_SPR2_Y = $05
32
+ VIC_SPR3_X = $06
33
+ VIC_SPR3_Y = $07
34
+ VIC_SPR4_X = $08
35
+ VIC_SPR4_Y = $09
36
+ VIC_SPR5_X = $0A
37
+ VIC_SPR5_Y = $0B
38
+ VIC_SPR6_X = $0C
39
+ VIC_SPR6_Y = $0D
40
+ VIC_SPR7_X = $0E
41
+ VIC_SPR7_Y = $0F
42
+ VIC_SPR_HI_X = $10
43
+ VIC_SPR_ENA = $15
44
+ VIC_SPR_EXP_Y = $17
45
+ VIC_SPR_EXP_X = $1D
46
+ VIC_SPR_MCOLOR = $1C
47
+ VIC_SPR_BG_PRIO = $1B
48
+
49
+ VIC_SPR_MCOLOR0 = $25
50
+ VIC_SPR_MCOLOR1 = $26
51
+
52
+ VIC_SPR0_COLOR = $27
53
+ VIC_SPR1_COLOR = $28
54
+ VIC_SPR2_COLOR = $29
55
+ VIC_SPR3_COLOR = $2A
56
+ VIC_SPR4_COLOR = $2B
57
+ VIC_SPR5_COLOR = $2C
58
+ VIC_SPR6_COLOR = $2D
59
+ VIC_SPR7_COLOR = $2E
60
+
61
+ VIC_CTRL1 = $11
62
+ VIC_CTRL2 = $16
63
+
64
+ VIC_HLINE = $12
65
+
66
+ VIC_VIDEO_ADR = $18
67
+
68
+ VIC_IRR = $19 ; Interrupt request register
69
+ VIC_IMR = $1A ; Interrupt mask register
70
+
71
+ VIC_BORDERCOLOR = $20
72
+ VIC_BG_COLOR0 = $21
73
+ VIC_BG_COLOR1 = $22
74
+ VIC_BG_COLOR2 = $23
75
+ VIC_BG_COLOR3 = $24
76
+
77
+
78
+
79
+ ; I/O $da00: SID 6581
80
+
81
+ SID_S1Lo = $00
82
+ SID_S1Hi = $01
83
+ SID_PB1Lo = $02
84
+ SID_PB1Hi = $03
85
+ SID_Ctl1 = $04
86
+ SID_AD1 = $05
87
+ SID_SUR1 = $06
88
+
89
+ SID_S2Lo = $07
90
+ SID_S2Hi = $08
91
+ SID_PB2Lo = $09
92
+ SID_PB2Hi = $0A
93
+ SID_Ctl2 = $0B
94
+ SID_AD2 = $0C
95
+ SID_SUR2 = $0D
96
+
97
+ SID_S3Lo = $0E
98
+ SID_S3Hi = $0F
99
+ SID_PB3Lo = $10
100
+ SID_PB3Hi = $11
101
+ SID_Ctl3 = $12
102
+ SID_AD3 = $13
103
+ SID_SUR3 = $14
104
+
105
+ SID_FltLo = $15
106
+ SID_FltHi = $16
107
+ SID_FltCtl = $17
108
+ SID_Amp = $18
109
+ SID_ADConv1 = $19
110
+ SID_ADConv2 = $1A
111
+ SID_Noise = $1B
112
+ SID_Read3 = $1C
113
+
114
+
115
+ ; I/O $db00: CIA 6526 Inter Process Communication
116
+ ; I/O $dc00: CIA 6526
117
+
118
+ .struct CIA
119
+ PRA .byte
120
+ PRB .byte
121
+ DDRA .byte
122
+ DDRB .byte
123
+ .union
124
+ .struct
125
+ TALO .byte
126
+ TAHI .byte
127
+ .endstruct
128
+ TA .word
129
+ .endunion
130
+ .union
131
+ .struct
132
+ TBLO .byte
133
+ TBHI .byte
134
+ .endstruct
135
+ TB .word
136
+ .endunion
137
+ TOD10 .byte
138
+ TODSEC .byte
139
+ TODMIN .byte
140
+ TODHR .byte
141
+ SDR .byte
142
+ ICR .byte
143
+ CRA .byte
144
+ CRB .byte
145
+ .endstruct
146
+
147
+
148
+ ; I/O $dd00: ACIA 6551
149
+
150
+ .struct ACIA
151
+ DATA .byte
152
+ STATUS .byte
153
+ CMD .byte
154
+ CTRL .BYTE
155
+ .endstruct
156
+
157
+
158
+ ; I/O $de00: Triport #1 6525
159
+ ; I/O $df00: Triport #2 6525
160
+
161
+ .struct TPI
162
+ PRA .byte
163
+ PRB .byte
164
+ .union
165
+ PRC .byte
166
+ INT .byte
167
+ .endunion
168
+ DDRA .byte
169
+ DDRB .byte
170
+ .union
171
+ DDRC .byte
172
+ IMR .byte
173
+ .endunion
174
+ CR .byte
175
+ AIR .byte
176
+ .endstruct
177
+
178
+
179
+ ; Out video memory address
180
+
181
+ COLOR_RAM = $D400 ; System bank
182
+
@@ -0,0 +1,110 @@
1
+ ;
2
+ ; Zeropage and I/O definitions for the CBM 610
3
+ ;
4
+ ; Taken from a kernal disassembly done by myself in 1987.
5
+ ;
6
+ ; Ullrich von Bassewitz, 28.09.1998
7
+
8
+
9
+ ; ---------------------------------------------------------------------------
10
+ ; Zeropage stuff
11
+
12
+ ExecReg = $00
13
+ IndReg = $01
14
+
15
+ ; ---------------------------------------------------------------------------
16
+ ; Screen size
17
+
18
+ XSIZE = 80
19
+ YSIZE = 25
20
+
21
+ ; ---------------------------------------------------------------------------
22
+ ; I/O definitions
23
+
24
+
25
+ ; I/O $d800: CRTC 6545
26
+
27
+ .struct CRTC
28
+ ADDR .byte
29
+ DATA .byte
30
+ .endstruct
31
+
32
+ ; I/O $db00: CIA 6526 Inter Process Communication
33
+ ;
34
+ ; IPCcia = $db00
35
+
36
+ .struct CIA
37
+ PRA .byte
38
+ PRB .byte
39
+ DDRA .byte
40
+ DDRB .byte
41
+ .union
42
+ .struct
43
+ TALO .byte
44
+ TAHI .byte
45
+ .endstruct
46
+ TA .word
47
+ .endunion
48
+ .union
49
+ .struct
50
+ TBLO .byte
51
+ TBHI .byte
52
+ .endstruct
53
+ TB .word
54
+ .endunion
55
+ TOD10 .byte
56
+ TODSEC .byte
57
+ TODMIN .byte
58
+ TODHR .byte
59
+ SDR .byte
60
+ ICR .byte
61
+ CRA .byte
62
+ CRB .byte
63
+ .endstruct
64
+
65
+
66
+ ; I/O $dc00: CIA 6526
67
+ ;
68
+ ; cia = $dc00
69
+
70
+
71
+
72
+ ; I/O $dd00: ACIA 6551
73
+ ;
74
+ ; acia = $dd00
75
+
76
+ .struct ACIA
77
+ DATA .byte
78
+ STATUS .byte
79
+ CMD .byte
80
+ CTRL .BYTE
81
+ .endstruct
82
+
83
+
84
+ ; I/O $de00: Triport #1 6525
85
+ ;
86
+ ; tpi1 = $de00
87
+
88
+ .struct TPI
89
+ PRA .byte
90
+ PRB .byte
91
+ .union
92
+ PRC .byte
93
+ INT .byte
94
+ .endunion
95
+ DDRA .byte
96
+ DDRB .byte
97
+ .union
98
+ DDRC .byte
99
+ IMR .byte
100
+ .endunion
101
+ CR .byte
102
+ AIR .byte
103
+ .endstruct
104
+
105
+
106
+ ; I/O $df00: Triport #2 6525
107
+
108
+ ; tpi2 = $df00
109
+
110
+
@@ -0,0 +1,34 @@
1
+ ;
2
+ ; Definitions for CBM file types. From cbm.h
3
+ ;
4
+ ; Ullrich von Bassewitz, 2012-06-03
5
+ ;
6
+
7
+ ; Define bitmapped constants for the table entries
8
+
9
+ .enum
10
+ CBM_T_REG = $10 ; Bit set for regular files
11
+ CBM_T_SEQ = $10 ; Sequential file
12
+ CBM_T_PRG = $11 ; Program file
13
+ CBM_T_USR = $12 ; User file
14
+ CBM_T_REL = $13 ; Relative file
15
+ CBM_T_VRP = $14 ; Vorpal fast-loadable format
16
+ CBM_T_DEL = $00 ; Deleted file
17
+ CBM_T_CBM = $01 ; 1581 sub-partition
18
+ CBM_T_DIR = $02 ; IDE64 and CMD sub-directory
19
+ CBM_T_LNK = $03 ; IDE64 soft-link
20
+ CBM_T_OTHER = $04 ; File-type not recognized
21
+ CBM_T_HEADER = $05 ; Disk header / title
22
+ .endenum
23
+
24
+
25
+ ; The following function maps the start character for a file type to
26
+ ; one of the file types above. Note: 'd' will always mapped to CBM_T_DEL.
27
+ ; The calling function has to look at the following character to determine
28
+ ; if the file type is actually CBM_T_DIR.
29
+ ;
30
+ ; unsigned char __fastcall__ _cbm_filetype (unsigned char c);
31
+
32
+ .global __cbm_filetype
33
+
34
+
@@ -0,0 +1,24 @@
1
+
2
+ ; CPU bitmask constants
3
+ CPU_ISET_NONE = $0001
4
+ CPU_ISET_6502 = $0002
5
+ CPU_ISET_6502X = $0004
6
+ CPU_ISET_65SC02 = $0008
7
+ CPU_ISET_65C02 = $0010
8
+ CPU_ISET_65816 = $0020
9
+ CPU_ISET_SUNPLUS = $0040
10
+ CPU_ISET_SWEET16 = $0080
11
+ CPU_ISET_HUC6280 = $0100
12
+
13
+ ; CPU capabilities
14
+ CPU_NONE = CPU_ISET_NONE
15
+ CPU_6502 = CPU_ISET_6502
16
+ CPU_6502X = CPU_ISET_6502|CPU_ISET_6502X
17
+ CPU_65SC02 = CPU_ISET_6502|CPU_ISET_65SC02
18
+ CPU_65C02 = CPU_ISET_6502|CPU_ISET_65SC02|CPU_ISET_65C02
19
+ CPU_65816 = CPU_ISET_6502|CPU_ISET_65SC02|CPU_ISET_65816
20
+ CPU_SUNPLUS = CPU_ISET_SUNPLUS
21
+ CPU_SWEET16 = CPU_ISET_SWEET16
22
+ CPU_HUC6280 = CPU_ISET_6502|CPU_ISET_65SC02|CPU_ISET_65C02|CPU_ISET_HUC6280
23
+
24
+
@@ -0,0 +1,29 @@
1
+ ;
2
+ ; Definitions for the character type tables
3
+ ;
4
+ ; Ullrich von Bassewitz, 08.09.2001
5
+ ;
6
+
7
+ ; Make the __ctype table an exported/imported symbol
8
+
9
+ .global __ctype
10
+
11
+ ; Define bitmapped constants for the table entries
12
+
13
+ CT_NONE = $00 ; Nothing special
14
+ CT_LOWER = $01 ; 0 - Lower case char
15
+ CT_UPPER = $02 ; 1 - Upper case char
16
+ CT_DIGIT = $04 ; 2 - Numeric digit
17
+ CT_XDIGIT = $08 ; 3 - Hex digit (both, lower and upper)
18
+ CT_CTRL = $10 ; 4 - Control character
19
+ CT_SPACE = $20 ; 5 - The space character itself
20
+ CT_OTHER_WS = $40 ; 6 - Other whitespace ('\f', '\n', '\r', '\t' and '\v')
21
+ CT_SPACE_TAB = $80 ; 7 - Space or tab character
22
+
23
+ ; Combined stuff
24
+ CT_ALNUM = (CT_LOWER | CT_UPPER | CT_DIGIT)
25
+ CT_ALPHA = (CT_LOWER | CT_UPPER)
26
+ CT_CTRL_SPACE = (CT_CTRL | CT_SPACE)
27
+ CT_NOT_PUNCT = (CT_SPACE | CT_CTRL | CT_DIGIT | CT_UPPER | CT_LOWER)
28
+
29
+
@@ -0,0 +1,49 @@
1
+ ;/*****************************************************************************/
2
+ ;/* */
3
+ ;/* em-error.inc */
4
+ ;/* */
5
+ ;/* EM error codes */
6
+ ;/* */
7
+ ;/* */
8
+ ;/* */
9
+ ;/* (C) 2002-2012, Ullrich von Bassewitz */
10
+ ;/* Roemerstrasse 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
+ ; Error constants
37
+ .enum
38
+ EM_ERR_OK ; No error
39
+ EM_ERR_NO_DRIVER ; No driver available
40
+ EM_ERR_CANNOT_LOAD ; Error loading driver
41
+ EM_ERR_INV_DRIVER ; Invalid driver
42
+ EM_ERR_NO_DEVICE ; Device (hardware) not found
43
+ EM_ERR_INSTALLED ; A driver is already installed
44
+
45
+ EM_ERR_COUNT ; Special: Number of error messages
46
+ .endenum
47
+
48
+
49
+
@@ -0,0 +1,106 @@
1
+ ;/*****************************************************************************/
2
+ ;/* */
3
+ ;/* em-kernel.inc */
4
+ ;/* */
5
+ ;/* EM kernel interface */
6
+ ;/* */
7
+ ;/* */
8
+ ;/* */
9
+ ;/* (C) 2002-2003 Ullrich von Bassewitz */
10
+ ;/* R�merstrasse 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
+ ; The driver header
38
+
39
+ .struct EMD_HDR
40
+ ID .byte 3 ; Contains 0x65, 0x6d, 0x64 ("emd")
41
+ VERSION .byte 1 ; Interface version
42
+ LIBREF .addr ; Library reference
43
+ JUMPTAB .struct
44
+ INSTALL .addr ; INSTALL routine
45
+ UNINSTALL .addr ; UNINSTALL routine
46
+ PAGECOUNT .addr ; PAGECOUNT routine
47
+ MAP .addr ; MAP routine
48
+ USE .addr ; USE routine
49
+ MAPCLEAN .addr ; MAPCLEAN routine
50
+ COPYFROM .addr ; COPYFROM routine
51
+ COPYTO .addr ; COPYTO routine
52
+ .endstruct
53
+ .endstruct
54
+
55
+ ;------------------------------------------------------------------------------
56
+ ; The EMD API version, stored in EMD_HDR::VERSION
57
+
58
+ EMD_API_VERSION = $01
59
+
60
+ ;------------------------------------------------------------------------------
61
+ ; The asm equivalent to the C em_copy structure
62
+
63
+ .struct EM_COPY
64
+ BUF .addr ; Memory buffer to copy from or to
65
+ OFFS .byte ; Offset into page
66
+ PAGE .word ; Starting page to copy from or to
67
+ COUNT .word ; Number of bytes to copy
68
+ UNUSED .byte ; Make the size 8 bytes
69
+ .endstruct
70
+
71
+ ;------------------------------------------------------------------------------
72
+ ; Variables
73
+
74
+ .global _em_drv ; Pointer to driver
75
+
76
+ ;------------------------------------------------------------------------------
77
+ ; Driver entry points
78
+
79
+ .global emd_install
80
+ .global emd_uninstall
81
+ .global emd_pagecount
82
+ .global emd_map
83
+ .global emd_use
84
+ .global emd_commit
85
+ .global emd_copyfrom
86
+ .global emd_copyto
87
+
88
+ ;------------------------------------------------------------------------------
89
+ ; ASM functions
90
+
91
+ .global em_clear_ptr
92
+
93
+ ;------------------------------------------------------------------------------
94
+ ; C callable functions
95
+
96
+ .global _em_load_driver
97
+ .global _em_unload
98
+ .global _em_install
99
+ .global _em_uninstall
100
+ .global _em_pagecount
101
+ .global _em_map
102
+ .global _em_use
103
+ .global _em_commit
104
+ .global _em_copyfrom
105
+ .global _em_copyto
106
+
@@ -0,0 +1,36 @@
1
+ ;
2
+ ; Ullrich von Bassewitz, 16.05.2000
3
+ ;
4
+
5
+ ; Variables and functions
6
+
7
+ .global __errno, __oserror
8
+ .global __osmaperrno
9
+ .global __seterrno
10
+ .global __directerrno, __mappederrno
11
+
12
+ ; Error codes, must match the values in the C headers
13
+ .enum
14
+ EOK ; No error
15
+ ENOENT ; No such file or directory
16
+ ENOMEM ; Out of memory
17
+ EACCES ; Permission denied
18
+ ENODEV ; No such device
19
+ EMFILE ; Too many open files
20
+ EBUSY ; Device or resource busy
21
+ EINVAL ; Invalid argument
22
+ ENOSPC ; No space left on device
23
+ EEXIST ; File exists
24
+ EAGAIN ; Try again
25
+ EIO ; I/O error
26
+ EINTR ; Interrupted system call
27
+ ENOSYS ; Function not implemented
28
+ ESPIPE ; Illegal seek
29
+ ERANGE ; Range error
30
+ EBADF ; Bad file number
31
+ EUNKNOWN ; Unknown OS specific error - must be last!
32
+
33
+ EMAX = EUNKNOWN ; Highest error code
34
+ .endenum
35
+
36
+
@@ -0,0 +1,21 @@
1
+ ;
2
+ ; Ullrich von Bassewitz, 05.06.1999
3
+ ;
4
+
5
+ ; Predefined file handles
6
+ STDIN_FILENO = 0
7
+ STDOUT_FILENO = 1
8
+ STDERR_FILENO = 2
9
+
10
+ ; File mode constants, must match the values in the C headers
11
+ O_RDONLY = $01
12
+ O_WRONLY = $02
13
+ O_RDWR = $03
14
+ O_CREAT = $10
15
+ O_TRUNC = $20
16
+ O_APPEND = $40
17
+ O_EXCL = $80
18
+
19
+
20
+
21
+
@@ -0,0 +1,55 @@
1
+
2
+ ; add - Add without carry
3
+ .macro add Arg1, Arg2
4
+ clc
5
+ .if .paramcount = 2
6
+ adc Arg1, Arg2
7
+ .else
8
+ adc Arg1
9
+ .endif
10
+ .endmacro
11
+
12
+ ; sub - subtract without borrow
13
+ .macro sub Arg1, Arg2
14
+ sec
15
+ .if .paramcount = 2
16
+ sbc Arg1, Arg2
17
+ .else
18
+ sbc Arg1
19
+ .endif
20
+ .endmacro
21
+
22
+ ; bge - jump if unsigned greater or equal
23
+ .macro bge Arg
24
+ bcs Arg
25
+ .endmacro
26
+
27
+ ; blt - Jump if unsigned less
28
+ .macro blt Arg
29
+ bcc Arg
30
+ .endmacro
31
+
32
+ ; bgt - jump if unsigned greater
33
+ .macro bgt Arg
34
+ .local L
35
+ beq L
36
+ bcs Arg
37
+ L:
38
+ .endmacro
39
+
40
+ ; ble - jump if unsigned less or equal
41
+ .macro ble Arg
42
+ beq Arg
43
+ bcc Arg
44
+ .endmacro
45
+
46
+ ; bnz - jump if not zero
47
+ .macro bnz Arg
48
+ bne Arg
49
+ .endmacro
50
+
51
+ ; bze - jump if zero
52
+ .macro bze Arg
53
+ beq Arg
54
+ .endmacro
55
+
@@ -0,0 +1,22 @@
1
+ ;
2
+ ; get_tv.inc
3
+ ;
4
+ ; Ullrich von Bassewitz, 2004-10-15
5
+ ;
6
+ ; Defines for the get_tv function.
7
+
8
+
9
+
10
+ ; Error codes returned by all functions
11
+ .enum TV
12
+ NTSC
13
+ PAL
14
+ OTHER
15
+ .endenum
16
+
17
+
18
+ ; get_tv function
19
+
20
+ .global _get_tv
21
+
22
+