>If you insist, using a 74LS145 will work at upto 4Mhz >without problems.
I agree - Thank you!
BTW, I consulted my office-neighbor on this issue (he has more hands-on hardware experience than I do). He agreed that OC will not be a problem at 4 Mhz, even though it's not an "approved" practice in general. He said the risk is not so much in speed problems, but rather in current spikes (undershoot, overshoot, etc.) - but this only becomes an issue if you try to run it too fast, with small-value pullups.
At high speeds (say 10 Mhz), the prop delay of things like LS138's is just as big a concern (i.e., an LS138 is simply not fast enough unless you have super-fast memory).
If the impedances are matched, an OC-based bus can be made to run *faster* than a normal totem-pole-based signal -- the bus signals have both a pullup and a "pull-down" on them, and each is in the 200 ohm range (roughly - I forget the exact values). The SCSI bus works this way, and it supports 10 Mhz speeds on a 3 meter cable! The down-side? This approach uses a LOT of power at all times.
>I suggest that:
>- pull ups of 1K5 are used
>- pull up resistor is close to CS pin of IC
>- don't cascade LS145s.
Agreed on the above. Pullup values will be a user's choice; if there is no great concern for current consumption, then 1K is certainly fine. Running at slower speeds (i.e. 1 Mhz), something like 4.7K has worked fine for me, and this should be considered by someone planning to run from battery power. The 65C02's current consumption is also closely related to clock speed.
>The purist argument still holds - why have a hardware >limitation in the circuit ;-}
There are *always* hardware limitations - I'm sure that between the two of us, we could make a long list...
This particular limitation would be there for a reason: to reduce parts count, and at the same time give increased flexibility in the memory map.
That said, I noticed in the "spec" on 6502.org that LS245 bus buffers are now a part of the design. It's OK with me, but I wonder if we're moving away from the 'simple' requirement? To buffer address, data, and control signals will require 4 chips, and 3 of them are 20-pinners. I still suggest that the buffers be an expansion-board feature. If we use HCT devices wherever possible (instead of LS), then some limited expansion can be done without buffers. For example, it should be no problem to piggy-back a 2nd board PC/104-style, since that approach would keep lead lengths to a minimum.
>- RAMR/W = (Phi2 NAND (NOT R/W))
>- OE = (Phi2 NAND R/W)
>(I used a 3 input NAND with the 3rd input tied to RESET pin >of uP)
I agree this is a good idea, since we will have battery-backed SRAM.
Pete