Viser opslag med etiketten DIY. Vis alle opslag
Viser opslag med etiketten DIY. 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
--


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

Burning EPROMS the stupid way

So I'm reaching a point where I'll need to work on my ROM. Step one involves little more than some tests and the ability to punch in programs via the input ports. The system ROM is a 2716 EPROM, because i think it's neat because it's pin compatible with my RAM, so i can reuse the board later on. I found my EPROM burner, and wept. I completely forgot, it works, but it is.. not my fines piece of DIY gear. ADDR and DATA is set with a sharp pencil and DIP-switches, and binary data readout on the little floating board.

The only thing even remotely nice about it is the genuine 3M TEXTOOL socket, (not installed on the pic).


Since I'm only at 60-100 bytes at the moment, this abomination is adequate, but i really need to make a more optimized one. With HEX rotary switches, 7seg readouts, and "jump to next address" button.