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