WonderWitch: Difference between revisions
From WSdev Wiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 5: | Line 5: | ||
The WonderWitch cartridge is based on the [[Bandai 2003]] mapper. It provides an RTC, as well as NOR self-flashing functionality using the Fujitsu MBM29DL400TC chip. | The WonderWitch cartridge is based on the [[Bandai 2003]] mapper. It provides an RTC, as well as NOR self-flashing functionality using the Fujitsu MBM29DL400TC chip. | ||
There were three | There were three means of acquiring WonderWitch cartridges: | ||
* '''WonderWitch''', a software development kit containing a reflashable cartridge, a WonderSwan<->RS-232 adapter, a development manual and a development tool CD; | * '''WonderWitch''', a software development kit containing a reflashable cartridge, a WonderSwan<->RS-232 adapter, a development manual and a development tool CD; | ||
Line 13: | Line 13: | ||
== Software == | == Software == | ||
=== | The WonderWitch provides an abstraction layer and helper libraries, split into two modules: | ||
* [[WonderWitch/FreyaBIOS|FreyaBIOS]] - providing a hardware abstraction layer and some utility functions, | |||
* [[WonderWitch/FreyaOS|FreyaOS]] - providing helper libraries and higher-level concepts, such as processes and files. | |||
== Memory map == | |||
=== Internal RAM (0x00000 - 0x0FFFF) === | |||
{| class="wikitable" | {| class="wikitable" | ||
! | ! From | ||
! | ! To | ||
! Description | ! Description | ||
|- | |- | ||
| 0x00 | | 0x00000 | ||
| | | 0x00??? | ||
| | | Interrupt vectors | ||
|- | |||
| 0x00??? | |||
| 0x00??? | |||
| ??? | |||
|- | |- | ||
| | | 0x00E00 | ||
| | | 0x03FFF | ||
| | | Space used by user programs (sprite, screen, tile data) | ||
|- | |- | ||
| | | 0x04000 | ||
| | | 0x0BFFF | ||
| | | Space used by user programs (color tile data) | ||
|- | |- | ||
| | | 0x0C000 | ||
| | | 0x0FDFF | ||
| | | ??? | ||
|- | |- | ||
| | | 0x0FE00 | ||
| | | 0x0FFFF | ||
| | | Space used by user programs (color palette data) | ||
|- | |- | ||
|} | |} | ||
=== | === Cartridge SRAM (0x10000 - 0x1FFFF) === | ||
=== Cartridge flash (0x80000 - 0xFFFFF) === | |||
The 512KB of NOR flash memory is mapped and partitioned as follows: | The 512KB of NOR flash memory is mapped and partitioned as follows: | ||
Line 75: | Line 85: | ||
| 64 KB | | 64 KB | ||
| [[WonderWitch/FreyaBIOS|FreyaBIOS]] | | [[WonderWitch/FreyaBIOS|FreyaBIOS]] | ||
|} | |||
=== Interrupt vectors === | |||
{| class="wikitable" | |||
! Start | |||
! End | |||
! Description | |||
|- | |||
| 0x00 | |||
| 0x07 | |||
| CPU interrupts | |||
|- | |||
| 0x08 | |||
| 0x0F | |||
| | |||
|- | |||
| 0x10 | |||
| 0x18 | |||
| [[WonderWitch/FreyaBIOS|FreyaBIOS]] interrupts | |||
|} | |} | ||
Internal console RAM is generally managed by [[WonderWitch/FreyaBIOS|FreyaBIOS]], while SRAM is managed by [[WonderWitch/FreyaOS|FreyaOS]]. | Internal console RAM is generally managed by [[WonderWitch/FreyaBIOS|FreyaBIOS]], while SRAM is managed by [[WonderWitch/FreyaOS|FreyaOS]]. | ||
== Development | == Development tools == | ||
TODO | TODO |
Revision as of 20:05, 23 July 2024
The WonderWitch is an official homebrew development kit released by Qute Corporation on July 18th, 2000.
Hardware
The WonderWitch cartridge is based on the Bandai 2003 mapper. It provides an RTC, as well as NOR self-flashing functionality using the Fujitsu MBM29DL400TC chip.
There were three means of acquiring WonderWitch cartridges:
- WonderWitch, a software development kit containing a reflashable cartridge, a WonderSwan<->RS-232 adapter, a development manual and a development tool CD;
- WonderWitch Player, a priced-down user-only version omitting the development manual and tooling;
- The VAR program, allowing independent creators to buy reflashable cartridges in bulk, in units of 20 or 100.
Software
The WonderWitch provides an abstraction layer and helper libraries, split into two modules:
- FreyaBIOS - providing a hardware abstraction layer and some utility functions,
- FreyaOS - providing helper libraries and higher-level concepts, such as processes and files.
Memory map
Internal RAM (0x00000 - 0x0FFFF)
From | To | Description |
---|---|---|
0x00000 | 0x00??? | Interrupt vectors |
0x00??? | 0x00??? | ??? |
0x00E00 | 0x03FFF | Space used by user programs (sprite, screen, tile data) |
0x04000 | 0x0BFFF | Space used by user programs (color tile data) |
0x0C000 | 0x0FDFF | ??? |
0x0FE00 | 0x0FFFF | Space used by user programs (color palette data) |
Cartridge SRAM (0x10000 - 0x1FFFF)
Cartridge flash (0x80000 - 0xFFFFF)
The 512KB of NOR flash memory is mapped and partitioned as follows:
Linear address | Size | Description |
---|---|---|
0x8nnnn | 384 KB | File system |
0x9nnnn | ||
0xAnnnn | ||
0xBnnnn | ||
0xCnnnn | ||
0xDnnnn | ||
0xEnnnn | 64 KB | FreyaOS |
0xFnnnn | 64 KB | FreyaBIOS |
Interrupt vectors
Start | End | Description |
---|---|---|
0x00 | 0x07 | CPU interrupts |
0x08 | 0x0F | |
0x10 | 0x18 | FreyaBIOS interrupts |
Internal console RAM is generally managed by FreyaBIOS, while SRAM is managed by FreyaOS.
Development tools
TODO