Dave wrote: ↑12 May 2019 16:27
Mmm, that’s odd.
Martin, any ideas?
The PAL on the RS232 is the usual 14L4. Looking at the pal-assem code for that in the phoenix manual:
- Pin 14 is the direction pin for the LS245 buffering the data bus
- Pin 15 enables the DART I/O ports, it's fully decoded so shouldn't clash with the CFX's I/O range
- Pin 16 seems to be a half of a paged rom select decode for either bank 4 or bank 5 (there's no R0 connection to the PAL or the external address decode), however with no FDX attached that shouldn't affect anything
- Pin 17 seems to be doing something with I/O addresses in the #20 to #FF range but the RS232 board schematic shows protection diodes so I don't think it can affect the rom select. However, it does feed back onto the GAL on pin 19, and that input is part of the LS245 direction control logic.
Memotech's original I/O map defined Ports #00 to #1F as internal to the MTX and #20 to #FF as external. The only thing I can think of is the RS232 PAL is doing something it shouldn't because of an assumption that all the External I/O is in the FDX.
The feedback between the output from pin 17 and how that affects the output at 14 could be the culprit. Maybe it's triggering the 245 into putting rubbish on the bus when the CFX is doing I/O. That would be enough to crash the MTX as soon as any CPM based functions are called, as the SDX code uses the CPM BDOS loaded off the CF, instead of having it's own disc handling routines.
It probably needs "someone" with an RS232 board to see if they can replicate the issue. If it can be duplicated, then it shouldn't be too hard to come up with a replacement for the RS232 PAL that excludes the CFX's I/O ports from the "external" range. The 16V8 has double the number of terms available when compared to the 14L4 so "tweaking" the equations for pin 17 is doable.