Email or username:

Password:

Forgot your password?
Top-level
Tube🌱Time

to get the Amiga to work with high density disks, the Commodore engineers took a little short cut and just spin the drive at half the normal RPM (150 instead of 300). this keeps the data rate the same, allowing the custom chip to remain unchanged.

92 comments
Tube🌱Time

this means you can't just use a standard PC floppy drive and expect it to work, even with a little PAL on the back. this drive has been modified.

Tube🌱Time

as is typical in the Amiga community, the mods have been done in such a way to make them hard to reverse engineer. in this case, the rework wire is hair-thin magnet wire covered in silicone. try to remove the silicone, and it shreds the wire.

Tube🌱Time

my guess is that it taps into the BA6986FS spindle motor driver and allows the PAL to slow it down when a high density disk is detected.

Tube🌱Time

the schematic is pretty simple. looks like it does the pin swizzle for the disk change signal, creates the READY signal the amiga needs, but then it does some clever stuff with the index pulse. additionally, it uses the two reserved pins and the unused drive select line presumably to plumb the rework wires.

Tube🌱Time

soldered some wires to the rework wires to help figure out where they go.

Tube🌱Time

ok I've replaced the wires with bigger and more visible ones. lol.

Tube🌱Time

so presumably the way this works is that the two bodge wires hook into the clock signal from the controller chip to the spindle motor controller (pin 7 on this example). the motor controller derives the RPM from this signal, so the external PAL sneaks in an additional divide by 2 in order to half the RPM. not too shabby!

Tube🌱Time replied to Tube🌱Time

updated schematic. now that i know what all the pins do, it'll be much easier to reverse engineer the PAL. i'll take a crack at that tomorrow.

Tube🌱Time replied to Tube🌱Time

while that's running I'll put the board back together with a socket.

Tube🌱Time replied to Tube🌱Time

ran the outputs of DuPAL through Espresso to get the logic equations. i'm making a few assumptions so this probably has errors.

ShutterBugged replied to Tube🌱Time

@tubetime Doesn't this model of PAL (alldatasheet.com/datasheet-pdf) have latches on the outputs, some of which can feed back into the inputs of other latches' combinatorial logic?

Tube🌱Time replied to Tube🌱Time

yeah these are wrong. i'm trying to dump it as a combinational 16L8 but i need to spend some time with the manual pin manipulation tool. the product terms depend on themselves in a bunch of places, creating flip flops.

Tube🌱Time replied to Tube🌱Time

ok it's got this weird state machine which, as it turns out, is used to *clock out a drive type value* using the drive select line as a clock and the ready pin as a data output!

Tube🌱Time replied to Tube🌱Time

yeah so that state machine clocks out 1010... continuously which corresponds with the ID value of AAAA AAAA; the Amiga interprets that as a high density drive.

✧✦✶Catherine✶✦✧ replied to Tube🌱Time

@tubetime you're incredibly good at this

I could probably do this, but nowhere near as quickly

Tube🌱Time replied to ✧✦✶Catherine✶✦✧

@whitequark thanks! i got a lot of practice with the Quadlink project which had ~10 GALs, some registered.

Tube🌱Time replied to Tube🌱Time

there may have been a bad connection in the socket, i tried it again (also as a 16L8) and these equations look a lot better. i've started adding better net names.

Tube🌱Time replied to Tube🌱Time

another thing that i like to do is take a bunch of extra time to *understand* each product term. that involves using boolean algebra and DeMorgan's theorem to manually rearrange the terms.

Tube🌱Time replied to Tube🌱Time

here's the 2-bit counter that generates the drive ID code. it's a little asynchronous state machine. i just write up little notes like this as i figure things out.

Tube🌱Time replied to Tube🌱Time

and i've simplified the equations and gotten rid of excess terms about as much as i can. i understand what all the outputs do now, including the ones used to store intermediate states and never used in the external circuit.

Tube🌱Time replied to Tube🌱Time

the next step is to put the equations into either WinCUPL or galette so we can try writing them to a real PAL.

Tube🌱Time replied to Tube🌱Time

gah! i forgot how utterly awful both WinCUPL and galette are!

Simon Frankau replied to Tube🌱Time

@tubetime How can I make galette less awful? It's currently extremely galasm-like, but if there are things I can do to make it nicer to use, I'm all ears.

(The deficiencies are probably obvious, but I'm too used to galasm to notice.)

Tube🌱Time replied to Simon

@sgf ah thanks, I really appreciate your openness! I guess there are a couple of things:

- better error messages. I had some underscores in term names and the error I got said "invalid character in line n" but didn't say what the invalid character actually was.

- better docs. it's always a pain to write this stuff but it's super helpful for folks.

- equation reduction is probably out of scope since palasm was meant to be a thin wrapper around the raw fuse map, but that would be cool. 😃

Simon Frankau replied to Tube🌱Time

@tubetime I worked on some error messages last week, for unrelated reasons - PTAL at Github latest & I'll fix anything missing.

Docs: I love writing docs, but don't know what people need, so let me know.

Equation reduction is tempting. I was thinking of writing something like a cupl2pld stage so that the pld format remains WYSIWYG. It's lower priority than just making it more usable in its basic form, though.

Thanks for the feedback. If GitHub issues work better for you, that's also good.

Tube🌱Time replied to Tube🌱Time

first attempt at PAL equations in galette--umm--did not match the real thing at all. i'm swapping parts into the DuPAL to compare how they perform for the same inputs.

UNFORTUNATELY i've discovered that DuPAL cannot differentiate between a tri-stated output and a low output, even though the hardware is capable of doing that. 😩

Tube🌱Time replied to Tube🌱Time

oh i should just tag the guy who wrote DuPAL. @hkz very useful tool, can i have this tiny feature added to DuPAL Peeper? basically when you do a read, toggle the SIPO_O_7-14 lines and see if PISO_I_1-8 change at all. if they do, then they are hi-z.

Alan Martello replied to Tube🌱Time

@tubetime @hkz
@tubetime so I just checked out @hkz and looking at what both of you do for fun it looks like you two must be related somehow. We all enjoy watching you (and now @hkz) and are inspired by your engineering diligence.

Tube🌱Time replied to Alan

@amart @hkz yeah i looked over his profile and we have a lot of common interests! i love the stuff he's doing right now.

RealGene ☣️ replied to Tube🌱Time

@tubetime
What if you put weak pullups on the outputs? Anything tri-stated will read high instead.

Tube🌱Time replied to RealGene

@RealGene yep, trouble is that i can't differentiate it from a regular logic high. one trick is to pull it to some other voltage and use a window comparator to detect it.

scrottie (he/him/they) replied to Tube🌱Time

@tubetime I'm sorry to @ you like this, and I'm sorry if I already did and forgot, but I have some DEC 3100s and Sun 3/60s, and I'm terrible with electronics. I keep trying to do minor repairs or kits and I just ruin things. I'd really especially like to get PLAs from those dumped if possible since that's kind of a ticking timebomb. Do you know of anyone who does stuff like that for randos like me? And regardless, thank you for sharing the hacking that you do do.

Tube🌱Time replied to scrottie

@scrottie I'm sorta doing it but on a very limited basis since it's a huge pain even with DuPAL. the Quadlink had ten of them and that was miserable. I don't know what to tell you.

Matteꙮ Italia replied to Tube🌱Time

@tubetime I read that name, did some digging and _of course_ it's from an Italian guy ("du' pal"/"du' bal" is slang for "due palle" i.e. "two balls", an expression commonly used to express frustration for a boring/undesirable task 😬)

Otte Homan

@tubetime ... ah, a 20 feet GAL chip, one of those "I have no idea what this does but its probably quite clever" devices.

mmu_man

@tubetime seems there are chemicals that do it… I wonder how well they'd work.

indrora, boot of journalism

@tubetime Voultar (of the console modding scene) has called this the hallmark of a shitty modder for years.

Adam

@tubetime magnet wire and tub silicon. I haven't seen this sort of thing since people were doing "expensive mod chips" ($2 PIC12C508) on the sony PS-1

F4GRX Sébastien

@tubetime that kind of thing is infuriating to see :(

Delta Wye

@tubetime Ugh. I was watching this video on this guy in Chicago who does fine art restoration (I think Baumgartner Art).

All the materials he uses are fully reversible - the idea is that a couple hundred years from now a future art restorer can easily remove the stuff he used when better things are available to use.

Tube🌱Time

@DeltaWye oh yeah Julian is very inspirational to me. I got into his channel in 2020. his methods aren't without controversy but it's made me think more carefully about the methods I use on computers

Stefan Arentz

@tubetime These mods must be documented somewhere in some archived magazine …

Go Up