-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinit_vbxe.asm
556 lines (463 loc) · 13 KB
/
init_vbxe.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
/* org $600
dl_load .he 70,70,70,70,70
dta $46,a(txt_load)
dta $41,a(dl_load)
txt_load dta d'** COMMANDO ** VBXE'
ini_title
lda 20
cmp 20
beq *-2
mwa #dl_load 560
rts
ini ini_title
org $2000
; Detect VBXE
fx_detect
mwa #$d600 fx_ptr
jsr fx_detect_1
beq fx_detect_exit
inc fx_ptr+1
fx_detect_1
ldy #$40 ; CORE_VERSION
lda (fx_ptr),y
cmp #$10 ; FX 1.xx
bne fx_detect_exit
iny ; MINOR_VERSION
lda (fx_ptr),y
and #$70
cmp #$20 ; 1.2x
fx_detect_exit
rts
_init
jsr fx_detect
beq @+
jmp (10)
@ equ * */
chd0=$3c
chd1=$1c ;żółty?
org $2000
_init
//COPY SHAPE
ldy #$5d
mva #$80+[shape_vbxe>>14] (fx_ptr),y
mwa #$4000 pom1 ;miejsce docelowe
mwa #$8000+[192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 0 x2
mwa #$8000+[24+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 1
mwa #$8000+[48+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 2
mwa #$8000+[72+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 3
mwa #$8000+[96+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 4
mwa #$8000+[120+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 5
mwa #$8000+[144+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 6
mwa #$8000+[168+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 7
mwa #$8000+[192*62] pom
jsr copy_shape ;shape 8
mwa #$8000+[24+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 9
mwa #$8000+[48+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 10
mwa #$8000+[72+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 11
mwa #$8000+[96+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 12
mwa #$8000+[120+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 13
mwa #$8000+[144+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 14
mwa #$8000+[168+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 15
mwa #$8000+[192*41] pom
jsr copy_shape ;shape 16
mwa #$8000+[24+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 17
mwa #$8000+[48+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 18
mwa #$8000+[72+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 19
mwa #$8000+[96+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 20
mwa #$8000+[120+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 21
mwa #$8000+[144+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 22
mwa #$8000+[168+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 23
mwa #$8000+[192*20] pom
jsr copy_shape ;shape 24
mwa #$8000+[24+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 25
mwa #$8000+[48+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 26
mwa #$8000+[72+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 27
mwa #$8000+[96+192*20] pom ;gdzie zaczynamy
mva #chd1 ch_d+1
jsr copy_shape ;shape 28 O-napis (ostatnia litera)
mva #chd0 ch_d+1
mwa #$8000+[120+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 29
mwa #$8000+[144+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 30
mwa #$8000+[168+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 31
rts
_init1
ldy #$5d
mva #$81 (fx_ptr),y
mwa #$4000 pom1 ;miejsce docelowe
mwa #$8000+[192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 32 x2
mwa #$8000+[24+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 33
mwa #$8000+[48+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 34
mwa #$8000+[72+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 35
mwa #$8000+[96+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 36
mwa #$8000+[120+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 37
mwa #$8000+[144+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 38
mwa #$8000+[168+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 39
mwa #$8000+[192*62] pom
jsr copy_shape ;shape 40
mwa #$8000+[24+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 41
mwa #$8000+[48+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 42
mwa #$8000+[72+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 43
mwa #$8000+[96+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 44
mwa #$8000+[120+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 45
mwa #$8000+[144+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 46
mwa #$8000+[168+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 47
mwa #$8000+[192*41] pom
jsr copy_shape ;shape 48
mwa #$8000+[24+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 49
mwa #$8000+[48+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 50
mwa #$8000+[72+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 51
mwa #$8000+[96+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 52
mwa #$8000+[120+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 53
mwa #$8000+[144+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 54
mwa #$8000+[168+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 55
mwa #$8000+[192*20] pom
jsr copy_shape ;shape 56
mwa #$8000+[24+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 57
mwa #$8000+[48+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 58
mwa #$8000+[72+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 59
mwa #$8000+[96+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 60
mwa #$8000+[120+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 61
mwa #$8000+[144+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 62
mwa #$8000+[168+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 63
rts
_init2
ldy #$5d
mva #$82 (fx_ptr),y
mwa #$4000 pom1 ;miejsce docelowe
mwa #$8000+[192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 64 x2
mwa #$8000+[24+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 65
mwa #$8000+[48+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 66
mwa #$8000+[72+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 67
mwa #$8000+[96+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 68
mwa #$8000+[120+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 69
mwa #$8000+[144+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 70
mwa #$8000+[168+192*83] pom ;gdzie zaczynamy
jsr copy_shape ;shape 71
mwa #$8000+[192*62] pom
jsr copy_shape ;shape 72
mwa #$8000+[24+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 73
mwa #$8000+[48+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 74
mwa #$8000+[72+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 75
mwa #$8000+[96+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 76
mwa #$8000+[120+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 77
mwa #$8000+[144+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 78
mwa #$8000+[168+192*62] pom ;gdzie zaczynamy
jsr copy_shape ;shape 79
mwa #$8000+[192*41] pom
jsr copy_shape ;shape 80
mwa #$8000+[24+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 81
mwa #$8000+[48+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 82
mwa #$8000+[72+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 83
mwa #$8000+[96+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 84
mwa #$8000+[120+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 85
mwa #$8000+[144+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 86
mwa #$8000+[168+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 87
mwa #$8000+[192*20] pom
jsr copy_shape ;shape 88
mwa #$8000+[24+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 89
mwa #$8000+[48+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 90
mwa #$8000+[72+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 91
mwa #$8000+[96+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 92
mwa #$8000+[120+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 93
mwa #$8000+[144+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 94
mwa #$8000+[168+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 95
rts
_init3
ldy #$5d
mva #$83 (fx_ptr),y
mwa #$4000 pom1 ;miejsce docelowe
mwa #$8000+[192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 96 x2
mwa #$8000+[24+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 97
mwa #$8000+[48+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 98
mwa #$8000+[72+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 99
mwa #$8000+[96+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 100
mwa #$8000+[120+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 101
mwa #$8000+[144+192*41] pom ;gdzie zaczynamy
mva #chd1 ch_d+1
jsr copy_shape ;shape 102 C-napis (pierwsza litera)
mwa #$8000+[168+192*41] pom ;gdzie zaczynamy
jsr copy_shape ;shape 103 OM
mwa #$8000+[192*20] pom
jsr copy_shape ;shape 104 MM
mwa #$8000+[24+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 105 A
mwa #$8000+[48+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 106 N
mwa #$8000+[72+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 107 DO
mwa #$8000+[96+192*20] pom ;gdzie zaczynamy
mva #chd0 ch_d+1
jsr copy_shape ;shape 108
mwa #$8000+[120+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 109
;mwa #$8000+[144+192*20] pom ;gdzie zaczynamy
mwa #celownik+24*20 pom
jsr copy_shape1 ;shape 110
mwa #$8000+[168+192*20] pom ;gdzie zaczynamy
jsr copy_shape ;shape 111 ;pusty
jsr set_colors0
jsr set_colors0b
ldy #$44
mva #0 (fx_ptr),y+ ; CSEL ,nr koloru
mva #1 (fx_ptr),y+ ; PSEL ,nr palety
mva #78 (fx_ptr),y+
mva #60 (fx_ptr),y+
mva #00 (fx_ptr),y ;kolor4 = background (brązowy)
jmp end_init
set_colors0b
ldy #$44
mva #1+28 (fx_ptr),y+ ; CSEL ,nr koloru (żółty)
mva #1 (fx_ptr),y ; PSEL ,nr palety
ldx #0
@ ldy #$46 ; CR
lda tab_color0b,x
sta (fx_ptr),y ;RED
iny
inx
lda tab_color0b,x
sta (fx_ptr),y ;GREEN
iny
inx
lda tab_color0b,x
sta (fx_ptr),y ;BLUE, nr_koloru++
inx
cpx #3*3
bcc @-
rts
tab_color0b
.he 00,00,00 ; (5)
dta 140,81,41 ;
dta 239,243,115 ;
dta 78,60,0 ;background(brazowy) (1)
set_colors0
ldy #$45
mva #1 (fx_ptr),y ; PSEL ,nr palety
ldx #0
mva #1 pom0
@ lda pom0
ldy #$44
sta (fx_ptr),y ; CSEL ,nr koloru
clc
adc #4
sta pom0
ldy #$46 ; CR
lda #171
sta (fx_ptr),y ;RED
iny
sta (fx_ptr),y ;GREEN
iny
sta (fx_ptr),y ;BLUE, nr_koloru++
ldy #$46 ; CR
lda tab_color0,x
sta (fx_ptr),y ;RED
iny
inx
lda tab_color0,x
sta (fx_ptr),y ;GREEN
iny
inx
lda tab_color0,x
sta (fx_ptr),y ;BLUE, nr_koloru++
inx
ldy #$46 ; CR
lda #0
sta (fx_ptr),y ;RED
iny
sta (fx_ptr),y ;GREEN
iny
sta (fx_ptr),y ;BLUE, nr_koloru++
cpx #16*3
bcc @-
rts
tab_color0
dta 0,0,0 ;black
dta 255,255,255 ;1=white ;pomijamy dwa pierwsze kolory
dta 116,54,45
;dta 137,64,54 ;2=red
dta 103,162,169
;dta 122,191,199 ;3=cyan
dta 117,59,147
;dta 138,70,174 ;4=purple
dta 85,143,55 ;green x0,85
;dta 104,169,65 ;5=green
dta 52,41,137 ;blue
;dta 62,49,162 ;6=blue
dta 176,187,96
;dta 208,220,113 ;7=yellow
dta 122,80,31
;dta 144,95,37 ;8=orange
dta 78,60,0
;dta 92,71,0 ;9=brown
dta 158,101,92
;dta 187,119,109 ;10=pink
dta 72,72,72 ;11=dark gray
;dta 85,85,85 ;11=dark gray
dta 108,108,108
;dta 128,128,128 ;12=medium gray
dta 146,198,115
;dta 172,234,136 ;13=lite green
dta 105,95,185
;dta 124,112,218 ;14=lite blue
dta 171,171,171 ;15=lite gray
end_init
ldy #$5d
mva #0 (fx_ptr),y ;wylacz pamiec vbxe
rts
copy_shape
ldx #21 ;21 linii
@ ldy #24-1 ;24-1 kolumn
@ lda (pom),y
beq *+4
ch_d ora #$3c ;#$78
sta (pom1),y
dey
bpl @-
sec ;+1
lda pom1
adc copy_shape+3
sta pom1
bcc *+4
inc pom1+1
sec
lda pom
sbc #192
sta pom
lda pom+1
sbc #0
sta pom+1
dex
bne @-1
mva #0 pom1 ;wyrownaj do strony
inc pom1+1
rts
copy_shape1
ldx #21 ;21 linii
@ ldy #24-1 ;24-1 kolumn
@ lda (pom),y
beq *+4
ora #$78
sta (pom1),y
dey
bpl @-
sec ;+1
lda pom1
adc copy_shape1+3
sta pom1
bcc *+4
inc pom1+1
sec
lda pom
sbc #24
sta pom
lda pom+1
sbc #0
sta pom+1
dex
bne @-1
mva #0 pom1 ;wyrownaj do strony
inc pom1+1
rts
org $8000
ins './sprites/sprites0.spr'
ini _init
org $8000
ins './sprites/sprites1.spr'
ini _init1
org $8000
ins './sprites/sprites2.spr'
ini _init2
org $8000
ins './sprites/sprites3.spr'
celownik
ins './sprites/celownik.dat'
ini _init3