Viser opslag med etiketten 8-Bit. Vis alle opslag
Viser opslag med etiketten 8-Bit. Vis alle opslag

søndag den 12. april 2015

Z8671: Tinybasic on a z8 processor

When burrowing though a big box of unsorted IC's, like Scrooge McDuck though his money bin, i came across a chip I'd never seen or heard of before: Zilog Z8671 (BASIC/DBUG). Upon reading the "Zilog Z8-something" part i got hyped because i assumed it was a Z80 support chip, like the standard 6800 support chips are all called 6850, 6821, etc. and 8080 chips are called 8212 and so on.

I was very very wrong, but that didn't diminish the hype. The Z8671 is a chip in Zilog's Z8 microcontroller series: one that has an internal mask ROM with tinybasic! 

Later I found some information leading to a Steve Ciarcia's Circuit Cellar (a series in BYTE magazine) that spoke about this tiny MicroMint z8671 board (Micromint is still around, it seems). -Alas it was much later that i found an actual schematic for the system, and was able to start the work.

A similar circuit is shown in the Z8 handbook/application book, but it had certain oddities: it was meant for the z8671, but it still incorporated a 27128 EPROM, with no explanation as to what was to be put in it. (Also, at that time, i didn't have access to an EPROM-programmer, which i do now, and now consider the greatest and most vital tool in DIY computer electronics at all: EPROM PROGRAMMER: backup-ing vintage ROM's, writing your own rom's for systems; even setting EPROMs up as programmable logic!

Anyway, decided I wanted to do the machine with wirewrap: had all the ic sockets and a nice eurocard protoboard to build it on.
-Had little to no wirewrap wire, though. It arrives tomorrow, updates will follow, but so far:


The Toshiba RAM is a placeholder IC, since I used two loose SIP wrap lists and needed to hold them in place: the same with the Z80 processor: I keep a box of dead or useless IC's for this kind of purpose, also to mock-up component layouts.

My only problem is: I have only one of these IC's. So if the z8671 I have turns out to be a goner, I'm screwed.

That's it
--


torsdag den 1. januar 2015

Progress! Lack of progress! TESTGEAR!

So It's been a while. Been doing some RF projects for ham radio the last months, and been a bit out of the loop with the microcomputers. Until my interest was sparked by a piece of test gear:

I got a logic analyzer! Thurlby (Tti) LA4800 48CH. logic analyzer!
It was fairly cheap, even though it lacks the probes. The thurlby analyzers uses these pods with IDC connectors, which basically just contains some input protection and some buffers. It says in the manual that you really just COULD connect wires directly to the input connectors, but there is NO input protection what so ever. they feed right into some standard 7400-logic buffers and some SIP resistors for pullup(down?), so if you feed it a smidgen more than 5V, you burn those (at best). Probes are coming along nicely, probably done by tomorrow (might make an update on them). 

The interface is really nice, it's intuitive, took me ½ an hour without manual to get a basic understanding of it. It does both timing and state analysis, and also has an external clock input.

It comes with some nice sets of default settings; 8 bit computer
being one of the better. Pictured is some banks of test data it had.

The hardware seems dated 1992- design is probably late 80's early 90's. 

The main board is almost entirely trough-hole, the only smd stuff being the LCD drivers on the module. 

Most chips are 7400-series, with some nice big RAM for the datalogging. processor(s), yes, it has two, each associated with an eprom and some more ram; I'm suspecting one set is purely for the RS432 communications. Anyway, processors are Hitachi HD6303 processor.

The display has wonderful contrast, even contrast and brightness setting. 

Truly a very neat bit of gear.






onsdag den 15. oktober 2014

New project!

So, the z80 system 2 project being on hold until i get a functioning EPROM burner, I've moved forward on another project: The COSMAC ELF.
Though I've made some hardware mods, it is functionally equivalent of the original ELF. My mods include: 

    - Changing the HEX display to binary LED's; way cheaper.
This mod was actually suggested in the original article.

          - Changed the two 4 bit 2101 RAM's for eight 1 bit 2102 ones.
I had them lying around and besides the "width" they're very similar. Furthermore, they're 1977 vintage - adds something to the design.

    - Sprung for another layout, not wirewrap 
Once again, I'm out of wrap wire, and I kinda wanted it to have more of a Altair 8800 / MIPS 8080 kinda look.

Here it is:

The 8 chips with dual round indents are the RAM.

I have redrawn the schematic into a more reader friendly form than the original, spreading it over 6 pages:
1) CPU and clock
2A) Original RAM
2B) My RAM
3) I/O logic
4) Display
5) Input
6) CPU control

Makes it much easier to debug and alter.

Anyway, so far, I've wired the processor control and power.
Buses are to come.

tirsdag den 30. september 2014

Diode matrix ROM for the Z80, or: How a silly, not-so optimized idea became a main design choice.

Ok, so the phase one hardware design for the z80 system B is almost done. Even started on expanding, but I would like to have it running first. But alas: having no EPROM's, and no burner for them, i had to think of something for a complete hardware test. So i decided to code three small program snips into a diode matrix ROM for it.

What a beauty! I've expanded the design (see last post) for 32 bytes, using 2 74154 4-16 decoders, and then feeding the lower 4 addresses into those. the next two addresses are fed to a 2-4 decoder, whose 1 and 2 output enables either chip 1 or 2.
The design of the diode matrix itself was a bit tricky. Most designs needs either multiple boards, or 3d arrays of wires, but eventually, i landed on having each trace (32 of them) for each line run all the length of the left half of the board. then, soldering tin/copper wire across the top of the board, and connecting those to the data lines, with pull ups. the result is rather neat, in its own right.
The bytes are read upwards, meaning that A0 is the lowest row, and so on. A diode indicates a 0, while a missing diode is 1. This is stupid, in terms of saving diodes, since 00 is used more often than FF, but yeah. Still needs some bytes, though, i ran out of diodes.


It should be able to mimic a 2716, or any device, really. I may need a tri-state buffer on DATA bus, and have the gate tied to /CS, to keep the bus floating from the pull ups. We'll see.

Once again, the sample programs are some counters and stuff i found on Donn Stewart's z80 page. I still haven't gotten around programming yet.

lørdag den 6. september 2014

Z80 System B update

So, the only thing lacking hardwarewise on the Z80 system I'm building, is the I/O. Once more, I was very inspired by Donn Stewarts z80 project in my port control logic, though I've made a connector for an external "terminal".
As you see, the "terminal" is really just two ports of LEDS as output and slide switches as input. The cable goes to a 40 pin DIL ribbon connector and socket, to port select and latching, etc.

This is the interface board, using the 74LS139 as address decoder/port selector, and 74LS244 for input buffers, 74LS373 for display latches. Still needs wiring.


And Wouldn't you know: The board cracked! when i was scoring the rectangular cutouts for the switches! The pcb material were.. not good; had a consistency as wet crackers, and flaked like slate, meaning when it cracked (the entire bottom right quarter) it sliced  the palm of my hand right up! but i was able to fix it (the board, that is; the hand takes care of itself) by means of screwing on a little piece of pcb on the underside, and solder some of the traces back. Holds quite well. 


fredag den 5. september 2014

Historic PROM burner: The DATAIO model IX

So, i bought this some time ago, a really interesting artifact of computer/digital electronics history.

It is, as far as my research go, nothing less than the worlds first microprocessor controlled PROM burner!

Yup, that's it. Pretty good condition, except for one missing button cover on the EDIT. It can check memory, copy it, browse through addresses, and many other functions. It has a parallel Dsub25 connector on the back, for "remote operation" - whether that means having "slave" programmers for multiple chips, or the unit being able to be controlled by other systems. I haven't found ANY documentation on this; no manual, nothing. the only reference to it is a note on DATA IO's website, under a company history timeline.

On the same timeline, they state that model 19 is the first microprocessor controlled burner (with MC6800) - That is wrong, since this model is earlier, and IS controlled by a 6800, making THIS the first. Though, whether it's the worlds first or the company's, I really haven't the foggiest.

THE GUTS

The case is in fiberglass, and split color blue/white, and is mounted on a 8 mm aluminum bottom plate - really adds some weight.

The computer part, which is what we want, is mounted in a little rack system, with a backplane bus of chained card-edge connectors on ribbon cable. There are 4 boards, with those lovely "ears" for releasing them from the rack.

************************THE PROCESSOR BOARD************************


If that ain't retro, I don't know what is! The memory is shared over 4 chips - 2x 2708 1K EPROMs, the white ceramic with gold windowframe/legs! i had to cover them, i were afraid the flash of the camera could damage the memory, so the windows are covered with masking tape. The plastic DIP24 with the sticker must be system ROM, and the MC6810 is the typical RAM to go with the MC6800. This RAM, is probably system RAM, there must be a reason why the RAM is split on two boards - more on that later. The shiny can is the MC6871A - an oscillator / two phase clock for the 6800. Not much else, a little logic and some jumpers. Notice how the address range of the memory is labeled in the silk screen: C600-C7FF and so on. That's neat!

************************MEMORY BOARD************************ 


 This is the RAM board. Little more than 2 AM9131ADC 1024x4 SRAM chips - yes, Advanced Micro Devices, AMD. Apparently, This can be expanded, by the two empty sockets. The RAM IC's is in the purple/grey/gold packages - same as the 6800 itself. I believe this RAM is for holding the PROM code in memory.

************************ I/O ************************

The I/O is again, as far as i can tell, very much standard 6800 peripheral stuff:


The 24 pin DIP package is the MC6850 ACIA Asynchronous Communications Interface Adapter, acting as an UART. The 40 pin package is the MC6821 peripherals adapter, driving, by the looks of the bus, the header connector top left, which goes to the front panel. The smaller second card edge connector (right) goes to the DSUB 25 connector. And a baud rate switch for the ACIA - what would happen if you activated more than one?

The main programming cards and IC sockets are connected directly to the main system bus, and consists of a set of two chip specific cards: A digital, dealing with timing and such, and an analog, setting voltages. I have yet to find any references as to what PROM my system is set up for, but changing chip for this model of burner must be quite a challenge. The analog board also needed calibration.

There's much more, so I'll probably do a follow up, but this is a brief description (ha. BRIEF) of the microprocessor/computer based parts.     

torsdag den 4. september 2014

Z80 computer update

It ALMOST lives. I'm currently working on the IO interface, which is just some latches and buffer logic with two ports of 8 LEDS and 8 switches. This "terminal" is connected via rainbow ribbon to a socket on the IO board:
The board is yet to be wired, which will be done in the style of the memory board.

The system as of writing looks like this:



The card labeled "memory card" is the memory card, and likewise with the others. You probably guessed that, though. I haven't made/bought the PSU yet, so it is powered by a variable psu, adjusted with a DMM. The ribbon is supposed to go to an angled front plate.

lørdag den 30. august 2014

Memory circuit wired

This is the memory card for my Z80 system. It contains a single 8x2k SRAM, the 6116-2, one of my favorite SRAM's, because its name is a palindrome. A 2716 EPROM of same size (and pin compatible, by the way) is used as system ROM. Address decoding for chip select with a 74139. Memory decoding entirely after Donn Stewart's Z80 computer. A more refined point-to-point wiring technique than with the indicator card, and i think it's really neat! Maybe even more so than wire-wrap. 

Using the same wire to make little ties for the wire bundles. 
For this method, start by wiring power, then control logic, and THEN DATA and ADDRESS buses, as you see, they are the ones who takes up space. Make sure that the wires are approximately the right length to be routed, and then after soldering of a bundle, begin "neating" with wire ties, either free floating or though holes in the PCB. excess length can be huddled up at one end (here, at the connector).  

fredag den 29. august 2014

The indicator card done

The indicator card made, with a different construction technique, since i wanted to exercise different prototyping methods for digital hardware. Okay, okay; I ran out of wire wrap wire.

Thiss is 26 AWG wire, thicker than W-W. wire, but not much. Still so thin the insulation goes through the standard PCB holes. gives a good deal of strain relief, and allows for use as wire binders.

Not much more to tell about this:


    

The processor card

The processor card is basically just a z80 with buffered buses and some functions. A clean reset circuit, and two clocks are on board as well. A manual step clock, and a slow clock ( a couple of Hz). This board, the clock and reset in particular, is inspired by CPUville's homebrew z80 project. This also served as the inspiration for this project. 

This is the card. The red % button is the reset, and the toggle switch is the manual clock. the header matrix to the left of the processor is to select the clock via jumper, so you don't accidentally switch on two clocks at the same time. 
Wire color code: RED: When it was closest. BLUE: When that was closest. Power is mainly routed on the solder side.


Computer base and indicator card!

OK, so these come pretty close one after another, since i'm actually past these steps, but behind on making a blog about it.

Well, the base is made, as mentioned from wood, and the Indicator card is made.
Well this is the indicator /bus display card. It is nothing fancy, just a binary readout of the entire bus. Upper row are DATA (7-0 in reading order), the two rows are ADDRESS(15-0), and the lower six are: Reset, Clock, Memrq, IOrq, RD and WR.
the four chips, 74LS241, is simply set up as noninverting buffers, which has some problems, since most of the control signals are active low. Good thing that won't confuse me when this machine doesn't do a thing!


   
Here be the base of the computer, the two cards installed. The dip socket on the bus card is to access the data bus, since i got the idea of wanting a little plug with pull-down resistors, to put the processor into free-run mode (just counting addresses, executing NOP's). Room is made for binary I/O, PSU, later: QWERTY keyboard, floppy drive, hard drive. 

Z80 microcomputer (SYSTEM B)

This is the progress on my Z80 computer project! I've recently received the needed components, and has begun construction.

The idea is, to make a eurocard (that's a PCB standard size) and backplane based microcomputer, which can be operated as simply as possible, but that also will allow for infinite expansions. 

Phase 1 consists on little more than a buffered CPU card with clock, and a bus display card, showing the logic level of the address and data bus as well as some control bus signals.

The "enclosure" is made of wood, to give that 70's homebrew feel, and the plan is not to use any component that didn't exist in the early to mid-80's.


Above can be seen the first card to be plugged into the backplane. The connectors are DIN 41617 connectors, because i like how the pins match up with regular stripboard. The card pcb's is IC-island types, FR4 material. The 4 20-pin packages are simply buffers for various busses.

I use a mix of prototyping techniques, here it's wire-wrap, though i use standard 0.1-inch header pins as wrap posts. This has two major advantages, 1) The card becomes very low-profile, with the height being about 1,5 cm instead of the almost 4 with ordinary wrap sockets. 2) each socket costs a fraction of a wire-wrap one. The connection might not be as good, though. I've yet to experience problems with that.