cruisin-usa/CMOS.EQU

408 lines
9.4 KiB
Plaintext
Executable File

*CMOS.EQU
*
*COPYRIGHT (C) 1994 BY TV GAMES, INC.
*ALL RIGHTS RESERVED
*
*----------------------------------------------------------------------------
* CMOS DEFINES
*
* 8K X 8 CMOS RAM
*BITS ARE: TTTT TTTT xxxx xxxx xxxx xxxx xxxx xxxx
*
*ADJUSTMENTS ARE FIRST, THEN AUDITS
*SPACE FOR X AUDITS
*
*THEN HSTD SPACE
*{
* RACE_TABLE
*} * NUM_RACES
*
.globl CHECK_RACE_TABLE,INSERT_TABLE_ENTRY
.globl TABLE_ENTRY_READ,GET_TABLE_ADDR
.globl INIT_LASTHS_TABLE,CHECK_LASTHS
.globl VALIDATE_HSTD_TABLES
.globl INIT_HSTD_TABLES
*----------------------------------------------------------------------------
*HSTD ENTRY INFORMATION
*
*
CMWS .set 4 ;CMOS WORD SIZE
*----------------------------------------------------------------------------
*----------------------------------------------------------------------------
*AUDIT AND ADJUSTMENTS
*
*
ADJ_COINMODE .set 0 ;0-50,0
ADJ_GASMIN .set 1 ;0-255,0
ADJ_GASMAX .set 2 ;0-255,255
ADJ_STEERMIN .set 3 ;0-255,0
ADJ_STEERMAX .set 4 ;0-255,255
ADJ_STEERCENTER .set 5 ;0-255,128
ADJ_BRAKEMIN .set 6 ;0-255,0
ADJ_BRAKEMAX .set 7 ;0-255,255
ADJ_VOLUME .set 8 ;0-255,255
ADJ_COIN1_UNITS .set 9 ;0-100,1
ADJ_COIN2_UNITS .set 10 ;0-100,1
ADJ_COIN3_UNITS .set 11 ;0-100,1
ADJ_COIN4_UNITS .set 12 ;0-100,1
ADJ_UNITS_PER_CREDIT .set 13 ;0-100,1
ADJ_BONUS_UNITS .set 14 ;0-100,0
ADJ_UNITS_MIN .set 15 ;0-100,0
ADJ_CREDITS_TO_START .set 16 ;0-100,3
ADJ_CREDITS_TO_CONTINUE .set 17 ;0-100,3
ADJ_SHOW_FRAC .set 18 ;0-1,1
ADJ_COIN1_COUNTER .set 19 ;0-127,1
ADJ_COIN2_COUNTER .set 20 ;0-127,1
ADJ_COIN3_COUNTER .set 21 ;0-127,1
ADJ_COIN4_COUNTER .set 22 ;0-127,4
ADJ_STANDARD_PRICING .set 23 ;0-1,1
ADJ_CUSTOM_PRICING .set 24 ;0-1,0
ADJ_FREE_PLAY .set 25 ;0-1,0
ADJ_FREEGAME .set 26 ;0-1,1
ADJ_DIFFICULTY .set 27 ;0-10,7
ADJ_TIME_TO_START .set 28 ;0-6,6
ADJ_CHECKPOINT_BONUS .set 29 ;0-10,7
ADJ_ATTRACT_MODE_SOUND .set 30 ;0-1,0
ADJ_HIGH_SCORE_ENTRY .set 31 ;0-1,1
ADJ_MIN_VOL_LEVEL .set 32 ;0-255,200
ADJ_ACTUALHSTDRESET .set 33 ;0-25000,5000
ADJ_MPHORKPM .set 34 ;0-1,0
ADJ_ROADKILL .set 35 ;0-1,1
ADJ_CLINTON .set 36 ;0-1,1
ADJ_GIRLS .set 37 ;0-1,1
ADJ_STEERING_SENSITIVITY .set 38 ;0-40,10
ADJ_HIGHSCORE_RESET .set 39 ;1000,25000,5000
ADJ_DIFF_LOCAL .set 40 ;0-100,50
ADJ_OUTOFDIAG .set 41 ;have we just left diag???
ADJ_RAMP_PERCENTAGE .set 42 ;0-30,20
ADJ_RAMP_COUNT .set 43 ;0-5000,0
ADJ_ENTER_INITS .set 44 ;0-1,1
ADJ_MAX_CREDITS .set 45 ;10-50,30
NUM_ADJUSTMENTS .set 46
ADJ_WDOG .set 50 ;temp space
ADJ_INITIALS .set 51 ;-1 if reset x|b|b|b
ADJ_MOTION_PRESENT .set 52
ADJ_CHECKSUM .set 53
MAX_ADJUSTMENTS .set 54
;COIN BOOKEEPING
AUD_COIN1 .set 100 ;*
AUD_COIN2 .set 101 ;*
AUD_COIN3 .set 102 ;*
AUD_COIN4 .set 103 ;*
AUD_SERVICE_CREDITS .set 104 ;*
AUD_PAID_CREDITS .set 105 ;*
AUD_TOTAL_FREEGAMES .set 106 ;
AUD_FREE_TO_TOTAL .set 107 ; % FREE GAMES TO TOTAL PLAYS
AUD_TOTAL_PLAYS .set 108
AUD_TOTAL_STARTS .set 109
AUD_TOTAL_CONTINUES .set 110
AUD_GAMENUMBER .set 111 ;
AUD_PCREDITS .set 112 ;partial credits
AUD_CREDITS .set 113 ;actual credits
AUD_NUM_BUYINS .set 114 ;
AUD_TOTAL_TIME .set 115 ;AUD_TOTAL_TIME/AUD_NUM_BUYINS / 100
AUD_AVG_TIME .set 116 ;
AUD_NUM_UNFINISHED .set 117 ;
AUD_POWERON_TIME .set 118 ;Measured in seconds...
AUD_GAMEON_TIME .set 119 ;Measured in seconds...
AUD_NUM_WATCHDOGS .set 120
AUD_TOTAL_UNLINKED_PLAYS .set 121
AUD_TOTAL_UNLINKED_1STS .set 122
AUD_UNLINKED_1ST_TO_TOTAL_UL .set 123
AUD_TOTAL_UNLINKED_STARTS .set 124
AUD_TOTAL_UNLINKED_CONTINUES .set 125
AUD_CONTINUES_TO_PLAYS_UNLINKED .set 126
AUD_TOTAL_UNLINKED_GAME_ENDS .set 127
AUD_RESET_TOTALLY .set 128
;AUD_TOTAL_LINKED_PLAYS .set 74
;AUD_TOTAL_LINKED_1STS .set 75
AUD_LINKED_1ST_TO_TOTAL_UL .set 129
AUD_TOTAL_LINKED_STARTS .set 130
AUD_TOTAL_LINKED_CONTINUES .set 131
AUD_CONTINUES_TO_PLAYS_LINKED .set 132
AUD_TOTAL_LINKED_GAME_ENDS .set 133
AUD_LINKED_PLAYS_TO_TOTAL_PLAYS .set 134
AUD_TOTAL_ONTIME .set 135
AUD_TOTAL_PLAYTIME .set 136
AUD_TOTAL_LINKED_PLAYTIME .set 137
AUD_TOTAL_UNLINKED_PLAYTIME .set 138
AUD_AVG_TIME_PER_CREDIT .set 139
AUD_AVGCREDITS_PER_GAME .set 140
AUD_COIN_DOOR_SLAMS .set 141
AUD_SUCCESSFULL_BURNINS .set 142
AUD_UNFINISHED_GAMES .set 143
AUD_UNFINISHED_GAMES_FOUND .set 144
AUD_VIEW1_TIME .set 145
AUD_VIEW2_TIME .set 146
AUD_VIEW3_TIME .set 147
AUD_RADIO_HITS .set 148 ;*
AUD_AUTOMATIC_TRANS_SELECTED .set 149 ;*
AUD_MANUAL_TRANS_SELECTED .set 150 ;*
AUD_GAMES_EXPIRED .set 151
AUD_GENERAL_CHKSUM .set 152
AUD_START_GGATE .set 153
AUD_FINISH_GGATE .set 154
AUD_START_SF .set 155
AUD_FINISH_SF .set 156
AUD_START_US101 .set 157
AUD_FINISH_US101 .set 158
AUD_START_REDWOOD .set 159
AUD_FINISH_REDWOOD .set 160
AUD_START_BEVHILLS .set 161
AUD_FINISH_BEVHILLS .set 162
AUD_START_LA .set 163
AUD_FINISH_LA .set 164
AUD_START_DV .set 165
AUD_FINISH_DV .set 166
AUD_START_ARIZONA .set 167
AUD_FINISH_ARIZONA .set 168
AUD_START_GC .set 169
AUD_FINISH_GC .set 170
AUD_START_IOWA .set 171
AUD_FINISH_IOWA .set 172
AUD_START_CHICAGO .set 173
AUD_FINISH_CHICAGO .set 174
AUD_START_INDIANA .set 175
AUD_FINISH_INDIANA .set 176
AUD_START_APPALACHIA .set 177
AUD_FINISH_APPALACHIA .set 178
AUD_START_DC .set 179
AUD_FINISH_GAME .set 180
;these are actually accumulators
;to get the actual value thou must
; / AUD_FINISH_<NAME>
;
AUD_WIN_GGATE .set 181
AUD_WIN_SF .set 182
AUD_WIN_US101 .set 183
AUD_WIN_REDWOOD .set 184
AUD_WIN_BEVHILLS .set 185
AUD_WIN_LA .set 186
AUD_WIN_DV .set 187
AUD_WIN_ARIZONA .set 188
AUD_WIN_GC .set 189
AUD_WIN_IOWA .set 190
AUD_WIN_CHICAGO .set 191
AUD_WIN_INDIANA .set 192
AUD_WIN_APPALACHIA .set 193
AUD_WIN_DC .set 194
AUD_WIN_GAME .set 195
AUD_GAMES_START .set 210
AUD_GAMES_CONTINUES .set 211
AUD_GAMES_ENDS .set 212
AUD_BURNINS .set 213
AUD_VERTFRAME .set 214
AUD_POLYFRAME .set 215
AUD_OBJFRAME .set 216
AUD_FRAMEFRAME .set 217
AUD_REPEAT_REDWOOD .set 218
AUD_REPEAT_DEATHVALLEY .set 219
AUD_REPEAT_GRANDCANYON .set 220
AUD_REPEAT_CHICAGO .set 221
;Misc internal counts
AUD_LOG_COUNT .set 222
AUD_LAST_LEG .set 223 ;LAST LEG SETUP
AUD_PLAYS_TO_HISCORE_RESET .set 224
AUD_VETTE_SELECTED .set 225
AUD_CAR_SELECTION .set AUD_VETTE_SELECTED
AUD_LABOMBA_SELECTED .set 226
AUD_DEVASTATOR_SELECTED .set 227
AUD_ITALIA_SELECTED .set 228
AUD_HID_JEEP_SELECTED .set 229
AUD_HID_SBUS_SELECTED .set 230
AUD_HID_COPCAR_SELECTED .set 231
AUD_HID_DIESEL_SELECTED .set 232
AUD_FS_AZ .set 233 ;free select ARIZONA
AUD_FS_US101 .set 234
AUD_FS_LA .set 235
AUD_FS_IOWA .set 236
AUD_FS_DV .set 237
AUD_FS_USA .set 238
AUD_FS_BH .set 239
AUD_FS_APPL .set 240
AUD_FS_RW .set 241
AUD_FS_RM .set 242
AUD_FS_CH .set 243
AUD_FS_HID_SF .set 244
AUD_FS_HID_IN .set 245
AUD_FS_HID_GG .set 246
AUD_BCREDITS .set 247
AUD_H2HGAMES .set 248
NUM_AUDITS .set 249
AUD_VERSION .set 250
AUD_HIGHSCORE_CHECKSUM .set 251
AUD_CHIPTEST_DEDICATED .set 252
AUD_CHECKSUM .set 253
MAX_AUDITS .set 254
*----------------------------------------------------------------------------
;EDIAG.ASM
.globl FRAMTEST,SRAMTEST,CRAMTEST,BITMAPTEST
.globl CHECK_RAM
;CMOS.ASM
.globl CMOSI
.globl HSTD_PAGEI
.globl ALL_TIME_HSTDI
.globl DAILY_HSTDI
.globl HSTD_DEFAULTI
.globl DAILY_DEFAULTI
.globl ADJUSTMENT_READ
.globl ADJUSTMENT_WRITE
.globl AUDIT_INC
.globl AUDIT_ADD
.globl AUDIT_READ
.globl AUDIT_WRITE
.globl GEN_CMOS_CHKSUM
.globl CHECK_CMOS
.globl CHKSUM_CMOS
.globl RESET_CMOS
.globl CLR_CMOS
.globl _wr_cw,_rd_cw
.globl _wr_cwR,_rd_cwR
.globl VALIDATE_CMOS
.globl CHECKSUM_PAGE
.globl GEN_CHECKSUM511
.globl SET_CHECKSUM
.globl RESET_BOOKKEEPING
.globl RESET_ADJUSTMENTS
;DIAG.ASM
.globl ENTER_DIAG
;HSTD.ASM
.globl BUMP_ALLTIME,BUMP_DAILY
.globl CHECK_ALLTIME,CHECK_DAILY
.globl CHECK_TABLE
.globl _HSTD_DISP
.globl _hstd_alltime
.globl RESET_ALL_TIME_CMOS
.globl RESET_DAILY_CMOS
.globl HSTD_DEFAULT
.globl DAILY_DEFAULT
.globl CMOS_ON_C,CMOS_OFF_C,CMOS_WPON_C,CMOS_WPOFF_C
CMOS_ON .MACRO
CALL CMOS_ON_C
.ENDM
CMOS_OFF .MACRO
CALL CMOS_OFF_C
.ENDM
CMOS_WP_ON .MACRO
CALL CMOS_WPON_C
.ENDM
CMOS_WP_OFF .MACRO
CALL CMOS_WPOFF_C
.ENDM
*----------------------------------------------------------------------------
*CMOS STRUCTURES
*
*
*TOP RACE TIMES
*
*STRUCT RACEENTRY
TE_TIME .set 0 ;TIME
TE_INIT1 .set 4 ; }
TE_INIT2 .set 5 ; } PLAYERS INITIALS
TE_INIT3 .set 6 ; }
TE_RANK .set 7 ;RANK
*ENDSTRUCT
TE_SIZE .set 8
NUM_RACES .set 15
NUM_ENTRIES_PER_RACE .set 10
RACE_TABLE_SIZE .set NUM_ENTRIES_PER_RACE*TE_SIZE
*
*
*
CMOS_PAGE .set 0800h ;page size (2048b in length, 512 words)
HSTD_PAGE .set CMOS+(MAX_AUDITS*4)
H280_RTABLE .set HSTD_PAGE
SF_RTABLE .set HSTD_PAGE+(RACE_TABLE_SIZE)
RW_RTABLE .set HSTD_PAGE+(RACE_TABLE_SIZE*1)
BEVLA_RTABLE .set HSTD_PAGE+(RACE_TABLE_SIZE*2)
DVAZ_RTABLE .set HSTD_PAGE+(RACE_TABLE_SIZE*3)
GC_RTABLE .set HSTD_PAGE+(RACE_TABLE_SIZE*4)
IO_RTABLE .set HSTD_PAGE+(RACE_TABLE_SIZE*5)
CH_RTABLE .set HSTD_PAGE+(RACE_TABLE_SIZE*6)
AP_RTABLE .set HSTD_PAGE+(RACE_TABLE_SIZE*7)
DC_RTABLE .set HSTD_PAGE+(RACE_TABLE_SIZE*8)
*----------------------------------------------------------------------------