-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathghostbusters.prg.1100.dis65
390 lines (348 loc) · 9.52 KB
/
ghostbusters.prg.1100.dis65
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
### 6502bench SourceGen dis65 v1.0 ###
{
"_ContentVersion":5,
"FileDataLength":44802,
"FileDataCrc32":-1554910377,
"ProjectProps":{
"CpuName":"6502",
"IncludeUndocumentedInstr":false,
"TwoByteBrk":false,
"EntryFlags":32702671,
"AutoLabelStyle":"Simple",
"AnalysisParams":{
"AnalyzeUncategorizedData":true,
"DefaultTextScanMode":"C64Petscii",
"MinCharsForString":4,
"SeekNearbyTargets":true,
"UseRelocData":false,
"SmartPlpHandling":false,
"SmartPlbHandling":true},
"PlatformSymbolFileIdentifiers":["RT:Commodore/C64-Kernal.sym65"],
"ExtensionScriptFileIdentifiers":["RT:Commodore/VisC64.cs"],
"ProjectSyms":{
}},
"AddressMap":[{
"Offset":2,
"Addr":4352,
"Length":44800,
"PreLabel":"",
"IsRelative":false}],
"TypeHints":[{
"Low":2,
"High":2,
"Hint":"Code"},
{
"Low":20226,
"High":20226,
"Hint":"Code"},
{
"Low":34317,
"High":34317,
"Hint":"Code"}],
"StatusFlagOverrides":{
},
"Comments":{
"0":"load address",
"20240":"xecution address of non-maskable interrupt service routine.",
"20245":"xecution address of non-maskable interrupt service routine.",
"20250":"Execution address of interrupt service routine.",
"20255":"Execution address of interrupt service routine.",
"20275":"Loop from 602A",
"20998":"Clear interrupt flag",
"20999":"Load #28 which will be used to check if raster line",
"21001":"Compare current raster line to #28",
"21004":"Loop until raster is at line 28",
"21006":"Screen control register #1",
"21009":"Loop if Screen control register #1 is a negative value",
"21011":"Value for Screen control register #1",
"21013":"Set screen viewable and 25 rows",
"21016":"Value for Screen control register #2",
"21018":"Set mutlicolour mode on and 40 columns",
"21021":"Used for colour value (White)",
"21023":"Extra background color #1 to white (used for logo and text)",
"21026":"Used for colour value (Red)",
"21028":"Extra background color #2 to red (used for logo)",
"21031":"Jump to $6329",
"21035":"Start screen routines",
"21038":"Checks for F1 or F3 at start screen",
"21041":"Loads music",
"21053":"Cant see when this would be true",
"21089":"Set loop number",
"21091":"Load #$00 value to blank out song text",
"21093":"Loop through characters to be cleared",
"21096":"Decrease loop counter",
"21097":"Continue loop if X != 0",
"21101":"Copy line two song text",
"21104":"Paste line two song text into line one above",
"21108":"Set to #50 as it will be 80 characters",
"21124":"Begin loading line two of song",
"21133":"This never seems to be triggered",
"21149":"Check if F1 has been pressed",
"21151":"Branch as F1 not pressed",
"21153":"Store F1 press value (#20) to $eab2",
"21156":"Jump to subroutine as F1 or F3 pressed",
"21162":"Check if F3 has been pressed",
"21164":"Branch to F1 sequence above as F3 pressed",
"21166":"Return to screen loop",
"32476":"disable timer interrupts which can be generated by the two CIA chips",
"32479":"Interrupt control and status register",
"32484":"Timer A control register",
"32487":"Timer A control register",
"32490":"Port B data direction register",
"32493":"Port B data direction register",
"32496":"Volume and filter modes",
"32499":"Decrease X",
"32500":"Port A data direction register",
"32503":"Port A data direction register",
"32981":"Enable sprite #1 (Bouncing ball)",
"32984":"Seems to be related to animation (vertical position of bouncing ball).",
"32987":"Branch if ball not at lowest point",
"32989":"ea71 used for number of bounces in one spot",
"33524":"Exit routine if negative",
"34180":"Starts at 7 as song is indented by 7 characters",
"34188":"Branch if not end of song text",
"34194":"$21 is used for the character sequence in the song text.",
"34200":"Jump to RTS",
"34203":"Check if end of song line (#0d is end of line)",
"34205":"Branch as end of song line detected.",
"34207":"Compare to #20 (32). Checking if the song character is a space.",
"34209":"Branch over next operation as character is not a space.",
"34211":"Set A to #00 (A space character).",
"34213":"Compare to #40 (64). Check if character is a letter or special character.",
"34215":"Character is not a letter. Do not subtract #40.",
"34217":"Subtract to get character address.",
"34219":"Update next character of song row two.",
"34222":"Increase Y",
"34223":"Increase X",
"34224":"Compare to #28 (40). This checks if end of song line two.",
"34226":"Continue loop if not at the end of the song line.",
"34231":"Update $21 to the next song character for the next line and loop.",
"34233":"Update/store updated value for $21",
"34241":"Load A with #00",
"34243":"Blank out remaining song line two text.",
"34252":"Load value (#ff) for Port A data direction register",
"34254":"Enable keyboard",
"34260":"Increase X - goes to #00",
"34261":"Enable joystick port 2",
"34267":"#1f (0001 1111)",
"34275":"RTS from here. Branch to $96E7 if Port B register is zero.",
"34277":"Not sure why this exists or if it would be triggered",
"34279":"Not sure why this exists or if it would be triggered",
"34282":"(JSR from $632c) Load value for Port A keyboard matrix columns and joystick #2",
"34284":"Set all bits to write all keyboard matrix columns",
"34287":"Compare Port B keyboard matrix rows and joystick #1 to #$ff",
"34290":"If $dc01 is not equal to #ff exist routine",
"34295":"If $dc00 is not equal to #ff exist routine",
"34303":"Reset value for keypress (F1 or F3)",
"34307":"Set $dc00 to #00",
"34315":"Branch if no input has been received",
"34317":"Will be #3f",
"34319":"Will change to #7",
"34321":"Transfer A to X",
"34322":"Load A with $23 (Which is $3f)",
"34324":"Divide by 2 (Becomes #1f)",
"34325":"Divide by 2 (Becomes #f)",
"34326":"Divide by 2 (Becomes #7)",
"34327":"Transfer A to Y",
"34328":"Load from $37fa",
"34331":"Set column of the matrix on Port A",
"34349":"Branch over next instruction if equal #21",
"34351":"Update $19 which is used to know if F1/F3 is pressed",
"34384":"Jumps and then returns from subroutine"},
"LongComments":{
"-2147483647":{
"Text":"6502bench SourceGen v1.8.3",
"BoxMode":false,
"MaxWidth":80,
"BackgroundColor":0},
"20226":{
"Text":"Start of game sequence after load",
"BoxMode":true,
"MaxWidth":80,
"BackgroundColor":0},
"20999":{
"Text":" Begin Start screen loop",
"BoxMode":true,
"MaxWidth":30,
"BackgroundColor":0},
"21035":{
"Text":" Start screen routines",
"BoxMode":true,
"MaxWidth":30,
"BackgroundColor":0},
"21169":{
"Text":" End start screen loop",
"BoxMode":true,
"MaxWidth":30,
"BackgroundColor":0},
"32970":{
"Text":" Start Bouncing Ball ",
"BoxMode":true,
"MaxWidth":30,
"BackgroundColor":0}},
"Notes":{
"20999":{
"Text":"Begin start screen loop\r\n",
"BoxMode":false,
"MaxWidth":80,
"BackgroundColor":-256},
"21035":{
"Text":"Start screen routines\r\n",
"BoxMode":false,
"MaxWidth":80,
"BackgroundColor":-256},
"21169":{
"Text":"End: screen loop",
"BoxMode":false,
"MaxWidth":80,
"BackgroundColor":-256},
"24292":{
"Text":"Begin game sequence after F1 or F3 pressed",
"BoxMode":false,
"MaxWidth":80,
"BackgroundColor":-256},
"32970":{
"Text":"Begin: Bouncing ball\r\n",
"BoxMode":false,
"MaxWidth":80,
"BackgroundColor":-256},
"33181":{
"Text":"End: Bouncing ball\r\n",
"BoxMode":false,
"MaxWidth":80,
"BackgroundColor":-256},
"34317":{
"Text":"Begin: Code if input received (F1/F3)\r\n",
"BoxMode":false,
"MaxWidth":80,
"BackgroundColor":-256},
"34387":{
"Text":"End: Code if input received (F1/F3)",
"BoxMode":false,
"MaxWidth":80,
"BackgroundColor":-256}},
"UserLabels":{
"34252":{
"Label":"Setup_Inputs",
"Value":38602,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"34282":{
"Label":"Sub_CheckStartInput",
"Value":38632,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"33522":{
"Label":"Sub_StartScreenMusic",
"Value":37872,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"32970":{
"Label":"Sub_StartScreenBouncingBall",
"Value":37320,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"21180":{
"Label":"Sub_StartScreenMusicText",
"Value":25530,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"21035":{
"Label":"Sub_StartScreenRoutines",
"Value":25385,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"20999":{
"Label":"Sub_StartScreenMainLoop",
"Value":25349,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"21001":{
"Label":"Loop_CheckRaster",
"Value":25351,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"21093":{
"Label":"Loop_ClearFirstSongRow",
"Value":25443,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"21116":{
"Label":"Loop_ClearSecondSongRow",
"Value":25466,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"21101":{
"Label":"Loop_UpdateFirstLineSongText",
"Value":25451,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"34184":{
"Label":"Loop_ReadNextCharacter",
"Value":38534,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"34180":{
"Label":"Sub_LoadSongLineTwo",
"Value":38530,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"34241":{
"Label":"Loop_BlankOutLineTwo",
"Value":38591,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"33079":{
"Label":"BallBounceUp",
"Value":37429,
"Source":"User",
"Type":"GlobalAddr",
"LabelAnno":"None"},
"24302":{
"Label":"loop",
"Value":28652,
"Source":"User",
"Type":"NonUniqueLocalAddr",
"LabelAnno":"None"},
"24325":{
"Label":"skip",
"Value":28675,
"Source":"User",
"Type":"NonUniqueLocalAddr",
"LabelAnno":"None"},
"24339":{
"Label":"skip",
"Value":28689,
"Source":"User",
"Type":"NonUniqueLocalAddr",
"LabelAnno":"None"}},
"OperandFormats":{
"0":{
"Length":2,
"Format":"NumericLE",
"SubFormat":"None",
"SymbolRef":null}},
"LvTables":{
},
"Visualizations":[],
"VisualizationAnimations":[],
"VisualizationSets":{
},
"RelocList":{
},
"DbrValues":{
}}