gfoot wrote:
By the way, you can write Data.oe = ... rather than having separate lines for each pin.
Thanks for the tip on treating D[7..0] as a bus. WinCUPL has nice bus construct for groups of signals. Being new to WinCUPL, I'm a little afraid of using it. However, the compile does generate a .sim file with all the bus signals break out, so I can look at .sim in case I'm unsure.
I've tweaked the 22V10 and software to run Muntz65 at 25MHz with serial baud of 115200. The problem before was not 6502, RAM, nor 22V10 but the way serial receive is sampled by data bit 7. The sampling is done with a 4.7K resistor from serial receive to data bit 7, which is too weak to drive the combined capacitance on data bit 7 due to RAM, 6502, 22V10 loadings; the combined capacitances + stray pcb capacitance is maybe 25pF, so the RC time constance is about 120nS. At 25MHz, the instruction "BIT SerData" has slightly lesser than a clock (40nS) period to sample the data bit 7 which is just too short. I did two things to speed it up,
1. reduced the resistor to 2.4K thus cutting RC time constant to 60nS, but with increased loading to RAM/6502/22V10,
2. replaced the "BIT SerData" instruction with "ROL SerData" which has a dummy cycle accessing SerData prior to actual sampling SerData; this gives two clock periods for the RC network to settle to final value.
So it works at 25MHz, but the sampling resistor between serial receive and data bit 7 remained a weakness of the design; it is susceptible to loading on data bus.
All in all, I'm pleased with this simple design. It based on readily available components and 22V10 can be programmed with TL866II-Plus; all components are DIP so can be prototyped on one strip of solderless breadboard; and 25MHz 6502 is no slouch. The same design approach can be ported to Z80 and other retros.
One drawback is the fact software needs to be reloaded every reset. TeraTerm script eases the drawback somewhat, but a battery, couple Schotkky diodes to RAM plus modifications to bootstrap code to jump to RAM if no serial input detected may solve most of the reloading problem.
I've created a
homepage for Muntz65.
Bill