Un vecchio progetto chiamato Sparky basato su e-z80 è stato abbandonato purtroppo... ecco le specifiche: --------------------- Specifications The "Sparky" computer system will be the ultimate 8 bit computer system that we all wanted when the 8 bit machines ruled, but never could afford. It is designed as a system to experiment with as well as have fun with. It is not intended to be one of those lame "trainer" boards with an LED display and keypad, boring! The system is designed around the much advanced eZ80 by ZiLOG. This processor is like a Z80 on steroids and most certainly would have been the processor of choice in the 80's had it existed. It is marketed now days as an embedded "webserver / Microcontroller," but we know it can do much more than serve web pages and be a brain to an Internet appliance. The eZ80 can directly address 16 megabytes of memory without special hardware or software. It is also compatible with "older" Z80 code (some minor changes may have to be made). It also has just about every peripheral interface built right into it! Great! That will save a lot on the chip count. There is only one drawback for the eZ80. It only comes in a VQFP package that renders it near impossible for a human to solder it to a PC board (it's the tiny chip next to the blue connector in the picture, the only one with "ZiLOG" on it). Therefore, the ZiLOG eZ80 evaluation board will be used as a base for the rest of the system. Nevertheless, ZiLOG publishes the schematics (in the manual for the evaluation board, a PDF download) for those wishing to build their own boards. The evaluation board has all of the necessary hardware for real time debugging via a ZPAK device. Which is a magnificent feature! Code can be dumped to the system without the need for a booter or any populated memory whatsoever. It also allows for step by step execution and breakpoints. It's the little blue connector in the picture. Sparky's specifications are as follows: a.. The hardware will initially start with an eZ80 (eZ80190) evaluation board from ZiLOG. b.. It will run a superset of the ZX Spectrum Operating System with BASIC. Any improvements or additions from the SE BASIC project, and SEA Change ROM project will be added. Nevertheless, it will NOT be software compatible with the ZX Spectrum, except for BASIC code. The goal of this project is not to make an advanced Spectrum but a whole system with Spectrum roots. It is never intended to run Spectrum games, ever. c.. Keyboard entry via RS232 on the console port. At first I considered emulating a PS/2 AT keyboard port via two PIO pins on the eZ80, but why do that when there is already a perfectly good RS232 console built in? There is already a second RS232 port for modems etc. So I don't see a problem. d.. Generalized file system using streams for data transfer. This, fortunately, is being developed for the SE BASIC ROM by Andrew Owen, and he has given his blessing for its adaptation into the Sparky project when he's completed it. The streams will also be adapted to the graphics commands as well, thus making the OS truly universal and not tied into any specific peripheral's format or layout. e.. Despite the output on the console port, a true graphics display will eventually be incorporated. It will use an advanced Yamaha YGV627 LSI VDA device to generate the video display. It will have text and graphics modes, up to 65536 colors, and have a maximum resolution of 1024x768. Although it is similar to the old Yamaha V99xx series the MSX computers used, it is far more advanced. f.. Some suggestions are to create a TCP/IP stack for using the LAN port and emulating the Spectrum network protocol on the serial port if the appropriate stream is opened. The Sparky eZX BASIC Memory Map Start End Title Description 200000 FFFFFF Available for expansion You can always add more RAM here! 110000 1FFFFF 1 MB SRAM This is where the system RAM starts for program and variables. 10E000 10FFFF System Variables There is 8K of high speed SRAM available in the eZ80 for use. This is perfect for the system variables. 10D00 10DFFF Multiply Accumulator RAM I decided to leave this 1K RAM available for the user. You can use it for the MACC device or you can use it as spare buffer RAM. 100000 10CFFF Available for expansion Because the internal 9K of RAM of the eZ80 is mapped at the top of a 64K page, this lower space in the page is blank. It could be used for extra memory mapped hardware if you wish. 008000 0FFFFF Sparky ROM Code This is where the heart of the ZX BASIC code is located, and is the location with which must be flashed to once assembled. Don't worry about the restarts as the boot block code traps them and redirects them to their $0080xx counterparts. In other words, RST 20 will be directed to address $008020. Always remember that the interrupt index table must be in page 00 ($000000 - $00FFFF)! Placing it immediately after the "restarts" would be wise. 004000 007FFF Boot Block Parameter Block This block is used for the boot block flasher and by the C based OS code, which is not used, but resides in protected memory anyway. 003FFA 003FFF MAC Address The MAC address for the EMAC interface. It also resides in protected memory. 000000 003FF9 Boot Block Flasher This is specific to the ZiLOG eZ80 evaluation board and is required if you want to flash the ROM. This is write protected memory thanks to jumper J2. The Sparky eZX BASIC I/O Port Map 0000 0095 Sparky Hardware Reserved These ports are reserved for Sparky hardware incorporated into the eventual design or future designs. The display and any interfaces part of the final design will use this port range. 0096 00FF CPU Reserved These ports are reserved by the eZ80 processor for its internal peripherals. 0100 FFFF User Expansion The rest of the ports are given to the user for expansion. Remember, the eZ80 uses 16 bit port addresses. The "OUT0" eZ80 assembly instruction is reserved for the operating system and internal Sparky hardware (as I/O page zero is reserved). Use only the standard "OUT" assembly pneumonics for user hardware. All are invited to contribute. The code development environment is within ZiLOG's ZDS I and ZPAK comfiguration. The version of ZDS used is 3.68 currently. This project can be adapted to the eZ80192 as well, with some modification. This is the right place for source packages. Nevertheless, there is no source code package to download yet, due to the major changes it is undergoing. I do have an old functioning source package available if you want to see the eZ80 running Spectrum BASIC, although very primitively. Email me if you wish to have a copy. The ZX OS History What is a ZX Spectrum?? The ZX Spectrum was the invention of Sir Clive Sinclair (he was knighted by the Queen for his ingenuity) and was the top computer in Europe in the 1980's. Timex Computer Corporation's TS2068 (an advanced version of the ZX Spectrum) did not fair so well here in the USA as it was not compatible with the Spectrum (unless you had a special ROM or cartridge). It was more advanced than the ZX Spectrum, but not compatible with it, a big mistake. The TS2068 may have been able to become popular with some time (it was selling and making a profit), but Timex panicked and pulled the plug on its computer division when it barely started and the TS2068 never got a chance. I actually owned a TS2068 in the early 80's and enjoyed it immensely. My first hardware project was a 64K RAM expansion mapped in the DOCK bank and I experimented with modifying the OS by dumping the OS to the RAM and using a battery backup to retain the data. I also wrote a BBS program in BASIC and had coded modem drivers in machine code. The BASIC code was stored in the expanded 32K of RAM in the DOCK bank which left the majority of RAM in the HOME bank for message storage. The BBS was so popular that it was featured in an issue of BYTE magazine when BBS' had their hay-day. Go here if you would like to learn more about the ZX Spectrum, or here if you want to know more about the TS2068..