-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathc.lst
11629 lines (11629 loc) · 496 KB
/
c.lst
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
mads 2.1.0 build 8 (23 Dec 19)
Source: c.asm
1 //Commando konwersja z C64 na Atari+VBXE
2
3 icl 'atari.hea'
Source: atari.hea
1
2 .enum @dmactl
3 = 0000 blank = %00
4 = 0001 narrow = %01
5 = 0002 standard= %10
6 = 0003 wide = %11
7 = 0004 missiles= %100
8 = 0008 players = %1000
9 = 0010 lineX1 = %10000
10 = 0000 lineX2 = %00000
11 = 0020 dma = %100000
12 .ende
13
14 = 003F scr48 = @dmactl(wide|dma|players|missiles|lineX1) ;screen 48b
15 = 003E scr40 = @dmactl(standard|dma|players|missiles|lineX1) ;screen 40b
16 = 003D scr32 = @dmactl(narrow|dma|players|missiles|lineX1) ;screen 32b
17
18 .enum @pmcntl
19 = 0001 missiles= %1
20 = 0002 players = %10
21 = 0004 trigs = %100
22 .ende
23
24 .enum @gtictl
25 = 0000 prior0 = %0
26 = 0001 prior1 = %1
27 = 0002 prior2 = %10
28 = 0004 prior4 = %100
29 = 0008 prior8 = %1000
30 = 0010 ply5 = %10000 ; Fifth Player Enable
31 = 0020 mlc = %100000 ; Multiple Color Player Enable
32 = 0040 mode9 = %01000000
33 = 0080 mode10 = %10000000
34 = 00C0 mode11 = %11000000
35 .ende
36
37
38 * ---------------------------------------------------------------------------------------------
39 * --- OS
40 * ---------------------------------------------------------------------------------------------
41
42 = 0052 lmargin = $52
43 = 0053 rmargin = $53
44 = 0054 rowcrs = $54
45 = 0055 colcrs = $55
46
47 * ---------------------------------------------------------------------------------------------
48 * --- KEY ($d209)
49 * ---------------------------------------------------------------------------------------------
50 = 001C key_esc = 28
51 = 0021 key_space = 33
52 = 0010 key_v = 16
53 = 0015 key_b = 21
54 = 0023 key_n = 35
55 = 0025 key_m = 37
56
57 * ---------------------------------------------------------------------------------------------
58 * --- GTIA
59 * ---------------------------------------------------------------------------------------------
60 = D000 hposp0 = $D000 ; pozioma pozycja gracza 0 (Z)
61 = D001 hposp1 = $D001 ; pozioma pozycja gracza 1 (Z)
62 = D002 hposp2 = $D002 ; pozioma pozycja gracza 2 (Z)
63 = D003 hposp3 = $D003 ; pozioma pozycja gracza 3 (Z)
64 = D004 hposm0 = $D004 ; pozioma pozycja pocisku 0 (Z)
65 = D005 hposm1 = $D005 ; pozioma pozycja pocisku 1 (Z)
66 = D006 hposm2 = $D006 ; pozioma pozycja pocisku 2 (Z)
67 = D007 hposm3 = $D007 ; pozioma pozycja pocisku 3 (Z)
68 = D008 sizep0 = $D008 ; poziomy rozmiar gracza 0 (Z)
69 = D009 sizep1 = $D009 ; poziomy rozmiar gracza 1 (Z)
70 = D00A sizep2 = $D00A ; poziomy rozmiar gracza 2 (Z)
71 = D00B sizep3 = $D00B ; poziomy rozmiar gracza 3 (Z)
72 = D00C sizem = $D00C ; poziomy rozmiar pocisków (Z)
73 = D00D grafp0 = $D00D ; rejestr grafiki gracza 0 (Z)
74 = D00E grafp1 = $D00E ; rejestr grafiki gracza 1 (Z)
75 = D00F grafp2 = $D00F ; rejestr grafiki gracza 2 (Z)
76 = D010 grafp3 = $D010 ; rejestr grafiki gracza 3 (Z)
77 = D011 grafm = $D011 ; rejestr grafiki pocisków (Z)
78 = D012 colpm0 = $D012 ; rejestr koloru gracza i pocisku 0 (Z)
79 = D013 colpm1 = $D013 ; rejestr koloru gracza i pocisku 1 (Z)
80 = D014 colpm2 = $D014 ; rejestr koloru gracza i pocisku 2 (Z)
81 = D015 colpm3 = $D015 ; rejestr koloru gracza i pocisku 3 (Z)
82 = D016 colpf0 = $D016 ; rejestr koloru pola gry 0 (Z)
83 = D017 colpf1 = $D017 ; rejestr koloru pola gry 1 (Z)
84 = D018 colpf2 = $D018 ; rejestr koloru pola gry 2 (Z)
85 = D019 colpf3 = $D019 ; rejestr koloru pola gry 3 (Z)
86 = D01A colbak = $D01A ; rejestr koloru tła (Z)
87
88 = D016 color0 = colpf0
89 = D017 color1 = colpf1
90 = D018 color2 = colpf2
91 = D019 color3 = colpf3
92
93 = D000 kolm0pf = $D000 ; kolizja pocisku 0 z polem gry (O)
94 = D001 kolm1pf = $D001 ; kolizja pocisku 1 z polem gry (O)
95 = D002 kolm2pf = $D002 ; kolizja pocisku 2 z polem gry (O)
96 = D003 kolm3pf = $D003 ; kolizja pocisku 3 z polem gry (O)
97 = D004 kolp0pf = $D004 ; kolizja gracza 0 z polem gry (O)
98 = D005 kolp1pf = $D005 ; kolizja gracza 1 z polem gry (O)
99 = D006 kolp2pf = $D006 ; kolizja gracza 2 z polem gry (O)
100 = D007 kolp3pf = $D007 ; kolizja gracza 3 z polem gry (O)
101 = D008 kolm0p = $D008 ; kolizja pocisku 0 z graczem (O)
102 = D009 kolm1p = $D009 ; kolizja pocisku 1 z graczem (O)
103 = D00A kolm2p = $D00A ; kolizja pocisku 2 z graczem (O)
104 = D00B kolm3p = $D00B ; kolizja pocisku 3 z graczem (O)
105 = D00C kolp0p = $D00C ; kolizja gracza 0 z innym graczem (O)
106 = D00D kolp1p = $D00D ; kolizja gracza 1 z innym graczem (O)
107 = D00E kolp2p = $D00E ; kolizja gracza 2 z innym graczem (O)
108 = D00F kolp3p = $D00F ; kolizja gracza 3 z innym graczem (O)
109 = D010 trig0 = $D010 ; stan przycisku joysticka 0 (O)
110 = D011 trig1 = $D011 ; stan przycisku joysticka 1 (O)
111 = D013 trig3 = $D013 ; znacznik dołączenia cartridge-a (O)
112 = D014 pal = $D014 ; znacznik systemu TV (O)
113
114 = D01B gtictl = $D01B ; rejestr kontroli układu GTIA
115 = D01B gtiactl = gtictl
116
117 = D01C vdelay = $D01C ; licznik opóźnienia pionowego P/MG
118 = D01D pmcntl = $D01D ; rejestr kontroli graczy i pocisków
119 = D01E hitclr = $D01E ; rejestr kasowania rejestrów kolizji
120 = D01F consol = $D01F ; rejestr stanu klawiszy konsoli
121
122 * ---------------------------------------------------------------------------------------------
123 * --- POKEY
124 * ---------------------------------------------------------------------------------------------
125
126 = 0010 irqens = $0010 ; rejestr-cień IRQEN
127 = 0011 irqstat = $0011 ; rejestr-cień IRQST
128
129 = D200 audf1 = $d200 ; częstotliwość pracy generatora 1 (Z)
130 = D201 audc1 = $d201 ; rejestr kontroli dźwięku generatora 1 (Z)
131 = D202 audf2 = $d202 ; częstotliwość pracy generatora 2 (Z)
132 = D203 audc2 = $d203 ; rejestr kontroli dźwięku generatora 2 (Z)
133 = D204 audf3 = $d204 ; częstotliwość pracy generatora 3 (Z)
134 = D205 audc3 = $d205 ; rejestr kontroli dźwięku generatora 3 (Z)
135 = D206 audf4 = $d206 ; częstotliwość pracy generatora 4 (Z)
136 = D207 audc4 = $d207 ; rejestr kontroli dźwięku generatora 4 (Z)
137
138 = D208 audctl = $D208 ; rejestr kontroli generatorów dźwięku (Z)
139 = D209 stimer = $D209 ; rejestr zerowania liczników (Z)
140 = D209 kbcode = $D209 ; kod ostatnio naciśniętego klawisza (O)
141 = D20A skstres = $D20A ; rejestr statusu złącza szeregowego (Z)
142 = D20A random = $D20A ; rejestr liczby losowej (O)
143 = D20D serout = $D20D ; szeregowy rejestr wyjściowy (Z)
144 = D20D serin = $D20D ; szeregowy rejestr wejściowy (O)
145 = D20E irqen = $D20E ; zezwolenie przerwań IRQ (Z)
146 = D20E irqst = $D20E ; status przerwań IRQ (O)
147 = D20F skctl = $D20F ; rejestr kontroli złącza szeregowego (Z)
148 = D20F skstat = $D20F ; rejestr statusu złącza szeregowego (O)
149
150 = D200 pot0 = $D200 ;wiosełko 0
151 = D20B potg0 = $D20B ;zerowanie wiosełek
152
153 * ---------------------------------------------------------------------------------------------
154 * --- PIA
155 * ---------------------------------------------------------------------------------------------
156 = D300 porta = $D300 ; port A układu PIA
157 = D301 portb = $D301 ; port B układu PIA
158 = D302 pactl = $D302 ; rejestr kontroli portu A
159 = D303 pbctl = $D303 ; rejestr kontroli portu B
160
161 * ---------------------------------------------------------------------------------------------
162 * --- ANTIC
163 * ---------------------------------------------------------------------------------------------
164 = D400 dmactl = $D400 ; rejestr kontroli dostępu do pamięci
165 = D401 chrctl = $D401 ; rejestr kontroli wyświetlania znaków
166 = D402 dlptr = $D402 ; adres programu ANTIC-a
167 = D404 hscrol = $D404 ; znacznik poziomego przesuwu obrazu
168 = D405 vscrol = $D405 ; znacznik pionowego przesuwu obrazu
169 = D407 pmbase = $D407 ; adres pamięci graczy i pocisków
170 = D409 chbase = $D409 ; adres zestawu znaków
171 = D40A wsync = $D40A ; znacznik oczekiwania na synchronizację poziomą
172 = D40B vcount = $D40B ; licznik linii obrazu
173 = D40C lpenh = $D40C ; poziome położenie pióra świetlengo
174 = D40D lpenv = $D40D ; pionowe położenie pióra świetlnego
175 = D40E nmien = $D40E ; rejestr zezwoleń na przerwania NMI
176 = D40F nmist = $D40F ; rejestr statusu przerwań NMI
177
178 * ---------------------------------------------------------------------------------------------
179 * --- OS
180 * ---------------------------------------------------------------------------------------------
181
182 = 02C4 colpf0s = $02C4 ; rejestr-cień COLPF0
183 = 02C5 colpf1s = $02C5 ; rejestr-cień COLPF1
184 = 02C6 colpf2s = $02C6 ; rejestr-cień COLPF2
185 = 02C7 colpf3s = $02C7 ; rejestr-cień COLPF3
186 = 02C8 colbaks = $02C8 ; rejestr-cień COLBAK
187 = 0222 vbiv = $0222 ; systemowy wektor przerwania VBI
188 = 0200 dliv = $0200 ;systemowy wektor przerwania DLI
189 = 0216 vimirq = $0216
190
191 * ---------------------------------------------------------------------------------------------
192 * --- HARDWARE
193 * ---------------------------------------------------------------------------------------------
194
195 = FFFA nmivec = $FFFA ; wektor przerwania NMI
196 = FFFC resetvec= $FFFC ; wektor przerwania RESET
197 = FFFE irqvec = $FFFE ; wektor przerwania IRQ
4
5 opt h-
6
7 = 4000 mapa=$4000
8
9 = D014 NTSCGTIA equ $D014
10
11 org $70
12
13 zegar org *+1
14 fx_ptr org *+2
15 pom org *+2
16 pom1 org *+2
17 pom2 org *+2
18 pom0 org *+1
19 pom0a org *+1
20 zestaw_znakow org *+1
21 pot0s org *+1
22 pot0s1 org *+1
23 refr org *+1
24 vscrol1 org *+1
25 licznik_trig org *+1
26 trig0s org *+1
27 trig0s1 org *+1
28 level_m org *+1
29 level_s org *+1
30 mapa_ad org *+2
31
32
33
34
35 ;
36 ; **** CONSTANTS ****
37 ;
38 = 0010 TOTAL_MAX_SPRITES = 16
39
40 ;
41 ; **** ZP FIELDS ****
42 ;
43 = 004C f4C = $4C
44 ;
45 ; **** ZP ABSOLUTE ADDRESSES ****
46 ;
47 = 0001 a01 = $01
48 = 0014 a14 = $14
49 = 0041 a41 = $41
50 = 00A5 aA5 = $A5
51 = 00AE aAE = $AE
52 = 00D7 aD7 = $D7
53 = 00DA aDA = $DA
54 ;
55 ; **** ZP POINTERS ****
56 ;
57 = 0019 p19 = $19 ;Stores current hero animation, but seems unused
58 = 001A p1A = $1A
59 = 0022 p22 = $22 ;sprite to create: X lo
60 = 0023 p23 = $23
61 = 0024 p24 = $24 ;rows that trigger sprite type init
62 = 0025 p25 = $25
63 = 0026 p26 = $26 ;sprite to create: X hi
64 = 0027 p27 = $27
65 = 0028 p28 = $28 ;what sprite type to create at row
66 = 0029 p29 = $29
67 = 002A p2A = $2A ;charset attributes: background priority, collision, etc.
68 = 002B p2B = $2B
69 = 005D p5D = $5D ;Used by music
70 = 005E p5E = $5E ;Used by music
71 = 005F p5F = $5F ;Used by music
72 = 0060 p60 = $60 ;Used by music
73 = 00F7 pF7 = $F7
74 = 00F8 pF8 = $F8
75 = 00FB pFB = $FB ;$FB/$FC: different meanings depending to the game state
76 = 00FC pFC = $FC ; On Hiscore, it points to Screen RAM
77 ; During the game, it points to the Actions table
78 = 00FD pFD = $FD ;But $FC/$FD is also used during the game to point
79 ; to the level data and is uses with $2A to determine
80 ; the sprite-background priority/collision
81 = 00FE pFE = $FE
82 ;
83 ; **** FIELDS ****
84 ;
85 = 0000 f0000 = $0000
86 = D040 fD040 = $D040
87 = DB48 fDB48 = $DB48
88 = DB98 fDB98 = $DB98
89 = E087 fE087 = $E087
90 = E348 fE348 = $E348
91 = E398 fE398 = $E398
92 = E3F8 fE3F8 = $E3F8
93
94 ;
95 ; **** ABSOLUTE ADDRESSES ****
96 ;
97 = 003D a003D = $003D ;Tmp var used by SORT_SPRITES_BY_Y
98 = 003F a003F = $003F ;Tmp var used by SORT_SPRITES_BY_Y
99 = 004B SPRITE_IDX_TBL = $004B ;$4B-$5A sprite index, used in raster multiplexer
100 = 00A7 a00A7 = $00A7
101 = 00A8 VIC_SPRITE_IDX = $00A8 ;Index used for sprite pos (e.g: $D000,idx) in raster intr.
102 = 00C9 a00C9 = $00C9 ;Tmp var used by SORT_SPRITES_BY_Y
103 = 0400 a0400 = $0400 ;Used by GET_RANDOM
104 = 0401 a0401 = $0401 ;Used by GET_RANDOM
105 = 0402 V_SCROLL_BIT_IDX = $0402 ;pixels scrolled vertically: 0-7
106 = 0403 V_SCROLL_ROW_IDX = $0403 ;index to the row in the level: 0 means end of scroll (top of map)
107 = 0404 V_SCROLL_DELTA = $0404 ;How many pixels needs to get scrolled. $0: no scroll needed, $ff: -1 one pixel
108 = 0405 LVL_MAP_MSB = $0405 ;MSB address for the level map: lvl0=$60, lvl1=$80, lvl3=$a0
109 = 0406 IRQ_ADDR_LO = $0406
110 = 0407 IRQ_ADDR_HI = $0407
111 = 040A GAME_TICK = $040A ;Incremented from main loop
112 = 040B RASTER_TICK = $040B ;Incremented from raster routine
113
114 org $d800
115 SPRITES_X_HI00 org *+1
116 SPRITES_X_HI01 org *+3
117 SPRITES_X_HI04 org *+1
118 SPRITES_X_HI05 org *+(TOTAL_MAX_SPRITES-5)
119 SPRITES_X_LO00 org *+1
120 SPRITES_X_LO01 org *+3
121 SPRITES_X_LO04 org *+1
122 SPRITES_X_LO05 org *+(TOTAL_MAX_SPRITES-5)
123 SPRITES_Y00 org *+1
124 SPRITES_Y01 org *+3
125 SPRITES_Y04 org *+1
126 SPRITES_Y05 org *+(TOTAL_MAX_SPRITES-5)
127 SPRITES_BKG_PRI00 org *+1
128 SPRITES_BKG_PRI01 org *+3
129 SPRITES_BKG_PRI04 org *+1
130 SPRITES_BKG_PRI05 org *+(TOTAL_MAX_SPRITES-5)
131 SPRITES_COLOR00 org *+1
132 SPRITES_COLOR01 org *+3
133 SPRITES_COLOR04 org *+1
134 SPRITES_COLOR05 org *+(TOTAL_MAX_SPRITES-5)
135 SPRITES_PTR00 org *+1
136 SPRITES_PTR01 org *+3
137 SPRITES_PTR04 org *+1
138 SPRITES_PTR05 org *+(TOTAL_MAX_SPRITES-5)
139 SPRITES_DELTA_X00 org *+1
140 SPRITES_DELTA_X01 org *+3
141 SPRITES_DELTA_X04 org *+1
142 SPRITES_DELTA_X05 org *+(TOTAL_MAX_SPRITES-5)
143 SPRITES_DELTA_Y00 org *+1
144 SPRITES_DELTA_Y01 org *+3
145 SPRITES_DELTA_Y04 org *+1
146 SPRITES_DELTA_Y05 org *+(TOTAL_MAX_SPRITES-5)
147 SPRITES_TYPE00 org *+1
148 SPRITES_TYPE01 org *+3
149 SPRITES_TYPE04 org *+1
150 SPRITES_TYPE05 org *+(TOTAL_MAX_SPRITES-5)
151 SPRITES_TMP_A01 org *+3
152 SPRITES_TMP_A04 org *+1
153 SPRITES_TMP_A05 org *+(TOTAL_MAX_SPRITES-5)
154 SPRITES_TMP_B05 org *+(TOTAL_MAX_SPRITES-5) ;Used as index to delta_tbl and more. Only 11 slots (enemies only)
155 SPRITES_TMP_C05 org *+(TOTAL_MAX_SPRITES-5) ;Used for timer: Only 11 slots (enemies only)
156 SPRITES_PREV_Y00 org *+TOTAL_MAX_SPRITES
157
158 ;SPRITES_X_HI00 = $040D ;MSB for X pos
159 ;SPRITES_X_HI01 = $040E
160 ;SPRITES_X_HI04 = $0411
161 ;SPRITES_X_HI05 = $0412
162 ;SPRITES_X_LO00 = $041D ;LSB for X pos
163 ;SPRITES_X_LO01 = $041E
164 ;SPRITES_X_LO04 = $0421
165 ;SPRITES_X_LO05 = $0422
166 ;SPRITES_Y00 = $042D
167 ;SPRITES_Y01 = $042E
168 ;SPRITES_Y04 = $0431
169 ;SPRITES_Y05 = $0432
170 ;SPRITES_BKG_PRI00 = $043D
171 ;SPRITES_BKG_PRI01 = $043E
172 ;SPRITES_BKG_PRI04 = $0441
173 ;SPRITES_BKG_PRI05 = $0442
174 ;SPRITES_COLOR00 = $044D ;primary color of sprite
175 ;SPRITES_COLOR01 = $044E
176 ;SPRITES_COLOR04 = $0451
177 ;SPRITES_COLOR05 = $0452
178 ;SPRITES_PTR00 = $045D ;frame to be used by sprite
179 ;SPRITES_PTR01 = $045E
180 ;SPRITES_PTR04 = $0461
181 ;SPRITES_PTR05 = $0462
182 ;SPRITES_DELTA_X00 = $046D ;pixels to move horizontally for hero (neg or pos)
183 ;SPRITES_DELTA_X01 = $046E
184 ;SPRITES_DELTA_X04 = $0471
185 ;SPRITES_DELTA_X05 = $0472
186 ;SPRITES_DELTA_Y00 = $047D ;pixels to move vertically for hero (neg or pos)
187 ;SPRITES_DELTA_Y01 = $047E
188 ;SPRITES_DELTA_Y04 = $0481
189 ;SPRITES_DELTA_Y05 = $0482
190 ;SPRITES_TYPE00 = $048D
191 ;SPRITES_TYPE01 = $048E
192 ;SPRITES_TYPE04 = $0491
193 ;SPRITES_TYPE05 = $0492
194 ;SPRITES_TMP_A01 = $049D ;Used by different thigns. Only 15 slots (all but 0)
195 ;SPRITES_TMP_A04 = $04A0 ;referenced in throw grenade
196 ;SPRITES_TMP_A05 = $04A1 ;Used to link sprites together (?)
197 ;SPRITES_TMP_B05 = $04AC ;Used as index to delta_tbl and more. Only 11 slots (enemies only)
198 ;SPRITES_TMP_C05 = $04B7 ;Used for timer: Only 11 slots (enemies only)
199 ;SPRITES_PREV_Y00 = $04C2 ;Used by raster interrupt. Is the Y value before applying delta.
200 ; Valid for all sprites expect for the Hero (SPRITE00)
201 = 04DF FIRE_COOLDOWN = $04DF ;reset with $ff
202 = 04E0 HERO_ANIM_MOV_IDX = $04E0 ;Movement anim for hero: left,right,up,down,diagonally,etc.
203 ; See: SOLDIER_ANIM_FRAMES
204 = 04E1 a04E1 = $04E1 ;Bullet speed idx (???)
205 = 04E2 BKG_COLOR0 = $04E2
206 = 04E3 BKG_COLOR1 = $04E3
207 = 04E4 BKG_COLOR2 = $04E4
208 = 04E6 COUNTER1 = $04E6
209 = 04E7 a04E7 = $04E7 ;unused
210 = 04E8 TRIGGER_ROW_IDX = $04E8 ;If equal to row index, create object
211 = 04E9 a04E9 = $04E9 ;unused
212 = 04EA a04EA = $04EA ;Used in mortar guy animation
213 = 04EC POW_GUARDS_KILLED = $04EC ;Number of POW guard killed. When == 2, "Free POW" anim is executed
214 = 04ED POW_SPRITE_IDX = $04ED ;Holds the sprite idx used by POW sprite
215 = 04EE a04EE = $04EE ;Hero is moving up (unused)
216 = 04EF ENEMIES_IN_FORT = $04EF ;How many enemies are inside the fort/warehouse
217 = 04F0 TMP_SPRITE_X_LO = $04F0 ;Temp sprite-X LSB for current sprite
218 = 04F1 TMP_SPRITE_Y = $04F1 ;ditto for Y
219 = 04F2 TMP_SPRITE_X_HI = $04F2 ;ditto for X MSB
220 = 04F3 LEVEL_NR = $04F3
221 = 04F4 ANY_ENEMY_IN_MAP = $04F4 ;How many enemies are in the map. If 0, grenades are not thrown
222 = 04F5 IS_LEVEL_COMPLETE = $04F5 ;0: game in progress, 1:lvl complete. Exit animation finished (unused apparently)
223 = 04F7 IS_ANIM_EXIT_DOOR = $04F7 ;1: hero goes to exit door animation in progress
224 = 04F8 SCORE_LSB = $04F8
225 = 04F9 SCORE_MSB = $04F9
226 = 04FD a04FD = $04FD ;unused
227 = 04FF GRENADES = $04FF
228 = 0500 LIVES = $0500
229 = 0501 a0501 = $0501 ;unused
230 = 0502 a0502 = $0502 ;unused
231 = 0503 IS_HERO_DEAD = $0503 ;0: hero alive, 1:was shot, 2:fell down in trench
232 = 0504 SHOOT_FREQ_MASK = $0504 ;How frequent soliders can shoot
233 = 0505 HISCORE_IS_BULLET_ANIM = $0505 ;1: if the bullet in hiscore is being animated
234 = 0506 HISCORE_NAME = $0506 ;8 chars reserved for the hiscore name ($0506-$050E)
235 = 050F HISCORE_NAME_IDX = $050F ;Index to the hiscore name
236 = 0510 HISCORE_SELECTED_CHAR = $0510 ;Selected char in hiscore
237 = 0511 HISCORE_IS_CHAR_ANIM = $0511 ;1: if the selected char in hiscore is being animated
238 = 0512 HISCORE_ANIM_CHAR_COUNTER = $0512 ;Counter to the selected char animation in hiscore
239
240 ;
241 ; **** POINTERS ****
242 ;
243 = D800 pD800 = $D800
244 = D829 pD829 = $D829
245 = D882 pD882 = $D882
246 = E000 pE000 = $E000
247 = E029 pE029 = $E029
248 = E082 pE082 = $E082
249
250
251 //stale
252 = E000 ekran=$e000
253 = 8000 znaki=$8000
254 = 6000 zestaw0=$6000
255 = 6400 zestaw1=$6400
256 = 6800 zestaw2=$6800
257 = 6C00 zestaw3=$6c00
258 = 7000 zestaw4=$7000
259
260
261 opt h+
262
263 icl './load/logo.asm'
Source: logo.asm
1 //logo
2
3 org $2000
4 ; Detect VBXE
5 fx_detect
6 FFFF> 2000-24B8> A9 00 + mwa #$d600 fx_ptr
7 2008 20 0F 20 jsr fx_detect_1
8 200B F0 11 beq fx_detect_exit
9 200D E6 72 inc fx_ptr+1
10 200F fx_detect_1
11 200F A0 40 ldy #$40 ; CORE_VERSION
12 2011 B1 71 lda (fx_ptr),y
13 2013 C9 10 cmp #$10 ; FX 1.xx
14 2015 D0 07 bne fx_detect_exit
15 2017 C8 iny ; MINOR_VERSION
16 2018 B1 71 lda (fx_ptr),y
17 201A 29 70 and #$70
18 201C C9 20 cmp #$20 ; 1.2x
19 201E fx_detect_exit
20 201E 60 rts
21
22
23
24 201F _in0
25 201F 20 00 20 jsr fx_detect
26 2022 F0 03 beq @+
27 2024 6C 0A 00 jmp (10)
28 = 2027 @ equ *
29
30 2027 A9 00 8D 2F 02 mva #0 559
31 202C 8D 00 D4 sta dmactl
32
33 202F A0 5D ldy #$5d
34 2031 A9 84 91 71 mva #$80+[scr_vbxe>>14] (fx_ptr),y
35 2035 60 rts
36
37 2036 _in1
38 2036 A0 5D ldy #$5d
39 2038 A9 85 91 71 mva #$81+[scr_vbxe>>14] (fx_ptr),y
40 203C 60 rts
41
42 203D _in2
43 203D A0 5D ldy #$5d
44 203F A9 86 91 71 mva #$82+[scr_vbxe>>14] (fx_ptr),y
45 2043 60 rts
46
47 2044 _in3
48 2044 A0 5D ldy #$5d
49 2046 A9 87 91 71 mva #$83+[scr_vbxe>>14] (fx_ptr),y
50 204A 60 rts
51
52 204B _in4
53 204B A0 5D ldy #$5d
54 204D A9 88 91 71 mva #$84+[scr_vbxe>>14] (fx_ptr),y
55 2051 60 rts
56
57 2052 _in5
58 2052 A9 B9 85 73 A9 20 + mwa #paleta pom
59 205A A0 44 ldy #$44
60 205C A9 00 91 71 C8 mva #0 (fx_ptr),y+ ; CSEL ,nr koloru
61 2061 A9 02 91 71 mva #2 (fx_ptr),y ; PSEL ,nr palety
62
63 2065 A5 72 lda fx_ptr+1
64 2067 8D 87 20 sta _lg0+2
65 206A 8D 8D 20 sta _lg1+2
66 206D 8D 91 20 sta _lg2+2
67 2070 A0 46 ldy #$46
68 2072 8C 86 20 sty _lg0+1
69 2075 C8 iny
70 2076 8C 8C 20 sty _lg1+1
71 2079 C8 iny
72 207A 8C 90 20 sty _lg2+1
73
74
75 207D A2 04 ldx #4
76 207F A0 00 ldy #0
77 2081 C8 @ iny
78 2082 C8 iny
79 2083 B1 73 lda (pom),y
80 2085 8D FF FF _lg0 sta $ffff
81 2088 88 dey
82 2089 B1 73 lda (pom),y
83 208B 8D FF FF _lg1 sta $ffff
84 208E 88 dey
85 208F 8D FF FF _lg2 sta $ffff
86 2092 C8 C8 C8 C8 :4 iny
87 2096 D0 E9 bne @-
88 2098 E6 74 inc pom+1
89 209A CA dex
90 209B D0 E4 bne @-
91
92 209D A0 5D ldy #$5d
93 209F A9 00 91 71 mva #0 (fx_ptr),y
94
95 20A3 A0 40 ldy #$40 ; VIDEO_CONTROL
96 20A5 A9 05 91 71 mva #1+4 (fx_ptr),y ; xdl_enabled
97 20A9 C8 iny
98 20AA A9 00 91 71 mva #0 (fx_ptr),y ; XDL_ADR0 podaj adres 24bitowy
99 20AE C8 iny
100 20AF A9 00 91 71 mva #0 (fx_ptr),y ; XDL_ADR1
101 20B3 C8 iny
102 20B4 A9 02 91 71 mva #2 (fx_ptr),y ; XDL_ADR2
103
104 20B8 60 rts
105
106 20B9 paleta
107 20B9 04 03 04 00 77 83 + ins './load/paleta.dat'
108
109 02E2-02E3> 1F 20 ini _in0
110 24B9 org $4000
111 4000-7FFF> 6C 6C 6C 6C + ins './load/load_0.dat'
112
113 02E2-02E3> 36 20 ini _in1
114 8000 org $4000
115 4000-7FFF> 76 76 76 78 + ins './load/load_1.dat'
116
117 02E2-02E3> 3D 20 ini _in2
118 8000 org $4000
119 4000-7FFF> 00 00 00 00 + ins './load/load_2.dat'
120
121 02E2-02E3> 44 20 ini _in3
122 8000 org $4000
123 4000-47FF> 26 00 CA 00 + ins './load/load_3.dat'
124
125 02E2-02E3> 4B 20 ini _in4
126 4800 org $4000
127
128 4000-400C> 24 00 23 dta a($24),b(23+12) ; XDLC_OVOFF|XDLC_RTPL ;24 puste linie
129 4003 62 88 9E dta a($8862),b(160-1-1) ; XDLC_GMON|XDLC_RTPL|XDLC_OVADR|XDLC_END|XDLC_ATT ; 192 linie w hires
130 4006 00 00 dta a(0) ;adres pamieci obrazu dla tych linii
131 4008 01 40 01 dta b(1),a(320) ;3 bajt adresu obrazu=0,256=o ile bajtĂłw skaczemy co linie
132 400B 21 FF dta a($ff21) ;paleta1+szerokosc 320 bajtĂłw=$11, prio_default=$ff
133
134 02E2-02E3> 52 20 ini _in5
264 400D icl 'init_vbxe'
Source: init_vbxe.asm
1
2 /* org $600
3 dl_load .he 70,70,70,70,70
4 dta $46,a(txt_load)
5 dta $41,a(dl_load)
6
7 txt_load dta d'** COMMANDO ** VBXE'
8
9 ini_title
10 lda 20
11 cmp 20
12 beq *-2
13 mwa #dl_load 560
14 rts
15
16 ini ini_title
17
18 org $2000
19 ; Detect VBXE
20 fx_detect
21 mwa #$d600 fx_ptr
22 jsr fx_detect_1
23 beq fx_detect_exit
24 inc fx_ptr+1
25 fx_detect_1
26 ldy #$40 ; CORE_VERSION
27 lda (fx_ptr),y
28 cmp #$10 ; FX 1.xx
29 bne fx_detect_exit
30 iny ; MINOR_VERSION
31 lda (fx_ptr),y
32 and #$70
33 cmp #$20 ; 1.2x
34 fx_detect_exit
35 rts
36
37
38
39 _init
40 jsr fx_detect
41 beq @+
42 jmp (10)
43 @ equ * */
43
44
45 = 003C chd0=$3c
46 = 001C chd1=$1c ;żółty?
47
48 400D org $2000
49 2000 _init
50 //COPY SHAPE
51 2000-265A> A0 5D ldy #$5d
52 2002 A9 80 91 71 mva #$80+[shape_vbxe>>14] (fx_ptr),y
53
54
55 2006 A9 00 85 75 A9 40 + mwa #$4000 pom1 ;miejsce docelowe
56 200E A9 40 85 73 A9 BE + mwa #$8000+[192*83] pom ;gdzie zaczynamy
57 2016 20 F7 25 jsr copy_shape ;shape 0 x2
58
59
60 2019 A9 58 85 73 A9 BE + mwa #$8000+[24+192*83] pom ;gdzie zaczynamy
61 2021 20 F7 25 jsr copy_shape ;shape 1
62 2024 A9 70 85 73 A9 BE + mwa #$8000+[48+192*83] pom ;gdzie zaczynamy
63 202C 20 F7 25 jsr copy_shape ;shape 2
64 202F A9 88 85 73 A9 BE + mwa #$8000+[72+192*83] pom ;gdzie zaczynamy
65 2037 20 F7 25 jsr copy_shape ;shape 3
66
67
68 203A A9 A0 85 73 A9 BE + mwa #$8000+[96+192*83] pom ;gdzie zaczynamy
69 2042 20 F7 25 jsr copy_shape ;shape 4
70 2045 A9 B8 85 73 A9 BE + mwa #$8000+[120+192*83] pom ;gdzie zaczynamy
71 204D 20 F7 25 jsr copy_shape ;shape 5
72 2050 A9 D0 85 73 A9 BE + mwa #$8000+[144+192*83] pom ;gdzie zaczynamy
73 2058 20 F7 25 jsr copy_shape ;shape 6
74 205B A9 E8 85 73 A9 BE + mwa #$8000+[168+192*83] pom ;gdzie zaczynamy
75 2063 20 F7 25 jsr copy_shape ;shape 7
76
77
78 2066 A9 80 85 73 A9 AE + mwa #$8000+[192*62] pom
79 206E 20 F7 25 jsr copy_shape ;shape 8
80 2071 A9 98 85 73 A9 AE + mwa #$8000+[24+192*62] pom ;gdzie zaczynamy
81 2079 20 F7 25 jsr copy_shape ;shape 9
82 207C A9 B0 85 73 A9 AE + mwa #$8000+[48+192*62] pom ;gdzie zaczynamy
83 2084 20 F7 25 jsr copy_shape ;shape 10
84 2087 A9 C8 85 73 A9 AE + mwa #$8000+[72+192*62] pom ;gdzie zaczynamy
85 208F 20 F7 25 jsr copy_shape ;shape 11
86 2092 A9 E0 85 73 A9 AE + mwa #$8000+[96+192*62] pom ;gdzie zaczynamy
87 209A 20 F7 25 jsr copy_shape ;shape 12
88 209D A9 F8 85 73 A9 AE + mwa #$8000+[120+192*62] pom ;gdzie zaczynamy
89 20A5 20 F7 25 jsr copy_shape ;shape 13
90 20A8 A9 10 85 73 A9 AF + mwa #$8000+[144+192*62] pom ;gdzie zaczynamy
91 20B0 20 F7 25 jsr copy_shape ;shape 14
92 20B3 A9 28 85 73 A9 AF + mwa #$8000+[168+192*62] pom ;gdzie zaczynamy
93 20BB 20 F7 25 jsr copy_shape ;shape 15
94
95 20BE A9 C0 85 73 A9 9E + mwa #$8000+[192*41] pom
96 20C6 20 F7 25 jsr copy_shape ;shape 16
97 20C9 A9 D8 85 73 A9 9E + mwa #$8000+[24+192*41] pom ;gdzie zaczynamy
98 20D1 20 F7 25 jsr copy_shape ;shape 17
99 20D4 A9 F0 85 73 A9 9E + mwa #$8000+[48+192*41] pom ;gdzie zaczynamy
100 20DC 20 F7 25 jsr copy_shape ;shape 18
101 20DF A9 08 85 73 A9 9F + mwa #$8000+[72+192*41] pom ;gdzie zaczynamy
102 20E7 20 F7 25 jsr copy_shape ;shape 19
103 20EA A9 20 85 73 A9 9F + mwa #$8000+[96+192*41] pom ;gdzie zaczynamy
104 20F2 20 F7 25 jsr copy_shape ;shape 20
105 20F5 A9 38 85 73 A9 9F + mwa #$8000+[120+192*41] pom ;gdzie zaczynamy
106 20FD 20 F7 25 jsr copy_shape ;shape 21
107 2100 A9 50 85 73 A9 9F + mwa #$8000+[144+192*41] pom ;gdzie zaczynamy
108 2108 20 F7 25 jsr copy_shape ;shape 22
109 210B A9 68 85 73 A9 9F + mwa #$8000+[168+192*41] pom ;gdzie zaczynamy
110 2113 20 F7 25 jsr copy_shape ;shape 23
111
112 2116 A9 00 85 73 A9 8F + mwa #$8000+[192*20] pom
113 211E 20 F7 25 jsr copy_shape ;shape 24
114 2121 A9 18 85 73 A9 8F + mwa #$8000+[24+192*20] pom ;gdzie zaczynamy
115 2129 20 F7 25 jsr copy_shape ;shape 25
116 212C A9 30 85 73 A9 8F + mwa #$8000+[48+192*20] pom ;gdzie zaczynamy
117 2134 20 F7 25 jsr copy_shape ;shape 26
118 2137 A9 48 85 73 A9 8F + mwa #$8000+[72+192*20] pom ;gdzie zaczynamy
119 213F 20 F7 25 jsr copy_shape ;shape 27
120 2142 A9 60 85 73 A9 8F + mwa #$8000+[96+192*20] pom ;gdzie zaczynamy
121 214A A9 1C 8D 00 26 mva #chd1 ch_d+1
122 214F 20 F7 25 jsr copy_shape ;shape 28 O-napis (ostatnia litera)
123 2152 A9 3C 8D 00 26 mva #chd0 ch_d+1
124 2157 A9 78 85 73 A9 8F + mwa #$8000+[120+192*20] pom ;gdzie zaczynamy
125 215F 20 F7 25 jsr copy_shape ;shape 29
126 2162 A9 90 85 73 A9 8F + mwa #$8000+[144+192*20] pom ;gdzie zaczynamy
127 216A 20 F7 25 jsr copy_shape ;shape 30
128 216D A9 A8 85 73 A9 8F + mwa #$8000+[168+192*20] pom ;gdzie zaczynamy
129 2175 20 F7 25 jsr copy_shape ;shape 31
130
131 2178 60 rts
132
133 2179 _init1
134 2179 A0 5D ldy #$5d
135 217B A9 81 91 71 mva #$81 (fx_ptr),y
136
137 217F A9 00 85 75 A9 40 + mwa #$4000 pom1 ;miejsce docelowe
138 2187 A9 40 85 73 A9 BE + mwa #$8000+[192*83] pom ;gdzie zaczynamy
139 218F 20 F7 25 jsr copy_shape ;shape 32 x2
140 2192 A9 58 85 73 A9 BE + mwa #$8000+[24+192*83] pom ;gdzie zaczynamy
141 219A 20 F7 25 jsr copy_shape ;shape 33
142 219D A9 70 85 73 A9 BE + mwa #$8000+[48+192*83] pom ;gdzie zaczynamy
143 21A5 20 F7 25 jsr copy_shape ;shape 34
144 21A8 A9 88 85 73 A9 BE + mwa #$8000+[72+192*83] pom ;gdzie zaczynamy
145 21B0 20 F7 25 jsr copy_shape ;shape 35
146 21B3 A9 A0 85 73 A9 BE + mwa #$8000+[96+192*83] pom ;gdzie zaczynamy
147 21BB 20 F7 25 jsr copy_shape ;shape 36
148 21BE A9 B8 85 73 A9 BE + mwa #$8000+[120+192*83] pom ;gdzie zaczynamy
149 21C6 20 F7 25 jsr copy_shape ;shape 37
150 21C9 A9 D0 85 73 A9 BE + mwa #$8000+[144+192*83] pom ;gdzie zaczynamy
151 21D1 20 F7 25 jsr copy_shape ;shape 38
152 21D4 A9 E8 85 73 A9 BE + mwa #$8000+[168+192*83] pom ;gdzie zaczynamy
153 21DC 20 F7 25 jsr copy_shape ;shape 39
154
155 21DF A9 80 85 73 A9 AE + mwa #$8000+[192*62] pom
156 21E7 20 F7 25 jsr copy_shape ;shape 40
157 21EA A9 98 85 73 A9 AE + mwa #$8000+[24+192*62] pom ;gdzie zaczynamy
158 21F2 20 F7 25 jsr copy_shape ;shape 41
159 21F5 A9 B0 85 73 A9 AE + mwa #$8000+[48+192*62] pom ;gdzie zaczynamy
160 21FD 20 F7 25 jsr copy_shape ;shape 42
161 2200 A9 C8 85 73 A9 AE + mwa #$8000+[72+192*62] pom ;gdzie zaczynamy
162 2208 20 F7 25 jsr copy_shape ;shape 43
163 220B A9 E0 85 73 A9 AE + mwa #$8000+[96+192*62] pom ;gdzie zaczynamy
164 2213 20 F7 25 jsr copy_shape ;shape 44
165 2216 A9 F8 85 73 A9 AE + mwa #$8000+[120+192*62] pom ;gdzie zaczynamy
166 221E 20 F7 25 jsr copy_shape ;shape 45
167 2221 A9 10 85 73 A9 AF + mwa #$8000+[144+192*62] pom ;gdzie zaczynamy
168 2229 20 F7 25 jsr copy_shape ;shape 46
169 222C A9 28 85 73 A9 AF + mwa #$8000+[168+192*62] pom ;gdzie zaczynamy
170 2234 20 F7 25 jsr copy_shape ;shape 47
171
172 2237 A9 C0 85 73 A9 9E + mwa #$8000+[192*41] pom
173 223F 20 F7 25 jsr copy_shape ;shape 48
174 2242 A9 D8 85 73 A9 9E + mwa #$8000+[24+192*41] pom ;gdzie zaczynamy
175 224A 20 F7 25 jsr copy_shape ;shape 49
176 224D A9 F0 85 73 A9 9E + mwa #$8000+[48+192*41] pom ;gdzie zaczynamy
177 2255 20 F7 25 jsr copy_shape ;shape 50
178 2258 A9 08 85 73 A9 9F + mwa #$8000+[72+192*41] pom ;gdzie zaczynamy
179 2260 20 F7 25 jsr copy_shape ;shape 51
180 2263 A9 20 85 73 A9 9F + mwa #$8000+[96+192*41] pom ;gdzie zaczynamy
181 226B 20 F7 25 jsr copy_shape ;shape 52
182 226E A9 38 85 73 A9 9F + mwa #$8000+[120+192*41] pom ;gdzie zaczynamy
183 2276 20 F7 25 jsr copy_shape ;shape 53
184 2279 A9 50 85 73 A9 9F + mwa #$8000+[144+192*41] pom ;gdzie zaczynamy
185 2281 20 F7 25 jsr copy_shape ;shape 54
186 2284 A9 68 85 73 A9 9F + mwa #$8000+[168+192*41] pom ;gdzie zaczynamy
187 228C 20 F7 25 jsr copy_shape ;shape 55
188
189 228F A9 00 85 73 A9 8F + mwa #$8000+[192*20] pom
190 2297 20 F7 25 jsr copy_shape ;shape 56
191 229A A9 18 85 73 A9 8F + mwa #$8000+[24+192*20] pom ;gdzie zaczynamy
192 22A2 20 F7 25 jsr copy_shape ;shape 57
193 22A5 A9 30 85 73 A9 8F + mwa #$8000+[48+192*20] pom ;gdzie zaczynamy
194 22AD 20 F7 25 jsr copy_shape ;shape 58
195 22B0 A9 48 85 73 A9 8F + mwa #$8000+[72+192*20] pom ;gdzie zaczynamy
196 22B8 20 F7 25 jsr copy_shape ;shape 59
197 22BB A9 60 85 73 A9 8F + mwa #$8000+[96+192*20] pom ;gdzie zaczynamy
198 22C3 20 F7 25 jsr copy_shape ;shape 60
199 22C6 A9 78 85 73 A9 8F + mwa #$8000+[120+192*20] pom ;gdzie zaczynamy
200 22CE 20 F7 25 jsr copy_shape ;shape 61
201 22D1 A9 90 85 73 A9 8F + mwa #$8000+[144+192*20] pom ;gdzie zaczynamy
202 22D9 20 F7 25 jsr copy_shape ;shape 62
203 22DC A9 A8 85 73 A9 8F + mwa #$8000+[168+192*20] pom ;gdzie zaczynamy
204 22E4 20 F7 25 jsr copy_shape ;shape 63
205
206 22E7 60 rts
207
208
209 22E8 _init2
210 22E8 A0 5D ldy #$5d
211 22EA A9 82 91 71 mva #$82 (fx_ptr),y
212
213 22EE A9 00 85 75 A9 40 + mwa #$4000 pom1 ;miejsce docelowe
214 22F6 A9 40 85 73 A9 BE + mwa #$8000+[192*83] pom ;gdzie zaczynamy
215 22FE 20 F7 25 jsr copy_shape ;shape 64 x2
216 2301 A9 58 85 73 A9 BE + mwa #$8000+[24+192*83] pom ;gdzie zaczynamy
217 2309 20 F7 25 jsr copy_shape ;shape 65
218 230C A9 70 85 73 A9 BE + mwa #$8000+[48+192*83] pom ;gdzie zaczynamy
219 2314 20 F7 25 jsr copy_shape ;shape 66
220 2317 A9 88 85 73 A9 BE + mwa #$8000+[72+192*83] pom ;gdzie zaczynamy
221 231F 20 F7 25 jsr copy_shape ;shape 67
222 2322 A9 A0 85 73 A9 BE + mwa #$8000+[96+192*83] pom ;gdzie zaczynamy
223 232A 20 F7 25 jsr copy_shape ;shape 68
224 232D A9 B8 85 73 A9 BE + mwa #$8000+[120+192*83] pom ;gdzie zaczynamy
225 2335 20 F7 25 jsr copy_shape ;shape 69
226 2338 A9 D0 85 73 A9 BE + mwa #$8000+[144+192*83] pom ;gdzie zaczynamy
227 2340 20 F7 25 jsr copy_shape ;shape 70
228 2343 A9 E8 85 73 A9 BE + mwa #$8000+[168+192*83] pom ;gdzie zaczynamy
229 234B 20 F7 25 jsr copy_shape ;shape 71
230
231 234E A9 80 85 73 A9 AE + mwa #$8000+[192*62] pom
232 2356 20 F7 25 jsr copy_shape ;shape 72
233 2359 A9 98 85 73 A9 AE + mwa #$8000+[24+192*62] pom ;gdzie zaczynamy
234 2361 20 F7 25 jsr copy_shape ;shape 73
235 2364 A9 B0 85 73 A9 AE + mwa #$8000+[48+192*62] pom ;gdzie zaczynamy
236 236C 20 F7 25 jsr copy_shape ;shape 74
237 236F A9 C8 85 73 A9 AE + mwa #$8000+[72+192*62] pom ;gdzie zaczynamy
238 2377 20 F7 25 jsr copy_shape ;shape 75
239 237A A9 E0 85 73 A9 AE + mwa #$8000+[96+192*62] pom ;gdzie zaczynamy
240 2382 20 F7 25 jsr copy_shape ;shape 76
241 2385 A9 F8 85 73 A9 AE + mwa #$8000+[120+192*62] pom ;gdzie zaczynamy
242 238D 20 F7 25 jsr copy_shape ;shape 77
243 2390 A9 10 85 73 A9 AF + mwa #$8000+[144+192*62] pom ;gdzie zaczynamy
244 2398 20 F7 25 jsr copy_shape ;shape 78
245 239B A9 28 85 73 A9 AF + mwa #$8000+[168+192*62] pom ;gdzie zaczynamy
246 23A3 20 F7 25 jsr copy_shape ;shape 79
247
248 23A6 A9 C0 85 73 A9 9E + mwa #$8000+[192*41] pom
249 23AE 20 F7 25 jsr copy_shape ;shape 80
250 23B1 A9 D8 85 73 A9 9E + mwa #$8000+[24+192*41] pom ;gdzie zaczynamy
251 23B9 20 F7 25 jsr copy_shape ;shape 81
252 23BC A9 F0 85 73 A9 9E + mwa #$8000+[48+192*41] pom ;gdzie zaczynamy
253 23C4 20 F7 25 jsr copy_shape ;shape 82
254 23C7 A9 08 85 73 A9 9F + mwa #$8000+[72+192*41] pom ;gdzie zaczynamy
255 23CF 20 F7 25 jsr copy_shape ;shape 83
256 23D2 A9 20 85 73 A9 9F + mwa #$8000+[96+192*41] pom ;gdzie zaczynamy
257 23DA 20 F7 25 jsr copy_shape ;shape 84
258 23DD A9 38 85 73 A9 9F + mwa #$8000+[120+192*41] pom ;gdzie zaczynamy
259 23E5 20 F7 25 jsr copy_shape ;shape 85
260 23E8 A9 50 85 73 A9 9F + mwa #$8000+[144+192*41] pom ;gdzie zaczynamy
261 23F0 20 F7 25 jsr copy_shape ;shape 86
262 23F3 A9 68 85 73 A9 9F + mwa #$8000+[168+192*41] pom ;gdzie zaczynamy
263 23FB 20 F7 25 jsr copy_shape ;shape 87
264
265 23FE A9 00 85 73 A9 8F + mwa #$8000+[192*20] pom
266 2406 20 F7 25 jsr copy_shape ;shape 88
267 2409 A9 18 85 73 A9 8F + mwa #$8000+[24+192*20] pom ;gdzie zaczynamy
268 2411 20 F7 25 jsr copy_shape ;shape 89
269 2414 A9 30 85 73 A9 8F + mwa #$8000+[48+192*20] pom ;gdzie zaczynamy
270 241C 20 F7 25 jsr copy_shape ;shape 90
271 241F A9 48 85 73 A9 8F + mwa #$8000+[72+192*20] pom ;gdzie zaczynamy
272 2427 20 F7 25 jsr copy_shape ;shape 91
273 242A A9 60 85 73 A9 8F + mwa #$8000+[96+192*20] pom ;gdzie zaczynamy
274 2432 20 F7 25 jsr copy_shape ;shape 92
275 2435 A9 78 85 73 A9 8F + mwa #$8000+[120+192*20] pom ;gdzie zaczynamy
276 243D 20 F7 25 jsr copy_shape ;shape 93
277 2440 A9 90 85 73 A9 8F + mwa #$8000+[144+192*20] pom ;gdzie zaczynamy
278 2448 20 F7 25 jsr copy_shape ;shape 94
279 244B A9 A8 85 73 A9 8F + mwa #$8000+[168+192*20] pom ;gdzie zaczynamy
280 2453 20 F7 25 jsr copy_shape ;shape 95
281
282 2456 60 rts
283
284
285 2457 _init3
286 2457 A0 5D ldy #$5d
287 2459 A9 83 91 71 mva #$83 (fx_ptr),y
288
289 245D A9 00 85 75 A9 40 + mwa #$4000 pom1 ;miejsce docelowe
290 2465 A9 C0 85 73 A9 9E + mwa #$8000+[192*41] pom ;gdzie zaczynamy
291 246D 20 F7 25 jsr copy_shape ;shape 96 x2
292 2470 A9 D8 85 73 A9 9E + mwa #$8000+[24+192*41] pom ;gdzie zaczynamy
293 2478 20 F7 25 jsr copy_shape ;shape 97
294 247B A9 F0 85 73 A9 9E + mwa #$8000+[48+192*41] pom ;gdzie zaczynamy
295 2483 20 F7 25 jsr copy_shape ;shape 98
296 2486 A9 08 85 73 A9 9F + mwa #$8000+[72+192*41] pom ;gdzie zaczynamy
297 248E 20 F7 25 jsr copy_shape ;shape 99
298 2491 A9 20 85 73 A9 9F + mwa #$8000+[96+192*41] pom ;gdzie zaczynamy
299 2499 20 F7 25 jsr copy_shape ;shape 100
300 249C A9 38 85 73 A9 9F + mwa #$8000+[120+192*41] pom ;gdzie zaczynamy
301 24A4 20 F7 25 jsr copy_shape ;shape 101
302 24A7 A9 50 85 73 A9 9F + mwa #$8000+[144+192*41] pom ;gdzie zaczynamy
303 24AF A9 1C 8D 00 26 mva #chd1 ch_d+1
304 24B4 20 F7 25 jsr copy_shape ;shape 102 C-napis (pierwsza litera)
305 24B7 A9 68 85 73 A9 9F + mwa #$8000+[168+192*41] pom ;gdzie zaczynamy
306 24BF 20 F7 25 jsr copy_shape ;shape 103 OM
307 24C2 A9 00 85 73 A9 8F + mwa #$8000+[192*20] pom
308 24CA 20 F7 25 jsr copy_shape ;shape 104 MM
309 24CD A9 18 85 73 A9 8F + mwa #$8000+[24+192*20] pom ;gdzie zaczynamy
310 24D5 20 F7 25 jsr copy_shape ;shape 105 A
311 24D8 A9 30 85 73 A9 8F + mwa #$8000+[48+192*20] pom ;gdzie zaczynamy
312 24E0 20 F7 25 jsr copy_shape ;shape 106 N
313 24E3 A9 48 85 73 A9 8F + mwa #$8000+[72+192*20] pom ;gdzie zaczynamy
314 24EB 20 F7 25 jsr copy_shape ;shape 107 DO
315 24EE A9 60 85 73 A9 8F + mwa #$8000+[96+192*20] pom ;gdzie zaczynamy
316 24F6 A9 3C 8D 00 26 mva #chd0 ch_d+1
317 24FB 20 F7 25 jsr copy_shape ;shape 108
318 24FE A9 78 85 73 A9 8F + mwa #$8000+[120+192*20] pom ;gdzie zaczynamy
319 2506 20 F7 25 jsr copy_shape ;shape 109
320 ;mwa #$8000+[144+192*20] pom ;gdzie zaczynamy
321 2509 A9 60 85 73 A9 A1 + mwa #celownik+24*20 pom
322 2511 20 29 26 jsr copy_shape1 ;shape 110
323 2514 A9 A8 85 73 A9 8F + mwa #$8000+[168+192*20] pom ;gdzie zaczynamy
324 251C 20 F7 25 jsr copy_shape ;shape 111 ;pusty
325
326 251F 20 76 25 jsr set_colors0
327 2522 20 42 25 jsr set_colors0b
328
329 2525 A0 44 ldy #$44
330 2527 A9 00 91 71 C8 mva #0 (fx_ptr),y+ ; CSEL ,nr koloru
331 252C A9 01 91 71 C8 mva #1 (fx_ptr),y+ ; PSEL ,nr palety
332 2531 A9 4E 91 71 C8 mva #78 (fx_ptr),y+
333 2536 A9 3C 91 71 C8 mva #60 (fx_ptr),y+
334 253B A9 00 91 71 mva #00 (fx_ptr),y ;kolor4 = background (brÄ…zowy)
335
336 253F 4C F0 25 jmp end_init
337
338
339 2542 set_colors0b
340 2542 A0 44 ldy #$44
341 2544 A9 1D 91 71 C8 mva #1+28 (fx_ptr),y+ ; CSEL ,nr koloru (żółty)
342 2549 A9 01 91 71 mva #1 (fx_ptr),y ; PSEL ,nr palety
343
344 254D A2 00 ldx #0
345 254F A0 46 @ ldy #$46 ; CR
346 2551 BD 6A 25 lda tab_color0b,x
347 2554 91 71 sta (fx_ptr),y ;RED
348 2556 C8 iny
349 2557 E8 inx
350 2558 BD 6A 25 lda tab_color0b,x
351 255B 91 71 sta (fx_ptr),y ;GREEN
352 255D C8 iny
353 255E E8 inx
354 255F BD 6A 25 lda tab_color0b,x
355 2562 91 71 sta (fx_ptr),y ;BLUE, nr_koloru++
356 2564 E8 inx
357 2565 E0 09 cpx #3*3
358 2567 90 E6 bcc @-
359 2569 60 rts
360
361 256A tab_color0b
362 256A 00 00 00 .he 00,00,00 ; (5)
363 256D 8C 51 29 dta 140,81,41 ;
364 2570 EF F3 73 dta 239,243,115 ;
365 2573 4E 3C 00 dta 78,60,0 ;background(brazowy) (1)
366
367 2576 set_colors0
368 2576 A0 45 ldy #$45
369 2578 A9 01 91 71 mva #1 (fx_ptr),y ; PSEL ,nr palety
370
371 257C A2 00 ldx #0
372 257E A9 01 85 79 mva #1 pom0
373
374 2582 A5 79 @ lda pom0
375
376 2584 A0 44 ldy #$44
377 2586 91 71 sta (fx_ptr),y ; CSEL ,nr koloru
378 2588 18 clc
379 2589 69 04 adc #4
380 258B 85 79 sta pom0
381
382 258D A0 46 ldy #$46 ; CR
383 258F A9 AB lda #171
384 2591 91 71 sta (fx_ptr),y ;RED
385 2593 C8 iny
386 2594 91 71 sta (fx_ptr),y ;GREEN
387 2596 C8 iny
388 2597 91 71 sta (fx_ptr),y ;BLUE, nr_koloru++
389
390 2599 A0 46 ldy #$46 ; CR
391 259B BD C0 25 lda tab_color0,x
392 259E 91 71 sta (fx_ptr),y ;RED
393 25A0 C8 iny
394 25A1 E8 inx
395 25A2 BD C0 25 lda tab_color0,x
396 25A5 91 71 sta (fx_ptr),y ;GREEN
397 25A7 C8 iny
398 25A8 E8 inx
399 25A9 BD C0 25 lda tab_color0,x