burn 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +621 -0
- data/README.md +467 -0
- data/Rakefile +1 -0
- data/bin/burn +14 -0
- data/lib/burn/builder.rb +65 -0
- data/lib/burn/cli.rb +187 -0
- data/lib/burn/debug.rb +25 -0
- data/lib/burn/dsl/channel_stream.rb +105 -0
- data/lib/burn/dsl/declare.rb +42 -0
- data/lib/burn/dsl/dsl_base.rb +31 -0
- data/lib/burn/dsl/music.rb +36 -0
- data/lib/burn/dsl/note.rb +125 -0
- data/lib/burn/dsl/scene.rb +278 -0
- data/lib/burn/dsl/sound.rb +30 -0
- data/lib/burn/dsl/sound_effect.rb +91 -0
- data/lib/burn/dsl.rb +8 -0
- data/lib/burn/generator/assembly_music.rb +47 -0
- data/lib/burn/generator/assembly_sound_effect.rb +33 -0
- data/lib/burn/generator/c_source.rb +54 -0
- data/lib/burn/generator/template/mus_template.s +49 -0
- data/lib/burn/generator/template/template.c +88 -0
- data/lib/burn/generator.rb +3 -0
- data/lib/burn/tools/mac/cc65/asminc/_file.inc +27 -0
- data/lib/burn/tools/mac/cc65/asminc/_heap.inc +35 -0
- data/lib/burn/tools/mac/cc65/asminc/apple2.inc +64 -0
- data/lib/burn/tools/mac/cc65/asminc/atari.inc +1175 -0
- data/lib/burn/tools/mac/cc65/asminc/atari.mac +59 -0
- data/lib/burn/tools/mac/cc65/asminc/atmos.inc +110 -0
- data/lib/burn/tools/mac/cc65/asminc/c128.inc +214 -0
- data/lib/burn/tools/mac/cc65/asminc/c16.inc +9 -0
- data/lib/burn/tools/mac/cc65/asminc/c64.inc +212 -0
- data/lib/burn/tools/mac/cc65/asminc/cbm.mac +50 -0
- data/lib/burn/tools/mac/cc65/asminc/cbm510.inc +182 -0
- data/lib/burn/tools/mac/cc65/asminc/cbm610.inc +110 -0
- data/lib/burn/tools/mac/cc65/asminc/cbm_filetype.inc +34 -0
- data/lib/burn/tools/mac/cc65/asminc/cpu.mac +24 -0
- data/lib/burn/tools/mac/cc65/asminc/ctype.inc +29 -0
- data/lib/burn/tools/mac/cc65/asminc/em-error.inc +49 -0
- data/lib/burn/tools/mac/cc65/asminc/em-kernel.inc +106 -0
- data/lib/burn/tools/mac/cc65/asminc/errno.inc +36 -0
- data/lib/burn/tools/mac/cc65/asminc/fcntl.inc +21 -0
- data/lib/burn/tools/mac/cc65/asminc/generic.mac +55 -0
- data/lib/burn/tools/mac/cc65/asminc/get_tv.inc +22 -0
- data/lib/burn/tools/mac/cc65/asminc/joy-error.inc +44 -0
- data/lib/burn/tools/mac/cc65/asminc/joy-kernel.inc +85 -0
- data/lib/burn/tools/mac/cc65/asminc/longbranch.mac +88 -0
- data/lib/burn/tools/mac/cc65/asminc/lynx.inc +279 -0
- data/lib/burn/tools/mac/cc65/asminc/modload.inc +78 -0
- data/lib/burn/tools/mac/cc65/asminc/mouse-kernel.inc +180 -0
- data/lib/burn/tools/mac/cc65/asminc/nes.inc +93 -0
- data/lib/burn/tools/mac/cc65/asminc/o65.inc +150 -0
- data/lib/burn/tools/mac/cc65/asminc/opcodes.inc +509 -0
- data/lib/burn/tools/mac/cc65/asminc/pet.inc +54 -0
- data/lib/burn/tools/mac/cc65/asminc/plus4.inc +86 -0
- data/lib/burn/tools/mac/cc65/asminc/ser-error.inc +54 -0
- data/lib/burn/tools/mac/cc65/asminc/ser-kernel.inc +162 -0
- data/lib/burn/tools/mac/cc65/asminc/signal.inc +57 -0
- data/lib/burn/tools/mac/cc65/asminc/smc.inc +245 -0
- data/lib/burn/tools/mac/cc65/asminc/stdio.inc +70 -0
- data/lib/burn/tools/mac/cc65/asminc/supervision.inc +76 -0
- data/lib/burn/tools/mac/cc65/asminc/tgi-error.inc +52 -0
- data/lib/burn/tools/mac/cc65/asminc/tgi-kernel.inc +234 -0
- data/lib/burn/tools/mac/cc65/asminc/tgi-vectorfont.inc +70 -0
- data/lib/burn/tools/mac/cc65/asminc/time.inc +59 -0
- data/lib/burn/tools/mac/cc65/asminc/utsname.inc +46 -0
- data/lib/burn/tools/mac/cc65/asminc/vic20.inc +75 -0
- data/lib/burn/tools/mac/cc65/asminc/zeropage.inc +26 -0
- data/lib/burn/tools/mac/cc65/bin/ca65 +0 -0
- data/lib/burn/tools/mac/cc65/bin/cc65 +0 -0
- data/lib/burn/tools/mac/cc65/bin/ld65 +0 -0
- data/lib/burn/tools/other/cc65/asminc/_file.inc +27 -0
- data/lib/burn/tools/other/cc65/asminc/_heap.inc +35 -0
- data/lib/burn/tools/other/cc65/asminc/apple2.inc +64 -0
- data/lib/burn/tools/other/cc65/asminc/atari.inc +1175 -0
- data/lib/burn/tools/other/cc65/asminc/atari.mac +59 -0
- data/lib/burn/tools/other/cc65/asminc/atmos.inc +110 -0
- data/lib/burn/tools/other/cc65/asminc/c128.inc +214 -0
- data/lib/burn/tools/other/cc65/asminc/c16.inc +9 -0
- data/lib/burn/tools/other/cc65/asminc/c64.inc +212 -0
- data/lib/burn/tools/other/cc65/asminc/cbm.mac +50 -0
- data/lib/burn/tools/other/cc65/asminc/cbm510.inc +182 -0
- data/lib/burn/tools/other/cc65/asminc/cbm610.inc +110 -0
- data/lib/burn/tools/other/cc65/asminc/cbm_filetype.inc +34 -0
- data/lib/burn/tools/other/cc65/asminc/cpu.mac +24 -0
- data/lib/burn/tools/other/cc65/asminc/ctype.inc +29 -0
- data/lib/burn/tools/other/cc65/asminc/em-error.inc +49 -0
- data/lib/burn/tools/other/cc65/asminc/em-kernel.inc +106 -0
- data/lib/burn/tools/other/cc65/asminc/errno.inc +36 -0
- data/lib/burn/tools/other/cc65/asminc/fcntl.inc +21 -0
- data/lib/burn/tools/other/cc65/asminc/generic.mac +55 -0
- data/lib/burn/tools/other/cc65/asminc/get_tv.inc +22 -0
- data/lib/burn/tools/other/cc65/asminc/joy-error.inc +44 -0
- data/lib/burn/tools/other/cc65/asminc/joy-kernel.inc +85 -0
- data/lib/burn/tools/other/cc65/asminc/longbranch.mac +88 -0
- data/lib/burn/tools/other/cc65/asminc/lynx.inc +279 -0
- data/lib/burn/tools/other/cc65/asminc/modload.inc +78 -0
- data/lib/burn/tools/other/cc65/asminc/mouse-kernel.inc +180 -0
- data/lib/burn/tools/other/cc65/asminc/nes.inc +93 -0
- data/lib/burn/tools/other/cc65/asminc/o65.inc +150 -0
- data/lib/burn/tools/other/cc65/asminc/opcodes.inc +509 -0
- data/lib/burn/tools/other/cc65/asminc/pet.inc +54 -0
- data/lib/burn/tools/other/cc65/asminc/plus4.inc +86 -0
- data/lib/burn/tools/other/cc65/asminc/ser-error.inc +54 -0
- data/lib/burn/tools/other/cc65/asminc/ser-kernel.inc +162 -0
- data/lib/burn/tools/other/cc65/asminc/signal.inc +57 -0
- data/lib/burn/tools/other/cc65/asminc/smc.inc +245 -0
- data/lib/burn/tools/other/cc65/asminc/stdio.inc +70 -0
- data/lib/burn/tools/other/cc65/asminc/supervision.inc +76 -0
- data/lib/burn/tools/other/cc65/asminc/tgi-error.inc +52 -0
- data/lib/burn/tools/other/cc65/asminc/tgi-kernel.inc +234 -0
- data/lib/burn/tools/other/cc65/asminc/tgi-vectorfont.inc +70 -0
- data/lib/burn/tools/other/cc65/asminc/time.inc +59 -0
- data/lib/burn/tools/other/cc65/asminc/utsname.inc +46 -0
- data/lib/burn/tools/other/cc65/asminc/vic20.inc +75 -0
- data/lib/burn/tools/other/cc65/asminc/zeropage.inc +26 -0
- data/lib/burn/tools/other/cc65/bin/ca65 +0 -0
- data/lib/burn/tools/other/cc65/bin/cc65 +0 -0
- data/lib/burn/tools/other/cc65/bin/ld65 +0 -0
- data/lib/burn/tools/win/cc65/asminc/_file.inc +27 -0
- data/lib/burn/tools/win/cc65/asminc/_heap.inc +35 -0
- data/lib/burn/tools/win/cc65/asminc/apple2.inc +64 -0
- data/lib/burn/tools/win/cc65/asminc/atari.inc +1101 -0
- data/lib/burn/tools/win/cc65/asminc/atmos.inc +31 -0
- data/lib/burn/tools/win/cc65/asminc/c128.inc +213 -0
- data/lib/burn/tools/win/cc65/asminc/c16.inc +9 -0
- data/lib/burn/tools/win/cc65/asminc/c64.inc +212 -0
- data/lib/burn/tools/win/cc65/asminc/cbm510.inc +182 -0
- data/lib/burn/tools/win/cc65/asminc/cbm610.inc +110 -0
- data/lib/burn/tools/win/cc65/asminc/ctype.inc +29 -0
- data/lib/burn/tools/win/cc65/asminc/em-error.inc +44 -0
- data/lib/burn/tools/win/cc65/asminc/em-kernel.inc +100 -0
- data/lib/burn/tools/win/cc65/asminc/errno.inc +36 -0
- data/lib/burn/tools/win/cc65/asminc/fcntl.inc +21 -0
- data/lib/burn/tools/win/cc65/asminc/get_tv.inc +22 -0
- data/lib/burn/tools/win/cc65/asminc/joy-error.inc +44 -0
- data/lib/burn/tools/win/cc65/asminc/joy-kernel.inc +85 -0
- data/lib/burn/tools/win/cc65/asminc/lynx.inc +273 -0
- data/lib/burn/tools/win/cc65/asminc/modload.inc +78 -0
- data/lib/burn/tools/win/cc65/asminc/mouse-kernel.inc +179 -0
- data/lib/burn/tools/win/cc65/asminc/nes.inc +93 -0
- data/lib/burn/tools/win/cc65/asminc/o65.inc +135 -0
- data/lib/burn/tools/win/cc65/asminc/pet.inc +45 -0
- data/lib/burn/tools/win/cc65/asminc/plus4.inc +87 -0
- data/lib/burn/tools/win/cc65/asminc/rs232.inc +19 -0
- data/lib/burn/tools/win/cc65/asminc/ser-error.inc +50 -0
- data/lib/burn/tools/win/cc65/asminc/ser-kernel.inc +161 -0
- data/lib/burn/tools/win/cc65/asminc/signal.inc +57 -0
- data/lib/burn/tools/win/cc65/asminc/stdio.inc +70 -0
- data/lib/burn/tools/win/cc65/asminc/supervision.inc +76 -0
- data/lib/burn/tools/win/cc65/asminc/tgi-error.inc +48 -0
- data/lib/burn/tools/win/cc65/asminc/tgi-kernel.inc +183 -0
- data/lib/burn/tools/win/cc65/asminc/tgi-mode.inc +48 -0
- data/lib/burn/tools/win/cc65/asminc/time.inc +59 -0
- data/lib/burn/tools/win/cc65/asminc/utsname.inc +46 -0
- data/lib/burn/tools/win/cc65/asminc/vic20.inc +77 -0
- data/lib/burn/tools/win/cc65/asminc/zeropage.inc +22 -0
- data/lib/burn/tools/win/cc65/bin/ca65.exe +0 -0
- data/lib/burn/tools/win/cc65/bin/cc65.exe +0 -0
- data/lib/burn/tools/win/cc65/bin/ld65.exe +0 -0
- data/lib/burn/util/os.rb +38 -0
- data/lib/burn/util/patternizer.rb +62 -0
- data/lib/burn/util/pxes.rb +180 -0
- data/lib/burn/util/server.rb +21 -0
- data/lib/burn/util.rb +4 -0
- data/lib/burn/version.rb +3 -0
- data/lib/burn/workspace_default/asset/crt0.s +260 -0
- data/lib/burn/workspace_default/asset/famitone.s +1031 -0
- data/lib/burn/workspace_default/asset/mus_instruments.s +50 -0
- data/lib/burn/workspace_default/asset/music.s +3 -0
- data/lib/burn/workspace_default/asset/nes.cfg +83 -0
- data/lib/burn/workspace_default/asset/neslib.h +213 -0
- data/lib/burn/workspace_default/asset/neslib.s +923 -0
- data/lib/burn/workspace_default/asset/runtime.lib +0 -0
- data/lib/burn/workspace_default/asset/sounds.s +143 -0
- data/lib/burn/workspace_default/asset/test.h +22 -0
- data/lib/burn/workspace_default/asset/tileset.chr +0 -0
- data/lib/burn/workspace_default/release/js/emulator.html +42 -0
- data/lib/burn/workspace_default/release/js/js/dynamicaudio-89ba58da476270a9b630.min.js +1 -0
- data/lib/burn/workspace_default/release/js/js/jquery-1.4.2.min.js +154 -0
- data/lib/burn/workspace_default/release/js/js/jsnes-4e7a7260aa.js +7149 -0
- data/lib/burn/workspace_default/release/js/swf/dynamicaudio.swf +0 -0
- data/lib/burn/workspace_default/scripts/compile.bat +30 -0
- data/lib/burn/workspace_default/scripts/compile.sh +30 -0
- data/lib/burn.rb +11 -0
- data/test/helper.rb +8 -0
- data/test/runner.rb +2 -0
- data/test/test_burn.rb +14 -0
- data/test/test_dsl.rb +22 -0
- data/test/test_pxes.rb +48 -0
- metadata +270 -0
@@ -0,0 +1,273 @@
|
|
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
|
+
|
120
|
+
HTIMBKUP = $FD00 ; horizontal line timer (timer 0)
|
121
|
+
HTIMCTLA = $FD01
|
122
|
+
HTIMCNT = $FD02
|
123
|
+
HTIMCTLB = $FD03
|
124
|
+
VTIMBKUP = $FD08 ; vertical blank timer (timer 2)
|
125
|
+
VTIMCTLA = $FD09
|
126
|
+
VTIMCNT = $FD0A
|
127
|
+
VTIMCTLB = $FD0B
|
128
|
+
BAUDBKUP = $FD10 ; serial timer (timer 4)
|
129
|
+
|
130
|
+
TIM0BKUP = $FD00
|
131
|
+
TIM0CTLA = $FD01
|
132
|
+
TIM0CNT = $FD02
|
133
|
+
TIM0CTLB = $FD03
|
134
|
+
TIM1BKUP = $FD04
|
135
|
+
TIM1CTLA = $FD05
|
136
|
+
TIM1CNT = $FD06
|
137
|
+
TIM1CTLB = $FD07
|
138
|
+
TIM2BKUP = $FD08
|
139
|
+
TIM2CTLA = $FD09
|
140
|
+
TIM2CNT = $FD0A
|
141
|
+
TIM2CTLB = $FD0B
|
142
|
+
TIM3BKUP = $FD0C
|
143
|
+
TIM3CTLA = $FD0D
|
144
|
+
TIM3CNT = $FD0E
|
145
|
+
TIM3CTLB = $FD0F
|
146
|
+
TIM4BKUP = $FD10
|
147
|
+
TIM4CTLA = $FD11
|
148
|
+
TIM4CNT = $FD12
|
149
|
+
TIM4CTLB = $FD13
|
150
|
+
TIM5BKUP = $FD14
|
151
|
+
TIM5CTLA = $FD15
|
152
|
+
TIM5CNT = $FD16
|
153
|
+
TIM5CTLB = $FD17
|
154
|
+
TIM6BKUP = $FD18
|
155
|
+
TIM6CTLA = $FD19
|
156
|
+
TIM6CNT = $FD1A
|
157
|
+
TIM6CTLB = $FD1B
|
158
|
+
TIM7BKUP = $FD1C
|
159
|
+
TIM7CTLA = $FD1D
|
160
|
+
TIM7CNT = $FD1E
|
161
|
+
TIM7CTLB = $FD1F
|
162
|
+
|
163
|
+
; Mikey Audio
|
164
|
+
|
165
|
+
AUDIO0 = $FD20 ; audio channel 0
|
166
|
+
AUDIO1 = $FD28 ; audio channel 1
|
167
|
+
AUDIO2 = $FD30 ; audio channel 2
|
168
|
+
AUDIO3 = $FD38 ; audio channel 3
|
169
|
+
|
170
|
+
AUD0VOL = $FD20
|
171
|
+
AUD0FEED = $FD21
|
172
|
+
AUD0OUT = $FD22
|
173
|
+
AUD0SHIFT = $FD23
|
174
|
+
AUD0BKUP = $FD24
|
175
|
+
AUD0CTLA = $FD25
|
176
|
+
AUD0CNT = $FD26
|
177
|
+
AUD0CTLB = $FD27
|
178
|
+
AUD1VOL = $FD28
|
179
|
+
AUD1FEED = $FD29
|
180
|
+
AUD1OUT = $FD2A
|
181
|
+
AUD1SHIFT = $FD2B
|
182
|
+
AUD1BKUP = $FD2C
|
183
|
+
AUD1CTLA = $FD2D
|
184
|
+
AUD1CNT = $FD2E
|
185
|
+
AUD1CTLB = $FD2F
|
186
|
+
AUD2VOL = $FD30
|
187
|
+
AUD2FEED = $FD31
|
188
|
+
AUD2OUT = $FD32
|
189
|
+
AUD2SHIFT = $FD33
|
190
|
+
AUD2BKUP = $FD34
|
191
|
+
AUD2CTLA = $FD35
|
192
|
+
AUD2CNT = $FD36
|
193
|
+
AUD2CTLB = $FD37
|
194
|
+
AUD3VOL = $FD38
|
195
|
+
AUD3FEED = $FD39
|
196
|
+
AUD3OUT = $FD3A
|
197
|
+
AUD3SHIFT = $FD3B
|
198
|
+
AUD3BKUP = $FD3C
|
199
|
+
AUD3CTLA = $FD3D
|
200
|
+
AUD3CNT = $FD3E
|
201
|
+
AUD3CTLB = $FD3F
|
202
|
+
MSTEREO = $FD50
|
203
|
+
|
204
|
+
; Mikey Misc
|
205
|
+
|
206
|
+
; Interrupt bits in INTRST and INTSET
|
207
|
+
TIMER0_INTERRUPT = $01
|
208
|
+
TIMER1_INTERRUPT = $02
|
209
|
+
TIMER2_INTERRUPT = $04
|
210
|
+
TIMER3_INTERRUPT = $08
|
211
|
+
TIMER4_INTERRUPT = $10
|
212
|
+
TIMER5_INTERRUPT = $20
|
213
|
+
TIMER6_INTERRUPT = $40
|
214
|
+
TIMER7_INTERRUPT = $80
|
215
|
+
|
216
|
+
HBL_INTERRUPT = TIMER0_INTERRUPT
|
217
|
+
VBL_INTERRUPT = TIMER2_INTERRUPT
|
218
|
+
SERIAL_INTERRUPT = TIMER4_INTERRUPT
|
219
|
+
|
220
|
+
INTRST = $FD80
|
221
|
+
INTSET = $FD81
|
222
|
+
MAGRDY0 = $FD84
|
223
|
+
MAGRDY1 = $FD85
|
224
|
+
AUDIN = $FD86
|
225
|
+
SYSCTL1 = $FD87
|
226
|
+
MIKEYHREV = $FD88
|
227
|
+
MIKEYSREV = $FD89
|
228
|
+
IODIR = $FD8A
|
229
|
+
IODAT = $FD8B
|
230
|
+
TxIntEnable = %10000000
|
231
|
+
RxIntEnable = %01000000
|
232
|
+
TxParEnable = %00010000
|
233
|
+
ResetErr = %00001000
|
234
|
+
TxOpenColl = %00000100
|
235
|
+
TxBreak = %00000010
|
236
|
+
ParEven = %00000001
|
237
|
+
TxReady = %10000000
|
238
|
+
RxReady = %01000000
|
239
|
+
TxEmpty = %00100000
|
240
|
+
RxParityErr = %00010000
|
241
|
+
RxOverrun = %00001000
|
242
|
+
RxFrameErr = %00000100
|
243
|
+
RxBreak = %00000010
|
244
|
+
ParityBit = %00000001
|
245
|
+
SERCTL = $FD8C
|
246
|
+
SERDAT = $FD8D
|
247
|
+
SDONEACK = $FD90
|
248
|
+
CPUSLEEP = $FD91
|
249
|
+
DISPCTL = $FD92
|
250
|
+
PBKUP = $FD93
|
251
|
+
DISPADRL = $FD94
|
252
|
+
DISPADRH = $FD95
|
253
|
+
MTEST0 = $FD9C
|
254
|
+
MTEST1 = $FD9D
|
255
|
+
MTEST2 = $FD9E
|
256
|
+
PALETTE = $FDA0 ; hardware rgb palette
|
257
|
+
GCOLMAP = $FDA0 ; hardware rgb palette (green)
|
258
|
+
RBCOLMAP = $FDB0 ; hardware rgb palette (red-blue)
|
259
|
+
|
260
|
+
|
261
|
+
; ***
|
262
|
+
; *** Misc Hardware + 6502 vectors
|
263
|
+
; ***
|
264
|
+
|
265
|
+
MAPCTL = $FFF9
|
266
|
+
VECTORS = $FFFB
|
267
|
+
INTVECTL = $FFFE
|
268
|
+
INTVECTH = $FFFF
|
269
|
+
RSTVECTL = $FFFC
|
270
|
+
RSTVECTH = $FFFD
|
271
|
+
NMIVECTL = $FFFA
|
272
|
+
NMIVECTH = $FFFB
|
273
|
+
|
@@ -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
|
+
|
@@ -0,0 +1,179 @@
|
|
1
|
+
;/*****************************************************************************/
|
2
|
+
;/* */
|
3
|
+
;/* mouse-kernel.inc */
|
4
|
+
;/* */
|
5
|
+
;/* Mouse API */
|
6
|
+
;/* */
|
7
|
+
;/* */
|
8
|
+
;/* */
|
9
|
+
;/* (C) 2003-2009, Ullrich von Bassewitz */
|
10
|
+
;/* Roemerstrasse 52 */
|
11
|
+
;/* D-70794 Filderstadt */
|
12
|
+
;/* EMail: uz@cc65.org */
|
13
|
+
;/* */
|
14
|
+
;/* */
|
15
|
+
;/* */
|
16
|
+
;/* */
|
17
|
+
;/* This software is provided 'as-is', without any expressed or implied */
|
18
|
+
;/* warranty. In no event will the authors be held liable for any damages */
|
19
|
+
;/* arising from the use of this software. */
|
20
|
+
;/* */
|
21
|
+
;/* Permission is granted to anyone to use this software for any purpose, */
|
22
|
+
;/* including commercial applications, and to alter it and redistribute it */
|
23
|
+
;/* freely, subject to the following restrictions: */
|
24
|
+
;/* */
|
25
|
+
;/* 1. The origin of this software must not be misrepresented; you must not */
|
26
|
+
;/* claim that you wrote the original software. If you use this software */
|
27
|
+
;/* in a product, an acknowledgment in the product documentation would be */
|
28
|
+
;/* appreciated but is not required. */
|
29
|
+
;/* 2. Altered source versions must be plainly marked as such, and must not */
|
30
|
+
;/* be misrepresented as being the original software. */
|
31
|
+
;/* 3. This notice may not be removed or altered from any source */
|
32
|
+
;/* distribution. */
|
33
|
+
;/* */
|
34
|
+
;/*****************************************************************************/
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
;------------------------------------------------------------------------------
|
40
|
+
; Error codes
|
41
|
+
|
42
|
+
.enum
|
43
|
+
MOUSE_ERR_OK ; No error
|
44
|
+
MOUSE_ERR_NO_DRIVER ; No driver available
|
45
|
+
MOUSE_ERR_CANNOT_LOAD ; Error loading driver
|
46
|
+
MOUSE_ERR_INV_DRIVER ; Invalid driver
|
47
|
+
MOUSE_ERR_NO_DEVICE ; Mouse hardware not found
|
48
|
+
MOUSE_ERR_INV_IOCTL ; Invalid ioctl code
|
49
|
+
|
50
|
+
MOUSE_ERR_COUNT ; Special: Number of error codes
|
51
|
+
.endenum
|
52
|
+
|
53
|
+
;------------------------------------------------------------------------------
|
54
|
+
; The driver header
|
55
|
+
|
56
|
+
.struct MOUSE_HDR
|
57
|
+
ID .byte 3 ; Contains 0x6D, 0x6F, 0x75 ("mou")
|
58
|
+
VERSION .byte 1 ; Interface version
|
59
|
+
JUMPTAB .struct
|
60
|
+
INSTALL .addr
|
61
|
+
UNINSTALL .addr
|
62
|
+
HIDE .addr
|
63
|
+
SHOW .addr
|
64
|
+
SETBOX .addr
|
65
|
+
GETBOX .addr
|
66
|
+
MOVE .addr
|
67
|
+
BUTTONS .addr
|
68
|
+
POS .addr
|
69
|
+
INFO .addr
|
70
|
+
IOCTL .addr
|
71
|
+
IRQ .addr
|
72
|
+
.endstruct
|
73
|
+
FLAGS .byte ; Mouse driver flags
|
74
|
+
CALLBACKS .struct ; Jump instructions
|
75
|
+
.byte ; JMP opcode
|
76
|
+
CHIDE .addr ; Jump address
|
77
|
+
.byte
|
78
|
+
CSHOW .addr
|
79
|
+
.byte
|
80
|
+
CMOVEX .addr
|
81
|
+
.byte
|
82
|
+
CMOVEY .addr
|
83
|
+
.endstruct
|
84
|
+
.endstruct
|
85
|
+
|
86
|
+
;------------------------------------------------------------------------------
|
87
|
+
; The mouse callback structure
|
88
|
+
|
89
|
+
.struct MOUSE_CALLBACKS
|
90
|
+
HIDE .addr ; Hide the mouse cursor
|
91
|
+
SHOW .addr ; Show the mouse cursor
|
92
|
+
MOVEX .addr ; Move the mouse cursor
|
93
|
+
MOVEY .addr ; Dito for Y
|
94
|
+
.endstruct
|
95
|
+
|
96
|
+
;------------------------------------------------------------------------------
|
97
|
+
; The mouse API version, stored in MOUSE_HDR::VERSION
|
98
|
+
|
99
|
+
MOUSE_API_VERSION = $02
|
100
|
+
|
101
|
+
;------------------------------------------------------------------------------
|
102
|
+
; Bitmapped mouse driver flags, stored in MOUSE_HDR::FLAGS.
|
103
|
+
; Note: If neither of MOUSE_FLAG_XXX_IRQ is set, no interrupts are supplied
|
104
|
+
; to the driver. If one of the bits is set, the interrupt vector MUST be
|
105
|
+
; valid.
|
106
|
+
; Beware: Some of the bits are tested using the BIT instruction, so do not
|
107
|
+
; change the values without checking the code!
|
108
|
+
|
109
|
+
MOUSE_FLAG_EARLY_IRQ = $40 ; Enable IRQ *before* calling INSTALL
|
110
|
+
MOUSE_FLAG_LATE_IRQ = $80 ; Enable IRQ *after* calling INSTALL
|
111
|
+
|
112
|
+
;------------------------------------------------------------------------------
|
113
|
+
; Mouse button definitions
|
114
|
+
|
115
|
+
MOUSE_BTN_LEFT = $10
|
116
|
+
MOUSE_BTN_RIGHT = $01
|
117
|
+
|
118
|
+
;------------------------------------------------------------------------------
|
119
|
+
; Structures used to return data from the mouse driver
|
120
|
+
|
121
|
+
.struct MOUSE_POS
|
122
|
+
XCOORD .word
|
123
|
+
YCOORD .word
|
124
|
+
.endstruct
|
125
|
+
|
126
|
+
.struct MOUSE_INFO
|
127
|
+
POS .tag MOUSE_POS
|
128
|
+
BUTTONS .byte
|
129
|
+
.endstruct
|
130
|
+
|
131
|
+
.struct MOUSE_BOX
|
132
|
+
MINX .word
|
133
|
+
MINY .word
|
134
|
+
MAXX .word
|
135
|
+
MAXY .word
|
136
|
+
.endstruct
|
137
|
+
|
138
|
+
;------------------------------------------------------------------------------
|
139
|
+
; Variables
|
140
|
+
|
141
|
+
.global _mouse_drv ; Pointer to driver
|
142
|
+
.global _mouse_hidden ; Counter, 0 = mouse is visible
|
143
|
+
|
144
|
+
;------------------------------------------------------------------------------
|
145
|
+
; C callable functions
|
146
|
+
|
147
|
+
.global _mouse_load_driver
|
148
|
+
.global _mouse_unload
|
149
|
+
.global _mouse_install
|
150
|
+
.global _mouse_uninstall
|
151
|
+
.global _mouse_geterrormsg
|
152
|
+
.global _mouse_hide
|
153
|
+
.global _mouse_show
|
154
|
+
.global _mouse_setbox
|
155
|
+
.global _mouse_getbox
|
156
|
+
.global _mouse_move
|
157
|
+
.global _mouse_buttons
|
158
|
+
.global _mouse_pos
|
159
|
+
.global _mouse_info
|
160
|
+
.global _mouse_ioctl
|
161
|
+
|
162
|
+
.global _mouse_clear_ptr
|
163
|
+
|
164
|
+
;------------------------------------------------------------------------------
|
165
|
+
; Driver entry points (asm callable)
|
166
|
+
|
167
|
+
.global mouse_install
|
168
|
+
.global mouse_uninstall
|
169
|
+
.global mouse_hide
|
170
|
+
.global mouse_show
|
171
|
+
.global mouse_setbox
|
172
|
+
.global mouse_getbox
|
173
|
+
.global mouse_move
|
174
|
+
.global mouse_buttons
|
175
|
+
.global mouse_pos
|
176
|
+
.global mouse_info
|
177
|
+
.global mouse_ioctl
|
178
|
+
|
179
|
+
|
@@ -0,0 +1,93 @@
|
|
1
|
+
;
|
2
|
+
; NES definitions. By Groepaz/Hitmem.
|
3
|
+
;
|
4
|
+
|
5
|
+
|
6
|
+
;; FIXME: optimize zeropage usage
|
7
|
+
|
8
|
+
SCREEN_PTR = $62 ;2
|
9
|
+
CRAM_PTR = $64 ;2
|
10
|
+
CHARCOLOR = $66
|
11
|
+
BGCOLOR = $67
|
12
|
+
RVS = $68
|
13
|
+
CURS_X = $69
|
14
|
+
CURS_Y = $6a
|
15
|
+
|
16
|
+
tickcount = $6b ;2
|
17
|
+
|
18
|
+
VBLANK_FLAG = $70
|
19
|
+
|
20
|
+
ringbuff = $0200
|
21
|
+
ringwrite = $71
|
22
|
+
ringread = $72
|
23
|
+
ringcount = $73
|
24
|
+
|
25
|
+
ppuhi = $74
|
26
|
+
ppulo = $75
|
27
|
+
ppuval = $76
|
28
|
+
|
29
|
+
screenrows = (30-1)
|
30
|
+
charsperline = 32
|
31
|
+
xsize = charsperline
|
32
|
+
|
33
|
+
;; PPU defines
|
34
|
+
|
35
|
+
PPU_CTRL1 = $2000
|
36
|
+
PPU_CTRL2 = $2001
|
37
|
+
PPU_STATUS = $2002
|
38
|
+
PPU_SPR_ADDR = $2003
|
39
|
+
PPU_SPR_IO = $2004
|
40
|
+
PPU_VRAM_ADDR1 = $2005
|
41
|
+
PPU_VRAM_ADDR2 = $2006
|
42
|
+
PPU_VRAM_IO = $2007
|
43
|
+
|
44
|
+
;; APU defines
|
45
|
+
|
46
|
+
APU_PULSE1CTRL = $4000 ; Pulse #1 Control Register (W)
|
47
|
+
APU_PULSE1RAMP = $4001 ; Pulse #1 Ramp Control Register (W)
|
48
|
+
APU_PULSE1FTUNE = $4002 ; Pulse #1 Fine Tune (FT) Register (W)
|
49
|
+
APU_PULSE1CTUNE = $4003 ; Pulse #1 Coarse Tune (CT) Register (W)
|
50
|
+
APU_PULSE2CTRL = $4004 ; Pulse #2 Control Register (W)
|
51
|
+
APU_PULSE2RAMP = $4005 ; Pulse #2 Ramp Control Register (W)
|
52
|
+
APU_PULSE2FTUNE = $4006 ; Pulse #2 Fine Tune Register (W)
|
53
|
+
APU_PULSE2STUNE = $4007 ; Pulse #2 Coarse Tune Register (W)
|
54
|
+
APU_TRICTRL1 = $4008 ; Triangle Control Register #1 (W)
|
55
|
+
APU_TRICTRL2 = $4009 ; Triangle Control Register #2 (?)
|
56
|
+
APU_TRIFREQ1 = $400A ; Triangle Frequency Register #1 (W)
|
57
|
+
APU_TRIFREQ2 = $400B ; Triangle Frequency Register #2 (W)
|
58
|
+
APU_NOISECTRL = $400C ; Noise Control Register #1 (W)
|
59
|
+
;;APU_ = $400D ; Unused (???)
|
60
|
+
APU_NOISEFREQ1 = $400E ; Noise Frequency Register #1 (W)
|
61
|
+
APU_NOISEFREQ2 = $400F ; Noise Frequency Register #2 (W)
|
62
|
+
APU_MODCTRL = $4010 ; Delta Modulation Control Register (W)
|
63
|
+
APU_MODDA = $4011 ; Delta Modulation D/A Register (W)
|
64
|
+
APU_MODADDR = $4012 ; Delta Modulation Address Register (W)
|
65
|
+
APU_MODLEN = $4013 ; Delta Modulation Data Length Register (W)
|
66
|
+
APU_SPR_DMA = $4014 ; Sprite DMA Register (W)
|
67
|
+
APU_CHANCTRL = $4015 ; Sound/Vertical Clock Signal Register (R)
|
68
|
+
APU_PAD1 = $4016 ; Joypad #1 (RW)
|
69
|
+
APU_PAD2 = $4017 ; Joypad #2/SOFTCLK (RW)
|
70
|
+
|
71
|
+
|
72
|
+
CH_HLINE = 11
|
73
|
+
CH_VLINE = 14
|
74
|
+
CH_ULCORNER = 176
|
75
|
+
CH_URCORNER = 174
|
76
|
+
CH_LLCORNER = 173
|
77
|
+
CH_LRCORNER = 189
|
78
|
+
CH_TTEE = 178
|
79
|
+
CH_RTEE = 179
|
80
|
+
CH_BTEE = 177
|
81
|
+
CH_LTEE = 171
|
82
|
+
CH_CROSS = 123
|
83
|
+
CH_CURS_UP = 145
|
84
|
+
CH_CURS_DOWN = 17
|
85
|
+
CH_CURS_LEFT = 157
|
86
|
+
CH_CURS_RIGHT = 29
|
87
|
+
CH_PI = 126
|
88
|
+
CH_DEL = 20
|
89
|
+
CH_INS = 148
|
90
|
+
CH_ENTER = 10
|
91
|
+
CH_STOP = 3
|
92
|
+
CH_ESC = 27
|
93
|
+
|