RetroBrew Computers Forum
Discussion forum for the RetroBrew Computers community.

Home » RBC Forums » General Discussion » Z80ALL, A standalone Z80 computer
Z80ALL, A standalone Z80 computer [message #7934] Thu, 03 September 2020 18:56 Go to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
While I still remember, I should announce Z80ALL on this forum, after all RetroBrew Wiki is my preferred website for all my designs including Z80ALL.

Z80ALL is my first attempt to build a standalone CP/M system. It is the combination of two previous designs, ZRCC and VGARC. The goal is an economical Z80 SBC with VGA and PS2 keyboard on a 4"x4" 2-layer pc board. Here are the features of Z80ALL:

* Z80 overclocked to 25.175MHz
* 128K RAM in 4 32-K banks
* 4K dual port video RAM with user programmable font table.
* VGA monochrome interface, 64 columns X 48 rows
* EPM7128S CPLD with the following features
- Small ROM to bootstrap from CF disk
- VGA timing circuit
- Serial port for hardware/software development
- Memory bank select logic
- Decoding logic for compact flash
* IDE44 interface for compact flash drive
* CP/M ready
* PS2 keyboard interface
* 3 RC2014 expansion bus
* Optional USB-serial connector
* 102mm X 102mm 2-layer pc board
* Nominal power consumption of 5V 300mA

You can read more on Z80ALL homepage.
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:z80all

Rev0 is proof-of-concept. Rev1 pc board is currently being fab at JLCPCB.

Bill
/forum/index.php?t=getfile&id=1839&private=0
/forum/index.php?t=getfile&id=1840&private=0

[Updated on: Thu, 03 September 2020 19:00]

Report message to a moderator

Re: Z80ALL, A standalone Z80 computer [message #7945 is a reply to message #7934] Sun, 06 September 2020 00:33 Go to previous messageGo to next message
Yves-D. is currently offline  Yves-D.
Messages: 21
Registered: January 2020
Junior Member
Nice feat Plasmo!
I definitely need to analyse the EPM7128 files to learn how the VGA video generation is implemented.
Yves
Re: Z80ALL, A standalone Z80 computer [message #7947 is a reply to message #7945] Sun, 06 September 2020 05:35 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
The CPLD is published in the homepage. The design is schematic-based. VGA timing is generated with cascaded modulo-800 and module-525 counters. Module-800 provides the pixel clock and generates horizontal sync, front porch and back porch while module-525 generates vertical sync. The rest are combinatorial logic derived from the module-800/525 state machine. I'm happy to answer whatever questions you may have.
Bill
Re: Z80ALL, A standalone Z80 computer [message #7962 is a reply to message #7947] Thu, 10 September 2020 04:33 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
Received the rev1 pc board of Z80all. The engineering changes of rev0 are all fixed and there are now room on CPLD for the PS2 keyboard interface. Everything is working the same but without all the kludges. Still need to revise the pc board since I'm using a 6-pin jumper instead of a real PS2 connector.
Bill
/forum/index.php?t=getfile&id=1860&private=0
Re: Z80ALL, A standalone Z80 computer [message #8209 is a reply to message #7962] Tue, 19 January 2021 17:11 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
I read a 6-month old post on VCFED talking about TRSDOS6 with modern mass storage device like CF disk. Is TRSDOS available for porting to new Z80 SBC? I think it would be neat to port TRSDOS to Z80all making it an inexpensive Model 4 clone.

https://www.youtube.com/watch?v=qt8Mx9dZJj0 Conway's Game of Life running on Z80all.

Bill

PS, every 20MHz Z80 I tried can run to 25.275MHz. This is with voltage varying between 4.75V to 5.25V, and passing zexall.com processor test. In fact most 20MHz Z80 is good to 29.5MHz.
Re: Z80ALL, A standalone Z80 computer [message #8211 is a reply to message #8209] Tue, 19 January 2021 17:47 Go to previous messageGo to next message
dittman is currently offline  dittman
Messages: 9
Registered: February 2019
Junior Member
The source is available. @lowen would be the person to talk to, he's done some work towards this.
Re: Z80ALL, A standalone Z80 computer [message #8212 is a reply to message #8211] Tue, 19 January 2021 20:04 Go to previous messageGo to next message
lowen is currently offline  lowen
Messages: 226
Registered: August 2016
Location: Western NC USA
Senior Member
Plasmo, I'll send you the sources I have tomorrow, not at my computer at the moment. I'd love to see how you get along porting LS-DOS (same thing as TRSDOS 6) since it, unlike CP/M, wasn't really designed to be easily ported.

--
Bughlt: Sckmud
Shut her down Scotty, she's sucking mud again!
Re: Z80ALL, A standalone Z80 computer [message #8325 is a reply to message #7934] Wed, 17 February 2021 18:47 Go to previous messageGo to next message
alkmar is currently offline  alkmar
Messages: 29
Registered: August 2019
Junior Member
I have a couple of your Z80All Rev 1 (8/30/20) PCB's, do you have a component BOM by chance? If not i'll attempt to create one based on the schematic.

Thank You.

[Updated on: Wed, 17 February 2021 23:03]

Report message to a moderator

Re: Z80ALL, A standalone Z80 computer [message #8328 is a reply to message #8325] Thu, 18 February 2021 07:07 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
Hi,
Here is the bill of materials. I also added it to the Z80ALL rev1 homepage.

I also need to upload the CPLD files. I'm still working on PS2 interface hardware/software, but the CPLD should at least have solid video display.

Bill
Re: Z80ALL, A standalone Z80 computer [message #8444 is a reply to message #7934] Fri, 09 April 2021 21:31 Go to previous messageGo to next message
alkmar is currently offline  alkmar
Messages: 29
Registered: August 2019
Junior Member
What programmer do you recommend for programing the CPLD chip? Also can it be programed before the board is fully populated, in case I didn't get it soldered well? This is the first time I have attempted SMT at this pitch... Very nice computer by the way.
Re: Z80ALL, A standalone Z80 computer [message #8445 is a reply to message #8444] Sat, 10 April 2021 06:31 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
There are many sellers of Altera USB blaster on eBay. They are inexpensive clones and work perfectly fine. I've purchased items from this seller and got reliable delivery: https://www.ebay.com/itm/altera-Mini-Usb-Blaster-Cable-For-C PLD-FPGA-NIOS-JTAG-Altera-Programmer/254626963665

Ideally you should program the CPLD before the board is fully populated, but I've also reprogrammed the CPLD while board is fully populated without encounter problems.

I still have not completed the CPLD design, but I just released an interim design that has working VGA but no PS2 keyboard support.
Bill
Re: Z80ALL, A standalone Z80 computer [message #8446 is a reply to message #8445] Sat, 10 April 2021 12:04 Go to previous messageGo to next message
alkmar is currently offline  alkmar
Messages: 29
Registered: August 2019
Junior Member
Thank you for the tip, I ordered the programming cable today and will attempt to program the chip before I add the other components. I am using this computer as a test to learn how to hand solder surface mount components (and get a really fast Z80 CP/M machine to boot Razz Wink

I have enough stuff to build five of them with five extra PCB's to spare, as it may take more than one attempt.

I attached a picture of my first attempt. Done using a very small chisel tipped soldering iron with a set of x5 reader glasses, and using an additional magnifying glass for inspection. I had to use a soldering wick a couple of times where I had a solder bridge. I quickly learned how extra flux comes in really handy.

Thank you for telling me the keyboard is not ready yet, I would have been pulling my hair out (not much left) trying to figure out what I messed up (if I am able to replicate your bootable system).

[Updated on: Sat, 10 April 2021 12:09]

Report message to a moderator

Re: Z80ALL, A standalone Z80 computer [message #8447 is a reply to message #8446] Sat, 10 April 2021 12:45 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
"flux is your friend" was probably my first lesson in soldering. I use brush-on liquid flux to help me solder SMT. Your soldering look good. You can also push solder joints with a sharp tweezer and see if they are securely attached.

Please keep me updated of your progress and don't hesitate to ask me questions.
Bill
Re: Z80ALL, A standalone Z80 computer [message #8450 is a reply to message #8447] Sat, 10 April 2021 18:58 Go to previous messageGo to next message
alkmar is currently offline  alkmar
Messages: 29
Registered: August 2019
Junior Member
Great idea... i'll do that so at least I know know if I have an issue this is not it Smile Thank you!
Re: Z80ALL, A standalone Z80 computer [message #8507 is a reply to message #7934] Sun, 25 April 2021 17:53 Go to previous messageGo to next message
alkmar is currently offline  alkmar
Messages: 29
Registered: August 2019
Junior Member
In addition to the FPGA, I installed all the passive components, power receptacle, and JTAG 10 pin header (with the key/opening facing the edge of the PCB).

I received my USB Blaster programming cable from the source you recommended. I downloaded the latest "Quartus Prime Programmer Standard Edition v20.1.1" direct from Intel's website. The USB software that came with the Intel Quartus download didn't work but I found one at https://www.terasic.com.tw/wiki/File:Usb_blaster_q16.1.zip. Once I installed this the Quartus software allowed me to select the "USB0Blaster [USB-0]"hardware.

I selected the EPM7128SQ100, then I unzipped your "rev1pcb_working_64column_48line_no_ps2.zip" file into a directory and selected the "top.pof" file. checked the "Program/configure", "verify", "blank-check" options and selected the start button.

The first board takes about 30 seconds and gets to the high 90's% but then fails.
The second board takes about 8 seconds and gets to the mid 80's% but then fails.

I get an error "ID: 209012 Message: Operation failed". Both of the FPGA's were sourced from UTSoruce and appear to be new.

In addition I noticed the programming software doesn't allow the selection of "erase". Are these FPGA's write once?

Just to see what happens if I disconnect the power or JTAG cable from the PCB the programmer software fails instantly. If i open a blank programming project and do an auto detect it automatically picks "EPM7128S" instead of EM7128SQ100 which your code seems to select. The label on the chip is "EPM7128SQC100-10

I attached a picture of my programmer software you can see my first attempt, let me know if you have any ideas.
Re: Z80ALL, A standalone Z80 computer [message #8509 is a reply to message #8507] Sun, 25 April 2021 18:48 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
The latest version of Quartus does not support MAX7000 parts. You need to download quartus version 13 or earlier. This version of Quartus should work with MAX7000:
https://fpgasoftware.intel.com/13.0sp1/
Re: Z80ALL, A standalone Z80 computer [message #8528 is a reply to message #8509] Mon, 26 April 2021 18:36 Go to previous messageGo to next message
alkmar is currently offline  alkmar
Messages: 29
Registered: August 2019
Junior Member
After downgrading to the Quartus II version you suggested 13.0sp1, I can program the CPLD. However on both boards I still get a verification failure at around 75% or so. I have worked with other CPLD's in the past that will fail verification due to the chip encrypting the programming (but I do know if that is the case here).

If I select the "Auto Detect" in the programming module, the software still reports "EMP7128S". If possible can you try this on a known good device and see if you get the same response? My chip is clearly labeled as "EMP7128SQC-100-10". I ordered a few more of these chips for different sources in case these are not really the correct chips but relabeled (all though so far I haven't experienced this issue before).

When the VGA is connected and a SD card is present the following happens with power is applied:

  • I get a quick blink on the CF card (of course its not properly formatted with an OS nor driver for this board).
  • I get a screen of simi-random stuff and the monitor reports 640 x 480 @ 60Hz, the display is stable (this will very from power cycle attempts, as the RAM will have a somewhat random state)./forum/index.php?t=getfile&id=2127&private=0
  • Sometimes I will get a random character on the TTL serial port (I assume this is just a power up glitch and not real data).
The reboot switch causes the screen to clear and repaint with the same pattern and the SD Card to be accessed. See attached pictures, don't laugh to hard at my first attempt at a real SMT board Smile

Do you happen to have a small SD card image file that would write something to the screen and to the TTL serial port (so I can test if my copy of you Z80All is working by change) or even echo serial characters received? This would allow me to keep troubleshooting as I have a known good image that will work once I have my computer properly assembled and configured this computer.

Thank you for your time, Jim.
Re: Z80ALL, A standalone Z80 computer [message #8529 is a reply to message #8528] Mon, 26 April 2021 19:08 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
The display looks good! I counted 80 characters across and 48 lines. Which is correct.

The CPLD may not verify correctly immediately after programming. It should verify correctly if you only check the verify box on the CPLD programmer.

The one blink on CF disk means Z80 is executing the bootstrap ROM on CPLD and attempt to read the bootstrap program from the CF disk's master boot record. That's expected and it seems to be doing the right thing. This is very encouraging.

I see I have not created a "getting started guide" for bring up the Z80ALL the first time. I'll walk you through the process when I get back to my lab in couple hours.
Bill
Re: Z80ALL, A standalone Z80 computer [message #8530 is a reply to message #8529] Mon, 26 April 2021 19:32 Go to previous messageGo to next message
alkmar is currently offline  alkmar
Messages: 29
Registered: August 2019
Junior Member
While I am eager to see it boot, please take your time (after all this is a hobby). I am happy to wait for a time that is good for you. Once I have the formula, I will be creating four more. This is great SMT practice, for which you get a very fast Z80 CP/M computer to boot (pun intended! Very Happy

Thank you for publishing this design, and for your help.
Re: Z80ALL, A standalone Z80 computer [message #8531 is a reply to message #8528] Mon, 26 April 2021 19:34 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
Instead of tedious bootstrap instruction, lets shoot for the moon! Attached is a 64MB CF image with everything I have. Unzip it to Z80all_v03.img and use Win32DiskImager to copy it to a CF disk 64MB or larger. Install the CF disk on your Z80all and apply power. If all goes well, it will sign on with:

ZALL Monitor v0.3 9/12/20

>

Bill
Re: Z80ALL, A standalone Z80 computer [message #8532 is a reply to message #8531] Mon, 26 April 2021 21:58 Go to previous messageGo to next message
alkmar is currently offline  alkmar
Messages: 29
Registered: August 2019
Junior Member
I have a little more work to do, but I am running z80 code and outputting VGA:

/forum/index.php?t=getfile&id=2131&private=0

I setup my 5v TTL serial cable on PINs:

T3 - TX (I also tried swapping T3 and T4, in case I had it backwards).
T4 - RX (I also tried swapping T3 and T4, in case I had it backwards).
T2 - Ground

with the terminal set to 9600 8,1,N (I also tried 2400 though 115200). I don't get a signon message or any garbage (like when you have the wrong baud rate). That said I do get chars echoed back for every character I type, it is just not the correct character. Shorting my serial ports TX/RX when not hooked up to the board proved the port is open and working (the correct chars echoed).

So either I hooked to the wrong pins on the header or I may have a soldering problem.

I have a little more debugging to do but your .IMG file should give me everything I need to find the problem. I'll look over your schematics as I had attempted to use your picture to to setup the terminal.

Thank you, Jim.
Re: Z80ALL, A standalone Z80 computer [message #8538 is a reply to message #8532] Tue, 27 April 2021 07:23 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
That's a great progress! The "moon shot" has reached the moon and looking for a way to land. Lots of things are working correctly to display the splash screen on VGA:
* bootstrap from CF's master boot block is successful;
* ZALLmonitor is loaded and running;
* the font & video data are retrieved from CF and saved on dual port RAM; and
* VGA state machine is able to display it correctly.

The serial port baud is 115200 N81. The serial port only needs 3 wires; T2 is ground, T3 is serial data going out of Z80ALL and T4 is serial data coming in to Z80ALL. The serial port has two unusual features:
1. The baud clock is 25.175MHz video clock divided by 13.5. The result is 1.86MHz, about 1.1% too fast than the standard baud of 1.8432MHz. Your terminal emulator SHOULD be able to tolerate 2-3% deviation from the standard baud rate.
2. The serial receiver is implemented as shift registers & buffer in CPLD, i.e. a normal serial port hardware, but the serial transmitter is just a register. The software must bit bang the serial transmit.

My guess is you are receiving data correctly but somehow unable to transmit data back. Here is a way to confirm that guess: type this string at the monitor:
o0020 <-no need to type carriage return
This writes value value 0 to I/O port 0x20, the first character of the first line on VGA. This will cause the upper leftmost character to go blank. writing
o0120
will cause the 2nd character of the first line to display a Smily Face.

Let me know if your VGA display is responding as I described.
Bill
Re: Z80ALL, A standalone Z80 computer [message #8542 is a reply to message #8538] Tue, 27 April 2021 19:55 Go to previous messageGo to next message
alkmar is currently offline  alkmar
Messages: 29
Registered: August 2019
Junior Member
Hello Bill,

I could have sworn I had that PIN out... but it worked and have bi-directional serial and for grins I used the monitor command which updated the top left of the screen with a blank character.

Thank you for all of your help, it seems I have a working Z80ALL... now I will build up my second one (all of the SMT work is already done, I just need to do the THT stuff).

I was considering writing up a quick and dirty document on how to assemble the Z80ALL and program the CPLD, let me know if you would mind or if think it would be useful. Of course if anyone is following this thread, most of the items are already covered. I just figured consolidating all of it in a single PDF or Word Doc may be useful for future builders.

I can't believe I was able to solder that 100 pin chip, it wasn't as bad as my mind said it was going to be (not trivial but with do-able with careful inspections).

The following is the console output:

>øZALL Monitor v0.3 9/12/20


>output 00 to port 20

>output 01 to port 20

>help
G <addr> CR
R <track> <sector>
D <start addr> <end addr>
I <port>
O <value> <port>
L <start addr> <end addr>
Z CR
F CR
T CR
E <addr>
X <options> CR
B <options> CR
C <options> CR

>


Thank you for this cool computer, tips, and help!

[Updated on: Tue, 27 April 2021 19:58]

Report message to a moderator

Re: Z80ALL, A standalone Z80 computer [message #8544 is a reply to message #8542] Tue, 27 April 2021 20:31 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
Oh excellent! I'll be very pleased if you can write up your experience bring up Z80ALL and send me a link so I can reference to it on my Z80ALL homepage.

Since the 20MHz Z80 is overclocked to 25.175MHz, you may want to apply the following tests: (BTW, I never had a 20MHz Z80 failed at 25.175MHz).
* 't' command in ZALL monitor which will test all memory except the 4K where ZALL monitor is located
* boot to CP/M with 'b2' command and run 'zexall.com' in drive B. It is an exhaustive instruction test that takes about 23 minutes to run.
* transfer large file use xmodem. The command is
xmodem filename /r/z1 <- the reason '/z1' is needed is because 25MHz Z80 is too fast and will time out before you can locate the file. It will most likely time out when you tried it the first few times until you get better at it.
* To check out the VGA display, unzip, load and run the .hex file of the attached programs. All programs start from 0x1000 so type 'g1000' after program is loaded
1. vortex-style screen saver
2. Matrix-style screen saver
3. Game of Life, Gosper glide gun

The VGA display is well suited for 'tetris' game. I hope you'll be interested in creating one.
Bill

Re: Z80ALL, A standalone Z80 computer [message #8546 is a reply to message #7934] Tue, 27 April 2021 22:36 Go to previous messageGo to next message
alkmar is currently offline  alkmar
Messages: 29
Registered: August 2019
Junior Member
I was able to run all three program by pasting the text contained in the .hex file into the system monitor, then issuing the G1000 command followed by the enter key as you indicated.

When using CP/M 2.2 all console output it mirrored to the VGA screen in addition to the serial port.

The following is a transcript of all test, the memory test was aborted via the enter key as I assume it just seems to runs continuously?

>øZALL Monitor v0.3 9/12/20


>output 00 to port 20 (the top left most character on the VGA output is now blank)

>output 01 to port 20 (the next character to the right on the VGA output is now a smiley face)

>help
G <addr> CR
R <track> <sector>
D <start addr> <end addr>
I <port>
O <value> <port>
L <start addr> <end addr>
Z CR
F CR
T CR
E <addr>
X <options> CR
B <options> CR
C <options> CR

>>


>test memory
press Return to execute command
OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2 OK0 OK1 OK2

(I pressed enter to exit the test)

>

>boot CP/M
1--User Apps,
2--CP/M2.2:
3--CP/M3: 2 press Return to execute command (I pressed the enter key)
Copyright 1979 (c) by Digital Research
CP/M 2.2 for Z80ALL IOByte+JumpTbl Rev1.1 9/11/20

a>b:
b>dir
B: ASCIIART TXT : ASM COM : BIOS ASM : CBIOS ASM
B: DDT COM : DEBLOCK ASM : DISKDEF LIB : DUMP ASM
B: DUMP COM : ED COM : LOAD COM : MBASIC80 COM
B: MOVCPM COM : PIP COM : STAT COM : SUBMIT COM
B: SYSGEN COM : XMODEM COM : XSUB COM : ZEXALL COM
b>zexall
Z80 instruction exerciser
<adc,sbc> hl,<bc,de,hl,sp>.... OK
add hl,<bc,de,hl,sp>.......... OK
add ix,<bc,de,ix,sp>.......... OK
add iy,<bc,de,iy,sp>.......... OK
aluop a,nn.................... OK
aluop a,<b,c,d,e,h,l,(hl),a>.. OK
aluop a,<ixh,ixl,iyh,iyl>..... OK
aluop a,(<ix,iy>+1)........... OK
bit n,(<ix,iy>+1)............. OK
bit n,<b,c,d,e,h,l,(hl),a>.... OK
cpd<r>........................ OK
cpi<r>........................ OK
<daa,cpl,scf,ccf>............. OK
<inc,dec> a................... OK
<inc,dec> b................... OK
<inc,dec> bc.................. OK
<inc,dec> c................... OK
<inc,dec> d................... OK
<inc,dec> de.................. OK
<inc,dec> e................... OK
<inc,dec> h................... OK
<inc,dec> hl.................. OK
<inc,dec> ix.................. OK
<inc,dec> iy.................. OK
<inc,dec> l................... OK
<inc,dec> (hl)................ OK
<inc,dec> sp.................. OK
<inc,dec> (<ix,iy>+1)......... OK
<inc,dec> ixh................. OK
<inc,dec> ixl................. OK
<inc,dec> iyh................. OK
<inc,dec> iyl................. OK
ld <bc,de>,(nnnn)............. OK
ld hl,(nnnn).................. OK
ld sp,(nnnn).................. OK
ld <ix,iy>,(nnnn)............. OK
ld (nnnn),<bc,de>............. OK
ld (nnnn),hl.................. OK
ld (nnnn),sp.................. OK
ld (nnnn),<ix,iy>............. OK
ld <bc,de,hl,sp>,nnnn......... OK
ld <ix,iy>,nnnn............... OK
ld a,<(bc),(de)>.............. OK
ld <b,c,d,e,h,l,(hl),a>,nn.... OK
ld (<ix,iy>+1),nn............. OK
ld <b,c,d,e>,(<ix,iy>+1)...... OK
ld <h,l>,(<ix,iy>+1).......... OK
ld a,(<ix,iy>+1).............. OK
ld <ixh,ixl,iyh,iyl>,nn....... OK
ld <bcdehla>,<bcdehla>........ OK
ld <bcdexya>,<bcdexya>........ OK
ld a,(nnnn) / ld (nnnn),a..... OK
ldd<r> (1).................... OK
ldd<r> (2).................... OK
ldi<r> (1).................... OK
ldi<r> (2).................... OK
neg........................... OK
<rrd,rld>..................... OK
<rlca,rrca,rla,rra>........... OK
shf/rot (<ix,iy>+1)........... OK
shf/rot <b,c,d,e,h,l,(hl),a>.. OK
<set,res> n,<bcdehl(hl)a>..... OK
<set,res> n,(<ix,iy>+1)....... OK
ld (<ix,iy>+1),<b,c,d,e>...... OK
ld (<ix,iy>+1),<h,l>.......... OK
ld (<ix,iy>+1),a.............. OK
ld (<bc,de>),a................ OK
Tests complete
b>


>dir
A: XMODEM COM : UNARJ COM : CPM2 ARJ : MEDU COM
A: HTC ARJ : TED ARJ
a>xmodem zork1.com /r/z1

File created
Receiving via CON with CRCsCC
Received 68 blocks
a>xmodem zork1.dat /r/z1

File created
Receiving via CON with CRCsC
Received 664 blocks
a>zork1
ZORK I: The Great Underground Empire
Copyright (c) 1981, 1982, 1983 Infocom, Inc. All rights
reserved.
ZORK is a registered trademark of Infocom, Inc.
Revision 88 / Serial number 840726

West of House
You are standing in an open field west of a white house, with
a boarded front door.
There is a small mailbox here.

>open mailbox
Opening the small mailbox reveals a leaflet.

>take leaflet
Taken.

>read leaflet
"WELCOME TO ZORK!

ZORK is a game of adventure, danger, and low cunning. In it
you will explore some of the most amazing territory ever seen
by mortals. No computer should be without one!"




Why was my test upload Zork I? "Because no computer should be without one! of course".

I'll have to look into programming in assembly on the Z80, I haven't done any assembly in about 20 years or so and that was for a TMS9900 processor.

The only thing that didn't seem to work was attempting to boot CP/M 3 (B3), is this expected from this image?

Also I tested powering the computer from the +5 and Ground headers stead of the standard 5mm jack, which worked well. However it's worth noting that you should only use ONE power connections on the computer any time! Otherwise you risk destroying the computer and/or the power supplies connected to it (this is true for most computers!)

overall it looks like an operational computer, and very fast for a Z80. I even accessed Microsoft basic, ran a couple of programs and returned to CP/M with the system command.

Thank you, Jim.

[Updated on: Wed, 28 April 2021 15:52]

Report message to a moderator

Re: Z80ALL, A standalone Z80 computer [message #8551 is a reply to message #8546] Wed, 28 April 2021 07:22 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
Excellent, now you have an operational Z80ALL. It is an open hardware, so feel free to build more, modify, and even sell them at your discretion.

Another way of sending .hex file in TeraTerm (and most other terminal emulators) is just send the file to serial port. In TeraTerm it is File->Send file-> pick the file in drop down menu

Memory diagnostic will run continuously until terminated with a carriage return.

CP/M3 is not ported right now, so 'b3' command does not work.

The CP/M BIOS is modified so whatever is sent to serial port is also displayed on VGA monitor. This is the first half of adding VGA/keyboard to CP/M, the second half is getting input from either serial port or PS2 keyboard. The 2nd part is more challenging because BIOS needs to emulate the actions of terminals' escape sequences.

Your success has motivate me to work more on the Z80ALL homepage and continue the work on PS2 keyboard interface. I have ported CP/M3 to similar system so I should be able to port it to Z80ALL fairly quickly. I also have an improved 64x48 VGA display that separates each line of texts by 2 pixels vertically so they are more readable. So check the Z80ALL homepage occasionally for updates.

HiTech C is one of the better C compiler for Z80. Attached is HiTech C compressed with arj (htc309.arj), xmodem it to your Z80ALL and use the unarj.com file to decompress it. e.g., install HiTech C in drive C: with command
c:
a:unarj e a:htc309.arj

Zorkall.arj includes Zork1, 2, and 3. It is also an .arj file and decompressed with unarj.com like above.

Bill

Edit: 'b1' command normally brings up Steve Cousin's SCMonitor. It is currently not working, but SCMonitor can be ported easily (in fact with StarTrek game included) so that's another program to be added to Z80ALL homepage.
  • Attachment: htc309.ARJ
    (Size: 187.85KB, Downloaded 206 times)
  • Attachment: ZORKALL.ARJ
    (Size: 193.55KB, Downloaded 228 times)

[Updated on: Wed, 28 April 2021 07:28]

Report message to a moderator

Re: Z80ALL, A standalone Z80 computer [message #8556 is a reply to message #8551] Wed, 28 April 2021 11:28 Go to previous messageGo to next message
alkmar is currently offline  alkmar
Messages: 29
Registered: August 2019
Junior Member
Thank you for all of that, my 2nd Z80All is now operational and passed all test. I'll start working on the build documentation this weekend, once I have something reasonable I will run it by you as a sanity check and in case you have any input.

I figured for my Rev1 boards I would just make a three inch header to female DIN plug adapter, once you have completed your keyboard logic.

It's great you are making this project as "open hardware", it will be interesting to see what people come up with. As for selling boards, I don't think I will be getting into that business (but I may try my hand at playing around with the hardware as a learning experience.)

That said I want to learn more about how these logic arrays work and are programmed, now i have a few machines to learn on.

Ill will keep an eye on your website for future updates!

[Updated on: Wed, 28 April 2021 11:31]

Report message to a moderator

Re: Z80ALL, A standalone Z80 computer [message #8558 is a reply to message #8556] Wed, 28 April 2021 17:21 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
This is the DIN adapter I built for the PS2 keyboard interface. I do know it can receive characters from PS2 keyboard when I stopped working on Z80ALL. I think I was struggling with BIOS that can deal with VT100-like escape sequences and also the way keyboard is polled that requires a timer that I don't have. I'll need to reconstruct the problem that caused me to stop working on Z80ALL.
Bill
Re: Z80ALL, A standalone Z80 computer [message #8598 is a reply to message #8556] Wed, 05 May 2021 21:59 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
alkmar wrote on Wed, 28 April 2021 12:28

Ill will keep an eye on your website for future updates!
I don't have too much time for retrocomputing in next few months so I did the easy tasks for Z80ALL first; I updated Steve Cousin's SCMonitor and CP/M3 and documented them in the Z80ALL homepage. This is a link to the CF image file that contains CP/M 2.2, CP/M3, HiTech C, Zork, and SCMonitor. Unzip it and use Win32DiskImager to copy it to a 64MB or larger CF disk.

https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=b uilderpages:plasmo:z80all:z80all_rev1:z80all_64mb_cpm2_cpm3_ scmon_htc_zork.zip
Bill

Edit: This version of SCMonitor includes the StarTrek game. You can invoke the game by type
'b1' at Z80ALL monitor prompt to boot into SCMonitor
'wbasic' at SCMonitor prompt to warm boot into BASIC
'run' to execute the StarTrek game.

[Updated on: Wed, 05 May 2021 22:04]

Report message to a moderator

Re: Z80ALL, A standalone Z80 computer [message #9942 is a reply to message #8598] Mon, 30 May 2022 17:42 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
Resumed the work on Z80ALL slowly. I have got PS2 working and modified CP/M BIOS so it will take input either through PS2 keyboard or serial console and send output to both VGA monitor and serial console. The CPLD on Z80ALL does not have enough logic to do VGA, PS2, and serial port functions so Z80ALL needs a serial board on one of its expansion buses. In this case it is the Quad serial board. This may be a standalone computer, but it is still under development where the software toolchain is on my Windows PC so I need a way to transfer updated software to Z80ALL via serial port. Furthermore, while running in CP/M, it needs a way of transferring files which is via the serial port using XMODEM. The serial port speed is 115200.

All software are on the CF disk so when software development is all done, the CF image can be saved using Win32DiskImager. It is also quicker using Win32DiskImager to replicate all software to a new CF disk when building up a new Z80ALL computer.

Picture shows the standalone Z80ALL running CP/M2.2 with PS2 keyboard as input device and VGA monitor as the display. The USB serial port on the left of the picture is connected to TeraTerm on my PC.
Bill
Re: Z80ALL, A standalone Z80 computer [message #9944 is a reply to message #9942] Fri, 03 June 2022 17:15 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
/forum/index.php?t=getfile&id=2731&private=0
This is annotated Z80all+Quad_Serial

The design information are documented here.
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:z80all:z80all_rev1:z80allr1quad

At the bottom of the page is a compact flash image for Z80all without quad serial board. It is possible to run Z80all by itself as a standalone computer, but only way to exchange files to outside world is by physically moving the CF disk.
Bill

[Updated on: Fri, 03 June 2022 17:16]

Report message to a moderator

Re: Z80ALL, A standalone Z80 computer [message #9985 is a reply to message #9944] Fri, 24 June 2022 16:43 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
I have some spare logic on Z80all's CPLD so I added bit-bang I2C capability. Because of 25MHz Z80, the bit bang I2C is capable of 400K bit/sec transfer rate. Each frame of 128x64 OLED display is 1K bytes so the bit-bang I2C interface can transfer a frame in about 20mS. This opens the door for displaying video at a decent frame rate. One particular video I was interested is a shadow-art video called "BadApple". There is a 2-1/2 minutes version available online as an animated GIF running at 20 frames/sec. I haven't attempted it but I don't think Z80 has the computation power to decode animated GIF and drive I2C at 20 frames/sec rate, so what I did was pre-process the BadApple GIF into 3100 frames suitable to display on 128x64 OLED display and store the file on the CF disk (the file size is 3.1meg). I then run a Z80 program that reads the data from the CF disk and output it to 128x64 OLED display.
/forum/index.php?t=getfile&id=2741&private=0
This is a still photo of BadApple playing on Z80all I2C interface. A YouTube video of the full 2-1/2 minutes is here: https://www.youtube.com/watch?v=TfivnP7DpYc

I documented the process and design files here:
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:z80all:z80all_rev1:z80allr1quad#running_badapple_on_1 28x64_oled_display

Bill
Re: Z80ALL, A standalone Z80 computer [message #9992 is a reply to message #9985] Sun, 26 June 2022 09:20 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
The video on Z80all is a monochrome text display with programmable fonts and 64 rows, 48 columns texts with 8x8 pixel fonts. 64x48 is not much resolution for graphic display, but it is possible to define 16 set of fonts that represent all permutation of 2x2 array such that a 8x8 pixel block can display any combination of four 4x4 pixel sub-blocks. This scheme increases the screen resolution from 64x48 to 128x96, sufficient to do low-resolution graphic.

First example is the extension of BadApple animation to Z80all's VGA display. The original BadApple is in 4:3 screen ratio so it is perfect fit for 128x96 extended text display. So the original BadApple is downsized to 128x96, splited into 3109 frames, converted to byte output format and vertical 1-bit per pixel draw mode. The resulting binary file is loaded into CF disk as a contiguous 4.7meg file. The BadApple player for Z80all VGA display retrieves three 512-byte sectors per frame and translates the data to display as 128x96 image. While there are 50% more data than the 128x64 OLED display and more processing to combine 2x2 pixels into a text character, Z80all's VGA display is much faster direct-addressable I/O so it only took 11mS to retrieve and display a frame. 20 frames/sec is easily accomplished. This is YouTube video of BadApple playing on Z80all VGA monitor in 128x96 resolution. https://www.youtube.com/watch?v=KYVQk8Nyg84
/forum/index.php?t=getfile&id=2742&private=0

Second example is Conway's Game of Life. Earlier version of Life had an universe of 64x48 cells (https://www.youtube.com/watch?v=qt8Mx9dZJj0). Now its universe is expanded to 128x96 cells.
/forum/index.php?t=getfile&id=2743&private=0

----------
Update: the design files for BadApple on VGA monitor is here:
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:z80all:z80all_rev1:z80allr1quad#running_badapple_on_t ext-based_vga_monitor

design file for Life running on an universe of 128x96 cells is here:
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:z80all:z80all_rev1:z80allr1quad#game_of_life_on_vga_w ith_128x96_universe

[Updated on: Sun, 26 June 2022 18:48]

Report message to a moderator

Re: Z80ALL, A standalone Z80 computer [message #10254 is a reply to message #9992] Sun, 19 February 2023 05:50 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
Z80all is now a standalone CP/M computer. By itself it can accept input from PS2 keyboard and send output to VGA monitor and run CP/M 2.2. In this configuration it is isolated from the outside world. With installation of either quad serial or KIORC, the monitor software will auto-detect either board and accept inputs from either the serial port or PS2 keyboard and send output to both serial port and video.

I've made some improvement to the VGA circuit so values $80-$FF are reverse video of character set $0-$7F. When enabled, it will also generate 60Hz interrupt synchronous to vertical sync.

Picture shows Z80all with KIORC plugged in and Quad Serial at the foreground.
Bill
/forum/index.php?t=getfile&id=2849&private=0
Re: Z80ALL, A standalone Z80 computer [message #10627 is a reply to message #10254] Tue, 27 February 2024 19:54 Go to previous message
plasmo is currently offline  plasmo
Messages: 876
Registered: March 2017
Location: New Mexico, USA
Senior Member
This is a easier to build version of Z80ALL where CPLD is in PLCC84 package. This package is cheaper to acquire and if it doesn't work for some reason, it is easy to replace. Functionally Z80ALL rev3 is same as Z80ALL rev2. This is the homepage for rev3 of Z80ALL.
Bill
/forum/index.php?t=getfile&id=2997&private=0
Previous Topic: kiss68030 cp/m issues
Next Topic: Kiss68030 Updates


Current Time: Wed Apr 24 17:53:19 PDT 2024

Total time taken to generate the page: 0.00837 seconds