A Retro Merry Christmas

From Christmas Eve, 1968, high above Luna:

Transcript

Bill Anders
“We are now approaching lunar sunrise and, for all the people back on Earth, the crew of Apollo 8 has a message that we would like to send to you.
In the beginning God created the heaven and the earth.
And the earth was without form, and void; and darkness was upon the face of the deep.
And the Spirit of God moved upon the face of the waters. And God said, Let there be light: and there was light.
And God saw the light, that it was good: and God divided the light from the darkness.
Jim Lovell
“And God called the light Day, and the darkness he called Night. And the evening and the morning were the first day.
And God said, Let there be a firmament in the midst of the waters, and let it divide the waters from the waters.
And God made the firmament, and divided the waters which were under the firmament from the waters which were above the firmament: and it was so.
And God called the firmament Heaven. And the evening and the morning were the second day.
Frank Borman
“And God said, Let the waters under the heavens be gathered together unto one place, and let the dry land appear: and it was so.
And God called the dry land Earth; and the gathering together of the waters called he Seas: and God saw that it was good.
And from the crew of Apollo 8, we close with good night, good luck, a Merry Christmas – and God bless all of you, all of you on the good Earth.”

NASA - Apollo 8 Dec 24 Earthrise

Wikipedia is your friend: http://en.wikipedia.org/wiki/Apollo_8_Genesis_reading

 

Posted in Winter Warmup 2012 | Comments Off

Jeri: or Another Possibility

Well, maybe there is another project that I could do for the Winter Warmup.  Google has a doodle honoring Robert Noyce, inventor of the integrated circuit.  While discussing it with a co-worker, I mentioned Jeri Ellsworth (http://en.wikipedia.org/wiki/Jeri_Ellsworth), and how she had recently recreated a transistor in her home (http://hackaday.com/2010/11/05/making-point-contact-transistors/).

Of course, that lead to talking about her DTV, Commodore-on-a-chip (http://en.wikipedia.org/wiki/C64_Direct-to-TV.)  During my conversation, I remembered that a couple of years ago, I purchased one of each of the NTSC Joystick and Hummer versions for the purpose of building my own Commodore-64.  I also purchased an original Commodore 1541 floppy drive for when I got my C-64.

Perhaps this year’s Winter Warmup should be building my very own Commodore-64 (emulation.)  What do you think, post comments on whether you would rather see an old CHIP-8 console or a Commodore-64 rebuild.

Posted in Winter Warmup 2012 | Comments Off

Winter Warmup 2012

Well, last summer did not go as well as I had hoped, although I did end up with an upgraded ET-3400.  Here it is, the beginning of December, and Winter Warmup 2012 is just around the corner.  What to do, what to do…  Time to start thinking about this.

This blog is to document my entry for RetroChallenge, Winter Warmup 2012.  RetroChallenge is a loose association of Retro Enthusiasts who work on a Retro-Computing project for a month. You can get more info about RetroChallenge at their web site: http://www.wickensonline.co.uk/retrochallenge-website/index.html

Eve, a friend of mine, and I were talking about Winter Warmup, and she mentioned Pong.  She remembers playing Pong when she was a little girl; mostly she remembers the futility of trying to beat her older brothers.  My family had an old video game console when I was a kid, and one of the four games that it could play was Pong, very entertaining for it’s time.  After a short time of playing the games, though, I wanted to take the box apart to see what was in it.

Eve thought that I should do a Pong game.  I remember seeing a few projects where a microcontroller drives a video display directly.  Perhaps recreating a Pong game on an Atmel MCU would be cool… Nah, I believe that it has already been done.

How about something a little more versatile?  Pong is one of the many, many games which has been (re)written in CHIP-8 (http://en.wikipedia.org/wiki/CHIP-8).  CHIP-8 is the language which was included on several ultra-tiny home computers back in the late 1970s and early 1980s.  Cowgod has a Technical Reference Manual for CHIP-8 posted at: http://devernay.free.fr/hacks/chip8/C8TECH10.HTM.  There was a version of it which ran on the Cosmac VIP, which had only 512 bytes (not K or M, just bytes) of ROM, and 2K bytes of RAM.  The entire interpreter along with applications, such as games, ran without any additional RAM.

Maybe a small, one-chip video game console which can run a CHIP-8 interpreter would be a good project for Winter Warmup 2012.  Now, if I can only put aside enough time to work on this project without killing my other (paying) projects.  ;)

Be sure to stop by my projects page: http://projects.granzeier.com for some other projects.  You can also find components and kits in my store: http://zenstore.granzeier.com.

Posted in Winter Warmup 2012 | Comments Off

Well, better late than never.

Man, it has been a long time. It has been pretty crazy around here; we are preparing for a trip to Ft. Benning (www.benning.army.mil) to watch our son graduate from Basic; this is our fourth kid to go through basic. The Army does things a bit differently than the Air Force: when my wife and I graduated, our Drill Sergeant looked at us and said, “You’re done, get outta here!” When we went down for our second oldest son’s graduation (he was the first to enlist), they went all out. They actually had a fire team (complete with a Bradley Fighting Vehicle) make an advance on the audience. They fired blanks and smoke grenades. The Bradley drove up in front of us. It was GREAT! We loved it and even the Parade was great – military Parade is not the same as civilian holiday parades, trust me. If we are able to go (finances, of course), it will be next week, and there won’t be a whole lot of this project posted (although, I will try to post a pic or so of the graduation ceremony.)

But, I digress…

I did not get everything done that I wanted to for the Retro Challenge. None the less, I will continue this project in the hopes that someone can learn something. The main thing that I was able to accomplish was to wire up most of the CPU side of the PIA. Note that I have really cleaned up the data wires.

Note the data lines - much cleaner.

And, here is a little closer shot:

A bit closer.

Addressing…

A while back, Prof Stark (forum name) posted a message (tech.groups.yahoo.com/group/ET-3400/message/50) about a tip to simplify address decoding on the ET-3400.  It turns out that IC2 (a 7442, one of ten decoder) is not fully utilized.  According to the schematic (tech.groups.yahoo.com/group/ET-3400/files/ET-3400A%20Schematic/ – the third one down is the best for viewing), some of the output pins are unused.  Prof Stark suggested using pin 5, which decodes addresses 8000-83FF.  This is where many 6800-based systems locate their I/O (the 6800, unlike the popular 808X and Z-80, do not have dedicated I/O, and so map their I/O into the memory addresses.)  Back then, RAM was expensive, and 32K of RAM was considered a lot!  So, they planned for RAM from 0000-7FFF and then the rest could be used for I/O and ROM.  Thankfully, Heathkit mapped the ’3400′s I/O above this, and so the beginning of the upper 32K is available for my PIA.

Anyway, since 8000 was where I wanted to base my PIA, this trick will work out well.  IC2 is the 14-pin DIP chip in the lower-left of the ET-3400.  It is just below the protoboard.  So, I will pull the chip, bend that pin out, and then reinsert the chip into it’s socket.  Then I will solder a wire on to pin 5, and that will provide one of my Chip Select signals (there are three, CS0, CS1 and CS2/ – since the 7447 provides an active low, IC2 pin 5 will be CS2/.)  I will use another two of the address lines for the other CS signals and then A0 and A1 for RS0 and RS1.  This will map the PIA to 8000-8003 in my ET’s memory space.  The only thing after that will be to combine the RAM decoder’s RE output with the PIA decoder’s RE to provide a single RE input to the ET-3400.  It looks like I should be able to use another 7400 (will need to put that on the new protoboard.)

Next time: the PIA should be completed, and we should be able to read switches and light LEDs.  Then we will add the Prop.

Posted in RetroChallenge 2011 | 4 Comments

New RAM Upgrade

Well, THANK YOU very much, Balok (http://tech.groups.yahoo.com/group/ET-3400/message/538).  The upgrade works with just the 7400 chip, and I can move the PIA down to the ET-3400′s on-board breadboard.

The new RAM upgrade requires only the 7400. Moved the PIA down.

And here is the whole ‘ET, notice that the RAM still works (the displays show a 00 in 7FFF.)

Notice the displays! 32K works - Yahoo!!!!

Ok, and as promised, here is the schematic with crossovers and connections properly annotated:

Well, now to wire up the processor side of the PIA and see if the thing actually works – it has been sitting around for a long time (nearly 20 years), and I don’t know that it actually works.  If not, then I believe that I still have a few more from an old project.

Sorry about being slow on this blog, but I have been working on my main web site and my store.  You can now get to this RetroChallenge project from my main web site (http://www.granzeier.com) and clicking on my projects link.  The store works, but the customer can only get USPS Library Rate shipping – which doesn’t even apply to my products.  Well, I have downloaded an upgrade which should fix that, I hope to get it in tomorrow.  Then the PIA gets added.

Posted in RetroChallenge 2011 | 2 Comments

Adding the PIA

Well, the next thing that I did was to add a breadboard to the top of my ET-3400.  I just peeled the wax paper off the bottom and stuck the double-sided foam tape, that was on the bottom of the breadboard, to the top of my ’3400.  I think it turned out pretty nice, take a look:

This is the new breadboard taped to the top of the ET-3400

The next thing to do was to place the 6821 PIA into the breadboard, like so:

Here, the PIA has been added to the breadboard.

The extremely eagle-eyed among you will notice that I inserted the PIA “upside-down”.  This is because, with the chip in this orientation, the CPU interface lines are at the bottom, closer to the ET-3400 circuit board, while the external I/O pins of the PIA are on top, closer to the external I/O (the Propeller).  This is a not uncommon thing among design engineers (take a look at the RAM chips on the ET-3400 itself) – but you do need to pay extra attention when wiring the “upside down” chip.

A little trick that I learned with breadboards, is to wire the top power rails to the bottom power rails.  This allows you the most flexibility when hooking the circuit into ground and Vcc.  Take a look at the pic to see what I am saying:

Use a short piece of red wire to connect the Vcc and a black wire to connect the Ground rails.

Some breadboards have one or both of the rails broken mid-way across. This one does not, but check yours out and add jumper wires as necessary. I don’t remember who gave me this idea, but it was a great idea, whoever did.

Stop the presses…

Balok, over in the ET-3400 group took a look at my circuit and suggested a change that should eliminate the OR gate chip from my circuit (http://tech.groups.yahoo.com/group/ET-3400/message/538).  It seemed pretty slick, and so I did a quick modification… didn’t work.  So, today I pulled it back out and put it back to my earlier circuit.  Of course, it still did not work.  I compared it to my schematic, and rechecked it again… and again…  After several rechecks, I noticed that the R/W signal was not connected to the 62256 chip.

My conventions for the schematic are to have labels for the inputs to the circuit on the left side of the line representing the wire.  Take a look at A15 and VMA (among others) to see what I mean.  Outputs are labeled on the right of the wire.  Unfortunately, the R/W signal is both an input as well as a pass through going on to the RAM chip.  I did not make this obvious in my schematic.  I have a feeling that the error with my circuit is mine alone, I still think that Balok had a good idea.  I will try implementing his circuit later on, and will let you know how it goes.  (I really want his idea to succeed, I will be able to move the PIA down to the ET’s breadboard then.)

That brings up an important observation about my schematic.  I have wires crossing (i.e. the inverted VMA signal going back up to be ORed  crossing over the output of the OR gate) and also wires that are connected (the R/W signal) which appear to cross, but are really connected.  Both crossings and connections are drawn the same way. I will need to update the schematic drawings and post them next time. <Hangs head in shame> – I really should have done better with this, I have been drawing schematics since long before there were personal computers to help me with schematics.

Posted in RetroChallenge 2011 | 2 Comments

Introducing SuperET

Finally, I have a 32K ET-3400:

My SuperET - Notice the display shows that there is 24 stored in location 7FFF

Well, I started off with (pretty much) the schematic from Sinclair, but instead of the BCD decoder, I just ORed the A15 line with the VMA/ signal.  I wanted Chip Select to be low whenever A15 was low (addressing the lower 32K of the space) and VMA/ was low (Valid Memory Address).  The rest was pretty much as Sinclair’s.

Didn’t work, of course!  Never does for the first time, my first area of inspection was the tying of CS/ and OE/ together.  It seemed to me that you would only want Output Enable to be active when you wanted to read.  Nope, I dug up the datasheet for the 62256, and found that when you are reading, OE/ is ignored.  Tying CS/ and OE/ are fine for this application.

Hmmmm, now what.  I, next, took a look at the signals on the ET-3400 a bit more closely.  Wait, what is this… In the manual, the description of VMA is pretty clear (Unit 7, page 7-11) in saying that the VMA line goes HIGH when there is a valid memory address!  It is an active high, not an active low, signal.  Oops, I forgot that from when I was teaching the ET-3400.

Ok, back to the drawing board and rewire for an active high VMA.  What do you know?  It works!  Yipee.  Here is the schematic:

Well, as they say, the proof is in the pudding – I was able to store numbers in different locations, up to 7FFF.  There were a couple of things that puzzle me.  First, I didn’t need to remove the on-board RAMs.  I thought that there might be some contention there, but it works as advertised.  Secondly, now when I plug the ET-3400 in, it shows CPU UP right away, even with the power switch in standby.  I will probably want to track that down, but it doesn’t seem to be hurting anything at this time.

My wiring convention is to make all the address lines green, the data are blue (for the low-order nibble) and white (for the high-order nibble), the miscellaneous signal lines are yellow, and then the standard red and black for Vcc and Gnd.

Well, the beast can store a lot more programs and data now.  Next time, I will wire up a PIA on the Propeller’s breadboard.  This will pretty much follow the book for PIA experimentation.  This will be on the Prop dev kit because there are less connections between the 6821 and the ’3400 than between the memory and ’3400.

So, good bye until next time…

Posted in RetroChallenge 2011 | Comments Off

Choosing the schematic for the 32K RAM

Yesterday was my day off from my “day” job (my weekend is Sundays and Wednesdays).  I recently started teaching a small class in computer programming.  During the class yesterday, I got a bit side-tracked and we went over the low-level operation of a computer.  I traced through the fetch and execute stages of running a simple program to add 2 and 3.  The kids seemed to get it, but I want them to better understand the computer operation at this level.

While thinking about this issue, I came up with an idea:  I will give the kids a copy of the ET-3400 emulator (http://www.classiccmp.org/dunfield/heath/index.htm – look at the bottom of the ET-3400 section) and the textbooks with the lecture/theory and the labs for programming (http://tech.groups.yahoo.com/group/ET-3400/ – you will need to register [free] and then go to Files and then to EE-3401 and EE-3402).  Once the kids get through that course, they will have a pretty good understanding of machine language and assembler, and how the computers work inside.

Anyway, back on topic…

I found a circuit for adding RAM to the ET-3400 (as opposed to Tim Weber’s EEPROM.)  This is from Sinclair Community College, in Dayton (seeing the quality of their work, I thought that it was Sinclair University.)  The circuit is in a lab on Interfacing Random Access Memory (http://people.sinclair.edu/nickreeder/eet252/labManual.htm) – Check out Lab 6B, along with the other labs. Checking out the Sinclair lab schematic along with Timothy Weber’s schematic, it appears that I will need at least two different chips: a NAND gate chip and an OR gate chip.  What I will be doing will be using the A15 line as the Chip Select line, and then I need to OR it with the VMA/ signal to get a valid Chip Select. Next, this will be inverted and then NANDed with the R/W signal to enable the ET-3400′s RE/ line to allow reading from external RAM. I will be finalizing my circuit decision today and will start wiring up the RAM onto the ’3400 tonight on my lunch hour. Schematic to follow…

I actually thought about using a GAL, and probably will after RetroChallenge, but did not want to try to get up that learning curve during this month’s Challenge. Once this is over, I would like to print a board to carry all the stuff I am adding (along with an EEPROM) so that I can just connect it to the expansion port, kinda like the ETA-3400 memory-I/O unit.

Next time, the SuperET! (or at least as far as I can get during lunch) complete with photos.

Posted in RetroChallenge 2011 | 1 Comment

Introducing the Propeller

This is one of my Propeller Development systems:

 

This is one of my Propeller Development Kits

Ugh! – That picture does not do this thing justice.  Well, I will replace the picture with a new one in the next couple of days. Well, the new pictures look much better – amazing what I can do with a real camera, as opposed to the camera in my phone.  I don’t know that this is the actual dev kit that I will be using, as I have several.  We shall see…

This is a development system that I made up from a Radio Shack breadboard (replaced with: http://www.radioshack.com/product/index.jsp?productId=2882885), (a Parallax Propeller Proto Board) and a cheap plastic plate that I got from Walmart.  I mounted the breadboard and the Proto Board onto the plate with simple double-sided foam tape.  You will notice that there is room in the upper-right corner for a battery pack, if I want it to be more portable.  I also removed the three banana jacks, and the rubber feet on the bottom, so that it would mount to the plate better.

The Proto Board deserves a closer look:

 

This is the Proto Board of my development kit - Note the circuit traces on the left for additional peripherials

In order to be better able to add, and modify, circuitry, I soldered some female SIP headers around the Propeller itself.  This way I can just plug wires into the Proto Board and then plug them into the breadboard.

On the left side of the Proto Board is an area where connectors can be soldered in to provide connections for a keyboard, a mouse, VGA and other I/Os.  On the top, in the upper-right corner, there are four connectors for plugging in some Futaba standard servo-motors – Shades of Hero!  We could have the ’3400 run a robot this way.  The Parallax Forums (http://forums.parallax.com/forum.php) has LOTS of threads about people who have done some amazing things with the Prop.  There are articles about adding vision, hearing, speech,  touch, music, VGA and television output.  Just think, you could have all that (and more) on your little ET-3400!

Well, that’s it for today, next time we will start adding the 32K RAM chip to the ET-3400…

Posted in RetroChallenge 2011 | 1 Comment

Introducing the ET-3400

Well, here is my ET-3400:

My ET-3400 Trainer

The ET-3400 is a computer trainer, built in the late 1970′s and early 1980′s.  During the early 1990′s, I was teaching a microprocessor course at Gateway Technical Institute in downtown Pittsburgh.  This is the hardware that we used for the class.  Several of my students complained about using such an old, and obsolete, processor for their training, so I went to the Department of Public Works and borrowed one of their brand-new traffic control systems.  Guess what processor was running the thing?  Yep, it was the venerable Motorola 6800.  I explained that the 6800 was controlling traffic along the entire downtown section of Boulevard of the Allies, and was in the brand-new equipment that the City of Pittsburgh was purchasing at that time.  After my show-and-tell, the students didn’t complain about studying an old processor any more.

There is quite a bit of information on the web about the ET-3400.  One of my favorites is the Yahoo Group based on the ET-3400 (http://tech.groups.yahoo.com/group/et-3400/).  I have found tons of information there, and the members of the group love to help people out.

Included in the files section is a schematic from Timothy Weber (http://www.timothyweber.com/et3400eeprom) to add an EEPROM to the ET-3400.  This is an excellent write up (check out the background story at: http://www.timothyweber.com/heathkit).  I am going to use part of this schematic to add some RAM to my ’3400 before beginning the Prop Addition.  In Tim’s schematic, I will be eliminating IC1A and replacing that with A15 – when A15 is low (any address in the lower 32K bytes of memory) the CE/ line will go low.  I will use the other part of IC1, and the 2 gates from IC3 to generate the read and write signals along with the RE/ signal to tell the ET-3400 to allow off-board memory access.  This should give me enough memory to be able to make use of some of the capabilities of the Propeller.

Tomorrow: An introduction to the Propeller!

Posted in RetroChallenge 2011 | Comments Off