Here are the properties of my Z80 project:
        
        
          -  Uses windows based software and EPP mode 
            printer port to load /retrieve the code 
- A total of 16kb memory is available. It 
            can be all RAM or 8Kb RAM/8Kb ROM. RAM and ROM are interchangeable 
            without any modifications to the hardware.
- It is possible to alter the memory map of 
            the system ie. Z80 can start execution either from the RAM or ROM.
-  2 8255 chips provide 48 I/O pins 
- A 2*16 dot matrix LCD,8 buttons and 8 LEDs 
            occupy 27 I/O pins and 21 I/O pins are available to connect other 
            I/O devices.
-  May double as a an EPROM programmer, because 
            it actually has a built in EPROM programmer (the one published in 
            Elektor, March 1997). 12,5 V EPROMs can be programmed easily. It is 
            also possible to program EPROMs up to 64Kb, but this feature was not 
            implemented since It will require dip switches and probably some glue 
            logic.  
My project has a very simple operating 
          principle. Both the Z80 and the programmer are connected to the memory 
          the usual way, but there is a simple logic circuit that controls their 
          access to the memory. While the programmer has access to the memory, 
          Z80 is hold in reset state. In this state, it is possible to program/read 
          any memory cell to place the code and data for Z80 to process. When 
          the programmer releases the memory, Z80 recovers from the reset state 
          and starts executing the code in the memory. Switching between the programmer 
          and the Z80 run modes is done by toggling a switch. When one part is 
          active, the other part goes tri-state.
        The first Z80 board I built did not 
          have an EPROM programmer to load the code. I used 8 switches to write 
          the code in binary and used a programmable counter to access the whole 
          8 Kb of memory. Then I built a keyboard using a 74C922 chip and a simple 
          circuit to convert the 4-bit output of the 74C922 to 8-bit data. This 
          dramatically increased the time it took to load the code into the memory. 
          But I still had to use the programmable counter to set the adress. Later 
          I discovered that the EPROM programmer designed by A.Rijfkogel (published 
          in Elektor, March 1997) employed a programming algorithm perfectly suitable 
          to program RAM chips. So I added a small buffer circuit to my first 
          circuit to use it with the EPROM programmer. I managed to get them to 
          work together without any modifications to the EPROM programmer. Is 
          this what they call "applied reverse engineering" ? 
        
        By now, I referred to this project 
          as mine but this year I did not work on the school project alone. I 
          had a partner, Caner Buyuktuna. His major input was in PCB design and 
          some coding. 
        After designing and building our circuit, 
          we could not get it to work. We had made a mistake and we had to cut 
          some tracks and add in two 74245 buffer chips to make the circuit work. 
          The time we had to finish our project was limited and we did not have 
          time to correct our PCB/Schematic and build a new circuit. This is why 
          schematics and complete PCBs are not available here. All we can supply 
          are the subcircuits we used with a few modifications to create our project 
          .
        When we got the circuit to work we 
          started to code small programs to show our teachers/friends what can 
          be done with our project. Here is what we did: 
        
          
        
        
          - Interfaced a Hitachi HD44780 based 
            2*16 dot matrix LCD module
- Made simple animations on that 
            display
- We converted the analog position 
            of a potentiometer in to a number relative to its position(i.e. we 
            digitized it) without using an ADC chip(Very useful for a lot of applications)
- Played WAVE files with a R-2R DAC 
            connected to one of the 8255 ports
- Made a simple keyboard to play 
            simple music notes. I can not say it is calibrated. My ear is not 
            good at such stuff. We only wrote code that produces a different frequency 
            on every key pressed
- Turned a step motor, and made its 
            speed adjustable with that pot we digitized
- Made some LEDs blink /scroll and 
            some other simple stuff 
        Click HERE to 
          see a the pcb from a Traxmaker screenshot .
          Click HERE to see a photo of the first Z80 board 
          I built.
          Click HERE to see/get the available project 
          files