-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathblock_attack.lst
10739 lines (10739 loc) · 338 KB
/
block_attack.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.6 build 70 (8 Aug 23)
Source: block_attack.a65
1 ; ------------------------------------------------------------
2 ; Mad Pascal Compiler version 1.6.9 [2023/08/21] for 6502
3 ; ------------------------------------------------------------
4
5 = 0010 STACKWIDTH = 16
6 = 0980 CODEORIGIN = $0980
7
8 = 0001 TRUE = 1
9 = 0000 FALSE = 0
10
11 ; ------------------------------------------------------------
12
13 org $80
14
15 zpage
16
17 .if .def(@vbxe_detect)
18 fxptr .ds 2 ; VBXE pointer
19 .fi
20
21 .if .def(@AllocMem)||.def(MAIN.SYSTEM.GETMEM)||.def(MAIN.SYSTEM.FREEMEM)
22 psptr .ds 2 ; PROGRAMSTACK Pointer
23 .fi
24
25 = 0080 bp .ds 2
26 = 0082 bp2 .ds 2
27
28 = 0084 eax .ds 4 ;8 bytes (aex + edx) -> divREAL
29 = 0088 edx .ds 4
30 = 008C ecx .ds 4
31
32 TMP
33 ztmp
34 = 0090 ztmp8 .ds 1
35 = 0091 ztmp9 .ds 1
36 = 0092 ztmp10 .ds 1
37 = 0093 ztmp11 .ds 1
38
39 = 0094 STACKORIGIN .ds STACKWIDTH*4
40 zpend
41
42 ; ------------------------------------------------------------
43
44 = 0084 ax = eax
45 = 0084 al = eax
46 = 0085 ah = eax+1
47
48 = 008C cx = ecx
49 = 008C cl = ecx
50 = 008D ch = ecx+1
51
52 = 0088 dx = edx
53 = 0088 dl = edx
54 = 0089 dh = edx+1
55
56 org eax
57
58 = 0084 FP1MAN0 .ds 1
59 = 0085 FP1MAN1 .ds 1
60 = 0086 FP1MAN2 .ds 1
61 = 0087 FP1MAN3 .ds 1
62
63 org ztmp8
64
65 = 0090 FP1SGN .ds 1
66 = 0091 FP1EXP .ds 1
67
68 org edx
69
70 = 0088 FP2MAN0 .ds 1
71 = 0089 FP2MAN1 .ds 1
72 = 008A FP2MAN2 .ds 1
73 = 008B FP2MAN3 .ds 1
74
75 org ztmp10
76
77 = 0092 FP2SGN .ds 1
78 = 0093 FP2EXP .ds 1
79
80 org ecx
81
82 = 008C FPMAN0 .ds 1
83 = 008D FPMAN1 .ds 1
84 = 008E FPMAN2 .ds 1
85 = 008F FPMAN3 .ds 1
86
87 org bp2
88
89 = 0082 FPSGN .ds 1
90 = 0083 FPEXP .ds 1
91
92 .ifdef MAIN.@DEFINES.BASICOFF
93 org CODEORIGIN
94 icl 'atari\basicoff.asm'
Source: basicoff.asm
1 // BASIC OFF
2 // author: Michael Jaskula
3 // changes: 2023-03-28
4
5 // lda #$01 ; OSS cart disabled
6 // sta $d508
7
8 FFFF> 0980-09C0> AD 01 + lda PORTB
9 0983 09 02 ora #$02
10 0985 8D 01 D3 sta PORTB
11
12 0988 A9 70 lda #$70 ; disable BREAK
13 098A 85 10 sta $10
14 098C 8D 0E D2 sta $D20E
15
16 098F A9 C0 lda #$C0
17 0991 85 6A sta $6A
18 0993 8D E4 02 sta $2E4
19
20 0996 A9 01 lda #$01
21 0998 8D F8 03 sta $03F8
22
23 099B A2 00 ldx #0 ; reset E:
24 099D A9 0C lda #$0c
25 099F 20 B8 09 jsr xcio
26
27 09A2 A9 BE 9D 44 03 A9 + mwa #ename icbufa,x
28
29 09AC A9 0C 9D 4A 03 mva #$0c icax1,x
30 09B1 A9 00 9D 4B 03 mva #$00 icax2,x
31
32 09B6 A9 03 lda #$03
33
34 09B8 9D 42 03 xcio sta iccmd,x
35
36 09BB 4C 56 E4 jmp ciov
37
38 09BE 45 3A 9B ename .byte 'E:',$9b
95 02E2-02E3> 80 09 ini CODEORIGIN
96 .fi
97
98 .ifdef MAIN.@DEFINES.S_VBXE
99 opt h-
100 ins 'atari\s_vbxe\sdxld2.obx'
101 opt h+
102 .fi
103
104 09C1 org CODEORIGIN
105
106 0980 .local MAIN.@RESOURCE
107 .endl
108
109 0980 .local RESOURCE
110 0980 icl 'atari\resource.asm'
Source: resource.asm
1
1228 opt l+
111 = 0000 ?EXTDETECT = 0
112 = 0000 ?VBXDETECT = 0
113
114 09F5 SAPRPLAY '' SAPR_PLAYER 0 0 0 0 0 0 0 0
Macro: RESOURCE.SAPRPLAY [Source: resource.asm]
2 09F5 org RESORIGIN
4 = 0300 len = .sizeof(_SAPR_PLAYER)
8 mcpy ift (main.SAPR_PLAYER<$bc20) && (main.SAPR_PLAYER+len >= $bc20)
13 09F5 20 C1 09 jsr sys.off
15 09F8 A9 16 85 88 A9 0A + MWA #DATA EDX
15 0A00 A9 00 85 8C A9 A4 + MWA #MAIN.SAPR_PLAYER ECX
15 0A08 A9 00 85 84 A9 03 + MWA #LEN EAX
15 0A10 20 80 09 JSR RESOURCE.MEMCPY
17 0A13 4C E5 09 jmp sys.on
18 0A16 data
25 .print '$R SAPRPLAY ',main.SAPR_PLAYER,'..',main.SAPR_PLAYER+$c00-1
25 $R SAPRPLAY $A400..$AFFF
27 02E2-02E3> F5 09 ini mcpy
Source: block_attack.a65
115 .endl
116
117 ; ------------------------------------------------------------
118
119 0D16 org CODEORIGIN
120
121 0980 STATICDATA
Macro: STATICDATA [Source: block_attack.a65]
1 0980-A176> 04 54 52 55 + .by $04 $54 $52 $55 $45 $00 $05 $46 $41 $4C $53 $45 $00 $15 $41 $4E $54 $49 $43 $20 $50 $41 $4C $20
2 0998 69 73 20 72 65 71 + .by $69 $73 $20 $72 $65 $71 $75 $69 $72 $65 $64 $00 $15 $20 $36 $35 $30 $32 $20 $43 $50 $55 $20 $69
3 09B0 73 20 72 65 71 75 + .by $73 $20 $72 $65 $71 $75 $69 $72 $65 $64 $00 $19 $53 $65 $63 $6F $6E $64 $20 $50 $4F $4B $45 $59
4 09C8 20 6E 6F 74 20 64 + .by $20 $6E $6F $74 $20 $64 $65 $74 $65 $63 $74 $65 $64 $00 $15 $44 $69 $73 $61 $62 $6C $65 $20 $65
5 09E0 78 74 65 72 6E 61 + .by $78 $74 $65 $72 $6E $61 $6C $20 $63 $61 $72 $74 $00 $0D $50 $72 $65 $73 $73 $20 $61 $6E $79 $20
6 09F8 6B 65 79 00 0D 73 + .by $6B $65 $79 $00 $0D $73 $61 $70 $72 $5F $63 $72 $69 $74 $69 $63 $61 $6C $00 $0A $73 $61 $70 $72
7 0A10 5F 79 6F 73 68 69 + .by $5F $79 $6F $73 $68 $69 $00 $05 $74 $5F $70 $6D $30 $00 $05 $66 $5F $69 $64 $30 $00 $05 $66 $5F
8 0A28 69 64 32 00 05 66 + .by $69 $64 $32 $00 $05 $66 $5F $69 $64 $31 $00 $07 $66 $5F $69 $64 $32 $5F $61 $00 $07 $66 $5F $69
9 0A40 64 32 5F 62 00 07 + .by $64 $32 $5F $62 $00 $07 $66 $5F $69 $64 $31 $5F $61 $00 $07 $66 $5F $69 $64 $31 $5F $62 $00 $05
10 0A58 74 5F 74 69 74 00 + .by $74 $5F $74 $69 $74 $00 $0A $73 $61 $70 $72 $5F $6D $6F $64 $75 $6C $00 $06 $74 $5F $74 $69 $74
11 0A70 32 00 03 02 02 01 + .by $32 $00 $03 $02 $02 $01 $01 $02 $02 $03 $03 $03 $03 $03 $03 $03 $02 $03 $28 $14 $14 $28 $50 $50
12 0A88 A0 A0 40 50 50 50 + .by $A0 $A0 $40 $50 $50 $50 $28 $28 $A0 $A0 $18 $18 $0C $18 $30 $30 $60 $60 $C0 $C0 $C0 $C0 $18 $0C
13 0AA0 C0 C0 00 4F A8 4E + .by $C0 $C0 $00 $4F $A8 $4E $A8 $4D $A8 $4C $A6 $4B $A4 $49 $A3 $48 $A2 $00 $A0 $00 $00 $00 $37 $A8
14 0AB8 36 A8 35 A8 34 A6 + .by $36 $A8 $35 $A8 $34 $A6 $33 $A4 $32 $A3 $31 $A2 $00 $A0 $00 $00 $00 $1F $A8 $1E $A8 $1D $A8 $1C
15 0AD0 A6 1B A4 19 A3 18 + .by $A6 $1B $A4 $19 $A3 $18 $A2 $E0 $A0 $00 $00 $00 $00 $A3 $00 $A0 $00 $A3 $00 $A0 $00 $A3 $00 $A0
16 0AE8 00 A0 00 A0 00 00 + .by $00 $A0 $00 $A0 $00 $00 $00 $00 $04 $00 $02 $00 $01 $00 $00 $00 $02 $00 $04 $00 $00 $00 $00 $00
17 0B00 00 00 FA FA FA FA + .by $00 $00 $FA $FA $FA $FA $FA $FA $FA $FA $00 $00 $00 $00 $00 $00 $38 $38 $4C $4C $54 $54 $64 $64
18 0B18 44 44 44 44 38 38 + .by $44 $44 $44 $44 $38 $38 $00 $00 $10 $10 $30 $30 $10 $10 $10 $10 $10 $10 $10 $10 $7C $7C $00 $00
19 0B30 38 38 04 04 38 38 + .by $38 $38 $04 $04 $38 $38 $40 $40 $40 $40 $40 $40 $7C $7C $00 $00 $7C $7C $08 $08 $18 $18 $04 $04
20 0B48 04 04 44 44 38 38 + .by $04 $04 $44 $44 $38 $38 $00 $00 $40 $40 $50 $50 $7C $7C $10 $10 $10 $10 $10 $10 $10 $10 $00 $00
21 0B60 7C 7C 40 40 78 78 + .by $7C $7C $40 $40 $78 $78 $04 $04 $04 $04 $44 $44 $38 $38 $00 $00 $38 $38 $40 $40 $78 $78 $44 $44
22 0B78 44 44 44 44 38 38 + .by $44 $44 $44 $44 $38 $38 $00 $00 $7C $7C $04 $04 $08 $08 $10 $10 $10 $10 $10 $10 $10 $10 $00 $00
23 0B90 38 38 44 44 38 38 + .by $38 $38 $44 $44 $38 $38 $44 $44 $44 $44 $44 $44 $38 $38 $00 $00 $3C $3C $44 $44 $44 $44 $3C $3C
24 0BA8 04 04 04 04 04 04 + .by $04 $04 $04 $04 $04 $04 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $60 $A0 $A0 $A0 $A0 $C0 $00 $00
25 0BC0 C0 40 40 40 40 40 + .by $C0 $40 $40 $40 $40 $40 $00 $00 $C0 $20 $60 $80 $80 $E0 $00 $00 $E0 $20 $60 $20 $20 $C0 $00 $00
26 0BD8 80 A0 A0 E0 20 20 + .by $80 $A0 $A0 $E0 $20 $20 $00 $00 $E0 $80 $E0 $20 $20 $C0 $00 $00 $C0 $80 $E0 $A0 $A0 $C0 $00 $00
27 0BF0 E0 20 20 20 20 20 + .by $E0 $20 $20 $20 $20 $20 $00 $00 $E0 $A0 $E0 $A0 $A0 $E0 $00 $00 $E0 $A0 $A0 $E0 $20 $20 $00 $00
28 0C08 00 40 40 00 40 40 + .by $00 $40 $40 $00 $40 $40 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $06 $0A $0A $0A $0A $0C $00 $00
29 0C20 0C 04 04 04 04 04 + .by $0C $04 $04 $04 $04 $04 $00 $00 $0C $02 $06 $08 $08 $0E $00 $00 $0E $02 $06 $02 $02 $0C $00 $00
30 0C38 08 0A 0A 0E 02 02 + .by $08 $0A $0A $0E $02 $02 $00 $00 $0E $08 $0E $02 $02 $0C $00 $00 $0C $08 $0E $0A $0A $0C $00 $00
31 0C50 0E 02 02 02 02 02 + .by $0E $02 $02 $02 $02 $02 $00 $00 $0E $0A $0E $0A $0A $0E $00 $00 $0E $0A $0A $0E $02 $02 $00 $00
32 0C68 00 04 04 00 04 04 + .by $00 $04 $04 $00 $04 $04 $00 $00 $00 $01 $00 $01 $00 $01 $02 $03 $04 $05 $06 $07 $08 $09 $0A $0B
33 0C80 0C 0D 00 01 00 01 + .by $0C $0D $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $02 $03 $04 $05 $06 $07 $08 $09 $0A $0B
34 0C98 0C 0D 00 01 00 01 + .by $0C $0D $00 $01 $00 $01 $00 $01 $0E $0F $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $1A $1B $1C $1D
35 0CB0 1E 1F 00 01 00 01 + .by $1E $1F $00 $01 $00 $01 $00 $01 $0E $0F $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $1A $1B $1C $1D
36 0CC8 1E 1F 00 01 00 01 + .by $1E $1F $00 $01 $00 $01 $00 $01 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $2A $2B $2C $2D $2E $2F
37 0CE0 30 31 32 33 00 01 + .by $30 $31 $32 $33 $00 $01 $00 $01 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $2A $2B $2C $2D $2E $2F
38 0CF8 30 31 32 33 00 01 + .by $30 $31 $32 $33 $00 $01 $00 $01 $00 $01 $00 $01 $34 $35 $36 $37 $38 $39 $3A $3B $3C $3D $3E $3F
39 0D10 40 41 42 43 44 45 + .by $40 $41 $42 $43 $44 $45 $00 $01 $00 $01 $00 $01 $34 $35 $36 $37 $38 $39 $3A $3B $3C $3D $3E $3F
40 0D28 40 41 42 43 44 45 + .by $40 $41 $42 $43 $44 $45 $00 $01 $00 $00 $01 $02 $03 $00 $04 $05 $06 $07 $08 $09 $0A $0B $0C $0D
41 0D40 0E 00 00 00 00 00 + .by $0E $00 $00 $00 $00 $00 $00 $00 $0F $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $1A $1B $1C $1D $1E
42 0D58 1F 00 00 00 00 00 + .by $1F $00 $00 $00 $00 $00 $00 $00 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $2A $2B $2C $2D $2E $2F
43 0D70 30 00 00 00 00 00 + .by $30 $00 $00 $00 $00 $00 $00 $00 $00 $31 $32 $33 $34 $35 $36 $37 $38 $39 $3A $3B $3C $3D $3E $3F
44 0D88 40 41 42 43 00 00 + .by $40 $41 $42 $43 $00 $00 $00 $00 $00 $00 $00 $00 $0F $10 $44 $45 $46 $47 $48 $49 $4A $4B $4C $4D
45 0DA0 4E 4F 50 51 00 00 + .by $4E $4F $50 $51 $00 $00 $00 $00 $00 $00 $00 $00 $52 $53 $54 $55 $56 $57 $58 $59 $5A $5B $5C $5D
46 0DB8 5E 5F 60 61 62 00 + .by $5E $5F $60 $61 $62 $00 $00 $00 $00 $00 $00 $00 $00 $63 $64 $65 $66 $00 $00 $00 $00 $00 $00 $00
47 0DD0 00 00 00 00 00 00 + .by $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $01 $02 $03 $04 $05 $06 $07 $08 $09 $0A
48 0DE8 0B 00 00 00 00 00 + .by $0B $00 $00 $00 $00 $00 $00 $00 $00 $0C $0D $0E $0F $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $1A
49 0E00 1B 00 00 00 00 00 + .by $1B $00 $00 $00 $00 $00 $00 $00 $1C $1D $1E $1F $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $2A $2B
50 0E18 2C 00 00 00 00 00 + .by $2C $00 $00 $00 $00 $00 $00 $00 $2D $2E $2F $30 $31 $32 $33 $34 $35 $36 $37 $38 $39 $3A $3B $3C
51 0E30 3D 0A 3E 3F 00 00 + .by $3D $0A $3E $3F $00 $00 $00 $00 $00 $00 $00 $00 $00 $0C $40 $41 $42 $43 $44 $45 $46 $47 $48 $49
52 0E48 4A 4B 4C 4D 00 00 + .by $4A $4B $4C $4D $00 $00 $00 $00 $00 $00 $00 $00 $4E $4F $50 $51 $52 $53 $54 $55 $56 $57 $58 $59
53 0E60 5A 5B 5C 5D 5E 00 + .by $5A $5B $5C $5D $5E $00 $00 $00 $00 $00 $00 $00 $00 $5F $60 $61 $62 $63 $00 $00 $00 $00 $00 $00
54 0E78 00 00 00 00 00 00 + .by $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $01 $02 $00 $03 $04 $05 $06 $07 $08 $09
55 0E90 0A 00 00 00 00 00 + .by $0A $00 $00 $00 $00 $00 $00 $00 $00 $0B $0C $0D $0E $0F $10 $11 $12 $13 $14 $15 $16 $17 $18 $19
56 0EA8 1A 00 00 00 00 00 + .by $1A $00 $00 $00 $00 $00 $00 $00 $1B $1C $1D $1E $1F $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $2A
57 0EC0 2B 00 00 00 00 00 + .by $2B $00 $00 $00 $00 $00 $00 $00 $2C $2D $2E $2F $30 $31 $32 $07 $33 $34 $35 $36 $37 $38 $39 $3A
58 0ED8 3B 09 3C 3D 00 00 + .by $3B $09 $3C $3D $00 $00 $00 $00 $00 $00 $3E $3F $00 $0B $40 $41 $42 $43 $44 $45 $46 $47 $48 $49
59 0EF0 4A 4B 4C 4D 00 00 + .by $4A $4B $4C $4D $00 $00 $00 $00 $00 $00 $00 $00 $4E $4F $50 $51 $52 $53 $54 $55 $56 $57 $58 $59
60 0F08 5A 5B 5C 5D 5E 00 + .by $5A $5B $5C $5D $5E $00 $00 $00 $00 $00 $00 $00 $00 $5F $60 $61 $62 $63 $64 $00 $65 $66 $00 $00
61 0F20 00 00 00 00 00 00 + .by $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $01 $00 $02 $03
62 0F38 04 00 00 00 00 00 + .by $04 $00 $00 $00 $00 $00 $00 $00 $00 $05 $06 $07 $08 $09 $0A $0B $0C $0D $0E $0F $10 $11 $12 $13
63 0F50 14 00 00 00 00 00 + .by $14 $00 $00 $00 $00 $00 $00 $00 $15 $16 $17 $18 $19 $1A $1B $1C $1D $1E $1F $20 $21 $22 $23 $24
64 0F68 25 00 00 00 00 00 + .by $25 $00 $00 $00 $00 $00 $00 $00 $26 $27 $28 $29 $2A $2B $2C $00 $2D $2E $2F $30 $31 $32 $33 $34
65 0F80 35 03 04 00 00 00 + .by $35 $03 $04 $00 $00 $00 $00 $00 $00 $36 $37 $38 $39 $05 $3A $3B $3C $3D $3E $3F $40 $41 $42 $43
66 0F98 44 45 46 47 00 00 + .by $44 $45 $46 $47 $00 $00 $00 $00 $00 $00 $00 $00 $15 $16 $48 $49 $4A $4B $4C $4D $4E $4F $50 $51
67 0FB0 52 53 54 55 56 00 + .by $52 $53 $54 $55 $56 $00 $00 $00 $00 $00 $00 $00 $57 $58 $59 $5A $5B $5C $5D $5E $5F $60 $61 $62
68 0FC8 63 36 64 65 00 00 + .by $63 $36 $64 $65 $00 $00 $00 $00 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01
69 0FE0 00 01 00 01 00 01 + .by $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01
70 0FF8 00 01 00 01 00 01 + .by $00 $01 $00 $01 $00 $01 $00 $01 $82 $83 $84 $85 $86 $07 $88 $09 $8A $8B $8C $8D $8E $8F $90 $91
71 1010 92 93 94 15 00 01 + .by $92 $93 $94 $15 $00 $01 $00 $01 $82 $83 $84 $85 $86 $87 $88 $89 $8A $8B $8C $8D $8E $8F $90 $91
72 1028 92 93 94 95 00 01 + .by $92 $93 $94 $95 $00 $01 $00 $01 $96 $97 $98 $99 $9A $9B $9C $9D $9E $9F $A0 $A1 $A2 $A3 $A4 $A5
73 1040 A6 A7 A8 A9 00 01 + .by $A6 $A7 $A8 $A9 $00 $01 $00 $01 $16 $97 $98 $99 $9A $9B $9C $9D $9E $9F $A0 $A1 $A2 $A3 $A4 $A5
74 1058 A6 A7 A8 A9 00 01 + .by $A6 $A7 $A8 $A9 $00 $01 $00 $01 $2A $AB $AC $AD $AE $AF $B0 $B1 $B2 $B3 $B4 $B5 $B6 $B7 $B8 $B9
75 1070 BA BB BC BD 00 01 + .by $BA $BB $BC $BD $00 $01 $00 $01 $2A $2B $2C $2D $2E $2F $30 $31 $32 $33 $34 $35 $36 $37 $38 $39
76 1088 3A 3B 3C 3D 00 01 + .by $3A $3B $3C $3D $00 $01 $00 $01 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
77 10A0 00 00 00 00 00 00 + .by $00 $00 $00 $00 $00 $00 $00 $00 $81 $82 $83 $84 $85 $86 $87 $88 $89 $8A $8B $8C $8D $8E $8F $90
78 10B8 91 92 93 94 00 00 + .by $91 $92 $93 $94 $00 $00 $00 $00 $95 $96 $97 $98 $99 $9A $9B $9C $9D $9E $9F $A0 $A1 $A2 $A3 $A4
79 10D0 A5 9F A6 A7 00 00 + .by $A5 $9F $A6 $A7 $00 $00 $00 $00 $00 $A8 $A9 $AA $AB $AC $AD $A1 $AE $AF $9F $B0 $B1 $B2 $B3 $B4
80 10E8 B5 B6 B7 B8 00 00 + .by $B5 $B6 $B7 $B8 $00 $00 $00 $00 $00 $B9 $BA $BB $BC $BD $BE $BF $C0 $C1 $C2 $C3 $C4 $C5 $C6 $C7
81 1100 C8 C9 CA CB 00 00 + .by $C8 $C9 $CA $CB $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
82 1118 00 00 00 00 00 00 + .by $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
83 1130 00 00 00 00 00 00 + .by $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
84 1148 00 00 00 00 00 00 + .by $00 $00 $00 $00 $00 $00 $00 $00 $81 $82 $83 $84 $85 $86 $87 $88 $89 $8A $8B $8C $8D $8E $8F $90
85 1160 91 8F 84 92 00 00 + .by $91 $8F $84 $92 $00 $00 $00 $00 $93 $94 $95 $96 $97 $98 $99 $9A $9B $9C $9D $9E $9F $A0 $A1 $A2
86 1178 A3 A4 A5 A6 00 00 + .by $A3 $A4 $A5 $A6 $00 $00 $00 $00 $00 $A7 $A8 $A9 $AA $AB $AC $AD $AE $AF $A4 $B0 $B1 $B2 $B3 $B4
87 1190 B5 B6 B7 B8 00 00 + .by $B5 $B6 $B7 $B8 $00 $00 $00 $00 $00 $B9 $BA $BB $BC $BD $BE $BF $C0 $C1 $C2 $C3 $C4 $C5 $C6 $C7
88 11A8 C8 C9 CA CB 00 00 + .by $C8 $C9 $CA $CB $00 $00 $00 $00 $00 $CC $CD $CE $CD $CF $80 $D0 $CE $80 $D0 $CE $D1 $CC $D1 $D2
89 11C0 D3 CE CC D1 00 00 + .by $D3 $CE $CC $D1 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
90 11D8 00 00 00 00 00 00 + .by $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
91 11F0 00 00 00 00 00 00 + .by $00 $00 $00 $00 $00 $00 $00 $00 $81 $82 $83 $84 $85 $80 $86 $80 $81 $85 $87 $88 $89 $85 $8A $8B
92 1208 84 8A 84 80 00 00 + .by $84 $8A $84 $80 $00 $00 $00 $00 $8C $8D $8E $8F $90 $91 $92 $93 $94 $95 $96 $97 $98 $99 $9A $9B
93 1220 9C 9D 9E 9F 00 00 + .by $9C $9D $9E $9F $00 $00 $00 $00 $A0 $A1 $A2 $A3 $A4 $A5 $A6 $A7 $A8 $A9 $AA $AB $AC $AD $AE $AF
94 1238 B0 B1 B2 B3 00 00 + .by $B0 $B1 $B2 $B3 $00 $00 $00 $00 $00 $B4 $B5 $B6 $B7 $B8 $B9 $BA $BB $BC $BD $BE $BF $C0 $C1 $C2
95 1250 C3 C4 C5 C6 00 00 + .by $C3 $C4 $C5 $C6 $00 $00 $00 $00 $00 $C7 $C8 $C9 $CA $CB $CC $CD $C9 $CE $CF $D0 $D1 $D2 $D3 $D4
96 1268 D5 D6 D7 D1 00 00 + .by $D5 $D6 $D7 $D1 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
97 1280 00 00 00 00 00 00 + .by $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
98 1298 00 00 00 00 00 00 + .by $00 $00 $00 $00 $00 $00 $00 $00 $80 $81 $82 $80 $80 $80 $82 $80 $80 $80 $80 $82 $83 $80 $80 $80
99 12B0 80 80 80 80 00 00 + .by $80 $80 $80 $80 $00 $00 $00 $00 $84 $85 $86 $87 $88 $89 $8A $8B $8C $8D $8E $8F $90 $91 $92 $93
100 12C8 94 95 96 97 00 00 + .by $94 $95 $96 $97 $00 $00 $00 $00 $98 $99 $9A $9B $9C $9D $9E $9F $A0 $A1 $A2 $A3 $A4 $A5 $A6 $A7
101 12E0 A8 A9 AA AB 00 00 + .by $A8 $A9 $AA $AB $00 $00 $00 $00 $00 $AC $AD $AE $AF $B0 $B1 $A4 $B2 $B3 $A2 $B4 $B5 $B6 $B7 $B8
102 12F8 B9 BA BB BC 00 00 + .by $B9 $BA $BB $BC $00 $00 $00 $00 $80 $BD $BE $BF $C0 $C1 $C2 $C3 $C4 $C5 $C6 $C7 $C8 $C9 $CA $CB
103 1310 CC CD CE CF 00 00 + .by $CC $CD $CE $CF $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
104 1328 00 00 00 00 00 00 + .by $00 $00 $00 $00 $00 $00 $00 $00 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01
105 1340 00 01 00 01 00 01 + .by $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01
106 1358 00 01 00 01 00 01 + .by $00 $01 $00 $01 $00 $01 $00 $01 $46 $C7 $C8 $C9 $CA $CB $CC $CD $CE $CF $D0 $D1 $D2 $D3 $D4 $D5
107 1370 D6 D7 D8 D9 00 01 + .by $D6 $D7 $D8 $D9 $00 $01 $00 $01 $46 $C7 $C8 $C9 $CA $CB $4C $CD $CE $CF $D0 $D1 $D2 $D3 $D4 $D5
108 1388 D6 D7 D8 D9 00 01 + .by $D6 $D7 $D8 $D9 $00 $01 $00 $01 $00 $01 $00 $01 $5A $5B $5C $5D $5E $5F $00 $01 $60 $61 $62 $63
109 13A0 64 65 00 01 00 01 + .by $64 $65 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $5A $5B $5C $5D $5E $5F $00 $01 $60 $61 $62 $63
110 13B8 64 65 00 01 00 01 + .by $64 $65 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $66 $67 $68 $69 $6A $6B $00 $01 $6C $6D $6E $6F
111 13D0 70 71 00 01 00 01 + .by $70 $71 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $66 $67 $68 $69 $6A $6B $00 $01 $6C $6D $6E $6F
112 13E8 70 71 00 01 00 01 + .by $70 $71 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01
113 1400 00 01 00 01 00 01 + .by $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01
114 1418 00 01 00 01 00 01 + .by $00 $01 $00 $01 $00 $01 $00 $01 $3E $BF $C0 $C1 $C2 $C3 $C4 $C5 $C6 $C7 $C8 $C9 $CA $CB $CC $CD
115 1430 CE CF D0 D1 00 01 + .by $CE $CF $D0 $D1 $00 $01 $00 $01 $3E $BF $C0 $C1 $C2 $C3 $44 $C5 $C6 $C7 $C8 $C9 $CA $CB $CC $CD
116 1448 CE CF D0 D1 00 01 + .by $CE $CF $D0 $D1 $00 $01 $00 $01 $00 $01 $00 $01 $52 $53 $54 $55 $56 $57 $00 $01 $58 $59 $5A $5B
117 1460 5C 5D 00 01 00 01 + .by $5C $5D $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $52 $53 $54 $55 $56 $57 $00 $01 $58 $59 $5A $5B
118 1478 5C 5D 00 01 00 01 + .by $5C $5D $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $5E $5F $60 $61 $62 $63 $00 $01 $64 $65 $66 $67
119 1490 68 69 00 01 00 01 + .by $68 $69 $00 $01 $00 $01 $00 $01 $00 $01 $00 $01 $5E $5F $60 $61 $62 $63 $00 $01 $64 $65 $66 $67
120 14A8 68 69 00 01 00 01 + .by $68 $69 $00 $01 $00 $01 $00 $01 $0E $D7 $8F $4F $0B $2F $26 $00 $10 $0A $00 $15 $14 $0D $2C $2C
121 14C0 1C 54 20 44 00 00 + .by $1C $54 $20 $44 $00 $00 $40 $FE $0E $D7 $8F $4B $0B $2B $26 $00 $10 $0A $00 $15 $14 $0C $2C $2D
122 14D8 1C 54 20 44 00 00 + .by $1C $54 $20 $44 $00 $00 $40 $FE $0E $D7 $89 $49 $09 $2B $26 $00 $11 $0B $01 $11 $14 $0C $2C $2C
123 14F0 1D 54 20 44 00 00 + .by $1D $54 $20 $44 $00 $00 $40 $FE $4E $57 $6F $4F $6B $4F $66 $E0 $51 $5A $F0 $53 $03 $51 $55 $F4
124 1508 76 65 40 04 00 00 + .by $76 $65 $40 $04 $00 $00 $00 $81 $4E $57 $6F $4B $6B $4B $66 $E0 $51 $5A $F0 $53 $03 $01 $05 $54
125 1520 56 F5 70 64 40 00 + .by $56 $F5 $70 $64 $40 $00 $00 $81 $4E $57 $69 $49 $49 $6B $E6 $50 $59 $F2 $50 $13 $03 $41 $05 $04
126 1538 56 55 F0 74 60 40 + .by $56 $55 $F0 $74 $60 $40 $00 $81 $E0 $32 $18 $0A $08 $42 $2A $23 $05 $08 $80 $17 $2B $17 $0F $20
127 1550 07 0B 13 07 00 00 + .by $07 $0B $13 $07 $00 $00 $00 $E8 $E0 $32 $18 $0A $08 $82 $8A $43 $45 $08 $80 $17 $28 $11 $27 $01
128 1568 27 01 20 01 0B 00 + .by $27 $01 $20 $01 $0B $00 $00 $E8 $E0 $32 $18 $0A $08 $82 $8A $83 $45 $08 $80 $17 $28 $11 $4F $01
129 1580 5F 0F 41 00 1B 00 + .by $5F $0F $41 $00 $1B $00 $00 $E8 $3E $7E $86 $03 $03 $13 $8B $8B $82 $C4 $7A $76 $A7 $E3 $F5 $73
130 1598 60 E0 C0 80 00 00 + .by $60 $E0 $C0 $80 $00 $00 $00 $00 $3E $7E $86 $03 $03 $23 $A3 $93 $92 $C4 $7A $76 $A7 $63 $B5 $23
131 15B0 B0 20 20 C0 80 00 + .by $B0 $20 $20 $C0 $80 $00 $00 $00 $3E $7E $86 $03 $03 $23 $A3 $A3 $92 $C4 $7A $76 $A7 $63 $D5 $13
132 15C8 D0 90 10 E0 80 00 + .by $D0 $90 $10 $E0 $80 $00 $00 $00 $0F $47 $23 $51 $59 $04 $22 $14 $01 $2A $19 $2A $1A $08 $02 $05
133 15E0 02 01 00 00 00 00 + .by $02 $01 $00 $00 $00 $00 $00 $4C $0F $47 $2B $51 $59 $04 $22 $14 $01 $2A $18 $2A $1A $08 $02 $05
134 15F8 02 01 00 00 00 00 + .by $02 $01 $00 $00 $00 $00 $00 $4C $0F $47 $2B $51 $59 $04 $22 $14 $01 $2A $18 $2A $1A $08 $02 $05
135 1610 02 01 00 00 00 00 + .by $02 $01 $00 $00 $00 $00 $00 $4C $46 $54 $48 $51 $E3 $A4 $A8 $E5 $70 $FA $19 $0B $49 $EA $0C $1C
136 1628 78 70 E0 00 00 00 + .by $78 $70 $E0 $00 $00 $00 $00 $00 $46 $54 $4A $51 $E3 $A4 $A8 $E5 $10 $0A $09 $0B $69 $EA $6C $24
137 1640 31 5E EC 43 00 00 + .by $31 $5E $EC $43 $00 $00 $00 $00 $46 $54 $4A $51 $E3 $A4 $A8 $E5 $10 $0A $09 $0B $69 $EA $6C $34
138 1658 10 58 EF 44 02 00 + .by $10 $58 $EF $44 $02 $00 $00 $00 $00 $00 $A8 $00 $50 $01 $F8 $01
Source: block_attack.a65
122
123 ; ------------------------------------------------------------
124
125 1668 RTLIB
126 1668 icl 'rtl6502_a8.asm'
Source: rtl6502_a8.asm
84 opt l+
127
128 .print 'ZPAGE: ',zpage,'..',zpend-1
128 ZPAGE: $0080..$00D3
129
130 .print 'RTBUF: ',@buf,'..',@buf+255
130 RTBUF: $0400..$04FF
131
132 .print 'RTLIB: ',RTLIB,'..',*-1
132 RTLIB: $1668..$18B9
133
134 ; ------------------------------------------------------------
135
136 18BA START
137 18BA BA tsx
138 18BB 8E C8 40 stx MAIN.@halt+1
139
140 = 014F VLEN = VARDATASIZE-VARINITSIZE
141 = A27F VADR = DATAORIGIN+VARINITSIZE
142
143 ift VADR > $BFFF
144 ert 'Invalid memory address range ',VADR
145 eli (VLEN > 0) && (VLEN <= 256)
146 ldx #256-VLEN
147 lda #$00
148 sta:rne VADR+VLEN-256,x+
149 eli VLEN>256
150 18BE m@init
Macro: M@INIT [Source: macros.asm]
2 18BE A0 7F ldy <VADR
3 18C0 A2 A2 ldx >VADR
5 18C2 A9 00 lda #$00
6 18C4 F0 07 beq skp_
8 18C6 99 00 10 clr sta adr: $1000,y
10 18C9 C8 iny
11 18CA D0 04 bne skp
12 18CC E8 inx
13 18CD 8E C8 18 skp_ stx adr+1
15 18D0 E0 A3 skp cpx >VADR+VLEN
16 18D2 D0 F2 bne clr
17 18D4 C0 CE cpy <VADR+VLEN
18 18D6 D0 EE bne clr
151 eif
152
153 .ifdef psptr
154 mwa #PROGRAMSTACK psptr
155 .fi
156
157 .ifdef MAIN.@DEFINES.ROMOFF
158 icl 'atari\romoff.asm'
159 .fi
160
161 18D8 A2 0F ldx #$0F ; DOS II+/D ParamStr
162 18DA BD 40 03 9D CD 40 + mva:rpl $340,x MAIN.IOCB@COPY,x-
163
164 18E3 E8 inx ; X = 0
165 18E4 86 80 stx bp ; BP = 0
166
167 18E6 8E 08 D2 stx audctl ; reset POKEY
168 18E9 8E 18 D2 stx audctl+$10
169 18EC A9 03 lda #3
170 18EE 8D 0F D2 sta skctl
171 18F1 8D 1F D2 sta skctl+$10
172
173 18F4 CA dex ; X = 255
174
175 18F5 UNITINITIALIZATION
Macro: UNITINITIALIZATION [Source: block_attack.a65]
51 18F5 20 EA 1C jsr MAIN.SYSREQ.@UnitInit
55 18F8 20 84 1E jsr MAIN.SAPLZSS.@UnitInit
176
177 18FB .local MAIN ; PROCEDURE
178
179 18FB 4C 59 3D jmp l_00F9
180
181 ; ------------------------------------------------------------
182
183 18FE .local SYSTEM ; UNIT
184
185 18FE .local STR_0133 ; PROCEDURE | ASSEMBLER | OVERLOAD
186
187 ; ------------------------------------------------------------
188
189 ; Generate Assignment for CARDINAL / INTEGER / REAL / SINGLE
190 ; as Pointer
191 18FE B5 94 lda :STACKORIGIN,x
192 1900 8D EE A1 sta A
193 1903 B5 A4 lda :STACKORIGIN+STACKWIDTH,x
194 1905 8D EF A1 sta A+1
195 1908 B5 B4 lda :STACKORIGIN+STACKWIDTH*2,x
196 190A 8D F0 A1 sta A+2
197 190D B5 C4 lda :STACKORIGIN+STACKWIDTH*3,x
198 190F 8D F1 A1 sta A+3
199 1912 CA dex
200 1913 30 0B jmi @main
201
202 ; ------------------------------------------------------------
203
204 ; Generate Assignment for WORD / SMALLINT / SHORTREAL / POINTER
205 ; as Pointer
206 1915 B5 94 lda :STACKORIGIN,x
207 1917 8D F2 A1 sta S
208 191A B5 A4 lda :STACKORIGIN+STACKWIDTH,x
209 191C 8D F3 A1 sta S+1
210 191F CA dex
211 1920 @main
212
213 ; ------------------- ASM Block 00000023 -------------------
214
215 1920 8A 48 txa:pha
216
217 1922 E8 inx ; parameter A
218 1923 E8 inx ; parameter S
219
220 @ValueToStr #@printCARD
220 LDY> @PRINTCARD\ LDA< @PRINTCARD\ JSR @VALUETOSTR
220 1924 A0 18 LDY> @PRINTCARD
220 1926 A9 16 LDA< @PRINTCARD
220 1928 20 BE 17 JSR @VALUETOSTR
221
222 @buf2str s ; !!! koniecznie przez wskaznik
222 LDY S+1\ LDA S\ JSR @BUF2STR
222 192B AC F3 A1 LDY S+1
222 192E AD F2 A1 LDA S
222 1931 20 40 17 JSR @BUF2STR
223
224 1934 68 AA pla:tax
225
226 ; ------------------------------------------------------------
227
228 = A1EE A = DATAORIGIN+$000B
229 = A1F2 S = DATAORIGIN+$000F
230
231 = A1EE @VarData = A
232 = 0006 @VarDataSize = 6
233
234 1936 @exit
235 .ifdef @new
236 lda <@VarData
237 sta :ztmp
238 lda >@VarData
239 ldy #@VarDataSize-1
240 jmp @FreeMem
241 els
242 1936 60 rts ; ret
243 eif
244 .endl
245
246 1937 .local POKE ; PROCEDURE | ASSEMBLER | REGISTER
247
248 ; ------------------------------------------------------------
249
250 ; Generate Assignment for WORD / SMALLINT / SHORTREAL / POINTER
251 ; as Pointer
252 1937 B5 94 lda :STACKORIGIN,x
253 1939 85 88 sta A
254 193B B5 A4 lda :STACKORIGIN+STACKWIDTH,x
255 193D 85 89 sta A+1
256 193F CA dex
257 1940 30 05 jmi @main
258
259 ; ------------------------------------------------------------
260
261 ; Generate Assignment for BYTE / CHAR / SHORTINT / BOOLEAN
262 ; as Pointer
263 1942 B5 94 lda :STACKORIGIN,x
264 1944 85 8C sta VALUE
265 1946 CA dex
266 1947 @main
267
268 ; ------------------- ASM Block 00000024 -------------------
269
270 1947 A0 00 ldy #0
271 1949 A5 8C 91 88 mva value (:edx),y
272
273 ; ------------------------------------------------------------
274
275 = 0088 A = :EDX
276 = 008C VALUE = :ECX
277 194D @exit
278 .ifdef @new
279 lda <@VarData
280 sta :ztmp
281 lda >@VarData
282 ldy #@VarDataSize-1
283 jmp @FreeMem
284 els
285 194D 60 rts ; ret
286 eif
287 .endl
288
289 194E .local FILLCHAR_0141 ; PROCEDURE | ASSEMBLER | OVERLOAD | REGISTER | INLINE
290
291 .MACRO m@INLINE
292
293 ; ------------------- ASM Block 00000027 -------------------
294
295 jsr @fill
296
297 .ENDM
298
299 ; ------------------------------------------------------------
300
301 = 0088 A = :EDX
302 = 008C COUNT = :ECX
303 = 0084 VALUE = :EAX
304 194E @exit
305 .endl
306
307 194E .local FILLCHAR_0142 ; PROCEDURE | ASSEMBLER | OVERLOAD | REGISTER | INLINE
308
309 .MACRO m@INLINE
310
311 ; ------------------- ASM Block 00000030 -------------------
312
313 jsr @fill
314
315 .ENDM
316
317 ; ------------------------------------------------------------
318
319 = 0088 A = :EDX
320 = 008C COUNT = :ECX
321 = 0084 VALUE = :EAX
322 194E @exit
323 .endl
324
325 194E .local MOVE_0143 ; PROCEDURE | ASSEMBLER | OVERLOAD | REGISTER | INLINE
326
327 .MACRO m@INLINE
328
329 ; ------------------- ASM Block 00000033 -------------------
330
331 jsr @move
332
333 .ENDM
334
335 ; ------------------------------------------------------------
336
337 = 0088 SOURCE = :EDX
338 = 008C DEST = :ECX
339 = 0084 COUNT = :EAX
340 194E @exit
341 .endl
342
343 194E .local MOVE_0144 ; PROCEDURE | ASSEMBLER | OVERLOAD | REGISTER | INLINE
344
345 .MACRO m@INLINE
346
347 ; ------------------- ASM Block 00000035 -------------------
348
349 jsr @move
350
351 .ENDM
352
353 ; ------------------------------------------------------------
354
355 = 0088 SOURCE = :EDX
356 = 008C DEST = :ECX
357 = 0084 COUNT = :EAX
358 194E @exit
359 .endl
360
361 194E .local PAUSE_016D ; PROCEDURE | ASSEMBLER | OVERLOAD
362
363 ; ------------------- ASM Block 00000042 -------------------
364
365 194E A5 14 C5 14 F0 FC lda:cmp:req :rtclok+2
366
367 1954 @exit
368 .ifdef @new
369 lda <@VarData
370 sta :ztmp
371 lda >@VarData
372 ldy #@VarDataSize-1
373 jmp @FreeMem
374 els
375 1954 60 rts ; ret
376 eif
377 .endl
378
379 1955 .local PAUSE_016E ; PROCEDURE | ASSEMBLER | OVERLOAD
380
381 ; ------------------- ASM Block 00000043 -------------------
382
383
384 1955 AD F4 A1 loop lda n
385 1958 0D F5 A1 ora n+1
386 195B F0 14 beq stop
387
388 195D A5 14 C5 14 F0 FC lda:cmp:req :rtclok+2
389
390 1963 AD F4 A1 D0 03 CE + dew n
391
392 196E 4C 55 19 jmp loop
393 1971 stop
394
395
396 ; ------------------------------------------------------------
397
398 = A1F4 N = DATAORIGIN+$0011
399
400 = A1F4 @VarData = N
401 = 0002 @VarDataSize = 2
402
403 1971 @exit
404 .ifdef @new
405 lda <@VarData
406 sta :ztmp
407 lda >@VarData
408 ldy #@VarDataSize-1
409 jmp @FreeMem
410 els
411 1971 60 rts ; ret
412 eif
413 .endl
414
415 1972 .local RANDOMIZE ; PROCEDURE | ASSEMBLER
416
417 ; ------------------- ASM Block 00000044 -------------------
418
419
420 1972 AD 0A D2 8D EC A1 mva $d20a RndSeed
421 1978 A9 00 8D ED A1 mva #$00 RndSeed+1
422
423
424 197D @exit
425 .ifdef @new
426 lda <@VarData
427 sta :ztmp
428 lda >@VarData
429 ldy #@VarDataSize-1
430 jmp @FreeMem
431 els
432 197D 60 rts ; ret
433 eif
434 .endl
435
436 197E .local RANDOM_0170 ; FUNCTION | ASSEMBLER | OVERLOAD
437 197E 8D F6 A1 sta RANGE
438
439 ; ------------------- ASM Block 00000048 -------------------
440
441
442 ;BYTE FUNC Rand(BYTE range)
443 ; returns random number between 0 and
444 ; range-1. If range=0, then a random
445 ; number between 0 and 255 is returned
446
447 1981 AC 0A D2 ldy $d20a ; RANDOM
448
449 1984 AD F6 A1 lda range
450 1987 F0 08 beq stop
451
452 1989 85 8C sta :ecx
453 198B 84 84 sty :eax
454
455 198D 20 60 17 jsr imulCL
456 1990 A8 tay
457
458 1991 8C F7 A1 stop sty Result
459
460
461 1994 @exit
462
463 ; ------------------------------------------------------------
464
465 = A1F6 RANGE = DATAORIGIN+$0013
466 = A1F7 RESULT = DATAORIGIN+$0014
467
468 = A1F6 @VarData = RANGE
469 = 0001 @VarDataSize = 1
470
471 1994 60 rts ; ret
472 .endl
473
474 ; ------------------------------------------------------------
475
476 = 0101 __PORTB_BANKS = $0101
477 = 0648 M_PI_2 = $0648
478 = 0192 D_PI_2 = $0192
479 = 0004 D_PI_180 = $04
480 = 0000 MGTIA = $00
481 = 0080 MVBXE = $80
482 = 0000 VBXE_XDLADR = $00
483 = 00E0 VBXE_BCBTMP = $E0
484 = 0100 VBXE_BCBADR = $0100
485 = 1000 VBXE_MAPADR = $1000
486 = 1000 VBXE_CHBASE = $1000
487 = 5000 VBXE_OVRADR = $5000
488 = B000 VBXE_WINDOW = $B000
489 = 0000 IDLI = $00
490 = 0001 IVBL = $01
491 = 0001 IVBLD = $01
492 = 0002 IVBLI = $02
493 = 0003 ITIM1 = $03
494 = 0004 ITIM2 = $04
495 = 0005 ITIM4 = $05
496 = 00FE CH_DELCHR = $FE
497 = 009B CH_ENTER = $9B
498 = 001B CH_ESC = $1B
499 = 001C CH_CURS_UP = $1C
500 = 001D CH_CURS_DOWN = $1D
501 = 001E CH_CURS_LEFT = $1E
502 = 001F CH_CURS_RIGHT = $1F
503 = 007F CH_TAB = $7F
504 = 009B CH_EOL = $9B
505 = 007D CH_CLR = $7D
506 = 00FD CH_BELL = $FD
507 = 007E CH_DEL = $7E
508 = 009C CH_DELLINE = $9C
509 = 009D CH_INSLINE = $9D
510 = 0000 PAL_PMCOLOR0 = $00
511 = 0001 PAL_PMCOLOR1 = $01
512 = 0002 PAL_PMCOLOR2 = $02
513 = 0003 PAL_PMCOLOR3 = $03
514 = 0004 PAL_COLOR0 = $04
515 = 0005 PAL_COLOR1 = $05
516 = 0006 PAL_COLOR2 = $06
517 = 0007 PAL_COLOR3 = $07
518 = 0008 PAL_COLBAK = $08
519 = 0000 COLOR_BLACK = $00
520 = 000E COLOR_WHITE = $0E
521 = 0032 COLOR_RED = $32
522 = 0096 COLOR_CYAN = $96
523 = 0068 COLOR_VIOLET = $68
524 = 00C4 COLOR_GREEN = $C4
525 = 0074 COLOR_BLUE = $74
526 = 00EE COLOR_YELLOW = $EE
527 = 0028 COLOR_ORANGE = $28
528 = 00E4 COLOR_BROWN = $E4
529 = 003C COLOR_LIGHTRED = $3C
530 = 0004 COLOR_GRAY1 = $04
531 = 0006 COLOR_GRAY2 = $06
532 = 000A COLOR_GRAY3 = $0A
533 = 00CC COLOR_LIGHTGREEN = $CC
534 = 007C COLOR_LIGHTBLUE = $7C
535 = 0004 FMOPENREAD = $04
536 = 0008 FMOPENWRITE = $08
537 = 0009 FMOPENAPPEND = $09
538 = 000C FMOPENREADWRITE = $0C
539 = A1E3 SCREENWIDTH = DATAORIGIN+$0000
540 = A1E5 SCREENHEIGHT = DATAORIGIN+$0002
541 = A1E7 DATESEPARATOR = DATAORIGIN+$0004
542 = D20A RND = $D20A
543 = 02C0 adr.PALETTE = $02C0
544 1995 .var PALETTE = adr.PALETTE .word
545 = D012 adr.HPALETTE = $D012
546 1995 .var HPALETTE = adr.HPALETTE .word
547 = A1E8 FILEMODE = DATAORIGIN+$0005
548 = A1E9 GRAPHMODE = DATAORIGIN+$0006
549 = A1EA IORESULT = DATAORIGIN+$0007
550 = A1EB EOLN = DATAORIGIN+$0008
551 = A1EC RNDSEED = DATAORIGIN+$0009
552
553 = 1995 C0 02 PALETTE
553 = 1997 12 D0 HPALETTE
553 .endl ; UNIT SYSTEM
554
555 ; ------------------------------------------------------------
556
557 1999 .local ATARI ; UNIT
558
559 ; ------------------------------------------------------------
560
561 = 0010 IRQENS = $10
562 = 0012 RTCLOK = $12
563 = 0012 RTCLOK1 = $12
564 = 0013 RTCLOK2 = $13
565 = 0014 RTCLOK3 = $14
566 = 004D ATRACT = $4D
567 = 0052 LMARGIN = $52
568 = 0053 RMARGIN = $53
569 = 0054 ROWCRS = $54
570 = 0055 COLCRS = $55
571 = 0057 DINDEX = $57
572 = 0058 SAVMSC = $58
573 = 0062 PALNTS = $62
574 = 006A RAMTOP = $6A
575 = 0200 VDSLST = $0200
576 = 0230 SDLSTL = $0230
577 = 0290 TXTROW = $0290
578 = 0291 TXTCOL = $0291
579 = 0293 TINDEX = $0293
580 = 0294 TXTMSC = $0294
581 = 022F SDMCTL = $022F
582 = 026F GPRIOR = $026F
583 = 02F0 CRSINH = $02F0
584 = 02F3 CHACT = $02F3
585 = 02F4 CHBAS = $02F4
586 = 02FC CH = $02FC
587 = 02FD FILDAT = $02FD
588 = 02C0 PCOLR0 = $02C0
589 = 02C1 PCOLR1 = $02C1
590 = 02C2 PCOLR2 = $02C2
591 = 02C3 PCOLR3 = $02C3
592 = 02C4 COLOR0 = $02C4
593 = 02C5 COLOR1 = $02C5
594 = 02C6 COLOR2 = $02C6
595 = 02C7 COLOR3 = $02C7
596 = 02C8 COLOR4 = $02C8
597 = 02C8 COLBAKS = $02C8
598 = D000 HPOSP0 = $D000
599 = D001 HPOSP1 = $D001
600 = D002 HPOSP2 = $D002
601 = D003 HPOSP3 = $D003
602 = D004 HPOSM0 = $D004
603 = D005 HPOSM1 = $D005
604 = D006 HPOSM2 = $D006
605 = D007 HPOSM3 = $D007
606 = D008 SIZEP0 = $D008
607 = D009 SIZEP1 = $D009
608 = D00A SIZEP2 = $D00A
609 = D00B SIZEP3 = $D00B
610 = D00C SIZEM = $D00C
611 = D00D GRAFP0 = $D00D
612 = D00E GRAFP1 = $D00E
613 = D00F GRAFP2 = $D00F
614 = D010 GRAFP3 = $D010
615 = D011 GRAFM = $D011
616 = D004 P0PF = $D004
617 = D014 PAL = $D014
618 = D013 TRIG3 = $D013
619 = D012 COLPM0 = $D012
620 = D013 COLPM1 = $D013
621 = D014 COLPM2 = $D014
622 = D015 COLPM3 = $D015
623 = D016 COLPF0 = $D016
624 = D017 COLPF1 = $D017
625 = D018 COLPF2 = $D018
626 = D019 COLPF3 = $D019
627 = D01A COLBK = $D01A
628 = D01B PRIOR = $D01B
629 = D01D GRACTL = $D01D
630 = D01E HITCLR = $D01E
631 = D01F CONSOL = $D01F
632 = D200 AUDF1 = $D200
633 = D201 AUDC1 = $D201
634 = D202 AUDF2 = $D202
635 = D203 AUDC2 = $D203
636 = D204 AUDF3 = $D204
637 = D205 AUDC3 = $D205
638 = D206 AUDF4 = $D206
639 = D207 AUDC4 = $D207
640 = D208 AUDCTL = $D208
641 = D209 KBCODE = $D209
642 = D20E IRQEN = $D20E
643 = D20F SKSTAT = $D20F
644 = D300 PORTA = $D300
645 = D301 PORTB = $D301
646 = D302 PACTL = $D302
647 = D400 DMACTL = $D400
648 = D401 CHACTL = $D401
649 = D402 DLISTL = $D402
650 = D404 HSCROL = $D404
651 = D405 VSCROL = $D405
652 = D407 PMBASE = $D407
653 = D409 CHBASE = $D409
654 = D40A WSYNC = $D40A
655 = D40B VCOUNT = $D40B
656 = D40C PENH = $D40C
657 = D40D PENV = $D40D
658 = D40E NMIEN = $D40E
659 = FFFA NMIVEC = $FFFA
660 = FFFC RESETVEC = $FFFC
661 = FFFE IRQVEC = $FFFE
662
663 .endl ; UNIT ATARI
664
665 ; ------------------------------------------------------------
666
667 1999 .local CRT ; UNIT
668
669 1999 .local KEYPRESSED ; FUNCTION | ASSEMBLER
670
671 ; ------------------- ASM Block 00000062 -------------------
672
673 1999 A0 00 ldy #$00 ; false
674 199B AD FC 02 lda kbcodes
675 199E C9 FF cmp #$ff
676 19A0 F0 01 seq
677 19A2 C8 iny ; true
678 19A3 8C F9 A1 sty Result
679
680 19A6 @exit
681
682 ; ------------------------------------------------------------
683
684 = A1F9 RESULT = DATAORIGIN+$0016
685 19A6 60 rts ; ret
686 .endl
687
688 ; ------------------------------------------------------------
689
690 = A1F8 TEXTATTR = DATAORIGIN+$0015
691 = D01F CONSOL = $D01F
692 = 0000 CN_START_SELECT_OPTION = $00
693 = 0001 CN_SELECT_OPTION = $01
694 = 0002 CN_START_OPTION = $02
695 = 0003 CN_OPTION = $03
696 = 0004 CN_START_SELECT = $04
697 = 0005 CN_SELECT = $05
698 = 0006 CN_START = $06
699 = 0007 CN_NONE = $07
700 = 0000 BW40 = $00
701 = 0001 CO40 = $01
702 = 0002 BW80 = $02
703 = 0003 CO80 = $03
704 = 0007 MONO = $07
705 = 0001 C40 = $01
706 = 0003 C80 = $03
707 = 0000 BLACK = $00
708 = 000F WHITE = $0F
709 = 0026 RED = $26
710 = 00AC CYAN = $AC
711 = 0048 PURPLE = $48
712 = 00B6 GREEN = $B6
713 = 0086 BLUE = $86
714 = 00DC YELLOW = $DC
715 = 0018 ORANGE = $18
716 = 00F4 BROWN = $F4
717 = 002A LIGHT_RED = $2A
718 = 0004 DARK_GREY = $04
719 = 0008 GREY = $08
720 = 00BC LIGHT_GREEN = $BC
721 = 009A LIGHT_BLUE = $9A
722 = 000C LIGHT_GREY = $0C
723 = 0080 BLINK = $80
724
725 .endl ; UNIT CRT
726
727 ; ------------------------------------------------------------
728
729 19A7 .local DOS ; UNIT
730
731 ; ------------------------------------------------------------
732
733 = D014 PALNTSC = $D014
734
735 .endl ; UNIT DOS
736
737 ; ------------------------------------------------------------
738
739 19A7 .local STRUTILS ; UNIT
740
741 ; ------------------------------------------------------------
742
743 .endl ; UNIT STRUTILS
744
745 ; ------------------------------------------------------------
746
747 19A7 .local SYSUTILS ; UNIT
748
749 19A7 .local BYTETOSTR ; FUNCTION | ASSEMBLER
750 19A7 8D FA A1 sta A
751
752 ; ------------------- ASM Block 00000079 -------------------
753
754 19AA 8A 48 txa:pha
755
756 19AC AD FA A1 lda a
757 19AF A0 2F ldy #$2f
758 19B1 A2 3A ldx #$3a
759 19B3 38 sec
760 19B4 C8 @ iny
761 19B5 E9 64 sbc #100
762 19B7 B0 FB bcs @-
763 19B9 CA @ dex
764 19BA 69 0A adc #10
765 19BC 30 FB bmi @-
766 19BE 69 2F adc #$2f
767
768 19C0 8D FE A1 sta adr.Result+3
769 19C3 8E FD A1 stx adr.Result+2