Early 8080 based computer

for bbc micro/electron hardware, peripherals & programming issues (NOT emulators!)
User avatar
hoglet
Posts: 6148
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Early 8080 based computer

Postby hoglet » Mon Jul 13, 2015 9:58 am

Hi Guys,

At the Newbury Radio rally a kind old chap gave me his old 8080 based computer from the 1970's. I tried to offer him some money, but he seemed glad that someone was actually interested in it.

It's not in a great state, as can be seen from the below photos:
IMG_1006.JPG

IMG_1012.JPG

IMG_1013.JPG

It's based on an Intel 8080A, with 4K of ROM (4x 2708) and 1K of RAM (8x P5101L). It looks like it also has a cassette interface card and a graphics card.

The graphics card contains the following:
- AY-5-1013 (UART)
- SFF 96364E (CRT Controller)
- 6x 2102L (1Kx1 RAM)
- CGR-001 (Character generator ROM)

It also has a battery that is leaking, but we'll deal with that later....

It looks like it's a UK clone of an Intel MCS-80 System Development Kit:
dev_board--Intel--MCS-80_System_Design_Kit--(Intel--C8080A).JPG
. One of the few hand written bits of paper that came with it referred to it as an SDK-80.

It needs to be fed -12V (200mA), +5V (1.5A) and +12V (200mA), and after reading the 8080A datasheet it seems power supply sequencing is important, so I'm being really careful.

Anyway, after checking for shorts and applying the power there was no smoke, and I was greeted with this 64x16 display:
IMG_1016.JPG


Not promising....

Anyway, armed with scope the 8080 seemed to be executing instructions. Then I noticed an 8251 and saw the following on the Tx pin when pressing reset:
IMG_1014.JPG

IMG_1015.JPG

Looks like ~1200 baud.

So out with the serial cable, and guess what, it works....
mcs80-1.png

Now, my next goal is to try to dump the ROMs. Being ancient 2708s, none of my programmers support them, because they need three different power supply voltages. I though I would try through the serial port, but the BASIC doesn't seem to have PEEK and POKE.

Is anyone familiar with any 4K BASICs for the 8080 from the 1970s? I'm guessing it is an very early Microsoft BASIC.

Anyway, I need to pop into work now, but I'll be back on the case later this afternoon.

Dave
Last edited by hoglet on Mon Oct 26, 2015 6:36 pm, edited 1 time in total.

User avatar
Pernod
Posts: 876
Joined: Fri Jun 08, 2012 10:01 pm
Location: Croydon, UK

Re: Early 8080 based computer

Postby Pernod » Mon Jul 13, 2015 11:21 am

Nice find, I'd be interested in the ROM dumps.

I should be able to emulate this in MAME/MESS. We already have the SDK-85 and SDK-86 emulated so would be great to add the SDK-80.
- Nigel

BBC Model B, ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, etc.

User avatar
BigEd
Posts: 1289
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Early 8080 based computer

Postby BigEd » Mon Jul 13, 2015 12:45 pm

Nice find! Would an ICE-8080 be a good way to get at the ROM contents? I looked up a few 4k Basics and it does seem that Peek and Poke belong in the 8k variants. If USR is present, it needs to be set up prior to loading Basic.

Perhaps by investigating the various error codes (syntax, function, mismatched for..next or gosub..return or read past end of data) it would be possible to narrow down which flavour this is - but even so it's hard to see how to escape the interpreter.

Have you tried resetting with various keys held down, or feeding in a spurious interrupt, just in case there's a machine code monitor hiding in there?

bprosman
Posts: 121
Joined: Sun Mar 29, 2015 10:27 pm

Re: Early 8080 based computer

Postby bprosman » Mon Jul 13, 2015 1:45 pm

Godil in the 8080 socket and reading the data ?

Kind regards, Bram

User avatar
hoglet
Posts: 6148
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Early 8080 based computer

Postby hoglet » Mon Jul 13, 2015 3:27 pm

Not making much progress with the Basic.

The ROMs are labelled:
BASIC BLC 1
BASIC BLC 2
BASIC BLC 3
BASIC BLC 4

It seems to have:
- single letter variables that are floating point only
- LIST / RUN / NEW
- LET
- FOR / NEXT / STEP
- GOTO / GOSUB / RETURN
- SIN / COS

It's missing
- PEEK / POKE / USR
- TAN
- DIM

That's about as far as I got when it stopped working :(

It actually stopped in the middle of me typing stuff, so it wasn't down to a slip of the probe or anything. Now when I power it up nothing comes out of the serial port. So back to the scope.....

Dave

User avatar
hoglet
Posts: 6148
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Early 8080 based computer

Postby hoglet » Mon Jul 13, 2015 3:30 pm

bprosman wrote:Godil in the 8080 socket and reading the data ?

Kind regards, Bram

Not sure it will be that straightforward, as the clock input seem to have a 12V swing!

I'm going to let it all cool down, and try again in an hour or so.

Dave

User avatar
BigEd
Posts: 1289
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Early 8080 based computer

Postby BigEd » Mon Jul 13, 2015 3:53 pm

Oh no... it will probably have ATN. That READY prompt and the lack of a startup message is unusual: it's most likely not a Micro-Soft basic.

User avatar
roland
Posts: 2754
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Early 8080 based computer

Postby roland » Mon Jul 13, 2015 8:31 pm

You can also design a small circuit to read those eproms with an Atom. It might even work when you fit it in socket 24.
256K + 6502 Inside
MAN WOMAN :shock:

bprosman
Posts: 121
Joined: Sun Mar 29, 2015 10:27 pm

Re: Early 8080 based computer

Postby bprosman » Mon Jul 13, 2015 8:35 pm

Its indeed most probably not that straight forward, CPU has just like the 2708 three voltages and the clock is indeed not TTL compatible.
Address and data bus should be TTL though.

http://www.classiccmp.org/dunfield/r/8080.pdf

Kind regards, Bram

bprosman
Posts: 121
Joined: Sun Mar 29, 2015 10:27 pm

Re: Early 8080 based computer

Postby bprosman » Mon Jul 13, 2015 8:40 pm

@Roland,
The only issue with these old EPROM's is that they require a 3 voltage power supply.
The Elektor Junior computer originally had one as well.

Kind regards, Bram

User avatar
hoglet
Posts: 6148
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Early 8080 based computer

Postby hoglet » Mon Jul 13, 2015 9:09 pm

I think I could read them in an Atom, by inserting a couple of sockets between IC24 and the 2708 that would allow me to feed -5V and +12V into the 2708 and not the Atom. I'd need to be very careful with power supply sequencing.

But I really don't want these voltages anywhere near my Atom :lol:

Or I could try this: http://home.scarlet.be/~nb010944/zaccpu/e2708.htm

But I think instead I'll make a small circuit on the breadboard to connect to the user port of the Beeb. The data lines can be read directly from Port B. The address lines can be driven from a 4040 binary counter. The counter clock can be driven from CB2 and resetting the counter will be manual.

I've had a look with the logic analyzer, and it I can see it executing code correctly from the first EPROM, but on the first CALL to the third EPROM the instruction it finds looks like junk (an RST 28 which I would not expect)

My fear is that the EPROMS are starting to suffer bit rot. They are probably over 40 years old. :shock: :shock: :shock: This would be very unfortunate.

Dave

User avatar
1024MAK
Posts: 6352
Joined: Mon Apr 18, 2011 4:46 pm
Location: Looking forward to summer in Somerset, UK...

Re: Early 8080 based computer

Postby 1024MAK » Mon Jul 13, 2015 9:39 pm

Who needs a CPU?

You need some counters, shift registers, parallel latches/flip-flops, or PIA/VIA or similar to provide 16 address lines.
A small amount of logic to control the control bus.
A 8 bit buffer or latch, PIA/VIA or parallel to serial device or similar to read the data bus.

Then you can copy the whole of the address space.

I once rigged up something similar using some logic and three 8 bit wide parallel latches/flip-flops to test a CPU-less memory board.

Mark
For a "Complete BBC Games Archive" visit www.bbcmicro.co.uk NOW!
BeebWiki‬ - for answers to many questions...

User avatar
hoglet
Posts: 6148
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Early 8080 based computer

Postby hoglet » Tue Jul 14, 2015 5:06 pm

I've made a 2708 adapter for my EPROMs programmer, and had a go at reading the four ROMS.

Three of them were consistently readable, but the fourth (rom 1) was definitely suffering bit rot, and I could see bytes changing as I was re-reading it.

Here's my first dump:

Code: Select all

00000000: f33a f70f f9d3 da10 f3ef bed3 8600 3e0d  .:............>.
00000010: f5db ede6 11c3 a40f cdda 05e5 c384 0550  ...............P
00000020: 7cba c07d bbc9 454e 1afe 20c0 13c3 2800  |..}..EN.. ...(.
00000030: f1dd 5e18 d37b 0845 ffd6 41d8 fe1a 3fd8  ..^..{.E..A...?.
00000040: 5713 3a00 3c17 80cd b31f 3a18 3c14 b83f  W.:.<.....:.<..?
00000050: d0df 282c d5cd b606 d1cf 2927 d57c b7fa  ..(,......)'.|..
00000060: bd00 545d 2919 f52a 093c 783d 17cd b31f  ..T])..*.<x=....
00000070: 5e23 5633 7e33 666f e319 d1f7 d2bd 10d1  ^#V3~3fo........
00000080: 373f d9c3 7b08 23ca 9110 d54e 1600 09c1  7?..{.#....N....
00000090: 1b13 23e3 d921 0000 54ef fe30 d8fe 3ad0  ..#..!..T..0..:.
000000a0: 3ef0 a4c2 bd00 04c5 444d 2929 0929 1a13  >.......DM)).)..
000000b0: f60f 856f 3e00 8c67 c11a f29a 0011 d300  ...o>..g........
000000c0: c37e 0848 4f57 3f0d 5255 5144 591d 5748  .~.HOW?.RUQDY.WH
000000d0: 4154 3f0d 535f 5252 590d cd9a 1f11 f90f  AT?.S_RRY.......
000000e0: 0100 3c21 f60f ddaa 092a e70f f9bf 321f  ..<!.....*....2.
000000f0: 3ccd 1e00 11c8 0097 cd38 0921 0000 2213  <........8.!..".
00000100: 3c32 1f3c 3e3e dda9 18d5 2ae1 0feb cd95  <2.<>>....*.....
00000110: 10ef eb2b 723b 73c1 7995 3c2b 7722 0d3c  ...+r;s.y.<+w".<
00000120: eb7c b7fa bd00 b5ca 4a02 c51a d5f5 e52a  .|......J......*
00000130: 063c 7eb7 d2bd 10e1 cd12 09d5 d251 01d5  .<~..........Q..
00000140: cd2d 09c1 2a06 3ccd aa09 6069 2206 3c36  .-..*.<...`i".<6
00000150: 00c1 2a06 3cf1 f5fe 04ca e900 856f 3e10  ..*.<........o>.
00000160: 8c67 eb2a 043c ebe7 d291 0822 063c 3600  .g.*.<.....".<6.
00000170: d1cd b309 d1f1 cdaa 19c3 0401 4c49 5354  ............LIST
00000180: 9317 5255 5e82 a54e 4557 8291 4f4c 4482  ..RU^..NEW..OLD.
00000190: 7e5e 5558 5484 174c 4554 8501 4946 8476  ~^UXT..LET..IF.v
000001a0: 574f 545f 82cd 474f 5355 4283 7852 4554  WOT_..GOSUB.xRET
000001b0: 5552 5e83 9a3b 8472 564f 5283 b359 4e50  UR^..;.rVOR..YNP
000001c0: 5554 8495 5052 494e 5483 3f53 544f 5082  UT..PRINT.?STOP.
000001d0: 9c55 5352 92dc 4449 5d85 0b4f 5554 9564  .USR..DI]..OUT.d
000001e0: 8501 2e86 4b41 4253 86cc 2586 e140 86e7  ....KABS..%..@..
000001f0: 5e86 f543 4f53 8714 5349 4e87 1f53 5152  ^..COS..SIN..SQR
00000200: 8735 5558 5097 584c 4f47 8753 5154 5e87  .5UXP.XLOG.SQT^.
00000210: 2a49 4e54 9766 494e 8702 4845 5897 7454  *INT.fIN..HEX.tT
00000220: 4f50 86d6 8640 544f 83c4 887b 5354 5550  OP...@TO...{STUP
00000230: 83d0 83d6 3e3d 958b 2385 923e 9599 3d95  ....>=..#..>..=.
00000240: ac3c 3d95 b13c 85b3 85bc 317b 0113 1313  .<=..<....1{....
00000250: efd5 1a13 fe3e ca6f 0223 beda 5212 3e7f  .....>.o.#..R.>.
00000260: 1bbe da76 1223 bed2 6502 23d1 d351 123e  ...v.#..e.#..Q.>
...

You can clearly see READY is now RUQDY.

I tried varying the various supply voltages, but this didn't seem to help. So I resorted to massive quantities of freezer spray, and it seems to have helped. Almost miraculous how the original data seems to have re-appeared.

Code: Select all

00000000: f32a e70f f9c3 da00 e3ef bec3 8600 3e0d  .*............>.
00000010: f5db ede6 01c3 a40f cdda 05e5 c384 0550  ...............P
00000020: 7cba c07d bbc9 454e 1afe 20c0 13c3 2800  |..}..EN.. ...(.
00000030: f1cd 5e08 c37b 0845 efd6 41d8 fe1a 3fd8  ..^..{.E..A...?.
00000040: 4713 2a00 3c07 80cd b30f 3a08 3c04 b83f  G.*.<.....:.<..?
00000050: d0cf 282c c5cd b606 c1cf 2927 d57c b7fa  ..(,......)'.|..
00000060: bd00 545d 2919 e52a 093c 783d 07cd b30f  ..T])..*.<x=....
00000070: 5e23 5623 7e23 666f e319 d1e7 d2bd 00d1  ^#V#~#fo........
00000080: 373f c9c3 7b08 23ca 9100 c54e 0600 09c1  7?..{.#....N....
00000090: 1b13 23e3 c921 0000 44ef fe30 d8fe 3ad0  ..#..!..D..0..:.
000000a0: 3ef0 a4c2 bd00 04c5 444d 2929 0929 1a13  >.......DM)).)..
000000b0: e60f 856f 3e00 8c67 c11a f29a 0011 c300  ...o>..g........
000000c0: c37e 0848 4f57 3f0d 5245 4144 590d 5748  .~.HOW?.READY.WH
000000d0: 4154 3f0d 534f 5252 590d cd9a 0f11 e90f  AT?.SORRY.......
000000e0: 0100 3c21 f60f cdaa 092a e70f f9af 321f  ..<!.....*....2.
000000f0: 3ccd 0e00 11c8 0097 cd38 0921 0000 2213  <........8.!..".
00000100: 3c22 0f3c 3e3e cda9 08d5 2ae1 0feb cd95  <".<>>....*.....
00000110: 00ef eb2b 722b 73c1 7995 3c2b 7722 0d3c  ...+r+s.y.<+w".<
00000120: eb7c b7fa bd00 b5ca 4a02 c51a d5f5 e52a  .|......J......*
00000130: 063c 7eb7 c2bd 00e1 cd12 09d5 c251 01d5  .<~..........Q..
00000140: cd2d 09c1 2a06 3ccd aa09 6069 2206 3c36  .-..*.<...`i".<6
00000150: 00c1 2a06 3cf1 e5fe 04ca e900 856f 3e00  ..*.<........o>.
00000160: 8c67 eb2a 043c ebe7 d291 0822 063c 3600  .g.*.<.....".<6.
00000170: d1cd b309 d1e1 cdaa 09c3 0401 4c49 5354  ............LIST
00000180: 8317 5255 4e82 a54e 4557 8291 4f4c 4482  ..RUN..NEW..OLD.
00000190: 7e4e 4558 5484 174c 4554 8501 4946 8476  ~NEXT..LET..IF.v
000001a0: 474f 544f 82cd 474f 5355 4283 7852 4554  GOTO..GOSUB.xRET
000001b0: 5552 4e83 9a3b 8472 464f 5283 b349 4e50  URN..;.rFOR..INP
000001c0: 5554 8495 5052 494e 5483 2f53 544f 5082  UT..PRINT./STOP.
000001d0: 9c55 5352 82dc 4449 4d85 0b4f 5554 8564  .USR..DIM..OUT.d
000001e0: 8501 2e86 4b41 4253 86cc 2586 e140 86e7  ....KABS..%..@..
000001f0: 5e86 f543 4f53 8714 5349 4e87 1f53 5152  ^..COS..SIN..SQR
00000200: 8735 4558 5087 484c 4f47 8753 4154 4e87  .5EXP.HLOG.SATN.
00000210: 2a49 4e54 8766 494e 8702 4845 5887 7454  *INT.fIN..HEX.tT
00000220: 4f50 86d6 8640 544f 83c4 887b 5354 4550  OP...@TO...{STEP
00000230: 83d0 83d6 3e3d 858b 2385 923e 8599 3d85  ....>=..#..>..=.
00000240: ac3c 3d85 a13c 85b3 85bc 217b 0113 1313  .<=..<....!{....
00000250: efd5 1a13 fe2e ca6f 0223 beca 5202 3e7f  .......o.#..R.>.
00000260: 1bbe da76 0223 bed2 6502 23d1 c351 023e  ...v.#..e.#..Q.>
...

This gives some idea of the commands that are supported, and may help identify the dialect of BASIC.

I'll need to try to re-blow rom1, maybe to a 2716, and make an adapter.

Anyway, here's the whole 4K (all 4 roms):
rom_4K.zip
(3.3 KiB) Downloaded 112 times


Dave

User avatar
1024MAK
Posts: 6352
Joined: Mon Apr 18, 2011 4:46 pm
Location: Looking forward to summer in Somerset, UK...

Re: Early 8080 based computer

Postby 1024MAK » Tue Jul 14, 2015 5:44 pm

EPROM's are of course a mix of analogue and digital circuitry... And digital circuitry is itself made up of analogue transistors :mrgreen:

And, the early EPROMs were never expected to be used so long after their manufacture... Despite the problems and errors, it's still remarkable that what could be considered to be crude technology today still kinda works :D

Mark
For a "Complete BBC Games Archive" visit www.bbcmicro.co.uk NOW!
BeebWiki‬ - for answers to many questions...


User avatar
hoglet
Posts: 6148
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Early 8080 based computer

Postby hoglet » Tue Jul 14, 2015 6:17 pm

Hi Kees,

I do agree it looks like a variant of Tiny Basic, and there were lots.

I wonder if the BLC label (on the ROMs) means Basic Li Chen, as Li Chen was the author of Palo Alto Tiny Basic:
https://en.wikipedia.org/wiki/Li-Chen_Wang

But I haven't yet found the exact same version anywhere.

I really hope I can get this working again.

Dave

User avatar
BigEd
Posts: 1289
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Early 8080 based computer

Postby BigEd » Tue Jul 14, 2015 8:06 pm

Looks like it does have DIM after all. And @, the array. This is very interesting! Have you managed to get it say SORRY, HOW? or WHAT? yet?
This manual for an 8051 port does bear similarities with what you have:
https://web.archive.org/web/19980712130 ... as-51.html

User avatar
BigEd
Posts: 1289
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Early 8080 based computer

Postby BigEd » Tue Jul 14, 2015 8:18 pm

I found source and docs to a probably-related but not identical tinybasic:
http://www.cpm.z80.de/roche/PCWPATB.TXT
http://www.cpm.z80.de/roche/PCWPATB.ASM
but I note that all tiny basics seem to be integer only - yours appears to offer trig functions. Curious.

User avatar
CharlesMouse
Posts: 105
Joined: Sat Jul 24, 2010 10:59 am
Location: Nowhere
Contact:

Re: Early 8080 based computer

Postby CharlesMouse » Tue Jul 14, 2015 8:59 pm

What a lovely old machine. I do hope you manage to get it puttering along nicely again.

Um, Altair 4k Basic..? (of some sort)
The command set, floating point, and vintage would seem to about fit.
Charlie.

Are you pondering what I'm pondering? The Qube RiscOS Server

User avatar
daveejhitchins
Posts: 3478
Joined: Wed Jun 13, 2012 5:23 pm
Location: Newton Aycliffe, County Durham

Re: Early 8080 based computer

Postby daveejhitchins » Tue Jul 14, 2015 9:31 pm

If you don't think you have all the code? What's worked for me, in the past, is in the freezer overnight. You'll need to wrap it up well and work quickly in the morning. But, it's slightly better than freezer spray.

Dave H :D
Parts: UM6502CE, GAL22V10D, GAL16V8D, AS6C62256A, TC514400AZ, WD1772, R6522, TMS27C512, AT28C256
Products: ARA II, ABR, ATI, AP6, MGC
For a price list, contact me at: Retro Hardware AT dave ej hitchins DOT plus DOT com

User avatar
hoglet
Posts: 6148
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Early 8080 based computer

Postby hoglet » Tue Jul 14, 2015 9:49 pm

daveejhitchins wrote:If you don't think you have all the code? What's worked for me, in the past, is in the freezer overnight. You'll need to wrap it up well and work quickly in the morning. But, it's slightly better than freezer spray.

I do think I have all the code, but the machine is still now working. But there is a mass of "mods" on the bottom, plus considerable battery damage, so I'm not surprised.

I'm probably going to try a two pronged attack.

I should be able to knock up an FPGA implementation of enough to validate the ROM is working. All it needs is an 8080, and 8051, some RAM and the ROM, all of which exist in Open Cores.

Once I have done this, I'll go back to the somewhat fragile hardware with my trusty HP 1650A and look at where things are going awry.

Dave

User avatar
Pernod
Posts: 876
Joined: Fri Jun 08, 2012 10:01 pm
Location: Croydon, UK

Re: Early 8080 based computer

Postby Pernod » Wed Jul 15, 2015 8:47 am

The MAME guys have taken an interest in this. Are you also able to dump the character generator ROM, though I suspect we already have it in the Apple 1 driver.

More closeup photos would also help of the video and cassette boards. I presume there's a keyboard in the box too, a photo of the layout would be required. Basically hires shots of anything that would be useful to get this emulated.

Thanks.
- Nigel

BBC Model B, ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, etc.

User avatar
BigEd
Posts: 1289
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Early 8080 based computer

Postby BigEd » Wed Jul 15, 2015 10:05 am

Looking for an 8080 emulator, I found one which is just under 4k of source code, and nearby a tiny basic for it, which is just 2k of binary. So that's quite impressive.
http://www.nanochess.org/emulator.html
(The program compiles [using -m32] with lots of warnings, and requires a memory image in a file called C, [crashing if it doesn't find it,] but it does work. And it won best of show.)
Last edited by BigEd on Wed Jul 15, 2015 4:38 pm, edited 1 time in total.

User avatar
hoglet
Posts: 6148
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Early 8080 based computer

Postby hoglet » Wed Jul 15, 2015 11:45 am

Pernod wrote:The MAME guys have taken an interest in this. Are you also able to dump the character generator ROM, though I suspect we already have it in the Apple 1 driver.

Here's a picture of the character generator ROM:
IMG_1022.JPG

If anyone has any idea of the pinout, I'm happy to try to extract the data. But I think it's a standard Apple I/II Character Generator ROM, made by General Instruments (GI).

Here's a datasheet I found for the original Signetics 2513:
http://amigan.yatho.com/2513.pdf
Pernod wrote:More closeup photos would also help of the video and cassette boards. I presume there's a keyboard in the box too, a photo of the layout would be required. Basically hires shots of anything that would be useful to get this emulated.
Thanks.

Here's a few more photos of the video and cassette boards:
IMG_1019.JPG

IMG_1023.JPG

The Video board has the following ICs:
1x AY-5-1013 - UART
6x 2102L1PC - 1Kx1 Static RAM
1x SFF 96364E - CRT Controller
1x 6300 D7 (the white ceramic/gold IC) - MMI Bipolar PROM (256x4)
1x SN7400N - Standard TTL - Quad 2 Input NAND gate
1x MC74H08L - Standard TTL- Quad 2 Input AND gate
1x ITT74174N - Standard TTL - Hex D-Type Flip Flip
1x R03-2513 CGR-001 - Apple I/II Character Generator ROM
1x SN74165N - Standard TTL - Parallel Load 8-bit Shift Register
1x SN74163N - Standard TTL - 4 bit Binary Counter
1x SN74132N - Standard TTL - Quad 2 Input Schmitt NAND gate

The Cassette board has the following ICs:
1x HCF4520BE
1x RS3130 (Op Amp in a metal can)
3x CD4011CN
1x CD4001AE
1x HBF4045AE
1x NE555V
2x CD4013AE

In addition, there is some additional decoding logic that has been built on the prototyping area:
1x DM74LS138N
2x CD4013AE
1x N74H04A
1x N7404A
1x SN74H04N
1x 7420N
1x SN74123N
2x 9N00/7400

My feeling is that only the main board is a Intel MCS-80 clone (but missing the S100 bus connectors, and with different RAM/ROM layout), the other boards and the random logic are probably unique.

Disassembling the ROM, it appears the 8251 UART is at IO Address EC/ED:

Code: Select all

0fb8h:            label_fb8:
       dbed         in a, (edh)
0fbah: e602         and a, 2h
0fbch: c8           ret z
0fbdh: dbec         in a, (ech)
0fbfh: e67f         and a, 7fh
0fc1h: fe03         cp a, 3h
0fc3h: c0           ret nz

I haven't yet stumbled across any code in the ROM that looks like it would write to the video board or the cassette boards, or any commands like LOAD or SAVE.

To start emulating this, I would start with:
- 8080
- ROM at 0000-0FFF (4KB)
- RAM at 3C00-3FFF (1KB)
- UART at EC/ED

I think this might be enough to run the BASIC.

Dave
Last edited by hoglet on Wed Jul 15, 2015 12:36 pm, edited 2 times in total.

User avatar
hoglet
Posts: 6148
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Early 8080 based computer

Postby hoglet » Wed Jul 15, 2015 12:10 pm

Here's the datasheet for the GI 2513, which is +5V only:
GI_RO-3-2513.zip
(145.19 KiB) Downloaded 80 times

This is the character set:
cgr001.PNG

The Video Card contains a AY-3-1013 UART. Given this, I'm thinking that possibly it can be used as the output side of a dumb serial terminal, and that's why there doesn't appear to be any driver software in the ROMs. Just a guess at this stage.

Dave

User avatar
BigEd
Posts: 1289
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Early 8080 based computer

Postby BigEd » Wed Jul 15, 2015 3:13 pm

I've patched the ROM so it works with Óscar's emulator: patching the emulator is next to impossible! Just in case anyone else is so foolhardy, here's the patch:

Code: Select all

xxd rom_4K.bin |sed 's/db ec/db 01/g;s/dbed/3eff/g;s/db ed/3e ff/g'|xxd -r > rom_4K-patched.bin

It looks like all values are floating point. Not quite 16 bits of mantissa, perhaps a 3-byte representation? There are two arrays, @ and %, and I think they share the same memory. I think perhaps assignments to @ elements are byte wide and to % are float-wide, but I'm not sure. (Edit: no, that's not it.) I can't find an acceptable syntax for DIM.

Code: Select all

READY
>PRINT 1E18
 9.992E 17

READY
>PRINT 1E19
HOW?

READY
>PRINT 16384-16383
 1.000E 00

READY
>PRINT 32768-32767
 0.0     

Edit: there are 3 arrays, ^ is also an array. Also sharing the same memory. So @ ^ and % are accessing the same memory but in different ways. The indexes seem to be byte-sized, so only every third element is independent, because a value takes up three bytes.

User avatar
hoglet
Posts: 6148
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Early 8080 based computer

Postby hoglet » Wed Jul 15, 2015 4:10 pm

Ed,

This is excellent, as it indicates I did manage to correctly dump the ROM before permanent bit-rot set in.

I've made an adapter so I can use a 2716 to replace the dodgy 2708, and I'm currently tracing this on the Logic Analyzer. It's going wrong pretty quickly, and it looks like there is occasionally something wrong with bits D0 and D1. But I don't think it's as simple as a short.

Is it possible the 2716 has less drive than the 2708? It may also be a difference in access times.

Dave

User avatar
BigEd
Posts: 1289
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Early 8080 based computer

Postby BigEd » Wed Jul 15, 2015 4:27 pm

The late Chuck Falconer wrote two versions of 3-byte floating point code for the 8080 - published in DDJ and probably related to the code we have here. See
https://groups.google.com/d/msg/comp.ar ... WxzGnrkg8J
See also
http://www.retrotechnology.com/float/FALCONER.TXT
but as this talks about getting more range than 10^18 it could be a later evolution.

Edit: BTW using the arrays seems able to crash Basic, and the initial values aren't zero, so my feeling is that we need DIM to get the arrays to use memory that's actually available.

User avatar
Pernod
Posts: 876
Joined: Fri Jun 08, 2012 10:01 pm
Location: Croydon, UK

Re: Early 8080 based computer

Postby Pernod » Wed Jul 15, 2015 4:53 pm

We now have a skeleton driver in MAME. Doesn't show anything yet as we haven't hooked up a CRTC.
- Nigel

BBC Model B, ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, etc.

User avatar
hoglet
Posts: 6148
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Early 8080 based computer

Postby hoglet » Wed Jul 15, 2015 5:05 pm

Hi Pernod,
Pernod wrote:We now have a skeleton driver in MAME. Doesn't show anything yet as we haven't hooked up a CRTC.

I think the Video board is effectively just a dumb terminal. It contains a UART, that seems to be connected to the UART on the main board. There are few other wires between these two boards.

As long as you implement a UART (like Ed has above) that will be sufficient.

Dave


Return to “hardware”

Who is online

Users browsing this forum: Pernod and 10 guests