Dreaming of a CP/M Z80 laptop!

2021 references

Operating system / architecture

Evolution from calculator CPU

  • 512Kx8 SRAM with bank switching (including EEPROM)
  • Interrupt support
  • Add some hardware serial ports (maybe 2)
  • Add 2X SD card interfaces
  • PIO or at least an expansion bus

Evolving Design

  • Z80 CPU, DART, PIO
  • AT28C256 32Kx8 EEPROM
  • AS6C4008 512Kx8 SRAM
  • Clocks: 8MHz osc /2 => 4MHz CPU clock
  • Clocks: 1.8432MHz / 12 => 16X 9600 clock
  • MAX232 or equiv; DB-25 for RS-232

Useful Tools



VGA modes (60Hz) (from blog

Mode Pixels Clock RAM Adx (256 color)
640x480 370k 25.175 MHz 18
800x600 480k 40.000 MHz 18
1024x720 922k 74.250 MHz 20
1920x1080 2.1M 148.500 MHz 21

For some sort of DIY video with an FPGA or even TTL logic, for 640x480 we need about 10 bits of row count (525 lines) and 10 bits of pixel count (800 total clocks). Active area is 10 bits horiz and 9 bits vertical. Here is an inspiring project!

IMSG171 is a classic RAMDAC good for VGA output (and still available on eBay).

VGA timing (640x480 60Hz):
    horiz:  16 + 96 + 48 + 640 = 800 at 25.2 MHz
    vert:   11 + 2 + 31 + 480 = 524

Horiz line 800 pixels, 100 bytes
Various 8x16 fonts from IMB seem reasonable

For just bit-mapped graphics, need 100 x 480 = 48k RAM
Hardware character generator seems a good option.

Horizontal logic:

  Front porch:   2 byte times
  Horiz sync:   12 byte times
  Back porch:    6 byte times
  Horiz active: 80 byte times

  Most convenient is probably to start at 0 with first active

Vertical logic:

  480 lines (30 character frames of 16 lines each)
  44 lines of sync:
    VFP:  11 lines
    VS:    2 lines
    VBP:  31 lines


The options seem to be: PCB only, Plate only (hand-wired), both. 3D printed plate is interesting but has to be segmented to fit on printer. PCB only is also interesting, with a case around the outside which could be 3D printed in sections.


Lots of NVRAM / flash and RAM disk


  • 128Kx8 flash: GLS29EE010-70-4C-PHE
  • 32Kx8 flash: AT28C256-15PU
  • 512Kx8 SRAM: AS6C4008-55PCN
  • 128Kx8 SRAM: AS6C1008-55PCN
  • Z80 8MHz CPU: Z84C0008PEG
  • Serial I/O:
    • SCN2661 / SCN 68661 EPCI (single port w/ baud rate gen)
    • SCN68681 or SCC2681 (progr. baud rate, avail on eBay)
    • Z80 DART: Z8470 (needs baud rate) or SIO same deal

Floppy controllers:

SDCard interfaces:

CF/IDE interfaces:

N.B.: the upper 8 bits of the IDE interface can be ignored if you only use half the disk capacity. Not much of a problem for a Z80 CP/M system!


  • FDU disk utility supports amongst other things formatting of 8" floppies


Design ideas:

  • In 13x9 inch box, keyboard and PCB ~ 12 x 2.8 would fit.
  • Need a terminal emulator to generate VGA timing and deal with USB/PS-2 keyboard.
Last modified 2 years ago Last modified on Dec 18, 2021, 6:50:50 AM