smashtv/BACKUP/ROBOAUD.EQU

627 lines
22 KiB
Plaintext
Raw Permalink Normal View History

2021-04-06 15:09:56 -07:00
*
*HARDWARE EQUATES (MOVE TO SYS.INC)
*
SECCHIP EQU 01C00060H ; LOCATION OF SECURITY CHIP JKM 2/13/90
.GLOBAL GET_ADJ, AUD, AUD1
.GLOBAL RC_BYTEI,RC_BYTE,RC_WORD,RC_LONG,RC_LONGI
.GLOBAL WC_BYTE,WC_BYTEI,WC_WORD,WC_WORDI,WC_LONG
.GLOBAL WC_LONGI
.GLOBAL AUDOUT
.GLOBAL SYSCOPY
; .GLOBAL PT_ENTRY
; .GLOBAL INIT_TB
; .GLOBAL INIT_TAB ;GEORGES POWER UP ENTRY
; .GLOBAL P_FORK
; .GLOBAL VAL_TAB
; .GLOBAL ROM_PTRS
; .GLOBAL ALL_TAB
; .GLOBAL TOD_TAB
; .GLOBAL E_GAME
; .GLOBAL ISHSTD
; .GLOBAL SET_PAGE
; .GLOBAL A2_CHECK
; .GLOBAL DEC_HSR,INIT_HSR,GET_HSC
.GLOBAL KILL_AUD,CLR_AUDR,CLR_AUD
; .DEF DEF_PAGE, GET_AUD, CMOS_VAL, FAC_SET
; .DEF FORM_ADC, F_ADC_S, ADJ_PAGE, PUT_ADJ
; .DEF CMOSLOCK, CMOSUNLOCK, STORE_AUDIT
*
* TIMED PAUSE
*
PAUSE $MACRO TIME, REG
MOVI :TIME:, :REG:, L
LABEL?: NOP
DSJS :REG:, LABEL?
$END
*
*BIT SET
* BSET BIT# 0-31(KONSTANT OR REGISTER),REGISTER TO SET BIT IN
* NOTE: A14 IS DESTROYED, 'A' FILE REGISTERS ONLY
*
BSET $MACRO P1,R1
MOVK 1,A14
SLL :P1:,A14
OR A14,:R1:
$END
*
*FCALL - FUNCTION CALL WITHOUT USING THE SYSTEM STACK
* FCALL ROUTINE, BREG
*
FCALL $MACRO NAME, BREG
MOVI :NAME:, :BREG:, L
EXGPC :BREG:
$END
*
*FRET - FUNCTION RETURN WITHOUT USING THE SYSTEM STACK
* FCALL ROUTINE, BREG
*
FRET $MACRO BREG
EXGPC :BREG:
$END
*
* AUDITS
*
* AUDITS ARE HANDLED BY AUDITS NUMBER OFF OF THE BASE
* OF THE AUDIT REGION
*
* IF "CHUTES" VALUE IS CHANGED....EXTRA VALUES MUST
* BE PUT IN THIS TABLE. (AND ADJUSTMENT TABLE OF COURSE)
*
*
AUDNULL EQU 0
AUDLCOIN EQU 1 ; TOTAL COINS IN LEFT CHUTE
AUDCCOIN EQU 2 ; TOTAL COINS IN CENTER CHUTE
AUDRCOIN EQU 3 ; TOTAL COINS IN RIGHT CHUTE
AUD4COIN EQU 4 ; TOTAL COINS IN FOURTH CHUTE
AUDSCOIN EQU 5 ; TOTAL SERVICE CREDITS
AUDCRED EQU 6 ; TOTAL CREDITS
AUDSTART EQU 7 ; TOTAL GAME STARTS
AUDCONT EQU 8 ; TOTAL CONTINUES
AUD1TIME EQU 9 ; 1 PLAYER TIME
AUD2TIME EQU 10 ; 2 PLAYER TIME
AUDUPTIME EQU 11 ; TOTAL UPTIME
AUDXMEN EQU 12 ; XTRA MEN EARNED
AUDRM11 EQU 13 ; LEVEL 1 ROOM 1
AUDRM12 EQU 14 ; LEVEL 1 ROOM 2
AUDRM13 EQU 15 ; LEVEL 1 ROOM 3
AUDRM14 EQU 16 ; LEVEL 1 ROOM 4
AUDRM15 EQU 17 ; LEVEL 1 ROOM 5
AUDMUT EQU 18 ; MUTOID MAN
AUDRM21 EQU 19 ; LEVEL 2 ROOM 1
AUDRM22 EQU 20 ; LEVEL 2 ROOM 2
AUDRM23 EQU 21 ; LEVEL 2 ROOM 3
AUDRM24 EQU 22 ; LEVEL 2 ROOM 4
AUDRM25 EQU 23 ; LEVEL 2 ROOM 5
AUDFAC EQU 24 ; FLATFACE
AUDRM31 EQU 25 ; LEVEL 3 ROOM 1
AUDRM32 EQU 26 ; LEVEL 3 ROOM 2
AUDRM33 EQU 27 ; LEVEL 3 ROOM 3
AUDRM34 EQU 28 ; LEVEL 3 ROOM 4
AUDRM35 EQU 29 ; LEVEL 3 ROOM 5
AUDCOB EQU 30 ; COBRA
AUDAUTO EQU 31 ; AUTO CYCLE PASSES
AUDWDOG EQU 32 ; WATCHDOG HITS
*
LAST_AUDIT EQU 32
*
FRSTGAUD EQU AUDSTART
LASTGAUD EQU LAST_AUDIT
*
FRST_C EQU AUDLCOIN ;FOR CLEARING COINS
LAST_C EQU AUDCRED
*EQUATES FOR STRINGF
B_LJUSTIFY EQU 0 ;LEFT JUSTIFY WITHIN FIELD
B_CJUSTIFY EQU 1 ;CENTER JUSTIFY WITHIN FIELD
B_PSIGN EQU 2 ;PRINT SIGN IF SIGNED
B_COMMAS EQU 3 ;PRINT COMMAS
B_PHEX EQU 4 ;PRINT HEX PREFIX
B_ZPRINT EQU 5 ;FILL UNUSED WIDTH WITH ZEROS
B_SIGNED EQU 6 ;THIS VALUE IS OF SIGNED TYPE
B_CAP EQU 7 ;USE CAPITAL LETTERS FOR HEX DIGITS
**************************************************************************
* *
* MORE RANDOM TROG INCLUDES *
* *
**************************************************************************
**************************************************************************
* *
* COINAGE STUFF *
* *
**************************************************************************
CHUTES EQU 4 ;MAXIMUM COIN CHUTES IN GAME.
L_COIN_BIT EQU 1H
C_COIN_BIT EQU 4H
R_COIN_BIT EQU 2H
X_COIN_BIT EQU 80H
SLAM_BIT EQU 8H
MENU_PID EQU 0AC1H ;GET_MENU SLAVE
MDUN_PID EQU 0AC2H ;MENU SLAVE CHANGES TO THIS WHEN DONE
LONG_SIZE EQU 32
WORD_SIZE EQU 16
BYTE_SIZE EQU 8
C_LONG_SIZE EQU 64
C_WORD_SIZE EQU 32
C_BYTE_SIZE EQU 16
BYTE_MASK EQU 0FFH
WORD_MASK EQU 0FFFFH
SX_MASK EQU 0FFFFH
SY_MASK EQU 0FFFF0000H
**************************************************************************
* *
* ASCII STUFF *
* *
**************************************************************************
SPACE EQU 20H
EX_PT EQU 21H
LET_0 EQU 30H
LET_A EQU 41H
LET_Z EQU 5AH
UNDERSCORE EQU 5FH
FONT_SPACE EQU 7EH
FONT_RUB EQU FONT_SPACE+1
FONT_END EQU FONT_RUB+1
FONT_RQUOTE EQU FONT_END+1
FONT_EPOUND equ FONT_RQUOTE+1
FONT_CR equ FONT_EPOUND+1
ASCII_COMMA EQU 2CH
RIGHT_PAREN EQU 29H
ASCII_DQ EQU 22H
**************************************************************************
* *
* AUDIT STRUCTURE *
* *
**************************************************************************
AUD_DATA EQU 0 ;THE COUNTER IS 4 BYTES STARTING AT ZERO
AUD_CKSUM EQU AUD_DATA+(4*C_BYTE_SIZE) ;CHECKSUM = 2 BYTES
AUD_SIZE EQU AUD_CKSUM+C_WORD_SIZE
AUD_BYTES_TO_CHECK EQU (AUD_SIZE/C_BYTE_SIZE)-2 ;# TO ADD FOR CHECKSUM
N_AUDITS EQU 33 ;ONE MORE THAN ACTUAL #
**************************************************************************
* *
* ADJUSTMENTS *
* *
**************************************************************************
ADJ_SIZE EQU C_LONG_SIZE
N_ADJUSTS EQU 28 ;28 NORMAL ADJUSTMENTS
**************************************************************************
* *
* *
* CMOS STUFF FOR HSTD..........MOVE THIS TO SPECIAL EQUATE FILE *
* SOME DAY *
* *
* *
**************************************************************************
*
* High Score table (CMOS) entry data structure
*
NUM_INITS EQU 3 ;INITIALS IN EACH ENTRY..THIS MUST BE ODD
*
HS_SCORE EQU 0 ;LONG WORD.....8 DIGIT SCORE
HS_COL EQU HS_SCORE+C_LONG_SIZE ; PALETTE TO PLOT IN
HS_INITS EQU HS_COL+C_WORD_SIZE ;BYTE FOR FIRST INITIAL
HS_CKBYTE EQU HS_INITS+(NUM_INITS*C_BYTE_SIZE) ;BYTE FOR CHECKSUM
HS_SIZE EQU HS_CKBYTE+C_BYTE_SIZE ;SIZE OF STRUCTURE
HS_BYTES_TO_CHECK EQU (HS_SIZE/C_BYTE_SIZE)-1 ;# TO ADD FOR CHECKSUM
HS_SIZE_IN_WORDS EQU HS_SIZE/C_WORD_SIZE ;SIZE OF ENTRY IN WORDS
HS_SIZE_IN_BYTES EQU HS_SIZE/C_BYTE_SIZE ;SIZE OF ENTRY IN BYTES
HS_ROM_SIZE equ HS_SIZE/2 ;address size of rom entry
RHS_VALID EQU 0
RHS_SCORE EQU RHS_VALID+WORD_SIZE
RHS_COL EQU RHS_SCORE+LONG_SIZE
RHS_INITS EQU RHS_COL+WORD_SIZE
RHS_CKBYTE EQU RHS_INITS+(NUM_INITS*BYTE_SIZE)
RHS_SIZE EQU RHS_CKBYTE+BYTE_SIZE
**************************************************************************
* *
* A HIGH SCORE TABLE IS DEFINED IN ROM BY THE FOLLOWING *
* STRUCTURE (THERE ARE AT LEAST 2 TABLES....ALL TIME *
* AND "TODAYS") *
* *
**************************************************************************
TB_POINTER EQU 0 ;LONG-POINTER TO BEGINNING OF TABLE
TB_COUNT EQU TB_POINTER+LONG_SIZE ;WORD....# IN THE TABLE.
TB_VISIBLE EQU TB_COUNT+WORD_SIZE ;WORD....NUMBER DISPLAYED
TB_PAGE_BITS EQU TB_VISIBLE+WORD_SIZE ;WORD....STATUS WORD FOR CMOS PAGE
TB_FACTORY EQU TB_PAGE_BITS+WORD_SIZE ;LONG....ROM STARTUP TABLE
TB_ERROR_COUNT EQU TB_FACTORY+LONG_SIZE ;WORD....NUM ERRORS TO RE-INIT
*
CMOS EQU 1400000H ;BASE OF CMOS
WPCMOS EQU 1404000H ;WRITE PROTECTED CMOS
WP_READ EQU 1C00010H ;PLACE TO READ WRITE PROTECT STATUS
SND_TALK EQU 1C00020H ;SOUND BOARD TALK BACK.
WP_BIT EQU 800H ;BIT WHERE WRITE ENABLE LIVES 0=NO WRITES
CMOS_PAGE_SELECT_BITS EQU 0C0H ;BITS 6 AND 7 OF SYSCTRL SELECT CMOS PAGE
CMOS_PAGE_SELECT_UNIT EQU 040H ;4 PAGES USE MULTIPLES OF THIS
*
**************************************************************************
* *
* CMOS ALLOCATION *
* *
**************************************************************************
*
* 4 PAGES OF 2K
*
* EACH PAGE.....LOW 1K = READ/WRITE
* HIGH 1K = WRITE PROTECTED
*
* PAGE 1 LOW HALF = AUDITS
* HIGH HALF = ADJUSTMENTS
*
* PAGE 0 LOW HALF = HSTD TODAY
*
* PAGE 2 LOW HALF = HSTD ALL TIME
*
ALL_TIME_ORIGIN EQU CMOS
ALL_TIME_SELECT EQU CMOS_PAGE_SELECT_UNIT*2
ALL_TIME_VISIBLE EQU 20
*TODAYS_ORIGIN EQU ALL_TIME_ORIGIN+(HS_SIZE*37)
TODAYS_ORIGIN EQU CMOS
TODAYS_SELECT EQU CMOS_PAGE_SELECT_UNIT*0
TODAYS_VISIBLE EQU 10
AUDIT_SELECT EQU CMOS_PAGE_SELECT_UNIT*1
HSR_SELECT EQU AUDIT_SELECT ;HIGH SCORE RESET COUNTER
COIN_SELECT EQU AUDIT_SELECT ;COINS AND CREDITS
*
ADJUST_SELECT EQU CMOS_PAGE_SELECT_UNIT*1
*
DUMP_SELECT EQU CMOS_PAGE_SELECT_UNIT*3
DUMP_ORG EQU CMOS
DUMP_PTR EQU DUMP_ORG ;WORD....NUMBER OF ENTRIES!
DUMP_DATA EQU DUMP_PTR+C_WORD_SIZE ;DUMPS GO HERE!
*
* AUDIT PAGE AUDIT DATA AND CREDITS
*
AUDITORG EQU CMOS ;AUDITS LIVE HERE
CREDITS EQU AUDITORG+(N_AUDITS*AUD_SIZE) ;BYTE FOR CREDITS
CUNITS EQU CREDITS+C_BYTE_SIZE ;WORD
BUNITS EQU CUNITS+C_WORD_SIZE ;WORD
MINUNITS EQU BUNITS+C_WORD_SIZE ;WORD
COIN_CKSUM EQU MINUNITS+C_WORD_SIZE ;BYTE
HSR_C EQU COIN_CKSUM+C_BYTE_SIZE ;LONG = HIGH SCORE RESET COUNTER
*
* NEXT TWO ARE ASSUMED TO BE BACK TO BACK
*
HRESET_COUNTER EQU HSR_C+C_LONG_SIZE ;LONG = HIGH SCORE RESET COUNTER
HRESET_VERIFY EQU HRESET_COUNTER+C_LONG_SIZE ;LONG = 2ND COPY INVERTED.
COIN_CKSUM_START EQU CREDITS
COIN_CKSUM_SIZE EQU COIN_CKSUM-COIN_CKSUM_START ;SIZE OF REGION TO CHECK
COIN_CKSUM_BYTES EQU COIN_CKSUM_SIZE/C_BYTE_SIZE ;NUMBER OF BYTES TO ADD
CMESS_CHARS EQU 25 ;25 CHARS/LINE OF CUSTOM MESSAGE
CMESS_LINES EQU 3 ;3 LINES
CMESS_LINE_SIZE EQU CMESS_CHARS*C_BYTE_SIZE
CMESS_SIZE EQU CMESS_LINES*CMESS_LINE_SIZE
VALID_VALUE EQU 0EABCH ;STORED AT "VALID_CUSTOM" IF OK!
NAME_REV_SIZE EQU 30 ;NAME AND REV DATA
ADJUSTORG EQU WPCMOS ;FIRST ADJUSTMENT HERE
CUSTOM_MESSAGE EQU ADJUSTORG+(N_ADJUSTS*ADJ_SIZE)
VALID_CUSTOM EQU CUSTOM_MESSAGE+CMESS_SIZE ;WORD = EABC IF OK.
END_CK_REGION EQU VALID_CUSTOM+C_WORD_SIZE
ADJ_AREA_SIZE EQU END_CK_REGION-ADJUSTORG ;ADJUSTS+CUSTOM MESSAGE
ADJ_CKSUM EQU END_CK_REGION ;WORD CHECK FOR ADJUSTS
ADJ_BYTES_TO_CHECK EQU ADJ_AREA_SIZE/C_BYTE_SIZE ;NUMBER OF BYTES IN CHECKSUM.
NAME_REV EQU ADJ_CKSUM+C_WORD_SIZE
END_ADJ EQU NAME_REV+(NAME_REV_SIZE*C_BYTE_SIZE)
*
**************************************************************************
* *
* COLOR STUFF -- PALETTE 0 *
* *
**************************************************************************
TROG_RED EQU 0101H
TROG_WHITE EQU 0202H
TROG_BLUE EQU 0303H
TROG_GREY EQU 0404H
TROG_YELLOW EQU 0505H
TROG_PURPLE EQU 0606H
TROG_GREEN EQU 0707H
TROG_BLACK EQU 0808H
TROG_REDGOLD EQU 0B0BH
TROG_DECAY EQU 0C0CH
TROG_LF EQU 0D0DH
TROG_RGB EQU 0E0EH
DINO_INTENSE EQU 0E0EH
TROG_PRED EQU 01010000H
TROG_PWHITE EQU 02020000H
TROG_PBLUE EQU 03030000H
TROG_PGREY EQU 04040000H
TROG_PYELLOW EQU 05050000H
TROG_PPURPLE EQU 06060000H
TROG_PGREEN EQU 07070000H
TROG_PBLACK EQU 08080000H
TROG_PBPR EQU 0A0A0000H
TROG_PREDGOLD EQU 0B0B0000H
TROG_PDECAY EQU 0C0C0000H
TROG_PLF EQU 0D0D0000H
TROG_PRGB EQU 0E0E0000H
DINO_PINTENSE EQU 0E0E0000H
**************************************************************************
* *
* TROG (R) *
* *
* Copyright 1990 Williams Electronics Games Inc. *
* All Rights Reserved *
* *
**********************************MENU EQUATES****************************
**************************************************************************
* *
* SCREEN_WIDE *
* *
* CONSTANT FOR MENU SCREEN SIZE DEFINITIONS *
* *
* = 0 400 X 256 ( TROG ) *
* *
* = 1 512 X 400 ( NARC ) *
* *
**************************************************************************
SCREEN_WIDE EQU 0
*
* FOR EACH ENTRY IN THE MENU
*
MENU_TEXT_PTR EQU 0 ;OFFSET OF TEXT POINTER
MENU_ROUTINE EQU LONG_SIZE ;OFFSET OF ROUTINE
MENU_HELP EQU MENU_ROUTINE+LONG_SIZE
MENU_ENTRY_SIZE EQU 3*LONG_SIZE
*
BLNK_HELP EQU 0 ;NO HELP BOX FOR THIS ENTRY
NO_HELP EQU 00000001H ;NO HELP AREA IN THIS MENU
ADJ_HELP EQU 00000002H ;PASS STRUCTURE POINTER TO ADJUSTMENT HELP ROUT
SND_HELP EQU 00000003H ;CALLED ON SOUND TEST MENU
SND_PLAY EQU 00000004H ;CALLED FROM SOUND "PLAY" SELECTIONS
*
SND_MESS_Y EQU 200
SND_BOX_H EQU 57
*
* SPACING BETWEEN BOXES ON SCREEN
*
.IF SCREEN_WIDE
BOX_YGAP EQU 6
BOX_XGAP EQU 6
.ELSE
BOX_YGAP EQU 3
BOX_XGAP EQU 5
.ENDIF
*
*
* A CENTERED BOX NEEDS TO BE MOVED LEFT THIS AMOUNT
* (PIXELS) TO CORRECTELY FRAME CENTERED TEXT AT
* THE SAME POSITION
*
*C_KLUDGE EQU 3 ;BEFORE "SPACE WIDTH" BUG FIX
C_KLUDGE EQU 1
*
* THESE DETERMINE THE THICKNESS OF THE BOX LINES
*
.IF SCREEN_WIDE
MB_XWID EQU 5 ; NARC VALUES
MB_YWID EQU 5
.ELSE
MB_XWID EQU 3
MB_YWID EQU 3
.ENDIF
*
* GAP BETWEEN A MENU BORDER BOX AND
* THE SELECTION BAR
*
GAP EQU 2 ;GAP BETWEEN BORDER AND SELECTION BAR
*
* CONSTANT TO PASS TO "DO_BORDER" FOR OUR
* BOX SIZE
*
BORDER_SIZE EQU (MB_YWID*10000H)+MB_XWID
*******************************TEST TITLE CONSTANTS****************************
*
* THESE ARE USED TO SET TOP BOX AND MAIN TITLE.
* THE MENUS AND HELP SCREENS WILL SQUARE OFF
* TO THE NUMBERS SET HERE.
*
.IF SCREEN_WIDE
TM_X EQU 256 ;USED TO POSITION TITLE AND BOX TOGETHER
TM_Y EQU 24
.ELSE
TM_X EQU 200
TM_Y EQU 24
.ENDIF
.IF SCREEN_WIDE
TIT_ULX EQU TM_X-212
TIT_LRX EQU TM_X+204
TIT_ULY EQU TM_Y-09
TIT_LRY EQU TM_Y+49
.ELSE
TIT_ULX EQU TM_X-195
TIT_LRX EQU TM_X+189
TIT_ULY EQU TM_Y-06
TIT_LRY EQU TM_Y+32
.ENDIF
********************************MAIN MENU CONSTANTS***************************
INST_ULY EQU TIT_LRY+BOX_YGAP ;Y RANGE FOR INSTRUCTION BOX
.IF SCREEN_WIDE
INST_LRY EQU INST_ULY+40
BAR_DY EQU -12
BAR_WID EQU 235
MENU_DY EQU 42
BAR_HITE EQU 40
BAR_DX EQU 8
.ELSE
INST_LRY EQU INST_ULY+29
BAR_DY EQU -8
BAR_WID EQU 183
;BAR_WID EQU (TIT_LRX-TIT_ULX)
;MENU_DY EQU 27
MENU_DY EQU 23
BAR_HITE EQU 26
BAR_DX EQU 6
.ENDIF
MENU_X EQU TIT_ULX+GAP+MB_XWID+(BAR_WID/2)+C_KLUDGE
MENU_Y EQU INST_LRY+BOX_YGAP+MB_YWID+GAP-BAR_DY
*
* HELP DRAWER CONSTANTS
*
HELP_X_MARGIN EQU 10 ;MARGIN FOR LEFT JUSTIFIED HELP TEXT
HELP_Y_MARGIN EQU 8 ;TOP OF BOX TO 1ST ENTRY
HELP_YLO_MARGIN EQU HELP_Y_MARGIN-4 ;BOTTOM MARGIN IS A TOUCH LESS DUE
* ;TO SPACING
HELP_DY EQU 12 ;SCREEN UNITS PER ITEM.
*
*
* ADJUSTMENT MENU CONSTANTS
*
* "CURRENT SETTING" BOX
*
CUR_ULY EQU 125
CUR_LRX EQU TIT_LRX
CUR_LRY EQU CUR_ULY+(INST_LRY-INST_ULY) ;SAME HEIGHT AS TOP BOX
CUR_ULY2 EQU 180
CUR_LRY2 EQU CUR_ULY2+(INST_LRY-INST_ULY)
*
ADJ_ULY EQU CUR_LRY2+BOX_YGAP ;USE OUR "FIXED" SPACING.
ADJ_CULY EQU ADJ_ULY-50 ; COIN UPPER LEFT Y
ADJ_PULY EQU ADJ_ULY-28
*
;COIN_HEAD_Y EQU CUR_ULY+91 ;1ST OF TOP COIN INFO LINES
COIN_HEAD_Y EQU CUR_ULY+71 ;1ST OF TOP COIN INFO LINES
MESS_CTS EQU COIN_HEAD_Y+35 ;START/CONTINUE PLACE
**************************************************************************
* *
* COIN SELECT TABLE OFFSETS *
* *
**************************************************************************
*
* IF "CHUTES" VALUE CHANGES.....EXTRA WORDS MUST BE PUT HERE
*
CS_LMULT EQU 0
CS_CMULT EQU CS_LMULT+WORD_SIZE
CS_RMULT EQU CS_CMULT+WORD_SIZE
CS_UCRED EQU CS_RMULT+WORD_SIZE
CS_UBON EQU CS_UCRED+WORD_SIZE
CS_UMIN EQU CS_UBON+WORD_SIZE
*CS_STRT EQU CS_UMIN+WORD_SIZE
*CS_CONT EQU CS_STRT+WORD_SIZE
CS_CDIV EQU CS_UMIN+WORD_SIZE
CS_FRAC EQU CS_CDIV+WORD_SIZE
CS_COPY EQU CS_FRAC+WORD_SIZE ;UP TO HERE IS COPIED AS ADJUSTMENTS
CS_LVAL EQU CS_COPY
CS_CVAL EQU CS_LVAL+WORD_SIZE
CS_RVAL EQU CS_CVAL+WORD_SIZE
CS_LMES EQU CS_RVAL+WORD_SIZE
CS_RMES EQU CS_LMES+LONG_SIZE
CS_PROMPT EQU CS_RMES+LONG_SIZE
CS_TITLE EQU CS_PROMPT+LONG_SIZE
CS_LIST EQU CS_TITLE+LONG_SIZE
CS_PICK EQU CS_LIST+LONG_SIZE ;WHICH LINE TO ADD TO 2 TO START...1 TO
CS_SLOTS EQU CS_PICK+WORD_SIZE ;TEXT DESCRIBING COIN SLOTS
CS_SIZE EQU CS_SLOTS+LONG_SIZE
*
*
* ADJUSTMENT STRUCTURE. THIS STRUCTURE IS
* POINTED TO BY THE 2ND MENU LONG WORD (WHERE NORMALLY
* THE ROUTINE LIVES).
*
AD_ROUT EQU 0 ;LONG...ROUTINE TO RUN WHEN SELECTED.
AD_TITLE EQU AD_ROUT+LONG_SIZE ;LONG...POINTER TO TITLE FOR RIGHT COLUMN
AD_HELP EQU AD_TITLE+LONG_SIZE ;LONG...POINT TO HELP STRUCT FOR EXPLANATION
AD_CMOS EQU AD_HELP+LONG_SIZE ;WORD...GET_ADJ / PUT_ADJ NUMBER.
AD_MIN EQU AD_CMOS+WORD_SIZE ;LONG...MINIMUM VALUE FOR ADJ.
AD_MAX EQU AD_MIN+LONG_SIZE ;LONG...MAXIMUM VALUE FOR ADJ.
AD_DELTA EQU AD_MAX+LONG_SIZE ;LONG...UNITS BETWEEN VALUES.
AD_ZEQU EQU AD_DELTA+LONG_SIZE ;LONG...NUMBER TO STORE AS A ZERO.
AD_NAMEIT EQU AD_ZEQU+LONG_SIZE ;LONG...ROUTINE TO PRINT VALUES.
AD_FLAGS EQU AD_NAMEIT+LONG_SIZE ;WORD...bit zero non zero says wrap
* ; bit one non zero says BCD
; bit two says flag "1st 8 coinage changed" (ADJVIRGIN)
; bit three says flag 1st 6 changed (ADJ1st6)
; bit four says its hsr counter
AD_NAMPTR EQU AD_FLAGS+WORD_SIZE ;LONG...POINTER TO DATA FOR NAMEIT ROUTINE
AD_MAIN EQU AD_NAMPTR+LONG_SIZE ;LONG...MAIN MENU STRING
WRAP_BIT EQU 0
BCD_BIT EQU 1
VIRG_BIT EQU 2
SIX_BIT EQU 3
HSR_BIT EQU 4
WRAP_VAL EQU 1
BCD_VAL EQU 2
VIRG_VAL EQU 4
SIX_VAL EQU 8
HSR_VAL EQU 16
*
* FOR CSELECT TABLE......
*
* A1 = 1 PLOT ONLY THE STRING LIST (1 OR 2 POINTERS
* CENTERED APPROPRIATELY
*
* A1 = 2 PLOT THE 1ST LINE OF THE STRING LIST ALONG
* WITH THE 2 CREDITS TO START...1 TO CONTINUE
*
* A1 = 3 PLOT THE 2ND LINE OF THE STRING LIST ALONG
* WITH THE 2 CREDITS TO START...1 TO CONTINUE
*
CSM_LIST EQU 1
CSM_1W_21 EQU 2
CSM_2W_21 EQU 3
CSM_3W_21 EQU 4
CSM_LAST EQU 4
*
* FOR CS_PICK:
*
SHOW_NONE EQU 0 ;JUST USE 2/1 BY ITSELF
SHOW_1 EQU 2 ;SHOW 1ST LINE
SHOW_2 EQU 3 ;SHOW 2ND LINE
SHOW_3 EQU 4 ;SHOW 3RD LINE