This board is designed to run the EmuTOS operating system. EmuTOS is an open-source variant of the Atari ST TOS operating system.
BITSY Mark I is part of system containing this board, a XOSERA_RCBUS board for VGA output, a KEMOJO board for PS/2 keyboard and mouse input, and an RCBus backplane board such as an SC147. Together, this system can run full GUI EmuTOS with 640x240 graphics in 16 colors.
This SBC can also be used by itself, in EmuTOS command-line mode, using the on-board UART for serial input and output at 57600 baud.
But please do note that it is early days for this system, so there are undiscovered bugs looming. In particular, you may see occasional graphical artifacts in EmuTOS as the driver is debugged.
![]() |
|---|
| Full BITSY system running Teradesk with color icons on EmuTOS. Free memory shows 16 MB SRAM SIMM in use. |
This four layer, 102mm x 102mm board was created using Kicad version 8.0. The KiCad files are available in this repository.
The image below shows the top level schematic page. Click on it to download the full eight page schematic in PDF format.
| Reference | Description |
|---|---|
| J1 | Barrel jack connection for a 2A, 5V, 2mm power supply. |
| J2 | Six pin male header for connection to a USB-to-serial adapters. Uses the FTDI Friend pinout. |
| J3 | Five pin male header for connection to a DS3231 Real Time Clock module. |
| J5 | 40-pin connection to an RCBus 40-pin or 80-pin backplane. |
| Refence | Picture | Description | Comment |
|---|---|---|---|
| JP1 | Connects RCBus /INT (pin 22) to 68K interrupt level 4 (1-2) or level 2 (2-3) | When using BITSY Mark I with the XOSERA_RCBUS board, jumper pins 1-2 to use 68K /INT4. | |
| JP2 | When closed, connects RCBus USER1/INT1 (pin 37) to MFP GPIO4. When open, RCBus pin 37 is unconnected. | Close this jumper when using the KEMOJO board for PS/2 keyboard, PS/2 mouse and joystick support. |
Memory for this board is hosted on a custom 72-pin "SRAM SIMM" board. Though SIMMs are conventionally associated with DRAMs, these custom modules present a static RAM (SRAM) interface to the motherboard. Thus they have a demultiplexed address bus and use SRAM control signals such as chip enable, output enable and write enables.
Warning
BITSY_MK_I is completely incompatible with conventional DRAM SIMMs.
The 1 MB through hole version is a good choice to start with, as it is inexpensive and easy to solder. Gerbers for the boards are available in this repository. So if you are ordering a BITSY board from a PCB maker, also order one of these memory modules.
If you end up using the system regularly, I'd suggest upgrading to a 16 MB "SRAM SIMM" I have created. If interested, please contact me about purchasing a 16 MB module, which run about USD $36 each. Alternatively, you can have JLCPCB assemble them yourself using the design files in this repository.
Text file parts list for pasting into the Mouser BOM tool (login required).
To obtain a BITSY Mark I PCB, download these Gerbers for use at your preferred PCB manufacturer. I use JLCPCB.
| Component Type | Reference | Qty | Description | Part |
|---|---|---|---|---|
| CF Adapter | none | 1 | Compact Flash Male IDE 44pin adapter | eBay or Amazon: search for "Compact Flash Male IDE 44pin adapter" |
| RTC | none | 1 | (optional) DS3231 I2C Real Time Clock module | Amazon: search for "DS3231 rtc module". Get a black one with 5-pin female connector and yellow battery. |
| Capacitor | C1-C4,C7-C12,C14,C15 | 12 | 0.1 uF, MLCC, 5 mm Pitch | Mouser 594-K104K15X7RF5TH5 |
| Capacitor | C92,C93 | 2 | Electrolytic Capacitor, Radial, 6.3V 470uF, 6.3D, 2.5P | Mouser 80-ESK477M6R3AE3AA |
| Capacitor | C94 | 1 | MLCC, Leaded 100pF 50V 5% C0G 5mm | Mouser 594-K101J15C0GF5TH5 |
| Capacitor | C97,C98 | 2 | Electrolytic Capacitor, Radial, 16V, 100uF, 5D, 2.5P | Mouser 667-ECA-1CM101I |
| Capacitor | CON1 | 1 | Audio Jack, 3 Poles, Switched TR Poles | Mouser 490-SJ1-3535NG |
| Diode | D1 | 1 | Green LED, through hole, 5 mm pitch | Mouser 859-LTL-307GLC |
| Jumper | J1 | 1 | DC Barrel Jack | Mouser 490-PJ-002A |
| Jumper | J2 | 1 | 1x6 right angle pin header | Mouser 737-PH1RB-06-UA |
| Jumper | J3 | 1 | 1x5 right angle pin header | Mouser 737-PH1RB-05-UA |
| Jumper | J5 | 1 | 1x40 right angle pin header | Mouser 710-61304011021 |
| Jumper | JP1 | 1 | 1x3 straight pin header | Mouser 200-TSW10307TS |
| Jumper | JP2 | 1 | 1x2 straight pin header | Mouser 200-TSW10207TS |
| Transistor | Q1 | 1 | 2N7000 MOSFET in TO92 | Mouser 512-2N7000 |
| Resistor | R2 | 1 | 470 ohm, axial, 1% tolerance, 1/4 W | Mouser 603-MFR-25FTE52-470R |
| Resistor | R3 | 1 | 10K ohm, axial, 1% tolerance, 1/4 W | Mouser 603-MFR-25FTE52-10K |
| Resistor | R84,R85 | 2 | 1K ohm, axial, 1% tolerance, 1/4 W | Mouser 603-MFR-25FTE52-1K |
| Resistor | R86,R87 | 2 | 1600 ohm, axial, 1% tolerance, 1/4 W | Mouser 603-MFR-25FTE52-1K6 |
| Resistor | R88-R90 | 3 | 3K ohm, axial, 1% tolerance, 1/4 W | Mouser 603-MFR-25FTE52-3K |
| Resistor | R97 | 1 | 100 ohm, axial, 1% tolerance, 1/4 W | Mouser 603-MFR-25FBF52-100R |
| Resistor | RN1,RN2 | 2 | 4.7K ohm bussed network, 6 resistors, 7 pins, SIP | Mouser 652-4607X-1LF-4.7K |
| Switch | SW1 | 1 | Push button switch | Mouser 179-TS026655BK160LCR |
| Integrated Circuit | U1 | 1 | MC68HC000 CPU in PLCC-68, 20 MHz | Ebay: search for "MC68HC000FN20" |
| Integrated Circuit | U2 | 1 | TS68HC901 Multi Function Peripheral (MFP) chip in PLCC-52 | Ebay: search for "TS68HC901CFN8B" |
| Integrated Circuit | U3,U4 | 2 | 512k x 8 Flash ROM in PLCC-32 | Mouser 579-39SF040554CNHET |
| Integrated Circuit | U7 | 1 | MIC1232 CPU Supervisor in 8-pin DIP | Mouser 998-MIC1232NY |
| Integrated Circuit | U8-U11 | 4 | ATF22V10C-15PU, Simple PLD, 24 I/O in 24-pin DIP | Mouser 556-AF22V10C15PU |
| Integrated Circuit | U12 | 1 | AY-3-8913 Programmable Sound Generator (PSG) in 24-pin wide DIP | Ebay: search for "AY-3-8913" |
| Integrated Circuit | U14,U15 | 2 | 74HCT245 Octal Bus Transceivers in 20-pin DIP | Mouser 595-SN74HCT245N |
| Oscillator | X1 | 1 | 16 MHz can oscillator in 8-pin DIP | Mouser 774-MXO45HST-3C-16.0 |
| Oscillator | X2 | 1 | 7.3278 MHz can oscillator in 8-pin DIP | Mouser 774-MXO45HS-3C-7.3 |
| Oscillator | X3 | 1 | 2 MHz can oscillator in 8-pin DIP | Mouser 774-MXO45HS2C2M0000 |
| Socket | Socket for U1 | 1 | 68-pin PLCC socket | Mouser 575-682444 |
| Socket | Socket for U2 | 1 | 52-pin PLCC socket | Mouser 575-945224 |
| Socket | Socket for U3,U4 | 2 | 32-pin PLCC socket | Mouser 649-54020-32030LF |
| Socket | Socket U5 | 1 | SIMM Connectors 72 POS SIMM VERT TIN | Mouser 571-5822021-4 |
| Socket | Socket for U7 | 1 | 8-pin DIP socket | Mouser 737-ICM-308-1-GT-HT |
| Socket | Socket for U8-U11 | 4 | 24-pin DIP socket | Mouser 737-ICM-324-1-GT-HT |
| Socket | Socket for U12 | 1 | 24-pin wide DIP socket | Mouser 737-ICM-624-1-GT-HT |
| Socket | Socket for U14,U15 | 2 | 20-pin DIP socket | Mouser 737-ICM-320-1-GT-HT |
| Socket | Socket for X1-X3 | 3 | 8-pin oscillator socket | Mouser 535-1108800 |
As mentioned, this board is designed to run EmuTOS. The source code for my fork of EmuTOS to support various 68K single board computers, including this one, can be found here. The version of EmuTOS in the fork is based on EmuTOS version 1.4.
Two default configurations are provided by the ROM binaries in this repository. Other configurations are available by compiling EmuTOS from the source code linked above.
The first configuraiton uses the UART provided by the MC68901 and runs EmuTOS in "serial console" mode. In this configuration, 1 MB of SRAM is supported, which can be provided using two standard 512K 32-pin DIP SRAMs like the AS6C4008 mounted on an "SRAM SIMIM" adapter mentioned above. The "EmuCON" part of EmuTOS provides a command line interface. Here are the even and odd ROM binaries for this configuration:
| ROM | Size | File |
|---|---|---|
| Even | 512KB | bitsy_v1_sercon_1mb_20251123.even.bin |
| Odd | 512KB | bitsy_v1_sercon_1mb_20251123.odd.bin |
The second configuration runs EmuTOS in full GUI (GEM) mode and requires the use of the XOSERA_RCBUS and KEMOJO boards to provide VGA output and PS/2 keyboard and mouse input. In this configuration, at least 4MB is suggested so I recommend using the 16 MB "SRAM SIMM" module described above. It is possible to run GEM mode in 1 MB of RAM, but for you now you will have configure EmuTOS and compile it from source. Here are the even and odd ROM binaries for the 14 MB configuration:
| ROM | Size | File |
|---|---|---|
| Even | 512KB | bitsy_v1_gem_14mb_20251123.even.bin |
| Odd | 512KB | bitsy_v1_gem_14mb_20251123.odd.bin |
| Address Range | Use |
|---|---|
| 00_0000 to (0F_FFFF or DF_FFFF) | 1 MB or 14 MB RAM |
| E0_0000 to EF_FFFF | 1 MB ROM |
| F0_0000 to F0_003F | IDE (mirrored every 64 bytes in the 4K byte range from F0_0000 to F0_0FFF.) |
| FF_0000 to FF_FFFF | 64K RC2014 IO (IOREQ). Includes the on-board PSG and MFP. |
These addresses (and the IDE addresses above) are the same as the Atari ST for software compatibility.
| Address Range | Use |
|---|---|
| FF_FA01 to FF_FA2F | MFP (odd byte lane) mirrored every 48 bytes in the 256 byte range from FF_FA00 to FA_FAFF.) |
| FF_8800 to FF_8803 | PSG (even byte lane) mirrored every 4 bytes in the 256 byte range from FF_8800 to FF_88FF.) |
| FF_0191 to FF_01A1 | TL16C550 UART on KEMOJO board (odd byte lane), if using default setting of 0xC8 on that board. |
| FF_81c1 to FF_81E1 | Xosera registers, if using default setting of 0xE0 on that board. |
BITSY Mark I uses four ATF22V10/GAL22V10 SPLDs (U8 - U11) for address decode and various other control logic. The SPLD fuse maps (JED files) can be downloaded via the links in the table below. The SPLDs are implemented using Flash/EEPROM technology and can be programmed by commonly available EPROM programmers, such as MiniPro TL866 II+ or newer. The source code (PLD) files are also provided in the repository. If needed, they can be modified. Use GALasm to compile PLD files to JED fuse maps.
Note that there are separate fuse files for U9/HIDECODE depending on whether you are using 1 MB or 14 MB SRAM.
| Reference | Source File | JED File | Functions |
|---|---|---|---|
| U8 | MEMCTL.PLD | MEMCTL.jed | Interrupt control, RCBus interface |
| U9 (1 MB) | HIDECODE.PLD | HIDECODE.jed | Decode high part of address bus for 1 MB SRAM |
| U9 (16 MB) | HIDECODE_16MB.PLD | HIDECODE_16MB.jed | Decode high part of address bus for 14 MB SRAM |
| U10 | CONTROL.PLD | CONTROL.jed | Wait states, DTACK generation, IDE interface |
| U11 | DECODE.PLD | DECODE.jed | Decode low part of address bus |
When I designed this board, I took ideas and inspiration from these projects:
-
Bill Shen's Tiny68K board.
-
John Coffmans's Mini-68K ECB board.
-
Clements, Alan. Microprocessor Systems Design: 68000 Hardware, Software and Interfacing, Third Edition PWS Publishing Company, 1997.
-
Various Motorola Application Notes from back in the day.
The sound output circuit is borrowed from https://hw.speccy.cz/melodik2.html by way of https://github.com/electrified/rc2014-ym2149/blob/main/README.md



