Sharp MZ-800 Upgrades
The Sharp MZ-800, the successor to the Sharp MZ-700, rectifies many of the shortcomings of earlier models and brings in MZ-80B technology to what was basically a personal computer. This
saw the machine being used more in business and wasnt so widely adopted in the personal market, perhaps because of a plethora of more advanced home computers arriving at the time.
The machine looks very similar to the MZ-700, albeit more of an ugly duckling due to the addition of an internal dock for 2 expansion cards. Its design goals were to maintain full compatibility with the MZ-700 and as such maintains all of the MZ-700 ports, expansion options and compatibility with the large pool of MZ-700 software. In addition it added much needed features, namely: 16-32K Video RAM offering 640x200 colour pixel graphics, programmable character generator, dedicated sound generator IC, 80 column display, expansion dock, quick disk drive etc. The additional hardware opened up the use of CP/M, more advanced music/games and the ability to port MZ-700 and some MZ-80B graphics based programs.
I wasnt lucky enough to own an MZ-800 at the time they were sold but I have obtained a good example (actually the 2nd one) which I fully renovated and which all these developments are based on.
This section of my projects portfolio is dedicated to the Sharp MZ-800. A lot of my earlier projects were to rectify shortcomings of the MZ-80A/MZ-700 such as 80 column display and pixel graphics, features which the MZ-800 already has, so I havent as yet spent much time upgrading this machine. I intially tried the tranZPUter SW inside the machine and it appeared to work, the machine ran as expected and the K64F could query the machine.
Recently I started to advance the project and I discovered a fatal flaw in the MZ-800 design not found in any of the other Sharp MZ series machines, I'm guessing Sharp had beancounters saving a few Yen as they opted to use 74LS365 devices for bus buffering and no data bus buffer, 4 chips for less features than the other Sharp MZ series machines which used full address, data and control buffering. To further this penny pinch, they opted to hard ground the buffer control pins rather than through the normal inverter fed from the Z80 BUSACK signal, probably to save adding a 74LS04 into the design. What this means is that bus mastering is not possible on the MZ-800 in its original configuration and I will have to craft a tranZPUter SW board with optional 244/245 bus drivers in order to work with this machine without modifying it. In order to progress the project without having to spend time and money on a new tranZPUter design not knowing if there would be issues, I set about making a modification to the motherboard! Sacrilege I know, but something I can reverse at a later date when the tranZPUter SW has been updated.
In addition to extra hardware being necessary for the tranZPUter SW to work in an unmodified MZ-800, a number of updates need to be made to the CPLD and software base to accommodate the memory map differences. I also needed to obtain an assembler source of the MZ-800 IPL ROM and after trawling the web, eventually came across an old assembly listing in Czech from the Czech Sharp Users Club, which was about 75% complete, it had missing data areas and no BASIC IOCS so I set about converting the listing into an assembler file compatible with the Glass Z80 assembler, converting the missing functionality and piecing it all together along with Czech->English translation of the comments. This source file is necessary as the only real way to blend TZFS into the MZ-800 IPL is to offer it as a boot time option, ie. T - TZFS along with the Monitor, Floppy, CMT options. If the user presses T then the K64F would load up TZFS and execute it, at all other times the machine would behave in its original configuration.
All the projects follow a simple rule, 'No permanent physical changes' (famous last words on the initial project but will be corrected with a new tranZPUter SW release) - from my perspective, antiques shouldnt be destroyed and any changes should be reversible to restore the machine to original factory state. In saying that, enhancements to make the computer more useable are always welcome, hence these projects, enhancements without consequence.
The following diagram outlines the upgrade path available for the Sharp MZ-800.
The machine looks very similar to the MZ-700, albeit more of an ugly duckling due to the addition of an internal dock for 2 expansion cards. Its design goals were to maintain full compatibility with the MZ-700 and as such maintains all of the MZ-700 ports, expansion options and compatibility with the large pool of MZ-700 software. In addition it added much needed features, namely: 16-32K Video RAM offering 640x200 colour pixel graphics, programmable character generator, dedicated sound generator IC, 80 column display, expansion dock, quick disk drive etc. The additional hardware opened up the use of CP/M, more advanced music/games and the ability to port MZ-700 and some MZ-80B graphics based programs.
I wasnt lucky enough to own an MZ-800 at the time they were sold but I have obtained a good example (actually the 2nd one) which I fully renovated and which all these developments are based on.
This section of my projects portfolio is dedicated to the Sharp MZ-800. A lot of my earlier projects were to rectify shortcomings of the MZ-80A/MZ-700 such as 80 column display and pixel graphics, features which the MZ-800 already has, so I havent as yet spent much time upgrading this machine. I intially tried the tranZPUter SW inside the machine and it appeared to work, the machine ran as expected and the K64F could query the machine.
Recently I started to advance the project and I discovered a fatal flaw in the MZ-800 design not found in any of the other Sharp MZ series machines, I'm guessing Sharp had beancounters saving a few Yen as they opted to use 74LS365 devices for bus buffering and no data bus buffer, 4 chips for less features than the other Sharp MZ series machines which used full address, data and control buffering. To further this penny pinch, they opted to hard ground the buffer control pins rather than through the normal inverter fed from the Z80 BUSACK signal, probably to save adding a 74LS04 into the design. What this means is that bus mastering is not possible on the MZ-800 in its original configuration and I will have to craft a tranZPUter SW board with optional 244/245 bus drivers in order to work with this machine without modifying it. In order to progress the project without having to spend time and money on a new tranZPUter design not knowing if there would be issues, I set about making a modification to the motherboard! Sacrilege I know, but something I can reverse at a later date when the tranZPUter SW has been updated.
In addition to extra hardware being necessary for the tranZPUter SW to work in an unmodified MZ-800, a number of updates need to be made to the CPLD and software base to accommodate the memory map differences. I also needed to obtain an assembler source of the MZ-800 IPL ROM and after trawling the web, eventually came across an old assembly listing in Czech from the Czech Sharp Users Club, which was about 75% complete, it had missing data areas and no BASIC IOCS so I set about converting the listing into an assembler file compatible with the Glass Z80 assembler, converting the missing functionality and piecing it all together along with Czech->English translation of the comments. This source file is necessary as the only real way to blend TZFS into the MZ-800 IPL is to offer it as a boot time option, ie. T - TZFS along with the Monitor, Floppy, CMT options. If the user presses T then the K64F would load up TZFS and execute it, at all other times the machine would behave in its original configuration.
All the projects follow a simple rule, 'No permanent physical changes' (famous last words on the initial project but will be corrected with a new tranZPUter SW release) - from my perspective, antiques shouldnt be destroyed and any changes should be reversible to restore the machine to original factory state. In saying that, enhancements to make the computer more useable are always welcome, hence these projects, enhancements without consequence.
The following diagram outlines the upgrade path available for the Sharp MZ-800.
At the time of writing, the MZ-800 developments are limited to the tranZPUter SW which was originally developed for the Sharp MZ-80A which is a tried and tested design. It now fully functions
in the MZ-800 and is reliable, offers greater processing speed (limited to 10MHz due to no data bus driver), more memory, SD card and a more advanced monitor.
Unlike the Sharp MZ-80A upgrades, only the later tranZPUter SW v2.2 board works with the MZ-800 due to space restrictions and availability of configurable logic. In terms of software, the MZ-800 uses enhanced versions of the MZ-80A developments, so a good mix of technologies such as Assembler (Z80, ARM), C/C++ and VHDL programming languages.
Please see the relevant section in the index on the left for board details and the above map on which boards can be combined together. At the time of writing, only 1 board is available, the tranZPUter SW, but this will increase over time.
Unlike the Sharp MZ-80A upgrades, only the later tranZPUter SW v2.2 board works with the MZ-800 due to space restrictions and availability of configurable logic. In terms of software, the MZ-800 uses enhanced versions of the MZ-80A developments, so a good mix of technologies such as Assembler (Z80, ARM), C/C++ and VHDL programming languages.
Please see the relevant section in the index on the left for board details and the above map on which boards can be combined together. At the time of writing, only 1 board is available, the tranZPUter SW, but this will increase over time.
Credits
Where I have used or based any component on a 3rd parties design I have included the original authors copyright notice within the headers or given due credit. All 3rd party software, to my knowledge and research, is open source and freely useable, if there is found to be any component with licensing restrictions, it will be removed from this repository and a suitable link/config provided.
Licenses
This design, hardware and software, is licensed under the GNU Public Licence v3.
The Gnu Public License v3
The source and binary files in this project marked as GPL v3 are free software: you can redistribute it and-or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
The source files are distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
The source files are distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.