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,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
+