Close
0%
0%

Z80-MBC2: 4ICs homemade Z80 computer

8MHz Z80, 128kB banked RAM, RTC, Disk on SD, Basic and Forth interpreters, CP/M 2.2 and 3, cross Assembler and C (SDCC) toolchains

Similar projects worth following
The Z80-MBC2 is an easy to build Z80 SBC (Single Board Computer).It is the "evolution" of the Z80-MBC (https://hackaday.io/project/19000-a-4-4ics-z80-homemade-computer-on-breadboard), with a SD as "disk emulator" and with a 128KB banked RAM for CP/M 3 (but it can run CP/M 2.2 and QP/M 2.71 too).

It has an optional on board 16x GPIO expander, and uses common cheap add-on modules for the SD and the RTC options. It has an "Arduino heart" using an Atmega32A as EEPROM and "universal" I/O emulator (so a "legacy" EPROM programmer is not needed).

It is a complete development "ecosystem", and using the iLoad boot mode it is possible cross-compile, load and execute on the target an Assembler or C program (using the SDCC compiler) with a single command (like in the Arduino IDE).





* * HARDWARE OVERVIEW * *

The needed ICs for the "base system" are:

  • Z80 CPU CMOS (Z84C00) 8Mhz or greater
  • Atmega32A
  • TC551001-70 (128kB RAM)
  • 74HC00

If you want the 16x GPIO expansion (GPE option) add a MCP23017 too.

The schematic and the BOM are attached in the Files section. The MCU Atmega32A is used as universal I/O subsystem, as Eeprom, and as reset and 4/8MHz clock generator for the Z80 CPU.
Inside the Atmega32A it is flashed an Arduino bootloader taken from here, and it is possible to use the Board Manager of the Arduino IDE to "import" it.

Flash the Arduino bootloader at first (with the method you prefer), next you can upload the IOS "sketch" (the I/O Subsystem that interacts with the Z80 bus and "virtualizes" the EEPROM and all the peripherals seen by the Z80 CPU) using Arduino IDE.

You can use the on board ICSP port J3 (also called ISP port) to write the bootloader, but remember to disconnect any other connector when using it. Also both SD and RTC modules (if present) must be removed from...

Read more »

SD-S220718-R260119-v2.zip

The content of the microSD needed to run CP/M 2.2, CP/M 3.0 and QP/M 2.71 with IOS S220718-R260119. Adds the XMODEM protocol support. Fixes a issue with MBASIC.

Zip Archive - 2.76 MB - 03/24/2019 at 17:15

Download

S220718-R260119_IOS-Z80-MBC2.zip

The sketch for the IOS (with the needed libraries). Unzip into a folder and open the .ino file (with Arduino IDE). IOS is required for CP/M 2.2, CP/M 3.0 and QP/M 2.71 (the SD module is mandatory). Adds the XMODEM protocol support. NOTE: now the default serial speed is 115200 bps.

Zip Archive - 38.24 kB - 03/10/2019 at 15:19

Download

S220718-R260119_IOS-Z80-MBC2.ino.with_bootloader_atmega32_16000000L.hex

The sketch for the IOS in executable format (.HEX) with the bootloader. This executable file is intended for use with a programmer as the Atmel Ice or AVRISPmkII or others (Fuse bits: High Byte 0xD6, Low Byte 0xAF, Lock Byte 0xCF)

x-hex - 55.75 kB - 03/12/2019 at 16:41

Download

STARTREKV2.BAS

The famous game Super Startrek kindly debugged by a RetroBrew Computer Forum user. Play with Caps-Lock activated! Now the animation works...

bas - 20.18 kB - 08/07/2018 at 16:32

Download

TREKINST.BAS

Instructions for STARTREKV2.BAS

bas - 6.80 kB - 08/04/2018 at 21:48

Download

View all 11 files

  • 1 × See the file "A040618 BOM v2.ods" in the FILES section.

  • uCom is out!

    Just4Fun05/29/2019 at 09:20 0 comments

    I've done a separate "project page" for uCom (RS232 add-on card for the Z80-MBC2) here.

    The uCom board, as the uTerm VT100 board, has a "transparent" USB-serial adapter connector, so you can upload firmware to the Z80-MBC2 (using Arduino IDE) or load an Intel-Hex file (with iLoad) or use XMODEM to exchange files with a PC (running a terminal emulator that supports XMODEM file transfer) while the uCom is in use.

    Both the "mixed" power supply scenarios (USB-serial adapter not powered from USB but Z80-MBC2 powered and vice-versa) are managed by the HW, so you don't need to worry about it.

    uCorm can be mounted horizontally or vertically to the Z80-MBC2.

    The 3D printed custom angled brackets .STL files are the same of the uTerm.






    Here connected with a "vintage" RS232 terminal (Ampex 210 relabeled Kyber):

  • FuzixOS preview: Unix for Z80!...

    Just4Fun05/21/2019 at 17:14 1 comment

    First test with FuzixOS on the Z80-MBC2 (many many thanks to Alan Cox...)!:

    Stay tuned...

  • uTerm is out!

    Just4Fun05/14/2019 at 07:40 0 comments

    I've done a separate "project page" for uTerm here.

    uTerm can be mounted horizontally or vertically to the Z80-MBC2.

    All the details including the 3D printed custom angled brackets .STL files are there.

    uTerm is a VT100 terminal with VGA out and  PS/2 keyboard with a power supply (for the Z80-MBC2 too). It has a "transparent" USB-TTL adapter connector, so you can upload firmware or load an Intel-Hex file (with iLoad) while the card is inserted. Both the "mixed" power supply scenarios (USB-TTL adapter not powered from USB but Z80-MBC2 powered and vice-versa) are managed. The video terminal is based on the ChibiTerm (https://hw-by-design.blogspot.com/2018/07/low-cost-vga-terminal-module-project.html).








  • uCom preview: a RS232 adapter for the Z80-MBC2...

    Just4Fun04/05/2019 at 17:00 0 comments

    Currently working on a RS232 add-on card for the Z80-MBC2.

    As the uTerm board, it has a power supply for the Z80-MBC2 and a "transparent" USB-TTL adapter connector, so you can upload firmware or load an Intel-Hex file (with iLoad) while the card is inserted. Both the "mixed" power supply scenarios (USB-TTL adapter not powered from USB but Z80-MBC2 powered and vice-versa) are managed.


    Here connected to an Ampex 210 terminal (sold and relabeled by Kyber):


    Stay tuned...

  • New IOS for XMODEM support

    Just4Fun03/10/2019 at 10:54 4 comments

    * * * UPDATE!!! * * * 

    There is a problem with this new IOS with the MBASIC Basic interpreter. The "GPELED.BAS", "RTC.BAS" and "USERLED.BAS"  example programs don't work anymore. It seems that the way MBASIC does some I/O checks using the new virtual serial port interferes with others virtual I/O ports. Further analysis is required...


    * * * UPDATE 2 * * *

    I think to have found the origin... now thinking to a possible solution...


    * * * UPDATE 3 * * *

    The new SD image (SD-S220718-R260119-v2.zip) is out in the Files section. It fixes the MBASIC issue for CP/M 3 and 2.2. Please update your SD image.


    * * * * * *

    Because some people requested to use the XMODEM protocol to exchange files through the serial port, I've added the support for this protocol into CP/M 2.2 and CP/M 3 (banked only).

    XMODEM needs a full 8 bit binary data transfer, and this is not possible with the CON port (the CP/M port used for the console) with a "legacy" CP/M system installation because the CP/M Alteration Guide says to strip the eight parity bit when reading a byte from the console input.

    More, because the Z80-MBC2 uses a virtual serial port without handshaking there is also a timing problem when dealing with the 128 bytes packets used by the XMODEM protocol.

    So the support to the XMODEM protocol has requested changes in the IOS and  in the CP/M BIOS, and also in the Arduino core to extend the serial input buffer.

    Please note that with the new IOS the default speed of the serial port is now 115200 bps.

    To have the XMODEM support active, before the update of the new IOS firmware and the new SD image (see in the Files section),  you have to manually create a new "board variant" in the Arduino IDE and then change the default Rx input buffer size to 128 bytes in the "core" of this new variant.

    If you aren't interested into the XMODEM support, you can simply update the IOS and the new SD image as usual  without the need to create the new board variant. In this case the XMODEM will not work in the receive direction, but only in the send direction (from the Z80-MBC2 to a PC with a terminal emulator).



    HOW MANUALLY CREATE A NEW BOARD VARIANT (LINUX)

    In the following I'll assume an Arduino IDE 1.8.5 installation on a linux host and the MightyCore ver. 1.0.8. Anyway I've tried to make the procedure enough general to be used for other versions too.

    ... Read more »

  • uTerm preview: a VT100 terminal for the Z80-MBC2...

    Just4Fun12/28/2018 at 10:16 2 comments

    Currently working on a VT100 terminal with VGA out and  PS/2 keyboard with a power supply (for the Z80-MBC2 too). It has a "transparent" USB-TTL adapter connector, so you can upload firmware or load an Intel-Hex file (with iLoad) while the card is inserted. Both the "mixed" power supply scenarios (USB-TTL adapter not powered from USB but Z80-MBC2 powered and vice-versa) are managed. The video terminal is based on the ChibiTerm (https://hw-by-design.blogspot.com/2018/07/low-cost-vga-terminal-module-project.html).

    Stay tuned...


    Working on a new revision (A071218-R250119):


    Waiting the new PCB, I'm playing with the current PCB "patched" to perform like the new one.
    Here a session with Wordstar 4 configured to use all the 30 rows of uTerm:

    In the photo you can see that also the serial-USB adapter is attached to the uTerm using the "transparent" port. This allows to use two keyboards and two monitors in the "same" time (one keyb and monitor attached directly to the uTerm, and another keyb and monitor of the terminal emulator on a PC connected with the serial-USB). This allows also to use XMODEM (e.g. between the Z80-MBC2 and a PC) or to flash the Atmega firmware with the uTerm connected.

    Or you can use the monitor attached to the uTerm and the keyboard of the terminal emulator on a PC. This is exactly the "configuration" I used in the photo to make the test (as you can see, there isn't any keyb attached to the uTerm).


    Catchum demo with uTerm (a sort of Pacman...). Leaving the game alone, after a while the "demo mode" starts:

    Here last version assembled horizontally with the Z80-MBC2:


    Currently making custom 3D printed mounting brackets for a solid vertical assembling:

  • Overclocking the Z80-MBC2...

    Just4Fun11/02/2018 at 09:51 0 comments

    Because the Mighty Core gives the chance to choice a 20MHz bootloader, I've decided to try to "overclock" the Atmega32A using a 20MHz quartz:

    You don't need others HW changes, just use a 20MHz quartz instead of a 16MHz one. The Z80 clock speed will be at 10MHz.

    You have to select the "20MHz external" option in the "Toos" menu of Arduino IDE before flashing the 20MHz bootloader:


    Of course you need to load the sketch again (using the "20MHz external" option). IOS will display the new clock speed:


    Remember that using a 20MHz quartz you are out of the Atmega32a specifications (the Atmega32a is rated at 16MHz max.), so you are in a "grey area" where things "may works"...

  • CP/M 3 up and running on the Z80-MBC2!

    Just4Fun10/11/2018 at 06:58 0 comments

    With the latest IOS revision and the corresponding new SD image (see the Files section) there is one more option: the CP/M 3.0!

    With CP/M 3.0 it is possible use the 128KB banked RAM to have a wider user area (TPA) for programs and a more "evoluted" OS.


    TWO VERSIONS

    Just as example of how it is easy with CP/M 3.0 manage multiple configurations, I've done also a "non-banked" 64KB version. The switch from one version to the other can be done simply running a batch from the console itself.

    I've prepared two simple batch files to do that. From drive A: the command:

    submit sys64

    will set the 64KB "non-banked" version and then reboot the system.

    To activate again the 128KB "banked" version give the command (from drive A:):

    submit sys128

    NEW DISKDEFS FILE

    To use cpmtools or cpmtoolsGUI with the virtual disks of the CP/M 3.0 environment, you must update the DISKDEFS definition file (from the SD in the folder <SD>/cpmtools/) and use the "z80mbc2-cpm3" entry for all the 16 disks:

    Please note that for the CP/M 3.0 environment all the 16 virtual disks have the same structure and for this there is only one entry for all the CP/M 3.0 virtual disks.


    AUTOEXEC

    The AUTOEXEC switch for CP/M 3.0 works in a different way from the CP/M 2.2 and QP/M 2.71 implementations.

    Now there is a custom utility (AUTOEXEC) that checks the IOS flag and sets the exit code accordingly (using the BDOS function 108). This allow to use the CP/M 3.0 batch conditional execution (see the CP/M 3 Programmer Guide par. 1.6.3) to run any wanted command or program based on the status of the IOS AUTOEXEC flag.

    I've prepared an example using an other CP/M 3.0 feature, the "PROFILE.SUB" batch that is automatically executed at cold boot (if it exists). To activate it (in the drive A:) rename the file PROFILE.SU as PROFILE.SUB with the command:

    ren profile.sub=profile.su

    Now you can see how it works setting the AUTOEXEC flag on or off with the IOS "Select boot mode or system parameters" menu.

  • QP/M 2.71 up and running (with IOS multi-boot management...)!

    Just4Fun09/17/2018 at 18:26 0 comments

    With the latest IOS revision and the corresponding new SD image (see the Files section) there is an interesting alternative to CP/M developed by MICROCode Consulting that supports also file timestamping, and it is 100% CP/M 2.2 "compatible".
    MICROCode Consulting has released the original installation files and all the documentation in their site with the "restricted usage" condition, that means free for non-commercial use and for personal use only.

    To enable timestamping (see upper screenshot) you need to install the optional RTC module.
    I suggest to read the QP/M documentation for the various commands (see the Downloads section in their site).


    AUTOEXEC

    The QP/M uses for the batch file the .QSB extension. So the AUTOEXEC file is now renamed AUTOEXEC.QSB. To enable the AUTOEXEC execution after the cold boot change the corresponding state to ON from the usual IOS boot selection menu. In the drive A: there is an example of AUTOEXEC.QSB file ready to run.


    IOS MULTI-BOOT MANAGEMENT

    Now the IOS has a new entry (8) in the boot menu to manage the OS multi-boot configuration:

    Each OS is associated with a set of virtual disks called "Disk Set", and changing the "Change Disk Set..." entry (8) will switch all the virtual disks of his "environment".

  • CP/M 2.2 up and running on the Z80-MBC2!

    Just4Fun09/08/2018 at 18:24 0 comments

    The new IOS is out, and the CP/M 2.2 OS with it, and 16 disks are available (from A: to P:), each 8Mbyte large.

    With IOS (not for IOS Lite) the SD module is mandatory to run not only CP/M 2.2 but also for the stand-alone Basic and Forth interpreters. You need a microSD card (FAT16 and FAT32 are both supported) to store the content of the SD image file, retaining the directory structure.

    Pay attention on how the modules are inserted because their positions are fixed and absolutely not swappable (see the upper photo).

    To add, extract or delete files inside a virtual disk (virtual disks filenames on SD are "DS0Nxx.DSK", where "xx" is the disk number) it is possible use the cpmtools or cpmtoolsGUI utilities, with the diskdefs file in the \cpmtools directory of the SD zipped file.

    I suggest to use  cpmtoolsGUI (only for Windows) because is very easy.

    Unzip it into a folder and put the diskdefs file in the same folder.
    Select "z80mbc2-d0" only for disk 0, and "z80mbc2-d1" for the others (disk 1 - 15):

    NOTE: use cpmtoolsGUI only to add, extract or delete files inside a virtual disk. Not try to create new virtual disks files with cpmtools or cpmtoolsGUI because further processing is required for a valid virtual disk file.

View all 11 project logs

Enjoy this project?

Share

Discussions

Jim Bailey wrote 4 days ago point

Is it possible to build this system with a z80 rated for and running at 20mhz?

  Are you sure? yes | no

Just4Fun wrote 2 days ago point

The Z80 clock is generated by the Atmega32 and can't be greater than the half of the Atmega clock.

  Are you sure? yes | no

psmart wrote 6 days ago point

Hi,

Please ignore below, the fuses were set incorrectly, CKSEL3:0 were set as 0001!!

  Are you sure? yes | no

psmart wrote 6 days ago point

Hi,

Firstly, excellent project Just4Fun, a hark back to hard but fun computer times, nice professional work, thank-you.

Unfortunately Im having issues, I took to building two boards and both exhibit an identical issue so I was wondering if you have come across it. They are both programmed with the HEX file on your file list.

Basically, the IOS light blinks very slowly (every 2 seconds) and there is serial output (either after a plain reset or User+Reset) but not to a baud rate minicom can handle. The SD LED also flashes around the same time serial output occurs. Probing with a scope I noticed that the Crystal wasn't oscillating, I removed the crystal and caps and I still get exactly the same behaviour, it powers up, IOS light blinks slowly and serial output occurs but at a non-standard baud rate. There is also no activity on the Z80 side (ie. reset, D0-D7 are all idle).

First guess I would think the ATMEGA is using an internal oscillator ignoring the external crystal but without delving into the Sketch used to build the HEX file I can't be sure.

The only part Ive deviated from vs the schematic is a 1K resistor for R19 (should be 1K2) as I didn't have any in my parts box otherwise all is per the schematic.

Hence have you any ideas? Is there an issue with the HEX sketch?

Many thanks in advance for any help you can provide.

  Are you sure? yes | no

Jim Bailey wrote 06/16/2019 at 04:43 point

Built one and it worked on the first attempt.  I really love the flexible boot loader, whereby you can load and switch between OS's quickly.  Its fun to get to play with CP/M after all these years.

  Are you sure? yes | no

Linker3000 wrote 05/18/2019 at 20:58 point

Hi @Just4Fun,

Turbo pascal  compiled programs - even a 'Hello world' - exit to a CP/M warm boot. Is this expected as I don't experience this on other boards (RC2014 and a Grant Searle build).

Thanks

  Are you sure? yes | no

Just4Fun wrote 05/19/2019 at 08:56 point

I think this is normal. What type of test have you done?  It is on CP/M 2.2 or 3?
 Could you add more details?

  Are you sure? yes | no

Linker3000 wrote 05/19/2019 at 10:05 point

Hi,


Yes, this is on 2.2 with the following program (compiled to a .com):


  program helloworld;

  begin
    writeln ('Hello world');
  end.

I'm now wondering whether all systems do a CP/M warm start after running it, but only the MBC2 prints a message about it?

  Are you sure? yes | no

Just4Fun wrote 05/19/2019 at 15:35 point

The message on CP/M 2.2 warm boot is my own implementation...

  Are you sure? yes | no

Linker3000 wrote 05/17/2019 at 22:28 point

Hi Everyone, I've just updated my Z80 board port/LED writer utility so that it works with the GPIO ports on the Z80-MBC2 (if you've fitted the MCP23017 chip). You'll find the source code and a compiled (.com) version at the link below - upload to the Z80-MBC2 using XMODEM. Check out porter.pas and porter .com at https://github.com/linker3000/Z80-Board. If you do hook LEDs up to the ports, don't forget the current limiting resistors!

  Are you sure? yes | no

Koset *️⃣ wrote 05/05/2019 at 14:19 point

Q: I booted for the first time (yay) and chose BASIC. What's the procedure to exit back to the boot menu? "system", "exit", "bye" yield a syntax error.

I used the ICSP method to burn the boot loader.
Thanks!

  Are you sure? yes | no

Just4Fun wrote 05/05/2019 at 15:36 point

To return to the system boot menu you need to push down both the User and Reset keys, then release only the Reset key holding the User key down, and when the menu appears (or the User led turns off) release the User key (see also the paragraph

HOW ENTER IN THE "SELECT BOOT MODE OR SYSTEM PARAMETERS" MENU:"

in the Description)

  Are you sure? yes | no

Koset *️⃣ wrote 05/05/2019 at 15:38 point

Thanks very much!

  Are you sure? yes | no

jonas.o.gustavsson wrote 05/03/2019 at 11:06 point

Just built my first Z80-MBC2! Actually it is my first "homebuilt" computer.. I found a couple of Z80 CPUs inside some roadside junk a couple of years back. This is really a great project, my hats off to its creator and everyone that has contributed!

  Are you sure? yes | no

Paul Bristow wrote 04/17/2019 at 18:06 point

I just assembled my kit from Mc John https://shop.mcjohn.it/en/diy-kit/22-32-kit-z80-mbc2.html.  Worked first time.  Excellent work.  Thank you everyone!  Now I'm battling cpm tools on MacOS Mojave to try to transfer a few things across.  It feels very early 80s. :-)

  Are you sure? yes | no

Frank N. Stein wrote 04/04/2019 at 19:29 point

Hi,

your "LADDER" is really nice! - I found only V1.10 on the web and have problems to configure it. :-(

Where did you get your V1.30? - and how did you configure it??? Did you defined "Digital VT100" manually?

  Are you sure? yes | no

Just4Fun wrote 04/05/2019 at 10:44 point

Here: http://web1.foxhollow.ca/Foxhollow-cpm.zip

Ladder 1.30 wortks "out the box"...

  Are you sure? yes | no

Frank N. Stein wrote 04/05/2019 at 19:36 point

Thanks for your link! - It is really called "ladder" in this ZIP-file? I can't find it... :-(

  Are you sure? yes | no

villaromba wrote 04/06/2019 at 15:16 point

Ladder, along with many other games is in the packages folder ( games.pkg). You need to use the instructions at https://web1.foxhollow.ca/cpm/ if you haven't used depkg before.

  Are you sure? yes | no

Just4Fun wrote 04/08/2019 at 09:26 point

Exactly... :)

  Are you sure? yes | no

Frank N. Stein wrote 04/10/2019 at 17:27 point

Thanks! I didn't know DEPKG yet...

Is there actually a way to open these packages under Windows to look inside?

  Are you sure? yes | no

villaromba wrote 04/10/2019 at 20:35 point

Not so sure you can under windows but it's not difficult in CP/M :-

Although you can use xmodem to transfer a single file to your CPM machine, it is
a time consuming task to transfer software collections with large numbers of files.

Step 1: Using the "Binary to CPM Package" utility, you can combine many files to a single file called a package.  (games already packaged)

Step 2: Use xmodem to transfer the package & depkg.com into CPM.

Step 3: Use depkg.com to extract the original files.

Example:  depkg games.pkg

  Are you sure? yes | no

Frank N. Stein wrote 04/14/2019 at 16:33 point

@villaromba: Thanks for your detailed explanation - that works!

  Are you sure? yes | no

Frank N. Stein wrote 03/12/2019 at 08:24 point

@Fabio:

Many, many thanks for the X-Modem implementation!!! Can you maybe post the matching Arduino HEX file? - that would surely be easier than rebuilding the whole Arduino IDE...

THANK YOU VERY, VERY MUCH FOR YOUR EFFORT!!!

  Are you sure? yes | no

Just4Fun wrote 03/12/2019 at 14:21 point

Ok, I'll upload the .hex executable (version with the bootloader included) this evening...

  Are you sure? yes | no

Just4Fun wrote 03/12/2019 at 16:50 point

Done!

  Are you sure? yes | no

Frank N. Stein wrote 03/12/2019 at 20:19 point

FANTASTIC! Xmodem works like a charm! Really super! This is a great enhancement!!! Thank you very much!

UPDATE:

I have problems with "GPELED.BAS", "RTC.BAS" and "USERLED.BAS" - it seems that all programs don't work anymore?!?

  Are you sure? yes | no

Just4Fun wrote 03/13/2019 at 18:05 point

Just tested now... They works now only with QP/M 2.71 that I left untouched and uses the old serial I/O mode.... hmmm...
I think to have an idea of the problem, and it should affect only "slow" interpreted programs (not the compiled one...)...
Further analysis is required...

  Are you sure? yes | no

Just4Fun wrote 03/14/2019 at 07:35 point

I think to have found the cause... now thinking to a possible solution...

  Are you sure? yes | no

Frank N. Stein wrote 03/25/2019 at 12:10 point

Your "SD-S220718-R260119-v2.zip" works very well (I tested Xmodem, "RTC.BAS", "USERLED.BAS" and my own programs on CP/M 3 - it seems that everything is now working properly)! THANKS!

  Are you sure? yes | no

asorc wrote 03/04/2019 at 18:52 point

First time It started I selected basic... Then, It appeared memory top? message, and since then, when I press reset, It says cold or warm start? If I select cold, It becomes crazy, if I select warm, It says ok. I am confused.

  Are you sure? yes | no

Just4Fun wrote 03/04/2019 at 19:23 point

You must press "Return key" at "Memory top?" and then select cold...

  Are you sure? yes | no

asorc wrote 03/04/2019 at 15:44 point

Is It needed a vt 100 terminal to run the z80-mbc2? Or any serial monitor works the same? 

  Are you sure? yes | no

Just4Fun wrote 03/04/2019 at 15:52 point

You can use any serial monitor. Some programs (video editors...) require a defined kind of monitor to work properly (generally they have a sort of config). Try and see...

  Are you sure? yes | no

asorc wrote 03/04/2019 at 18:45 point

Ok. Well... Something happened. I changed the baud option of the serial monitor of arduino ide, and It works for 9600 baud. Now, what's the different between cold and warm start? And What does "memory top?" means?

  Are you sure? yes | no

georgedb wrote 02/15/2019 at 11:07 point

Sorry, one more: can a 1N5819 be used instead of the 1N5817? When I look here [https://www.vishay.com/docs/88525/1n5817.pdf], I see slightly different parameters, and possibly the most important, slightly different forward voltages...

  Are you sure? yes | no

Just4Fun wrote 02/15/2019 at 12:20 point

I think yes...

  Are you sure? yes | no

georgedb wrote 02/15/2019 at 14:08 point

Will give it a try once I have received the components I don't have, and will report here.

  Are you sure? yes | no

georgedb wrote 02/15/2019 at 08:29 point

What a great project! I looked at the BOM, and there are quite a few components I already have. I tried to find (European) replacements for Q1/2 (2N2907), but failed. I guess this transistor is not critical in terms of parameters? Can any PNP transistor with the same pinning be used in this place, or are there specific parameters that play a role? And/or, does anybody know a good (European) replacement?

What I got in my parts bin: BC213, BC516, BC557, BC558, BC560C, ZTX213, ZTX550, ZTXC551

  Are you sure? yes | no

Just4Fun wrote 02/15/2019 at 08:46 point

Hi, you can use any "generic" PNP transistor. BC557 / BC558 will do the job...

-> NOTE: Check on the datasheet if they have the same pins placement!!! <-

  Are you sure? yes | no

georgedb wrote 02/15/2019 at 10:58 point

Perfect, thnx for your help! Always better to use what I already have ;-)

  Are you sure? yes | no

Linker3000 wrote 02/17/2019 at 22:34 point

I know you may not have them, but 2N3906 is a good replacement, has the same pinout and is easier to source; that's what I am using because I had some in my stock.

  Are you sure? yes | no

Peabody1929 wrote 02/12/2019 at 21:40 point

I built a second system.  It is up and running just fine with a HM628128ALP-7 SRAM as well.  To test the board I booted CP/M and ran MBASIC.  I opened the "Examples with Basic" on my PC, copied the USER LED BLINK example and pasted it into Tera Term at the MBASIC prompt.  This is a very easy way to get a program into the system.  Then I did SAVE "BLINK",A to put the app into the SD Card disk file.  RUN executed the app and blinked the LED.  All in all, it took about a minute the run the app to test the LED.  Very nice!

  Are you sure? yes | no

Linker3000 wrote 02/09/2019 at 13:55 point

Just FYI, the board works fine with HM628128ALP-7 SRAM and should also be OK with AS6C1008-55PCN.

  Are you sure? yes | no

asorc wrote 02/07/2019 at 16:15 point

Hello,

Let's see if some of you have had the same or a similar issue. So, I do not have a way to upload sketches in windows 7, but I do have a raspberry pi model b. Therefore, I use it to upload hex files to a blank atmega32a. I compile the sketches with the mightycore library, wire, etc. in windows 7, using arduino ide, and then take the hex files to burn them with the raspberry pi to the atmega32a using six wires and the GPIO connections of the raspberry pi. The result I get when I set up the computer to power it on and start the serial monitor of arduino ide, is that the IOS led starts to blink, but at a quite slow rate, and when I open the terminal, nothing happens. Has any of you had a similar problem? I uploaded a hex file that has the bootloader included according with its name, but I do not know if everything has gone really well, apparently avrdude tells me so, or if any IC is damaged. Thanks to all, in advance.

  Are you sure? yes | no

jmarik wrote 02/07/2019 at 21:16 point

Are the fuses set correctly? I used CF, D9.

  Are you sure? yes | no

asorc wrote 02/07/2019 at 22:24 point

I don't remember which ones come in the configuration of avrdude, because I have not touched anything else appart from the GPIO pins I use. I will have a look at it.

  Are you sure? yes | no

Linker3000 wrote 02/09/2019 at 14:09 point

Confirming the fuses (CF D9). 

I ended up using a TL866 programmer because I could not get ICSP/USBASP to work. When I went back to basics later, I found that one of the wires in the ribbon cable I was using between the USBASP and the board header was open circuit! I only discovered this later when I could not get serial comms to work using the same cable! It's always the 'little things'!

  Are you sure? yes | no

asorc wrote 02/10/2019 at 01:01 point

Are these fuses the high and the low respectively? What about the lock byte?

I see there are different settings. I have seen the boards.txt of mightycore library, but It is not entirely clear to me which fuses It burns.

  Are you sure? yes | no

Frank N. Stein wrote 02/08/2019 at 09:00 point

I used "optiboot_flash_atmega32_UART0_115200_16000000L.hex" with

High Byte 0xD6
Low  Byte 0xAF
Lock Byte 0xCF

and it works very well...


  Are you sure? yes | no

asorc wrote 02/08/2019 at 12:48 point

Thanks for showing me where the problem is mostramos likely to be. I am checking the avrdude.conf file, in the m32 section, and I see some subsections memory lfuse, memory hfuse and memory lock, and below, without a write option, memory signature, memory calibration. 

Definitely I have to get more knowledge. I guess these are some default values I can change there or externally, without modifying this. I have seen ways to do It with avrdude. I will have a look at it.

Thanks, any help is very very welcome. 

  Are you sure? yes | no

Frank N. Stein wrote 02/06/2019 at 13:27 point

Hi, has anyone managed to send files with Kermit, Xmodem, Qterm or similar via the console interface? I have tried different versions of Kermit (with Terraterm on the PC side) that should have worked - unfortunately without success...

Z80-MBC2 does not support hardware handshaking, but Kermit should also work without it... :-(

Any help is appreciated!

  Are you sure? yes | no

RWDEANE wrote 02/12/2019 at 15:22 point

Currently there is  probably a bug in the z80mbc2 serial handling. An earlier message states that xmodem needs hw handshaking but this is untrue if configured correctly. Xmodem for RC2014 works by default without handshaking using console con: rather than more specific hardware access, I have used that on several flavours of rc2014 computer. I would expect the same version of xmodem to work on z80mbc2. Xmodem is expected to work to the same port that the serial terminal console is using (i.e. the one CON:)

Generic Kermit should work if the system bios supports IOBYTE (it does on rc2014) but I've never tried that on a one serial port system. It is possible that use of Kermit to con: would conflict with use on the same con: for the system console. If Z80MBC2 supported Xmodem and CPM BIOS IOBYTE then I would try Kermit to see how it behaves.

I believe Qterm makes too much detailed access to hw ports which are not virtualised in Z80MBC2 so Qterm cannot work. It may be possible that someone has made a more generic patch for Qterm, but again only worth considering when Xmodem is known to work.

It would really turn Z80MBC2 into an ace system if it supported Xmodem, currently that is blocking me from giving the system a higher star rating.

  Are you sure? yes | no

Michael Fong wrote 01/22/2019 at 07:43 point

vt100 card is a great addition.  If you're looking at doing another revision, I wonder if you'd consider some additional mounting holes at each corner of the card for horizontal mounting? Then you could mount it in a flat rectangular box.

  Are you sure? yes | no

Just4Fun wrote 01/22/2019 at 08:46 point

Hi, there are already two more holes for horizontal assembling... they aren't exactly on the corner, but a little more internal.

I'm "running" an other addition board, uCom (https://twitter.com/Just4Fun_J4Fun/status/1083675698412249089) that shares same dimension and holes position...

  Are you sure? yes | no

Michael Fong wrote 01/22/2019 at 11:31 point

Ooopppsss sorry didn't see them. Nice!  My friend and I really looking forward to building it.

Great work :-)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates