Backup RAM: Difference between revisions
Jump to navigation
Jump to search
m (→Data structure) |
mNo edit summary |
||
(9 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
The backup RAM is a battery-powered 64KiB RAM space used by [[MVS | The backup RAM is a [[battery-backed_RAM|battery-powered]] 64KiB RAM space used by the [[MVS]] to store game scores, cab infos and income logs. Access can be handled by [[BIOS calls]]. | ||
[[68k memory map|Memory region]]: $D00000~$D0FFFF (Mirrored up to $DFFFFF ?). | [[68k memory map|Memory region]]: $D00000~$D0FFFF (Mirrored up to $DFFFFF ?). | ||
Line 5: | Line 5: | ||
== Data structure == | == Data structure == | ||
All offset are taken from the sp-s2.bin | All offset are taken from the sp-s2.bin system ROM. | ||
{| class="regdef" | {| class="regdef" | ||
Line 30: | Line 30: | ||
|2 | |2 | ||
| | | | ||
|Coin deposit related (rising edge finding | |Coin deposit related (rising edge finding), old and new value of REG_STATUS_A | ||
|- | |- | ||
| | |$D00022 | ||
| | |$D00023 | ||
|2 | |||
| | | | ||
|Temp value for the coin deposit rising edge finding | |||
|- | |||
|$D00024 | |||
|$D00025 | |||
|2 | |||
| | | | ||
| | |Internal coin counter (not credit) | ||
|- | |- | ||
|'''$ | |'''$D00026''' | ||
|'''$ | |'''$D0002F''' | ||
| | | | ||
| | | | ||
| | |? | ||
|- | |- | ||
|$D00034 | |$D00034 | ||
Line 48: | Line 54: | ||
|2 | |2 | ||
|$00 | |$00 | ||
|"Internal" credit counters for player 1 and player 2 (BCD) | |"Internal" credit counters for player 1 and player 2 (BCD) | ||
|- | |- | ||
|'''$D00036''' | |'''$D00036''' | ||
Line 66: | Line 72: | ||
;$D0003D: Credits added to player 2 (initialized to $02) | ;$D0003D: Credits added to player 2 (initialized to $02) | ||
;$D00042: Game select (1=Free, 0=Only when credited) (initialized to 0) | ;$D00042: Game select (1=Free, 0=Only when credited) (initialized to 0) | ||
;$D00044: Game start compulsion (max time in seconds in BCD between inserting a coin and starting the game) (initialized to $30) | ;$D00043: Game start compulsion (0 = enabled, 1 = disabled) | ||
;$D00044: Game start compulsion time (max time in seconds in BCD between inserting a coin and starting the game) (initialized to $30) | |||
;$D00046: Demo sound (1=Without) (initialized to 0) | ;$D00046: Demo sound (1=Without) (initialized to 0) | ||
|- | |- | ||
Line 73: | Line 80: | ||
|1 | |1 | ||
|SOUND_STOP | |SOUND_STOP | ||
|No sound at all if non-zero | |No sound at all if non-zero (except coinage sound effect) | ||
|- | |- | ||
|$D00047 | |$D00047 | ||
Line 81: | Line 88: | ||
|Number of detected slots (2 for slot1) | |Number of detected slots (2 for slot1) | ||
|- | |- | ||
|'''$ | |$D00048 | ||
|$D0004B | |||
|4 | |||
|PLAY TIME | |||
|Counter of second played on the game in hex. | |||
Reset to 0 by [[SYSTEM_RETURN]]. | |||
|- | |||
|$D0004C | |||
|$D0004C | |||
|1 | |||
|PLAY_TIME_FRAME_TIMER | |||
|Frame timer, start at $3C, decremented each frame. When the counter reach $00, PLAY_TIME is incremented and the counter is reseted to $3C | |||
|- | |||
|'''$D0004D''' | |||
|'''$D00057''' | |'''$D00057''' | ||
| | | | ||
Line 91: | Line 112: | ||
|1 | |1 | ||
| | | | ||
|First slot number with a boot logo flag to 0 (playable by the | |First slot number with a boot logo flag to 0 (playable by the system ROM) | ||
|- | |- | ||
|$D0005A | |$D0005A | ||
Line 379: | Line 400: | ||
| | | | ||
|bram block 8 data | |bram block 8 data | ||
|- | |||
|$D09BA0 | |||
|$D09DE0 | |||
|$240 | |||
|YYMMDDdd - COIN1 - COIN2 - SERVICE | |||
|Bookkeeping - Current month coin | |||
Each entry is $10 byte long | |||
|- | |||
|$D09DE0 | |||
|$D0A01F | |||
|$240 | |||
|YYMMDDdd - PLAY - CONTINUE - TIME | |||
|Bookkeeping - Current month play | |||
Each entry is $10 byte long | |||
|- | |||
|$D0A020 | |||
|$D0A0DF | |||
|$C0 | |||
|00000000 - COIN1 - COIN2 - SERVICE | |||
|Bookkeeping - Year coin | |||
|- | |||
|$D0A0E0 | |||
|$D0A19F | |||
|$C0 | |||
|00000000 - PLAY - CONTINUE - TIME | |||
|Bookkeeping - Year play | |||
|} | |} | ||
[[Category:Cartridge systems]] | [[Category:Cartridge systems]] |
Latest revision as of 02:38, 21 October 2017
The backup RAM is a battery-powered 64KiB RAM space used by the MVS to store game scores, cab infos and income logs. Access can be handled by BIOS calls.
Memory region: $D00000~$D0FFFF (Mirrored up to $DFFFFF ?).
Data structure
All offset are taken from the sp-s2.bin system ROM.
Start | End | Size | Data | Description |
$D00000 | $D0000F | 16 | $00 | Unused, fill with $00 |
$D00010 | $D0001F | 16 | "BACKUP RAM OK!Ç" | The routine at $C125C8 will check if this string is present, if not it will test the ram (using the test_ram routine at $C13134) and re-init the backupram |
$D00020 | $D00021 | 2 | Coin deposit related (rising edge finding), old and new value of REG_STATUS_A | |
$D00022 | $D00023 | 2 | Temp value for the coin deposit rising edge finding | |
$D00024 | $D00025 | 2 | Internal coin counter (not credit) | |
$D00026 | $D0002F | ? | ||
$D00034 | $D00035 | 2 | $00 | "Internal" credit counters for player 1 and player 2 (BCD) |
$D00036 | $D00039 | ? | ||
$D0003A | $D00045 | 12 | Cab settings.
| |
$D00046 | $D00046 | 1 | SOUND_STOP | No sound at all if non-zero (except coinage sound effect) |
$D00047 | $D00047 | 1 | SLOT NUMBER | Number of detected slots (2 for slot1) |
$D00048 | $D0004B | 4 | PLAY TIME | Counter of second played on the game in hex.
Reset to 0 by SYSTEM_RETURN. |
$D0004C | $D0004C | 1 | PLAY_TIME_FRAME_TIMER | Frame timer, start at $3C, decremented each frame. When the counter reach $00, PLAY_TIME is incremented and the counter is reseted to $3C |
$D0004D | $D00057 | ? | ||
$D00058 | $D00058 | 1 | First slot number with a boot logo flag to 0 (playable by the system ROM) | |
$D0005A | $D0005D | 4 | HHMMSSFF | Timer based on frames.
|
$D0005E | $D00103 | ? | ||
$D00104 | $D00107 | 4 | YYMMDDdd | Current date |
$D00108 | $D00108 | 1 | Selected slot number (start at 0) | Output directly to the EL panels |
$D00109 | $D00109 | 1 | EL_PANEL | State of the EL-PANEL ??? |
$D0010A | $D0010D | 4 | Detailed game start book address | |
$D0010E | $D00111 | 4 | Total game start book address | |
$D00112 | $D00115 | 4 | Detailed cabinet coin book address (sub 0x240 for the start book one) | |
$D00116 | $D00119 | 4 | Current month cabinet coin book address (sub 0xC for the start book one) | |
$D0011A | $D00121 | ? | ||
$D00122 | $D00123 | 2 | $23 | The init_backupram routine write $23 there, purpose unknown. |
$D00124 | $D00127 | 4 | Slot-1 NGH number and bram game block ID (see below) | If not present $0000 as NGH and $FFFF as game name ID |
$D00128 | $D0012B | 4 | Slot-2 NGH number and bram game block ID (see below) | If not present $0000 as NGH and $FFFF as game name ID.
On a slot1 always unset (slot1 are slot2 with the second one empty) |
$D0012C | $D0012F | 4 | Slot-3 NGH number and bram game block ID (see below) | If not present $0000 as NGH and $FFFF as game name ID |
$D00130 | $D00133 | 4 | Slot-4 NGH number and bram game block ID (see below) | If not present $0000 as NGH and $FFFF as game name ID |
$D00134 | $D00137 | 4 | Slot-5 NGH number and bram game block ID (see below) | If not present $0000 as NGH and $FFFF as game name ID |
$D00138 | $D0013B | 4 | Slot-6 NGH number and bram game block ID (see below) | If not present $0000 as NGH and $FFFF as game name ID |
$D0013C | $D0013F | 4 | Slot-7 NGH number and bram game block ID (see below) | If not present $0000 as NGH and $FFFF as game name ID |
$D00140 | $D00143 | 4 | Slot-8 NGH number and bram game block ID (see below) | If not present $0000 as NGH and $FFFF as game name ID |
$D00144 | $D00147 | 4 | YYMMDDdd | Slot-1 book creation time YEAR-MONTH-DAY-day number |
$D00148 | $D0014B | 4 | YYMMDDdd | Slot-2 book creation time YEAR-MONTH-DAY-day number |
$D0014C | $D0014F | $4 | YYMMDDdd | Slot-3 book creation time YEAR-MONTH-DAY-day number |
$D00150 | $D00153 | 4 | YYMMDDdd | Slot-4 book creation time YEAR-MONTH-DAY-day number |
$D00154 | $D00157 | 4 | YYMMDDdd | Slot-5 book creation time YEAR-MONTH-DAY-day number |
$D00158 | $D0015B | 4 | YYMMDDdd | Slot-6 book creation time YEAR-MONTH-DAY-day number |
$D0015C | $D0015F | 4 | YYMMDDdd | Slot-7 book creation time YEAR-MONTH-DAY-day number |
$D00160 | $D00163 | 4 | YYMMDDdd | Slot-8 book creation time YEAR-MONTH-DAY-day number |
$D00164 | $D001A3 | ? | ||
$D001A4 | $D001A7 | 4 | Current month game start book | |
$D001A8 | $D0021F | ? | ||
$D00220 | $D0029F | 16*8 | Games soft DIPs settings (in which order ?) | |
$D002A0 | $D002AF | 16 | bram block 0 game name | |
$D002B0 | $D002BF | 16 | bram block 1 game name | |
$D002C0 | $D002CF | 16 | bram block 2 game name | |
$D002D0 | $D002DF | 16 | bram block 3 game name | |
$D002E0 | $D002EF | 16 | bram block 4 game name | |
$D002F0 | $D002FF | 16 | bram block 5 game name | |
$D00300 | $D0030F | 16 | bram block 6 game name | |
$D00310 | $D0031F | 16 | bram block 7 game name | |
$D00320 | $D0131F | $1000 | bram block 1 data | |
$D01320 | $D0231F | $1000 | bram block 2 data | |
$D02320 | $D0331F | $1000 | bram block 3 data | |
$D03320 | $D0431F | $1000 | bram block 4 data | |
$D04320 | $D0531F | $1000 | bram block 5 data | |
$D05320 | $D0631F | $1000 | bram block 6 data | |
$D06320 | $D0731F | $1000 | bram block 7 data | |
$D07320 | $D0831F | $1000 | bram block 8 data | |
$D09BA0 | $D09DE0 | $240 | YYMMDDdd - COIN1 - COIN2 - SERVICE | Bookkeeping - Current month coin
Each entry is $10 byte long |
$D09DE0 | $D0A01F | $240 | YYMMDDdd - PLAY - CONTINUE - TIME | Bookkeeping - Current month play
Each entry is $10 byte long |
$D0A020 | $D0A0DF | $C0 | 00000000 - COIN1 - COIN2 - SERVICE | Bookkeeping - Year coin |
$D0A0E0 | $D0A19F | $C0 | 00000000 - PLAY - CONTINUE - TIME | Bookkeeping - Year play |