Home |
Search |
Today's Posts |
#1
|
|||
|
|||
Z80 control board / EPROM Programming
A friend of mine and I are studying up on microprocessor interfacing and are
teaching ourselves about the Z80. We wired up the processor to an 8k static RAM (6264), and 8k EPROM (2764), and we also have an 8255 for I/O. We have but one problem,... we don't have an EPROM programmer! Does anyone out there have a broken one (I can try to repair it) that they're getting rid of? I can cover the shipping. We're trying to go as inexpensive as possible. Any help would be greatly appreciated. Thank you! -Phil P.S. - Please send me an e-mail at . Thanks! |
#2
|
|||
|
|||
Z80 control board / EPROM Programming
I've looked at the PIC microcontrollers before, but we have a whole basement
full of ancient computers that we're taking parts from and we're trying to build this out of parts we already have. It's looks like it's more difficult to wire up than a PIC would be, but we're up for the challenge. -Phil I suggest that you try one of these alternatives: - patch up your system so you can write to the RAM from a PC parallel port - use a FLASH ROM, build your own (PC parallel port based?) programmer for it - forget the Z80, use a micrcocontroller with build-in FLASH (PIC, AVR or 8051) Wouter van Ooijen |
#3
|
|||
|
|||
Z80 control board / EPROM Programming
I assume you have a PC with a paralell port. There used to be quite a few
programmers that used the output of a paralell port to burn EPROMS. I have built a couple of them from scratch and they were pretty easy to built just using perf board and point to point wiring. Unfortunately I no longer have these burners or the schematics. Electronics mags in the 70s, 80s had a lots of them so you may want to go to your local library and brows the fiche. I have built several compters using Z80 and had a blast doing it. It is a worth while learnuing experience. "Mr. Phil" wrote in message news I've looked at the PIC microcontrollers before, but we have a whole basement full of ancient computers that we're taking parts from and we're trying to build this out of parts we already have. It's looks like it's more difficult to wire up than a PIC would be, but we're up for the challenge. -Phil I suggest that you try one of these alternatives: - patch up your system so you can write to the RAM from a PC parallel port - use a FLASH ROM, build your own (PC parallel port based?) programmer for it - forget the Z80, use a micrcocontroller with build-in FLASH (PIC, AVR or 8051) Wouter van Ooijen |
#4
|
|||
|
|||
Z80 control board / EPROM Programming
Hey I've wanted to build a simple Z80 unit to turn LEDs on, just to learn
how it works. I have a burner and can burn you and 27xx you need. Wanna trade some of your schems, info, code, and training stuff for my burning ? "Mr. Phil" wrote in message ... A friend of mine and I are studying up on microprocessor interfacing and are teaching ourselves about the Z80. We wired up the processor to an 8k static RAM (6264), and 8k EPROM (2764), and we also have an 8255 for I/O. We have but one problem,... we don't have an EPROM programmer! Does anyone out there have a broken one (I can try to repair it) that they're getting rid of? I can cover the shipping. We're trying to go as inexpensive as possible. Any help would be greatly appreciated. Thank you! -Phil P.S. - Please send me an e-mail at . Thanks! |
#5
|
|||
|
|||
Z80 control board / EPROM Programming
Hey I've wanted to build a simple Z80 unit to turn LEDs on, just to learn
how it works. I have a burner and can burn you and 27xx you need. Wanna trade some of your schems, info, code, and training stuff for my burning ? I found someone on another newsgroup who's sending me a programmer, so I'm all set there, but I'd be happy to share my experiences with you. For programming, I'm using an old version of a program called TASM. The version I have does not support Z80 mnemonics, but it does support the 8085 CPU. The 8085 code will run on the Z80 (the op-codes are the same). If you need TASM, it's shareware (and over a decade old!) so let me know and I could e-mail it to you. It's not very large and will fit easily on a floppy. I've been writing a test peice of code to test the 8255 I/O chip I have interfaced. Just waiting for the programmer to test the code, but I can post the code here so you can look at it. I think it should work. I've checked it over many times. (I'll post it separately). As for schematics, I didn't use any. I downloaded the pin diagrams for each IC and checked off the pin on the sheet after I was done wiring it. It's really easy. Most of the pins are data and address busses. Just wire all the data bus pins directly to the data bus on any RAM and EPROM. Same with the Address lines. The only part that may be difficult figuring out would be the memory decoding circuitry and some of the control signals. A simple memory decoder can be made with a single 74LS138. I can write up a quick schematic if you want to see how thats done. If you just wanted to flash LEDs in a pattern, you probably don't need a Z80. Just program an EPROM with the byte pattern you want your LEDs to flash in and then use a binary counter (cascade some 74LS193s) and use a 2 Hz clock input to drive the binary counters. The binary counters would be wired to the address pins on the EPROM (stepping through the memory locations one by one), and the programmed data would show up on the data bus. If you're driving an LED (20ma or so), you might want to buffer the data pins first on the EPROM using a 74LS244 or some other sort of octal latch. I'll post my test code now,... If anyone out there sees an error, please let me know since this code has not been tested yet. -Phil |
#6
|
|||
|
|||
Z80 control board / EPROM Programming
Here is the test code for my Z80 project (again, using 8085 mnemonics). It
should work. The hardware is set up like this: EPROM - $0000 to $1FFF RAM - $2000 to $3FFF 8255A - $E000 to $E003 ($E000 is port A; $E001 is port B; $E002 is port C; $E0003 is the control register) Again, this code is untested, but this is what it is supposed to do: First thing, the stack pointer is set at the top of RAM ($3FFF), next it goes through a time delay just to make sure that the Z80 does reset before the 8255. I know that the time delay I chose is a little overkill, but I originally thought it up for another application and didn't feel like rewriting it. Next, we set up the control register for the 8255. For testing purposes, the 8255 is programmed for all outputs. Then I send all zeros through every port and then all ones through every port and repeat. I was going to place a logic probe on some of the output pins to make sure they are pulsing. If that works, I will start interfacing the board to the ourside world, although I haven't figured out what I'm going to use it for yet. If anyone is familiar with programming, please look this over and let me know if there are any programming mistakes. Thanks! -Phil start .ORG 0000H ;Program Starts at $0000 STA $3FFF ;Stack pointer set at $3FFF label1 CALL TimeDly ;Call Time Delay subroutine CALL PPInit ;Init routine for 8255A PPI JMP PPItest ;Output sequence for testing ports PPItest LXI H, $E000 ;Setting up Port A MVI B, $FF ;Load B Register with all 1s MVI C, $00 ;Load C Register with all 0s MOV M,B ;Move B to Port A on 8255 MOV M,C ;Move C to Port A on 8255 INX H ;Increment H&L to $E001 MOV M,B ;Move B to Port B on 8255 MOV M,C ;Move C to Port B on 8255 INX H ;Increment H&L to $E002 MOV M,B ;Move B to Port C on 8255 MOV M,C ;Move C to Port C on 8255 JMP PPItest ;Return to PPItest and loop PPInit LXI H, $E003 ;Load H&L with control reg of 8255 MVI A, $00 ;Load Accumulator with $00 MOV M,A ;Move contents of A to $E003 ;Sets 8255A in Mode 0, all outputs RET ;Return back to label1 TimeDly MVI B, $30 ;Load Register B with $30 Loop1 MVI C, $FF ;Load Register C with $FF DCR B ;Decrement B Register MOV A,B ;Move the value of B to the accum RZ ;If 0 then return from subroutine Loop2 DCR C ;Decrement C Register MOV A,C ;Move the value of C to the accum JNZ Loop2 ;If not 0 then Loop back to Loop2 JMP Loop1 ;Jump back to Loop1 label2 .ORG 1FFFH ;Rom ends at $1FFF NOP alldone .END ADDR 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ----------------------------------------------------- 0000 32 FF 3F CD 25 00 CD 1E 00 C3 0C 00 21 00 E0 06 0010 FF 0E 00 70 71 23 70 71 23 70 71 C3 0C 00 21 03 0020 E0 3E 00 77 C9 06 30 0E FF 05 78 C8 0D 79 C2 2C 0030 00 C3 27 00 00 00 00 00 00 00 00 00 00 00 00 00 tasm: Number of errors = 0 |
#7
|
|||
|
|||
Z80 control board / EPROM Programming
Google on z80 assembler
"Mr. Phil" wrote in message ... Here is the test code for my Z80 project (again, using 8085 mnemonics). It should work. The hardware is set up like this: EPROM - $0000 to $1FFF RAM - $2000 to $3FFF 8255A - $E000 to $E003 ($E000 is port A; $E001 is port B; $E002 is port C; $E0003 is the control register) Again, this code is untested, but this is what it is supposed to do: First thing, the stack pointer is set at the top of RAM ($3FFF), next it goes through a time delay just to make sure that the Z80 does reset before the 8255. I know that the time delay I chose is a little overkill, but I originally thought it up for another application and didn't feel like rewriting it. Next, we set up the control register for the 8255. For testing purposes, the 8255 is programmed for all outputs. Then I send all zeros through every port and then all ones through every port and repeat. I was going to place a logic probe on some of the output pins to make sure they are pulsing. If that works, I will start interfacing the board to the ourside world, although I haven't figured out what I'm going to use it for yet. If anyone is familiar with programming, please look this over and let me know if there are any programming mistakes. Thanks! -Phil start .ORG 0000H ;Program Starts at $0000 STA $3FFF ;Stack pointer set at $3FFF label1 CALL TimeDly ;Call Time Delay subroutine CALL PPInit ;Init routine for 8255A PPI JMP PPItest ;Output sequence for testing ports PPItest LXI H, $E000 ;Setting up Port A MVI B, $FF ;Load B Register with all 1s MVI C, $00 ;Load C Register with all 0s MOV M,B ;Move B to Port A on 8255 MOV M,C ;Move C to Port A on 8255 INX H ;Increment H&L to $E001 MOV M,B ;Move B to Port B on 8255 MOV M,C ;Move C to Port B on 8255 INX H ;Increment H&L to $E002 MOV M,B ;Move B to Port C on 8255 MOV M,C ;Move C to Port C on 8255 JMP PPItest ;Return to PPItest and loop PPInit LXI H, $E003 ;Load H&L with control reg of 8255 MVI A, $00 ;Load Accumulator with $00 MOV M,A ;Move contents of A to $E003 ;Sets 8255A in Mode 0, all outputs RET ;Return back to label1 TimeDly MVI B, $30 ;Load Register B with $30 Loop1 MVI C, $FF ;Load Register C with $FF DCR B ;Decrement B Register MOV A,B ;Move the value of B to the accum RZ ;If 0 then return from subroutine Loop2 DCR C ;Decrement C Register MOV A,C ;Move the value of C to the accum JNZ Loop2 ;If not 0 then Loop back to Loop2 JMP Loop1 ;Jump back to Loop1 label2 .ORG 1FFFH ;Rom ends at $1FFF NOP alldone .END ADDR 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ----------------------------------------------------- 0000 32 FF 3F CD 25 00 CD 1E 00 C3 0C 00 21 00 E0 06 0010 FF 0E 00 70 71 23 70 71 23 70 71 C3 0C 00 21 03 0020 E0 3E 00 77 C9 06 30 0E FF 05 78 C8 0D 79 C2 2C 0030 00 C3 27 00 00 00 00 00 00 00 00 00 00 00 00 00 tasm: Number of errors = 0 |
#8
|
|||
|
|||
Z80 control board / EPROM Programming
Google on z80 assembler
Wow, I just realized that the TASM program I have will do Z80. I can't believe that I overlooked that. It's actually a neat program. It will compile code for the 8048, 6502, 8051, 8085, Z80, 6800, 6805, TMS7000, TMS320. I've already spent about a month learning the 8085 mnemonics. As long as the op codes generated will run on the Z80 (and it should from everything I've read), it shouldn't matter. -Phil |
#9
|
|||
|
|||
Z80 control board / EPROM Programming
"Mr. Phil" wrote in message .. . Google on z80 assembler Wow, I just realized that the TASM program I have will do Z80. I can't believe that I overlooked that. It's actually a neat program. It will compile code for the 8048, 6502, 8051, 8085, Z80, 6800, 6805, TMS7000, TMS320. I've already spent about a month learning the 8085 mnemonics. As long as the op codes generated will run on the Z80 (and it should from everything I've read), it shouldn't matter. -Phil I forgot but I had just chunked an old Z80 computer. It used the old s100 backplane. Up until 1990 it had been used for an Informatin Display System (IDS) used at an Air Traffic Control Tower. Believe unit was made by Systems Atlanta. Had a processor board, memory board and several serial interface boards. I kept the case and power supply. I may still have some of the boards. I will look if you are interested. |
#10
|
|||
|
|||
Z80 control board / EPROM Programming
That would be great. I could always use spare Z80 parts. I've been
stripping some old boards and I have a few Z80's here, a handful of 8k EPROMS, and some static RAM. I want to try finding some more 8255s for I/O and some UARTS. I was on a website last night and downloaded a BASIC interpreter for the 8085/Z80. The whole thing fits on a 4k EPROM. A lot ofZ80 development tools can be found on the same site: http://www.gaby.de/z80/z80sdt.htm Thanks again for the offer. -Phil "Jimmy" wrote in message . com... "Mr. Phil" wrote in message .. . Google on z80 assembler Wow, I just realized that the TASM program I have will do Z80. I can't believe that I overlooked that. It's actually a neat program. It will compile code for the 8048, 6502, 8051, 8085, Z80, 6800, 6805, TMS7000, TMS320. I've already spent about a month learning the 8085 mnemonics. As long as the op codes generated will run on the Z80 (and it should from everything I've read), it shouldn't matter. -Phil I forgot but I had just chunked an old Z80 computer. It used the old s100 backplane. Up until 1990 it had been used for an Informatin Display System (IDS) used at an Air Traffic Control Tower. Believe unit was made by Systems Atlanta. Had a processor board, memory board and several serial interface boards. I kept the case and power supply. I may still have some of the boards. I will look if you are interested. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Unwarping wood | UK diy | |||
Smartheat Economy7 Control System | UK diy | |||
How to re-lacquer a vintage carrom game board | Woodworking | |||
FA: Needham's EMP-20 EPROM Burner / Datarase EPROM Eraser | Electronics |