Hi Mark,
One thing you could try is tying FC[2:0] to 110 or 010.
well, I think it was a good idea, but couldn't get it to work. I got STAT to show '1010 1001' (had to tie BGACK and VMA to vcc as well; VMA is not even present on the mc68302), tried also FC2=1 (so STAT=1110 1001', but the mnemonic column keep saying just 'DMA'. I tried with BGACK=0, both FC= 110 and 010; I think I got all sane combinations but it always says DMA, altohugh the Symbol does indicate the expected 'user pgrm read' or 'SUPR PGRM READ' based on FC state I forced.
So there's probably more to it in the IA's state machine.
[EDIT]
Ok, I found something weird. In one of the .zip's from this thread, in i68000_p.S :
LABEL_0031
LOAD INPUT_STATUS
IF 2,2 = 1 THEN GOTO LABEL_0037
OUTPUT STR_0029 * "DMA"
RETURN
huh, why is it testing '2,2' as in 'bit position 2' ? So I go to the HP 10391B pdf appendix B, annotated 68010 ia, if I copy-paste the text, I get roughly the same thing
NOT_PREFETCH
LOAD INPUT_STATUS
IF 7,7 = 1 THEN GOTO NOT_DMA
OUTPUT DMA
RETURN
Ah, so it *is* testing bit 7. What's going on
Very strange! And good sleuthing to find that bit of code! Which IA are you using for your tests? i68000_p or i68010_p?
As far as that bit is concerned in the IF statement, "2,2" is testing STAT[2] which is /UDS (not_Upper_Data_Strobe) as described by the config file. After looking at the 68000/010 manual and wading into the IA source i68000_p.S, I do not see how that bit being "0" can possibly be construed as a DMA cycle.
Looking further into i68000_p.S, it would appear that it prefers a mapping like this:
STAT[2]: 0=DMA (could be /BGACK or /BG)
STAT[1]: 0=Program, 1=Data (implies FC0)
STAT[0]: 0=Write, 1=Read (R_/W)
I don't see any code that cares about any other bits of STAT.
As far as the configs are concerned, c68000_p and c68010_p are the same except that FC is not used (disabled) in c68000_p. The 68000/010 Preprocessor Operating Manual for the 1650A and 16510A (pub #10311-90913) has some interesting information. The files C68000_P and C68010_P are mentioned by name in that manual, along with the general-purpose probe connections that correspond to the assignments in c68000_p and c68010_p. However, this is again inconsistent with the STAT expectations in the disassembled source code in i68000_p.S.
And c68000_p refers to i68000_p, and c68010_p refers to i68010_p, so it's not like c68000_p wants to load the i68010_p IA instead.
So, I am a bit confused and also wondering about the pedigree of i68000_p.
[EDIT2] I have not dug more into why the 68000 and 68010 have such a crucial difference in the probe assignments, but I was able, finally, to get a bit of credible disasm output. Thank goodness, because this probing situation is getting out of hand:
Looks like a fun mess.
What "credible" IA output did you get?
And also, specifically what 68k part # are you probing? Does your device do DMA?