ZaneKaminski
Well-known member
@maceffects Oops, somehow I missed your comment. I don't wanna be paid anything upfront... I don't like doing business that way. It would be much better to collaborate on a gizmo and then we can split the profits. Does the PDS card you are trying to run do DMA? If not, you can unidirectionally invert a single address bit so as to change the slot address using a 74HCT04 (or AHCT04, avoid 74HC04, 74AHC04, 74AC04, 74ACT04, 74LVC04).
If the card does DMA, that is to say that it drives an address onto the bus, thus commanding an access to memory in the Mac, you must send the address back to the Mac unchanged. You can do this and the inversion very easily with a GAL, I think. Well, the so-called GAL has been discontinued by Lattice, but you can get another version of the same thing, ATF16V8, from most IC suppliers and this will solve your problem if you can manage to write some logic equations to describe the functionality I just described. Use PALASM in DOSBox to do this. I'll make the board, assemble it, and program the GAL for you if you do the design work.
@Gorgonops I read your comment again and maybe now I see what you mean about the 32-bits per cycle. One access to the flash register location generates a single clock pulse (low-high-low), so the only limitation is that you can only begin reading on 32-bit-aligned boundaries. There is no PLL or anything like that, so you can send the clock pulses as irregularly or far away as you want, as long as you keep to the 5ns or so minimum clock high time. So if you wanna load an odd 16-bit word from the flash, you twiddle the bits in software to send the command and address the same way as for reading the preceding even 16-bit word. The difference is that you must perform one additional read and discard the result, thus ignoring the even word. Then the 68000 can read data out of the same register location at 16 bits per one read access to the ROM, same as in the 16-bit-even/32-bit-aligned case. It's all bit-banging, but insofar as the command and address are short compared to a 512-byte sector, it's as fast as ROM.
If the card does DMA, that is to say that it drives an address onto the bus, thus commanding an access to memory in the Mac, you must send the address back to the Mac unchanged. You can do this and the inversion very easily with a GAL, I think. Well, the so-called GAL has been discontinued by Lattice, but you can get another version of the same thing, ATF16V8, from most IC suppliers and this will solve your problem if you can manage to write some logic equations to describe the functionality I just described. Use PALASM in DOSBox to do this. I'll make the board, assemble it, and program the GAL for you if you do the design work.
@Gorgonops I read your comment again and maybe now I see what you mean about the 32-bits per cycle. One access to the flash register location generates a single clock pulse (low-high-low), so the only limitation is that you can only begin reading on 32-bit-aligned boundaries. There is no PLL or anything like that, so you can send the clock pulses as irregularly or far away as you want, as long as you keep to the 5ns or so minimum clock high time. So if you wanna load an odd 16-bit word from the flash, you twiddle the bits in software to send the command and address the same way as for reading the preceding even 16-bit word. The difference is that you must perform one additional read and discard the result, thus ignoring the even word. Then the 68000 can read data out of the same register location at 16 bits per one read access to the ROM, same as in the 16-bit-even/32-bit-aligned case. It's all bit-banging, but insofar as the command and address are short compared to a 512-byte sector, it's as fast as ROM.
Last edited by a moderator: