-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpause.asm
More file actions
1119 lines (1057 loc) · 42.4 KB
/
pause.asm
File metadata and controls
1119 lines (1057 loc) · 42.4 KB
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
; bank 2
; temporary RAM
pauseLineStart = laserLowestYRight
pauseLineCount = laserLowestYLeft
pauseLinePos = laserEnemyPointerRight
lastPauseDir = laserLowestY
pauseScrollOffsertY = laserEnemyPointerLeft
debouncePause = laserEnemyPointerLeft + 1
PAUSE_SCROLL_OFFSET = 40
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
TEST_PAUSE_WRITING macro
dec pauseLineCount
lbeq pauseWritingDone
endm
;
; .....................................................
;
DEC_YPOS_to_d macro
TEST_PAUSE_WRITING
ldd pauseLinePos
suba #$10
sta pauseLinePos
adda pauseScrollOffsertY
endm
;
; .....................................................
;
LDD_CURRENT_SECONDARY_POS macro posx
lda pauseLinePos
adda pauseScrollOffsertY
ldb #posx
endm
;
; .....................................................
;
fillLevelString ;#isfunction
ldb levelCount
incb
cmpb #25
ble flsCont
decb ; correct boss
cmpb #50
ble flsCont
decb ; correct boss
cmpb #75
ble flsCont
decb ; correct boss
flsCont
fillLevelStringB
sex
ldu #levelConversionString
jsr wordToDecString
leau 3,u
jsr leadingZeroToSpace
rts
;
; .....................................................
;
; all possible stat "lines"
pstartLines
dw line14 ; difficulty
dw line0_ ; rank
dw line0 ; level
dw line2 ; lives
dw line1 ; cash
dw line3
dw line4
dw line19_4
dw line5
dw line6
dw line7 ; speed
dw line9 ; Bullet
dw line8 ; rate
dw line19_3
dw line19_5
dw line19_6
dw line9b
dw line10
dw line11
dw line12
dw line13
dw line19_1
dw line19_2
dw line19a
dw line20
dw line21
dw line22
dw line23
dw line24
dw line25
dw 0
DrunkString1
db "*Hicks* !",$80
DrunkString2
db "Nice ... bright bullets",$80
DrunkString3
db "... everywhere ...",$80
DrunkString4
db "so shiny.",$80
drunkenPause
ldd #$f850
std Vec_Text_HW
JSR getButtonState ; get button status
bita #8 ; button 4 unpause
bne drunkPauseCont
lda #$fb ;10
sta Vec_Text_HW
REPLACE_1_2_main12_varFrom1_2 ; bank 1 replace
ldx #0 ; main12
jmp jmpBank1X
drunkPauseCont
jsr Intensity_5F
lda gameScale
sta <VIA_t1_cnt_lo
ldd #$4088
ldu #DrunkString1
jsr syncPrintStrd ; Print5Strd
; _ZERO_VECTOR_BEAM
ldd #$2088
ldu #DrunkString2
jsr syncPrintStrd ; Print5Strd
; _ZERO_VECTOR_BEAM
ldd #$1088
ldu #DrunkString3
jsr syncPrintStrd ; Print5Strd
; _ZERO_VECTOR_BEAM
ldd #$0088
ldu #DrunkString4
jsr syncPrintStrd ; Print5Strd
; _ZERO_VECTOR_BEAM
ldd #$e088
ldu #DrunkString1
jsr syncPrintStrd ; Print5Strd
; _ZERO_VECTOR_BEAM
bra pauseLoop
;
; .....................................................
;
pause00: ;#isfunction
pause_0_0: ;#isfunction
; debounce butons
JSR getButtonState ; get button status
if ADDITIONAL_INPUT = 1
cmpa #$f
bne pause00
lda #25
sta debouncePause
endif
JSR Init_Music_Buf ; shadow regs
REPLACE_1_2_copySoundRegs_varFromIRQ1_5
ldx #0 ; copySoundRegs
jsr jsrBank1_fromBank2_T1
clr pauseLineStart
clr lastPauseDir
clr pauseScrollOffsertY
;;;;;
pauseLoop
lda debouncePause
beq PSloop1
dec debouncePause
PSloop1
lda pauseScrollOffsertY
beq doNothingOffsetty
bpl decreaseOffsetPause
inc pauseScrollOffsertY
inc pauseScrollOffsertY
bra doNothingOffsetty
decreaseOffsetPause
dec pauseScrollOffsertY
dec pauseScrollOffsertY
doNothingOffsetty
ldb <VIA_t2_hi
stb t2_rest
clra
sta <VIA_shift_reg
if IS_VIA_FAULTY_RESISTENT = 1
JSR my_wait_recal ;Wait_Recal
else
JSR Wait_Recal
endif
tst drunkTimer
lbne drunkenPause
ldd #$f850
std Vec_Text_HW
lda #5
sta pauseLineCount
if ADDITIONAL_INPUT = 1
ldb debouncePause
bne clearPuaseChange; noDirCheck_devounce
ldb additionalFlags
andb #BIT_INPUT_VARIANT
beq defaultInput_P ; beq
bra dontgetJoystick
defaultInput_P
endif
jsr Joy_Digital_vertical_0_0
dontgetJoystick
lda Vec_Joy_1_Y
beq clearPuaseChange
cmpa lastPauseDir
beq noJoyPauseChange
tst Vec_Joy_1_Y
bpl pauseDirDown
pauseDirUp
sta lastPauseDir
ldb #5 ; page scroll 5 lines per page
scrollOnUp
inc pauseLineStart
lda pauseLineStart
adda #4
ldx #pstartLines
lsla
ldx a,x
bne doPageScrollUp
dec pauseLineStart
bra noJoyPauseChange
doPageScrollUp
lda #-PAUSE_SCROLL_OFFSET
sta pauseScrollOffsertY
decb
bne scrollOnUp
bra noJoyPauseChange
pauseDirDown
sta lastPauseDir
lda pauseLineStart
lbeq askSaveGame
ldb #5 ; page scroll 5 lines per page
scrollOnDown
dec pauseLineStart
bpl doPageScrollDown
clr pauseLineStart
bra noJoyPauseChange
doPageScrollDown
lda #PAUSE_SCROLL_OFFSET
sta pauseScrollOffsertY
decb
bne scrollOnDown
bra noJoyPauseChange
clearPuaseChange
sta lastPauseDir
noJoyPauseChange
JSR getButtonState ; get button status
if ADDITIONAL_INPUT = 1
ldb additionalFlags
andb #BIT_INPUT_VARIANT
beq defaultInput_P2 ; beq
; remap button 2 to button 1
; clr button 1
ora #1
bita #2
bne notPressed21
anda #$f-1 ; press button 1
notPressed21
defaultInput_P2
endif
bita #1 ; button 4 unpause
bne noPauseHelp
REPLACE_1_2_showPSHelp_varFromIRQ0_1
ldx #0 ;showPSHelp
jmp doShiftIRQ
noPauseHelp
bita #8 ; button 4 unpause
bne pauseCont
jmp backFromPause
;REPLACE_1_2_main12_varFrom1_1 ; bank 1 replace
; ldx #0 ; main12
; jmp jmpBank1X
;inStorageCont
pauseCont
; Print highscore
REPLACE_1_2_displayScore_varFrom1_1 ; bank 1 replace
ldx #0 ; displayScore
jsr jsrBank1X
lda #$5f
_INTENSITY_A
lda gameScale
sta VIA_t1_cnt_lo
; Print PAUSE
ldd #$58d0 ;6ad0
ldu #pauseString ;pauseString
jsr Print5Strd
_ZERO_VECTOR_BEAM
ldd #$fb *256+5 ;10
sta Vec_Text_HW
; lda #5
stb pauseLineCount
ldd #$2690 ;#$26a0
std pauseLinePos
lda pauseLineStart
ldx #pstartLines
lsla
leax a,x
ldd pauseLinePos
adda pauseScrollOffsertY
jmp [,x]
line14
lda difficulty
anda #0xf ; blend out "hardcore"
bne line15
ldu #pEasyString
bra difDone
line15
cmpa #1
bne line16
ldu #pnormaString
bra difDone
line16
cmpa #2
bne line17
ldu #phardString
bra difDone
line17
cmpa #3
bne line18
ldu #pimpossibleString
bra difDone
line18
ldu #psuperimpossibleString
bra difDone
difDone
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line0_
lda officerRankTmp
ldu #rankPointer
lsla
ldu a,u
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
;; _ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line0
; Print Level + number
; ldd pauseLinePos
ldu #currentLeveString
jsr syncPrintStrd ; Print5Strd
;; _ZERO_VECTOR_BEAM
jsr fillLevelString
lda pauseLinePos
LDD_CURRENT_SECONDARY_POS $50
jsr syncPrintStrd ; Print5Strd
;; _ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line2
; print lives+ number
ldu #LivesString ;LivesString
jsr syncPrintStrd ; Print5Strd
;; _ZERO_VECTOR_BEAM
ldu #playerLivesString
LDD_CURRENT_SECONDARY_POS $46
jsr syncPrintStrd ; Print5Strd
;; _ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line1
; Print Cash + number
tst difficulty
bmi noChashDisplay
ldu #cashString ;cashString
jsr syncPrintStrd ; Print5Strd
;; _ZERO_VECTOR_BEAM
ldd playerCashW
ldu #StringOutputBuffer_4
jsr wordToDecString
LDD_CURRENT_SECONDARY_POS $30
ldu #StringOutputBuffer_4
jsr syncPrintStrd ; Print5Strd
noChashDisplay
;; _ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line3
; print shots fired + number
ldu #shotsFiredString ;shotsFiredString
jsr syncPrintStrd ; Print5Strd
;; _ZERO_VECTOR_BEAM
ldd playerShotCountW
ldu #StringOutputBuffer_4
jsr wordToDecString
LDD_CURRENT_SECONDARY_POS $30
ldu #StringOutputBuffer_4
jsr syncPrintStrd ; Print5Strd
;; _ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line4
; print enemies hit + number
ldu #enemiesHitString ;enemiesHitString
jsr syncPrintStrd ; Print5Strd
;; _ZERO_VECTOR_BEAM
ldd playerHitCountW
ldu #StringOutputBuffer_4
jsr wordToDecString
LDD_CURRENT_SECONDARY_POS $30
ldu #StringOutputBuffer_4
jsr syncPrintStrd ; Print5Strd
;; _ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line19_4
; WEAPON
lda playerNumberOfBulletsPerShot
deca
lsla
ldu #Weapons
ldu a,u
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line5
; print timer + number
ldu #timerString2 ;timerString2
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
ldd bonusTimerLength
MY_LSL_D ; *2 (/ 100 - but that is only leave out the last two 00 from printing!
ldu #StringOutputBuffer_4
jsr wordToDecString
jsr leadingZeroToSpace
ldd StringOutputBuffer_3
std StringOutputBuffer_1
lda StringOutputBuffer_4
sta StringOutputBuffer_2
ldd #$2020
std StringOutputBuffer_4
LDD_CURRENT_SECONDARY_POS $30
ldu #StringOutputBuffer_4
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line6
; Print power + number
; ldd pauseLinePos
ldu #powerString
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
clra
ldb bulletDamage
ldu #StringOutputBuffer_4
jsr wordToDecString
jsr leadingZeroToSpace
LDD_CURRENT_SECONDARY_POS $30
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line7
; Print speed + number
; ldd pauseLinePos
ldu #shipSpeedString
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
ldd playerSpeed
ldu #StringOutputBuffer_4
jsr wordToDecString
jsr leadingZeroToSpace
LDD_CURRENT_SECONDARY_POS $30
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line9
; Print bullets + number
ldu #bulletsString
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
clra
ldb playerMaxShotInAir
ldu #StringOutputBuffer_4
jsr wordToDecString
jsr leadingZeroToSpace
LDD_CURRENT_SECONDARY_POS $30
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line8
; Print rate + number
; ldd pauseLinePos
ldu #rateString
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
ldd playerShotSpeed
ldu #StringOutputBuffer_4
jsr wordToDecString
jsr leadingZeroToSpace
LDD_CURRENT_SECONDARY_POS $30
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line19_3
; RANK MARKER
ldu #rankMarkerString
; ldd pauseLinePos
jsr syncPrintStrd ; Print5Strd ; Print5Strd 5Strd
_ZERO_VECTOR_BEAM
ldb smartBombsAvailable
clra
ldu #StringOutputBuffer_6
lda rankCollected
bita #COLLECTED_RANK1
bne rank1Collected
ldb # '0'
bra rank1BuildDone
rank1Collected
ldb # '1'
rank1BuildDone
stb ,u+
bita #COLLECTED_RANK2
bne rank2Collected
ldb # '0'
bra rank2BuildDone
rank2Collected
ldb # '1'
rank2BuildDone
stb ,u+
bita #COLLECTED_RANK3
bne rank3Collected
ldb # '0'
bra rank3BuildDone
rank3Collected
ldb # '1'
rank3BuildDone
stb ,u+
bita #COLLECTED_RANK4
bne rank4Collected
ldb # '0'
bra rank4BuildDone
rank4Collected
ldb # '1'
rank4BuildDone
stb ,u+
bita #COLLECTED_RANK5
bne rank5Collected
ldb # '0'
bra rank5BuildDone
rank5Collected
ldb # '1'
rank5BuildDone
stb ,u+
bita #COLLECTED_RANK6
bne rank6Collected
ldb # '0'
bra rank6BuildDone
rank6Collected
ldb # '1'
rank6BuildDone
stb ,u+
ldb #$80
stb ,u+
ldu #StringOutputBuffer_6
LDD_CURRENT_SECONDARY_POS $25
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line19_5
; ARMOR/SHIELD/SUCKING
BITFIELD_ARMOR = $80
BITFIELD_SHIELD = $40
BITFIELD_SCOOP = $20
BITFIELD_NOT_SCOOP = $ff-$20
;
;
lda playerBonusActive
cmpa #$80
bne notArmor
ldu #armorPauseString
bra print19_5
notArmor
cmpa #$40
bne notShield
ldu #shieldPauseString
bra print19_5
notShield
cmpa #$20
bne notScoop
ldu #scoopPauseString
bra print19_5
notScoop
ldu #secretUNKOWN2
print19_5
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line19_6
; AUTOFIRE
ldb diverseFlags
andb #BIT_FLAG_AUTOFIRE
beq line20_6
ldu #autofirePauseString
bra line20_6a
line20_6
ldu #noautofirePauseString
line20_6a
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
;
line9b
ldu #secretUNKOWN
ldb lockPurchased
andb #%00100000
beq line9b_1
ldu #pScoopShieldString
line9b_1
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line10
; Print bullets + immunity 1
ldu #secretUNKOWN
lda downgradeImmunity
anda #IMUNITY_BITS
beq line10_unkown
ldu #immunity1String ;
line10_unkown
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line11
; Print bullets + immunity 2
ldu #secretUNKOWN
lda downgradeImmunity
anda #IMUNITY_2
cmpa #2
bne line11_unkown
ldu #immunity2String_ ;
line11_unkown
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
; Weapon lock
line12
ldb lockPurchased
andb #%00001111
beq line12_unkown
ldd pauseLinePos
adda pauseScrollOffsertY
ldu #wlockString
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
clra
ldb lockPurchased
andb #%00001111
ldu #StringOutputBuffer_4
jsr wordToDecString
jsr leadingZeroToSpace
LDD_CURRENT_SECONDARY_POS $30
bra line13_a
line12_unkown
ldd pauseLinePos
adda pauseScrollOffsertY
ldu #secretUNKOWN
line13_a
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
;
line13
ldu #secretUNKOWN
ldb lockPurchased
andb #%00010000
beq line13_unkown
ldu #slockString
line13_unkown
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line19_1
lda inGameSecrets
anda #SECRET_3_BULLET_SUCKERS
beq line19_1_unkown
ldu #superBombsAvailable
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
ldb smartBombsAvailable
clra
ldu #StringOutputBuffer_4
jsr wordToDecString
jsr leadingZeroToSpace
LDD_CURRENT_SECONDARY_POS $30
bra line19_2a
line19_1_unkown
ldu #secretUNKOWN
ldd pauseLinePos
adda pauseScrollOffsertY
line19_2a
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line19_2
lda inGameSecrets
anda #SECRET_3_BULLET_SUCKERS
beq line19_2_unkown
ldu #superDiamondsCollected
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
ldb diamondCount
clra
ldu #StringOutputBuffer_4
jsr wordToDecString
jsr leadingZeroToSpace
LDD_CURRENT_SECONDARY_POS $30
bra line19a_a
line19_2_unkown
ldu #secretUNKOWN
ldd pauseLinePos
adda pauseScrollOffsertY
line19a_a
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line19a
ldu #secretUNKOWN
lda inGameSecrets
anda #SECRET_RATE_SUCKERS
beq line19a_unkown
ldu #secretSuperBomb
line19a_unkown
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line20
ldu #secretUNKOWN
lda inGameSecrets
anda #SECRET_ORDERED_EXTRA
beq line20_unkown
ldu #secretLaser
line20_unkown
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line21
ldu #secretUNKOWN
lda inGameSecrets
anda #SECRET_3_SPEED_SUCKERS
beq line21_unkown
ldu #secretshield
line21_unkown
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line22
ldu #secretUNKOWN
lda inGameSecrets
anda #SECRET_3_BULLET_SUCKERS
beq line22_unkown
ldu #secretStatus
line22_unkown
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line23
ldu #secretUNKOWN
lda inGameSecrets
anda #SECRET_3_RATE_SUCKERS
beq line23_unkown
ldu #secretDodger2
line23_unkown
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd ; Print5Strd nt5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line24
ldu #secretUNKOWN
lda inGameSecrets
anda #SECRET_ORDERED_RANKS
beq line24_unkown
ldu #secretDodger5
line24_unkown
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line25
ldu #secretUNKOWN
lda inGameSecrets
anda #SECRET_3_FIFTY
beq line25_unkown
ldu #secretPayback
line25_unkown
ldd pauseLinePos
adda pauseScrollOffsertY
jsr syncPrintStrd ; Print5Strd
_ZERO_VECTOR_BEAM
DEC_YPOS_to_d
line26
pauseWritingDone
jsr calibrationZero7
lda gameScale
sta <VIA_t1_cnt_lo
lda pauseLineStart
cmpa #$19
beq noPageDown
lda pauseScrollOffsertY
bpl noHiIntDown
; jsr Intensity_7F // intensity is taboo it destroys patterns
lda #$7f
_INTENSITY_A
noHiIntDown
ldd #$a060
if IS_VIA_FAULTY_RESISTENT = 1
jsr my_Moveto_d ; Moveto_d
else
JSR Moveto_d
endif
lda #7
sta <VIA_t1_cnt_lo
ldu #arrowDoubleDown
jsr SMVB_drawSmart
lda pauseLineStart
lbeq updiskDraw
noPageDown
lda gameScale
sta <VIA_t1_cnt_lo
lda pauseScrollOffsertY
bmi noHiIntUp
beq noHiIntUp
; jsr Intensity_7F // intensity is taboo it destroys patterns
lda #$7f
_INTENSITY_A
bra passedHiINt
noHiIntUp
; jsr Intensity_3F // intensity is taboo it destroys patterns
lda #$3f
_INTENSITY_A
passedHiINt
ldd #$5860
if IS_VIA_FAULTY_RESISTENT = 1
jsr my_Moveto_d ; Moveto_d
else
JSR Moveto_d
endif
lda #7
sta <VIA_t1_cnt_lo
ldu #arrowDoubleUp
jsr SMVB_drawSmart
jmp pauseLoop
updiskDraw
if RECORD_GAME_DATA
else
lda gameScale
sta <VIA_t1_cnt_lo
lda #$3f
_INTENSITY_A
ldd #$5860
if IS_VIA_FAULTY_RESISTENT = 1
jsr my_Moveto_d ; Moveto_d
else
JSR Moveto_d
endif
lda #7
sta <VIA_t1_cnt_lo
ldu #UpDisk
jsr SMVB_drawSmart
endif
jmp pauseLoop
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
arrowDoubleDown
; db $00, $01, $50, hi(SMVB_startDraw_double), lo(SMVB_startDraw_double)
; db -$50, $01, -$50, hi(SMVB_continue2_single), lo(SMVB_continue2_single)
; db $50, $01, -$50
; db $53, $01, $00, hi(SMVB_startMove_single), lo(SMVB_startMove_single)
; db $00, $01, $50, hi(SMVB_startDraw_double), lo(SMVB_startDraw_double)
; db -$50, $01, -$50, hi(SMVB_continue2_single), lo(SMVB_continue2_single)
; db $50, $01, -$50
; db $40, $00, $00, hi(SMVB_lastDraw_rts), lo(SMVB_lastDraw_rts)
arrowDown
db -$50, $01, $50, hi(SMVB_startDraw_single), lo(SMVB_startDraw_single)
db $50, $01, $50, hi(SMVB_continue_newY_eq_oldX_single), lo(SMVB_continue_newY_eq_oldX_single) ; y is $50
db $00, $01, -$50, hi(SMVB_continue_double), lo(SMVB_continue_double)
db $40, $00, $00, hi(SMVB_lastDraw_rts), lo(SMVB_lastDraw_rts)
arrowDoubleUp
; db $00, $01, $50, hi(SMVB_startDraw_double), lo(SMVB_startDraw_double)
; db $50, $01, -$50, hi(SMVB_continue2_single), lo(SMVB_continue2_single)
; db -$50, $01, -$50
; db -$53, $01, $00, hi(SMVB_startMove_single), lo(SMVB_startMove_single)
; db $00, $01, $50, hi(SMVB_startDraw_double), lo(SMVB_startDraw_double)
; db $50, $01, -$50, hi(SMVB_continue2_single), lo(SMVB_continue2_single)
; db -$50, $01, -$50
; db $40, $00, $00, hi(SMVB_lastDraw_rts), lo(SMVB_lastDraw_rts)
arrowUp
db $50, $01, $50, hi(SMVB_startDraw_yEqx_single), lo(SMVB_startDraw_yEqx_single) ; y is $50
db -$50, $01, $50, hi(SMVB_continue_single), lo(SMVB_continue_single)
db $00, $01, -$50, hi(SMVB_continue_double), lo(SMVB_continue_double)
db $40, $00, $00, hi(SMVB_lastDraw_rts), lo(SMVB_lastDraw_rts)
UpDisk
db -$42, $01, $44, hi(SMVB_continue_single), lo(SMVB_continue_single)
db $00, $01, $10, hi(SMVB_startDraw_single), lo(SMVB_startDraw_single)
db -$0A, $01, $00, hi(SMVB_continue3_single), lo(SMVB_continue3_single)
db $00, $01, -$10
db $0A, $01, $00
db -$0C, $01, -$4F, hi(SMVB_startMove_double), lo(SMVB_startMove_double)
db $00, $01, $5B, hi(SMVB_startDraw_double), lo(SMVB_startDraw_double)
db $5B, $01, $00, hi(SMVB_continue_double), lo(SMVB_continue_double)
db $00, $01, -$5B, hi(SMVB_continue_double), lo(SMVB_continue_double)
db -$5B, $01, $00, hi(SMVB_continue_double), lo(SMVB_continue_double)
db $57, $01, $37, hi(SMVB_startMove_double), lo(SMVB_startMove_double)
db $00, $01, $18, hi(SMVB_startDraw_single), lo(SMVB_startDraw_single)
db -$30, $01, $00, hi(SMVB_continue3_single), lo(SMVB_continue3_single)
db $00, $01, -$18
db $30, $01, $00
db $07, $01, $23, hi(SMVB_startMove_single), lo(SMVB_startMove_single)
db -$3F, $01, $00, hi(SMVB_startDraw_single), lo(SMVB_startDraw_single)
db $00, $01, -$69, hi(SMVB_continue2_single), lo(SMVB_continue2_single)
db $3F, $01, $00
db $40, $00, $00, hi(SMVB_lastDraw_rts), lo(SMVB_lastDraw_rts)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
pauseString
db "PAUSE",$80
currentLeveString
db "Level",$80
shotsFiredString
db "Shots fired",$80