Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

BS-X BIOS/RAM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a RAM map for BS-X BIOS.

$7E0020-$7E0022 - 24-bit-address storage (for SPC stuff?)
$7E0088-$7E0089 - 16-bit Jump Address set at $80/9DDA, executed at $80/9E2F and $80/9F1F
$7E008F-$7E0091 - OR/NOR-Mask stuff used for data at $7E/7Exx at $80/9EB1
$7E009D-$7E009E - Number of values to do (X-coordinate) at $80/AF00
$7E009F-$7E00A0 - Number of rows to do (Y-coordinate) at $80/AF00
$7E0100         - Value to store in $2100 (FBLANK / Brightness)
$7E0101         - $2101 buffer - Object Size and Object Base
$7E0104         - $2105 buffer - BG Mode
$7E0105         - $2106 buffer - Mosaic
$7E0106         - $2107 buffer - BG1 Tilemap Address and Mirroring
$7E0107         - $2108 buffer - BG2 Tilemap Address and Mirroring
$7E0108         - $2109 buffer - BG3 Tilemap Address and Mirroring
$7E0109         - $210A buffer - BG4 Tilemap Address and Mirroring
$7E010A         - $210B buffer - BG1/2 Tileset Address
$7E010B         - $210C buffer - BG3/4 Tileset Address
$7E010C         - $211A buffer - Mode 7 Rotation/Scaling Mode Settings
$7E010D         - $2123 buffer - Window BG1/BG2 Mask Settings
$7E010E         - $2124 buffer - Window BG3/BG4 Mask Settings
$7E010F         - $210D buffer - BG1 H-Scroll Low Byte
$7E0110         - $210D buffer - BG1 H-Scroll High Byte
$7E0111         - $210E buffer - BG1 V-Scroll Low Byte
$7E0112         - $210E buffer - BG1 V-Scroll High Byte
$7E0113         - $210F buffer - BG2 H-Scroll Low Byte
$7E0114         - $210F buffer - BG2 H-Scroll High Byte
$7E0115         - $2110 buffer - BG2 V-Scroll Low Byte
$7E0116         - $2110 buffer - BG2 V-Scroll High Byte
$7E0117         - $2111 buffer - BG3 H-Scroll Low Byte
$7E0118         - $2111 buffer - BG3 H-Scroll High Byte
$7E0119         - $2112 buffer - BG3 V-Scroll Low Byte
$7E011A         - $2112 buffer - BG3 V-Scroll High Byte
$7E011B         - $2113 buffer - BG4 H-Scroll Low Byte
$7E011C         - $2113 buffer - BG4 H-Scroll High Byte
$7E011D         - $2114 buffer - BG4 V-Scroll Low Byte
$7E011E         - $2114 buffer - BG4 V-Scroll High Byte
$7E011F         - $2125 buffer - Window OBJ/MATH Mask Settings
$7E0120         - $2126 buffer - Window 1 Left Position (X1)
$7E0121         - $2127 buffer - Window 1 Right Position (X2)
$7E0122         - $2128 buffer - Window 2 Left Position (X1)
$7E0123         - $2129 buffer - Window 2 Right Position (X2)
$7E0124         - $212A buffer - Window 1/2 Mask Logic (BG1-BG4)
$7E0125         - $212B buffer - Window 1/2 Mask Logic (OBJ/MATH)
$7E0126         - $212C buffer - Main Screen Designation
$7E0127         - $212E buffer - Window Area Main Screen Disable
$7E0128         - $212D buffer - Sub Screen Designation
$7E0129         - $212F buffer - Window Area Sub Screen Disable
$7E012A         - $2130 buffer - Color Math Control Register A
$7E012B         - $2131 buffer - Color Math Control Register B
$7E012D         - $2132 buffer - Color Math Sub Screen Backdrop Color RED (without #$20)
$7E012E         - $2132 buffer - Color Math Sub Screen Backdrop Color GREEN (without #$40)
$7E012F         - $2132 buffer - Color Math Sub Screen Backdrop Color BLUE (without #$80)
$7E0130         - $2133 buffer - Display Control 2
$7E0135         - $4200 buffer - NMI/VIRQ/HIRQ/Auto Joypad
$7E013A         - $420C buffer - HDMA Flags
$7E014C-$7E014D - Used at Program Start $80/906A and when Screen Settings are changed at $94/BA1B
$7E014E-$7E014F - Used at Program Start $80/906A and when Screen Settings are changed at $94/BA1B
$7E0150-$7E0151 - Joypad 1 Input of this frame
$7E0152-$7E0153 - Joypad 2 Input of this frame
$7E0154-$7E0155 - Joypad 1 buttons pushed in this frame
$7E0156-$7E0157 - Joypad 2 buttons pushed in this frame
$7E015C-$7E015D - Joypad 1 Input of last frame
$7E0164-$7E0165 - Joypad 2 Input of last frame
$7E016C-$7E017B - VRAM DMA Pipeline at $80/8CDC - Type of DMA - 01 CGRAM ; 02 VRAM Write ; 03 VRAM Read
$7E017C-$7E018B - VRAM DMA Pipeline at $80/8CDC - Value for $2115/$2121
$7E018C-$7E019B - VRAM DMA Pipeline at $80/8CDC - Value for $2116
$7E019C-$7E01AB - VRAM DMA Pipeline at $80/8CDC - Value for $2117
$7E01AC-$7E01BB - VRAM DMA Pipeline at $80/8CDC - Value for $4312
$7E01BC-$7E01CB - VRAM DMA Pipeline at $80/8CDC - Value for $4313
$7E01CC-$7E01DB - VRAM DMA Pipeline at $80/8CDC - Value for $4314
$7E01DC-$7E01EB - VRAM DMA Pipeline at $80/8CDC - Value for $4315
$7E01EC-$7E01FB - VRAM DMA Pipeline at $80/8CDC - Value for $4316
$7E01FC-$7E020B - VRAM DMA Pipeline at $80/8CDC - Flag if Pipeline Slot is occupied?
$7E020E         - Mouse related, Seems to be: #$00 = No Mouse #$01 Mouse in Port 1, #$02 Mouse in Port 2
$7E0211         - Mouse Input, Port 1 - Low Byte
$7E0212         - Mouse Input, Port 2 - Low Byte
$7E0213         - Mouse Input, Port 1 - High Byte
$7E0214         - Mouse Input, Port 2 - High Byte
$7E021B         - Value stored in $2100 (FBLANK / Brightness)
$7E021C         - Flag to update CGRAM
$7E0224-$7E0225 - ? (Used at $80/8358; multiplication at $80/8363)
$7E0226         - ? (multiplication at $80/8363)
$7E0627-$7E0628 - (Frame Counter?)
$7E0629-$7E062A - (Frame Counter?) / 60^1 (Second Counter?)
$7E062B-$7E062C - (Frame Counter?) / 60^2 (Minute Counter?)
$7E062D-$7E062E - (Frame Counter?) / 60^3 (60 Hour Counter?)
$7E062F-$7E0631 - 24-bit-address of a subroutine that gets executed during NMI
$7E0633-$7E0635 - Contains a jump address at Program Start ($80/90D0)
$7E0637-$7E0639 - NMI JUMP ADDRESS BUFFER A: Buffer for $7E062F-31
$7E063A         - If MSB is set, the address in $7E0637-9 is not used
$7E063B-$7E063D - Some Address buffer, see $94/8459
$7E063F-$7E0640 - Used at Program Start $80/90B8
$7E0641-$7E0642 - Used at Program Start $80/90B8
$7E0643-$7E0644 - Flag: NMI Handler is active
$7E0645         - Index for Data in $$80/913A
$7E064A-$7E064C - 24-bit jump address, see $80/913A
$7E064D-$7E065F - Jump Address Buffer, see $80/913A - Slots contain 3 bytes address and a 4th byte flags
$7E065D-$7E065F - 24-bit Address (Set at $80/AA0C)
$7E0661-$7E0662 - ? (Used at $80/8F9D)
$7E0663-$7E0664 - ? (Used at $80/8FA3)
$7E0665-$7E0666 - Buffer for Direct Page (at Program Start)
$7E0667-$7E0668 - Frame Counter (for intro stuff) at $94/85ED
$7E0669-$7E066A - Frame Counter (for intro stuff) at $94/85ED
$7E066B-$7E066C - Frame Counter (for intro stuff) - A second one if a second one is needed
$7E066D-$7E066E - Frame Counter (for intro stuff)
$7E0671-$7E0673 - NMI JUMP ADDRESS BUFFER B: For an alternative 24-bit jump address for $637–9 (see $94/8572)
$7E0675         - Frame Counter for Screen Fade Out at $94/8534
$7E0677         - Frame Counter Compare Value for Screen Fade Out at $94/8534
$7E06CA-$7E06D9?- Sound related - Store Index for value in $7E/06EA
$7E06DA-$7E06E9?- Sound related - gets stored in $2140/$070E at $80/9835
$7E06EA-$7E06F9?- Sound related
$7E06FA-$7E0709?- Sound related - gets stored in $2143/$0711 at $80/97FF
$7E070A         - Sound related
$7E070B         - Sound related
$7E070C         - Sound related
$7E070D         - Sound related
$7E070E         - Sound related - value currently in $2140(?)
$7E070F         - Sound related - value currently in $2141(?)
$7E0710         - Sound related - value currently in $2142(?)
$7E0711         - Sound related - value currently in $2143(?)
$7E0718         - Sound related - flag? see $80/97D5 / $80/97F1
$7E0719         - Sound related
$7E071C-$7E071E - Value (16-bit Jump Address?) for $88/9 at $80/9AF0 - 24-bit address at $80/A709
$7E0721-$7E0722 - Jump Table Pointer (of sorts) at $80/9DDA - and at $80/A605 (Textbox related)
$7E0723-$7E0724 - Jump Table Pointer (of sorts) at $80/9DDA
$7E0727-$7E0728 - Textbox - VRAM Address for a DMA to transfer the Textbox Tiles
$7E0729-$7E072A - Textbox - VRAM Address for a DMA to transfer the Textbox Tiles
$7E072B-$7E072C - Textbox - Position in Row (X-Coordinate)
$7E072D-$7E072E - Textbox - Position in Column (Y-Coordinate)
$7E072F-$7E0730 - Textbox - Value to store as tile
$7E0735-$7E0736 - ? (Used at $80/A605 and $80/A217) - textbox related
$7E0737-$7E0738 - ? (Used at $80/A605 and $80/A217 ; compare value for $0735/6) - textbox related
$7E073D-$7E073E - ? (Used at $80/AA0C)
$7E0742-$7E0743 - Flag for a VRAM DMA to transfer the Textbox Tiles (at $80/9C4E)
$7E0744-$7E0745 - Textbox related, see $80/A669
$7E0A13-$7E0A14 - Used at Program Start $80/906A
$7E0B92-$7E0B93 - ? (Used at $80/AA0C)
$7E0B94-$7E0B95 - ? (Used at $80/AA0C)
$7E0B9A-$7E0B9B - ? (Used at $80/AA0C)
$7E0BA4-$7E0BA5 - Rectangle X-coordinate startpoint at $81/8797
$7E0BA6-$7E0BA7 - Rectangle Y-coordinate startpoint at $81/8797
$7E0BAA-$7E0BAB - ? (used at $81/88BA) - Number of the Color to begin at $81/8688
$7E0BAC-$7E0BAD - ? (used at $81/88BA) - Number of Colors to do at $81/8688
$7E0BAE-$7E0BAF - ? (used at $81/88BA)
$7E0BB0-$7E0BB1 - ? (used at $81/88BA)
$7E0BB4-$7E0BB5 - VRAM Address - Data from $7E/8C15 
$7E0BB6         - Flag for VRAM DMA during NMI, see $80/AC5E
$7E0BB8-$7E0BB9 - ? (used at $81/88BA)
$7E0C1B-$7E0C1C - Flag at $80/B68D and $80/B6B4
$7E0C27-$7E0C29 - ? (used at $80/A9A4) - VRAM DMA Source address at $80/B381
$7E0C2A-$7E0C2C - VRAM DMA Source address at $80/B381
$7E0C2D-$7E0C2F - Source address for Palette 0 at $80/B93D
$7E0C30-$7E0C31 - ? (used at $80/B47D) textbox related?
$7E0C32-$7E0C3D?- Textbox X-Coordinate related (see $80/B341 and $80/B51B)
$7E0C3E-$7E0C49?- Textbox Y-Coordinate related (see $80/B51B)
$7E0C4A-$7E0C?? - Textbox-related (see $80/B569)
$7E0C56-$7E0C?? - Textbox-related (see $80/B569)
$7E0C62-$7E0C6D?- Textbox X-Coordinate related (see $80/B341)
$7E0C6E-$7E0C79?- Textbox Y-Coordinate related (used at $80/A9C0)
$7E0C7A-$7E0C?? - Textbox-related (see $80/B569)
$7E0C86-$7E0C?? - ? (used at $80/A9A4) (Table for $0723)
$7E0C9E-$7E0C?? - Textbox-related (see $80/B569 and $80/A9C0)
$7E0CAA-$7E0C?? - Textbox related? (used at $80/A9C0)
$7E0CB6-$7E0CB7 - Animation-Step related - "Token Vector No-Repition flag". If set, only one Token gets executed at $81/C43B /// Load
$7E0CB8-$7E0CB9 - See $81/C29A - If MSB of $0CB9 is set, no Token Slot Data gets executed (see $81/C367)
$7E0CBA-$7E0CBB - Token Data Execution related - set to #$02 at $81/C43B
$7E0CBC-$7E0CBD - ? (used at $81/C39F) Compare value
$7E0CBE-$7E0CBF - ? (used at $81/C39F) Compare value
$7E0CC0-$7E0CC1 - ? (used at $81/C39F) Frame(?) counter?
$7E0CC2-$7E0CC3 - Related to $7E1650, see $81/C520
$7E0CD2-$7E0CD3 - Related to $7E1650, see $81/C520
$7E0CD4-$7E0CD5 - Related to $7E1650, see $81/C520
$7E0CEC         - Token Vector table Index (loaded at $81/C3FB)
$7E0D18-$7E0D19 - See $81/C4DD
$7E0D1A-$7E0D41 - ANIMATION STEP - Ominous $26 Unit - BANK of Animation Step Data(?) see $81/C520
$7E0D6A-$7E0D91 - ANIMATION STEP - Ominous $26 Unit - Address of Animation Step Data(?) see $81/C520
$7E0E82-$7E0E83 - ? (used at $81/C149)
$7E1152-$7E1178?- (Ominous $26 Unit?) --- See $81/C43B
$7E117A-$7E11A1?- 16-bit flag register, only bit 0 is used. If it is set, this Token Vector is not executed.
$7E11CA-$7E11F1?- 16-bit address register, used at $81/BA53
$7E121A-$7E1241 - Ominous $26 Unit - see $81/BA2A
$7E1242-$7E1269 - Ominous $26 Unit - see $81/BA2A
$7E127E-$7E127F - Sprite Palette related at $81/C80E and $81/CA9C
$7E127E-$7E127F - Sprite Palette related at $81/C80E and $81/CA9C
$7E1280-$7E1281 - Sprite Palette related at $81/C80E and $81/CA9C
$7E1282-$7E1283 - Sprite Palette related at $81/CA9C
$7E1284-$7E12A5 - Mysterious $20 Unit - see $81/C80E (Sprite Palette related at $81/CA9C)
$7E12A8-$7E12CF - Suspicious $28/$26 Unit - see $81/C80E
$7E12D0-$7E12F7 - Suspicious $28/$26 Unit - see $81/C80E
$7E12F8-$7E1321 - Suspicious $28/$26 Unit - see $81/C80E
$7E1322-$7E1349 - Suspicious $28/$26 Unit - see $81/C80E
$7E134A-$7E1371 - Suspicious $28/$26 Unit - see $81/C80E
$7E1372-$7E139A - Suspicious $28/$26 Unit - see $81/C80E
$7E13D1         - Some Download(!?!) related flag?
$7E13DF         - Some Flag at $F231
$7E143F         - Error Counter at Program Start Up?
$7E1440         - FLASHCART related - (See $80/C177)
$7E1441         - FLASHCART related - (See $80/C177) Index for Jump Table at $80/BD79, gets executed at $80/BD6C
$7E1628-$7E164F?- ? (used at $81/C49A - Animation related?)
$7E1650-$7E1677 - ANIMATION STEP - Addition/subrtraction value for X/Y-Coordinate
$7E1678-$7E169F?- ? (used at $81/C49A - Animation related?)
$7E16A0-$7E16C7?- ? (used at $81/C49A - Animation related?)
$7E16C8-$7E16EF?- ? (used at $81/C49A - Animation related?)
$7E16F0-$7E17?? - ? (used at $81/C49A - Animation related?)
$7E1790-$7E17B7 - Ominous $26 Unit - see $81/BA2A
$7E17B8-$7E17?? - Address part of a 24-bit address that points to a Token Vector Index; see $81/C3FB
$7E17E0-$7E1807 - Bank of a 24-bit address that points to a Token Vector Index; see $81/C3FB --- SLOT EMPTY IF = #$00
$7E1808-$7E182F - (Ominous $26 Unit?) --- ADDRESS for 24-bit address for Token Data at $81/C43B
$7E1830-$7E1857 - Ominous $26 Unit - see $81/BA2A --- BANK for 24-bit address for Token Data at $81/C43B --- SLOT NOT EXECUTED IF = #$00
$7E1858-$7E187F - =#$00 Token Handler (set in 17B8/E0) gets executed several times / !=#$00 executed once
$7E1880-$7E18?? - (Ominous $26 Unit?) --- No-Repition flag (§0CB6) storage at $81/C43B
$7E1920-$7E19?? - ? (used at $81/B779)
$7E1998-$7E1999 - ? (used at $81/A183 and $81/A1AB)
$7E19A4-$7E19A5 - Added to loaded Data Byte at $81/C00D - Often used in Token Handlers
$7E1C00-$7E1E1F - OAM buffer
$7E1E20         - Number of used sprites (gets incremented by 4 for every used sprite)
$7E1E21         - Jump Table Index at $80/8A14
$7E1E22-$7E1EFF - Stack
$7E2000-$7E21FF - CGRAM buffer
$7E7600-$7E7DFF - Textbox Text Tiles Buffer
$7E7E00-$7E???? - ?
$7E8200-$7E???? - ?
$7E8715-$7E8716 - Used at Program Start $80/906A
$7E8C15-$7E9414 - Buffer for VRAM data, see $80/AC5E
$7E99D9         - FLASHCART related - (value for $1441; see $80/C177)
$7FC000-$7F???? - ? (used at $81/C968)