|
Vintage Computers Any vintage computer systems, calculators, video games etc., but with an emphasis on 1980s and earlier equipment. |
|
Thread Tools |
13th Nov 2020, 11:56 pm | #1 |
Octode
Join Date: Mar 2020
Location: Kitchener, Ontario, Canada
Posts: 1,298
|
Simulating the INS8154
There have been a few suggestions for simulating the INS8154 in other threads, but I though maybe we could collect different ideas in one place so we can discuss without diverting the other threads too far off topic.
The RAM is probably straightforward enough to just use a 6116 and ground the unused address lines. For the IO, to fully simulate the different modes of the INS8154 would probably be easy with a CPLD, but a 5v CPLD like the EPM7128S is probably not much easier to source than the INS8154 itself. An FPGA is probably going to need level shifters and a lower supply voltage, though it would probably also be able to include 128 bytes of RAM even in the smallest of FPGAs. It seems this would be overkill unless we were going to integrate the whole system in an FPGA including a processor. I was thinking we might be able to build a module with some of the functions of the INS8154 using common TTL, though not sure if we could get that into a small enough module even with SMT to make it pin compatible, but it might be useful as a separate board plugged onto one of Slothie’s replica MK14 s so you could play with inputs and outputs without worrying too much about damaging a rare component. For controlling the OrtonView vdu a subset of only one byte, output only might be enough. Would this only need to be a single byte output or should it be bit addressable, or maybe both? Should it be write only output, a readback latch or map it to shadow RAM so we can read back the last value written? |
14th Nov 2020, 12:29 am | #2 |
Dekatron
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,587
|
Re: Simulating the INS8154
I think I would favour making a pin-compatible 'replica chip' in much the same way as has been done for other difficult to get ICs such as the Spectrum and ZX81 ULAs which are arguably more complex than the 8154. However that's easy for me to say since I have zero knowledge of CPLD/FPGA design and the dev kits have always been more expensive than I could ever justify for hobby / tinkering use, so it wouldn't be me doing it.
Karen did appear to be thinking about the possibility of making a PIC replica of the I/O part of the 8154 - if she thought it could be done, then it is almost certainly doable - in fact when she suggested it I took it for granted that she would somehow find a way to use the internal RAM of the PIC to 'be' the 128-byte RAM, but then I think even she thought that was a step too far. |
14th Nov 2020, 2:04 am | #3 |
Heptode
Join Date: Oct 2011
Location: Culcheth, Cheshire, UK.
Posts: 654
|
Re: Simulating the INS8154
I've not studied the article shown here in great detail, ( too late tonight ), but it does look like a tantalising solution to the 8154 problem.
I couldn't see any mention of the 8154 RAM, but that should be easy to mimic. https://stardot.org.uk/forums/viewtopic.php?t=16619 Cheers, Buzby |
15th Nov 2020, 8:36 pm | #4 |
Octode
Join Date: Mar 2020
Location: Kitchener, Ontario, Canada
Posts: 1,298
|
Re: Simulating the INS8154
I took a quick look at that thread about using the 6522. It seems the 6522 has similar method of setting input or output pins to that used by the 8154 but doesn’t have the bitwise setting or input modes which are quite useful on a processor with limited registers.
EPM7128S CPLD would be able to simulate all the IO operations, including bitwise IO, but doesn’t have enough storage for memory. It also wouldn’t fit between the two rows of DIL pins to make a pcb that would fit within the 40 pin DIL outline. Maybe if an SMT pin header is used it would be possible to mount the CPLD on the opposite side of the pcb. In circuit programming is supported using jtag with a usb blaster. I think Quartus 13 supports the EPM7128S, I’d need to reinstall as I uninstalled it a few months ago. Instead of using VHDL it could be done with schematic capture, which is quite easy for hardware guys to learn, similar to designing a schematic for pcb design. It includes a library of primitive functions and most of the basic ttl devices. |
15th Nov 2020, 10:09 pm | #5 |
Dekatron
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,587
|
Re: Simulating the INS8154
How about using two PCBs, one just a 'carrier' PCB having the size / width and pins of a 40-pin IC, and then the CPLD PCB mounted edge-on vertically like a 'fin' running down the centre of the long axis of the first PCB? Something like the form factor and mounting method of a SIMM memory stick. If the vertical PCB was ~ 2.0 cm high then there might be room on it for an SMD version of the 6116 or some other SRAM as well. I don't known anything about CPLDs but perhaps it could also function as the address decoder for both I/O and RAM in addition to the I/O port functions?
|
16th Nov 2020, 1:07 pm | #6 |
Octode
Join Date: Nov 2004
Location: Hebden Bridge, West Yorkshire, UK.
Posts: 1,885
|
Re: Simulating the INS8154
One of the Lattice CPLDs might be worth a look - they still do 5V tolerant stuff I think. Their development environment is freely available.
Here's a link to my Acorn Sytem 1 project I did a while back - that contains a (probably incomplete) INS8154 - it was enough for the RAM and to get the display working, I can't remember exactly what I left out - definitely handshaking, probably interrupts. If there's interest I could add it in easily enough but I'd probably need some advice on how it should work! https://github.com/dominicbeesley/acornsystem1wsfpga |
17th Nov 2020, 1:41 am | #7 |
Octode
Join Date: Mar 2020
Location: Kitchener, Ontario, Canada
Posts: 1,298
|
Re: Simulating the INS8154
I took a look at the Lattice parts, very similar range to the Altera. Also very similar cost from Utsource, about $7 each, though that might not be an entirely reliable source.
Lattice are available from Digikey but at $25 each it's not really worthwhile by the time we add RAM, PCB and assembly. We need a minimum of 38 input output pins, 4 will be used for JTAG as we want to allow for reprogramming, and we would want a few more to control the RAM. This means we are looking at 100PQFT or 100TQFP type packages in either Lattice or Altera. I would probably pick Altera as I have had the Quartus package installed on my laptop in the past and used a USB blaster to program Cyclone IV. I'd probably use schematic design, but will take a look at dominicbeesley's VHDL version if we can come up with a possible physical design that works. I have a couple of EPM7128S in 100PQFP that I was going to try to use in an SPI SD card reader, this gives 78 pins of IO, so it might simplify pcb routing for a module if all the RAM connections were mapped through the CPLD. Just a rough layout to show the main components would fit, if the pin header can be SMT with some confidence that it doesn't pull the pads from the board when its unplugged from a 40 pin DIL socket. It would be a little wider than a 40 pin DIL IC, about 0.8" instead of 0.6". |
19th Nov 2020, 10:49 pm | #8 |
Octode
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
|
Re: Simulating the INS8154
I looked briefly at the possibility of hooking a 6522 up to the SC/MP (As I had several CMOS 6522s) and got stuck on the fact that it needs the phase-2 clock to synchronise the I/O and drive the timers. If the relationship between the XOUT and NRDS/NWDS pins was better defined by the data sheets then maybe it would be possible to construct a suitable signal to supply a stable clock to the phase-2 pin and appropriate CE and WE signals. It would be easier to interface a 6520/6521 chip as this doesnt need a phase-2 input.
I also poured through the datasheets and couldn't find an FPGA with a sufficiently small package with 5v input/outputs to make a replica chip style replacement. That's why my thoughts have gone to using a fast microchip 18F series chip to emulate the 8154 since these all have +5v compatibility and some have 64MHz clocks, giving a instruction cycle of ~63nS which might be fast enough for chips interfaced to an SC/MP. This investigation has been sheved somewhat until I can get my hands on the bits to complete my proper MK14 replica. |
19th Nov 2020, 11:18 pm | #9 | |
Dekatron
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,587
|
Re: Simulating the INS8154
Quote:
It's only a matter of time before Buzby gets his going but it would be good to have another issue VI onstream, especially one owned by its designer. |
|
19th Nov 2020, 11:50 pm | #10 | ||
Octode
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
|
Re: Simulating the INS8154
Quote:
|
||
20th Nov 2020, 12:17 am | #11 |
Dekatron
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,587
|
Re: Simulating the INS8154
I have a small number of the 'Alternative' IM65x... RAMs here, or I did... (he says, trying and failing to spot them just now). If you want to go down that road I'll dig out a quartet. They were surprisingly cheap but Tim bought some from the same source and the first four he tried worked.
If you were using an original SOC VDU they would be a minor handicap (although you could still use a SOC VDU with 6116 memory mapped into 0200-07FF). As we know, Karen kindly provided a 'proper' NRDS signal right from the beginning so they should work OK with OrtonView. SC/MP I unfortunately can't help you with as I have exactly as many of those as I have MK14s, no spares. |
20th Nov 2020, 12:51 am | #12 | |
Octode
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
|
Re: Simulating the INS8154
Quote:
|
|
20th Nov 2020, 5:59 pm | #13 |
Pentode
Join Date: Jun 2012
Location: Bristol, UK.
Posts: 115
|
Re: Simulating the INS8154
Has anyone actually used the RAM in an '8154?
Back in the late '70s a minimal SC/MP system might control a lift or greenhouse ventilators and the '8154 provided all the RAM necessary. In the MK14 I've used it for the occasional Subroutine. And I've shoehorned a better, basic Load-from-Tape to fit. But I've always thought a discontiguous 'bubble' of x80 bytes is more irritating than useful. Having said that, it's not difficult to have TWO '8154s together so you have x100 bytes -say at XCnn- 'dovetailed' into the memory map, and the port-pairs are elsewhere -say XE00 and XE80-. (But that's more twiddly ADDR decoding.) I wouldn't bother reproducing the RAM, you probably won't use it. |
20th Nov 2020, 6:59 pm | #14 |
Octode
Join Date: Mar 2019
Location: Barry, Vale of Glamorgan, Wales, UK.
Posts: 1,364
|
Re: Simulating the INS8154
Quite a few of the programs around use the RAM especially on un-expanded machines. But, of course if you have the expanded memory anyway they can be reassembled not to use it - so an 8154 that could be used to experiment with the interface side at lower risk would be a vast improvement and allow the cloned MK14s to be used actively without fear of destroying what are now also real rare antiques in the chips themselves.
|
20th Nov 2020, 7:14 pm | #15 |
Dekatron
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,587
|
Re: Simulating the INS8154
Yes of course... anyone who ever had a SOC VDU, because it ate up 512 bytes of your official 640 byte maximum RAM. The 128 bytes of the 8154 were all you had left left over to run programs in.
I would have said that your (circuitryboy's) MK14 is almost uniquely massively expanded, but then along came Buzby with his 'Micky', the only other MK14 I have ever seen expanded to similar extremes. I'm sure there were others but most people, especially those with Issue II-II-IV PCBs which didn't have the 'memory hole' at 0200-07FF, never went beyond 640 bytes so those 128 bytes could be quite important. |
16th Jan 2021, 2:38 am | #16 |
Octode
Join Date: Mar 2020
Location: Kitchener, Ontario, Canada
Posts: 1,298
|
Re: Simulating the INS8154
Sometimes it helps when you know something exists, just found these after seeing them mentioned in a product on tindie.
https://leadframes.co.uk/dual-in-line-leadframes/ I think the G type would work for a module with epm7128s to fit in. 40 pin dil socket. |
16th Jan 2021, 1:27 pm | #17 | |
Octode
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
|
Re: Simulating the INS8154
Quote:
|
|
16th Jan 2021, 6:44 pm | #18 |
Octode
Join Date: Mar 2020
Location: Kitchener, Ontario, Canada
Posts: 1,298
|
Re: Simulating the INS8154
It looks like even the G type would not work for the EPM8128S on a 40 pin DIL pcb. At least not without modification to the top of the pin to reduce how much it wraps over the top of the board.
Looks like they are still not available through distributers, but maybe I haven’t found the right search terms yet. |
16th Jan 2021, 7:47 pm | #19 | |
Octode
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 1,444
|
Re: Simulating the INS8154
Quote:
From looking at their website, I get the impression they specialise in custom low-volume manufacture, actually making these themselves - rather than being a mass-producer in the Far-East. So I doubt they make enough to supply these through distribution. And I've had luck with getting semi-custom pins etc being re-made by other UK companies Vero etc. without have to pay that large a price / too high a quantity, so might be worth an enquiry if no-one's tried so far. They do look rather similar to those used on many 3.5digit etc glass LCD's, so I wondered if whoever makes those sells them via any stockists. I did think it may be easier to just use double-sided 32way snap to size SIL pin strips, but you usually need to have thru-hole pads for these. I have seen SM adaptors boards, that use ZIL-shape SM ones on the underside - but unfortunately with larger 0.64mm square pins, so would need to force into a certain-type IC-socket, eg: https://www.proto-advantage.com/stor...cts_id=2700125 Or maybe 36way strip of L-shapped SM ones, that just go in one direction: https://www.digikey.co.uk/product-de...LF/609-6103-ND Has anyone looked into seeing if a generic 8155 PIA with internal RAM (like the 8255, but with not quite the 3 full get bit ports, but does have RAM), could be made to work (being as 6520 / 6821 had similar registers to INS8154)? with some pin-out adapting. The 8155's seemed to be cheaper than the 8255, being only £1.50 from Maplin back in the 1980's. BTW, mainly for people in the UK, you can some spare original ceramic-package INS8154's for £15 from here in the UK: http://81.174.146.201/acorn/For%20Sale/for_sale.html - After he did an order to get some from the Australian Rockby distributor, that still lists these in stock, and he's dealt with all the postage & import duty etc hassle plus can no doubt guarantee these working (as they are new / can pre-test them in his replicas). |
|
16th Jan 2021, 9:48 pm | #20 |
Octode
Join Date: Mar 2020
Location: Kitchener, Ontario, Canada
Posts: 1,298
|
Re: Simulating the INS8154
I still have quite a few of the INS8154D, socket pulls after cleaning out a local store, so for the moment this is just an interesting little side project.
I did look at the 8155, as I have a few of these, but due to the multiplexed address and data designed for 8085 and MCS48 type processors it would require some additional buffers to interface to the SC/MP type bus. I didn’t look any closer at the io mapping. |