burn 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,509 @@
1
+ ; opcodes.inc
2
+ ; ca65 6502 - opcode definitions, mainly for self modifying code
3
+ ;
4
+ ; Christian Kr�ger, latest change: 18-Sep-2010
5
+ ;
6
+ ; This software is provided 'as-is', without any expressed or implied
7
+ ; warranty. In no event will the authors be held liable for any damages
8
+ ; arising from the use of this software.
9
+ ;
10
+ ; Permission is granted to anyone to use this software for any purpose,
11
+ ; including commercial applications, and to alter it and redistribute it
12
+ ; freely, subject to the following restrictions:
13
+ ;
14
+ ; 1. The origin of this software must not be misrepresented; you must not
15
+ ; claim that you wrote the original software. If you use this software
16
+ ; in a product, an acknowledgment in the product documentation would be
17
+ ; appreciated but is not required.
18
+ ; 2. Altered source versions must be plainly marked as such, and must not
19
+ ; be misrepresented as being the original software.
20
+ ; 3. This notice may not be removed or altered from any source
21
+ ; distribution.
22
+ ;
23
+
24
+ ; Opcode-Table
25
+ ; ------------
26
+ ; Post fix explanation:
27
+ ; imm = #$00
28
+ ; zp = $00
29
+ ; zpx = $00,X
30
+ ; zpy = $00,Y
31
+ ; izp = ($00)
32
+ ; izx = ($00,X)
33
+ ; izy = ($00),Y
34
+ ; abs = $0000
35
+ ; abx = $0000,X
36
+ ; aby = $0000,Y
37
+ ; ind = ($0000)
38
+ ; iax = ($0000,X)
39
+ ; rel = $0000 (PC-relative) (supressed here)
40
+
41
+ .macpack cpu
42
+
43
+ OPC_BRK = $00
44
+ OPC_ORA_izx = $01
45
+ OPC_ORA_zp = $05
46
+ OPC_ASL_zp = $06
47
+ OPC_PHP = $08
48
+ OPC_ORA_imm = $09
49
+ OPC_ASL = $0A
50
+ OPC_ORA_abs = $0D
51
+ OPC_ASL_abs = $0E
52
+
53
+ OPC_BPL = $10
54
+ OPC_ORA_izy = $11
55
+ OPC_ORA_zpx = $15
56
+ OPC_ASL_zpx = $16
57
+ OPC_CLC = $18
58
+ OPC_ORA_aby = $19
59
+ OPC_ORA_abx = $1D
60
+ OPC_ASL_abx = $1E
61
+
62
+ OPC_JSR_abs = $20
63
+ OPC_AND_izx = $21
64
+ OPC_BIT_zp = $24
65
+ OPC_AND_zp = $25
66
+ OPC_ROL_zp = $26
67
+ OPC_PLP = $28
68
+ OPC_AND_imm = $29
69
+ OPC_ROL = $2A
70
+ OPC_BIT_abs = $2C
71
+ OPC_AND_abs = $2D
72
+ OPC_ROL_abs = $2E
73
+
74
+ OPC_BMI = $30
75
+ OPC_AND_izy = $31
76
+ OPC_AND_zpx = $35
77
+ OPC_ROL_zpx = $36
78
+ OPC_SEC = $38
79
+ OPC_AND_aby = $39
80
+ OPC_AND_abx = $3D
81
+ OPC_ROL_abx = $3E
82
+
83
+
84
+ OPC_RTI = $40
85
+ OPC_EOR_izx = $41
86
+ OPC_EOR_zp = $45
87
+ OPC_LSR_zp = $46
88
+ OPC_PHA = $48
89
+ OPC_EOR_imm = $49
90
+ OPC_LSR = $4A
91
+ OPC_JMP_abs = $4C
92
+ OPC_EOR_abs = $4D
93
+ OPC_LSR_abs = $4E
94
+
95
+ OPC_BVC = $50
96
+ OPC_EOR_izy = $51
97
+ OPC_EOR_zpx = $55
98
+ OPC_LSR_zpx = $56
99
+ OPC_CLI = $58
100
+ OPC_EOR_aby = $59
101
+ OPC_EOR_abx = $5D
102
+ OPC_LSR_abx = $5E
103
+
104
+ OPC_RTS = $60
105
+ OPC_ADC_izx = $61
106
+ OPC_ADC_zp = $65
107
+ OPC_ROR_zp = $66
108
+ OPC_PLA = $68
109
+ OPC_ADC_imm = $69
110
+ OPC_ROR = $6A
111
+ OPC_JMP_ind = $6C
112
+ OPC_ADC_abs = $6D
113
+ OPC_ROR_abs = $6E
114
+
115
+ OPC_BVS = $70
116
+ OPC_ADC_izy = $71
117
+ OPC_ADC_zpx = $75
118
+ OPC_ROR_zpx = $76
119
+ OPC_SEI = $78
120
+ OPC_ADC_aby = $79
121
+ OPC_ADC_abx = $7D
122
+ OPC_ROR_abx = $7E
123
+
124
+ OPC_STA_izx = $81
125
+ OPC_STY_zp = $84
126
+ OPC_STA_zp = $85
127
+ OPC_STX_zp = $86
128
+ OPC_DEY = $88
129
+ OPC_TXA = $8A
130
+ OPC_STY_abs = $8C
131
+ OPC_STA_abs = $8D
132
+ OPC_STX_abs = $8E
133
+
134
+ OPC_BCC = $90
135
+ OPC_STA_izy = $91
136
+ OPC_STY_zpx = $94
137
+ OPC_STA_zpx = $95
138
+ OPC_STX_zpy = $96
139
+ OPC_TYA = $98
140
+ OPC_STA_aby = $99
141
+ OPC_TXS = $9A
142
+ OPC_STA_abx = $9D
143
+
144
+ OPC_LDY_imm = $A0
145
+ OPC_LDA_izx = $A1
146
+ OPC_LDX_imm = $A2
147
+ OPC_LDY_zp = $A4
148
+ OPC_LDA_zp = $A5
149
+ OPC_LDX_zp = $A6
150
+ OPC_TAY = $A8
151
+ OPC_LDA_imm = $A9
152
+ OPC_TAX = $AA
153
+ OPC_LDY_abs = $AC
154
+ OPC_LDA_abs = $AD
155
+ OPC_LDX_abs = $AE
156
+
157
+ OPC_BCS = $B0
158
+ OPC_LDA_izy = $B1
159
+ OPC_LDY_zpx = $B4
160
+ OPC_LDA_zpx = $B5
161
+ OPC_LDX_zpy = $B6
162
+ OPC_CLV = $B8
163
+ OPC_LDA_aby = $B9
164
+ OPC_TSX = $BA
165
+ OPC_LDY_abx = $BC
166
+ OPC_LDA_abx = $BD
167
+ OPC_LDX_aby = $BE
168
+
169
+ OPC_CPY_imm = $C0
170
+ OPC_CMP_izx = $C1
171
+ OPC_CPY_zp = $C4
172
+ OPC_CMP_zp = $C5
173
+ OPC_DEC_zp = $C6
174
+ OPC_INY = $C8
175
+ OPC_CMP_imm = $C9
176
+ OPC_DEX = $CA
177
+ OPC_CPY_abs = $CC
178
+ OPC_CMP_abs = $CD
179
+ OPC_DEC_abs = $CE
180
+
181
+ OPC_BNE = $D0
182
+ OPC_CMP_izy = $D1
183
+ OPC_CMP_zpx = $D5
184
+ OPC_DEC_zpx = $D6
185
+ OPC_CLD = $D8
186
+ OPC_CMP_aby = $D9
187
+ OPC_CMP_abx = $DD
188
+ OPC_DEC_abx = $DE
189
+
190
+ OPC_CPX_imm = $E0
191
+ OPC_SBC_izx = $E1
192
+ OPC_CPX_zp = $E4
193
+ OPC_SBC_zp = $E5
194
+ OPC_INC_zp = $E6
195
+ OPC_INX = $E8
196
+ OPC_SBC_imm = $E9
197
+ OPC_NOP = $EA
198
+ OPC_CPX_abs = $EC
199
+ OPC_SBC_abs = $ED
200
+ OPC_INC_abs = $EE
201
+
202
+
203
+ OPC_BEQ = $F0
204
+ OPC_SBC_izy = $F1
205
+ OPC_SBC_zpx = $F5
206
+ OPC_INC_zpx = $F6
207
+ OPC_SED = $F8
208
+ OPC_SBC_aby = $F9
209
+ OPC_SBC_abx = $FD
210
+ OPC_INC_abx = $FE
211
+
212
+
213
+ .if (.cpu .bitand ::CPU_ISET_65SC02)
214
+
215
+ ; OPC_NOP = $02 ; doublet
216
+ ; OPC_NOP = $03 ; doublet
217
+ OPC_TSB_zp = $04
218
+ ; OPC_NOP = $0B ; doublet
219
+ OPC_TSB_abs = $0C
220
+
221
+ OPC_ORA_izp = $12
222
+ ; OPC_NOP = $13 ; doublet
223
+ OPC_TRB_zp = $14
224
+ OPC_INC = $1A
225
+ ; OPC_NOP = $1B ; doublet
226
+ OPC_TRB_abs = $1C
227
+
228
+ ; OPC_NOP = $22 ; doublet
229
+ ; OPC_NOP = $23 ; doublet
230
+ ; OPC_NOP = $2B ; doublet
231
+
232
+ OPC_AND_izp = $32
233
+ ; OPC_NOP = $33 ; doublet
234
+ OPC_BIT_zpx = $34
235
+ OPC_DEC = $3A
236
+ ; OPC_NOP = $3B ; doublet
237
+ OPC_BIT_abx = $3C
238
+
239
+ ; OPC_NOP = $42 ; doublet
240
+ ; OPC_NOP = $43 ; doublet
241
+ ; OPC_NOP = $44 ; doublet
242
+ ; OPC_NOP = $4B ; doublet
243
+
244
+ OPC_EOR_izp = $52
245
+ ; OPC_NOP = $53 ; doublet
246
+ ; OPC_NOP = $54 ; doublet
247
+ ; OPC_NOP = $5A ; doublet
248
+ ; OPC_NOP = $5B ; doublet
249
+ OPC_EOR_abx = $5C
250
+
251
+ ; OPC_NOP = $62 ; doublet
252
+ ; OPC_NOP = $63 ; doublet
253
+ OPC_STZ_zp = $64
254
+ ; OPC_NOP = $6B ; doublet
255
+
256
+ OPC_ADC_izp = $72
257
+ ; OPC_NOP = $73 ; doublet
258
+ OPC_STZ_zpx = $74
259
+ OPC_PLY = $7A
260
+ ; OPC_NOP = $7B ; doublet
261
+ OPC_JMP_iax = $7C
262
+
263
+ OPC_BRA = $80
264
+ ; OPC_NOP = $82 ; doublet
265
+ ; OPC_NOP = $83 ; doublet
266
+ OPC_BIT_imm = $89
267
+ ; OPC_NOP = $8B ; doublet
268
+
269
+ OPC_STA_izp = $92
270
+ ; OPC_NOP = $93 ; doublet
271
+ ; OPC_NOP = $9B ; doublet
272
+ OPC_STZ_abs = $9C
273
+ OPC_STZ_abx = $9E
274
+
275
+ ; OPC_NOP = $A3 ; doublet
276
+ ; OPC_NOP = $AB ; doublet
277
+
278
+ OPC_LDA_izp = $B2
279
+ ; OPC_NOP = $B3 ; doublet
280
+ ; OPC_NOP = $BB ; doublet
281
+
282
+ ; OPC_NOP = $C2 ; doublet
283
+ ; OPC_NOP = $C3 ; doublet
284
+ ; OPC_NOP = $CB ; doublet
285
+
286
+ OPC_CMP_izp = $D2
287
+ ; OPC_NOP = $D3 ; doublet
288
+ ; OPC_NOP = $D4 ; doublet
289
+ OPC_PHX = $DA
290
+ ; OPC_NOP = $DB ; doublet
291
+ ; OPC_NOP = $DC ; doublet
292
+
293
+ ; OPC_NOP = $E2 ; doublet
294
+ ; OPC_NOP = $E3 ; doublet
295
+ ; OPC_NOP = $EB ; doublet
296
+
297
+ OPC_SBC_izp = $F2
298
+ ; OPC_NOP = $F3 ; doublet
299
+ ; OPC_NOP = $F4 ; doublet
300
+ OPC_PLX = $FA
301
+ ; OPC_NOP = $FB ; doublet
302
+ ; OPC_NOP = $FC ; doublet
303
+
304
+
305
+ .if (.cpu .bitand ::CPU_ISET_65C02)
306
+
307
+ ; bit instructions for 65C02
308
+
309
+ OPC_RMB0 = $07
310
+ OPC_RMB1 = $17
311
+ OPC_RMB2 = $27
312
+ OPC_RMB3 = $37
313
+ OPC_RMB4 = $47
314
+ OPC_RMB5 = $57
315
+ OPC_RMB6 = $67
316
+ OPC_RMB7 = $77
317
+
318
+ OPC_SMB0 = $87
319
+ OPC_SMB1 = $97
320
+ OPC_SMB2 = $A7
321
+ OPC_SMB3 = $B7
322
+ OPC_SMB4 = $C7
323
+ OPC_SMB5 = $D7
324
+ OPC_SMB6 = $E7
325
+ OPC_SMB7 = $F7
326
+
327
+ OPC_BBR0 = $0F
328
+ OPC_BBR1 = $1F
329
+ OPC_BBR2 = $2F
330
+ OPC_BBR3 = $3F
331
+ OPC_BBR4 = $4F
332
+ OPC_BBR5 = $5F
333
+ OPC_BBR6 = $6F
334
+ OPC_BBR7 = $7F
335
+
336
+ OPC_BBS0 = $8F
337
+ OPC_BBS1 = $9F
338
+ OPC_BBS2 = $AF
339
+ OPC_BBS3 = $BF
340
+ OPC_BBS4 = $CF
341
+ OPC_BBS5 = $DF
342
+ OPC_BBS6 = $EF
343
+ OPC_BBS7 = $FF
344
+
345
+ .else
346
+
347
+ ; no bit instructions for 65SC02
348
+
349
+ ; OPC_NOP = $07 ; doublet
350
+ ; OPC_NOP = $17 ; doublet
351
+ ; OPC_NOP = $27 ; doublet
352
+ ; OPC_NOP = $37 ; doublet
353
+ ; OPC_NOP = $47 ; doublet
354
+ ; OPC_NOP = $57 ; doublet
355
+ ; OPC_NOP = $67 ; doublet
356
+ ; OPC_NOP = $77 ; doublet
357
+ ; OPC_NOP = $87 ; doublet
358
+ ; OPC_NOP = $97 ; doublet
359
+ ; OPC_NOP = $A7 ; doublet
360
+ ; OPC_NOP = $B7 ; doublet
361
+ ; OPC_NOP = $C7 ; doublet
362
+ ; OPC_NOP = $D7 ; doublet
363
+ ; OPC_NOP = $E7 ; doublet
364
+ ; OPC_NOP = $F7 ; doublet
365
+ ; OPC_NOP = $0F ; doublet
366
+ ; OPC_NOP = $1F ; doublet
367
+ ; OPC_NOP = $2F ; doublet
368
+ ; OPC_NOP = $3F ; doublet
369
+ ; OPC_NOP = $4F ; doublet
370
+ ; OPC_NOP = $5F ; doublet
371
+ ; OPC_NOP = $6F ; doublet
372
+ ; OPC_NOP = $7F ; doublet
373
+ ; OPC_NOP = $8F ; doublet
374
+ ; OPC_NOP = $9F ; doublet
375
+ ; OPC_NOP = $AF ; doublet
376
+ ; OPC_NOP = $BF ; doublet
377
+ ; OPC_NOP = $CF ; doublet
378
+ ; OPC_NOP = $DF ; doublet
379
+ ; OPC_NOP = $EF ; doublet
380
+ ; OPC_NOP = $FF ; doublet
381
+
382
+ .endif
383
+
384
+ .elseif (.cpu .bitand ::CPU_ISET_6502X)
385
+
386
+ ; stable, undocumented opcodes
387
+
388
+ ; OPC_KIL = $02 ; unstable
389
+ OPC_SLO_izx = $03
390
+ OPC_NOP_zp = $04
391
+ OPC_SLO_zp = $07
392
+ OPC_ANC_imm = $0B
393
+ OPC_NOP_abs = $0C
394
+ OPC_SLO_abs = $0F
395
+
396
+ ; OPC_KIL = $12 ; unstable
397
+ OPC_SLO_izy = $13
398
+ OPC_NOP_zpx = $14
399
+ OPC_SLO_zpx = $17
400
+ ;OPC_NOP = $1A
401
+ OPC_SLO_aby = $1B
402
+ OPC_NOP_abx = $1C
403
+ OPC_SLO_abx = $1F
404
+
405
+ ; OPC_KIL = $22 ; unstable
406
+ OPC_RLA_izx = $23
407
+ OPC_RLA_zp = $27
408
+ OPC_ANC_imm = $2B
409
+ OPC_RLA_abs = $2F
410
+
411
+ ; OPC_KIL = $32 ; unstable
412
+ OPC_RLA_izy = $33
413
+ OPC_NOP_zpx = $34
414
+ OPC_RLA_zpx = $37
415
+ ; OPC_NOP = $3A ; doublet
416
+ OPC_RLA_aby = $3B
417
+ OPC_NOP_abx = $3C
418
+ OPC_RLA_abx = $3F
419
+
420
+ ; OPC_KIL = $42 ; unstable
421
+ OPC_SRE_izx = $43
422
+ OPC_NOP_zp = $44
423
+ OPC_SRE_zp = $47
424
+ OPC_ALR_imm = $4B
425
+ OPC_SRE_abs = $4F
426
+
427
+ ; OPC_KIL = $52 ; unstable
428
+ OPC_SRE_izy = $53
429
+ OPC_NOP_zpx = $54
430
+ OPC_SRE_zpx = $57
431
+ ; OPC_NOP = $5A ; doublet
432
+ OPC_SRE_aby = $5B
433
+ OPC_NOP_abx = $5C
434
+ OPC_SRE_abx = $5F
435
+
436
+ ; OPC_KIL = $62
437
+ OPC_RRA_izx = $63
438
+ OPC_NOP_zp = $64
439
+ OPC_RRA_zp = $67
440
+ OPC_ARR_imm = $6B
441
+ OPC_RRA_abs = $6F
442
+
443
+ ; OPC_KIL = $72
444
+ OPC_RRA_izy = $73
445
+ OPC_NOP_zpx = $74
446
+ OPC_RRA_zpx = $77
447
+ ; OPC_NOP = $7A ; doublet
448
+ OPC_RRA_aby = $7B
449
+ OPC_NOP_abx = $7C
450
+ OPC_RRA_abx = $7F
451
+
452
+ OPC_NOP_imm = $80
453
+ ; OPC_NOP_imm = $82 ; doublet
454
+ OPC_SAX_izx = $83
455
+ OPC_SAX_zp = $87
456
+ ; OPC_NOP_imm = $89 ; doublet
457
+ ; OPC_XAA = $8B ; unstable
458
+ OPC_SAX_abs = $8F
459
+
460
+ ; OPC_KIL = $92 ; unstable
461
+ ; OPC_AHX_izy = $93 ; unstable
462
+ OPC_SAX_zpy = $97
463
+ ; OPC_TAS_aby = $9B ; unstable
464
+ ; OPC_SHY_abx = $9C ; unstable
465
+ ; OPC_SHX_aby = $9E ; unstable
466
+ ; OPC_AHX_aby = $9F ; unstable
467
+
468
+ OPC_LAX_izx = $A3
469
+ OPC_LAX_zp = $A7
470
+ ; OPC_LAX_imm = $AB ; unstable
471
+ OPC_LAX_abs = $AF
472
+
473
+ ; OPC_KIL = $B2 ; unstable
474
+ OPC_LAX_izy = $B3
475
+ OPC_LAX_zpy = $B7
476
+ OPC_LAS_aby = $BB
477
+ OPC_LAX_aby = $BF
478
+
479
+ ; OPC_NOP_imm = $C2 ; doublet
480
+ OPC_DCP_izx = $C3
481
+ OPC_DCP_zp = $C7
482
+ OPC_AXS_imm = $CB
483
+ OPC_DCP_abs = $CF
484
+
485
+ ; OPC_KIL = $D2 ; unstable
486
+ OPC_DCP_izy = $D3
487
+ OPC_NOP_zpx = $D4
488
+ OPC_DCP_zpx = $D7
489
+ OPC_NOP_DA = $DA
490
+ OPC_DCP_aby = $DB
491
+ OPC_NOP_abx = $DC
492
+ OPC_DCP_abx = $DF
493
+
494
+ ; OPC_NOP_imm = $E2 ; doublet
495
+ OPC_ISC_izx = $E3
496
+ OPC_ISC_zp = $E7
497
+ ; OPC_SBC_imm = $EB ; doublet
498
+ OPC_ISC_abs = $EF
499
+
500
+ ; OPC_KIL = $F2 ; unstable
501
+ OPC_ISC_izy = $F3
502
+ OPC_NOP_zpx = $F4
503
+ OPC_ISC_zpx = $F7
504
+ OPC_NOP_FA = $FA
505
+ OPC_ISC_aby = $FB
506
+ OPC_NOP_abx = $FC
507
+ OPC_ISC_abx = $FF
508
+
509
+ .endif
@@ -0,0 +1,54 @@
1
+ ;
2
+ ; PET generic definitions.
3
+ ;
4
+
5
+
6
+ ; ---------------------------------------------------------------------------
7
+ ; Zero page, Commodore stuff
8
+
9
+ MEMSIZE := $34 ; Size of memory installed
10
+ TIME := $8D ; 60HZ clock
11
+ KEY_COUNT := $9E ; Number of keys in input buffer
12
+ RVS := $9F ; Reverse flag
13
+ CURS_FLAG := $A7 ; 1 = cursor off
14
+ CURS_BLINK := $A8 ; Blink counter
15
+ CURS_CHAR := $A9 ; Character under the cursor
16
+ CURS_STATE := $AA ; Cursor blink state
17
+ SCREEN_PTR := $C4 ; Pointer to current char in text screen
18
+ CURS_X := $C6 ; Cursor column
19
+ FNLEN := $D1 ; Length of filename
20
+ LFN := $D2 ; Current Logical File Number
21
+ SECADR := $D3 ; Secondary address
22
+ DEVNUM := $D4 ; Device number
23
+ SCR_LINELEN := $D5 ; Screen line length
24
+ CURS_Y := $D8 ; Cursor row
25
+ FNADR := $DA ; Pointer to file name
26
+
27
+ KEY_BUF := $26F ; Keyboard buffer
28
+
29
+ ;----------------------------------------------------------------------------
30
+ ; PET ROM type detection
31
+
32
+ PET_DETECT := $FFFB
33
+ PET_2000 = $CA
34
+ PET_3000 = $FC
35
+ PET_4000 = $FD
36
+
37
+
38
+ ;----------------------------------------------------------------------------
39
+ ; Vector and other locations
40
+
41
+ IRQVec := $0090
42
+ BRKVec := $0092
43
+ NMIVec := $0094
44
+
45
+ ; ---------------------------------------------------------------------------
46
+ ; I/O: 6522 VIA2
47
+
48
+ VIA := $E840
49
+ VIA_PRB := $E840
50
+ VIA_PRA := $E841
51
+ VIA_DDRB := $E842
52
+ VIA_DDRA := $E843
53
+
54
+
@@ -0,0 +1,86 @@
1
+ ;
2
+ ; Plus/4 generic definitions.
3
+ ;
4
+
5
+
6
+ ; ---------------------------------------------------------------------------
7
+ ; Zero page, Commodore stuff
8
+
9
+ TMPPTR := $22 ; Temporary ptr used by BASIC
10
+ TIME := $A3 ; 60HZ clock
11
+ FNAM_LEN := $AB ; Length of filename
12
+ LFN := $AC ; Logical file number
13
+ SECADR := $AD ; Secondary address
14
+ DEVNUM := $AE ; Device number
15
+ FNAM := $AF ; Pointer to filename for OPEN
16
+ KEY_COUNT := $EF ; Number of keys in input buffer
17
+ RVS := $C2 ; Reverse flag
18
+ CURS_X := $CA ; Cursor column
19
+ CURS_Y := $CD ; Cursor row
20
+ SCREEN_PTR := $C8 ; Pointer to current char in text screen
21
+ CRAM_PTR := $EA ; Pointer to current char in color RAM
22
+
23
+ BASIC_BUF := $200 ; Location of command-line
24
+ BASIC_BUF_LEN = 89 ; Maximum length of command-line
25
+
26
+ FNBUF := $25E ; Buffer for filename
27
+ FETCH := $494 ; lda (zp),y from RAM
28
+ CHARCOLOR := $53B
29
+ FKEY_COUNT := $55D ; Characters for function key
30
+ FKEY_SPACE := $55F ; Function key definitions
31
+ FKEY_ORIG := $F3D2 ; Original definitions
32
+
33
+ ; ---------------------------------------------------------------------------
34
+ ; Kernal routines
35
+
36
+ ; Direct entries
37
+ CLRSCR := $D88B
38
+ KBDREAD := $D8C1
39
+
40
+ ; ---------------------------------------------------------------------------
41
+ ; Vector and other locations
42
+
43
+ IRQVec := $0314
44
+ BRKVec := $0316
45
+ NMIVec := $0318
46
+
47
+ ; ---------------------------------------------------------------------------
48
+ ; Screen size
49
+
50
+ XSIZE = 40
51
+ YSIZE = 25
52
+
53
+ ; ---------------------------------------------------------------------------
54
+ ; I/O
55
+
56
+ TED_T1LO := $FF00
57
+ TED_T1HI := $FF01
58
+ TED_T2LO := $FF02
59
+ TED_T2HI := $FF03
60
+ TED_T3LO := $FF04
61
+ TED_T4HI := $FF05
62
+ TED_MULTI1 := $FF07
63
+ TED_KBD := $FF08
64
+ TED_CURSHI := $FF0C
65
+ TED_CURSLO := $FF0D
66
+ TED_V1FRQLO := $FF0E
67
+ TED_V2FRQLO := $FF0F
68
+ TED_V2FRQHI := $FF10
69
+ TED_BGCOLOR := $FF15
70
+ TED_COLOR1 := $FF16
71
+ TED_COLOR2 := $FF17
72
+ TED_COLOR3 := $FF18
73
+ TED_BORDERCOLOR := $FF19
74
+ TED_VLINEHI := $FF1C
75
+ TED_VLINELO := $FF1D
76
+ TED_HPOS := $FF1E
77
+ TED_ROMSEL := $FF3E
78
+ TED_RAMSEL := $FF3F
79
+
80
+ ; ---------------------------------------------------------------------------
81
+ ; RAM/ROM selection addresses
82
+
83
+ ENABLE_ROM := TED_ROMSEL
84
+ ENABLE_RAM := TED_RAMSEL
85
+
86
+
@@ -0,0 +1,54 @@
1
+ ;****************************************************************************
2
+ ;* *
3
+ ;* ser-error.inc *
4
+ ;* *
5
+ ;* Serial communication API *
6
+ ;* *
7
+ ;* *
8
+ ;* *
9
+ ;* (C) 2003-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
+ ;------------------------------------------------------------------------------
37
+ ; Error codes
38
+
39
+ .enum
40
+ SER_ERR_OK ; Not an error - relax
41
+ SER_ERR_NO_DRIVER ; No driver available
42
+ SER_ERR_CANNOT_LOAD ; Error loading driver
43
+ SER_ERR_INV_DRIVER ; Invalid driver
44
+ SER_ERR_NO_DEVICE ; Device (hardware) not found
45
+ SER_ERR_BAUD_UNAVAIL ; Baud rate not available
46
+ SER_ERR_NO_DATA ; Nothing to read
47
+ SER_ERR_OVERFLOW ; No room in send buffer
48
+ SER_ERR_INIT_FAILED ; Initialization failed
49
+ SER_ERR_INV_IOCTL ; IOCTL not supported
50
+ SER_ERR_INSTALLED ; A driver is already installed
51
+
52
+ SER_ERR_COUNT ; Special: Number of error codes
53
+ .endenum
54
+