Parts
- Z80 CPU CMOS (Z84C00) 8Mhz or greater - I used 20 MHz
- Atmega32A
- TC551001-70 (128kB RAM) - I used AS6C1008-55PIN since it is available on Mouser and Digikey
- 74HC00
- I added the MCP23017 for GPIO
- ebay - bare PCB $8
- Arrived in a couple of days
- Kit for sale
Reference Docs
Build Notes
- All through hole construction
- Build took less than 2 hours
- Used mostly junk box parts
- 20 MHz Z80 (Runs ar 4 or 8 MHz)
- Purchased alternate SRAM
- Purchased DIP machined sockets (I usually go cheaper but these were very nice)
- Forgot to buy SIP resistors
- Made my own SIP resistors
- Pin 1 (boxed pin on silkscreen is the common
- Used 1/8W resistors vertically mounted
- 5mm LEDs fit into 3mm hole spacing
- I didn't have a 3mm Blue so I used 5mm
- Ordered DS3231 AT24C32 IIC Precision Real Time Clock RTC Memory Module for Arduino
Negatives
- Ref des are not top-bottom or left-right
- Struggled to find some of the resistors on the PCB
- PDF Assembly drawing text is not searchable
- Serial port marking correlated to the FTDI card end not referenced from card internal
Connectors
- Triangle/arrow points to pin 1
J1 - I2C Expansion
J2 - Serial
J3 - ICSP
- Connects to ISP connector on ATProgHead for programming using Arduino as ISP connector and 2x3 jumper
J4 - AUX PWR
J5 - RTC
J6 - SD Card
J7 - GPIO
- Connect to DB25RIBBON card
- Use female BD-25 since power is exposed
Programming THE ATMEGA32
- IOS-LITE build (no SD card support)
- Full build with SD card
- Was able to use ATProgHead ICSP 2x3 cable running Arduino as ISP to burn bootloader but not program the code
- Could not use any of my FTDI cards for serial programming since they have RTS/CTS but not DTR
- Most programmer setups in Arduino work just fine with RTS since both are usually pulled, but not the MightyCore
- This is speculation as to why but I am able to program Screwduino cards just fine
- Used TL866ii to program ATMEGA32 fuses
- The Fuse bits should be: High Byte 0xD6, Low Byte 0xAF, Lock Byte 0xCF.
- Reference: Setting AVR Fuse Bits
- If you use the programmer defaults it sets the clock to 1 MHz which gives a serial port rate of 600 baud (told me I needed to fix the fuses).
- Found path in dump in Arduino IDE:
Arduino: 1.8.13 (Windows 10), Board: "ATmega32, Yes (UART0), EEPROM retained, Standard pinout, BOD 2.7V, LTO disabled, External 16 MHz"
Sketch uses 28642 bytes (88%) of program storage space. Maximum is 32256 bytes.
Global variables use 1213 bytes (59%) of dynamic memory, leaving 835 bytes for local variables. Maximum is 2048 bytes.
C:\Users\HPz420\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino18/bin/avrdude -CC:\Users\HPz420\AppData\Local\Arduino15\packages\MightyCore\hardware\avr\2.1.3/avrdude.conf -v -patmega32 -carduino -PCOM23 -b115200 -D -Uflash:w:C:\Users\HPz420\AppData\Local\Temp\arduino_build_883457/S220618_IOS-LITE-Z80-MBC2.ino.hex:i
Software
SD Card (R240620)
Z80-MBC2 CP/M 2.2 BIOS - S030818-R140319
CP/M 2.2 Copyright 1979 (c) by Digital Research
A>DIR
A: ASCIART BAS : ASM COM : AUTOEXEC SUB : AUTOEXEC TXT
A: D COM : DDT COM : DUMP COM : ED COM
A: GENHEX COM : GPELED BAS : GPIO BAS : HELLO ASM
A: HELLO COM : LOAD COM : MAC COM : MBASIC COM
A: MBASIC85 COM : PEG COM : PIP COM : RTC BAS
A: STARTREK BAS : STAT COM : SUBMIT COM : TREKINST BAS
A: USERLED BAS : XMODEM CFG : XMODEM COM : XSUB COM
A: ZDE16 COM : ZDENST16 COM
B>DIR
B: TINST COM : TURBO COM : ART TXT : TINST DTA
B: TINST MSG : TURBO MSG : TURBO OVR : TURBOMSG OVR
B: SA PAS : README TXT
C>DIR
C: $EXEC COM : ASSERT H : C COM : CGEN COM
C: CONIO H : CPM H : CPP COM : CREF COM
C: CRTCPM OBJ : CTYPE H : DEBUG COM : DEHUFF COM
C: EXEC H : FLOAT H : HITECH H : LIBC LIB
C: LIBF LIB : LIBR COM : LIMITS H : LINK COM
C: MATH H : OBJTOHEX COM : OPTIM COM : OPTIONS
C: P1 COM : README TXT : RRTCPM OBJ : SETJMP H
C: SIGNAL H : STAT H : STDARG H : STDDEF H
C: STDIO H : STDLIB H : STRING H : SYS H
C: TIME H : UNIXIO H : ZAS COM
D>dir
D: CPMIO MAC : CRCKLIST CRC : CREF80 COM : DSKDRV MAC
D: DTBF MAC : F80 COM : FCHAIN MAC : FORLIB REL
D: INIT MAC : IOINIT MAC : L80 COM : LIB COM
D: LPTDRV MAC : LUNTB MAC : M80 COM : TTYDRV MAC
D: README TXT
E>dir
E: BASCOM COM : BASCOM HLP : BASCOM2 HLP : BASLIB REL
E: BCLOAD : BRUN COM : CREF COM : CREF80 COM
E: README TXT : L80 COM : LIB80 COM : M80 COM
E: MBASIC COM : OBSLIB REL : RANTEST ASC : RANTEST BAS
E: RANTEST COM : RANTEST REL : SAMPLE BAS : SAMPLE COM
E: SAMPLE REL
Space - 16 Drives, 8MB / drive
F>a:stat
A: R/W, Space: 7908k
B: R/W, Space: 8068k
C: R/W, Space: 7664k
D: R/W, Space: 8004k
E: R/W, Space: 7896k
F: R/W, Space: 8176k
G: R/W, Space: 8176k
H: R/W, Space: 8176k
I: R/W, Space: 8176k
J: R/W, Space: 8176k
K: R/W, Space: 8176k
L: R/W, Space: 8176k
M: R/W, Space: 8176k
N: R/W, Space: 8176k
O: R/W, Space: 8176k
P: R/W, Space: 8176k