Author Topic: A retrocomputing project, details of the journey  (Read 19684 times)

0 Members and 1 Guest are viewing this topic.

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
A retrocomputing project, details of the journey
« on: September 07, 2010, 03:25:05 am »
Hi,

I'm going to post the details of a retrocomputing project I'm working on.
It would be ideal for a blog, except I don't have a blog and probably won't
start one anytime soon :-)

If you're not interesting in retrocomputing, Z80s, FPGAs, or just listening to
me mumble about why I'm doing things the way I am, you may want to skip this
topic.

Part 1 - Background

When I was a teenager, my father bought an Altair 8800b kit for me to put
together.  I had built Heathkits before, but nothing like a computer.  If you
need some background on the Altair, check out:

http://en.wikipedia.org/wiki/Altair_8800

My kit had an optional 16K dynamic memory board.  This board was much
cheaper than the standard static memory board available at the time.
However, I had tons of problems getting it to run reliably.  I tried adding
extra capacitors but that rarely helped.  Eventually, I put a sheet of plastic
on both sides of the board, then covered front and back with aluminum foil
and grounded the foil.  Voila, most problems magically went away!

I also had a Microterm ACT-IV serial terminal, a huge beast at the time:

http://www.pecos-softwareworks.com/pics/northstar/micro_term_front.jpg

Unfortunately, I didn't have the costly serial I/O board to drive it.  I did have
an LED on the front panel that I could turn on and off under program control,
the "Interupts Enabled" LED.  So by enabling and disabling interrupts at the
proper rate, and building a little transistor circuit to make that output into
+-12V RS232 levels, I could send data to the serial terminal, woohoo!

But the only input I had was an interrupt signal.  I thought I could get
have the input from the terminal go to the interrupt line, and by timing
the interrupts I could figure out in software what character was sent.
But the interrupt line was *level sensitive* not edge sensitive.  So when
the interrupt was triggered, I had to disable interrupts for a while to
prevent being interrupted again.  But this turned off the LED I was using
for transmit.  You can see where this is going.  Never got it to work right.

Eventually, I wire wrapped a serial board using some funky UART chip,
a TR1602B from Western Digital I think (back when they used to make
chips instead of disk drives).  It required +5 and -12volts, yikes!

Next came a long series of attempts to build a cassette tape interface.
I no longer remember whose design I used, but I got it to work about
60% of the time, not bad for those days.

Then I got the big toy, two 8" floppy disk drives and a floppy controller
from Thinker Toys.  That controller caused no end of problems.  To
save money, it didn't have a DMA circuit to move data to/from the
floppy to memory.  Instead, it forced the processor to move the data
itself.  When the processor tried to read a byte from the controller, if
the byte was not ready yet because not all the bits had been read from
the floppy, the controller simply halted the processor until the byte
was available.  Brilliant!  Except that I had dynamic memory and
halting the processor also halted the refresh of the RAM.  So whenever
I accessed the floppy drive, my memory would randomly lose bits, bah!
A tech note got published on how to modify your controller to allow
refresh to continue, and that fixed that.

Eventually, I got CP/M running, as well as a word processor (Wordstar)
and a compiler (Pascal/MT+).

Sadly, I did not realize at the time that I had so much history of the
early computing era, and junked most of this -- I still have the Altair's
front panel though.

I was recently playing with SIMH (http://simh.trailing-edge.com/)
running CP/M on a simulated Z80 computer.  While that works, it seems
like an awful lot of computing power to throw at the problem.

So I decided I wanted to build some sort of Z80 based computer
just for fun and relive the CP/M days.  While it would be tempting
to build a replica Altair (http://www.altairkit.com/) I wanted something
more compact.

In another post, I'll move on to part 2, requirements.

Scott


 

Offline EEVblog

  • Administrator
  • *****
  • Posts: 39285
  • Country: au
    • EEVblog
Re: A retrocomputing project, details of the journey
« Reply #1 on: September 07, 2010, 03:51:54 am »
Awesome, keep posting.
I didn't know there was an Altair kit available!

Dave.
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
Re: A retrocomputing project, details of the journey
« Reply #2 on: September 07, 2010, 04:07:01 am »
Part 2 - requirements

First up,  I need to make the big decision, do I use a Z80 CPU chip
or do I put this in an FPGA?  Well, I have the Z80 CPU, SIO, PIO, DMA,
and CTC chips in my junkbox, so I could just go build a real Z80 computer.
But I want to be able to display register and memory contents on
some sort of virtual front panel, maybe single step through a program,
etc, just like the old Altair used to do.  The Altair accomplished this
through some extreme ugliness involving forcing instructions onto the
data bus and putting the results in latches to light LEDs.  Probably don't
want to recreate that mess.

Also, I just don't want to be limited to 4Mhz.  I'd like to do at least 20Mhz.
There are 8Mhz Z80 chips, but no support chips for that speed that I can
find.  And you know, I wirewrapped several Z80 computers in the 80's, so
I've been there and done that....

So we're going to use an FPGA with a soft Z80 core in it, the T80 from
OpenCores: http://opencores.org/project,t80

Using a soft core will let use do many things we can't easily do with a
real Z80 CPU chip.

OK, decision 1 down.  Uh, but what FPGA chip?  My current favorite chip
is the Xilinx Spartan 3A series, partly because they can boot from serial
flash, and partly because they only require 2 voltages, 3.3v and 1.2v.
The T80 core won't fit in the smallest FPGA (50K gates), so the next one
up is a 200K gate part, the XC3S200A.  This comes in only one hobbyist
friendly (non-BGA) package, the 100pin VQFP, so that's what we'll target.

Decision 2, what kind of memory do we use?

The Spartan chip comes with internal block RAM, but I want the Z80 computer
to have the full 64K of memory, and maybe more through bank switching
in case I want to run MP/M.  Well, there's not enough internal block RAM to
handle this.  So we'll need to connect external memory to our FPGA.

OK, dynamic RAM or static RAM?  I don't really want to deal with
the refresh issues of dynamic RAM, and 12ns static RAM is easy to come by,
so I'll use static RAM unless I hit a wall in the design.

Decision 3, how do I talk to this thing?

Traditionally, you connected a serial console off your Z80 computer.
But how many people have serial terminals these days?  Few, I think.
Sure, you could wire it up to a serial port on your computer, but then
that kinda goes against the grain of this exercise, which is to not use
a huge amount of computing power just to get this system running.

So what I think I will do is provide a VGA output to connect to a monitor,
and PS/2 style keyboard and mouse inputs.  The VGA output will have
a serial window emulating some kind of serial terminal (VT100 maybe),
and windows with other displays, perhaps the CPU registers, memory dump,
or the like?  Have to work out the design of this in more detail, but
this will do for now.  Hmm, maybe should accept USB keyboard and mouse?
That's harder....

Decision 4, storage

This is easy, no floppies, no spining disks, solid state storage only. 
Probably looking at a small SD card here.   This would let me write
boot images from another system, such as a pre-built CP/M system.
I want to have several system images on the SD card, so I could boot
a CP/M 2.2 system, or boot an MP/M system, or something else.
These partitions should be invisible to the Z80, so the FPGA hardware
will have to vitualize the storage somehow - to be determined.

Speaking of booting, how will this system boot?  Z80's don't have
flash, they require an external boot ROM.  Have some ideas here, but
will save this for another post.

Decision 5, other stuff

I think we'll include a serial port and/or USB port for connectivity.
Probably also need to throw on an EEPROM to save configuration
information (such as which system to boot).  Hmm, maybe I'll use
an Atmel serial dataflash to boot the FPGA, and use the leftover
storage for configuration.  Yeah, that's the ticket.

Part 3 in another post.

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
Re: A retrocomputing project, details of the journey
« Reply #3 on: September 07, 2010, 04:16:55 am »
Awesome, keep posting.
I didn't know there was an Altair kit available!
The site doesn't seem to have been updated since 2007, so I'm not sure if
the kit is still available or not.

I saw an original Altair 8800 (not b) at Maker Faire in San Mateo this year.
Sadly I didn't get a chance to talk to the owner.  Maybe next year.
Funny thing about Maker Faire -- I had to drag my wife reluctantly to it
and she found so many things she's interested in that she wants to
go back next year! 

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
Re: A retrocomputing project, details of the journey
« Reply #4 on: September 07, 2010, 05:17:44 am »
I hope you're enjoying this view into the twisty way my mind works
on designing a new project.

Rarely do my designs go linearly from an idea to requirements to design to
prototype.  I usually bounce back and forth quite a bit between
the early stages and eventually hope to get something that works
at the end of it.

Presumably the professionals have a better plan for their projects,
at least until the requirements get changed half-way through, but I
never seem to be able to work that way.

Anyway, onto part 3.

Part 3 - thoughts about power supplies

Since I envision this to end up as a small PCB, I think I'll just go with
the usual wall wart, center positive.  I want to take any reasonable
voltage, up to 18v or so.

Why? Well I had a board from a company I won't name, which took
5v only as input.  Eventually I made a mistake and connected one
of my 9v unregulated adapters instead of the 5v regulated one designed
for this board.

What happened?  Well there was a bang, followed by some smoke, and
then active flame!  Ah, so yes, tantalum capacitors *do* burst into flame
when they are overvolted, just as I have read!

I think that the worst that should happen if you use the wrong adapter
is that the board doesn't work -- not catch on fire!

While I think anything but center positive adapters are evil, if you connect
a center negative to my board, I want it to quietly not work, so
first up we're going to put a diode in series with what we think is the
positive supply.  Maybe we'll use a Schottky rectifier so we have a low
voltage drop.

Oh, and I hate fuses, but there should be some overcurrent protection, so
we'll throw in a polyfuse of some kind.

For center positive supplies I want to just run with anything from +5v to
+18v or so, if the adapter can supply adequate current.  This suggests
using a switcher.  I've used National's Simple Switcher series on other designs
to handle up to about 42v, so I'll probably do some variant of that.

But what voltages do we need?  Well, the FPGA requires 3.3v and 1.2v.
I don't *think* anything will require 5v, unless maybe the USB stuff does.
Hmm, I want to have both host and device USB ports, so I can connect
a keyboard and mouse, and also plug into another computer.

How to do that?  I could put USB phy chips on the board, and do the USB
protocol either in the Z80 (yuck!) or FPGA hardware, or a second embedded
processor on the FPGA.  Or toss one of those Cypress USB chips on the board
and wash my hands of it.  Can the Cypress chip look like both a host and device
port?  And I need a USB hub chip so I can connect both the keyboard and mouse.
Does any of this require +5v?  Don't know, have to go off and try to nail
down how the USB is going to work.

And how much current do we need for the +3.3 and +1.2 rails?  Well, funny
thing about FPGAs is that it's really hard to know what their power
consumption needs are until the design is finallized, because the power draw
differs depending on the design put into them. 

This is where "hobby engineering" comes in.  How about I just provide circuitry that
can provide between 0.5 and 1amp on each rail and just hope for the best?  Yeah,
let's do that.

So assuming I don't need to +5v for now, I've got four basic choices.

1) Generate 3.3v from the input using a switcher.  Then generate 1.2v using
an LDO on the 3.3v line.

2) Generate 3.3v using a switcher.  Separately, generate 1.2v using a second switcher,
also from the main input.

3) Generate 3.3v using a switcher, then run a second switcher off the 3.3v supply.
This means the second switcher doesn't have to have the same wide input range
as the first switcher.

4) Get a two output switcher chip, and generate both 3.3v and 1.2v

What kind of switcher chips?  Well, I like the ones with integrated MOSFETs, because
then the chips can do thermal shutdown if I screw up and they get too hot.
That's harder to provide for if I use an external MOSFET, plus it's another component.
It would be nice if the chip did synchronous rectification, so then I don't have to have
a Schottky catch diode, but it's not a big deal.

OK, so my head already hurts from all the choices.

Now if some part of the circuit requires +5v, then I can generate +5v and use that
as the input rail for the +3.3 and +1.2v needs.

Looks like I'm going to have to go play with National's WEBBench software and try
out some scenarios once I figure out if I need +5v.

Then I have to check if all of the parts pass the Digikey test.  What's the Digikey test?
Well, I have to find the parts *in stock* at either Digikey or Mouser, because life is
too short to have to go try to source hard to find parts for a power supply.
Plus as a hobbyist, I have no clout whatsoever in trying to get rare parts.
Usually, for switchers, that hard part is the inductor.  It's easy to get low ESR
tantalums or ceramics, and pretty much any Schottky diode with the right voltage
and current specs generally work.

Choices choices.....

Part 4 will be next.

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
Re: A retrocomputing project, details of the journey
« Reply #5 on: September 07, 2010, 01:42:59 pm »
A few updated thoughts.

I realized I left a topic off the power supply section, namely power supply sequencing.
When you have multiple supplies, is it important what order they come up in?
Currently, the only chip which has multiple supplies is the Xilinx FPGA, and the
datasheet says explicitly that power may come up in any order.  So unless the design
gets modified, we should be good for now.

My thoughts on USB were a bit muddled yesterday (shouldn't post technical
stuff late at night I guess).

For connection to a PC, it's pretty easy to just use an FTDI chip to present as a serial
port.  So the hard part is how to interface a USB mouse and USB keyboard.  Now I'm
thinking maybe I can use the Vinculum chips from FTDI.  I know they can be used to
interface USB disk drives -- I'll have to go check the documentation to see if they
can be used for human interface devices as well.

So then using the Cypress FX1 chip falls by the wayside.  Cypress has another chip
which has both host and device ports, but it's only available in BGA, and I have zero
confidence in my ability to reflow BGA parts, so that's out.

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
Re: A retrocomputing project, details of the journey
« Reply #6 on: September 07, 2010, 02:32:38 pm »
Here's a block diagram of what I think I'm talking about :-)

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
Re: A retrocomputing project, details of the journey
« Reply #7 on: September 08, 2010, 02:40:23 pm »
For the power supply, I've decided on two switchers, one feeding the other.
The first switcher has a wide-input range, so we'll be able to take anything
from 5 volts to 28 volts and be just fine with it.  Using a National Semiconductor
LM22675, the first circuit produces 3.3v.

This is then fed to a second switcher to provide the 1.2v.


Scott
« Last Edit: September 08, 2010, 02:43:10 pm by slburris »
 

Offline Zad

  • Super Contributor
  • ***
  • Posts: 1013
  • Country: gb
    • Digital Wizardry, Analogue Alchemy, Software Sorcery
Re: A retrocomputing project, details of the journey
« Reply #8 on: September 08, 2010, 06:27:36 pm »
If I were building it, I would go the non-FPGA route. To me, abstracting stuff into software (which is kinda what an FPGA is) removes you from the physical presence a system has. If you are going to FPGA it, you might as well just simulate the whole thing on a PC, which is a bit pointless. Hardware FTW :)

Oh, and don't worry too much about power sequencing. Unless you are using really rather exotic stuff, it won't matter a jot.

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11714
  • Country: my
  • reassessing directives...
Re: A retrocomputing project, details of the journey
« Reply #9 on: September 08, 2010, 07:57:35 pm »
Hi,
I'm going to post the details of a retrocomputing project I'm working on.
It would be ideal for a blog, except I don't have a blog and probably won't
start one anytime soon :-)

if u want, i can put your blog on my web. all you need to do is design your own website like files with index.htm or whatever as main. i'll create a folder for you in my web. so you can separate the every long sections into clickable menu, so to become more user friendly and interactive. that only if you want to. from the pictures you posted, it seem interesting, but sadly i'm kind of guy who hate to read long textual post :( sorry.
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
Re: A retrocomputing project, details of the journey
« Reply #10 on: September 09, 2010, 04:02:03 am »
If I were building it, I would go the non-FPGA route. To me, abstracting stuff into software (which is kinda what an FPGA is) removes you from the physical presence a system has. If you are going to FPGA it, you might as well just simulate the whole thing on a PC, which is a bit pointless. Hardware FTW :)

Oh, and don't worry too much about power sequencing. Unless you are using really rather exotic stuff, it won't matter a jot.


I get what you are saying about being abstracted away from the hardware, but I don't want to simulate this
on a PC, I can already do that with the simh software.  But it would be kinda fun to dig out the old Z80 chips.
I know I said I did this with real chips before, but I'm warming to the idea of recreating that.

Hmm, maybe I should split this into two project, a "classic Z80" system, which will be big but, uh, classic, and
my little FPGA design which is more virtual but more adaptable.  My colleague across the hall from me at work
already want me to make him one of my FPGA designs (he also wants me to build an old DEC PDP-11 in an FPGA,
but that's a whole different level of pain!)

So for the "classic" system, how about 4Mhz clock, Z80 CPU, Z80 CTC (counter/timer), Z80 SIO (serial I/O), and
a Z80 PIO (parallel I/O) with an EPROM monitor to boot from?  We'll use an SD card for storage, and maybe throw
in a battery backed up real-time clock for good measure.  The parallel I/O will be used to access the SD card and
clock -- I think I can bit-bang stuff with the PIO, can't remember off the top of my head, but luckily I have a
complete original Z80 documentation set.

Not sure how much glue logic I need -- I suppose I could drop in a small CPLD if needed.

I'll have to write a driver for the SD card for CP/M in Z80 assembly, I guess.  And a monitor program. 

OK, so now we have the "classic" project, and the FPGA project.  Moving along...


Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
Re: A retrocomputing project, details of the journey
« Reply #11 on: September 09, 2010, 04:41:26 am »
And this is why I'm a natural born packrat -- "I know I'll need this stuff someday"

Found a Z80-CPU and Z80-PIO manual from 1977, and a full Zilog databook from
1981.

Worse, I ran across a bunch of Motorola 68000 docs in my library, and I know I
have 68000 and 68020 CPUs in one of my parts cabinets!  I know what my next
retrocomputing project will be after this one...

Scott
 

Offline baljemmett

  • Supporter
  • ****
  • Posts: 665
  • Country: gb
Re: A retrocomputing project, details of the journey
« Reply #12 on: September 09, 2010, 09:50:57 am »
My colleague across the hall from me at work already want me to make him one of my FPGA designs (he also wants me to build an old DEC PDP-11 in an FPGA, but that's a whole different level of pain!)

Speaking of which, have you seen http://chrisfenton.com/homebrew-cray-1a/?  Pretty neat stuff...

Watching your project (projects?) with interest!
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
Re: A retrocomputing project, details of the journey
« Reply #13 on: September 09, 2010, 11:56:45 am »
Speaking of which, have you seen http://chrisfenton.com/homebrew-cray-1a/?  Pretty neat stuff...

Watching your project (projects?) with interest!

Yes, I've seen that, pretty cool.  Neat that you can emulate the first supercomputer
in an FPGA these days.

I've never seen an entire Cray 1 in person, just a slice of that circular design in
a museum.   I think it was the Bradbury Science Museum in Los Alamos, NM.
A weirdly fascinating place if you ever get to go there.

I did get experience with some Cray J90s about 13 years ago, but those
were baby Crays -- nothing as exotic as the originals, but still very
different from any machines I had run before.

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
Re: A retrocomputing project, details of the journey
« Reply #14 on: September 09, 2010, 08:35:44 pm »
Random Thoughts about the "classic" option

I spent a bit of time reviewing the PIO, SIO, etc. chips and it's just amazing
how little they do.  I had forgotten there's no baud rate generator, for instance.
So I guess I'll drive the CTC with some appropriate clock that it can divide down
some appropriate frequency.

The SD card for storage presents a few problems.  First, it's a 3.3v device and
everything else in this system is 5v.  Yes, I could use some bidirectional level
shifters.  But I'm not looking forward to bitbanging communications with the
SD card with the Z80.  That just seems it would be quite slow.  I'm thinking
of using a CompactFlash card instead.  That would run at 5volts and has an
IDEish parallel interface.  This seems to be a better fit.

I also remembered something which bit me in the past.  The pins of these
chips are TTL compatible, *except for the clock input*!  It has a much
higher Vh spec.  In the past, I tried adding a pullup resistor to a TTL clock
oscillator.  That didn't always work well, presumably because I was
violating rise or fall time of the clock.   Later, I passed the TTL clock through
a CMOS buffer chip and that worked fine.  For this design, I'll just use a
4Mhz CMOS oscillator and be done with it.

I'm also think I'm going to have to pay attention to stuff I haven't needed to for 15 years or
so, namely fan in/fan out.  With TTL you had to count how many loads a pin could drive
and how many loads a pin presented as an input.  With CMOS, you can basically
ignore this.  Well not ignore because each pin presents a capacitance, but
for most reasonable designs you don't have to worry about fan in/out.  But
these are not CMOS devices....

I forgot there was a Z80-DMA chip.  Have to work that into the design somehow!
Maybe it can transfer data from the CompactFlash card.

So the next question is what kind of memory should I put in this?  The Z80 has hardware
support for dynamic RAM.  However, I'm not sure I have RAM *small enough*, i.e. with
few enough rows, for the auto refresh to work.  I'll have to dig through my junkbox and
see what I have.  At worst, I can easily find 5volt static RAM.

More thinking to be done.

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
Re: A retrocomputing project, details of the journey
« Reply #15 on: September 10, 2010, 05:38:10 pm »
I've been scrounging for chips for the "classic" design.  I found
genuine Zilog parts for all the Z80 chips.  I also seem to have a lot of
Mostek second source parts.  Heh, chips aren't second sourced
very often these days!

So we have from right to left, the CPU, PIO, SIO, DMA, and CTC chips.

I also went looking for a few supporting chips.  Really hard to find small
EPROMs.  I was hoping to find a 2708, but did find a small number of
27128A's.  I have lots of EPROMs bigger than the entire memory space
of the Z80, but that would be silly to use those.

Also found some fast 32Kx8 SRAMs, the W24257's from Windbond.
Some nice 20ns parts so the Z80 shouldn't need waitstates for the SRAM,
although it probably will for the EPROM.

I ran across some GAL chips -- I may end up using them for the glue
logic.  This would make this design mostly through hole (except for
the switching power supply).

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
Re: A retrocomputing project, details of the journey
« Reply #16 on: September 10, 2010, 11:24:05 pm »
Here's a first pass at the block diagram for the classic version.

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
Re: A retrocomputing project, details of the journey
« Reply #17 on: September 12, 2010, 04:02:22 am »
I've started drawing up the schematics for the "classic" design.  I've been
trying really hard to like the Design Spark software, but its lack of the Z80
parts sent me running back to Eagle.  Yes, I've tried their Eagle to Spark
converter and it crashed and burned on a library of FPGA parts I was trying
to bring over. 

I've been thinking about the memory design, how the system is going to boot,
how to handle 64K of SRAM and 16K of EPROM, etc.  The Z80's reset vector
is at location 0 in memory space, so we have to map the EPROM there temporarily,
then get it out of the way, because CP/M will want low memory space to
be read/write.

So what I'm going to do is the following:  On power up reset, a flip flop will
be set to generate a signal ROMENA (ROM enable).  When this signal is
active, reads from memory space will be mapped to the EPROM.  Writes
to memory space will go to the SRAM.  On the first I/O port access
(IORQ going low), the flip flop will be reset, and both reads and writes
will go to SRAM.

The intent is that the boot routine will copy itself to SRAM somewhere
up in high memory space, then do an I/O port access.  At that instant,
the EPROM switches off and execution continues from the shadow copy
in SRAM.  In this way, the entire SRAM space can in theory be made
available to CP/M.

All of this will require glue logic, as will the I/O port decoding I haven't
yet done.  I was thinking of doing this all in discrete logic, but now
I'm starting to add up all the little chips this requires, and I'm leaning
towards either using some GALs or just sweeping this all into a 5v
CPLD (a Xilinx XC9500 series).

Scott
 

Offline JohnS_AZ

  • Frequent Contributor
  • **
  • Posts: 499
  • Country: us
    • About.me
Re: A retrocomputing project, details of the journey
« Reply #18 on: September 12, 2010, 04:35:50 am »
I think I have some 2708s somewhere. I'll go dig through the drawers if you say you'd want them.
I'm either at my bench, here, or on PokerStars.
 

Offline Zad

  • Super Contributor
  • ***
  • Posts: 1013
  • Country: gb
    • Digital Wizardry, Analogue Alchemy, Software Sorcery
Re: A retrocomputing project, details of the journey
« Reply #19 on: September 12, 2010, 04:46:12 am »
In ye olde days it was common to select the EPROM page with an I/O register. Bottom 16kB can be static, next 16kB could map any of the other pages into the same space. Similarly with the RAM area. I didn't realise CP/M liked low memory to be R/W, it seems odd given the Z80 architecture!

Offline gbowne1

  • Contributor
  • Posts: 15
Re: A retrocomputing project, details of the journey
« Reply #20 on: September 13, 2010, 03:55:15 am »
I miss CP/M.. Last time I ran it was on a DEC Rainbow. Now there's retro-computing for you.

Somewhere I saw a homebrew 1st Generation TRS-80 Model 1, complete with the external modem board, disk drives, expansion interface, etc.

What would be cool is something more like the TRS-80 Model 100 which was portable.. but then there was a TRS-80 pocket computer.. which was kind of a glorified calculator. Lobo systems built a TRS-80 compatible computer too.

Still my favorite of that line was the Model III and IV. The first all in one design.. well, with the exception of the Macintosh (128k, Plus, etc).

I would like to see a MC68000 system.  But a nice classic Z80 design would be really cool.

Greg


 
 

Offline tycz

  • Regular Contributor
  • *
  • Posts: 107
Re: A retrocomputing project, details of the journey
« Reply #21 on: September 13, 2010, 11:37:28 am »
While I think anything but center positive adapters are evil, if you connect
a center negative to my board, I want it to quietly not work, so
first up we're going to put a diode in series with what we think is the
positive supply.  Maybe we'll use a Schottky rectifier so we have a low
voltage drop.

If you look at the way switched DC jacks work, and consider that this type of connecter is almost exclusively used to provide isolated DC low voltage, you'll see that centre negative is the more practical configuration.
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
Re: A retrocomputing project, details of the journey
« Reply #22 on: September 13, 2010, 02:35:38 pm »
I would like to see a MC68000 system.  But a nice classic Z80 design would be really cool.

It's funny, the last Z80 design I did was about 25 years ago.  All done on a wirewrap
board and the schematics were drawn by hand.  It worked, but sometimes you had to
press down in a certain area on the wirewrap board to get things to work :-)
For debugging, I had a logic probe and a 5 Mhz Heathkit oscilloscope.

Things are a bit different now!  Using a CAD program to do the schematic and then
I'll have a PCB made.  I still have the same logic probe and Heathkit scope, but
it's more likely I'll be using a 100Mhz Tektronix scope and a 100Mhz logic analyzer
if I run into any problems, whew!

Gotta go find my EPROM erasers.  I have two, just have to get one working.

Scott
 

Offline JohnS_AZ

  • Frequent Contributor
  • **
  • Posts: 499
  • Country: us
    • About.me
Re: A retrocomputing project, details of the journey
« Reply #23 on: September 13, 2010, 05:48:59 pm »
Man, you're making me nostalgic. A couple weeks ago I came across a couple of 8052AH-BASIC chips I've had for 30 years. They were for the very first microprocessor project I built up from scratch. Programmed and ran it from a DecWriter. :) Wonder if I can find some ram to fire them up?
I'm either at my bench, here, or on PokerStars.
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 549
  • Country: us
Re: A retrocomputing project, details of the journey
« Reply #24 on: September 13, 2010, 06:56:03 pm »
Man, you're making me nostalgic. A couple weeks ago I came across a couple of 8052AH-BASIC chips I've had for 30 years. They were for the very first microprocessor project I built up from scratch. Programmed and ran it from a DecWriter. :) Wonder if I can find some ram to fire them up?

What kind of RAM do you need?  I have 2114s somewhere, and probably other 8K and 32K static RAM
chips. 

Scott
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf