EZ-Retro: system overview
The EZ-Retro project is about creating a Z80-compatible board capable of running CP/M and based on the eZ80F91 microcontroller from Zilog - it looks like they’re still in business, BTW!That’s “EZ” as...
View ArticleA truly minimal eZ80 setup
To check that the eZ80 chip works, we only need to connect it to the Blue Pill with 6 wires:+3.3V and ground (the eZ80 runs at 3.3V, but it has 5V-tolerant I/O pins)a two-wire “Zilog Debug Interface”...
View ArticleMinimal requirements for CP/M
Even a minimal EZ-Retro setup is very powerful compared to CP/M systems of the 1970’s, costing thousands of dollars, drawing hundreds of Watts, and placed in Boring Bulky Boxes.So let’s start planning...
View ArticlePokeMon, the eZ80 monitor
Out of the factory, the eZ80 is totally ignorant: it comes with 256 KB of empty flash memory. This reads as $FF, which corresponds to the “RST 38h“ instruction, a one-byte call to address $0038 (mixed...
View ArticleBootstrapping CP/M via simh
The next step is actually more of a giant leap: building a working CP/M system from scratch…This can’t be done in one go. Let’s start as simply as possible - which is already pretty steep:decide how to...
View ArticleWe'll need a BIOS for CP/M
The minbios.z80 code used so far only has the minimal functionality needed to get CP/M off the ground. Well… slightly more, to be precise: it can see 256 KB of RAM as virtual disk A: and 256 KB of...
View ArticleA µSD, slave SPI, and DMA
Connecting an SD card to a Blue Pill was described in a recent article. With the sdcard.fs code, it’s as simple as calling sd-init, and then sd-read / sd-write for accessing 512-byte blocks.And since...
View ArticleThe virtual floppy jukebox
Times sure have changed: a fingernail-sized 2 GB µSD card of a few dollars can now easily store over a thousand 1.44 MB floppy disk images, while being quicker than the fastest hard drive from the...
View ArticleThe limits of Mac and Mouse
It all started with recent kernel panics on my MacBook Pro laptop, almost every night, causing me to revisit my setup and choice of technologies. For the record: I’m very attached to my 2014-era “MBP”,...
View ArticleWhy Vim is very different
Ah, the smell of editor wars. Arguments collide. Opinions galore. Lots of heat, so little light…This article was not written for the sake of argument. I just want to highlight why I keep coming back to...
View ArticleTaking it further with i3
This article is about the i3 window manager (and also, further down below, Ranger):Its main distinguishing feature is that is uses tiling as visual layout mechanism.While the mouse and...
View ArticleEZ-Retro v2, now with a PCB
As mentioned earlier, the EZ-Retro project could use a PCB for a more compact and robust setup. There is a nice F103 board variant (search for “STM32F103C8T6 ARM Minisystem Development Board STM32“ on...
View ArticleTroubleshooting the EZ-Retro
Here is the eZ80 chip, hand-soldered on the new EZ-Retro v2 PCB:The trouble is: something is very wrong: with my lab power supply set to 3.3V and a 30 mA maximum current limit, the voltage drops to...
View ArticleMecrisp Forth's memory use
The Blue Pill is a widely available and extremely low-cost STM32F103-based µC board which has an amazing amount of features and plenty of memory onboard: 64K flash and 20K RAM.In C/C++, the way...
View ArticleFolie is growing up... slowly
Folie, the “Forth Live Explorer” is starting to shape up. Here’s a summary of what it’s about:a front end for Mecrisp Forth, i.e. a terminal emulator like picocom or Tera Termeasily find (ctrl-R) and...
View ArticleF103 + USB = Swiss Army Knife
The USB driver for STM32F103 has been around for months and it’s proving to be very stable and usable. The current Mecrisp release now includes it, and there’s an F303 port available.The original code...
View ArticleSimple Mecrisp Forth utilities
The default message shown after a reset of Mecrisp Forth is this prompt:Mecrisp-Stellaris RA 2.3.6 for STM32F103 by Matthias Koch Nothing else, no hint that you can start entering commands. With a...
View ArticleLet's trace, profile, and patch
Although Mecrisp Forth “compiles” source code to machine language, it’s not really a compiler in the traditional sense, as with say C or C++. In Forth, the compilation process and runtime execution are...
View ArticleGenerated code & performance
Let’s look at how the tricks in the previous article end up in code, and their performance effects. First the trace.fs itility, which needs to insert special calls at the start and end of each word:: a...
View ArticleThink, upload, rinse, repeat
As often mentioned, Forth enables an interactive development approach: you enter commands on the µC itself, and things get done right away. No make, no compile step, no uploads.But that’s an...
View Article