Electronics (alt.electronics)

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Mr. Phil
 
Posts: n/a
Default 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   Report Post  
Mr. Phil
 
Posts: n/a
Default 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   Report Post  
Jimmy
 
Posts: n/a
Default 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   Report Post  
Steve Lewinsky
 
Posts: n/a
Default 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   Report Post  
Mr. Phil
 
Posts: n/a
Default 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   Report Post  
Mr. Phil
 
Posts: n/a
Default 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   Report Post  
Jimmy
 
Posts: n/a
Default 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   Report Post  
Mr. Phil
 
Posts: n/a
Default 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   Report Post  
Jimmy
 
Posts: n/a
Default 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   Report Post  
Mr. Phil
 
Posts: n/a
Default 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
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Unwarping wood Phil Addison UK diy 0 May 10th 04 07:12 PM
Smartheat Economy7 Control System Darren Sellers UK diy 5 October 23rd 03 08:52 PM
How to re-lacquer a vintage carrom game board Armchair Bronco Woodworking 1 August 20th 03 02:17 PM
FA: Needham's EMP-20 EPROM Burner / Datarase EPROM Eraser ottodog Electronics 0 June 27th 03 02:42 AM


All times are GMT +1. The time now is 11:21 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 DIYbanter.
The comments are property of their posters.
 

About Us

"It's about DIY & home improvement"