ZZ80MB, Z280-based motherboard in Z80-compatible mode

627 views
Skip to first unread message

Bill Shen

unread,
Nov 7, 2019, 9:05:14 AM11/7/19
to retro-comp
I don't need to design yet another Z80 motherboard, but ZZ80MB is specifically for developing more robust graphic video interface.  The Z280 is running at 12MHz CPU clock, but in Z80-compatible 8-bit bus mode, so it is probably around a 10MHz Z80 in performance.  This is a ROM-less design, but Z280's UART bootstrap feature makes it very easy to load the very first bootstrap code into RAM without any ROM.  The RAM is battery-backed so once the monitor is loaded, it can boot up from RAM from then on.  A simple CF interface rounds out the mother board design.  It is all through-hole technology and don't even need a PROM burner to bring up the system.  The first expansion slot is 80-pin bus, mainly to have 24-bit address space which the DMA in Z280 can directly access.  I really have not explore the DMA capability in Z280, there are 4 channels of DMA and can be used for graphic, compact flash disk, and even serial receive.
  Bill

DSC_50871107.jpg
DSC_50881107.jpg

Bill Shen

unread,
Nov 7, 2019, 9:17:54 AM11/7/19
to retro-comp
No sooner than the first board is built and working, I'm already thinking of modification:  There is quite a bit of room between Z280 and the 80-pin expansion, enough room for a PROM, not so much to boot off, but rather serve as a PROM burner.  I think ZZ80MB may be good as first hardware for newbie.  It is through-hole technology, operates in Z80-compatible mode, doesn't need a PROM burner, and may program PROM for future designs.   Z280 is not easy to find outside of China, but can be purchased cheaply from UTSource.  I think the total part cost is about $20.
  Bill

Alan Cox

unread,
Nov 7, 2019, 10:53:18 AM11/7/19
to retro-comp


On Thursday, 7 November 2019 14:17:54 UTC, Bill Shen wrote:
No sooner than the first board is built and working, I'm already thinking of modification:  There is quite a bit of room between Z280 and the 80-pin expansion, enough room for a PROM, not so much to boot off, but rather serve as a PROM burner.  I think ZZ80MB may be good as first hardware for newbie.  It is through-hole technology, operates in Z80-compatible mode, doesn't need a PROM burner, and may program PROM for future designs.   Z280 is not easy to find outside of China, but can be purchased cheaply from UTSource.  I think the total part cost is about $20.
  Bill


Does the CF adapter not foul the cards in the first slot, the jumper pins on the CF look awfully close to where the back pins and soldering will be on the slot ?

Alan

Bill Shen

unread,
Nov 7, 2019, 12:47:27 PM11/7/19
to retro-comp
PC board for the double row connector does not stick out quite as much, but you are right that CF connector is very close to the board, especially the 3-pin jumper block of the CF connector.  I can certainly remove the CF jumper block and manually wire in the jumper, but it is still very close.  Ideally I should move the 3 expansion connectors to the back of the board and move the ZZ80MB circuitry to the front (i.e., swap the electronic section with the connector section) to give more room for the expansion boards.

I have 5 more board designs coming in today, so that'll have to wait.

  Bill

Colin MacArthur

unread,
Nov 8, 2019, 11:11:47 AM11/8/19
to retro-comp
Great Looking Board...
Think adding EEPROM burner is GREAT idea.
Will there be a jumpers for 28xxx / 29xxx possibly NVRAM ?
If you are going to redesign to add EEPROM burner could you swap the positions of the CF card and the 74138 / 74132 to make more room for the 1st slot ?

THX
CM

Bill Shen

unread,
Nov 8, 2019, 12:49:49 PM11/8/19
to retro-comp
I thought 28Fxxx is 12V programmable and 29Fxxx is 5V programmable?  It is probably still possible to program with an external 12V power, but I get scared with 12V running around--burnt up too many boards over the years with 12V.

Yes, I plan to move the slots around so they'll have more room.

  Bill

Colin MacArthur

unread,
Nov 8, 2019, 1:17:13 PM11/8/19
to retro-comp
You are correct...

I forgot as I use NVRAM for most of my projects, it allows you to write updates to it without any special hardware/software...
Also gives you a 64k RAM CPM system without an special hardware...

That is why I love your boards, all you need is RAM and the CPLD boot loader takes care of the rest...
 
CM

Bill Shen

unread,
Oct 13, 2020, 1:05:27 AM10/13/20
to retro-comp
I want to spent more time on Z280.  The first Z280 to-do is finishing up the flash programmer function of ZZ80MB, https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:zz80mb:zz80mbr2

The pc board is currently in rev2 that fixed all the outstanding issues I know of.  It is in hobbyist-friendly through-hole technology and there is no CPLD to program.  Z280 is operating in 8-bit Z80-compatible mode at 12MHz.  It has 2 modes of operations as controlled by 3 jumpers: 
1. EPROM bootstrap is the normal mode where the EPROM is located in 0x0 and RAM located at 0x800000; Z280's MMU maps physical RAM into Z280's 64K logical memory and it is ready for CP/M. 
2. Serial bootstrap mode where RAM is located at 0x0 and EPROM located at 0x800000.  This mode is mainly for programming a new EPROM.  A serial boot loader is first loaded into RAM from the serial port and then a EPROM-specific programmer is loaded via the serial port and ran.  The programmer expects up to 512KB of data through the serial port and writes them into the EPROM.  Currently there is only one programmer for SST39F040.  Once the EPROM is programmed, ZZ80MB can be jumpered back to EPROM bootstrap mode and boot up with the newly programmed EPROM.

The two modes of operations are now working.  The programmer, progSST39F040, and the ZZ80MB monitor are listed at the bottom of the software section of ZZ80MB homepage.  The programmer function is quite handy; with 115200 baud serial file load, it is quicker to reprogram the EPROM in-situ than pulling off the EPROM, programming it on the TL866, and pluggint it back.

CP/M2.2 is running.  Steve Cousin's SCMonitor and CP/M3 will be ported next; afterward is the big project of porting ROMWBW to linearly mapped 512K EPROM and RAM.
  Bill
zz80mb_annotated.jpeg

Wayne Warthen

unread,
Oct 13, 2020, 1:48:52 PM10/13/20
to retro-comp
On Monday, October 12, 2020 at 10:05:27 PM UTC-7 Bill Shen wrote:
I want to spent more time on Z280.  The first Z280 to-do is finishing up the flash programmer function of ZZ80MB, https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:zz80mb:zz80mbr2

CP/M2.2 is running.  Steve Cousin's SCMonitor and CP/M3 will be ported next; afterward is the big project of porting ROMWBW to linearly mapped 512K EPROM and RAM.
  Bill

Would be wonderful to see RomWBW running w/ Z280 linear memory.  I have looked at this and it definitely should be possible, but it is non-trivial.  Managing the linear memory will require a full blown implementation of Z280 mode 3 interrupt management which is a whole new interrupt model for RomWBW.

-Wayne

Bill Shen

unread,
Oct 13, 2020, 7:35:40 PM10/13/20
to retro-comp

Wayne,

I was working on CPM3 this morning and found out the programmer and monitor codes are still not quite right (but of course!), so it is two steps forward and one back.  

So far I've ported CPM2.2 and CPM3 to previous Z280 boards without turning on the interrupt, but I did used MMU and DMA extensively, especially for banked CPM3.  Z280's MMU page is 4K so I do expect some tweaks to match up to the 16K/32K banks.  I used DMA in CPM3's inter-bank move routine, DMA can also attached to the serial port receive and transmit, so in theory serial interrupt is not needed, but I think I'd rather tackle mode 3 interrupt than try to cut out ROMWBW interrupt mechanism.

 

The ZZ80MB hardware probably need a few more weeks of testing to reach maturity.  If you are interested in Z280, I'll be happy to send you a complementary board in a few weeks. 

Bill

Robin Hourahane

unread,
Oct 14, 2020, 12:26:32 PM10/14/20
to retro-comp
Bill,

I like the idea that you can start with a blank set of chips and get it a working computer without a programmer.

Have you thought about porting Fuzix to Z280 and your board?

Will you be selling kits or just boards?

Robin

Bill Shen

unread,
Oct 14, 2020, 2:04:50 PM10/14/20
to retro-comp
Alan Cox has started the process of porting Fuzix to Z280, but I don't know about its status.  Beside CP/M & Fuzix, there are also several other Z280 ports, UZI280, a UNIX-like OS (https://github.com/agn453/Z280RC ) and RSX280, a RSX-11M-like OS (https://github.com/hperaza/RSX280 ).  However, these are port to 16-bit version of Z280, Z280RC.  Software-wise Z280 in 16-bit mode is quite similar to Z280 in 8-bit mode, so perhaps it is possible to target ZZ80MB without too much work.

I'm treating ZZ80MB more like a programmer.  For people starting out with retro-computing or curious about it, they may not want to invest in a $50 TL866 programmer.  ZZ80MB should be lesser than $50 and will not only program itself, but it can also program flash for other retrocomputer.  It is certainly not as versatile as TL866, but SST39F040 and AM29F040 are popular flash for several retro computers.

Selling is a big step for me.  Other than auctioning a ZRCC and a MPU302 once a week on eBay to pay for my habit, I'm reluctant to get more serious about it.  Once I have ZZ80MB design proven, I'll publish all my design data so people can order their own pc board.  For kit, I think I'll just offer the pc board plus a Z280 for $10, Many people will have the remaining components to build up their own ZZ80MB.

  Bill

Wayne Warthen

unread,
Oct 14, 2020, 4:52:17 PM10/14/20
to retro-comp


On Tuesday, October 13, 2020 at 4:35:40 PM UTC-7 Bill Shen wrote:

Wayne,

So far I've ported CPM2.2 and CPM3 to previous Z280 boards without turning on the interrupt, but I did used MMU and DMA extensively, especially for banked CPM3.  Z280's MMU page is 4K so I do expect some tweaks to match up to the 16K/32K banks.  I used DMA in CPM3's inter-bank move routine, DMA can also attached to the serial port receive and transmit, so in theory serial interrupt is not needed, but I think I'd rather tackle mode 3 interrupt than try to cut out ROMWBW interrupt mechanism.

Yes, that was my thinking.  Since Z280 deals with 4K pages, it would be very inefficient to modify 8x4K pages on every interrupt in order to change the low memory bank.  The answer is to use the "system" memory map to automatically page in the HBIOS code on an interrupt.  You probably already know all this, but wanted everyone to know why this is not a trivial exercise.
 

The ZZ80MB hardware probably need a few more weeks of testing to reach maturity.  If you are interested in Z280, I'll be happy to send you a complementary board in a few weeks.  

Sounds like you are making great progress.

I would certainly love to have a ZZ80MB, but will want to pay for it.  I think you have my email, so you can contant me off group when convenient.  Note that my address has changed since the last time you sent me something (if I have my timing right).

-Wayne

Bill Shen

unread,
Oct 17, 2020, 11:33:29 PM10/17/20
to retro-comp
Wayne,
Thanks for interested in buying a ZZ80MB.  I don't have a firm pricing number, but I always fixed my assembled boards at $50 (except CB030).  The kit is likely $35.  I'll go over my part inventory and email you a quote in a few weeks when my design is in better shape and my documentation is completed.

I fixed the software bug and was successful in porting banked CP/M3 and Steve Cousin's SCMonitor (with StarTrek game built in).  I'm thinking about ROMWBW next.
  Bill
banked_cpm3_on_zz80mb.jpg

Bill Shen

unread,
Oct 17, 2020, 11:52:40 PM10/17/20
to retro-comp
A different way of having mass storage is using disk-on-module.  The disk-on-module pinout is mirrored that of CF adapter.  So instead of mounting the CF adapter on the component side of pc board, the disk-on-module connector is mounted at the solder side of the pc board.  For DOM with 90 degree connector like the Apacer module, it makes a compact board.  Unfortunately the DOM module covers one of the mounting hole, so this approach on ZZ80MB is not quite ready for prime time.
  Bill
DOM_mounted_on_backside_of_ZZ80MB.jpg

Wayne Warthen

unread,
Oct 18, 2020, 7:44:09 PM10/18/20
to retro-comp
On Saturday, October 17, 2020 at 8:33:29 PM UTC-7 Bill Shen wrote:
Wayne,

Thanks for interested in buying a ZZ80MB.  I don't have a firm pricing number, but I always fixed my assembled boards at $50 (except CB030).  The kit is likely $35.  I'll go over my part inventory and email you a quote in a few weeks when my design is in better shape and my documentation is completed.

Sounds good.  No rush!
 
I fixed the software bug and was successful in porting banked CP/M3 and Steve Cousin's SCMonitor (with StarTrek game built in).  I'm thinking about ROMWBW next.

Great, I am certainly interested in your attempt with RomWBW.  Hope it goes well! 

Bill Shen

unread,
Oct 29, 2020, 7:36:49 PM10/29/20
to retro-comp
I published a project log about ZZ80MB on HackaDay and it was picked up by their blog.  https://hackaday.com/2020/10/28/this-z80-computer-bootstraps-itself/?fbclid=IwAR1vqn2frAUwEDxb-6iWOVdGKQydGYn1rNJqYor0q2et3yISOwdDMF3dhvU

I thought Al Williams did a pretty good job summarizing the ZZ80MB.
  Bill



Karl Albert Brokstad

unread,
Oct 30, 2020, 4:39:45 AM10/30/20
to retro-comp
Congratulation Bill.
Karl

Bill Shen

unread,
Nov 11, 2020, 10:24:00 AM11/11/20
to retro-comp


I have had a setback on ZZ80MB where the serial port would intermittently put out a duplicated character.  Intermittent bug is the worst nightmare!  I believe I finally have it resolved which is most likely due to metastable problem as the UART control signals cross 2 clock domains.  It is a long tedious explaination, but the quick solution is NOT have 2 clock domains, i.e., use the CPU clock to generate serial baud clock.  CPU clock is 24MHz, divide it by 13 gives 1.846MHz which is within 0.1% of 1.8432MHz.  The revised pc board replace the independent 1.8432MHz oscillator with 74LS193 configured to divide-by-13.  The revised pcb also added a CTS handshake for UART, fixed the position of the IDE44 interface so DOM can be mounted under the pc board, and added the third RC2014 connector so the bus can be extended.  JLCPCB has the board design now and hopefully I can proceed with the porting of ROMWBW to ZZ80MB.
  Bill

ZZ80MB_r3_JLCPCB_11_11_20.png

Bill Shen

unread,
Nov 11, 2020, 10:09:11 PM11/11/20
to retro-comp
Since ZZ80MB can accept RC2014 cards, I plugged in a VGARC video card and have ZZ80MB test drive it.   To jazz up the display a bit, I modified VGARC to drive each color channel with 2 bits of  R/G/B values.  VGARC does not have dedicated memory for color attributes, but it is possible to drive color palette using the values of characters.  The result is kinda interest and show me the value of having a color lookup table even with a couple bits for each color.  This is plasma effect in color with a "worm" eating away the screen.

https://youtu.be/T5gfeuZ8NAY color_plasma_eating_worm_still.jpg


Reply all
Reply to author
Forward
0 new messages