But the 68sec000 insn't a 68000 and isn't a 68010. That is the Problem
Exactly.
Afaik, all roms recognize the MC68SEC000 incorrectly.
What the kickstart code does is the following
(this is the disassembled kickstart 1.2 code by Markus Wandel):
FC03E2 move.w $0128(A6),D0 See if we are running on a 68010/020.
FC03E6 btst #0,D0
FC03EA beq.s FC041E Skip the following if not.
; Special initialization for machines using a 68010/020.
FC03EC lea FC087C(PC),A0 Point at 68010/020 bus error handler.
FC03F0 move.w #8,A1
FC03F4 move.l A0,(A1)+ Fix the bus error vector.
FC03F6 move.l A0,(A1)+ Fix the address error vector.
FC03F8 move.l #$FC08BA,-$1C(A6) Use a different Supervisor() routine.
; Fix GetCC() for 68010/020 processors.
; We simply load the instruction sequence "MOVE.W CCR,D0 / RTS" into
; the place where the library jump vector to GetCC() normally is.
FC0400 move.l #$42C04E75,-$0210(A6)
I think the "move.w $0128(A6),D0" is wrongly disassembled and should actually be the Move from SR instruction. As this instruction is priviliged the code for 68010/68020 will be executed. The bus error and address error vectors are patched; no problem for the Minimig as these are not generated. The GetCC() is also (wrongly) patched. This is a problem for the Minimig. Luckily, this function is only used very rarely so Kickstart 2.04 (V37.175 tested here) runs fine on the MC68SEC000, as does kickstart 3.1.
Dennis