This is minimalist computing taken to the extreme!

The new "XS" platform allows an even smaller computer design. Compared to the original My4TH computer board, the new XS platform has a much more compact microcode. I reduced the width of the microcode counter from 8 bits to 4 bits, so I could remove one of the two 74HC161 counter ICs from the design. I also removed the two 74HC574 ICs used for parallel I/O and the 74HC541 tri-state driver. The new My4TH XS uses only 13.75 ICs! Why 13.75? Because a NOR gate in the 74HC02 remains unused. So the My4TH XS computer consists of two memory ICs and only 11.75 logic ICs.

By the way, "XS" stands for extremely small in terms of mechanical size, the number of logic gates or transistors used, and computing power. That's why "XS" could also mean "extremely slow" ;-) . Its speed is about 85% of that of the original My4TH when both are clocked at 8 MHz, and 8 MHz is the highest frequency My4TH XS can run at.

 

My4TH XS:

  • PCB size only 90 x 70 mm
  • 12 logic ICs, 2 memory chips:
  • 16 KB EPROM, 8 KB SRAM
  • proven ALU-less design
  • clock speed fixed at 8 MHz
  • TTL-level UART with 4800 baud
  • Forth 2012 operating system
  • includes 205 standard words
  • no I/O except the UART!

Here is the schematics.

In addition to the My4TH XS, I also built a more useful computer based on the XS platform. I took the My4TH XS and added another IC (a 74HC74). With these two additional flip flops I was able to add an I2C interface to the computer. I call this computer the "My4TH light", because it is a My4TH in a lighter version, and it also has a light (a yellow LED) on the PCB!

 

My4TH light:

  • PCB size only 90 x 83 mm
  • 13 logic ICs, 3 memory chips:
  • 32 KB EPROM, 8 KB SRAM
  • 64 KB EEPROM (optional)
  • proven ALU-less design
  • clock speed fixed at 8 MHz
  • TTL-level UART with 4800 baud
  • fast I2C bus with 83 kHz
  • Forth 2012 operating system
  • includes 295 standard words
  • includes floating point support
  • supports several I2C I/O chips

This version of My4TH has a lot of
software in its ROM, so it should be
the board of your choice!

Here is the schematics.

Here is a size comparison between the three My4TH variants. The original My4TH board is 100 x 100 mm, but the My4TH XS is only 90 x 70 mm. This is only 39% of the size of a Eurocard!

 



The My4TH XS computer board

The My4TH XS is the smallest / slowest / simplest / lowest gate count / lowest transtor count / or whatever Forth capable 8-bit computer I have ever built. It may even be a world record computer. I am very proud of the new microcode, which is very compact and fits into 5.5 KB. The microcode not only covers all the processor instructions available on the original My4TH computer, but also includes some fast I2C transfer routines that were used on the My4TH light computer. To squeeze all these functions into 5.5 KB, I had to implement subroutine calls within the microcode itself. For example, there are routines for fetching the operands of an instruction. The My4TH XS platform is slower than the My4TH due to the reduced number of components used. A microcode can only have up to 8 microinstructions, compared to up to 128 microinstructions on the original My4TH. This means that microcodes using more than 8 instructions must jump to the next microcode fragment after executing every 7th microinstruction. This results in a reduced execution speed of 1/8, or 12.5%. Together with the overhead of the subroutine calls, the My4TH XS is approximately 15% slower than the My4TH platform.

My4TH XS comes with a fully functional Forth, which includes more than 200 "words" ready to use, all squeezed into the 16 KB EPROM. You can enter your own programs on the terminal command line, but due to the lack of non-volatile memory you cannot save your work. Since My4TH XS also has no I/O other than the terminal interface, it is of limited use. I see My4TH XS as a kind of demonstration of what is possible with so little and simple hardware. But My4TH XS is also a good platform for those who just want to practice soldering and learn the Forth programming language.

Please note that My4TH XS is not supported by the my4th transfer tool, thus you can not upload your source code the easy way. This is due to the small ROM, in which there is no space left for the needed transfer functions.

Here is an example how to use the My4TH XS board. The board is connected to the PC via a serial to USB converter (CH340G bought at Amazon). On the PC, I use Putty as terminal emulator program:







You can find everything you need to build your own My4TH XS board in the the download area.




The My4TH light computer board

My4TH light is the big brother of the My4TH XS computer board. In contrast to the My4TH XS it has an I2C interface that is 8 times faster than the I2C interface of the original My4TH board. This makes the I2C bus the ideal interface to connect all kinds of I/O, LCD and sensor breakout boards to this Forth computer. In addition, the My4TH light has a larger ROM than the My4TH XS, so that it has become possible to include a lot more additional functions in the firmware. For example, floating point words are now included in the ROM, so it is no more necessary to install them by loading an expansion module from the EEPROM. Also some software drivers for I2C based LCDs and also for general purpose I/O port expanders are now included. My4TH light has built-in support for:

  • HD44780 compatible LCDs using the PCF8574 chip for the I2C bus
  • I/O port expander PCF8574, PCF8575, AW9523 and MCP23017
  • I2C-to-UART bridge SC16IS750 (provides a fast RS-232 interface with FIFO)
  • Keyboard matrix up to 64x64 keys using a PCF8574 or PCF8575

This Forth-based computer board is an ideal platform for tinkering with a variety of breakout boards from Adafruit or other suppliers. Any board can be connected as long as it supports an I2C bus with 5V signal level. This includes all STEMMA boards and the newer Qwiic boards which have level shifters already on the board.

My4TH light has only one IC more than My4TH XS

To add the I2C bus to the My4TH XS platform, I had to add two more digital outputs to the computer. I did this by adding a 74HC74 dual flip-flop, so the computer now consists of 15 ICs plus the optional EEPROM. But wait, two outputs are not enough for an I2C bus! At least one input pin is needed to read back the data on the SDA line. Since adding another input pin to the system would require at least one more IC, I decided to do something different: I now share the single input pin between the serial port and the I2C bus! Since My4TH can only handle one of these interfaces at a time, it is possible to share the single digital input. But there is one drawback - when My4TH is communicating over I2C, the user is not allowed to type any data into the terminal, otherwise the data on the SDA line would be corrupted. To solve this problem, I use the TXD signal to mask the RXD when the I2C bus is active. So as long as the I2C bus is active, My4TH sets the TXD signal low, which in turn disables a MOSFET transistor so that the RXD line is disconnected from the digital input. The firmware ensures that the low signal on the TXD line is always longer than 10 bit times, so that the serial terminal does not receive a valid data byte. Instead, the RS-232 interface on the terminal side will see a "break condition", which is not harmful.

My4TH light has a huge built-in word set. The screenshot shows the word list, together with some simple Forth examples in the lines below:




The next picture shows a small demo I made for My4TH light to demonstrate the computer's ability to scan a keyboard matrix over I2C. The Tic-Tac-Toe game consists of a My4TH light board, a custom Tic-Tac-Toe game shield and two PCF8575 I2C I/O port expander breakout boards. One PFC8575 is used to scan the 11 buttons and to control four LEDs, and the other PCF8575 is used to control the rest of the LEDs. As you can see in the picture, there are only 4 wires going from the My4TH light board to the shield, namely +5V, GND, SCL and SDA.




Do you want to build your own Tic Tac Toe game for My4TH light? Here is the archive that contains all the files needed to recreate the game: tic-tac-toe_for_my4th-light.zip. And this is the Forth code for your reference: tictactoe-game.txt

You can find everything you need to build your own My4TH light board in the the download area.





Impressum
and contact information:
Dennis Kuschel
Corintostraße 21
28279 Bremen, Germany
email: dennis_k@freenet.de
web: mynor.org and mycpu.eu
  website visits