New project: An ACT Apricot F1 "barn find"

Blogs & guides and tales of woo by forum members.
User avatar
stephen_usher
Posts: 5580
Joined: Mon Nov 13, 2017 7:19 pm
Location: Oxford, UK.
Contact:

Re: New project: An ACT Apricot F1 "barn find"

Post by stephen_usher »

Tomswork wrote: Wed Sep 15, 2021 7:04 pm Can you bodge in one of the delay ic parts give your self a 40ns delay

Tom
I could put the DEN (Data ENable) signal through the inverter twice to slow it down but I'm not sure if it is this.
Intro retro computers since before they were retro...
ZX81->Spectrum->Memotech MTX->Sinclair QL->520STM->BBC Micro->TT030->PCs & Sun Workstations.
Added code to the MiNT kernel (still there the last time I checked) + put together MiNTOS.
Collection now with added Macs, Amigas, Suns and Acorns.
User avatar
stephen_usher
Posts: 5580
Joined: Mon Nov 13, 2017 7:19 pm
Location: Oxford, UK.
Contact:

Re: New project: An ACT Apricot F1 "barn find"

Post by stephen_usher »

What I really want to know is how it worked the first time I switched it on.

P.S. Given how buggy the bcc compiler is I'm not sure how far I should trust the results.
P.P.S. With the board removed my test program correctly gives memory errors when it gets to the first segment above 256K, so at least I can trust it that far.
Intro retro computers since before they were retro...
ZX81->Spectrum->Memotech MTX->Sinclair QL->520STM->BBC Micro->TT030->PCs & Sun Workstations.
Added code to the MiNT kernel (still there the last time I checked) + put together MiNTOS.
Collection now with added Macs, Amigas, Suns and Acorns.
User avatar
stephen_usher
Posts: 5580
Joined: Mon Nov 13, 2017 7:19 pm
Location: Oxford, UK.
Contact:

Re: New project: An ACT Apricot F1 "barn find"

Post by stephen_usher »

I'm fiddling with the GAL now after looking at the output from the logic analyser.

I got it to recognise the memory again, once. The system was a little slow and unstable and the diag suite memory test failed.

When the diag memory test fails it looks like the memory read/write line transitions before it disables the memory operation, and that's even though that signal is going through an extra set of gates and should be being delayed.

I've moved the OE signal to be triggered by the /MEM_OP line, which looks to be the most reliable with respect to when data is valid.
Intro retro computers since before they were retro...
ZX81->Spectrum->Memotech MTX->Sinclair QL->520STM->BBC Micro->TT030->PCs & Sun Workstations.
Added code to the MiNT kernel (still there the last time I checked) + put together MiNTOS.
Collection now with added Macs, Amigas, Suns and Acorns.
User avatar
stephen_usher
Posts: 5580
Joined: Mon Nov 13, 2017 7:19 pm
Location: Oxford, UK.
Contact:

Re: New project: An ACT Apricot F1 "barn find"

Post by stephen_usher »

I wonder if the GAL is just too slow.

Maybe I should switch to a 74S08 for the AND gate and run the SRAM /OE line directly off that rather than through the GAL, for the sake of speed.
Intro retro computers since before they were retro...
ZX81->Spectrum->Memotech MTX->Sinclair QL->520STM->BBC Micro->TT030->PCs & Sun Workstations.
Added code to the MiNT kernel (still there the last time I checked) + put together MiNTOS.
Collection now with added Macs, Amigas, Suns and Acorns.
User avatar
stephen_usher
Posts: 5580
Joined: Mon Nov 13, 2017 7:19 pm
Location: Oxford, UK.
Contact:

Re: New project: An ACT Apricot F1 "barn find"

Post by stephen_usher »

Hmm... It looks like I'm getting spurious write signals to the RAM, causing corruption.

P.S. It looks like I'm going to have to rethink the MEM_R_W line logic.
Intro retro computers since before they were retro...
ZX81->Spectrum->Memotech MTX->Sinclair QL->520STM->BBC Micro->TT030->PCs & Sun Workstations.
Added code to the MiNT kernel (still there the last time I checked) + put together MiNTOS.
Collection now with added Macs, Amigas, Suns and Acorns.
User avatar
stephen_usher
Posts: 5580
Joined: Mon Nov 13, 2017 7:19 pm
Location: Oxford, UK.
Contact:

Re: New project: An ACT Apricot F1 "barn find"

Post by stephen_usher »

I think I can bodge this board. Lift pin 6 of the 74LS08, remove the 74LS04. Connect pins 1 and 2 of the 74LS08 to the spare input pins on the GAL and a wire from a spare output on the GAL to the socket pin 6 where there LS08 sits. This will give the GAL full control of the R/W line to the memory. I'm guessing that my simple logic has an edge case where it does the wrong thing, reading then writing and writing when reading.

I've also realised that I've left some signals off the expansion port which makes it useless. So, I'm going to have to design a second version of the board at some pont. In some ways it'll be simpler as I don't think that I'll need the LS08 and LS04 chips and use the GAL instead. I can also fix the footprint for the 8 pin DIN socket.

The current board gives me the opportunity the to refine the hardware.
Intro retro computers since before they were retro...
ZX81->Spectrum->Memotech MTX->Sinclair QL->520STM->BBC Micro->TT030->PCs & Sun Workstations.
Added code to the MiNT kernel (still there the last time I checked) + put together MiNTOS.
Collection now with added Macs, Amigas, Suns and Acorns.
User avatar
stephen_usher
Posts: 5580
Joined: Mon Nov 13, 2017 7:19 pm
Location: Oxford, UK.
Contact:

Re: New project: An ACT Apricot F1 "barn find"

Post by stephen_usher »

By Jove! I think I've got it!

I've made the mods and actually removed the 74LS08, but left the 74LS04 in, for a reason I'll say later...

But....

IMG_2396.jpg
IMG_2396.jpg (69.03 KiB) Viewed 1835 times

It works! (GEM won't run on a 256K machine)

Basically I had to send the "Data ENable" signal coming from the system through the 74LS04 inverter so as to delay it a bit, but only for the RAM /OE line. If I added the delay to the chip enable or the /WE line then I had intermittent errors, but far fewer than when I was determining if the data was a memory read or write through the discrete logic.
Intro retro computers since before they were retro...
ZX81->Spectrum->Memotech MTX->Sinclair QL->520STM->BBC Micro->TT030->PCs & Sun Workstations.
Added code to the MiNT kernel (still there the last time I checked) + put together MiNTOS.
Collection now with added Macs, Amigas, Suns and Acorns.
User avatar
stephen_usher
Posts: 5580
Joined: Mon Nov 13, 2017 7:19 pm
Location: Oxford, UK.
Contact:

Re: New project: An ACT Apricot F1 "barn find"

Post by stephen_usher »

It wasn't quite fully stable so I did more investigation this morning.

It seems that my problem was actually to do with the SRAM. I was enabling /OE too early after enabling the chip and it just wasn't ready in time.

As an experiment I set the chip enable line high constantly and merely switched the /OE line, initially with the delayed "Data ENable" signal and then with the raw one from the motherboard. Everything's working correctly and so far stably too.

This means that I can very much simplify the next iteration of the board as I don't need to control the chip enable at all and no delays are necessary. This means that I won't need the 74LS04 and I can do everything on the GAL.
Intro retro computers since before they were retro...
ZX81->Spectrum->Memotech MTX->Sinclair QL->520STM->BBC Micro->TT030->PCs & Sun Workstations.
Added code to the MiNT kernel (still there the last time I checked) + put together MiNTOS.
Collection now with added Macs, Amigas, Suns and Acorns.
User avatar
stephen_usher
Posts: 5580
Joined: Mon Nov 13, 2017 7:19 pm
Location: Oxford, UK.
Contact:

Re: New project: An ACT Apricot F1 "barn find"

Post by stephen_usher »

The machine has been running the GEM desktop stably all morning now so I can thing that I can tick the "it's working" box.

So, it's on with the design of the Mk.II board. I can fix the DIN connector footprint too.
Intro retro computers since before they were retro...
ZX81->Spectrum->Memotech MTX->Sinclair QL->520STM->BBC Micro->TT030->PCs & Sun Workstations.
Added code to the MiNT kernel (still there the last time I checked) + put together MiNTOS.
Collection now with added Macs, Amigas, Suns and Acorns.
User avatar
stephen_usher
Posts: 5580
Joined: Mon Nov 13, 2017 7:19 pm
Location: Oxford, UK.
Contact:

Beware PCB mounted DIN socket pinouts!

Post by stephen_usher »

It's a good thing that I tested the ZX Spectrum compatible RGB port before doing the MkII board. It seems that my guess for the DIN socket pinout on the board end wasn't right and I had two sets of pins swapped in the footprint.

How could I have done this? Well, every schematic of the pins on right-angled, PCB mounted sockets from different manufacturers had different pin numbers on the board connections and none of these corresponded to the pins in the actual socket themselves. Sometimes it was obvious as the drawings showed the conductors going to locations which couldn't ever be near the cable side pin number of the same value but others were more subtle. None of these match the pinout I've discovered using continuity testing.
Intro retro computers since before they were retro...
ZX81->Spectrum->Memotech MTX->Sinclair QL->520STM->BBC Micro->TT030->PCs & Sun Workstations.
Added code to the MiNT kernel (still there the last time I checked) + put together MiNTOS.
Collection now with added Macs, Amigas, Suns and Acorns.
Post Reply

Return to “MEMBER BLOGS”