-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathRRF.ASM
More file actions
executable file
·717 lines (694 loc) · 12.8 KB
/
RRF.ASM
File metadata and controls
executable file
·717 lines (694 loc) · 12.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
OPT PAGS
TTL R O B O T W A R
*
* HARDWARE CONSTANTS
*
HSTK EQU $BF70
VECTOR EQU $EFF0
CRAM EQU $C000 COLOR RAM ADDR
WDOG EQU $CBFF
WDATA EQU $39
CMOS EQU $CC00
SOUND EQU $C80E
VERTCT EQU $CB00 6-BIT VERTICAL BEAM ADDR
RWCNTL EQU $C900 (BIT 0: 1-ROM READ; 0-RAM READ)
* (BIT 1: 1-INVERT; 0-NORMAL SCREEN)
*
*PIA DEFINITIONS
*
PIA0 EQU $C80C
*B0 AUTO UP
*B1 ADVANCE
*B2 RCOIN
*B3 HSRESET
*B4 LCOIN
*B5 CCOIN
*B6 SLAM
*B7 SOUND HANDSHAKE
*CA2 LED3
*CA1 IRQ 240 (16 MS) (LINE 240)
PIA1 EQU $C80E
*B0-B5 SOUND
*B6-B7 LED 0,1
*CB1 IRQ 4 MS (0,$40,$80,$C0)
*CB2 LED2
PIA2 EQU $C804
*B0 MOVE UP
*B1 MOVE DOWN
*B2 MOVE LEFT
*B3 MOVE RIGHT
*B4 START 1
*B5 START 2
*B6 FIRE UP
*B7 FIRE DOWN
*
PIA3 EQU $C806
*B0 FIRE LEFT
*B1 FIRE RIGHT
*B7 INPUT 1=COCKTAIL
*CB2 OUTPUT SWITCH MUX CONTROL 1=PLAYER1,0=PLAYER2
*
*DMA CONSTANTS
*
DMACTL EQU $CA00 CONTROL BYTE WRITE INITIATES TRANSFER
*B0:READ FORMAT 0=SERIAL;1=BLOCK
*B1:WRITE FORMAT 0=SERIAL;1=BLOCK
*B2:XSFER RATE 0=ROM-RAM (1MSEC); 1=RAM-RAM (2 MSEC)
*B3:1=ZERO WRITE SUPPRESS
*B4:1=CONSTANT SUBSTITUTION
*B5:1=ODD FLAVOR
*B6:1=B0-B3 WRITE SUPPRESS
*B7:1=B4-B7 WRITE SUPPRESS
DMACON EQU $CA01 CONSTANT DATA BYTE
DMAORG EQU $CA02 ORIGIN ADDR MSB,LSB
DMADES EQU $CA04 DESTINATION "
DMASIZ EQU $CA06 HOR,VERT BYTE COUNTS
*SCORE DISPLAY CONSTANTS
YMAX EQU 234
YMIN EQU 24 MIN Y COORD
XMAX EQU $8F
XMIN EQU 7
P1ORG EQU $18*$100+14
P1MAN EQU P1ORG+7*$300+$100
P1DISP EQU P1ORG
P2ORG EQU P1ORG+$40*$100
P2MAN EQU P2ORG+P1MAN-P1ORG
P2DISP EQU P2ORG
DIGLTH EQU $300
PCOORD EQU $4A7C INIT PLAYER COORD
FONCOL EQU $66 PHONY STARTUP COLOR
*
*MODULE VECTORS + STORAGE ALLOCATION
*
***OPSYS**..... R O S ..........
*
ROSORG EQU $D000
ORG ROSORG
INIT RMB 3
ASCAN RMB 3
SDOUT RMB 3
SCRTRN RMB 3
SCORE RMB 3
SCRTR0 RMB 3
SCRCLR RMB 3
DMAOFF RMB 3
DMAON RMB 3
BLKCLR RMB 3
PCTOFF RMB 3
PCTON RMB 3
COLST RMB 3
COL0 RMB 3
HEXBCD RMB 3
BCDHEX RMB 3
OINIT RMB 3
CRINIT RMB 3
PINIT RMB 3
RAND RMB 3
RAND16 RMB 3
RMAX RMB 3
RANDU RMB 3
PLINDX RMB 3
PLDX RMB 3
SNDLD RMB 3
KILO1 RMB 3
GETOBJ RMB 3
MAKEP RMB 3
MKPROC RMB 3
MSPROC RMB 3
KILL RMB 3
GNCIDE RMB 3
SUCIDE RMB 3
SLEEP RMB 3
RIPV RMB 3
MPROB RMB 3
GETOB RMB 3
KILLOB RMB 3
KILLOF RMB 3
KILOFP RMB 3
GETROB RMB 3
KILROB RMB 3
GETPST RMB 3
KILPST RMB 3
GETHUM RMB 3
KILHUM RMB 3
DMAOFN RMB 3
MPCTON RMB 3
BLKON RMB 3
EXECV RMB 3
P1SW RMB 3
P2SW RMB 3
DIVAB RMB 3
RCMOSA RMB 3
RCMOSB RMB 3
RCMOSD RMB 3
WCMOSA RMB 3
WCMOSB RMB 3
WCMOSD RMB 3
BCDBIN RMB 3
RWMOVE RMB 3
AUD RMB 3
AUD1 RMB 3
INT20V RMB 3
LFV RMB 3
NEWBCH RMB 3 BCDHEX THAT USES A!!
*
*PLAYER DEATH
*
RDORG EQU $DD00
ORG RDORG
RDTHV RMB 3
*
*HUMANS+HULKS
*
RHORG EQU $0000
ORG RHORG
HULKST RMB 3
HUMST RMB 3
CKLIM RMB 3
SKULL RMB 3
P1KD RMB 2
MOMPIC RMB 2
DADPIC RMB 2
KIDPIC RMB 2
HLKPIC RMB 2
HLKANA RMB 2
HUMANA RMB 2
SKLPIC RMB 2
*
***CIRCLES,ENFORCERS,SPARX
*
RCORG EQU $1140
ORG RCORG
CIRCST RMB 3 START CIRCLES
CIRKV RMB 3
CIRPIC RMB 2
ENGPIC RMB 2
ENFPIC RMB 2
*
*BRAINS & CO.
*
BRNORG EQU $1AC0
ORG BRNORG
BRNST RMB 3
BRNPIC RMB 2
BRONV RMB 3
HUMONV RMB 3
PRGPIC RMB 2
*
*******ROBOT GAME...... R G .......
*
RGORG EQU $26C0
ORG RGORG
PLAYER RMB 3
RANDXY RMB 3
CKOBS RMB 3
MANDSP RMB 3
STRT1 RMB 3
STRT2 RMB 3
TDISPV RMB 3
MANPIC RMB 2
LASPIC RMB 2
*
*ROBOTS&POSTS
*
RPORG EQU $3880
ORG RPORG
RINIT RMB 3
PSINIT RMB 3
PSTP1 RMB 2
OPON RMB 3
OPON1 RMB 3
SAFTY RMB 3
ROBPIC RMB 2
PSTPIC RMB 2
PKPRCV RMB 3
*
*TRANSPORTER
*
RTORG EQU $4140
ORG RTORG
TRANST RMB 3
*
*DIAGONAL EXPLOSIONS
*
RDXORG EQU $4680
ORG RDXORG
DXINIT RMB 3
DXST RMB 3
DAPST RMB 3
DXUPD RMB 3
*
*TANKS
*
RTKORG EQU $4B00
ORG RTKORG
TANKST RMB 3
SQST RMB 3
SQPIC RMB 2
TNGPIC RMB 2
TNKPIC RMB 2
*
*MARQUEE
*
RMORG EQU $5700
ORG RMORG
RMST RMB 3
*
*EXPLOSIONS
*
RXORG EQU $5B40
ORG RXORG
EXINIT RMB 3
EXST RMB 3
APST RMB 3
EXUPD RMB 3
PDEATH RMB 3
HVEXST RMB 3
DDEXST RMB 3 DUAL DIAGONALS
AMAP RMB 3 ATTRACT MODE APPEAR
HAPST RMB 3 HORIZONTAL APPEAR
HEXST RMB 3 HORIZONTAL EXPLODE
* STINKY LINKY VINCKYS
LOGORG EQU $77A0 PLACE FOR PROGRAM
GOV EQU LOGORG
CCV EQU GOV+3
TSCORG EQU $E3D0 HIGH SCORE BULLSHIT
PUPHSC EQU TSCORG POWER UP HIGH SCORE CHECK
ENDPRC EQU PUPHSC+3 END OF GAME PROCESSING
GODSET EQU ENDPRC+3 ENTER GODS NAME BY OPERATOR
HIGHRS EQU GODSET+3 RESET HIGH SCORE TABLE BY OPERATOR
HSCHKV EQU HIGHRS+3 CHECK IF HS TABLE LOOKS BASHED
HSBUTV EQU HSCHKV+3 HIGH SCORE RESET BUTTON
TABORG EQU $DF40
TABLEV EQU TABORG
TSTORG EQU $F000
PWRUPV EQU TSTORG
ADVSW EQU PWRUPV+3
AUTOCY EQU ADVSW+3
HXINIT EQU AUTOCY+3
HEXSTX EQU HXINIT+3
HAPSTX EQU HEXSTX+3
HXUPD EQU HAPSTX+3
WLOOPV EQU HXUPD+3
ELOOPV EQU WLOOPV+2
L2 EQU ELOOPV+2
L0 EQU L2+2
TSBORG EQU $6F00 ADJUST PART OF TEST MODE
ADJV EQU TSBORG
CMINIT EQU ADJV+3
ATMCK EQU CMINIT+3
GETLT EQU ATMCK+3 ROUTINE TO GET LETTERS FROM CONTROL PANEL
CMSMVV EQU GETLT+3
DOPMES EQU CMSMVV+3 2 BYTER
TXORG EQU $5F90 PLACE FOR TEXT PROGRAM
PR35V EQU TXORG
PR57V EQU PR35V+3
WRD5V EQU PR57V+3
WRD7V EQU WRD5V+3
PRINV EQU WRD7V+3
PRSCR EQU PRINV+3
WRD5FV EQU WRD5V
WRD7FV EQU WRD7V
PRN5FV EQU PR35V
PRN7FV EQU PR57V
SETORG EQU $E9C8 CHARACTER SET
TAB35 EQU SETORG
TAB57 EQU TAB35+2
N0V EQU TAB57
*
*BASE PAGE RAM AREA
*
ORG $9800
RAM EQU *
SETDP RAM>>8
PCRAM RMB 16 PSEUDO COLOR RAM
TIMER RMB 1 IRQ TIMER
ACTIVE RMB 2 POINTER TO LIST OF CURRENTLY ACTIVE (SLEEPING) PROCS.
FREE RMB 2 POINTER TO LIST OF UNALLOCATED PROCESS SLEEP SPACE.
CRPROC RMB 2 POINTER TO SLEEP AREA OF CURRENTLY EXECUTING PROCESS.
OPTR RMB 2 MOTION OBJECT LIST POINTER
OBPTR RMB 2 OBSTACLE LIST POINTER
OFREE RMB 2 FREE LIST POINTER
SPFREE RMB 2 SUPER PROCESS FREE LIST
HPTR RMB 2 HUMAN PTR
RPTR RMB 2 ROBOT LIST
PPTR RMB 2 PHATAL OBJECT LIST
ITEMP RMB 2 INTERUPT TEMP
PSTIN RMB 2
ITEMP2 RMB 2
XTEMP RMB 2 SAVE AREA FOR QUICK TEMPORARY
XTEMP2 RMB 2
PIA01 RMB 1 N-1 PIA0
PIA02 RMB 1 N-2 PIA0
PIA21 RMB 1 N-1 PIA2
PIA22 RMB 1 N-2 PIA2
SWPROC RMB 12 SWITCH SCAN TEMP
CURPLR RMB 1 CURRENT
PLRCNT RMB 1 NUMBER OF PLAYERS
XXX2 RMB 1 '80' IRQ LINE
OVCNT RMB 1 OVERFLOW COUNT
IFLG RMB 1 IRQ FLAG
FRAME RMB 1 IRQ COUNT
RWCTMP RMB 1 SCREEN READ CONTROL BYTE
REPLA RMB 2 REPLAY LEVEL
PCFLG RMB 1 PLAYER COLLISION
HTABX RMB 2 HUMAN TABLE INDEX
*COIN BUSINESS
SLMCNT RMB 1
LCCNT RMB 1
RCCNT RMB 1
CCCNT RMB 1
BUNITS RMB 1
CUNITS RMB 1
CREDIT RMB 1
*ATTRACT SWITCHES: FONY PRAYAH CONTLOHL
ATRSW2 RMB 1
ATRSW3 RMB 1
*SOUND RAM
SNDX RMB 2 TABLE INDEX
SNDPRI RMB 1 PRIORITY
SNDTMR RMB 1
SNDREP RMB 1
*
*STATUS FLAG
*B7=GAME OVER
*B6=
*B5=
*B4=PLAYER OUTPUT
*B3=MOTION OBJS VEL +ENEMIES
*B2=EXPLOSION UPDATE
*B1=POST ,MOT OBJ REFRESH
*B0=PLAYER MOTION,COLLISION,FIRE
STATUS RMB 1
*
*PLAYER OBJECT STRUCTURE
*
PLOBJ EQU *
RMB 2 OLINK
PPICT RMB 2 OPICT
PX RMB 2 OBJX
RMB 2 OBJID
RMB 2 OCVECT
PX16 RMB 2 OX16
PY16 RMB 2 OY16
PXV RMB 2 OXV
PYV RMB 2 OYV
RMB 1 OFLAV
PODATA RMB 1 ODATA
POLDPC RMB 2 OLDPIC
PLAIMC RMB 1 PLAYER ANIMATION RATE
PLAIMN RMB 1 PLAYER ANIMATION NUMBER
PLAIMB RMB 2 PLAYER ANIMATION BASE ADDR
*
*COLLISION ROUTINE PARAMETERS
*
XCNT RMB 1 SCAN COUNTS
YCNT RMB 1
OX1 RMB 1 OFFSETS
OY1 RMB 1
PX1 RMB 1
PY1 RMB 1
OBW RMB 1 HT TEMPS
PLW RMB 1
ULX RMB 1 UPPER LEFT COORD
ULY RMB 1 "
LRX RMB 1
LRY RMB 1
CTEMP RMB 2 INDEX TEMP
CTEMP2 RMB 2
*RANDOM VARIABLES
SEED RMB 1
HSEED RMB 1
LSEED RMB 1
*LASER
LCNT RMB 1
LASDIR RMB 2
*SPARKS
SPKCNT RMB 1
ROBST RMB 2 PTR TO ROBOT LIST
SAVCNT RMB 1 HUMAN COUNT SAVED
BCMCNT RMB 1 BRAIN CRUISE MISSILES
*POST ANIMATION+WALL COLOR
WALCOL RMB 1 WALL+POST BG
PSTCOL RMB 1 POST COLOR
LASCOL RMB 1 LASER WALL COLLIDE COLOR
PSTREF RMB 1 POST REFRESH RATE
PSTANI RMB 2 CURR POST ANIMATION
BRNFLG RMB 1 BRAIN HUMAN KILL FLAG
*
*EXPLOSION STUFF
EXPRAM RMB $10
CENTMP RMB 2 CENTER OF BLOW
HXRAM RMB $10
DXRAM RMB $10
RMRAM RMB 6 MARQUEE RAM
************************ LINKYS STINKYS
INDIAG RMB 1
*
* TEXT VARIABLES
*
TEXCOL RMB 1 (TEXCOL) PRINTING COLOR (NIBBLES REPRESENT FLAVOR COLO
TXFLAV RMB 1 (TXFLAV) FLAVOR OF CURRENT CURSOR (0=EVEN, 1=ODD)
TXLEAD RMB 1 (TXLEAD) LEAD ZERO BLANKING ON/OFF (0=OFF, 1=ON)
TXFONT RMB 1 (TXFONT) FONT HEIGHT (5 OR 7) PIXELS
TEXMAR RMB 2 CURRENT LEFT MARGIN CURSOR POINTER
TEXMFL RMB 1 CURRENT LEFT MARGIN FLAVOR
TEXTP3 RMB 1
TXCLIP RMB 1
*
*** GET LETTER ROUTINE RAM
*
GETLRM RMB 2
GETLST RMB 3
********************* LOGO RAM
LOGX RMB 2
LOGCOL RMB 1
LOGCL2 RMB 1
LOGCNT RMB 1
LOGSAV RMB 2
LOGCST RMB 2
LASTX RMB 2
SIDE RMB 1
BALCOL RMB 1
SLIDER RMB 1
ERPTR RMB 2
*MOVE THIS SOMEDAY
ENFCNT RMB 1
GAMTIM RMB 1 GAME TIMER
TNKSPD RMB 1 TANK SPEED PARAMETER
SCRFLG RMB 1 SCORE FLAG
SHLCNT RMB 1 SHELL COUNTER
RIPFLG RMB 1
HCK1 RMB 1
ATFLAG RMB 1 INDICATE WHAT PAGE AND HOW
*
*TABLE DATA
*
ORG RAM+$100 PAST BASE PAGE
*
*MASTER OBJECT LIST
*
OLIST EQU *
OSIZE EQU $18
*
*INDEX OFFSETS
*
OLINK EQU 0 LINK TO NEXT
OPICT EQU 2 PICTURE DESCRIPTOR ADDR
OBJX EQU 4 UPPER LEFT SCREEN X
OBJY EQU 5 UPPER LEFT SCREEN Y
OBJID EQU 6 ASSOCIATED PROCESS ID (IF ANY)
OCVECT EQU 8 COLLISION ROUTINE ADDR
OX16 EQU $A 16 BIT X WORLD COORD
OY16 EQU $C 16 BIT Y WORLD COORD
OXV EQU $E X VELOCITY
OYV EQU $10 Y VELOCITY
OFLAV EQU $12 OLD FLAVOR
ODATA EQU $13 MISC. DATA
OLDPIC EQU $14 OLD PICTURE TO ERASE
FONIPC EQU $16 FONY PICT FOR COLLISION PURPOSES
*RESERVE AREA
RMB (180)*OSIZE
OLEND EQU *
*
*USER DEFINED PROCESS TYPES
*
STYPE EQU 0 SYSTEM PROCESS
CTYPE EQU 1 COIN
*
*SLEEPING PROCESS TABLE
*
PTAB EQU *
*
*OFFSET CONSTANTS
*
PLINK EQU 0
PADDR EQU 2
PTIME EQU 4
PTYPE EQU 5
PCOD EQU 6
PDATA EQU 7
PD EQU 7
PD1 EQU 8
PD2 EQU 9
PD3 EQU 10
PD4 EQU 11
PD5 EQU 12
PD6 EQU 13
PD7 EQU 14
PSIZE EQU 15
RMB 15*(120)
TABEND EQU *
*
*SUPER PROCESSES
*
SPSIZE EQU PSIZE+16
SPTAB RMB SPSIZE*20
SPTEND EQU *
*
*OBJECT PICTURE STRUCTURE
*
OBJW EQU 0
OBJH EQU 1
OBJDAT EQU 2
OBJL EQU 4
*
*HUMAN TABLE
*
HTAB RMB 80
HTBEND EQU *
*
*POST REFRESH LIST
*
PSLIST RMB 64 POST LIST
PSLEND EQU *
*
*HORIZONTAL EXPLOSION TABLES
*
HXTAB RMB $800
*
*DIAGONAL XPLOSION TABLES
*
DXTAB RMB $200
*
*PLAYER DATA TABLE
*
PLDATA EQU *
ZP1SCR RMB 4 SCORE MSB 1ST
ZP1RP RMB 4 NEXT REPLAY LEVEL
ZP1LAS RMB 1 #OF LASERS
ZP1WAV RMB 1 WAVE # IN HEX
ZP1ENM RMB 50 ENEMY STATE
ZP1END EQU *
ZP2SCR RMB 4
ZP2RP RMB 4
ZP2LAS RMB 1
ZP2WAV RMB 1
ZP2ENM RMB 50
PLDEND EQU * END OF PLAYER DATA
PLDLEN EQU ZP1END-PLDATA
PSCOR EQU ZP1SCR-PLDATA
PRPLA EQU ZP1RP-PLDATA
PLAS EQU ZP1LAS-PLDATA
PWAV EQU ZP1WAV-PLDATA
PENEMY EQU ZP1ENM-PLDATA
*
*ENEMIES LIST
*WARNING DO NOT CHANGE ORDER OF COUNTS
ELIST EQU *
ROBSPD RMB 1 SPEED
RMXSPD RMB 1 MAX ROBOT SPEED
ENFNUM RMB 1 # OF ENFORCERS/CIRCLE X2
ENSTIM RMB 1 ENF SHOT TIMER
CDPTIM RMB 1 CIRCLE DROP TIMER
HLKSPD RMB 1 HULK SPEED
BSHTIM RMB 1 BRAIN SHOT TIMER
BRNSPD RMB 1 BRAIN SPEED
TNKSHT RMB 1 TANK SHOT RATE
SHLSPD RMB 1 SHELL SPEED
TDPTIM RMB 1 TANK DROP TIMR
SQSPD RMB 1 SQUARE SPEED
ECNTS EQU * START COUNTS
ROBCNT RMB 1 # ROBOTS
PSTCNT RMB 1 # POSTS
MOMCNT RMB 1 # MOM UNITS
DADCNT RMB 1 # DAD UNITS
KIDCNT RMB 1 # KIDS
HLKCNT RMB 1 # HULKS
BRNCNT RMB 1 # BRAINS
CIRCNT RMB 1 # CIRCLES
SQCNT RMB 1 # SQUARES
TNKCNT RMB 1 # TANKS
ELEND EQU *
HCK2 RMB 1
*
* CMOS RAM ALLOCATION
*
ORG CMOS+$100 WRITABLE CMOS
CREDST RMB 2 CREDITS BACKUP
SLOT1 RMB 6 1 LEFT COIN TOTAL
RMB 6 2 CENTER COIN TOTAL
RMB 6 3 RIGHT COIN TOTAL
RMB 6 4 TOTAL PAID CREDITS
RMB 6 5 TOTAL REPLAYS
BKTIME RMB 6 6 FLIGHT TIME IN MINS
BKMEN RMB 6 7 TOTAL SHIPS PLAYED
BKPLAY RMB 6 8 TOTAL GAMES PLAYED
BKEND EQU * END OF BOOKKEEPING STUFF
SCRSIZ EQU 14 NUMBER OF NIBBLES IN A SCORE ENTRY
GODINT RMB 6
GODSCR RMB 48
CMSCOR RMB 37*SCRSIZ 37 BACKED UP SCORES, 36 OF WHICH ARE VISIBLE
TODAYS RMB 10*SCRSIZ TODAYS GREATEST
TODEND EQU *
ORG CMOS ADEQUATE BIRTH CONTROL PROTECTION
REPLAY RMB 2 REPLAY LEVEL
NSHIP RMB 2 # OF SHIPS/1 CREDIT GAME
COINSL RMB 2 FOR COINAGE SELECT MODE
SLOT1M RMB 2 LEFT COIN MULT
SLOT2M RMB 2 CENTER COIN MULT
SLOT3M RMB 2 RIGHT COIN MULT
CUNITC RMB 2 COIN UNITS PER CREDIT
CUNITB RMB 2 COIN UNITS FOR BONUS
MINUNT RMB 2 MINIMUM REQD
FREEPL RMB 2 FREE PLAY MODE (ONE CREDIT GAME)
GA1 RMB 2 10 MASTER DIFFICULTY CONTROL 1
GA2 RMB 2 NUMBER OF LETTERS ALLOWED TO GOD 10
SPECFN RMB 2 RESTORE FACTORY SETTINGS
RMB 2 CLEAR AUDIT TOTALS
RMB 2 INITIALIZE HIGH SCORE TABLE
RMB 2 INTIATE AUTO CYCLE
RMB 2 ENTER ATTRACT MODE MESSAGE
RMB 2 ENTER HIGHEST SCORE NAME
ENDADJ EQU *
OPMESS RMB 100 2 LINES OF 25 CHARS EACH.
OPL1 RMB 2
OPL2 RMB 2
ADJSUM RMB 2
OMESUM RMB 2
*
*M A C R O S
*
NAP MACRO
LDA #&1 TIME
LDX #&2 WAKEUP ADDR
JMP SLEEP
ENDM
*
*MAKE A NEW PROCESS
*
NEWP MACRO
LDX #&1 ADDR
LDA #&2 TYPE
JSR MKPROC
ENDM
*INIT PROCESS \0=SADDR
MAKP MACRO
JSR MAKEP
FDB &1
ENDM
*MAKE A PROCESS AND OBJECT
MKPROB MACRO
JSR MPROB
FDB &1,&2,&3
ENDM