Skip to content

Random Testing Issues

David Banks edited this page Jul 28, 2022 · 6 revisions

6309

  • SWI hit by NMI goes wrong
038ABD2B 00 13 1 1 00 5
038ABD2C 01 3F 1 0 00 6
038ABD2D 02 3F 1 0 01 6
038ABD2E 03 3F 1 0 00 6
0085 : 13             : SYNC                 :   4 : A=6E B=00 E=2C F=1F X=7E80 Y=0200 U=6C00 S=01FC DP=00 M=E4 T=0000 E=1 F=1 H=1 I=1 N=1 Z=0 V=0 C=1 DZ=? I\
L=1 FM=? NM=1
memory modelling failed at   F7FB: expected E3 actual E5
038ABD2F 00 3F 1 1 00 6
038ABD30 01 13 1 0 00 7
038ABD31 02 13 1 0 00 7
038ABD32 03 87 0 0 00 B
038ABD33 04 00 0 0 00 A
038ABD34 05 00 0 0 00 9
038ABD35 06 6C 0 0 00 8
038ABD36 07 00 0 0 00 7
038ABD37 08 02 0 0 00 6
038ABD38 09 80 0 0 00 5
038ABD39 0A 7E 0 0 00 4
038ABD3A 0B 00 0 0 00 3
038ABD3B 0C 1F 0 0 00 2
038ABD3C 0D 2C 0 0 00 1
038ABD3D 0E 00 0 0 00 0
038ABD3E 0F 6E 0 0 00 F
038ABD3F 10 F9 0 0 00 E
038ABD40 11 13 1 0 00 F
038ABD41 12 C0 1 0 10 C
038ABD42 13 E5 1 0 10 D
038ABD43 14 E5 1 0 00 F
0086 : 3F             : SWI                  :  21 : A=6E B=00 E=2C F=1F X=7E80 Y=0200 U=6C00 S=01EE DP=00 M=E4 T=0000 E=1 F=1 H=1 I=1 N=1 Z=0 V=0 C=1 DZ=? I\
L=1 FM=? NM=1 : Prediction failed for: AddrPointer,Memory,Vector
memory modelling failed at   C0E5: expected 12 actual E5
038ABD44 00 E5 1 1 00 F
038ABD45 01 7E 1 0 00 6
038ABD46 02 C0 1 0 00 7
038ABD47 03 C0 1 0 00 F
038ABD48 04 00 1 0 00 C
C0E5 : E5 7E          : BITB  -$02,S         :   5 : A=6E B=00 E=2C F=1F X=7E80 Y=0200 U=6C00 S=01EE DP=00 M=E4 T=0000 E=1 F=1 H=1 I=1 N=0 Z=1 V=0 C=1 DZ=? I\
L=1 FM=? NM=1 : Prediction failed for: AddrInstr,Memory

The NMI handler is:

C0E5                  NMI_HANDLER
C0E5  12                    NOP
C0E6  7EC000                JMP RESET

Notes:

  • the vector fetch here is FFFC/FFFD which is NMI (C0E5)
  • the pushed PC is 0087, so the SWI will not be re-executed
  • the memory cycle that's meant to fetch C0E5 seems to be a dummy cycle
  • there is strong evidence the 6309 does indeed execute BITB -$02,S instead of NOP
  • Missing LIC following Sync?
7E02 : 13             : SYNC                 :34358 : A=55 B=00 E=55 F=A9 X=7E80 Y=0004 U=0000 S=7E84 DP=30 M=AA T=5504 E=1 F=1 H=0 I=1 N=1 Z=0 V=0 C=1 DZ=0 IL=1 FM=1 NM=1
0993D40A 00 13 1 1 00 3
0993D40B 01 58 1 0 00 4
0993D40C 02 58 1 0 01 4
0993D40D 03 58 1 0 00 4
7E03 : 13             : SYNC                 :   4 : A=55 B=00 E=55 F=A9 X=7E80 Y=0004 U=0000 S=7E84 DP=30 M=AA T=5504 E=1 F=1 H=0 I=1 N=1 Z=0 V=0 C=1 DZ=0 IL=1 FM=1 NM=1
0993D40E 00 58 1 1 00 4
0993D40F 01 33 1 0 00 5
0993D410 02 3C 1 0 00 6
0993D411 03 0A 1 0 00 7
0993D412 04 0A 1 0 00 F
0993D413 05 0A 1 0 00 F
7E04 : 58             : ASLB                 :   6 : A=55 B=00 E=55 F=A9 X=7E80 Y=0004 U=0000 S=7E84 DP=30 M=AA T=5504 E=1 F=1 H=0 I=1 N=0 Z=1 V=0 C=0 DZ=0 IL=1 FM=1 NM=1 : Prediction failed for: Cycles
memory modelling failed at   7E05: expected 33 actual 0A
memory modelling failed at   7E06: expected 3C actual 9F
0993D414 00 0A 1 1 00 7
0993D415 01 9F 1 0 00 8
0993D416 02 29 1 0 00 F
0993D417 03 29 1 0 00 F
0993D418 04 28 0 0 00 F
7E05 : 0A 9F          : DEC   $9F            :   5 : A=55 B=00 E=55 F=A9 X=7E80 Y=0004 U=0000 S=7E84 DP=30 M=28 T=5504 E=1 F=1 H=0 I=1 N=0 Z=0 V=0 C=0 DZ=0 IL=1 FM=1 NM=1 : Prediction failed for: AddrInstr,Memory
memory modelling failed at   7E07: expected 0A actual D9
memory modelling failed at   7E08: expected 9F actual 37
  • BITA [,-U] didn't seem to throw an exception, even though the addressing mode is illegal

Note the code is executing from I/O Space

2F7F157C 00 A5 1 1 00 B
2F7F157D 01 A5 1 0 00 C
2F7F157E 02 A5 1 0 00 D
2F7F157F 03 A5 1 0 00 F
2F7F1580 04 AA 1 0 00 0
FE3B : A5 A5          : BITA  B,Y            :   5 : A=00 B=00 E=FE F=D9 X=52B0 Y=7E80 U=83FF S=0200 DP=FE T=864E E=1 F=1 H=0 I=0 N=0 Z=1 V=0 C=1 DZ=1 IL=1 FM=1 NM=1
memory modelling failed at   F7F0: expected C0 actual B0
memory modelling failed at   F7F1: expected C9 actual 52
2F7F1581 00 A5 1 1 00 D
2F7F1582 01 D2 1 0 00 E
2F7F1583 02 00 1 0 00 F
2F7F1584 03 00 1 0 00 F
2F7F1585 04 FF 1 0 00 1
2F7F1586 05 00 1 1 00 F
2F7F1587 06 F8 1 0 00 0
2F7F1588 07 F8 1 0 00 8
2F7F1589 08 F8 1 0 00 F
2F7F158A 09 08 0 0 00 8
2F7F158B 0A 9F 1 1 00 1
2F7F158C 0B 0F 1 0 00 2
2F7F158D 0C 0F 1 0 00 2
2F7F158E 0D 0F 1 0 00 F
2F7F158F 0E 41 0 0 00 F
2F7F1590 0F FE 0 0 00 E
2F7F1591 10 FF 0 0 00 D
2F7F1592 11 83 0 0 00 C
2F7F1593 12 80 0 0 00 B
2F7F1594 13 7E 0 0 00 A
2F7F1595 14 B0 0 0 00 9
2F7F1596 15 52 0 0 00 8
2F7F1597 16 FE 0 0 00 7
FE3D : A5 D2          : BITA  [,-U]          :  23 : A=83 B=FF E=FE F=41 X=0F0F Y=9F08 U=F8F8 S=01F2 DP=0F T=864E E=1 F=0 H=0 I=0 N=0 Z=0 V=0 C=0 DZ=1 IL=1 FM=1 NM=1 : Prediction failed for: AddrPointer,AddrStack,RnW,Memory,ACCA,ACCB,ACCF,X,Y,U,DP,F,Z,C,Vector
memory modelling failed at   0FFE: expected 08 actual 00
2F7F1598 00 D9 0 0 00 6
2F7F1599 01 FE 0 0 00 5
2F7F159A 02 00 0 0 00 4
2F7F159B 03 00 0 0 00 3
2F7F159C 04 C1 0 0 00 2
2F7F159D 05 0F 1 0 00 F
2F7F159E 06 C0 1 0 10 C
2F7F159F 07 DB 1 0 10 D
2F7F15A0 08 DB 1 0 00 F
B052 : D9 FE          : ADCB  $FE            :   9 : A=83 B=FF E=FE F=41 X=0F0F Y=9F08 U=F8F8 S=01F2 DP=0F T=864E E=1 F=0 H=0 I=0 N=1 Z=0 V=0 C=0 DZ=1 IL=1 FM=1 NM=1 : Prediction failed for: AddrInstr,AddrData,RnW,Memory,Cycles
2F7F15A1 00 7C 1 1 00 B
2F7F15A2 01 C0 1 0 00 C
2F7F15A3 02 00 1 0 00 D
2F7F15A4 03 35 1 0 00 0
2F7F15A5 04 35 1 0 00 F
2F7F15A6 05 36 0 0 00 0

Clone this wiki locally