This repository has been archived by the owner on Jun 4, 2018. It is now read-only.
/
001-112.txt
5618 lines (5594 loc) · 153 KB
/
001-112.txt
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
;
.TITLE 'STAR RAIDERS. VERSION 25.1 STARDATE-26-JUL-79'
;
; GAME COMPLETE 17-JUN-79
;
; NOTES
; RAM 0-1FFF
; ROM A0000-BFFF
; SPILL OVER ROM 9800-9FFF
; E477G ; PROG START
;
; ALPHA CHARACTERS IN DMA ASCII
;
; *CAPS = ASCII EOR $20
; NUMBERS = ASCII
;
; 40 CHAR = $CC00
; 20 CHAR (*CAPS, NUMBERS), = $CC00
; 20 CHAR (CAPS, LOWR CASE), = $CE00
;
;
;
; UNIVERSE LOOKS LIKE SIGN HI BYTE LOW BYTE
; -INFINITY = 00 00 00
; 0 = 01 00 00
; +INFINITY = 01 FF FF
; -1 = 00 FF FF
;
;
;
; KEYCODE IS ORED WITH $C0
;
;
;
;
;
; STRRAM MEMORY DEFINED STRRAM+ TYPE NOTES
; 0 OBJ0 ZYLON
; 1 OBJ1 ZYLON
; 2 OBJ2 PHOTON
; 3 OBJ3 PHOTON
; 4 MISSILE PHOTON
; 5-N PLAY. STARS
; N+1-M PLAY. EXPLOS STARS
;
;
;
;
*=$0062
; ****************** POWER UP CLEARED RAM ****************
0062 MISDIF ; MISSION DIFFICULTY
*=*+1
0063 RESET ; ONE SHOT CONSOL KEY
*=*+1
0064 ATRACT ; GAME OVER FLAF =FF, ATRACT MODE
*=*+1
0065 REPMSG ; REPEAT MESSAGE BYTE
*=*+1
0066 TIMOUT ; ATRACT MODE TIMEOUT REG
*=*+1
; *******************************************************
0067 PAGE0
0067 PRGOST ; WAIT FOR VBLANK= 00
*=*+1
********************** TEMP REG RAM **********************
0068 PNTR ; 2 BYTE MISC. TEMPORARY REG POINTER
*=*+2
006A TEMP ; TEMPORARY REGISTER
*=*+1
006B TEMP1 ; TEMP REG
*=*+1
006C TEMP2
*=*+1
006D TEMP3
*=*+1
006E TEMP4
*=*+1
006F NTEMP ; NMI TEMP REQ
*=*+1
; *************************************************************
; ******************** SHIP SPEED RAM ***********************
0070 SPEED ; SPEED O CURISER
*=*+1
0071 WARP ; SPEED DESIRED AS OPPOSED TO SPEED , THE PRESENT SPEED
*=*+1
; ************************************************************
; ******************* TIMERS RAM ***************************
0072 TIMERX ; USED FO STAR INTENSITY
*=*+1
0073 ETIMER ; EXPLOSION TIMEOUT
*=*+1
0074 SECOND ; SECOND TIMEOUT
*=*+1
0075 BSEQTM ; STARBASE SEQUENCER
*=*+1
0076 BINTIM ; BINARY TIMER
*=*+1
0077 BINNMI ; BINARY TIMER IN NMI
*=*+1
0078 JMPTIM ; TIME TO JUMP RAM LOC
*=*+1
; ************************************************************
; ******************** STAR POINTER RAM ********************
0079 NSTARS ; LAST BYTE OF STAR RAM TO STORE, EITHER RMLAST OR STLAST
*=*+1
007A CNSTAR ; LAST BYTE OF STAR RAM TO CLEAR
*=*+1
007B BASFLG ; STARBASE FLAG
*=*+1
007C TRKFLG ; AUTOTRACKING = FF
*=*+1
007D SHENER ; SHIELD ENERGY 0 OR 8
*=*+1
007E ATENER ; ATTACK COMPUTER ENERGY
*=*+1
007F ENFLAG ; LS BYTE OF ENERGY , TELLS WHEN TO DEC ENERGY
*=*+1
0080 WPENER ; WARP ENRGY DEPENDS ON WARP
*=*+1
; ************************************************************
; ************** MISC RAM **********************************
0081 SPABAK ; SPACE BACKGROUND COLOR
*=*+1
0082 PHITS ; PHOTON HIT DETECT REGS
*=*+2
0084 PHOFLG ; ONE SHOT PHOTON
*=*+1
0085 PHOTIM ; REPEAT TIMEOUT
*=*+1
0086 LOKLOC ; PHOTON LOCK VECTOR PNTR
*=*+1
0087 PHOTOG ; PHOTON TOGGLE FLAG
*=*+1
0088 LOKWAT ; TIME BEFORE CAN LOCK AGAIN
*=*+1
0089 LOKTAR ; INDEX OF LOCK ON TARGET
*=*+1
008A HITME ; SHIP HIT FLAG
*=*+1
008B REDFKG ; RED ALERT FLAG
*=*+1
; **************************************************
; ********************** GALACTIC CHART RAM ******************
008C GVPOS ; CRUISER VPOS ON CHART
*=*+1
008D GHPOS ; CRUISER HPOS ON CHART
*=*+1
008E HYVPOS ; CURSOR VPOS ON CHART
*=*+1
008F HYHPOS ; CURCOR HPOS ON CHART
*=*+1
0090 QUADRT ; QUADRANT STAR RAIDER IS IN
*=*+1
0091 HYPENG ; HYPERWARP ENERGY USED
*=*+1
0092 HYPQAD ; HYPERWARP QUADRANT
*=*+1
0093 KILBAS ; QUAD OF STARBASE, ZYLONS ARE AFTER
*=*+1
0094 KILOCH ; KILL LOC HPOS
*=*+1
0095 KILOCV ; KILL LOC VPOS
*=*+1
0096 JMPPTS ; GRADIENT VALUES
*=*+9
009F JMPOUT ; JUMP TIMEOUT REG
*=*+1
; **************************************************
; ******************* SCREEN MAP DRAWING RAM ******************
00A0 HTARGT ; HORIZ TARGET POSIT
*=*+1
00A1 VTARGT ; VERT TARGET POSIT
*=*+1
00A2 TARPTR ; TARGET SEQUENCER
*=*+1
00A3 LOKFLG ; COMPUTER LOCKON
*=*+1
00A4 NUMPTS ; NUMBER OF POINTS TO DRAW
*=*+1
00A5 VDRAW ; VERT POS OF DRAW CURSOR
*=*+1
00A6 HDRAW ; HOR POS OF DRAW CURSOR
*=*+1
; *********************************************************
; ****************** THINK RAM **************************
00A7 ZYTOGG ; WHICH ZYLON
*=*+1
00A8 SEQEN ; SEQUENCER PNTR RAM
*=*+2
00AA SEQTIM ; SEQUENCER TIMEOUT RAM
*=*+2
00AC XINDES ; DESIRED XINCRE
*=*+2
00AE YINDES ; DESIRED YINCRE
*=*+2
00B0 ZINDES ; DESIRED ZINCRE
*=*+2
00B2 XINPRS ; PRESENT POINTER TO ZYWARP
*=*+6
00B8 BSTRAF ; STRAF BACK 0,OR 1
*=*+2
00BA ROTTIM ; ROTATION TIMEOUT
*=*+4
00BE PHEXWT ; PHOTON EXPLOSION WAIT
*=*+1
00BF ATTARG ; WHICH ZYLON FIRED
*=*+1
; ************************************************************
; ************************* HYPERWARP RAM *********************
00C0 HFLAG ; HYPERWARP ENGAGED FLAG, 00,FF, OR 7F
*=*+1
00C1 HISPED ; HI BYTE SPEED, 0 OR 2=HWARP
*=*+1
00C2 HTIMER ; HWARP TIMER
*=*+1
00C3 HPNTR ; POINTS TO WHICH LINE STARS TO LOAD
*=*+1
00C4 HSTEER ; OLD HWAR CURSOR HPOS
*=*+1
00C5 VSTEER ; OLD HWARP CURSOR VPO
*=*+1
00C6 STERMK ; STEER MASK
*=*+1
00C7 JMPMSK ; INIT TARGETS IN NEW QUAD, MAX DISTANCE FROM SHIP
*=*+1
; *************************************************************
; ******************* KEYS, JOYSTICK RAM *********************
00C8 HORJOY ; 0=NO HORIZ, 01=RIGHT, FF=LEFT
*=*+1
00C9 VERJOY ; 0=NO VERT, 01=DOWN, FF=UP
*=*+1
00CA THEKEY ; THE KEY IN KBCODE
*=*+1
00CB RATING ; YOUR RATING
*=*+2
00CD ENDRAT ; FINAL RATING
*=*+1
00CE ENDCLS ; FINAL CLASS
*=*+1
; *************************************************************
; *************** MESSAGE RAM ****************************
00CF MESTIM ; MESSAGE TIMEOUT
*=*+1
00D0 DISFLG ; DISPLAY TYPE FLAG 0=FRONT,1=BACK,80=GALCHT
*=*+1 ; 40=SECTOR SCAN
00D1 SENPTR ; SENTENCE POINTER
*=*+1
; *************************************************************
; *************** AUDIO RAM ******************************
00D2 NOTSEQ ; NOTE POINTER
*=*+1
00D3 REPSEQ ; HOW MANY TIMES TO REPEAT
*=*+1
00D4 NDURAT ; DURAT OF NOTE
*=*+1
00D5 SDURAT ; DURAT OF SPACE
*=*+1
00D6 NPRIOR ; PRIOR OF NOE TYPE
*=*+1
00D7 REPPTR ; WHERE TO REPEAT IN NOTETB
*=*+1
00D8 NDURTM ; NOTE TIMER
*=*+1
00D9 NOTVOL ; NOTE VOLUME
*=*+1
00DA PHOREP ; REPEAT NOTE FOR PHOTON
*=*+1
00DB AUDEXP ; EXPLOS SERVICE TIMER
*=*+1
00DC ATYPE2 ; RAM FO AUDC2
*=*+1
00DD ATYPE3 ; RAM FOR AUDC3
*=*+1
00DE AFREQ1 ; RAM FO AUDF1
*=*+1
00DF AFREQ2 ; RAM FOR AUDF2
*=*+1
00E0 AUDADD ; HOW MUCH TO ADD
*=*+1
00E1 AUDTIM ; AUDIO TIMEOUT 0=ALL DONE
*=*+1
00E2 EXPDEL ; EXPLOS DELAY
*=*+1
00E3 BIGEXP ; SHIELDS DOWN EXPLOS
*=*+1
; ***********************************************************
; *************** OBJECT RAM ******************************
00E4 GRAPH ; GRAPHIC FOR OBJO-4
*=*+5
00E9 STFLAG ; 0=OBJECT NOT ON (DEFINED IN THINK, OR PHOTON)
*=*+5
; **************************************************************
; ****************** COLOR RAM ****************************
00EE COLRAM ; PLAYER AND PLAYFIELD COLOR RAM
*=*+14
; **********************************************************
00FC PHASE4
;
;
; ADDRESS SPACE
;
;
; COLLEEN MNEMONICS
;
D200 POKEY = $D200
D200 POT0 = POKEY+0
D201 POT1 = POKEY+1
D202 POT2 = POKEY+2
D203 POT3 = POKEY+3
D204 POT4 = POKEY+4
D205 POT5 = POKEY+5
D206 POT6 = POKEY+6
D207 POT7 = POKEY+7
D208 ALLPOT = POKEY+8
D209 KBCODE = POKEY+9
D20A RANDOM = POKEY+10
D20D SERIN = POKEY+13
D20E IRQST = POKEY+14
D20F SKSTAT = POKEY+15
D200 AUDF1 = POKEY+0
D201 AUDC1 = POKEY+1
D202 AUDF2 = POKEY+2
D203 AUDC2 = POKEY+3
D204 AUDF3 = POKEY+4
D205 AUDC3 = POKEY+5
D206 AUDF4 = POKEY+6
D207 AUDC4 = POKEY+7
D208 AUDCTL = POKEY+8
D209 STIMER = POKEY+9
D20A SKRES = POKET+10
D20B POTGO = POKEY+11
D20D SEROUT = POKEY+13
D20E IRQEN = POKEY+14
D20F SKCTL = POKEY+15
;
D000 CTIA = $D000
D000 HPOSP0 = CTIA+0
D001 HPOSP1 = CTIA+1
D002 HPOSP2 = CTIA+2
D003 HPOSP3 = CTIA+3
D004 HPOSM0 = CTIA+4
D005 HPOSM1 = CTIA+5
D006 HPOSM2 = CTIA+6
D007 HPOSM3 = CTIA+7
D008 SIZEP0 = CTIA+8
D009 SIZEP1 = CTIA+9
D00A SIZEP2 = CTIA+10
D00B SIZEP3 = CTIA+11
D00C SIZEM = CTIA+12
D00D GRAFP0 = CTIA+13
D00E GRAFP1 = CTIA+14
D00F GRAFP2 = CTIA+15
D010 GRAFP3 = CTIA+16
D011 GRAFM = CTIA+17
D012 COLPM0 = CTIA+18
D013 COLPM1 = CTIA+19
D014 COLPM2 = CTIA+20
D015 COLPM3 = CTIA+21
D016 COLPF0 = CTIA+22
D017 COLPF1 = CTIA+23
D018 COLPF2 = CTIA+24
D019 COLPF3 = CTIA+25
D01A COLBK = CTIA+26
D01B PRIOR = CTIA+27
D01C VDELAY = CTIA+28
D01D GRACTL = CTIA+29
D01E HITCLR = CTIA+30
D01F CONSOL = CTIA+31
D000 M0PF = CTIA+0
D001 M1PF = CTIA+1
D002 M2PF = CTIA+2
D003 M3PF = CTIA+3
D004 P0PF = CTIA+4
D005 P1PF = CTIA+5
D006 P2PF = CTIA+6
D007 P3PF = CTIA+7
D008 M0PL = CTIA+8
D009 M1PL = CTIA+9
D00A M2PL = CTIA+10
D00B M3PL = CTIA+11
D00C P0PL = CTIA+12
D00D P1PL = CTIA+13
D00E P2PL = CTIA+14
D00F P3PL = CTIA+15
D010 TRIG0 = CTIA+16
D011 TRIG1 = CTIA+17
D012 TRIG2 = CTIA+18
D013 TRIG3 = CTIA+19
;
D400 ANTIC = $D400
D400 DMACTL = ANTIC+0
D401 CHACTL = ANTIC+1
D402 DLISTL = ANTIC+2
D403 DLISTH = ANTIC+3
D404 HSCROL = ANTIC+4
D405 VSCROL = ANTIC+5
D407 PMBASE = ANTIC+7
D409 CHBASE = ANTIC+9
D40A WSYNC = ANTIC+10
D40B VCOUNT = ANTIC+11
D40C PENH = ANTIC+12
D40D PENV = ANTIC+13
D40E NMIEN = ANTIC+14
D40F NMIRES = ANTIC+15
D40F NMIST = ANTIC+15
D300 PIA = $D300
D300 PORTA = PIA+0
D301 PORTB = PIA+1
D302 PACTL = PIA+2
D303 PBCTL = PIA+3
;
; OPERATING SYSTEM
;
0216 VIMIRQ = $0216 ; IMMEDITATE IRQ LOCATION
0222 VVBLKI = $0222 ; IMMEDIATE VERT BLANK NMI VECTOR
0200 VDSLST = $0200 ; DISPLAY LIST NMI VECTOR
E000 ALPHA = $E000
;
; EQUATES
0282 DISPL1 = DISPLY+2 ; LDISP
028F DISPL2 = DISPLY+15 ; LDISP
02DF DISPL3 = DISPLY+95 ; LDISP
007C DISTOP = $7C ; LDISP SUB
0032 VOFLOW = 50
0032 VSTCEN = 50
007A VOBCEN = $7A
0050 HOFLOW = 80
0050 HSTCEN = 80
007D HOBCEN = $7D
0051 SCPTAB = 81 ; FOR LOADING PTAB
0064 SBCD = 100 ; FOR LOADING BCDCON
0028 SCVCON = 40 ; FOR LOADING VCON TABLES
1D40 ICON1 = $1D40
1BFE ICON2 = $1BFE
003D HORCHT = $3D ; HOR EDGE OF CHART
003F VERCHT = $3F ; VERT EDGE OF CHART
000C STRNUM = 12 ; NUMBER OF STARS DISPLAYED
0005 OBJNUM = 5 ; NUMBER OF OBJECTS
0020 EXPNUM = 32 ; NUMBER OF EXPLOSION STARS
0031 RAMNUM = OBJNUM+STRNUM+EXPNUM ; TOTAL NUMBER OF RAM LOC.
0004 OBLAST = OBJNUM-1 ; RAM LOC OF LAST OBJECT
0030 RMLAST = RAMNUM-1 ; RAM LOC OF LAST STAR IN EXPLOSION
0010 STLAST = OBJNUM+STRNUM-1 ; RAM LOC OF LAST STAR IN REAL STRS
0002 OBPHOT = OBJNUM-3 ; LAST PHOTON LOCATION
0003 OBCOMP = OBJNUM-2 ; LAST PHOTON WHIC COULD BE COMP CONT.
1B36 INSET = $1B36 ; IST BYTE OF INSET
0064 VMAX = 100
00A0 HMAX = 160 ; MAX HORIZ STAR POSITION DISPLAYED
;
00A0 DBLUE = $A0 ; DARK BLUE
0044 RED = $44 ; COLOR
0092 LTBLUE = $92 ; COLOR
00AF BRTBLU = $AF ; COLOR
004F BRTRED = $4F ; COLOR
0060 DRKRED = $60 ; COLO
0042 DIMRED = $42 ; COLOR
0090 DIMBLU = $90 ; COLOR
0026 YELLOW = $26 ; COLOR
0055 DIM = $55 ; MEMMAP CODE FOR DIM STAR
00AA MED = $AA
00FF BRT = $FF
0040 IRQMSK = $40 ; KEY INTERRUPT MASK
17E3 NOSTAR = $17E3 ; NO STAR DUING ATRACT
;
;
; CHARACTER GRAPHICS
*=$A000
;
;
A000 CGRAPH
A000 00 7F 47 C0 .BYTE 00,$7F,$47,$47,$47,$47,$47,$7F
A003 47 47 47
A006 47 7F
A008 00 30 10 C1 .BYTE 00,$30,$10,$10,$10,$38,$38,$38
A00B 10 10 38
A00E 38 38
A010 00 78 08 C2 .BYTE 00,$78,$08,$08,$78,$40,$40,$78
A013 08 78 40
A016 40 78
A018 00 78 08 C3 .BYTE 00,$78,$08,$08,$7C,$0C,$0C,$7C
A01B 08 7C 0C
A01E 0C 7C
A020 00 60 60 C4 .BYTE 00,$60,$60,$60,$6C,$7C,$0C,$0C
A023 60 6C 7C
A026 0C 0C
A028 00 78 40 C5 .BYTE 00,$78,$40$,40,$78,$08,$08,$78
A02B 40 78 08
A02E 08 78
A030 00 78 48 C6 .BYTE 00,$78,$48,$40,$40,$7E,$42,$7E
A033 40 40 7E
A036 42 7E
A038 00 7C 44 C7 .BYTE 00,$7C,$44,$04,$1C,$10,$10,$10
A03B 04 1C 10
A03E 10 10
A040 00 38 28 C8 .BYTE 00,$38,$28,$28,$7C,$6C,$6C,$7C
A043 28 7C 6C
A046 6C 7C
A048 00 7C 44 C9 .BYTE 00,$7C,$44,$44,$7C,$0C,$0C,$0C
A04B 44 7C 0C
A04E 0C 0C
A050 00 00 00 CBLK .BYTE 0,0,0,0,0,0,0,0
A053 00 00 00
A056 00 00
A058 38 38 38 CEQ .BYTE $38,$38,$38,$00,$00,$38,$38,$38
A05B 00 00 38
A05E 38 38
A060 80 80 80 CQCBLK .BYTE $80,$80,$80,$80,$80,$80,$80,$FF
A063 80 80 80
A066 80 FF
A068 00 3C 20 CE .BYTE $00,$3C,$20,$20,$78,$60,$60,$7C
A06B 20 78 60
A06E 60 7C
A070 00 66 99 CINF .BYTE $00,$66,$99,$99,$99,$66,$00,$00
A073 99 99 66
A076 00 00
A078 00 00 00 CMINUS .BYTE $00,$00,$00,$7E,$00,$00,$00,$00
A07B 7E 00 00
A07E 00 00
A080 00 18 18 CPLUS .BYTE $00,$18,$18,$7E,$18,$18,$18
A083 18 7E 18
A086 18 18
A088 00 18 7E CPHI .BYTE $00,$18,$7E,$DB,$99,$DB,$7E,$18
A08B DB 99 DB
A08E 7E 18
A090 66 66 66 CV .BYTE $66,$66,$66,$66,$66,$2C,$38,$30
A093 66 66 2C
A096 38 30
A098 00 7C 44 CRHO .BYTE 0,$7C,$44,$44,$7C,$68,$6C,$6C
A09B 44 7C 68
A09E 6C 6C
A0A0 00 1C 3E CTETA .BYTE $00,$1C,$3E,$63,$5D,$63,$3E,$1C
A0A3 63 5D 63
A0A6 3E 1C
A0A8 00 46 46 CK .BYTE $00,$46,$46,$44,$7C,$64,$66,$66
A08B 44 7C 64
A08E 66 66
A0B0 FE 92 10 CT .BYTE $FE,$92,$10,$18,$18,$18,$18,$18
A0B3 18 18 18
A0B6 18 18
A0B8 FC 8C 8C CC .BYTE $FC,$8C,$8C,$80,$80,$80,$84,$FC
A0BB 80 80 80
A0BE 84 FC
A0C0 00 00 00 CHLINE .BYTE 0,0,0,0,0,0,0,$FF
A0C3 00 00 00
A0C6 00 FF
A0C8 80 80 80 CVLINE .BYTE $80,$80,$80,$80,$80,$80,$80,$80
A0CB 80 80 80
A0CE 80 80
A0D0 00 00 00 CDOT .BYTE 0,0,0,0,0,0,0,$80
A0D3 00 00 00
A0D6 00 80
A0D8 80 AA 9C CSBASE .BYTE $80,$AA,$9C,$BE,$9C,$AA,$80,$FF
A0DB BE 9C AA
A0DE 80 FF
A0E0 80 8E 80 CZY2 .BYTE $80,$98,$90,$B6,$B0,$BC,$80,$FF
A0E3 B6 80 8C
A0E6 80 FF
A0E8 80 8E 80 CZY1 .BYTE $80,$8E,$80,$B8,$80,$9C,$80,$FF
A0EB B8 80 9C
A0EE 80 FF
A0F0 80 B0 98 CZY3 .BYTE $80,$B0,$98,$BE,$98,$B0,$80,$FF
A0F3 BE 98 B0
A0F6 80 FF
;
;
A0F8 SESCAN
A0F8 00 00 6C .BYTE 0,0,$6C,$6F,$6E,$67,0,$72,$61,$6E,$67,$65,0,$73,$63,$61,$6E
A0FB 6F 6E 67
A0FE 00 72 61
A101 6E 67 65
A104 00 73 63
A107 61 6E
A109 BACKUP
A109 00 00 00 .BYTE 0,0,0,0,0,0,$61,$66,$74,0,$76,$69,$65,$77,0,0,0
A10C 00 00 00
A10F 61 66 74
A112 00 76 69
A115 65 77 00
A118 00 00
;
A11A GALCHT
A11A 00 00 .BYTE 0,0
A11C 00 67 61 .BYTE 0,$67,$61,$6C,$61,$63,$74,$69,$63,0,$63,$68,$61,$72,$74,0
A11F 6C 61 63
A122 74 69 63
A125 00 63 68
A128 61 72 74
A12B 00
A12C 00 00 .BYTE 0,0
;
;
;
A12E GLDISP ; GAL CHT DISPLAY LIST
A12E 60 46 .BYTE $60,$46
A130 1A A1 .WORD GALCHT
A132 F0 47 .BYTE $F0,$47
A134 35 0D .WORD CHTDIS
A136 07 07 07 .BYTE 7,7,7,7,7,7,7,7$80,$46
A139 07 07 07
A13C 07 07 80
A13F 46
A140 14 0D .WORD MESAGE
A142 46 .BYTE $46
A143 71 09 .WORD DGALAC
A145 06 06 41 .BYTE 6,6,$41
A148 80 02 .WORD DISPLY
;
;
A14A PHASE8
;
;
; INIT SECTION
;
A14A INIT
A14A A9 00 LDA #$00
A14C 8D 0F D2 STA SKCTL
A14F 85 66 STA TIMOUT ; RESET TIMEOUT
A151 85 66 STA MISDIF ; MISSIONDIFFICULTY
A153 85 63 STA RESET ; ONE SHOT CONSOL
A155 A9 03 LDA #$03
A157 8D 0F D2 STA SKCTL ; TURN POKEY ON
;
A15A INIT3 ; GAME SELECT, RESTART POINT ****************************
A15A A0 24 LDY #SENATA-SENTAB
;
A15C INIT4 ; ATTRACT MODE RESTART POINT **************************
A15C A9 FF LDA #$FF ; GAME OVER
;
A15E INIT1 ; GAME START RESTART POINT ************************
A15E 84 65 STY REPMSG
A160 85 64 STA ATRACT
; CLEAR I/O
A162 A9 00 LDA #$00
A164 AA TAX
A165 INIT2
A165 9D 00 D0 STA CTIA,X
A168 9D 00 D4 STA ANTIC,X
A16B E0 0F CPX #$0F ; DONT RESET POKEY
A16D B0 03 BCS INIT5
A16F 9D 00 D2 STA POKEY,X
A172 INIT5
A172 9D 00 D3 STA PIA,X
A175 9D .BYTE $9D ; STA ABS,X
A176 67 00 .WORD PAGE0 ; STA PAGE0,X (ABSOLUTE)
A178 E8 INX
A179 D0 EA BNE INIT2
; I/O CLEARED
;
;
A17B CA DEX ; X=FF
A17C 9A TXS ; LOAD STACK PNTR
A17D DB CLD
;
A17E A9 02 LDA #RAMMAP/256
A180 20 0F AE JSR CLRMP1 ; CLEAR ALL RAM
; LD VECTOR RAM
A183 A9 51 LDA #IRQVEC
A185 8D 16 02 STA VIMIRQ
A188 A9 A7 LDA #IRQVEC/256
A18A 8D 17 02 STA VIMIRQ+1
A18D A9 D1 LDA #VBNMI
A18F 8D 22 02 STA VVBLKI
A192 A9 18 LDA #DISNMI
A194 8D 00 02 STA VDSLST
A197 A9 A6 LDA #VBNMI/256
A199 8D 23 02 STA VVBLKI+1
A19C A9 A7 LDA #DISNMI/256
A19E 8D 01 02 STA VDSLST+1
;
;
; CONFIGURE PIA
;
A1A1 A9 04 LDA #$04
A1A3 8D 02 D3 STA PACTL ; TURN ON JOYSTICK
;
;
;
;
; CONFIGURE CTIA
;
A1A6 A9 11 LDA #$11
A1A8 8D 1B D0 STA PRIOR
;
A1AB A9 03 LDA #$03
A1AD 8D 1D D0 STA GRACTL
;
A1B0 20 BA B3 JSR LDTABS ; INIT TABLES
;
;
; INIT DISPLAY LIST
A1B3 A2 0A LDX #$0A ; KEY F, FRONT DISPLAY
A1B5 20 45 B0 JSR KEYS15 ; INIT FRONT VIEW
A1B8 A5 64 LDA ATRACT
A1BA 29 80 AND #$80
A1BC A8 TAY
A1BD A2 5F LDX #DISPL3-DISPLY
A1BF A9 08 LDA #$08
A1C1 20 F1 AD JSR LDISP ; SHIP ALIVE OR DEAD
;
A1C4 A9 20 LDA #$20
A1C6 85 71 STA WARP ; WARP 5 SPEED
;
;
; CONFIGURE ANTIC
;
A1C8 A9 80 LDA #DISPLY
A1CA 8D 02 D4 STA DLISTL
A1CD A9 02 LDA #DISPLY/256
A1CF 8D 03 D4 STA DLISTH
A1D2 A9 3E LDA #$3E
A1D4 8D 00 D4 STA DMACTL ; DMA ON
;
A1D7 A9 00 LDA #PGRAPH-$0300/256
A1D9 8D 07 D4 STA PMBASE ; LD PLAYER / MISSLE BASE
;
;
;
;
; INIT NUMBER OF STARS
A1DC A9 10 LDA #STLAST
A1DE 85 79 STA NSTARS
;
;
A1E0 A6 62 LDX MISDIF ; GAME TYPE MESSAGE
A1E2 BC 0C BF LDY MSENTB,X
A1E5 20 23 B2 JSR LDMESS
;
;
;
;
;
; ENABLE INTERRUPTS
A1E8 A9 40 LDA #IRQMSK
A1EA 8D 0E D2 STA IRQEN
A1ED 58 CLI ; IRQS READY
A1EE A9 C0 LDA #$C0
A1F0 8D 0E D4 STA NMIEN ; NMIS READY
;
; END INIT
;
; MAIN PROGRAM
A1F3 MAIN
;
; MAIN FLOW CHART
; START
; WAIT FOR VBLANK
; CLEAR AND LOAD STARS/OBJECTS
; MOVE ROUTINES
; PLAYER INTERFACE SECTION GAME ON ONLY
; SERVICE SECTION GAME ON ONLY
; HIT DETECT GAME ON ONLY
; SERVICE CONTINUOUS RUNNING ROUTINES
; JUMP TO START
;
;
A1F3 A5 67 LDA PROGST
A1F5 F0 FC BEQ MAIN ; WAIT FOR VBLANK NMI
A1F7 A9 00 LDA #$00 ; RESET VBLANK STATUS REGISTER
A1F9 85 67 STA PROGST
;
;
;
;
;
; UPDATE MEMORY MAP RAM AND PLAYERS RAM
;
; CLRSTR
; CLEAR STAR ROUTINE
A1FB A5 7A LDA CNSTAR ; THIS FLAGS SAYS OLDPS NOT DEFINED IF=00
A1FD F0 20 BEQ CLRSR2
A1FF A2 04 LDX #OBLAST ; LAST LOCATION OF OBJECT IN RAM
A201 CLRSR1
A201 E8 INX
A202 BC 5B 0C LDY OLDVER,X
A205 B9 00 08 LDA VCONL,Y
A208 85 68 STA PNTR
A20A B9 64 08 LDA VCONH,Y
A20D 85 69 STA PNTR+1
A20F BC 8C 0C LDY OLDHOR,X
A212 BD BD 0C LDA OLDBYT,X
A215 91 68 STA (PNTR),Y ; BYTE RESTORED
A217 E4 7A CPX CNSTAR
S219 90 E6 BCC CLRSR1
A21B A9 00 LDA #$00
A21D 85 7A STA CNSTAR ; STARS CLEARED
A21F CLRSR2
;
;
; STOSTR
;
; STORE STAR IN RAM MAP ROUTINE
;
A21F A5 C0 LDA HFLAG ; IN HYPER JUMP ?
A221 30 2D BMI STOSR1 ; YES , NO STORE.
;
;
;
A223 A6 79 LDX NSTARS ; LAST BYTE OF STAR RAM TO STORE
A225 86 7A STX CNSTAR ; STARS POINTERS DEFINED OK TO CLEAR NOW
A227 STOSR2
;
A227 BD F9 0B LDA VPOS,X
A22A 9D 5B 0C STA OLDVER,X
A22D A8 TAY
A22E B9 00 08 LDA VCONL,Y
A231 85 68 STA PNTR
A233 B9 64 08 LDA VCONH,Y
A236 85 69 STA PNTR+1
A238 BD 2A 0C LDA HPOS,X
A23B 4A LSR A
A23C 4A LSR A
A23D 9D 8C 0C STA OLDHOR,X
A240 A8 TAY
A241 B1 68 LDA (PNTR),Y
A243 9D BD 0C STA OLDBYT,X ; BYTE SAVED
A236 1D EE 0C ORA STRBYT,X
A249 91 68 STA (PNTR),Y
;
A24B CA DEX
A24C E0 04 CPX #OBLAST
A24E D0 07 BNE STOSR2 ; DO NEXT STAR
A250 STOSR1
A250 A5 66 LDA TIMOUT
A252 10 0E BPL STOSR3
A254 A9 00 LDA #$00
A256 8D E3 17 STA NOSTAR
A259 8D E4 17 STA NOSTAR+1
A25C 8D BC 17 STA NOSTAR-39
A25F 8D BB 17 STA NOSTAR-40
A262 STOSR3
;
;
; CLROBJ
; CLEAR OBJECT RAM
; OBJECT 4
A262 A9 00 LDA #$00
A264 AC 5F 0C LDY OLDVER+4
A267 AE C1 0C LDX OLDNUM+4
A26A CLROB1
A26A 99 00 03 STA MGRAPH,Y
A26D C8 INY
A26E CA DEX
A26F 10 F9 BPL CLROB1
; OBJECT 3
A271 AC 5E 0C LDY OLDVER+3
A274 AE C0 0C LDX OLDNUM+3
A277 CLROB2
A277 99 00 07 STA PGRAP3,Y
A27A C8 INY
A27B CA DEX
A27C 10 F9 BPL CLROB2
; OBJECT 2
A27E AC 5D 0C LDY OLDVER+2
A281 AE BF 0C LDX OLDNUM+2
A284 CLROB3
A284 99 00 06 STA PGRAP2,Y
A287 C8 INY
A288 CA DEX
A289 10 F9 BPL CLROB3
; OBJECT 1
A28B AC 5C 0C LDY OLDVER+1
A28E AE BE 0C LDX OLDNUM+1
A291 CLROB4
A291 99 00 05 ATS PGRAP1,Y
A294 INY
A295 DEX
A296 10 F9 BPL CLROB4
; OBJECT 0
A298 AC 5B 0C LDX OLDVER+0
A29B AE BD 0C LDX OLDNUM+0
A29E CLROB5
A29E 99 00 04 STA PGRAP0,Y
A2A1 C8 INY
A2A2 CA DEX
A2A3 10 F9 BPL CLROB5
;
;
; STOOBJ
; STORE OBJECT ROUTINE
;
; OBJECT 4, ALWAYS PHOTON, OR DOCKING OBJECT
A2A5 AD 90 0C LDA GINDEX+4
A2A8 C9 01 CMP #$01 ; DEFINE CARRY
A2AA A4 E8 LDY GRAPH+4
A2AC AE FD 0B LDX VPOS+4
A2AF 8E 5F 0C STX OLDVER+4
A2B2 AD F2 0C LDA NUMBYT+4
A2B5 85 6A STA TEMP
A2B7 8D C1 0C STA OLDNUM+4
A2BA STOOB1
A2BA B9 E4 B8 LDA PHGRAF,Y
A2BD B0 03 BCS STOOB8
A2BF 2D 0A D2 AND RANDOM
A2C2 STOOB8
A2C2 9D 00 03 STA MGRAPH,X
A2C5 C8 INY
A2C6 E8 INX
A2C7 C6 6A DEC TEMP
A2C9 10 EF BPL STOOB1
; OBJECT 3 , ALWAYS PHOTON
A2CB AD 8F 0C LDA GINDEX+3
A2CE C9 01 CMP #$01
A2D0 A4 E7 LDY GRAPH+3
A2D2 AE FC 0B LDX VPOS+3
A2D5 8E 5E 0C STX OLDVER+3
A2D8 AD F1 0C LDA NUMBYT+3
A2DB 85 6A STA TEMP
A2DD 8D C0 0C STA OLDNUM+3
A2E0 STOOB2
A2E0 B9 E4 B8 LDA PHGRAF,Y
A2E3 B0 03 BCS STOOB9
A2E5 2D 0A D2 AND RANDOM
A2E8 STOOB9
A2E8 9D 00 07 STA PGRAP3,X
A2EB E8 INX
A2EC C8 INY
A2ED C6 6A DEC TEMP
A2EF 10 EF BPL STOOB2
; OBJECT 2, (VARIABLE GRAPHIC)
A2F1 AD 8E 0C LDA GINDEX+2
A2F4 C9 01 CMP #$01 ; DEFINE CARRY
A2F6 A4 E6 LDY GRAPH+2
A2F8 AE FB 0B LDX VPOS+2
A2FB 8E 5D 0C STX OLDVER+2
A2FE AD F0 0C LDA NUMBYT+2
A301 85 6A STA TEMP
A303 8D BF 0C STA OLDNUM+2
A306 STOOB3
A306 B9 E4 B8 LDA PHGRAF,Y
A309 B0 03 BCS STOOB7
A30B 2D 0A D2 AND RANDOM
A30E STOOB7
A30E 9D 00 06 STA PGRAP2,X
A311 E8 INX
A312 C8 INY
A313 C6 6A DEC TEMP
A315 10 EF BPL STOOB3
; OBJECT 1 (VARIABLE)
A317 A4 E5 LDY GRAPH+1
A319 AE FA 0B LDX VPOS+1
A31C 8E 5C 0C STX OLDVER+1
A31F AD EF 0C LDA NUMBYT+1
A322 85 6A STA TEMP
A324 8D BE 0C STA OLDNUM+1
A327 STOOB5
A327 B9 B1 B9 LDA ZYGRAP,Y
A32A 9D 00 05 STA PGRAP1,X
A32D E8 INX
A32E C8 INY
A32F C6 6A DEC TEMP
A331 10 F4 BPL STOOB5
; OBJECT 0 (VARIABLE)
A333 A4 E4 LDY GRAPH+0
A335 AE F9 0B LDX VPOS+0
A338 8E 5B 0C STX OLDVER+0
A33B AD EE 0C LDA NUMBYT+0
A33E 85 6A STA TEMP
A340 8D BD 0C STA OLDNUM+0
A343 STOOB6
A343 B9 B1 B9 LDA ZYGRAF,Y
A346 9D 00 04 STA PGRAP0,X
A349 E8 INX
A34A C8 INY
A34B C6 6A DEC TEMP
A34D 10 F4 BPL STOOB6
;
; UPDATE HORIZ
;
A34F AD 2A 0C LDA HPOS+0
A352 8D 00 D0 STA HPOSP0+0
A355 AD 2B 0C LDA HPOS+1
A358 8D 01 D0 STA HPOSP0+1
A35B AD 2C 0C LDA HPOS+2
A35E 8D 02 D0 STA HPOSP0+2
A361 AD 2D 0C LDA HPOS+3
A364 8D 03 D0 STA HPOSP0+3
A367 AD 2E 0C LDA HPOS+4
A36A 8D 07 D0 STA HPOSP0+7
A36D 18 CLC
A36E 69 02 ADC #$02
A370 8D 06 D0 STA HPOSP0+6
A373 69 02 ADC #$02
A375 8D 05 D0 STA HPOSP0+5
A378 69 02 ADC #$02
A37A 8D 04 D0 STA HPOSP0+4
;
; END UPDATE MEMORY MAP RAM AND PLAYERS RAM
;
;
;
;
; STARS/OBJECTS MOVE ROUTINES
A37D 24 D0 BIT DISFLG
A37F 30 3A BMI MAINI ; NO ROTATE IN GALACTIC CHART