1
0
mirror of https://github.com/hsoft/collapseos.git synced 2024-11-27 16:28:06 +11:00
collapseos/recipes/sms
Virgil Dupras 7cf3ed38da Extract str.asm from core.asm and make core included by userspace
Most of register fiddling routines (which is now the only thing contained
in care.asm) are used by almost all userspace apps, often in inner loops.

That makes the penalty of using jump tables for those a bit too high.
Moreover, it burdens jump tables needlessly.

Because this unit is very small (now that string routines are out), it makes
sense to always include it in binaries.
2019-11-14 10:14:15 -05:00
..
kbd Extract str.asm from core.asm and make core included by userspace 2019-11-14 10:14:15 -05:00
romasm Extract str.asm from core.asm and make core included by userspace 2019-11-14 10:14:15 -05:00
.gitignore recipes/sms: New section for Sega Master System 2019-07-01 11:05:25 -04:00
glue.asm Extract str.asm from core.asm and make core included by userspace 2019-11-14 10:14:15 -05:00
Makefile recipes/sms: New section for Sega Master System 2019-07-01 11:05:25 -04:00
README.md recipes/sms/romasm: ed and zasm, fully functional! 2019-07-25 14:24:18 -04:00

Sega Master System

The Sega Master System was a popular gaming console running on z80. It has a simple, solid design and, most interestingly of all, its even more popular successor, the Megadrive (Genesis) had a z80 system for compatibility!

This makes this platform very scavenge-friendly and worth working on.

SMS Power is an awesome technical resource to develop for this platform and this is where most of my information comes from.

This platform is tight on RAM. It has 8k of it. However, if you have extra RAM, you can put it on your cartridge.

This recipe is for installing a minimal Collapse OS system on the SMS. There are other recipes related to the SMS:

Gathering parts

  • zasm
  • A Sega Master System or a MegaDrive (Genesis). (I have only tested on a MegaDrive so far)
  • A Megadrive D-pad controller.
  • A way to get an arbitrary ROM to run on the SMS. Either through a writable ROM card or an Everdrive.

Build the ROM

Running make will produce a os.sms ROM that can be put as is on a SD card to the everdrive or flashed as is on a writable ROM cart. Then, just run the thing!

Usage

On boot, you will get a regular Collapse OS shell. See the rest of the documentation for shell usage instructions.

The particularity here is that, unlike with the RC2014, we don't access Collapse OS through a serial link. Our input is a D-Pad and our output is a TV. The screen is 32x28 characters. A bit tight, but usable.

D-Pad is used as follow:

  • There's always an active cursor. On boot, it shows "a".
  • Up/Down increase/decrease the value of the cursor.
  • Left/Right does the same, by increments of 5.
  • A button is backspace.
  • B button skips cursor to next "class" (number, lowcase, upcase, symbols).
  • C button "enters" cursor character and advance the cursor by one.
  • Start button is like pressing Return.

Of course, that's not a fun way to enter text, but using the D-Pad is the easiest way to get started which doesn't require soldering. Your next step after that would be to build a PS/2 keyboard adapter!