-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathbank7.asm
3713 lines (3641 loc) · 43.8 KB
/
bank7.asm
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
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
.include "nes.inc"
.include "zelda.inc"
.include "audio.inc"
;Program ROM Bank 7
.segment "PRG_7"
.incbin "zelda_base.nes", $1C010, $E440-$C000
sub_e440:
main:
LDA #$00
STA $00F4
LDA #$05
JSR set_prg_bank
JSR $B4AC
JSR $B4E8
JSR sub_e45e
LDA ppuCtrlVal
ORA #$A0
STA PPUCTRL
STA ppuCtrlVal
endless_loop:
JMP endless_loop
sub_e45e:
LDA #$00
STA APU_MODDA
LDA #$0F
STA APU_CHANCTRL
LDA #$06
STA PPUMASK
sub_e46d:
JSR sub_e5f7
JSR sub_e580
JSR disable_rendering
LDA #$20
JSR sub_e47d
LDA #$28
sub_e47d:
LDX #$24
LDY #$00
JMP lbl_e594
;E484
nmi:
;Non-maskable interrupt handler
LDA ppuCtrlVal
LDX $005C
BEQ lbl_e48c
EOR #$02
lbl_e48c:
AND #$7F
STA ppuCtrlVal
AND #$7E
STA PPUCTRL
LDA ppuMaskVal
LDY $00E3
BNE lbl_e4a3
LDY $0014
BNE lbl_e4a5
LDY $0017
BNE lbl_e4a5
lbl_e4a3:
ORA #$1E
lbl_e4a5:
STA PPUMASK
STA ppuMaskVal
LDA #0
STA OAMADDR
LDA #$02 ;Transfer data from $200-$2FF to OAM using DMA.
STA OAMDMA ;Writing N to this register causes a transfer of 256 bytes from address N * $100.
LDA #0
STA PPUSCROLL
STA PPUSCROLL
LDA #6
JSR set_prg_bank
JSR $A080
LDA #$3F
STA PPUADDR
LDA #0
STA PPUADDR
STA PPUADDR
STA PPUADDR
; Wait for the sprite 0 hit flag to be set. Something to do with raster timing.
wait_for_sprite0_hit:
LDA PPUSTATUS
AND #%01000000
BNE wait_for_sprite0_hit
LDA PPUSTATUS
LDA $E3
BEQ lbl_e4ea
LDA #5
JSR set_prg_bank
JSR $8521
lbl_e4ea:
LDA $0011
BEQ lbl_e518
LDA $0012
BEQ lbl_e506
CMP #$05
BEQ lbl_e506
CMP #$09
BEQ lbl_e506
CMP #$0B
BEQ lbl_e506
CMP #$0C
BEQ lbl_e506
CMP #$13
BNE lbl_e518
lbl_e506:
LDA PPUSTATUS
LDA $00FD
STA PPUSCROLL
LDA $00FC
STA PPUSCROLL
LDA ppuCtrlVal
STA PPUCTRL
lbl_e518:
LDA $00E1
ORA $00E0
BNE lbl_e53b
LDX #$26
LDA #$3C
LDY #$4E
STX local0
DEC $00,X
BPL lbl_e52f
LDA #$09
STA local0,X
TYA
lbl_e52f:
TAX
lbl_e530:
LDA local0,X
BEQ lbl_e536
DEC local0,X
lbl_e536:
DEX
CPX local0
BNE lbl_e530
lbl_e53b:
LDA $00E3
BNE :+
JSR read_joypads
:
LDX #$18
LDY #$0D
LDA local0,X
AND #$02
STA local0
LDA $01,X
AND #$02
EOR local0
CLC
BEQ lbl_e556
SEC
lbl_e556:
ROR local0,X
INX
DEY
BNE lbl_e556
LDA #0
JSR set_prg_bank
JSR process_audio
INC $0015
LDA $0011
BNE lbl_e570
JSR sub_e8f8
JMP lbl_e573
lbl_e570:
JSR sub_eb30
lbl_e573:
LDA PPUSTATUS
LDA ppuCtrlVal
ORA #$80
STA PPUCTRL
STA ppuCtrlVal
RTI
sub_e580:
LDA #0
STA PPUSCROLL
STA $00FD
STA PPUSCROLL
STA $00FC
LDA #$30
STA PPUCTRL
STA ppuCtrlVal
RTS
lbl_e594:
STA local0
STX local1
STY local2
LDA PPUSTATUS
LDA ppuCtrlVal
AND #$FB
STA PPUCTRL
STA ppuCtrlVal
LDA local0
STA PPUADDR
LDY #$00
STY PPUADDR
LDX #$04
CMP #$20
BCS lbl_e5B8
LDX local2
lbl_e5B8:
LDY #$00
LDA local1
lbl_e5Bc:
STA PPUDATA
DEY
BNE lbl_e5Bc
DEX
BNE lbl_e5Bc
LDY local2
LDA local0
CMP #$20
BCC lbl_e5df
ADC #$02
STA PPUADDR
LDA #$C0
STA PPUADDR
LDX #$40
lbl_e5d9:
STY PPUDATA
DEX
BNE lbl_e5d9
lbl_e5df:
LDX local1
RTS
;E5E2
.proc switch_jump
.export switch_jump
;Jumps to a specified address in a jump table. Useful for implementing switch constructs.
;A call to this function (JSR sub_e5e2) must be immediately followed by an array of jump addresses.
;Because this function is called with the JSR instruction, the address of the jump table is
;automatically pushed to the stack.
;Parameters: A = index of jump table; (S) = address of jump table
ASL ;multiply index by 2 because addresses are 2 bytes
TAY
PLA ;Pull the jump table address from stack and store it.
STA local0
PLA ;Pull the return address (caller's caller) from the stack and store it.
STA local1
INY ;Store the low order byte of jump address in $02
LDA (local0),Y
STA local2
INY ;Store the high order byte of jump address in $03
LDA (local0),Y
STA local3
JMP (local2) ;Go to jump address.
.endproc
sub_e5f7:
LDY #0
LDX #64
lbl_e5fb:
LDA #$F8
STA $0200,Y
INY
INY
INY
INY
DEX
BNE lbl_e5fb
RTS
sub_e608:
STA local1
LDA #0
STA local0
lbl_e60e:
LDA #0
STA (local0),Y
DEY
CPY #$FF
BNE lbl_e60e
DEC local1
LDA local1
CMP #$03
BCS lbl_e60e
LDA #$FF
STA $0302
RTS
;E625
.proc disable_rendering
.export disable_rendering
LDA #0
STA PPUMASK
STA ppuMaskVal
RTS
.endproc
;E62D
read_joypads:
;Reset and clear strobe of joypad port by writing 1 and then 0 to the register.
LDA #$01
STA JOYPAD1
LDA #$00
STA JOYPAD1
STA local3
STA local4
TAX ;A = 0, X = 0
JSR read_port_bits ;Read player 1's controller state, X = 0
INX
;Fall through and run read_port_bits for X = 1
.proc read_port_bits
;Parameters: X = the controller port to read (0 for player 1, 1 for player 2), A = 0
;Reset and clear strobe of joypad port.
STA local2
LDA #$01
STA JOYPAD1
LDA #$00
STA JOYPAD1
;Each read from the JOYPAD1 register returns a button's state. A value of 1 indicates that the
;button is pressed, while a value of 0 indicates that the button is not pressed. The 8 button
;states are returned in the following order: A, B, Select, Start, Up, Down, Left, Right
LDY #8 ;Do this 8 times
get_button_state:
LDA JOYPAD1,X
LSR
ROL $F8,X
LSR
ROL local0
DEY
BNE get_button_state
LDA $F8,X
CMP local2
BNE read_port_bits
INC local3,X
LDY local3,X
CPY #$02
BCC read_port_bits
LDA local0
ORA $F8,X
STA $F8,X
PHA
EOR $FA,X
AND $F8,X
STA $F8,X
PLA
STA $FA,X
RTS
.endproc
sub_e679:
LDA $0010
BEQ lbl_e6cd
LDA #5
JSR set_prg_bank
JSR $B5EB
BEQ lbl_e6cd
LDA $6BAE
LDX #$04
JMP $71ED
LDY $0010
BEQ lbl_e6b8
LDA $0098
STA local2
LDA #5
JSR set_prg_bank
JSR $A3F6
LDY local1
lbl_e6a1:
STY $00E7
JSR switch_jump
.addr $B522
.addr $B517
.addr $B522
.addr $B522
.addr $B522
.addr $B522
.addr $B522
.addr $B522
.addr $B517
lbl_e6b8:
LDY $0098
LDA #$00
BEQ lbl_e6a1
.byte $01,$02,$04,$08,$10,$20,$40,$80
sub_e6c6:
JSR sub_e6ce
ORA #$20
STA (local0),Y
lbl_e6cd:
RTS
sub_e6ce:
LDA $6BAF
STA local0
LDA $6BB0
STA local1
LDY $00EB
LDA (local0),Y
RTS
lbl_e6dd:
LDA $0071
STA $0083
LDA $0085
STA $0097
JMP lbl_e70c
lbl_e6e8:
PLA
lbl_e6e9:
RTS
sub_e6ea:
JSR $7314
BNE lbl_e6e9
LDA $00BF
BMI lbl_e6e9
LDA $00AB
CMP #$3F
BEQ lbl_e6e9
LDX #$01
LDA $0350
CMP #$17
BEQ lbl_e6dd
CMP #$2A
BEQ lbl_e6dd
CMP #$30
BEQ lbl_e6dd
LDX #$13
lbl_e70c:
LDA $00AB
sub_e70e:
PHA
LDA $03A8,X
CMP #$F0
BCC lbl_e719
LSR
BCC lbl_e6e8
lbl_e719:
JSR sub_fa93
PLA
TAX
LDA $72C8,X
CMP #$30
BEQ lbl_e731
AND #$0F
lbl_e727:
STA local4
LDA $72A4,X
TAX
TAY
JMP lbl_e73a
lbl_e731:
LDA #$FF
BNE lbl_e727
LDA $0657,X
STA local4
lbl_e73a:
LDA $72EC,X
CPX #$16
BEQ lbl_e74d
CPX #$1A
BEQ lbl_e74d
CPX #$1B
BEQ lbl_e74d
CPX #$19
BNE lbl_e756
lbl_e74d:
LDA $0015
AND #$08
LSR
LSR
LSR
ADC #$01
lbl_e756:
CPX #$00
BEQ lbl_e773
CPX #$04
BEQ lbl_e773
CPX #$02
BEQ lbl_e773
CPX #$07
BEQ lbl_e773
CPX #$0B
BEQ lbl_e773
lbl_e76a:
LDX #$00
STX $000C
LDX #$0F
JMP $790c
lbl_e773:
CLC
ADC local4
CPX #$00
BNE lbl_e76a
CMP #$02
BNE lbl_e76a
LDY #$20
JMP lbl_e76a
lbl_e783:
LDX #$07
STX $0656
BNE lbl_e7a0
sub_e78a:
LDX $0656
BEQ lbl_e7b5
LDA $0657,X
BEQ lbl_e7ee
CPX #$0F
BNE lbl_e7a0
LDY $065E
BNE lbl_e783
LSR
ORA #$01
lbl_e7a0:
STA local4
LDA #$1F
STA local1
LDA #$7C
STA local0
LDA #5
JSR set_prg_bank
JSR $B81C
JMP lbl_e7d7
lbl_e7b5:
LDX #$1E
lbl_e7b7:
LDA $0657,X
BNE lbl_e7a0
DEX
CPX #$1C
BNE lbl_e7b7
LDX #$00
JMP lbl_e7cb
lbl_e7c6:
LDA $0657,X
BNE lbl_e7d7
lbl_e7cb:
TXA
TAY
LDA #5
JSR set_prg_bank
LDA #$02
JSR $B7C8
lbl_e7d7:
LDX #0
LDA $0657,X
BEQ lbl_e847
LDA #$1F
STA local1
LDA #$94
STA local0
LDA #5
JSR set_prg_bank
JMP $B81C
lbl_e7ee:
CPX #$07
BNE lbl_e7c6
LDA $0666
BEQ lbl_e7cb
LDX #$0F
STX $0656
BNE lbl_e7c6
sub_e7fe:
LDA $0505
BEQ lbl_e859
DEC $0506
BEQ lbl_e848
LDA #$40
STA $00AC
LDA $0070
STA $0083
LDA $0084
SEC
SBC #$10
STA $0097
LDX #$00
JSR sub_fa93
JSR $7988
STA $000C
LDA #$48
STA $0343
LDA #$4C
STA $0344
LDY #$21
JSR $792C
INC $0504
LDA $0505
LDX #$13
JSR sub_e70e
DEC $0504
LDA $0052
BEQ lbl_e847
LDA #$08
STA $024D
lbl_e847:
RTS
lbl_e848:
LDA #$00
STA $00AC
STA $0505
LDY $0010
BEQ lbl_e859
LDA $EBE0,Y
STA musicRequest
lbl_e859:
RTS
sub_e85a:
LDY $00EB
LDA $69FE,Y
AND #$3F
RTS
sub_e862:
STA $0005
TXA
PHA
LDA $70,X
STA local3
LDA $84,X
STA local2
JSR $7570
LDX $0301
LDA local0
STA $0302,X
STA $0307,X
LDA local1
STA $0303,X
STA $0308,X
INC $0308,X
LDA $0005
STA $0305,X
STA $0306,X
STA $030A,X
STA $030B,X
CMP #$46
BCC lbl_e8ac
CMP #$F3
BCS lbl_e8ac
CLC
ADC #$02
STA $030A,X
STA $030B,X
INC $0306,X
INC $030B,X
lbl_e8ac:
LDA #$82
STA $0304,X
STA $0309,X
LDA #$FF
STA $030C,X
TXA
CLC
ADC #$0A
STA $0301
PLA
TAX
LDA #5
JSR set_prg_bank
JSR $ABC4
LDA $00F7
BEQ lbl_e8d3
LDA #$04
JSR set_prg_bank
lbl_e8d3:
LDA #$00
STA $00F7
RTS
sub_e8d8:
LDA #5
JSR set_prg_bank
JSR $AC07
LDY #$00
lbl_e8e2:
LDA $000A
STA ($00),Y
JSR $7274
LDA local0
CMP #$F0
BNE lbl_e8e2
LDA local1
CMP #$67
BNE lbl_e8e2
RTS
.word $Ffff
;save file?
sub_e8f8:
LDA $00F4
BNE lbl_e919
LDA #$01
JSR set_prg_bank
JSR $8D00
LDA #$06
JSR set_prg_bank
JSR $808C
LDA #$5A
STA $6001
LDA #$A5
STA $7FFF
INC $00F4
RTS
lbl_e919:
LDA #5
JSR set_prg_bank
LDA $0012
JSR switch_jump
.addr lbl_e94b
.addr lbl_e96f
.addr lbl_e977
.addr lbl_e9d8
.addr $877B
.addr lbl_ea6b
.addr $B07A
.addr lbl_e9a1
.addr $8600
.addr $910A
.addr $B0FC
.addr $9080
.addr $9097
.addr $861A
.addr lbl_e9c3
.addr lbl_e9c3
.addr $8628
.addr $8A2F
.addr $A833
.addr lbl_e9cb
lbl_e94b:
LDA $00F5
CMP #$5A
BEQ lbl_e959
LDA #$02
JSR set_prg_bank
JMP $8012
lbl_e959:
LDA $00F6
CMP #$A5
BEQ lbl_e967
LDA #$01
JSR set_prg_bank
JMP $8D47
lbl_e967:
LDA #$02
JSR set_prg_bank
JMP $9000
lbl_e96f:
LDA #$02
JSR set_prg_bank
JMP $A28A
lbl_e977:
JSR disable_rendering
LDA $0013
BNE lbl_e999
JSR sub_ea00
LDY #$7F
lbl_e983:
STA $0560,Y
DEY
BPL lbl_e983
LDA #$03
JSR set_prg_bank
JSR $8044
LDA #$01
JSR set_prg_bank
JSR $8D00
lbl_e999:
LDA #$06
JSR set_prg_bank
JMP $803E
lbl_e9a1:
LDA #5
JSR set_prg_bank
JSR $82A8
LDA $00E3
BEQ lbl_e9c2
LDA $00F3
BNE lbl_e9c2
INC $00F3
LDA $0098
CMP #$04
BCC lbl_e9bd
LDA #$0F
bne lbl_e9bf
lbl_e9bd:
LDA #$0E
lbl_e9bf:
JSR mmc_control
lbl_e9c2:
RTS
lbl_e9c3:
LDA #$02
JSR set_prg_bank
JMP $9E11
lbl_e9cb:
LDA #$0F
JSR mmc_control
LDA #$02
JSR set_prg_bank
JMP $A900
lbl_e9d8:
LDA #5
JSR set_prg_bank
JSR disable_rendering
LDA $0013
JSR switch_jump
.addr lbl_e9f7
.addr lbl_ea11
.addr $B000
.addr $B009
.addr $B010
.addr $B016
.addr $B01D
.addr $B02A
.addr $B036
lbl_e9f7:
LDA #$01
STA $0017
INC $0013
JSR sub_e46d
sub_ea00:
LDY #$05
LDA #$00
STA $0529
lbl_ea07:
STA $0621, Y
DEY
BPL lbl_ea07
RTS
arr_ea0e: .byte $00,$04,$08
lbl_ea11:
LDA $0010
BNE lbl_ea1c
LDA $0526
CMP #$FF
BNE lbl_ea1f
lbl_ea1c:
LDA $6BAD
lbl_ea1f:
STA $00EB
CMP $0526
BNE lbl_ea2b
LDA #$FF
STA $0526
lbl_ea2b:
LDX $0016
LDY arr_ea0e,X
LDA $6804,Y
STA $6B92
LDA #$18
STA $0014
INC $0013
RTS
sub_ea3d:
JSR sub_e5f7
JSR $71DE
JSR sub_e679
LDA #5
JSR set_prg_bank
JSR $8929
JMP sub_e78a
LDA #$00
STA $00AC
STA $066C
RTS
arr_ea59: .byte $08,$36,$0A,$0A,$0A,$0A,$7C,$7C,$7C
arr_ea62: .byte $3D,$3E,$38,$39,$32,$31,$43,$44,$45
lbl_ea6b:
JSR sub_ea3d
JSR sub_f23c
LDA $10
BEQ lbl_ea89
LDY #$08
LDA $0350
lbl_ea7a:
CMP arr_ea62,Y
BNE lbl_ea84
LDX arr_ea59,Y
BNE lbl_eac9
lbl_ea84:
DEY
BPL lbl_ea7a
BMI lbl_eabc
lbl_ea89:
LDA $EB
CMP #$0F
BNE lbl_ea98
LDA $5A
BNE lbl_ea98
LDA #$04
STA musicEffectRequest
lbl_ea98:
LDX #$20
LDA $035A
CMP #$65
BEQ lbl_eac9
CMP #$66
BEQ lbl_eaab
CMP #$62
BNE lbl_eab8
LDX #$24
lbl_eaab:
LDY $EB
LDA $68FE,Y
AND #$01
BNE lbl_eac9
LDX #$22
BNE lbl_eac9
lbl_eab8:
LDX #$7a
BNE lbl_eac9
lbl_eabc:
LDY #$03
lbl_eabe:
LDA $6B9D,Y
STA $6817,Y
DEY
BPL lbl_eabe
LDX #$06
lbl_eac9:
STX $14
LDA #5
JSR set_prg_bank
JSR $B05E
LDA $10
BEQ lbl_eadd
JSR sub_e6c6
JSR $7512
lbl_eadd:
LDA #5
JSR set_prg_bank
JSR $B83A
LDY #$00
LDX #$05
LDA $EB
lbl_eaeb:
CMP $0621,X
BNE lbl_eaf1
INY
lbl_eaf1:
DEX
BPL lbl_eaeb
CPY #$00
BNE lbl_eb0D
LDX $0620
STA $0621,X
INC $0620
LDA $0620
CMP #$06
BCC lbl_eb0D
LDA #$00
STA $0620
lbl_eb0D:
LDA $12
CMP #$05
BNE lbl_eb1f
LDA $10
BEQ lbl_eb22
LDA #5
JSR set_prg_bank
JSR $9328
lbl_eb1f:
JMP $6C90
lbl_eb22:
LDA #$01
JSR set_prg_bank
JMP $A121
.byte $FF,$FF,$FF,$FF,$FF,$FF
sub_eb30:
LDA #$02
JSR set_prg_bank
LDA $0012
JSR switch_jump
.addr $9020
.addr $A591
.addr lbl_eb96
.addr lbl_ebaa
.addr lbl_ebc0
.addr lbl_ec1b
.addr lbl_ebc0
.addr lbl_eb62
.addr lbl_eb76
.addr lbl_ec1b
.addr lbl_ec1b
.addr lbl_ec1b
.addr lbl_ec1b
.addr $A6AD
.addr $9EF0
.addr $9FC5
.addr lbl_eb7e
.addr lbl_eb86
.addr lbl_eb8e