smashtv/BACKUP/ROBOAUD.EQU

627 lines
22 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

*
*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