total-carnage/MENU.EQU

187 lines
6.5 KiB
Plaintext
Raw Permalink Normal View History

2021-04-06 15:15:31 -07:00
**********************************MENU EQUATES****************************
; 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 196
SND_BOX_H EQU 57
* SPACING BETWEEN BOXES ON SCREEN
BOX_YGAP EQU 3
BOX_XGAP EQU 2
* A CENTERED BOX NEEDS TO BE MOVED LEFT THIS AMOUNT
* (PIXELS) TO CORRECTLY FRAME CENTERED TEXT AT
* THE SAME POSITION
*
C_KLUDGE EQU 1
*
* THESE DETERMINE THE THICKNESS OF THE BOX LINES
*
MB_XWID EQU 3
MB_YWID EQU 3
*
* 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.
*
TM_X EQU 200 ;USED TO POSITION TITLE AND BOX TOGETHER
TM_Y EQU 14
TIT_ULX EQU TM_X-0BEH
TIT_LRX EQU TM_X+0B8H
TIT_ULY EQU TM_Y-05H
TIT_LRY EQU TM_Y+1EH
********************************MAIN MENU CONSTANTS***************************
INST_ULY EQU TIT_LRY+BOX_YGAP ;Y RANGE FOR INSTRUCTION BOX
INST_LRY EQU INST_ULY+28
BAR_DY EQU -7
BAR_WID EQU 165
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
MENU_DY EQU 25
BAR_HITE EQU 30
BAR_DX EQU 6
*
* HELP DRAWER CONSTANTS
*
HELP_X_MARGIN EQU 7 ;MARGIN FOR LEFT JUSTIFIED HELP TEXT
HELP_Y_MARGIN EQU 3 ;TOP OF BOX TO 1ST ENTRY
HELP_YLO_MARGIN EQU HELP_Y_MARGIN-2 ;BOTTOM MARGIN IS A TOUCH LESS DUE
* ;TO SPACING
HELP_DY EQU 10 ;SCREEN UNITS PER ITEM.
*
*
* ADJUSTMENT MENU CONSTANTS
*
* "CURRENT SETTING" BOX
CUR_ULY EQU 127
CUR_LRX EQU TIT_LRX
CUR_LRY EQU CUR_ULY+(INST_LRY-INST_ULY) ;SAME HEIGHT AS TOP BOX
ADJ_ULY EQU CUR_LRY+BOX_YGAP ;USE OUR "FIXED" SPACING.
COIN_HEAD_Y EQU CUR_ULY+55 ;1ST OF TOP COIN INFO LINES
MESS_CTS EQU COIN_HEAD_Y+38 ;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_XMULT EQU CS_RMULT+WORD_SIZE
CS_UCRED EQU CS_XMULT+WORD_SIZE
CS_UBON EQU CS_UCRED+WORD_SIZE
CS_UMIN EQU CS_UBON+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_XVAL EQU CS_RVAL+WORD_SIZE
CS_LMES EQU CS_XVAL+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
SHOW_ALL EQU 9 ;Show all lines