Parts
- On card
- 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 optional MCP23017 for GPIO
- External cards
- Bare Board on ebay - $8 shipping included
- 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
Enclosure
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
- Demo software in Disk Set 1, Drive A:, File: gpeled.bas
DB-25 connector
- Connect to DB25RIBBON card
- Use female DB-25 since power is exposed
- Wiring shown for male DB-25 connector
Z80-MBC2 to DB25RIBBON Card Wiring
Port
|
J7 Pin
|
DB-25F Pin
|
P1 Pin
|
Color
|
Port
|
J7 Pin
|
DB-25F Pin
|
P1 Pin
|
GND
|
20
|
1
|
25
|
Black
|
GND
|
19
|
14
|
24
|
GPA0
|
18
|
2
|
23
|
Brown
|
GPB0
|
3
|
15
|
22
|
GPA1
|
16
|
3
|
21
|
Orange
|
GPB1
|
5
|
16
|
20
|
GPA2
|
14
|
4
|
19
|
Yellow
|
GPB2
|
7
|
17
|
18
|
GPA3
|
12
|
5
|
17
|
Green
|
GPB3
|
9
|
18
|
16
|
GPA4
|
10
|
6
|
15
|
Blue
|
GPB4
|
11
|
19
|
14
|
GPA5
|
8
|
7
|
13
|
Violet
|
GPB5
|
13
|
20
|
12
|
GPA6
|
6
|
8
|
11
|
Grey
|
GPB6
|
15
|
21
|
10
|
GPA7
|
4
|
9
|
9
|
White
|
GPB7
|
17
|
22
|
8
|
+5V
|
2
|
10
|
7
|
Red
|
+5V
|
1
|
23
|
6
|
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
Boot
Z80-MBC2 - A040618
IOS - I/O Subsystem - S220718-R240620
IOS: Z80 clock set at 8MHz
IOS: Found GPE Option
IOS: CP/M Autoexec is OFF
IOS: Select boot mode or system parameters:
0: No change (3)
1: Basic
2: Forth
3: Load OS from Disk Set 0 (CP/M 2.2)
4: Autoboot
5: iLoad
6: Change Z80 clock speed (->4MHz)
7: Toggle CP/M Autoexec (->ON)
8: Change Disk Set 0 (CP/M 2.2)
Enter your choice >3 Ok
IOS: Current Disk Set 0 (CP/M 2.2)
IOS: Loading boot program (CPM22.BIN)... Done
IOS: Z80 is running from now
Z80-MBC2 CP/M 2.2 BIOS - S030818-R140319
CP/M 2.2 Copyright 1979 (c) by Digital Research
A>
SD Card (R240620)
- Disk Set 0 (CP/M 2.2)
- Disk Set 1 (QP/M 2.71)
- Disk Set 2 (CP/M 3.0)
- Disk Set 3 (UCSD Pascal)
- Disk Set 4 (Collapse OS)
Disk Set 0 (CP/M 2.2)
F>a:stat
A: R/W, Space: 7908k - CP/M 2.2
B: R/W, Space: 8068k - Turbo Pascal Compiler v3.01A
C: R/W, Space: 7664k - HI-TECH Z80 CP/M C compiler V3.09
D: R/W, Space: 8004k - Microsoft Fortran-80 Compiler v.3.44
E: R/W, Space: 7896k - Microsoft Basic-80 Compiler v.5.30a
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
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
Disk Set 1 (QP/M 2.71)
IOS: Current Disk Set 1 (QP/M 2.71)
IOS: Loading boot program (QPMLDR.BIN)... Done
IOS: Z80 is running from now
Z80-MBC2 QP/M 2.71 Cold Loader - S160918
Loading... done
Z80-MBC2 QP/M 2.71 BIOS - S150918
QP/M 2.71 Copyright 1985 (c) by MICROCode Consulting
A>dir
AUTOEXEC.QSB : D .COM : DHORIZ .COM : HELLO .QPM
QBACKUP .COM : QINSTALL.COM : QPATCH .COM : QPIP .COM
QPMCLK .MAC : QPMCMDS .TXT : QPMUTILS.TXT : QSTAMP .COM
QSTAMPV .COM : QSTAMPX .COM : QSTAT .COM : QSUB .COM
QSWEEP .COM : AUTOEXEC.TXT : TDCNFG .COM : ZDE16 .COM
ZDENST16.COM : SYSGENQ .COM : ASCIART .BAS : ASM .COM
DDT .COM : DUMP .COM : GENHEX .COM : GPELED .BAS
GPIO .BAS : HELLO .ASM : HELLO .COM : LOAD .COM
MAC .COM : MBASIC .COM : PEG .COM : RTC .BAS
STARTREK.BAS : TREKINST.BAS : USERLED .BAS : MBASIC85.COM
SETDATE .QSB
A>b:
B>dir
TINST .COM : TURBO .COM : ART .TXT : TINST .DTA
TINST .MSG : TURBO .MSG : TURBO .OVR : TURBOMSG.OVR
SA .PAS : README .TXT : D .COM
C>dir
$EXEC .COM : ASSERT .H : C .COM : CGEN .COM
CONIO .H : CPM .H : CPP .COM : CREF .COM
CRTCPM .OBJ : CTYPE .H : DEBUG .COM : DEHUFF .COM
EXEC .H : FLOAT .H : HITECH .H : LIBC .LIB
LIBF .LIB : LIBR .COM : LIMITS .H : LINK .COM
MATH .H : OBJTOHEX.COM : OPTIM .COM : OPTIONS .
P1 .COM : README .TXT : RRTCPM .OBJ : SETJMP .H
SIGNAL .H : STAT .H : STDARG .H : STDDEF .H
STDIO .H : STDLIB .H : STRING .H : SYS .H
TIME .H : UNIXIO .H : ZAS .COM : D .COM
D>dir
CPMIO .MAC : CRCKLIST.CRC : CREF80 .COM : DSKDRV .MAC
DTBF .MAC : F80 .COM : FCHAIN .MAC : FORLIB .REL
INIT .MAC : IOINIT .MAC : L80 .COM : LIB .COM
LPTDRV .MAC : LUNTB .MAC : M80 .COM : TTYDRV .MAC
README .TXT : D .COM
E>dir
BASCOM .COM : BASCOM .HLP : BASCOM2 .HLP : BASLIB .REL
BCLOAD . : BRUN .COM : CREF .COM : CREF80 .COM
README .TXT : L80 .COM : LIB80 .COM : M80 .COM
MBASIC .COM : OBSLIB .REL : RANTEST .ASC : RANTEST .BAS
RANTEST .COM : RANTEST .REL : SAMPLE .BAS : SAMPLE .COM
SAMPLE .REL : D .COM
Disk Set 2 (CP/M 3.0)
>Disk Set 2 (CP/M 3.0)
IOS: Current Disk Set 2 (CP/M 3.0)
IOS: Loading boot program (CPMLDR.COM)... Done
IOS: Z80 is running from now
Z80-MBC2 CPMLDR BIOS - S180918
CP/M V3.0 Loader
Copyright (C) 1982, Digital Research
BNKBIOS3 SPR F600 0600
BNKBIOS3 SPR 5300 2D00
RESBDOS3 SPR F000 0600
BNKBDOS3 SPR 2500 2E00
60K TPA
Z80-MBC2 128KB (Banked) CP/M V3.0
Z80-MBC2 BIOS Modules: S200918, S210918-R170319, S220918-R180319, S290918,
S170319
A>dir
A: ASCIART BAS : AUTOEXEC COM : AUTOEXEC TXT : BDOS3 SPR : BNKBDOS3 SPR
A: CCP COM : COPYSYS COM : CPM3 SYS : CPM3-128 SYS : CPM3-64 SYS
A: CPMLDR COM : CPMLDR REL : CPM-Y2K TXT : CRCK COM : DATE COM
A: DEVICE COM : DIR COM : DUMP COM : ED COM : ERASE COM
A: GENCOM COM : GENCPM COM : GENHEX COM : GET COM : GPELED BAS
A: GPIO BAS : HELLO ASM : HELLO COM : HELP COM : HELP HLP
A: HEXCOM COM : INITDIR COM : LIB COM : LINK COM : LOAD COM
A: MAC COM : MBASIC COM : MBASIC85 COM : PATCH COM : PEG COM
A: PIP COM : PROFILE SU : PUT COM : README 1ST : RENAME COM
A: RESBDOS3 SPR : RMAC COM : RTC BAS : SAVE COM : SET COM
A: SETDEF COM : SHOW COM : SID COM : STARTREK BAS : SUBMIT COM
A: SYS128 SUB : SYS64 SUB : TREKINST BAS : TYPE COM : USERLED BAS
A: XMODEM CFG : XMODEM COM : XREF COM : ZDE16 COM : ZDENST16 COM
A: ZSID COM : CATCHUM COM : CATCHUM DAT : CATCONF COM : GORILLA COM
A: LADCONF COM : LADDER COM : LADDER DAT
B>dir
B: ART TXT : SA PAS : TINST COM : TINST DTA : TINST MSG
B: TURBO COM : TURBO MSG : TURBO OVR : TURBOMSG OVR : USERLED PAS
C>dir
C: $EXEC COM : ASSERT H : C COM : CGEN COM : CONIO H
C: CPM H : CPP COM : CREF COM : CRTCPM OBJ : CTYPE H
C: DEBUG COM : DEHUFF COM : EXEC H : FLOAT H : HITECH H
C: LIBC LIB : LIBF LIB : LIBR COM : LIMITS H : LINK COM
C: MATH H : OBJTOHEX COM : OPTIM COM : P1 COM : README TXT
C: RRTCPM OBJ : SETJMP H : SIGNAL H : STAT H : STDARG H
C: STDDEF H : 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 : DTBF MAC
D: F80 COM : FCHAIN MAC : FORLIB REL : INIT MAC : IOINIT MAC
D: L80 COM : LIB COM : LPTDRV MAC : LUNTB MAC : M80 COM
D: README TXT : TTYDRV MAC
E>dir
E: INSTALL COM : MAILMRGE OVR : MERGPRIN OVR : WIMSGS OVR : WS COM
E: WS OVR : WSCHANGE COM : WSCHANGE OVR : WSCHHELP OVR : WSHELP OVR
E: WSMSGS OVR : WSOVLY1 OVR : WSPRINT OVR : WSSHORT OVR : WSU COM