--- /dev/null
+* see https://test.dankohn.info/~myhome/projects/68HC11/AXIOM_HC11/Source/Users%20Group/UG012
+
+
+
+ NAM MXFIT
+**********************************
+* *
+* MPU INSTRUCTION TSET *
+* *
+**********************************
+*
+* STARTING ADDRESS = $200
+* THE PROGRAM WILL EXECUTE THE TEST ONE TIME
+* AND UPON SUCCESSFUL COMPLETION WILL
+* PRINT "ALL IS WELL ON FIRST PASS" THEN REQUEST
+* THAT THE OPERATOR INDICATE HOW OFTEN HE WANTS
+* AN X PRINTED TO VERIFY THAT THE MPU IS STILL
+* CYCLING. IF THE MEGGAGE DOES NOT GET PRINTED
+* THE OPERATOR MUST DEPRESS THE EXORCISER ABORT
+* AND DETERMINE FROM THE P-REG THE ADDRESS OF THE
+* FAILURE.
+*
+* TO STOP PROGRAM THE EXORCISER ABORT
+* MUST BE DEPRESSED.
+*
+* EXBUG SUBROUTINES USED
+* PDATA PRINT DATA
+* INCHNP INPUT CHARACTER WITH NO PARITY
+***
+*
+ OPT NOG
+ OPT SYMBOL
+PDATA EQU $FA33
+INCHNP EQU $FAA0
+ SPC 1
+ ORG 0
+DTEMP RMB 2 DIRECT TEMP STORAGE
+K0 RMB 2 ( FDB 0 ) SET BY PGM
+KD1 RMB 2 ( FDB 1 ) SET BY PGM
+KD400 RMB 2 ( FDB 400 ) SET BY PGM
+K1 RMB 1 ( FCB 1 ) SET BY PGM
+ SPC 1
+ ORG $100
+ETEMP RMB 2 EXTENDED TEMP STORAGE
+ RMB 20
+STACK RMB 1 START OF STACK
+EXIT1 TST PASS THIS FIRST PASS
+ BEQ EXT2 YES
+ JMP START1
+EXT2 INC PASS BUMP PASS COUNT
+ CLR INTCNT
+ CLR INTCNT+1
+ CLR INTRV NUMBER OF PASS BEFORE PRNT
+ CLR INTRV+1
+ LDAA #$FF
+ STAA CNT
+INTINP LDX #MSG1 INTERVAL 0000-9999
+ JSR PDATA
+INPCH JSR INCHNP INPUT CHAR NO PARITY
+ CMPA #'L LONG INTERVAL
+ BEQ LINP YES
+ CMPA #'S SHORT INTERVAL
+ BEQ SINP YES
+ CMPA #'0 NO INTERVAL WANTED
+ BEQ ZERO
+ LDX #MSG3 RETRY MESSAGE
+ JSR PDATA
+ BRA INPCH
+LINP LDAA #120 # 30 SECS IN 1 HOUR
+ STAA CNT
+SINP LDX INT30 # CYCLES IN 30 SECS
+ STX INTRV
+ZERO JMP START1
+ PAGE
+ ORG $200
+START CLR PASS INIT PASS COUNT
+ LDX #EXIT1
+ STX $FFFA RESET SWI VECTOR
+START1 LDS #STACK INIT STACK POINTER
+ SPC 1
+* INZ DIRECT (ADDRESSED) CONSTANTS
+ CLRA
+ STAA K0
+ STAA K0+1
+ STAA KD1
+ INCA
+ STAA KD1+1
+ STAA KD400
+ STAA K1
+ LDAA #$90
+ STAA KD400+1
+ SPC 1
+ ADDA #$BF
+ ADDA K1 (A) 50
+ ADDA EK200 (A) 18
+ SPC 1
+ LDX EKX
+ ADDA 8,X (A) 20
+ CMPA #$20
+ BNE *
+ CLRA
+ BNE *
+ COMA
+ INCA
+ NEG A
+ BNE *
+ SPC 1
+ LDAA 11,X
+ TAB
+ ASLA
+ ASLA
+ ASLA
+ ASLA
+ ABA
+ INCA
+ SPC 1
+ BEQ *+4
+ WAI FAILURE
+ WAI FAILURE
+ SPC 1
+ LDAA #0
+ TAP
+ BCC *+4
+ BRA *
+ BCS *
+ BEQ *
+ BGE *+4
+ BRA *
+ BGT *+4
+ BRA *
+ BHI *+4
+ BRA *
+ BLE *
+ BLS *
+ BLT *
+ BMI *
+ BNE *+4
+ BRA *
+ BPL *+4
+ BRA *
+ BVC *+4
+ BRA *
+ BVS *
+ SPC 1
+ LDX #$FFFE
+ INX
+ CPX #$FFFF
+ BNE *
+ SPC 1
+ LDX KD1
+ BEQ *
+ DEX (X) 0000
+ BNE *
+ SPC 1
+ LDX EKX
+ LDX 2,X (X) 0203
+ CPX #$0203
+ BNE *
+ SPC 1
+ CLR DTEMP
+ INC DTEMP = 01
+ ASL DTEMP = 02
+ ROL DTEMP = 04
+ LDAA DTEMP (A) 04
+ CMPA #4
+ BNE *
+ SPC 1
+ ADDA DTEMP (A) 08
+ CMPA #8
+ BNE *
+ SUBA K1 (A) 07
+ SUBA EKB0+8 (A) FF
+ TST B
+ SPC 1
+ LDAB #$AA
+ PSH B
+ CLR B
+ BNE *
+ PULB
+ BNE *
+ CMPB #$AA
+ BNE *
+ SPC 1
+SKIP EQU *
+ LDAA #$80
+ SPC 1
+ PSHA
+ CLRA
+ PULA
+ BNE *
+ TSTA
+ BPL *
+ ASLA (A) 00
+ TPA
+ CMPA #$C7
+ BNE *
+ LDAB #$55
+ COMB
+ ASLB
+ BVC *
+ BCC *
+ CLC
+ ROL B (B) FD
+ EORB #7 (B) AF
+ SUBB K1 (B) AE
+ ANDB #$C3 (B) 82
+ LSRB (B) 41
+ ASRB
+ TBA
+ RORB
+ NEGB
+ CMPB #$70
+ BNE *
+ SPC 2
+ LSRA
+ RORA
+ SEC
+ ASRA
+ ASRA
+ SEC
+ ROLA (A) 05
+ ABA (A) 75 (B) 70
+ CMPA #$75
+ BNE *
+ CMPB #$70
+ BNE *
+ CLRA
+ ORAA #$5A
+ SUBA #$F0 (A) 6A C
+ SBCA #1 (A) 68
+ CMPA #$68
+ BNE *
+ SPC 1
+ CLRB
+ ORA B EKB0
+ ADDB #$F0
+ ANDB #$36 (B) 38
+ BITB #$63
+ BEQ *
+ SPC 1
+ CLR DTEMP
+ CLR DTEMP+1
+ LDX #0
+ LDS #STACK
+ CPX #0
+ BNE *
+ STS DTEMP
+ STS ETEMP
+ LDX ETEMP
+ INX
+ TXS
+ STS DTEMP
+ LDX DTEMP
+ CPX #STACK
+ BNE *
+ CPX DTEMP
+ BNE *
+ CPX ETEMP
+ BNE *
+ CLR ETEMP
+ CLR ETEMP+1
+ STX ETEMP
+ CPX ETEMP
+ BNE *
+ SPC 1
+ LDX #$F00F
+ STX DTEMP
+ LDAA DTEMP
+ ADDA DTEMP+1
+ CMPA #$FF
+ BNE *
+ LDX #ETEMP
+ STX ETEMP
+ CPX X
+ BNE *
+ CPX 1,X
+ BEQ *
+ SPC 1
+ LDAA #$3F
+ TAP
+ CLC
+ TPA
+ CMPA #$FE
+ BNE *
+ TAP
+ CLV
+ TPA
+ CMPA #$FC
+ BNE *
+ TAP
+ CLI
+ TPA
+ CMPA #$EC
+ BNE *
+ SPC 1
+ CLRA
+ TAP
+ SEC
+ SEI
+ SEV
+ TPA
+ CMPA #$D3
+ BNE *
+ SPC 1
+* DAA
+ LDA A #$0
+ ADDA #$99
+ DAA (A) 99
+ ADC A #$01
+ DAA (A) 00 ZVC
+ ADCA #$88
+ DAA (A) 89
+ ADCA #$09
+ DAA (A) 98
+ ADCA #$25
+ DAA (A) 23 C
+ ADCA #$75
+ DAA (A) 99
+ SEC (A) 99 B
+ ADCA #$99
+ DAA (A) 99 C
+ BCC *
+ CMPA #$99
+ BNE *
+ SPC 2
+ LDX #ETEMP
+ STX X
+ LDAA AETEMP
+ LDAB AETEMP+1
+ SUBB 1,X
+ SUBA X
+ BNE *
+ CBA
+ BNE *
+ SPC 3
+* A-B=A 00-03=FD
+ CLRA
+ LDAB #3
+ SBA
+ BCC *
+ CMPA #$FD
+ BNE *
+ CMPB #3
+ BNE *
+ SPC 3
+ LDX #ETEMP
+ CLR X
+ LDAA X
+ BNE *
+ INC X
+ ROL X
+ ASL X 04
+ LDAA #4
+ CMPA X
+ BNE *
+ DEC X 03
+ ORAA X (A) 07
+ CMPA #$07
+ BNE *
+ COM X
+ ASR X FC
+ ROR X 7F
+ LSR X 3F
+ LDAA #$3F
+ CMPA X
+ BNE *
+ BRA PAST
+ PAGE
+ FCB $55
+* TEST PATTERN FOR PRODUCTION TEST OF MC6830D
+ SPC 1
+SUB7 LDAA #3
+ PSHA IXL 03
+ INCA
+ PSHA IXH 04
+ INCA
+ PSH A A 05
+ INCA
+ PSHA B 06
+ INCA
+ PSHA CC 07
+ RTI
+EKX FDB EKB0
+ FCB $55,$AA
+ SPC 2
+ FCB 0,0,0,0,0,0,0,0
+ FCB 0,0,0,0,0,0
+EKB0 FCB 0,1,2,3,4,5,6,7,8,9
+ SPC 1
+EK200 FCB 200
+ SPC 1
+ FCB 15,16
+ PAGE
+AETEMP FDB ETEMP ADDR OF ETEMP
+PAST EQU *
+ BSR SUB7
+ CMPA #5
+ BNE *
+ CMPB #6
+ BNE *
+ CPX #$0403
+ BNE *
+ LDX #EKB0
+ CLRB
+ ADDB EK200
+ ADDB 3,X
+ SUBB #203
+ BNE *
+ ORAB EK200
+ ORAB 11,X
+ CMPB #$CF
+ BNE *
+ SUBB EK200
+ SBCB 7,X (B) 00
+ BNE *
+ SPC 2
+ CLR ETEMP
+ DEC ETEMP
+ CLC
+ ROR ETEMP
+ ASR ETEMP
+ LSR ETEMP
+ NEG ETEMP
+ LDAB ETEMP
+ SUBB #$E1
+ BNE *
+ COM ETEMP
+ LDAB #$1E
+ CMPB ETEMP
+ BNE *
+ LDAB #$E1
+ BITB ETEMP
+ BNE *
+ SPC 2
+ LDX #STACK
+ STX ETEMP+2
+ LDX #ETEMP
+ LDS 2,X
+ CPX #ETEMP
+ BNE *
+ TSX
+ CPX #STACK+1
+ BNE *
+ SPC 1
+ LDX #ETEMP
+ STS X
+ LDX ETEMP
+ CPX #STACK
+ BNE *
+ SPC 2
+ LDX #EKB0
+ LDAB #$F0
+ EORB #$FF
+ CMPB #$0F
+ BNE *
+ TST 1,X
+ BEQ *
+ ADCB 11,X
+ CMPB #$1E
+ BNE *
+ ANDB 7,X
+ CMPB 6,X
+ BNE *
+ CMPB #6
+ BNE *
+ BITB 2,X
+ BEQ *
+ CMPB #6
+ BNE *
+ SPC 1
+ LDAB 11,X
+ CMPB #15
+ BNE *
+ LDX #ETEMP
+ STAB X
+ CLC
+ SBCB ETEMP
+ BNE *
+ SEC
+ TST ETEMP
+ BCS *
+ NEG X
+ CLR B
+ ORAB #$F1
+ EORB X
+ BNE *
+ SEC
+ TST X
+ BCS *
+ BEQ *
+ SPC 2
+ CLR B
+ EORB EK200
+ CMPB #200
+ BNE *
+ STAB ETEMP
+ SEC
+ ADCB ETEMP
+ BVS *
+ CMPB #145
+ BNE *
+ SPC 2
+ LDS #STACK
+ LDX #THERE
+ JMP 3,X
+ BRA *
+ WAI
+THERE WAI
+ WAI
+ WAI
+ BRA *+4
+ BRA *
+ CLRA
+ BSR SUB3
+ JSR SUB3
+ LDX #SUB3
+ DEX
+ JSR 1,X
+ CMPA #9
+ BNE *
+ JSR SUB3
+ CMPA #12
+ BNE *
+ BRA OVER
+ WAI FAILURE
+ WAI FAILURE
+ SPC 3
+SUB3 ADDA #3
+ RTS
+ SPC 1
+ SPC 3
+OVER NOP
+ SPC 2
+ LDX #ETEMP
+ CLRA
+ ORAA EK200 (A) C8
+ STAA X (ETEMP) C8
+ BITA X
+ BEQ *
+ CLC
+ ADCA X
+ BCC *
+ ADCA X (A) 59 VC
+ BCC *
+ BVC *
+ ANDA X (A) 48
+ BCC *
+ BVS *
+ SEC
+ SBCA X (A) 7F
+ CMPA #$7F
+ BNE *
+ LDAA #$C8 (A) C8
+ EORA X
+ BNE *
+ SPC 1
+ LDAA K1 (A) 01
+ EORA K1 (A) 00
+ BNE *
+ ORAA K1 (A) 01
+ SEV
+ BITA #1
+ BEQ *
+ BVS *
+ CMPA K1
+ BNE *
+ EORA K1 (A) 00
+ BNE *
+ SPC 1
+ LDAA #$FF (A) FF
+ SEC
+ SBCA K1 (A) FD
+ CMPA #$FD
+ BNE *
+ ADCA K1 (A) FE
+ CMPA #$FE
+ BNE *
+ STAA DTEMP
+ ANDA #0
+ BNE *
+ ORAA DTEMP
+ CMPA #$FE
+ BNE *
+ BITA K1
+ BNE *
+ ANDA K1
+ BNE *
+ SPC 2
+ LDAA #$1F
+ STAA ETEMP
+ SEC
+ ADCA ETEMP
+ EORA #$3F
+ BNE *
+ LDAA #$1F (A) 1F
+ CMPA ETEMP
+ BNE *
+ SEC
+ SBCA ETEMP (A) FF
+ BCC *
+ ANDA ETEMP (A) 1F
+ CMPA #$1F
+ BNE *
+ EORA ETEMP
+ BNE *
+ SPC 2
+ LDAB K1 (B) 01
+ CLC
+ ADCB #$44 (B) 45
+ STAB DTEMP
+ CMPB DTEMP
+ BNE *
+ BCS *
+ ADDB K1 (B) 46
+ BITB DTEMP
+ BEQ *
+ ANDB K1 (B) 00
+ BNE *
+ ORAB DTEMP (B) 45
+ CMPB #$45
+ BNE *
+ EORB DTEMP
+ BNE *
+ ADDB DTEMP (B) 45
+ SEC
+ ADCB DTEMP (B) 8B
+ BVC *
+ CMPB #$8B
+ BNE *
+ SBCB DTEMP (B) 46
+ CMPB #$46
+ BNE *
+ SEC
+ ADCB #$B9
+ BNE *
+ SEC
+ SBCB #0
+ CMPB #$FF
+ BNE *
+ AND B EK200 (B) C8
+ CMPB #$C8
+ BNE *
+ TST PASS THIS FIRST PASS
+ BEQ ENDPAS YES
+ LDX INTRV SHOULD MESSAGE BE PRINTED
+ BEQ ENDPAS NO
+ LDX INTCNT NO. PASSES CPT
+ CPX INTRV TIME TO PRINT
+ BNE INXCT
+ TST CNT
+ BMI PRTX GO PRINT
+ LDX #0 INIT COUNTER
+ DEC CNT
+ BEQ PRTX GO PRINT
+INXCT EQU *
+ INX
+ STX INTCNT SAVE UPDATED COUNT
+ BRA ENDPAS
+PRTX CLR INTCNT
+ CLR INTCNT+1
+ TST CNT
+ BMI PRTX1
+ LDAA #120
+ STAA CNT
+PRTX1 EQU *
+ LDX #MSG2 PRINT X
+ JSR PDATA
+ENDPAS RMB 0
+ SPC 1
+* STROBE FOR ADDED HARDWARE
+ STAB $8020
+ SWI EXIT THIS PGM
+ SPC 1
+INTRV FDB 0
+INTCNT RMB 2
+CNT RMB 1
+TEMP RMB 1
+PASS FCB 0
+MSG1 FCC /ALL IS WELL ON FIRST PASS/
+ FDB $A,$D
+ FCC /TO CONTINUE ENTER ONE OF THE/
+ FDB $A,$D
+ FCC /FOLLOWING:/
+ FDB $A,$D
+MSG3 FCC /L = VERIFY RUN ONCE AN HOUR/
+ FDB $A,$D
+ FCC /S = VERIFY RUN EVERY THIRTY SECONDS/
+ FDB $A,$D
+ FCC /0 = DO NOT VERIFY. CYCLE CONTINUOUSLY/
+ FDB $0A0D
+ FDB $20,$4
+MSG2 FCC /X/
+ FDB $20,$4
+INT30 FDB $3A98
+ SPC 1
+* EXIT BY IRQ (I/O) INTERRUPT
+EXIT2 BRA * ILEGAL INTERUPT
+ SPC 3
+ ORG $FFF8
+ FDB EXIT2 IRQ (I/O) VECTOR
+ FDB EXIT1 SOFTWARE INTERRUPT VECTOR
+ FDB EXIT2 NMI VECTOR
+ FDB START RESTART VECTOR
+ END
+ MON