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 ways available to acquire WonderWitch cartridges:
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 ==


=== Interrupt vectors ===
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"
! Start
! From
! End
! To
! Description
! Description
|-
|-
| 0x00
| 0x00000
| 0x07
| 0x00???
| CPU interrupts
| Interrupt vectors
|-
| 0x00???
| 0x00???
| ???
|-
|-
| 0x08
| 0x00E00
| 0x0F
| 0x03FFF
|
| Space used by user programs (sprite, screen, tile data)
|-
|-
| 0x10
| 0x04000
| 0x18
| 0x0BFFF
| [[WonderWitch/FreyaBIOS|FreyaBIOS]] interrupts
| Space used by user programs (color tile data)
|-
|-
| 0x19
| 0x0C000
| 0x27
| 0x0FDFF
|
| ???
|-
|-
| 0x28
| 0x0FE00
| 0x2F
| 0x0FFFF
| SoC interrupts
| Space used by user programs (color palette data)
|-
|-
| 0x30
| 0x32
| [[WonderWitch/FreyaOS|FreyaOS]] interrupts
|}
|}


=== Memory layout ===
=== 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 Tools ==
== 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

Links