-
See Isetta in Enschede on October 10
09/23/2026 at 07:40 • 0 commentsYou are all invited to come to see Isetta at the Hackfest in Enschede (Netherlands).
Date: Saturday, October 10, 2026
Time: 12:00-18:00
Place: location
Entry costs 12 Euro (10 Euro if a ticket is reserved in advance).
Hope to see you there !
New information for the kit
In the file section, you now find two zip files for the kit:
- software pack 260212
- kit HW 260306 ISA2544 (hardware) (includes schematic)
The Isetta built by Gilles
Gilles (from Moussey, in France) did send me pictures of the Isetta that he built:
![]()
Even the rear of the Isetta was beautifully finished:
![]()
-
Project Finished !
02/18/2026 at 14:58 • 0 commentsNew software pack
In the file section, you find a new software pack sw_pack260212.zip. I has the beta version of SymbOS version 4.1 for the Isetta, and a new microcode version.
This software fully supports:
- the 1024kB Isetta, but also the 512kB version
- several languages (English, Dutch, German, Spanish, Turkish and Japanese)
- several character pages, the main one is based on CP-1252It supports PS/2 keyboard layouts for Brazil, France, Germany, Greece, Hungary, Italy, Japan, Netherlands, Poland, Portugal, Spain, Turkey, Ukraine, United Kingdom and USA.
The Isetta project can now be regarded as finished, although I expect that there will be a few software enhancements.
Isetta at MSX fair Nijmegen
On march 28th you can come to Beuningen-NL (near Nijmegen) to see Isetta ! Isetta will be at the SymbOS booth at the MSX fair (free entrance).
Jörn Mika (creator of SymbOS) and I will also be there.
See this link: https://manuel.msxnet.org/msx/beurs/?lang=enIsetta built by Walter Belgers
And here you see a very nice Isetta built by Walter Belgers from the Netherlands.
![]()
![]()
Perhaps not clearly mentioned before, Isetta can directly drive a speaker (but you can also use the 3.5 mm sound output).![]()
-
SymbOS has the full one Megabyte !
01/27/2026 at 08:34 • 0 commentsSince a few days, the SymbOS operating system can use the full megabyte of memory on Isetta. The adaption was done by Prodatron, the genius that designed and programmed SymbOS.
![]()
Here is a screenshot of the 1 MB system. At the lower right side you see the memory map, the numbers 0 - F are the sixteen 64K memory banks. The yellow banks from B - F are still available !
One megabyte is the maximum amount of memory that SymbOS can handle. This means that the Isetta version is now just as capable as the SymbOS versions for all other platforms.
If you take a close look, you will see that many of the menu items and texts are now in Dutch ! Symbos will soon have a new feature, the support for several languages other than English. It will then also work with PS/2 keyboards for those languages. The first supported languages are Dutch, German, Spanish, Turkish and Japanese (really). French, Italian and Greek will be the next ones.
-
A Detective Story
12/27/2025 at 15:40 • 0 comments"Just another day at the Sam Cruise Detective Agency. I hear the staccato rattle of Daisy at the old typewriter in the outer office: the band in my head starts to tune up. I reach for a strong coffee. Pulling up the blind I look out of the grimy window into the street below. Ordinary people going about their ordinary business, unaware of the intrigues on their doorsteps. What do they know of the Fat Man, or the mysterious goings on at No.19?. Luscious Lana wiggles past, a sly smile playing across her ruby red lips. A gust of wind disturbs the garbage on the sidewalk.
And then the phone rings... "
Since a few days, a new (old) game is running on Isetta: Contact Sam Cruise (CSC)
![]()
It's a ZX Spectrum game from 1986. You are the detective who has to solve a murder case. Very nice graphics.
![]()
Running ZX Spectrum games
Since a few months, Isetta boots the SymbOS operating system directly. That implied that there was no fast way to run Spectrum games from internal serial flash, as before, when also SymbOS had to be started from this flash chip.
But I now have a new way to start Spectrum games from the SD card. And I added the Sam Cruise game.While Manic Miner and The Great Escape directly approached the hardware through I/O ports, the Sam Cruise game relies on interrupt handling by the spectrum ROM. When a frame interrupt occurs, the ROM software increments a frame counter at 5C78 (that is used by CSC to start drawing a new frame), and it reads the keyboard matrix, converts to ascii and put that on location 5C08, where CSC reads it to decide which command you entered.
The games can be entered in assembly , and can then be assembled with WinApe (Amstrad simulator and assembler) on a PC, resulting in a ".com" file. I made a special include file "zx_incl.asm" for this, that is a software layer that lets Isetta behave as a ZX Spectrum.
It switches the screen to ZX Spectrum mode, converts ps/2 keyboard signals to ascii, and handles an interrupt as described above. For games that read the keyboard matrix directly through an INPUT port, it simulates the ZX keyboard matrix.
Note that on Isetta, IN and OUT instructions do not simply transfer bytes on the databus. They call a sequence of microinstructions that can do almost anything.In general, ZX programs run without modification. But Manic Miner ran a lot too fast, due to the fast LDIR that Isetta has. I created a second LDIR (opcode ED B4) that has the same speed as on a real Z80 and used that. Now, Manic Miner has normal speed. And in a few games I disabled the automatic joystick detection.
More spectrum games (in assembly) can be found here: https://gitlab.com/z80-source-code-software/other-systems/
How to run a Spectrum game
On the Isetta computer, start the SymShell by double clicking on it's icon.
If you like, select a full screen with the "full" command.![]()
Change the directory (with CD command) to the ZX directory where the .com file and cpvm.com are.
Then type "cpvm" to start the CP/M operating system,
and in CP/M, type the name of the .com file (you can omit the .com part), to start it.
![]()
The following games are available:
zx_mm.com // Manic Miner
zx_tge.com // The Great Escape
zx_csc.com // Contact Sam CruiseAlso, the full assembly code of these games is provided. It includes the software adaption layer that lets Isetta behave as a ZX spectrum (Video, keyboard and sound). This will also enable you to run other ZX Spectrum programs.
New software pack in file section
Today I uploaded a new software pack to the file section of this project, sw_pack251227.zip.
It has several new things:Symisa.pak // An improved SymbOS version that starts programs faster
Symbos.ini // Was missing in previous pack, causing programs that refused to start
isetta_rpi // Improved automatic test
zx // New directory with ZX Spectrum games
ucode251203 // New microcode needed for new ZX games and improved SymbOSIt is not needed to re-write all microcode. Just compare each page with the Verify command, and only re-program that page if there was a difference.
[edit: It seems Manic Miner works on the 1024k version but not on the 512k version. Have to investigate this. ]
-
One Megabyte !
11/29/2025 at 21:20 • 0 commentsThe SymbOS operating system runs fine on Isetta. But when you have several programs open, and use a few of it's advanced options, the 384kByte available memory on a 512kB system is in many cases not enough.
Therefore, I added another 512 kByte RAM to Isetta. The bankswitching system got an extra chip to handle the extra address bit, and a quick pcb redesign was done. The pcb was built, and a low-level memory test proved that the extra RAM was working.
Work to let SymbOS use the extra RAM is still in progress, and hopefully can be finished soon.
If you order a kit, you will get the 1024 kByte version from now on.
-
More documentation online
10/05/2025 at 07:57 • 0 comments
In the Hackaday file section, I now placed the almost-latest version of the schematic, and 3 assembly drawings that will make it easy to find the components on the pcb when you build it. For convenience, the typenumbers of the IC's are printed on the pcb.
The new pcb's (ISA2532) have arrived from my sponsor PcbWay. As always, the quality is very good and they deliver quite fast.
Builders of the KIT will now receive this pcb, so there is no need any more for the modifications with all the wires. The pcb was tested by building an Isetta with it, and it works perfectly.The SymbOS version for Isetta is now practically bug-free.
SymbOS has a shutdown command, that switches VGA screen and the power LED off. After pressing the button at the front, it will start-up again.
The real-time clock/calendar is now also working. It keeps running during shutdown, and during ZX-Spectrum or other applications.
On october 11th/12th, Isetta will be at the SymbOS stand in the Nixdorf Museum in Paderborn (Germany):
https://www.hnf.de/veranstaltungen/events/date/2025/10/11/cal/event/tx_cal_phpicalendar/retro-computer-festival-1.htmlFor all of you who want to build one, I sell pcb's on my new Envionic website (not a HTTPS connection possible yet).
-
Third PCB design finished
07/30/2025 at 08:40 • 0 commentsThe new pcb design was finished. I did not send it yet for production, because experience says, that within ten minutes of the final submit for production, I think of something that I forgot in the design. So I just wait a few days before ordering.
What changed (w.r.t. ISA2442 version):- The wire modifications, as on prev version, are no longer needed
- slightly changed form factor, to better fit in the housing
- Have a 1.5 W sound amplifier on board, can now directly connect a speaker. The
output for an amplifier is also still on board.
- Due to speaker dimensions, a bigger housing is used, RM2055M (instead of RM2055S)
- Have a 'wakeup' button at the front. (A SymbOs command can put Isetta asleep). The power
LED will be off while Isetta is asleep.
- Several changes to improve EMC behaviour
- Amount of Microcode flash ROM can be doubled, now 32 instead of 16 microcode pages.
(The option to use 8-cycle instructions was removed for this.)
- Max number of consecutive microcode cycles is now 512 (was 256). Now it is easier
to display 640 pixels per line (two pixels per cycle, so 320 consecutive cycles)
- The selection between 640 or 320 pixels per line is simpler now (uses ctl_upd_n)
- The 4 blinkenlights were removed
- Added a LED to indicate file read/write
- Changed the optional WiFi module to XIAO ESP32S3 (WiFi + Bluetooth BLE)
- The WiFi module has an option to add LoRaWan
- One extra IC used. And one for the sound amplifier.New Option connectors:
- I/O A: 20 pin connector. Bus for parallel input/output. Has 8 datalines, 3 address lines.
- I/O B: 20 pin connector. Supports 4 input and 4 output bits. Also useable for alternative power
supply (and battery backup). This option can also select a lower CPU speed
for less power consumption.
- I/O C: 40 pin connector. A board to give more video modes can be connected here.- I/O D: 20 pin connector. Connects to RPi. This was "I/O C" on prev version. Removed some unused signals.
This is the 3D impression of KiCad:
![]()
-
We have Sound !!
06/10/2025 at 09:24 • 2 commentsFinally, the PSG (Programmable Sound Generator AY-3-8910) is coming to life. It was harder than I thought. But it now has the 3 channels for tone or noise, with independent frequency and volume control. Only the the envelope generator is not present yet [edit: a month later, envelope was also working]. The sound is generated by microcode, no actual AY-3-8910 is used, but the sound is controlled in the same way as on a real sound chip.
It generates the typical sound of the eighties computer games.
It can now provide sound for the SymbOs operating system ! And here you see the first Youtube video of Isetta running SymbOs (made by Prodatron):
(The start-up screen of Isetta will have to be modified, it's quite a mess at the moment.)
A new version of the Isetta programming manual is now in the file section. It includes the commands to control the sound generator.
OPERATION
There are four 1 kB sound buffers, one for each of the three channels, and a fourth one for noise.
The squarewave sounds are generated in an unrolled loop. So if a wave has 5 samples 'high' and 5 samples 'low', to generate one period there will be two sequences that each put samples in the buffer, with each having five "(pc++) <- T" micro-instructions in a row. (Note the program counter is used as auto-incrementing pointer to the buffer).
The value in T is the required amplitude for this sound (positive value for high samples, negative value for low samples). So there is no separate volume-control stage, like the real PSG has.
At each scanline interrupt, a byte-sized sample is taken from each of the four buffers, the four samples are added and sent to the D/A converter (resistor array RN1). So the sample frequency is the same as the VGA line frequency, 31.25 kHz.
To control this, there are two Z80-output ports. One to select a AY-3-8910 register, and another one to write a byte to that register. The Z80 output ports can also be used by the 6502 processor.
EFFICIENCY
For each channel, producing samples takes around 3 cycles per sample. (The unrolled loop produces 8 samples on average, single cycle per sample, with also 16 cycles overhead).
For a full 525-line frame, this is 1575 cycles per channel. Noise has it's own channel, so there are 4 channels, together taking 6300 cycles each frame.
In each frame, 120 lines are for the CPU, minus interrupt it's around 350 usable cycles per line. Per frame, this is 120 * 350 = 42000 available cycles. So the sound takes 15% of the CPU time. For frequencies higher than 1kHz, there are just a few samples produced in each loop, so there is more overhead.LINKS
There are several very nice articles about sound generation.
Want to know everything about synthesizers:
https://www.soundonsound.com/series/synth-secrets-sound-sound
Building the AY-3-8910 fully from TTL chips:
https://github.com/mengstr/Discrete-AY-3-8910
Very good description of the AY-3-8910:
https://www.cpcwiki.eu/index.php/PSG
Article about Linear-feedback shift registers, used to generate noise:
https://en.wikipedia.org/wiki/Linear-feedback_shift_register
The Isetta noise generator comes from this article. It's a 16-bit Galois type, quite simple:
unsigned msb = (int16_t) lfsr < 0; /* Get MSB (i.e., the output bit). */ lfsr <<= 1; /* Shift register */ if (msb) /* If the output bit is 1, */ lfsr ^= 0x002Du; /* apply toggle mask. */Sound generation in the Novasaur TTL computer:
https://hackaday.io/project/164212-novasaur-cpm-ttl-retrocomputer/log/184708-roll-your-own-sid-chip
Interactive demo, shows harmonics of square waves and triangle waves:
https://www.desmos.com/calculator/emfmoefwqu
A suitable IC for driving a small speaker: LM4862, info HERE. Or use LM4991 (cheaper). Small Speaker could be 665-ASE03008MRLW150R. Or 179-CMS-30204-18L250. Or 497-SM500308-1.
-
Do-It-Yourself KIT available
05/21/2025 at 17:45 • 0 commentsKIT Available
The first Isetta kit was successfully built by Vadim (see picture):
![]()
And the second kit was built by Hans-Jürgen in Germany.
In [this log] you can see all ins and outs of the kit. Of course, with the kit, you will receive the latest schematics and software versions. [ edit: You can order your kit at the new Envionic website. ]
On the first pcb, a few modifications had to be done (the wires that you see on the pictures). But there is now a new pcb design where these modifications are not needed.
SymbOS
Good progress was made on the SymbOS implementation. The most serious bugs are fixed now. Currently I am working on the microcode for a sound generator, that will work similar to the AY-3-8910, and that can also be controlled by SymbOS.
-
Come and see Isetta running Symbos
04/27/2025 at 20:23 • 0 commentsOn may, 10th you can see Isetta running SymbOs !
Isetta will be at the "MSX Vriendenclub Mariënberg", together with Prodatron (designer of SymbOs), and myself.
https://raymondmsx.nl/home_mvm_eng.html English
https://m-v-m.lookpages.nl/home/ DutchPlace:
Buurtgebouw de Grendel
Wicher Hentostraat 17
7692 AL MariënbergTime: may, 10th 2025, from 10 a.m. till 4 p.m.
As a first time visitor, the meeting is free.
It would be nice if you send me a reply or PM if you want to come.











