OpenCores
URL https://opencores.org/ocsvn/8051/8051/trunk

Subversion Repositories 8051

[/] [8051/] [trunk/] [asm/] [testall.asm] - Diff between revs 185 and 186

Only display areas with differences | Details | Blame | View Log

Rev 185 Rev 186
; Program tests all instructions except:
; Program tests all instructions except:
; MOVX(1-4) and RETI
; MOVX(1-4) and RETI
        ; Clear RAM
        ; Clear RAM
        mov  r0,#128
        mov  r0,#128
ram_clr:
ram_clr:
        dec  r0
        dec  r0
        mov  @r0,#0
        mov  @r0,#0
        mov  a,r0
        mov  a,r0
        jnz  ram_clr
        jnz  ram_clr
        mov  PSW,#0
        mov  PSW,#0
;;;;;;;;;;;;;;;;;   INST 1 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;   INST 1 ;;;;;;;;;;;;;;;;;;;;;;;
;; acall addr11
;; acall addr11
        mov  a,#85
        mov  a,#85
        acall testret
        acall testret
        inc  a
        inc  a
        jc   fail1
        jc   fail1
        subb a,#87
        subb a,#87
        jz   done1
        jz   done1
fail1:
fail1:
        mov  P1,1
        mov  P1,1
        ljmp failed
        ljmp failed
done1:
done1:
;;;;;;;;;;;;;;;;   INST 2 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;   INST 2 ;;;;;;;;;;;;;;;;;;;;;;;
;; add a,Rn (2) -- test if ALU and flag setting works
;; add a,Rn (2) -- test if ALU and flag setting works
        mov  a,#10
        mov  a,#10
        mov  r0,#117
        mov  r0,#117
        mov  r1,#10
        mov  r1,#10
        mov  r2,#127
        mov  r2,#127
        mov  r3,#128
        mov  r3,#128
        mov  r5,#245
        mov  r5,#245
        mov  r7,#250
        mov  r7,#250
        mov  a,#10
        mov  a,#10
        add  a,r0
        add  a,r0
        jc   fail2
        jc   fail2
        subb a,#127
        subb a,#127
        jnz  fail2
        jnz  fail2
        mov  a,#10
        mov  a,#10
        add  a,r2
        add  a,r2
        jc   fail2
        jc   fail2
        subb a,#137
        subb a,#137
        jnz  fail2
        jnz  fail2
        mov  a,#10
        mov  a,#10
        add  a,r3
        add  a,r3
        jc   fail2
        jc   fail2
        subb a,#138
        subb a,#138
        jnz  fail2
        jnz  fail2
        mov  a,#10
        mov  a,#10
        add  a,r5
        add  a,r5
        jc   fail2
        jc   fail2
        subb a,#255
        subb a,#255
        jnz  fail2
        jnz  fail2
        mov  a,#10
        mov  a,#10
        add  a,r7
        add  a,r7
        jnc  fail2
        jnc  fail2
        clr  c
        clr  c
        subb a,#4
        subb a,#4
        jnz  fail2
        jnz  fail2
        mov  a,#117
        mov  a,#117
        add  a,r1
        add  a,r1
        jc   fail2
        jc   fail2
        subb a,#127
        subb a,#127
        jnz  fail2
        jnz  fail2
        mov  a,#127
        mov  a,#127
        add  a,r1
        add  a,r1
        jc   fail2
        jc   fail2
        subb a,#137
        subb a,#137
        jnz  fail2
        jnz  fail2
        mov  a,#128
        mov  a,#128
        add  a,r1
        add  a,r1
        jc   fail2
        jc   fail2
        subb a,#138
        subb a,#138
        jnz  fail2
        jnz  fail2
        mov  a,#245
        mov  a,#245
        add  a,r1
        add  a,r1
        jc   fail2
        jc   fail2
        subb a,#255
        subb a,#255
        jnz  fail2
        jnz  fail2
        mov  a,#250
        mov  a,#250
        add  a,r1
        add  a,r1
        jnc   fail2
        jnc   fail2
        clr  c
        clr  c
        subb a,#4
        subb a,#4
        jnz  fail2
        jnz  fail2
        ljmp done2
        ljmp done2
fail2:
fail2:
        mov  P1,#2
        mov  P1,#2
        ljmp failed
        ljmp failed
done2:
done2:
;;;;;;;;;;;;;;;;   INST 3 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;   INST 3 ;;;;;;;;;;;;;;;;;;;;;;;
;; add a,direct (3) -- test if ALU and flag setting works
;; add a,direct (3) -- test if ALU and flag setting works
        mov  100,#117
        mov  100,#117
        mov  a,#10
        mov  a,#10
        add  a,100
        add  a,100
        jc   fail3
        jc   fail3
        subb a,#127
        subb a,#127
        jnz  fail3
        jnz  fail3
        mov  100,#127
        mov  100,#127
        mov  a,#10
        mov  a,#10
        add  a,100
        add  a,100
        jc   fail3
        jc   fail3
        subb a,#137
        subb a,#137
        jnz  fail3
        jnz  fail3
        mov  100,#128
        mov  100,#128
        mov  a,#10
        mov  a,#10
        add  a,100
        add  a,100
        jc   fail3
        jc   fail3
        subb a,#138
        subb a,#138
        jnz  fail3
        jnz  fail3
        mov  100,#245
        mov  100,#245
        mov  a,#10
        mov  a,#10
        add  a,100
        add  a,100
        jc   fail3
        jc   fail3
        subb a,#255
        subb a,#255
        jnz  fail3
        jnz  fail3
        mov  100,#250
        mov  100,#250
        mov  a,#10
        mov  a,#10
        add  a,100
        add  a,100
        jnc   fail3
        jnc   fail3
        clr  c
        clr  c
        subb a,#4
        subb a,#4
        jnz  fail3
        jnz  fail3
        mov  a,#117
        mov  a,#117
        mov  100,#10
        mov  100,#10
        add  a,100
        add  a,100
        jc   fail3
        jc   fail3
        subb a,#127
        subb a,#127
        jnz  fail3
        jnz  fail3
        mov  a,#127
        mov  a,#127
        mov  100,#10
        mov  100,#10
        add  a,100
        add  a,100
        jc   fail3
        jc   fail3
        subb a,#137
        subb a,#137
        jnz  fail3
        jnz  fail3
        mov  a,#128
        mov  a,#128
        add  a,100
        add  a,100
        jc   fail3
        jc   fail3
        subb a,#138
        subb a,#138
        jnz  fail3
        jnz  fail3
        mov  a,#245
        mov  a,#245
        add  a,100
        add  a,100
        jc   fail3
        jc   fail3
        subb a,#255
        subb a,#255
        jnz  fail3
        jnz  fail3
        mov  a,#250
        mov  a,#250
        add  a,100
        add  a,100
        jnc  fail3
        jnc  fail3
        clr  c
        clr  c
        subb a,#4
        subb a,#4
        jnz  fail3
        jnz  fail3
        ljmp done3
        ljmp done3
fail3:
fail3:
        jz   done3
        jz   done3
        mov  P1,#3
        mov  P1,#3
        ljmp failed
        ljmp failed
done3:
done3:
;;;;;;;;;;;;;;;;   INST 4 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;   INST 4 ;;;;;;;;;;;;;;;;;;;;;;;
;; add a,@Ri (4) -- indexed and simple CY
;; add a,@Ri (4) -- indexed and simple CY
        mov  a,#40
        mov  a,#40
        mov  r0,#100
        mov  r0,#100
        mov  100,#10
        mov  100,#10
        mov  r1,#101
        mov  r1,#101
        mov  101,#100
        mov  101,#100
        add  a,@r0
        add  a,@r0
        jc   fail4
        jc   fail4
        subb a,#50
        subb a,#50
        jnz  fail4
        jnz  fail4
        mov  a,#40
        mov  a,#40
        add  a,@r1
        add  a,@r1
        jc   fail4
        jc   fail4
        subb a,#140
        subb a,#140
        jnz  fail4
        jnz  fail4
        mov  a,#10
        mov  a,#10
        mov  r1,#102
        mov  r1,#102
        mov  102,#250
        mov  102,#250
        add  a,@r1
        add  a,@r1
        jnc   fail4
        jnc   fail4
        clr  c
        clr  c
        subb a,#4
        subb a,#4
        jnz  fail4
        jnz  fail4
        ljmp done4
        ljmp done4
fail4:
fail4:
        mov  P1,#4
        mov  P1,#4
        ljmp failed
        ljmp failed
done4:
done4:
;;;;;;;;;;;;;;;;   INST 5 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;   INST 5 ;;;;;;;;;;;;;;;;;;;;;;;
;; add a,#data (5)
;; add a,#data (5)
        mov  a,#10
        mov  a,#10
        add  a,#117
        add  a,#117
        jc   fail5
        jc   fail5
        subb a,#127
        subb a,#127
        jnz  fail5
        jnz  fail5
        mov  a,#10
        mov  a,#10
        add  a,#127
        add  a,#127
        jc   fail5
        jc   fail5
        subb a,#137
        subb a,#137
        jnz  fail5
        jnz  fail5
        mov  a,#10
        mov  a,#10
        add  a,#128
        add  a,#128
        jc   fail5
        jc   fail5
        subb a,#138
        subb a,#138
        jnz  fail5
        jnz  fail5
        mov  a,#10
        mov  a,#10
        add  a,#245
        add  a,#245
        jc   fail5
        jc   fail5
        subb a,#255
        subb a,#255
        jnz  fail5
        jnz  fail5
        mov  a,#10
        mov  a,#10
        add  a,#250
        add  a,#250
        jnc   fail5
        jnc   fail5
        clr  c
        clr  c
        subb a,#4
        subb a,#4
        jnz  fail5
        jnz  fail5
        mov  a,#117
        mov  a,#117
        add  a,#10
        add  a,#10
        jc   fail5
        jc   fail5
        subb a,#127
        subb a,#127
        jnz  fail5
        jnz  fail5
        mov  a,#127
        mov  a,#127
        add  a,#10
        add  a,#10
        jc   fail5
        jc   fail5
        subb a,#137
        subb a,#137
        jnz  fail5
        jnz  fail5
        mov  a,#128
        mov  a,#128
        add  a,#10
        add  a,#10
        jc   fail5
        jc   fail5
        subb a,#138
        subb a,#138
        jnz  fail5
        jnz  fail5
        mov  a,#245
        mov  a,#245
        add  a,#10
        add  a,#10
        jc   fail5
        jc   fail5
        subb a,#255
        subb a,#255
        jnz  fail5
        jnz  fail5
        mov  a,#250
        mov  a,#250
        add  a,#10
        add  a,#10
        jnc  fail5
        jnc  fail5
        clr  c
        clr  c
        subb a,#4
        subb a,#4
        jnz  fail5
        jnz  fail5
        ljmp done5
        ljmp done5
fail5:
fail5:
        jz   done5
        jz   done5
        mov  P1,#5
        mov  P1,#5
        ljmp failed
        ljmp failed
        mov  P1,#5
        mov  P1,#5
        ljmp failed
        ljmp failed
done5:
done5:
;;;;;;;;;;;;;;;;   INST 6 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;   INST 6 ;;;;;;;;;;;;;;;;;;;;;;;
;; addc a,Rn (6)
;; addc a,Rn (6)
        mov  a,#10
        mov  a,#10
        mov  r0,#10
        mov  r0,#10
        clr  c
        clr  c
        addc a,r0
        addc a,r0
        jc   fail6
        jc   fail6
        subb a,#20
        subb a,#20
        jnz  fail6
        jnz  fail6
        mov  a,#10
        mov  a,#10
        setb c
        setb c
        addc a,r0
        addc a,r0
        jc   fail6
        jc   fail6
        subb a,#21
        subb a,#21
        jnz  fail6
        jnz  fail6
        mov  a,#100
        mov  a,#100
        clr  c
        clr  c
        addc a,r0
        addc a,r0
        jc   fail6
        jc   fail6
        subb a,#110
        subb a,#110
        jnz  fail6
        jnz  fail6
        mov  a,#100
        mov  a,#100
        setb c
        setb c
        addc a,r0
        addc a,r0
        jc   fail6
        jc   fail6
        subb a,#111
        subb a,#111
        jnz  fail6
        jnz  fail6
        mov  a,#250
        mov  a,#250
        clr  c
        clr  c
        addc a,r0
        addc a,r0
        jnc  fail6
        jnc  fail6
        clr  c
        clr  c
        subb a,#4
        subb a,#4
        jnz  fail6
        jnz  fail6
        mov  a,#250
        mov  a,#250
        setb c
        setb c
        addc a,r0
        addc a,r0
        jnc  fail6
        jnc  fail6
        clr  c
        clr  c
        subb a,#5
        subb a,#5
        jnz  fail6
        jnz  fail6
        ljmp done6
        ljmp done6
fail6:
fail6:
        mov  P1,#6
        mov  P1,#6
        ljmp failed
        ljmp failed
done6:
done6:
;;;;;;;;;;;;;;;;   INST 7 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;   INST 7 ;;;;;;;;;;;;;;;;;;;;;;;
;; addc a,direct (7)
;; addc a,direct (7)
        mov  a,#10
        mov  a,#10
        mov  100,#10
        mov  100,#10
        clr  c
        clr  c
        addc a,100
        addc a,100
        jc   fail7
        jc   fail7
        subb a,#20
        subb a,#20
        jnz  fail7
        jnz  fail7
        mov  a,#10
        mov  a,#10
        setb c
        setb c
        addc a,100
        addc a,100
        jc   fail7
        jc   fail7
        subb a,#21
        subb a,#21
        jnz  fail7
        jnz  fail7
        mov  a,#100
        mov  a,#100
        clr  c
        clr  c
        addc a,100
        addc a,100
        jc   fail7
        jc   fail7
        subb a,#110
        subb a,#110
        jnz  fail7
        jnz  fail7
        mov  a,#100
        mov  a,#100
        setb c
        setb c
        addc a,100
        addc a,100
        jc   fail7
        jc   fail7
        subb a,#111
        subb a,#111
        jnz  fail7
        jnz  fail7
        mov  a,#250
        mov  a,#250
        clr  c
        clr  c
        addc a,100
        addc a,100
        jnc  fail7
        jnc  fail7
        clr  c
        clr  c
        subb a,#4
        subb a,#4
        jnz  fail7
        jnz  fail7
        mov  a,#250
        mov  a,#250
        setb c
        setb c
        addc a,100
        addc a,100
        jnc  fail7
        jnc  fail7
        clr  c
        clr  c
        subb a,#5
        subb a,#5
        jnz  fail7
        jnz  fail7
        ljmp done7
        ljmp done7
fail7:
fail7:
        mov  P1,#7
        mov  P1,#7
        ljmp failed
        ljmp failed
done7:
done7:
;;;;;;;;;;;;;;;;   INST 8 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;   INST 8 ;;;;;;;;;;;;;;;;;;;;;;;
;; addc a,@Ri (8)
;; addc a,@Ri (8)
        mov  a,#10
        mov  a,#10
        mov  r0,#100
        mov  r0,#100
        mov  100,#11
        mov  100,#11
        clr  c
        clr  c
        addc a,@r0
        addc a,@r0
        jc   fail8
        jc   fail8
        subb a,#21
        subb a,#21
        jnz  fail8
        jnz  fail8
        mov  a,#10
        mov  a,#10
        setb c
        setb c
        addc a,@r0
        addc a,@r0
        jc   fail8
        jc   fail8
        subb a,#22
        subb a,#22
        jnz  fail8
        jnz  fail8
        mov  a,#100
        mov  a,#100
        clr  c
        clr  c
        addc a,@r0
        addc a,@r0
        jc   fail8
        jc   fail8
        subb a,#111
        subb a,#111
        jnz  fail8
        jnz  fail8
        mov  a,#100
        mov  a,#100
        setb c
        setb c
        addc a,@r0
        addc a,@r0
        jc   fail8
        jc   fail8
        subb a,#112
        subb a,#112
        jnz  fail8
        jnz  fail8
        mov  a,#250
        mov  a,#250
        clr  c
        clr  c
        addc a,@r0
        addc a,@r0
        jnc  fail8
        jnc  fail8
        clr  c
        clr  c
        subb a,#5
        subb a,#5
        jnz  fail8
        jnz  fail8
        mov  a,#250
        mov  a,#250
        setb c
        setb c
        addc a,@r0
        addc a,@r0
        jnc  fail8
        jnc  fail8
        clr  c
        clr  c
        subb a,#6
        subb a,#6
        jnz  fail8
        jnz  fail8
        ljmp done8
        ljmp done8
fail8:
fail8:
        mov  P1,#8
        mov  P1,#8
        ljmp failed
        ljmp failed
done8:
done8:
;;;;;;;;;;;;;;;;   INST 9 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;   INST 9 ;;;;;;;;;;;;;;;;;;;;;;;
;; addc a,#data (9)
;; addc a,#data (9)
        mov  a,#14
        mov  a,#14
        clr  c
        clr  c
        addc a,#14
        addc a,#14
        jc   fail9
        jc   fail9
        subb a,#28
        subb a,#28
        jnz  fail9
        jnz  fail9
        mov  a,#14
        mov  a,#14
        setb c
        setb c
        addc a,#15
        addc a,#15
        jc   fail9
        jc   fail9
        subb a,#30
        subb a,#30
        jnz  fail9
        jnz  fail9
        mov  a,#110
        mov  a,#110
        clr  c
        clr  c
        addc a,#20
        addc a,#20
        jc   fail9
        jc   fail9
        subb a,#130
        subb a,#130
        jnz  fail9
        jnz  fail9
        mov  a,#110
        mov  a,#110
        setb c
        setb c
        addc a,#20
        addc a,#20
        jc   fail9
        jc   fail9
        subb a,#131
        subb a,#131
        jnz  fail9
        jnz  fail9
        mov  a,#250
        mov  a,#250
        clr  c
        clr  c
        addc a,#11
        addc a,#11
        jnc  fail9
        jnc  fail9
        clr  c
        clr  c
        subb a,#5
        subb a,#5
        jnz  fail9
        jnz  fail9
        mov  a,#250
        mov  a,#250
        setb c
        setb c
        addc a,#11
        addc a,#11
        jnc  fail9
        jnc  fail9
        clr  c
        clr  c
        subb a,#6
        subb a,#6
        jnz  fail9
        jnz  fail9
        ljmp done9
        ljmp done9
fail9:
fail9:
        mov  P1,#9
        mov  P1,#9
        ljmp failed
        ljmp failed
done9:
done9:
;;;;;;;;;;;;;;;;  INST 10 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 10 ;;;;;;;;;;;;;;;;;;;;;;;
;; ajmp (10)
;; ajmp (10)
        setb c
        setb c
        ajmp done10
        ajmp done10
fail10:
fail10:
        mov  P1,#10
        mov  P1,#10
        ljmp failed
        ljmp failed
done10:clr  c
done10:clr  c
        jc   fail10
        jc   fail10
;;;;;;;;;;;;;;;;  INST 11 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 11 ;;;;;;;;;;;;;;;;;;;;;;;
;; anl a,Rn (11)
;; anl a,Rn (11)
        mov  r0,#250
        mov  r0,#250
        clr  c
        clr  c
        clr  a
        clr  a
        mov  a,#171
        mov  a,#171
        anl  a,r0
        anl  a,r0
        jc   fail11
        jc   fail11
        jz   fail11
        jz   fail11
        subb a,#170
        subb a,#170
        jnz  fail11
        jnz  fail11
        mov  r0,#190
        mov  r0,#190
        mov  a,#84
        mov  a,#84
        inc  a
        inc  a
        setb c
        setb c
        anl  a,r0
        anl  a,r0
        jz   fail11
        jz   fail11
        jnc  fail11
        jnc  fail11
        clr  c
        clr  c
        subb a,#20
        subb a,#20
        jnz  fail11
        jnz  fail11
        ljmp done11
        ljmp done11
fail11:
fail11:
        mov  P1,#11
        mov  P1,#11
        ljmp failed
        ljmp failed
done11:
done11:
;;;;;;;;;;;;;;;;  INST 12 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 12 ;;;;;;;;;;;;;;;;;;;;;;;
;; anl a,direct (12)
;; anl a,direct (12)
        mov  127,#250
        mov  127,#250
        clr  c
        clr  c
        clr  a
        clr  a
        mov  a,#171
        mov  a,#171
        anl  a,127
        anl  a,127
        jc   fail12
        jc   fail12
        jz   fail12
        jz   fail12
        subb a,#170
        subb a,#170
        jnz  fail12
        jnz  fail12
        mov  127,#190
        mov  127,#190
        mov  a,#84
        mov  a,#84
        inc  a
        inc  a
        setb c
        setb c
        anl  a,127
        anl  a,127
        jz   fail12
        jz   fail12
        jnc  fail12
        jnc  fail12
        clr  c
        clr  c
        subb a,#20
        subb a,#20
        jnz  fail12
        jnz  fail12
        ljmp done12
        ljmp done12
fail12:
fail12:
        mov  P1,#12
        mov  P1,#12
        ljmp failed
        ljmp failed
done12:
done12:
;;;;;;;;;;;;;;;;  INST 13 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 13 ;;;;;;;;;;;;;;;;;;;;;;;
;; anl a,@Ri (13)
;; anl a,@Ri (13)
        mov  r0,#127
        mov  r0,#127
        clr  c
        clr  c
        clr  a
        clr  a
        mov  127,#171
        mov  127,#171
        mov  a,#250
        mov  a,#250
        anl  a,@r0
        anl  a,@r0
        jc   fail13
        jc   fail13
        jz   fail13
        jz   fail13
        subb a,#170
        subb a,#170
        jnz  fail13
        jnz  fail13
        mov  127,#190
        mov  127,#190
        mov  a,#84
        mov  a,#84
        inc  a
        inc  a
        setb c
        setb c
        anl  a,@r0
        anl  a,@r0
        jz   fail13
        jz   fail13
        jnc  fail13
        jnc  fail13
        clr  c
        clr  c
        subb a,#20
        subb a,#20
        jnz  fail13
        jnz  fail13
        ljmp done13
        ljmp done13
fail13:
fail13:
        anl  a,@r0
        anl  a,@r0
        jz   done13
        jz   done13
        mov  P1,#13
        mov  P1,#13
        ljmp failed
        ljmp failed
done13:
done13:
;;;;;;;;;;;;;;;;  INST 14 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 14 ;;;;;;;;;;;;;;;;;;;;;;;
;; anl a,#data (14)
;; anl a,#data (14)
        clr  c
        clr  c
        clr  a
        clr  a
        mov  a,#250
        mov  a,#250
        anl  a,#171
        anl  a,#171
        jc   fail14
        jc   fail14
        jz   fail14
        jz   fail14
        subb a,#170
        subb a,#170
        jnz  fail14
        jnz  fail14
        mov  a,#190
        mov  a,#190
        mov  a,#84
        mov  a,#84
        inc  a
        inc  a
        setb c
        setb c
        anl  a,@r0
        anl  a,@r0
        jz   fail14
        jz   fail14
        jnc  fail14
        jnc  fail14
        clr  c
        clr  c
        subb a,#20
        subb a,#20
        jnz  fail14
        jnz  fail14
        ljmp done14
        ljmp done14
fail14:
fail14:
        subb a,#255
        subb a,#255
        jz   done14
        jz   done14
        mov  P1,#14
        mov  P1,#14
        ljmp failed
        ljmp failed
done14:
done14:
;;;;;;;;;;;;;;;;  INST 15 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 15 ;;;;;;;;;;;;;;;;;;;;;;;
;; anl direct,a (15)
;; anl direct,a (15)
        mov  127,#250
        mov  127,#250
        clr  c
        clr  c
        clr  a
        clr  a
        mov  a,#171
        mov  a,#171
        anl  127,a
        anl  127,a
        jc   fail15
        jc   fail15
        mov  a,127
        mov  a,127
        jz   fail15
        jz   fail15
        subb a,#170
        subb a,#170
        jnz  fail15
        jnz  fail15
        mov  127,#190
        mov  127,#190
        mov  a,#84
        mov  a,#84
        inc  a
        inc  a
        setb c
        setb c
        anl  127,a
        anl  127,a
        mov  a,127
        mov  a,127
        jz   fail15
        jz   fail15
        jnc  fail15
        jnc  fail15
        clr  c
        clr  c
        subb a,#20
        subb a,#20
        jnz  fail15
        jnz  fail15
        ljmp done15
        ljmp done15
fail15:
fail15:
        mov  P1,#15
        mov  P1,#15
        ljmp failed
        ljmp failed
done15:
done15:
;;;;;;;;;;;;;;;;  INST 16 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 16 ;;;;;;;;;;;;;;;;;;;;;;;
;; anl direct,#data (16)
;; anl direct,#data (16)
        mov  127,#250
        mov  127,#250
        clr  c
        clr  c
        clr  a
        clr  a
        anl  127,#171
        anl  127,#171
        jc   fail16
        jc   fail16
        mov  a,127
        mov  a,127
        jz   fail16
        jz   fail16
        subb a,#170
        subb a,#170
        jnz  fail16
        jnz  fail16
        mov  127,#190
        mov  127,#190
        setb c
        setb c
        anl  127,#85
        anl  127,#85
        mov  a,127
        mov  a,127
        jz   fail16
        jz   fail16
        jnc  fail16
        jnc  fail16
        clr  c
        clr  c
        subb a,#20
        subb a,#20
        jnz  fail16
        jnz  fail16
        ljmp done16
        ljmp done16
fail16:
fail16:
        mov  P1,#16
        mov  P1,#16
        ljmp failed
        ljmp failed
done16:
done16:
;;;;;;;;;;;;;;;;  INST 17 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 17 ;;;;;;;;;;;;;;;;;;;;;;;
;; anl c,bit (17)
;; anl c,bit (17)
        mov  a,#128
        mov  a,#128
        clr  c
        clr  c
        anl  c,acc.7
        anl  c,acc.7
        jc   fail17
        jc   fail17
        mov  a,#128
        mov  a,#128
        setb c
        setb c
        anl  c,acc.7
        anl  c,acc.7
        jnc  fail17
        jnc  fail17
        ljmp done17
        ljmp done17
fail17:
fail17:
        mov  P1,#17
        mov  P1,#17
        ljmp failed
        ljmp failed
done17:
done17:
;;;;;;;;;;;;;;;;  INST 18 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 18 ;;;;;;;;;;;;;;;;;;;;;;;
;; anl c,/bit (18)
;; anl c,/bit (18)
        mov  a,#128
        mov  a,#128
        clr  c
        clr  c
        anl  c,/acc.7
        anl  c,/acc.7
        jc   fail18
        jc   fail18
        mov  a,#128
        mov  a,#128
        setb c
        setb c
        anl  c,/acc.7
        anl  c,/acc.7
        jc   fail18
        jc   fail18
        mov  a,#128
        mov  a,#128
        setb c
        setb c
        anl  c,/acc.5
        anl  c,/acc.5
        jnc  fail18
        jnc  fail18
        ljmp done18
        ljmp done18
fail18:
fail18:
        mov  P1,#18
        mov  P1,#18
        ljmp failed
        ljmp failed
done18:
done18:
;;;;;;;;;;;;;;;;  INST 19 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 19 ;;;;;;;;;;;;;;;;;;;;;;;
;; cjne a,direct,rel (19)
;; cjne a,direct,rel (19)
        mov  a,#228
        mov  a,#228
        mov  100,#228
        mov  100,#228
        cjne a,100,fail19
        cjne a,100,fail19
        jc   fail19
        jc   fail19
        mov  a,#227
        mov  a,#227
        cjne a,100,CHECK_C_19
        cjne a,100,CHECK_C_19
        ljmp fail19
        ljmp fail19
CHECK_C_19:     ;Checks that carry was set
CHECK_C_19:     ;Checks that carry was set
        jnc  fail19
        jnc  fail19
        mov  a,#229
        mov  a,#229
        cjne a,100,CHECK_NC_19
        cjne a,100,CHECK_NC_19
        ljmp fail19
        ljmp fail19
CHECK_NC_19:    ;Checks that carry was not set
CHECK_NC_19:    ;Checks that carry was not set
        jc   fail19
        jc   fail19
        ljmp done19
        ljmp done19
fail19:
fail19:
        mov  P1,#19
        mov  P1,#19
        ljmp failed
        ljmp failed
done19:
done19:
;;;;;;;;;;;;;;;;  INST 20 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 20 ;;;;;;;;;;;;;;;;;;;;;;;
;; cjne a,#data,rel (20)
;; cjne a,#data,rel (20)
        mov  a,#100
        mov  a,#100
        cjne a,#100,fail20
        cjne a,#100,fail20
        jc   fail20
        jc   fail20
        mov  a,#99
        mov  a,#99
        cjne a,#100,CHECK_C_20
        cjne a,#100,CHECK_C_20
        ljmp fail20
        ljmp fail20
CHECK_C_20:     ;Checks that carry was set
CHECK_C_20:     ;Checks that carry was set
        jnc  fail20
        jnc  fail20
        mov  a,#101
        mov  a,#101
        cjne a,#100,CHECK_NC_20
        cjne a,#100,CHECK_NC_20
        ljmp fail20
        ljmp fail20
CHECK_NC_20:    ;Checks that carry was not set
CHECK_NC_20:    ;Checks that carry was not set
        jc   fail20
        jc   fail20
        ljmp done20
        ljmp done20
fail20:
fail20:
        mov  P1,#20
        mov  P1,#20
        ljmp failed
        ljmp failed
done20:
done20:
;;;;;;;;;;;;;;;;  INST 21 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 21 ;;;;;;;;;;;;;;;;;;;;;;;
;; cjne Rn,#data,rel (21)
;; cjne Rn,#data,rel (21)
        mov  r1,#100
        mov  r1,#100
        cjne r1,#100,fail21
        cjne r1,#100,fail21
        jc   fail21
        jc   fail21
        mov  r1,#99
        mov  r1,#99
        cjne r1,#100,CHECK_C_21
        cjne r1,#100,CHECK_C_21
        ljmp fail21
        ljmp fail21
CHECK_C_21:     ;Checks that carry was set
CHECK_C_21:     ;Checks that carry was set
        jnc  fail21
        jnc  fail21
        mov  r1,#101
        mov  r1,#101
        cjne r1,#100,CHECK_NC_21
        cjne r1,#100,CHECK_NC_21
        ljmp fail21
        ljmp fail21
CHECK_NC_21:    ;Checks that carry was not set
CHECK_NC_21:    ;Checks that carry was not set
        jc   fail21
        jc   fail21
        ljmp done21
        ljmp done21
fail21:
fail21:
        mov  P1,#21
        mov  P1,#21
        ljmp failed
        ljmp failed
done21:
done21:
;;;;;;;;;;;;;;;;  INST 22 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 22 ;;;;;;;;;;;;;;;;;;;;;;;
;; cjne @Ri,#data,rel (22)
;; cjne @Ri,#data,rel (22)
        mov  125,#99
        mov  125,#99
        mov  126,#100
        mov  126,#100
        mov  127,#101
        mov  127,#101
        mov  r1,#125
        mov  r1,#125
        cjne @r1,#100, CHECK_EQ_22
        cjne @r1,#100, CHECK_EQ_22
  ljmp fail22
  ljmp fail22
CHECK_EQ_22:
CHECK_EQ_22:
        jnc  fail22
        jnc  fail22
        mov  r1,#126
        mov  r1,#126
        cjne @r1,#100,fail22
        cjne @r1,#100,fail22
        jc   fail22
        jc   fail22
        mov  r1,#127
        mov  r1,#127
        cjne @r1,#100,CHECK_NC_22
        cjne @r1,#100,CHECK_NC_22
        ljmp fail22
        ljmp fail22
CHECK_NC_22:    ;Checks that carry was not set
CHECK_NC_22:    ;Checks that carry was not set
        jc   fail22
        jc   fail22
        ljmp done22
        ljmp done22
fail22:
fail22:
        mov  P1,#22
        mov  P1,#22
        ljmp failed
        ljmp failed
done22:
done22:
;;;;;;;;;;;;;;;;  INST 23 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 23 ;;;;;;;;;;;;;;;;;;;;;;;
;; clr a (23)
;; clr a (23)
        mov  a,#86
        mov  a,#86
        clr  a
        clr  a
        jnz  fail23
        jnz  fail23
        mov  a,#86
        mov  a,#86
        clr  a
        clr  a
        mov  r0,a
        mov  r0,a
        mov  a,r0
        mov  a,r0
        jnz  fail23
        jnz  fail23
        ljmp done23
        ljmp done23
fail23:
fail23:
        mov  P1,#23
        mov  P1,#23
        ljmp failed
        ljmp failed
done23:
done23:
;;;;;;;;;;;;;;;;  INST 24 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 24 ;;;;;;;;;;;;;;;;;;;;;;;
;; clr c (24)
;; clr c (24)
        setb c
        setb c
        clr  c
        clr  c
        jc   fail24
        jc   fail24
        clr  c
        clr  c
        jc   fail24
        jc   fail24
        ljmp done24
        ljmp done24
fail24:
fail24:
        mov  P1,#24
        mov  P1,#24
        ljmp failed
        ljmp failed
done24:
done24:
;;;;;;;;;;;;;;;;  INST 25 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 25 ;;;;;;;;;;;;;;;;;;;;;;;
;; clr bit (25)
;; clr bit (25)
        mov  a, #02h
        mov  a, #02h
        jz   fail25
        jz   fail25
        clr  acc.1
        clr  acc.1
        jnz   fail25
        jnz   fail25
        setb 7
        setb 7
        mov  c, 7
        mov  c, 7
        jc clr1;
        jc clr1;
        ljmp fail25;
        ljmp fail25;
clr1:
clr1:
        clr  7
        clr  7
        mov  c, 7
        mov  c, 7
        jc   fail25
        jc   fail25
        clr  7
        clr  7
        mov  c, 7
        mov  c, 7
        jc   fail25
        jc   fail25
        ljmp done25
        ljmp done25
fail25:
fail25:
        mov  P1,#25
        mov  P1,#25
        ljmp failed
        ljmp failed
done25:
done25:
;;;;;;;;;;;;;;;;  INST 26 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 26 ;;;;;;;;;;;;;;;;;;;;;;;
;; cpl a (26)
;; cpl a (26)
        mov  a,#255
        mov  a,#255
        cpl  a
        cpl  a
        jnz  fail26
        jnz  fail26
        mov  a,#85
        mov  a,#85
        cpl  a
        cpl  a
        clr  c
        clr  c
        subb a,#170
        subb a,#170
        jnz  fail26
        jnz  fail26
        ljmp done26
        ljmp done26
fail26:
fail26:
        mov  P1,#26
        mov  P1,#26
        ljmp failed
        ljmp failed
done26:
done26:
;;;;;;;;;;;;;;;;  INST 27 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 27 ;;;;;;;;;;;;;;;;;;;;;;;
;; cpl c (27)
;; cpl c (27)
        setb c
        setb c
        cpl  c
        cpl  c
        jc   fail27
        jc   fail27
        clr  c
        clr  c
        cpl  c
        cpl  c
        jnc  fail27
        jnc  fail27
        ljmp done27
        ljmp done27
fail27:
fail27:
        mov  P1,#27
        mov  P1,#27
        ljmp failed
        ljmp failed
done27:
done27:
;;;;;;;;;;;;;;;;  INST 28 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 28 ;;;;;;;;;;;;;;;;;;;;;;;
;; cpl bit (28)
;; cpl bit (28)
        clr  a
        clr  a
        setb acc.5
        setb acc.5
        cpl  acc.5
        cpl  acc.5
        jnz  fail28
        jnz  fail28
        clr  acc.5
        clr  acc.5
        cpl  acc.5
        cpl  acc.5
        jz   fail28
        jz   fail28
        ljmp done28
        ljmp done28
fail28:
fail28:
        mov  P1,#28
        mov  P1,#28
        ljmp failed
        ljmp failed
done28:
done28:
;;;;;;;;;;;;;;;;  INST 29 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 29 ;;;;;;;;;;;;;;;;;;;;;;;
;; DA a (29)
;; DA a (29)
        mov  a,#80h
        mov  a,#80h
        add  a,#99h
        add  a,#99h
        da   a
        da   a
        subb a,#78h     ;Will clr acc if c set
        subb a,#78h     ;Will clr acc if c set
        jz   tst2
        jz   tst2
fail_da:
fail_da:
        mov  P1,#29
        mov  P1,#29
        ljmp failed
        ljmp failed
tst2:
tst2:
        mov psw, #00h
        mov psw, #00h
        mov r3, #67h
        mov r3, #67h
        mov a, #56h
        mov a, #56h
        addc a, r3
        addc a, r3
        da  a
        da  a
        subb a, #24h
        subb a, #24h
        jnz fail_da
        jnz fail_da
        mov psw, #00h
        mov psw, #00h
        mov a, #30h
        mov a, #30h
        addc a, #99h
        addc a, #99h
        da  a
        da  a
        subb a, #28h
        subb a, #28h
        jnz fail_da
        jnz fail_da
done29:
done29:
;;;;;;;;;;;;;;;;;  INST 30 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 30 ;;;;;;;;;;;;;;;;;;;;;;
;; dec a (30)
;; dec a (30)
        mov  a,#10
        mov  a,#10
        setb c
        setb c
        dec  a
        dec  a
        jnc  fail30
        jnc  fail30
        clr  c
        clr  c
        subb a,#9
        subb a,#9
        jnz  fail30
        jnz  fail30
        mov  a,#0
        mov  a,#0
        clr  c
        clr  c
        dec  a
        dec  a
        jc   fail30
        jc   fail30
        subb a,#255
        subb a,#255
        jnz  fail30
        jnz  fail30
        ljmp done30
        ljmp done30
fail30:
fail30:
        mov  P1,#30
        mov  P1,#30
        ljmp failed
        ljmp failed
done30:
done30:
;;;;;;;;;;;;;;;;;  INST 31 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 31 ;;;;;;;;;;;;;;;;;;;;;;
;; dec Rn (31)
;; dec Rn (31)
        mov  r2,#10
        mov  r2,#10
        setb c
        setb c
        dec  r2
        dec  r2
        jnc  fail31
        jnc  fail31
        clr  c
        clr  c
        mov  a,r2
        mov  a,r2
        subb a,#9
        subb a,#9
        jnz  fail31
        jnz  fail31
        mov  r2,#0
        mov  r2,#0
        clr  c
        clr  c
        dec  r2
        dec  r2
        jc   fail31
        jc   fail31
        mov  a,r2
        mov  a,r2
        subb a,#255
        subb a,#255
        jnz  fail31
        jnz  fail31
        ljmp done31
        ljmp done31
fail31:
fail31:
        mov  P1,#31
        mov  P1,#31
        ljmp failed
        ljmp failed
done31:
done31:
;;;;;;;;;;;;;;;;;  INST 32 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 32 ;;;;;;;;;;;;;;;;;;;;;;
;; dec direct (32)
;; dec direct (32)
        mov  127,#10
        mov  127,#10
        setb c
        setb c
        dec  127
        dec  127
        jnc  fail32
        jnc  fail32
        clr  c
        clr  c
        mov  a,127
        mov  a,127
        subb a,#9
        subb a,#9
        jnz  fail32
        jnz  fail32
        mov  127,#0
        mov  127,#0
        clr  c
        clr  c
        dec  127
        dec  127
        jc   fail32
        jc   fail32
        mov  a,127
        mov  a,127
        subb a,#255
        subb a,#255
        jnz  fail32
        jnz  fail32
        ljmp done32
        ljmp done32
fail32:
fail32:
        mov  P1,#32
        mov  P1,#32
        ljmp failed
        ljmp failed
done32:
done32:
;;;;;;;;;;;;;;;;;  INST 33 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 33 ;;;;;;;;;;;;;;;;;;;;;;
;; dec @Ri (33)
;; dec @Ri (33)
        mov  r0,#127
        mov  r0,#127
        mov  @r0,#10
        mov  @r0,#10
        setb c
        setb c
        dec  @r0
        dec  @r0
        jnc  fail33
        jnc  fail33
        clr  c
        clr  c
        mov  a,@r0
        mov  a,@r0
        subb a,#9
        subb a,#9
        jnz  fail33
        jnz  fail33
        mov  @r0,#0
        mov  @r0,#0
        clr  c
        clr  c
        dec  @r0
        dec  @r0
        jc   fail33
        jc   fail33
        mov  a,@r0
        mov  a,@r0
        subb a,#255
        subb a,#255
        jnz  fail33
        jnz  fail33
        ljmp done33
        ljmp done33
fail33:
fail33:
        mov  P1,#33
        mov  P1,#33
        ljmp failed
        ljmp failed
done33:
done33:
;;;;;;;;;;;;;;;;;  INST 34 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 34 ;;;;;;;;;;;;;;;;;;;;;;
;; div AB (34)
;; div AB (34)
        mov  a,#251
        mov  a,#251
        mov  B,#18
        mov  B,#18
        div  AB
        div  AB
        jc   fail34
        jc   fail34
        mov  c,OV
        mov  c,OV
        jc   fail34
        jc   fail34
        subb a,#13
        subb a,#13
        jnz  fail34
        jnz  fail34
        mov  a,B
        mov  a,B
        subb a,#17
        subb a,#17
        jnz  fail34
        jnz  fail34
        mov  a,#180
        mov  a,#180
        mov  B,#15
        mov  B,#15
        div  AB
        div  AB
        jc   fail34
        jc   fail34
        mov  c,OV
        mov  c,OV
        jc   fail34
        jc   fail34
        subb a,#12
        subb a,#12
        jnz  fail34
        jnz  fail34
        mov  a,B
        mov  a,B
        jnz  fail34
        jnz  fail34
        mov  a,#0
        mov  a,#0
        mov  B,#15
        mov  B,#15
        div  AB
        div  AB
        jc   fail34
        jc   fail34
        mov  c,OV
        mov  c,OV
        jc   fail34
        jc   fail34
        jnz  fail34
        jnz  fail34
        mov  a,B
        mov  a,B
        subb a,#15
        subb a,#15
        mov  a,#0
        mov  a,#0
        mov  B,#0
        mov  B,#0
        div  AB
        div  AB
        jc   fail34
        jc   fail34
        mov  c,OV
        mov  c,OV
        jnc  fail34
        jnc  fail34
        mov  a,#170
        mov  a,#170
        mov  B,#0
        mov  B,#0
        div  AB
        div  AB
        jc   fail34
        jc   fail34
        mov  c,OV
        mov  c,OV
        jnc  fail34
        jnc  fail34
        ljmp done34
        ljmp done34
fail34:
fail34:
        mov  P1,#34
        mov  P1,#34
        ljmp failed
        ljmp failed
done34:
done34:
;;;;;;;;;;;;;;;;;  INST 35 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 35 ;;;;;;;;;;;;;;;;;;;;;;
;; djnz Rn,rel (35)
;; djnz Rn,rel (35)
        mov  r0,#10
        mov  r0,#10
        djnz r0,JUMP_35 ;Should jump
        djnz r0,JUMP_35 ;Should jump
        mov  P1,#35
        mov  P1,#35
        ljmp failed
        ljmp failed
JUMP_35:
JUMP_35:
        mov  r0,#0
        mov  r0,#0
        djnz r0,JUMP_35B        ;Should jump
        djnz r0,JUMP_35B        ;Should jump
        mov  P1,#35
        mov  P1,#35
        ljmp failed
        ljmp failed
JUMP_35B:
JUMP_35B:
        mov  r0,#1
        mov  r0,#1
        djnz r0,NOT_JUMP_35     ;Should not jump
        djnz r0,NOT_JUMP_35     ;Should not jump
        ajmp done35
        ajmp done35
NOT_JUMP_35:
NOT_JUMP_35:
        mov  P1,#35
        mov  P1,#35
        ljmp failed
        ljmp failed
done35:
done35:
;;;;;;;;;;;;;;;;;  INST 36 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 36 ;;;;;;;;;;;;;;;;;;;;;;
;; djnz direct,rel (36)
;; djnz direct,rel (36)
        mov  127,#10
        mov  127,#10
        djnz 127,JUMP_36        ;Should jump
        djnz 127,JUMP_36        ;Should jump
        mov  P1,#36
        mov  P1,#36
        ljmp failed
        ljmp failed
JUMP_36:
JUMP_36:
        mov  127,#0
        mov  127,#0
        djnz 127,JUMP_36B       ;Should jump
        djnz 127,JUMP_36B       ;Should jump
        mov  P1,#36
        mov  P1,#36
        ljmp failed
        ljmp failed
JUMP_36B:
JUMP_36B:
        mov  127,#1
        mov  127,#1
        djnz 127,NOT_JUMP_36    ;Should not jump
        djnz 127,NOT_JUMP_36    ;Should not jump
        ajmp done36
        ajmp done36
NOT_JUMP_36:
NOT_JUMP_36:
        mov  P1,#36
        mov  P1,#36
        ljmp failed
        ljmp failed
done86:
done86:
;;;;;;;;;;;;;;;;  INST 88 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 88 ;;;;;;;;;;;;;;;;;;;;;;;
        ljmp done88
        ljmp done88
        clr  a
        clr  a
testret:             ;; subroutine called from acall and lcall
testret:             ;; subroutine called from acall and lcall
        inc  a
        inc  a
        ret
        ret
        clr  a
        clr  a
done36:
done36:
;;;;;;;;;;;;;;;;;  INST 37 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 37 ;;;;;;;;;;;;;;;;;;;;;;
;; inc a (37)
;; inc a (37)
        mov  a,#10
        mov  a,#10
        clr  c
        clr  c
        inc  a
        inc  a
        jc   fail37
        jc   fail37
        subb a,#11
        subb a,#11
        jnz  fail37
        jnz  fail37
        mov  a,#255
        mov  a,#255
        setb c
        setb c
        inc  a
        inc  a
        jnc  fail37
        jnc  fail37
        jnz  fail37
        jnz  fail37
        ljmp done37
        ljmp done37
fail37:
fail37:
        mov  P1,#37
        mov  P1,#37
        ljmp failed
        ljmp failed
done37:
done37:
;;;;;;;;;;;;;;;;;  INST 38 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 38 ;;;;;;;;;;;;;;;;;;;;;;
;; inc Rn (38)
;; inc Rn (38)
        mov  r3,#10
        mov  r3,#10
        clr  c
        clr  c
        inc  r3
        inc  r3
        jc   fail38
        jc   fail38
        mov  a,r3
        mov  a,r3
        subb a,#11
        subb a,#11
        jnz  fail38
        jnz  fail38
        mov  r4,#255
        mov  r4,#255
        setb c
        setb c
        inc  r4
        inc  r4
        jnc  fail38
        jnc  fail38
        mov  a,r4
        mov  a,r4
        jnz  fail38
        jnz  fail38
        ljmp done38
        ljmp done38
fail38:
fail38:
        mov  P1,#38
        mov  P1,#38
        ljmp failed
        ljmp failed
done38:
done38:
;;;;;;;;;;;;;;;;;  INST 39 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 39 ;;;;;;;;;;;;;;;;;;;;;;
;; inc direct (39)
;; inc direct (39)
        mov  127,#10
        mov  127,#10
        clr  c
        clr  c
        inc  127
        inc  127
        jc   fail39
        jc   fail39
        mov  a,127
        mov  a,127
        subb a,#11
        subb a,#11
        jnz  fail39
        jnz  fail39
        mov  127,#255
        mov  127,#255
        setb c
        setb c
        inc  127
        inc  127
        jnc  fail39
        jnc  fail39
        mov  a,127
        mov  a,127
        jnz  fail39
        jnz  fail39
        ljmp done39
        ljmp done39
fail39:
fail39:
        mov  P1,#39
        mov  P1,#39
        ljmp failed
        ljmp failed
done39:
done39:
;;;;;;;;;;;;;;;;;  INST 40 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 40 ;;;;;;;;;;;;;;;;;;;;;;
;; inc @Ri (40)
;; inc @Ri (40)
        mov  r1,#126
        mov  r1,#126
        mov  @r1,#10
        mov  @r1,#10
        clr  c
        clr  c
        inc  @r1
        inc  @r1
        jc   fail40
        jc   fail40
        mov  a,@r1
        mov  a,@r1
        subb a,#11
        subb a,#11
        jnz  fail40
        jnz  fail40
        mov  @r1,#255
        mov  @r1,#255
        setb c
        setb c
        inc  @r1
        inc  @r1
        jnc  fail40
        jnc  fail40
        mov  a,@r1
        mov  a,@r1
        jnz  fail40
        jnz  fail40
        ljmp done40
        ljmp done40
fail40:
fail40:
        mov  P1,#40
        mov  P1,#40
        ljmp failed
        ljmp failed
done40:
done40:
;;;;;;;;;;;;;;;;;  INST 41 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 41 ;;;;;;;;;;;;;;;;;;;;;;
;; inc dptr (41)
;; inc dptr (41)
  clr  c;
  clr  c;
        mov  dptr,#12ffh
        mov  dptr,#12ffh
        inc  dptr
        inc  dptr
        mov  a,DPH
        mov  a,DPH
        subb a,#13h
        subb a,#13h
        jz   DPH_OK_41
        jz   DPH_OK_41
        mov  P1,#41
        mov  P1,#41
        ljmp failed
        ljmp failed
DPH_OK_41:
DPH_OK_41:
        mov  a,DPL
        mov  a,DPL
        jz   done41
        jz   done41
        mov  P1,#41
        mov  P1,#41
        ljmp failed
        ljmp failed
done41:
done41:
;;;;;;;;;;;;;;;;;  INST 42 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 42 ;;;;;;;;;;;;;;;;;;;;;;
;; JB bit,rel (42)
;; JB bit,rel (42)
        mov  a,#16
        mov  a,#16
        jb   acc.3,fail42
        jb   acc.3,fail42
        jb   acc.4,done42
        jb   acc.4,done42
fail42:
fail42:
        mov  P1,#42
        mov  P1,#42
        ljmp failed
        ljmp failed
done42:
done42:
;;;;;;;;;;;;;;;;;  INST 43 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 43 ;;;;;;;;;;;;;;;;;;;;;;
;; jbc bit,rel (43)
;; jbc bit,rel (43)
        mov  a,#8
        mov  a,#8
        jbc  acc.3,CHECK_BIT_43
        jbc  acc.3,CHECK_BIT_43
        mov  P1,#43
        mov  P1,#43
        ljmp failed
        ljmp failed
CHECK_BIT_43:
CHECK_BIT_43:
        jz   done43
        jz   done43
        mov  P1,#43
        mov  P1,#43
        ljmp failed
        ljmp failed
done43:
done43:
;;;;;;;;;;;;;;;;;  INST 44 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 44 ;;;;;;;;;;;;;;;;;;;;;;
;; jc rel (44)
;; jc rel (44)
        clr  c
        clr  c
        jc   fail44
        jc   fail44
        cpl  c
        cpl  c
        jc   done44
        jc   done44
fail44:
fail44:
        mov  P1,#44
        mov  P1,#44
        ljmp failed
        ljmp failed
done44:
done44:
;;;;;;;;;;;;;;;;;  INST 45 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 45 ;;;;;;;;;;;;;;;;;;;;;;
;; jmp @a+dptr (45)
;; jmp @a+dptr (45)
        mov  a,#4
        mov  a,#4
        mov  dptr,#JMP_TBL
        mov  dptr,#JMP_TBL
        jmp  @a+dptr
        jmp  @a+dptr
JMP_TBL:
JMP_TBL:
        ajmp JUMP_0
        ajmp JUMP_0
        ajmp JUMP_2
        ajmp JUMP_2
        ajmp JUMP_4
        ajmp JUMP_4
        ajmp JUMP_6
        ajmp JUMP_6
JUMP_0:
JUMP_0:
JUMP_2:
JUMP_2:
JUMP_6:
JUMP_6:
        mov  P1,#43
        mov  P1,#43
        ljmp failed
        ljmp failed
JUMP_4:
JUMP_4:
;;;;;;;;;;;;;;;;;  INST 46 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 46 ;;;;;;;;;;;;;;;;;;;;;;
;; jnb bit,rel (46)
;; jnb bit,rel (46)
        mov  a,#16
        mov  a,#16
        jnb  acc.4,fail42
        jnb  acc.4,fail42
        jnb  acc.5,done46
        jnb  acc.5,done46
fail46:
fail46:
        mov  P1,#46
        mov  P1,#46
        ljmp failed
        ljmp failed
done46:
done46:
;;;;;;;;;;;;;;;;;  INST 47 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 47 ;;;;;;;;;;;;;;;;;;;;;;
;; jnc rel (47)
;; jnc rel (47)
        setb c
        setb c
        jnc  fail47
        jnc  fail47
        cpl  c
        cpl  c
        jnc  done47
        jnc  done47
fail47:
fail47:
        mov  P1,#47
        mov  P1,#47
        ljmp failed
        ljmp failed
done47:
done47:
;;;;;;;;;;;;;;;;;  INST 48 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 48 ;;;;;;;;;;;;;;;;;;;;;;
;; jnz rel (48)
;; jnz rel (48)
        mov  r1,#0
        mov  r1,#0
        mov  a,0
        mov  a,0
        inc  r1
        inc  r1
        jnz  fail48
        jnz  fail48
        mov  a,#1
        mov  a,#1
        dec  r1
        dec  r1
        jnz  done48
        jnz  done48
fail48:
fail48:
        mov  P1,#48
        mov  P1,#48
        ljmp failed
        ljmp failed
done48:
done48:
;;;;;;;;;;;;;;;;;  INST 49 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 49 ;;;;;;;;;;;;;;;;;;;;;;
;; jz rel (49)
;; jz rel (49)
        mov  r1,1
        mov  r1,1
        mov  a,#2
        mov  a,#2
        dec  r1
        dec  r1
        jz   fail49
        jz   fail49
        mov  a,#0
        mov  a,#0
        inc  r1
        inc  r1
        jz   done49
        jz   done49
fail49:
fail49:
        mov  P1,#49
        mov  P1,#49
        ljmp failed
        ljmp failed
done49:
done49:
;;;;;;;;;;;;;;;;   INST 50 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;   INST 50 ;;;;;;;;;;;;;;;;;;;;;;
;; lcall addr11
;; lcall addr11
        mov  a,#85
        mov  a,#85
        lcall testret
        lcall testret
        inc  a
        inc  a
        jc   fail50
        jc   fail50
        subb a,#87
        subb a,#87
        jz   done50
        jz   done50
fail50:
fail50:
        mov  P1,1
        mov  P1,1
        ljmp failed
        ljmp failed
done50:
done50:
;;;;;;;;;;;;;;;;;  INST 51 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 51 ;;;;;;;;;;;;;;;;;;;;;;
;; ljmp (51)
;; ljmp (51)
        ljmp done51
        ljmp done51
        mov  P1,#51
        mov  P1,#51
        ljmp failed
        ljmp failed
done51:
done51:
;;;;;;;;;;;;;;;;;  INST 52 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 52 ;;;;;;;;;;;;;;;;;;;;;;
;; mov a,Rn (52)
;; mov a,Rn (52)
        mov  r0,#10
        mov  r0,#10
        clr  a
        clr  a
        setb c
        setb c
        mov  a,r0
        mov  a,r0
        jnc  fail52
        jnc  fail52
  clr  c
  clr  c
        subb a,#10
        subb a,#10
        jz   done52
        jz   done52
fail52:
fail52:
        mov  P1,#52
        mov  P1,#52
        ljmp failed
        ljmp failed
done52:
done52:
;;;;;;;;;;;;;;;;;  INST 53 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 53 ;;;;;;;;;;;;;;;;;;;;;;
;; mov a,direct (53)
;; mov a,direct (53)
        mov  127,#10
        mov  127,#10
        clr  a
        clr  a
        setb c
        setb c
        mov  a,127
        mov  a,127
        jnc  fail53
        jnc  fail53
  clr  c
  clr  c
        subb a,#10
        subb a,#10
        jz   done53
        jz   done53
fail53:
fail53:
        mov  P1,#53
        mov  P1,#53
        ljmp failed
        ljmp failed
done53:
done53:
;;;;;;;;;;;;;;;;;  INST 54 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 54 ;;;;;;;;;;;;;;;;;;;;;;
;; mov a,@Ri (54)
;; mov a,@Ri (54)
        mov  r0,#127
        mov  r0,#127
        mov  127,#10
        mov  127,#10
        clr  a
        clr  a
        setb c
        setb c
        mov  a,@r0
        mov  a,@r0
        jnc  fail54
        jnc  fail54
  clr  c
  clr  c
        subb a,#10
        subb a,#10
        jz   done54
        jz   done54
fail54:
fail54:
        mov  P1,#54
        mov  P1,#54
        ljmp failed
        ljmp failed
done54:
done54:
;;;;;;;;;;;;;;;;;  INST 55 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 55 ;;;;;;;;;;;;;;;;;;;;;;
;; mov a,#data (55)
;; mov a,#data (55)
        clr  a
        clr  a
        setb c
        setb c
        mov  a,#10
        mov  a,#10
        jnc  fail55
        jnc  fail55
  clr  c
  clr  c
        subb a,#10
        subb a,#10
        jz   done55
        jz   done55
fail55:
fail55:
        mov  P1,#55
        mov  P1,#55
        ljmp failed
        ljmp failed
done55:
done55:
;;;;;;;;;;;;;;;;;  INST 56 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 56 ;;;;;;;;;;;;;;;;;;;;;;
;; mov Rn,a (56)
;; mov Rn,a (56)
        mov  a,#10
        mov  a,#10
        mov  r0,#0
        mov  r0,#0
        setb c
        setb c
        mov  r0,a
        mov  r0,a
        jnc  fail56
        jnc  fail56
        clr  a
        clr  a
        mov  a,r0
        mov  a,r0
  clr  c
  clr  c
        subb a,#10
        subb a,#10
        jz   done56
        jz   done56
fail56:
fail56:
        mov  P1,#56
        mov  P1,#56
        ljmp failed
        ljmp failed
done56:
done56:
;;;;;;;;;;;;;;;;;  INST 57 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 57 ;;;;;;;;;;;;;;;;;;;;;;
;; mov Rn,direct (57)
;; mov Rn,direct (57)
        mov  127,#10
        mov  127,#10
        mov  r0,#0
        mov  r0,#0
        setb c
        setb c
        mov  r0,127
        mov  r0,127
        jnc  fail57
        jnc  fail57
        mov  a,r0
        mov  a,r0
  clr  c
  clr  c
        subb a,#10
        subb a,#10
        jz   done57
        jz   done57
fail57:
fail57:
        mov  P1,#57
        mov  P1,#57
        ljmp failed
        ljmp failed
done57:
done57:
;;;;;;;;;;;;;;;;;  INST 58 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 58 ;;;;;;;;;;;;;;;;;;;;;;
;; mov Rn,#data (58)
;; mov Rn,#data (58)
        mov  r0,#0
        mov  r0,#0
        clr  a
        clr  a
        setb c
        setb c
        mov  r0,#10
        mov  r0,#10
        jnc  fail58
        jnc  fail58
        mov  a,r0
        mov  a,r0
  clr  c
  clr  c
        subb a,#10
        subb a,#10
        jz   done58
        jz   done58
fail58:
fail58:
        mov  P1,#58
        mov  P1,#58
        ljmp failed
        ljmp failed
done58:
done58:
;;;;;;;;;;;;;;;;;  INST 59 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 59 ;;;;;;;;;;;;;;;;;;;;;;
;; mov direct,a (59)
;; mov direct,a (59)
        mov  a,#10
        mov  a,#10
        clr  127
        clr  127
        setb c
        setb c
        mov  127,a
        mov  127,a
        jnc  fail59
        jnc  fail59
        clr  a
        clr  a
        mov  a,127
        mov  a,127
  clr  c
  clr  c
        subb a,#10
        subb a,#10
        jz   done59
        jz   done59
fail59:
fail59:
        mov  P1,#59
        mov  P1,#59
        ljmp failed
        ljmp failed
done59:
done59:
;;;;;;;;;;;;;;;;;  INST 60 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 60 ;;;;;;;;;;;;;;;;;;;;;;
;; mov direct,Rn (60)
;; mov direct,Rn (60)
        mov  r0,#10
        mov  r0,#10
        clr  127
        clr  127
        setb c
        setb c
        clr  a
        clr  a
        mov  127,r0
        mov  127,r0
        jnz  fail60
        jnz  fail60
        jnc  fail60
        jnc  fail60
        mov  a,127
        mov  a,127
  clr  c
  clr  c
        subb a,#10
        subb a,#10
        jz   done60
        jz   done60
fail60:
fail60:
        mov  P1,#60
        mov  P1,#60
        ljmp failed
        ljmp failed
done60:
done60:
;;;;;;;;;;;;;;;;;  INST 61 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 61 ;;;;;;;;;;;;;;;;;;;;;;
;; mov direct,direct (61)
;; mov direct,direct (61)
        mov  127,#10
        mov  127,#10
        clr  126
        clr  126
        clr  a
        clr  a
        setb c
        setb c
        mov  126,127
        mov  126,127
        jnz  fail61
        jnz  fail61
        jnc  fail61
        jnc  fail61
        mov  a,126
        mov  a,126
  clr  c
  clr  c
        subb a,#10
        subb a,#10
        jz   done61
        jz   done61
fail61:
fail61:
        mov  P1,#61
        mov  P1,#61
        ljmp failed
        ljmp failed
done61:
done61:
;;;;;;;;;;;;;;;;;  INST 62 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 62 ;;;;;;;;;;;;;;;;;;;;;;
;; mov direct,@Ri (62)
;; mov direct,@Ri (62)
        mov  127,#10
        mov  127,#10
        mov  r0,#127
        mov  r0,#127
        clr  126
        clr  126
        clr  a
        clr  a
        setb c
        setb c
        mov  126,@r0
        mov  126,@r0
        jnz  fail62
        jnz  fail62
        jnc  fail62
        jnc  fail62
        mov  a,126
        mov  a,126
  clr  c
  clr  c
        subb a,#10
        subb a,#10
        jz   done62
        jz   done62
fail62:
fail62:
        mov  P1,#62
        mov  P1,#62
        ljmp failed
        ljmp failed
done62:
done62:
;;;;;;;;;;;;;;;;;  INST 63 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 63 ;;;;;;;;;;;;;;;;;;;;;;
;; mov direct,#data (63)
;; mov direct,#data (63)
        clr  127
        clr  127
        clr  a
        clr  a
        setb c
        setb c
        mov  127,#10
        mov  127,#10
        jnz  fail63
        jnz  fail63
        jnc  fail63
        jnc  fail63
        mov  a,127
        mov  a,127
  clr  c
  clr  c
        subb a,#10
        subb a,#10
        jz   done63
        jz   done63
fail63:
fail63:
        mov  P1,#63
        mov  P1,#63
        ljmp failed
        ljmp failed
done63:
done63:
;;;;;;;;;;;;;;;;;  INST 64 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 64 ;;;;;;;;;;;;;;;;;;;;;;
;; mov @Ri,a (64)
;; mov @Ri,a (64)
        mov  a,#10
        mov  a,#10
        mov  r0,#127
        mov  r0,#127
        mov  @r0,#0
        mov  @r0,#0
        setb c
        setb c
        mov  @r0,a
        mov  @r0,a
        jnc  fail64
        jnc  fail64
        clr  a
        clr  a
        mov  a,127
        mov  a,127
  clr  c
  clr  c
        subb a,#10
        subb a,#10
        jz   done64
        jz   done64
fail64:
fail64:
        mov  P1,#64
        mov  P1,#64
        ljmp failed
        ljmp failed
done64:
done64:
;;;;;;;;;;;;;;;;;  INST 65 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 65 ;;;;;;;;;;;;;;;;;;;;;;
;; mov @Ri,direct (65)
;; mov @Ri,direct (65)
        mov  127,#10
        mov  127,#10
        mov  r0,#126
        mov  r0,#126
        mov  @r0,#0
        mov  @r0,#0
        clr  a
        clr  a
        setb c
        setb c
        mov  @r0,127
        mov  @r0,127
        jnc  fail65
        jnc  fail65
        jnz  fail65
        jnz  fail65
        mov  a,126
        mov  a,126
  clr  c
  clr  c
        subb a,#10
        subb a,#10
        jz   done65
        jz   done65
fail65:
fail65:
        mov  P1,#65
        mov  P1,#65
        ljmp failed
        ljmp failed
done65:
done65:
;;;;;;;;;;;;;;;;;  INST 66 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 66 ;;;;;;;;;;;;;;;;;;;;;;
;; mov @Ri,#data (66)
;; mov @Ri,#data (66)
        mov  r0,#127
        mov  r0,#127
        mov  @r0,#0
        mov  @r0,#0
        clr  a
        clr  a
        setb c
        setb c
        mov  @r0,#10
        mov  @r0,#10
        jnz  fail66
        jnz  fail66
        jnc  fail66
        jnc  fail66
        mov  a,127
        mov  a,127
  clr  c
  clr  c
        subb a,#10
        subb a,#10
        jz   done66
        jz   done66
fail66:
fail66:
        mov  P1,#66
        mov  P1,#66
        ljmp failed
        ljmp failed
done66:
done66:
;;;;;;;;;;;;;;;;;  INST 67 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 67 ;;;;;;;;;;;;;;;;;;;;;;
;; mov c,bit (67)
;; mov c,bit (67)
        mov  a,#1
        mov  a,#1
        clr  c
        clr  c
        mov  c,acc.0
        mov  c,acc.0
        jnc  fail67
        jnc  fail67
        setb c
        setb c
        mov  c,acc.1
        mov  c,acc.1
        jnc  done67
        jnc  done67
fail67:
fail67:
        mov  P1,#67
        mov  P1,#67
        ljmp failed
        ljmp failed
done67:
done67:
;;;;;;;;;;;;;;;;;  INST 68 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 68 ;;;;;;;;;;;;;;;;;;;;;;
;; mov bit,c (68)
;; mov bit,c (68)
        setb c
        setb c
        mov  acc.0,c
        mov  acc.0,c
        cpl  c
        cpl  c
        subb a,#1
        subb a,#1
        jz   done68
        jz   done68
        mov  P1,#68
        mov  P1,#68
        ljmp failed
        ljmp failed
done68:
done68:
;;;;;;;;;;;;;;;;;  INST 69 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 69 ;;;;;;;;;;;;;;;;;;;;;;
;; mov dptr,#data (69)
;; mov dptr,#data (69)
        mov  dptr,#1234h
        mov  dptr,#1234h
        mov  a,DPH
        mov  a,DPH
        subb a,#12h
        subb a,#12h
        jnz  fail69
        jnz  fail69
        mov  a,DPL
        mov  a,DPL
        subb a,#34h
        subb a,#34h
        jz   done69
        jz   done69
fail69:
fail69:
        mov  P1,#69
        mov  P1,#69
        ljmp failed
        ljmp failed
done69:
done69:
;;;;;;;;;;;;;;;;;  INST 70 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 70 ;;;;;;;;;;;;;;;;;;;;;;
;; movc a,@a+dptr (70)
;; movc a,@a+dptr (70)
        clr  a
        clr  a
        mov  dptr,#DB_TBL
        mov  dptr,#DB_TBL
        movc a,@a+dptr
        movc a,@a+dptr
        subb a,#66h
        subb a,#66h
        jnz  fail70
        jnz  fail70
        mov  a,#1
        mov  a,#1
        movc a,@a+dptr
        movc a,@a+dptr
        subb a,#77h
        subb a,#77h
        jz   done70
        jz   done70
        jnz  fail70
        jnz  fail70
DB_TBL:
DB_TBL:
        db   66h
        db   66h
        db   77h
        db   77h
fail70:
fail70:
        mov  P1,#70
        mov  P1,#70
        ljmp failed
        ljmp failed
done70:
done70:
;;;;;;;;;;;;;;;;;  INST 71 ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  INST 71 ;;;;;;;;;;;;;;;;;;;;;;
;; movc a,@a+PC (71)
;; movc a,@a+PC (71)
        mov  a,#13
        mov  a,#13
        movc a,@a+pc
        movc a,@a+pc
        subb a,#66h
        subb a,#66h
        jnz  fail71
        jnz  fail71
        mov  a,#7
        mov  a,#7
        movc a,@a+pc
        movc a,@a+pc
        subb a,#77h
        subb a,#77h
        jz   done71
        jz   done71
        jnz  fail71
        jnz  fail71
        db   66h
        db   66h
        db   77h
        db   77h
fail71:
fail71:
        mov  P1,#71
        mov  P1,#71
        ljmp failed
        ljmp failed
done71:
done71:
;;;;;;;;;;;;;;;;  INST 76 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 76 ;;;;;;;;;;;;;;;;;;;;;;;
;; mul AB (76)
;; mul AB (76)
        mov  a,#80
        mov  a,#80
        mov  B,#160
        mov  B,#160
        mul  AB ; = 3200h
        mul  AB ; = 3200h
        jc   fail76
        jc   fail76
        jnz  fail76
        jnz  fail76
  mov  c, ov
  mov  c, ov
  jnc  fail76
  jnc  fail76
        mov  a,B
        mov  a,B
        clr  c
        clr  c
        subb a,#32h
        subb a,#32h
        jnz  fail76
        jnz  fail76
        mov  a,#111
        mov  a,#111
        mov  B,#87
        mov  B,#87
        mul  AB ; = 25b9h
        mul  AB ; = 25b9h
        jc   fail76
        jc   fail76
  mov  c, ov
  mov  c, ov
  jnc  fail76
  jnc  fail76
        clr  c
        clr  c
        subb a,#0b9h
        subb a,#0b9h
        jnz  fail76
        jnz  fail76
        mov  a,B
        mov  a,B
        subb a,#25h
        subb a,#25h
        jnz  fail76
        jnz  fail76
        mov  a,#11
        mov  a,#11
        mov  B,#17
        mov  B,#17
        mul  AB ; = 00BBh
        mul  AB ; = 00BBh
        jc   fail76
        jc   fail76
  mov  c, ov
  mov  c, ov
  jc   fail76
  jc   fail76
        clr  c
        clr  c
        subb a,#0bbh
        subb a,#0bbh
        jnz  fail76
        jnz  fail76
        mov  a,B
        mov  a,B
        jnz  fail76
        jnz  fail76
        ljmp done76
        ljmp done76
fail76:
fail76:
        mov  P1,#76
        mov  P1,#76
        ljmp failed
        ljmp failed
done76:
done76:
;;;;;;;;;;;;;;;;  INST 77 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 77 ;;;;;;;;;;;;;;;;;;;;;;;
;; nop
;; nop
        mov  a,#85
        mov  a,#85
        setb c
        setb c
        nop
        nop
        jnc  fail77
        jnc  fail77
        subb a,#84
        subb a,#84
        jnz  fail77
        jnz  fail77
        mov  a,#123
        mov  a,#123
        clr  c
        clr  c
        nop
        nop
        jc   fail77
        jc   fail77
        subb a,#123
        subb a,#123
        jz   done77
        jz   done77
fail77:
fail77:
        mov  P1,#77
        mov  P1,#77
        ljmp failed
        ljmp failed
done77:
done77:
;;;;;;;;;;;;;;;;  INST 78 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 78 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl a,Rn (78)
;; orl a,Rn (78)
        mov  a,#90h
        mov  a,#90h
        mov  r0,#09h
        mov  r0,#09h
        setb c
        setb c
        orl  a,r0
        orl  a,r0
        jnc  fail78
        jnc  fail78
        clr  c
        clr  c
        subb a,#99h
        subb a,#99h
        jnz  fail78
        jnz  fail78
        mov  a,#48h
        mov  a,#48h
        mov  r0,#19h
        mov  r0,#19h
        clr  c
        clr  c
        orl  a,r0
        orl  a,r0
        jc   fail78
        jc   fail78
        subb a,#59h
        subb a,#59h
        jz   done78
        jz   done78
fail78:
fail78:
        mov  P1,#78
        mov  P1,#78
        ljmp failed
        ljmp failed
done78:
done78:
;;;;;;;;;;;;;;;;  INST 79 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 79 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl a,direct (79)
;; orl a,direct (79)
        mov  a,#90h
        mov  a,#90h
        mov  127,#09h
        mov  127,#09h
        setb c
        setb c
        orl  a,127
        orl  a,127
        jnc  fail79
        jnc  fail79
        clr  c
        clr  c
        subb a,#99h
        subb a,#99h
        jnz  fail79
        jnz  fail79
        mov  a,#48h
        mov  a,#48h
        mov  127,#19h
        mov  127,#19h
        clr  c
        clr  c
        orl  a,127
        orl  a,127
        jc   fail79
        jc   fail79
        subb a,#59h
        subb a,#59h
        jz   done79
        jz   done79
fail79:
fail79:
        mov  P1,#79
        mov  P1,#79
        ljmp failed
        ljmp failed
done79:
done79:
;;;;;;;;;;;;;;;;  INST 80 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 80 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl a,@Ri (80)
;; orl a,@Ri (80)
        mov  a,#90h
        mov  a,#90h
        mov  r1,#127
        mov  r1,#127
        mov  @r1,#09h
        mov  @r1,#09h
        setb c
        setb c
        orl  a,@r1
        orl  a,@r1
        jnc  fail80
        jnc  fail80
        clr  c
        clr  c
        subb a,#99h
        subb a,#99h
        jnz  fail80
        jnz  fail80
        mov  a,#48h
        mov  a,#48h
        mov  @r1,#19h
        mov  @r1,#19h
        clr  c
        clr  c
        orl  a,@r1
        orl  a,@r1
        jc   fail80
        jc   fail80
        subb a,#59h
        subb a,#59h
        jz   done80
        jz   done80
fail80:
fail80:
        mov  P1,#80
        mov  P1,#80
        ljmp failed
        ljmp failed
done80:
done80:
;;;;;;;;;;;;;;;;  INST 81 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 81 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl a,#data (81)
;; orl a,#data (81)
        mov  a,#90h
        mov  a,#90h
        setb c
        setb c
        orl  a,#09h
        orl  a,#09h
        jnc  fail81
        jnc  fail81
        clr  c
        clr  c
        subb a,#99h
        subb a,#99h
        jnz  fail81
        jnz  fail81
        mov  a,#48h
        mov  a,#48h
        clr  c
        clr  c
        orl  a,#19h
        orl  a,#19h
        jc   fail81
        jc   fail81
        subb a,#59h
        subb a,#59h
        jz   done81
        jz   done81
fail81:
fail81:
        mov  P1,#81
        mov  P1,#81
        ljmp failed
        ljmp failed
done81:
done81:
;;;;;;;;;;;;;;;;  INST 82 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 82 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl direct,a (82)
;; orl direct,a (82)
        mov  a,#90h
        mov  a,#90h
        mov  127,#09h
        mov  127,#09h
        setb c
        setb c
        orl  127,a
        orl  127,a
        jnc  fail82
        jnc  fail82
        clr  c
        clr  c
        subb a,#90h
        subb a,#90h
        jnz  fail82
        jnz  fail82
        mov  a,127
        mov  a,127
        clr  c
        clr  c
        subb a,#99h
        subb a,#99h
        jnz  fail82
        jnz  fail82
        mov  a,#48h
        mov  a,#48h
        mov  127,#19h
        mov  127,#19h
        clr  c
        clr  c
        orl  127,a
        orl  127,a
        jc   fail82
        jc   fail82
        subb a,#48h
        subb a,#48h
        jnz  fail82
        jnz  fail82
        mov  a,127
        mov  a,127
        clr  c
        clr  c
        subb a,#59h
        subb a,#59h
        jz   done82
        jz   done82
fail82:
fail82:
        mov  P1,#82
        mov  P1,#82
        ljmp failed
        ljmp failed
done82:
done82:
;;;;;;;;;;;;;;;;  INST 83 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 83 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl direct,#data (83)
;; orl direct,#data (83)
        mov  a,#91h
        mov  a,#91h
        mov  127,#09h
        mov  127,#09h
        setb c
        setb c
        orl  127,#90h
        orl  127,#90h
        jnc  fail83
        jnc  fail83
        clr  c
        clr  c
        subb a,#91h
        subb a,#91h
        jnz  fail83
        jnz  fail83
        mov  a,127
        mov  a,127
        clr  c
        clr  c
        subb a,#99h
        subb a,#99h
        jnz  fail83
        jnz  fail83
        mov  a,#49h
        mov  a,#49h
        mov  127,#19h
        mov  127,#19h
        clr  c
        clr  c
        orl  127,#48h
        orl  127,#48h
        jc   fail83
        jc   fail83
        subb a,#49h
        subb a,#49h
        jnz  fail83
        jnz  fail83
        mov  a,127
        mov  a,127
        clr  c
        clr  c
        subb a,#59h
        subb a,#59h
        jz   done83
        jz   done83
fail83:
fail83:
        mov  P1,#83
        mov  P1,#83
        ljmp failed
        ljmp failed
done83:
done83:
;;;;;;;;;;;;;;;;  INST 84 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 84 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl c,bit (84)
;; orl c,bit (84)
        mov  a,#1
        mov  a,#1
        orl  c,acc.1
        orl  c,acc.1
        jc   fail84
        jc   fail84
        orl  c,acc.0
        orl  c,acc.0
        jnc  fail84
        jnc  fail84
        orl  c,acc.1
        orl  c,acc.1
        jc   done84
        jc   done84
fail84:
fail84:
        mov  P1,#84
        mov  P1,#84
        ljmp failed
        ljmp failed
done84:
done84:
;;;;;;;;;;;;;;;;  INST 85 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 85 ;;;;;;;;;;;;;;;;;;;;;;;
;; orl c,/bit (85)
;; orl c,/bit (85)
        mov  a,#1
        mov  a,#1
  clr  c
  clr  c
        orl  c,/acc.0
        orl  c,/acc.0
        jc   fail85
        jc   fail85
        orl  c,/acc.1
        orl  c,/acc.1
        jnc  fail85
        jnc  fail85
  setb c
  setb c
        orl  c,/acc.0
        orl  c,/acc.0
        jc   done85
        jc   done85
fail85:
fail85:
        mov  P1,#85
        mov  P1,#85
        ljmp failed
        ljmp failed
done85:
done85:
;;;;;;;;;;;;;;;;  INST 86,87 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 86,87 ;;;;;;;;;;;;;;;;;;;;;;;
;; push direct (87)
;; push direct (87)
  clr  c
  clr  c
        mov  dptr,#0123h
        mov  dptr,#0123h
        mov  127,#8
        mov  127,#8
        push DPL
        push DPL
        push DPH
        push DPH
        push 127
        push 127
        mov  a,8
        mov  a,8
        subb a,#23h
        subb a,#23h
        jnz  fail87
        jnz  fail87
        mov  a,9
        mov  a,9
        subb a,#1
        subb a,#1
        jnz fail87
        jnz fail87
        mov  a,10
        mov  a,10
        subb a,#8
        subb a,#8
        jz   done87
        jz   done87
fail87:
fail87:
        mov  P1,#87
        mov  P1,#87
        ljmp failed
        ljmp failed
done87:
done87:
;; pop direct (86)
;; pop direct (86)
        pop  SP
        pop  SP
        pop  100
        pop  100
        mov  a,100
        mov  a,100
        subb a,#23h
        subb a,#23h
        jz   done88
        jz   done88
        mov  P1,#86
        mov  P1,#86
        ljmp failed
        ljmp failed
done88:
done88:
;;;;;;;;;;;;;;;;  INST 90 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 90 ;;;;;;;;;;;;;;;;;;;;;;;
;; rl a (90)
;; rl a (90)
        mov  a,#129
        mov  a,#129
        rl   a
        rl   a
        subb a,#3
        subb a,#3
        jz   done90
        jz   done90
        mov  P1,#90
        mov  P1,#90
        ljmp failed
        ljmp failed
done90:
done90:
;;;;;;;;;;;;;;;;  INST 91 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 91 ;;;;;;;;;;;;;;;;;;;;;;;
;; rlc a (91)
;; rlc a (91)
        setb c
        setb c
        mov  a,#129
        mov  a,#129
        rlc  a
        rlc  a
        subb a,#2       ;a(3)-c(1)-1
        subb a,#2       ;a(3)-c(1)-1
        jnz  fail91
        jnz  fail91
        clr  c
        clr  c
        mov  a,#129
        mov  a,#129
        rlc  a
        rlc  a
        subb a,#1       ;a(2)-c(1)-1
        subb a,#1       ;a(2)-c(1)-1
        jz   done91
        jz   done91
fail91:
fail91:
        mov  P1,#91
        mov  P1,#91
        ljmp failed
        ljmp failed
done91:
done91:
;;;;;;;;;;;;;;;;  INST 92 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 92 ;;;;;;;;;;;;;;;;;;;;;;;
;; rr a (92)
;; rr a (92)
        mov  a,#129
        mov  a,#129
        rr   a
        rr   a
        subb a,#192
        subb a,#192
        jz   done92
        jz   done92
        mov  P1,#92
        mov  P1,#92
        ljmp failed
        ljmp failed
done92:
done92:
;;;;;;;;;;;;;;;;  INST 93 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 93 ;;;;;;;;;;;;;;;;;;;;;;;
;; rrc a (93)
;; rrc a (93)
        setb c
        setb c
        mov  a,#3
        mov  a,#3
        rrc  a
        rrc  a
        subb a,#128     ;a(129)-c(1)-0
        subb a,#128     ;a(129)-c(1)-0
        jnz  fail93
        jnz  fail93
        clr  c
        clr  c
        mov  a,#3
        mov  a,#3
        rrc  a
        rrc  a
        subb a,#0       ;a(1)-c(1)-0
        subb a,#0       ;a(1)-c(1)-0
        jz   done93
        jz   done93
fail93:
fail93:
        mov  P1,#93
        mov  P1,#93
        ljmp failed
        ljmp failed
done93:
done93:
;;;;;;;;;;;;;;;;  INST 94 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 94 ;;;;;;;;;;;;;;;;;;;;;;;
;; setb c (94)
;; setb c (94)
        clr  c
        clr  c
        setb c
        setb c
        mov  a,#1
        mov  a,#1
        subb a,#0       ;a(1)-c(1)-0
        subb a,#0       ;a(1)-c(1)-0
        jz   done94
        jz   done94
        mov  P1,#94
        mov  P1,#94
        ljmp failed
        ljmp failed
done94:
done94:
;;;;;;;;;;;;;;;;  INST 95 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 95 ;;;;;;;;;;;;;;;;;;;;;;;
;; setb bit (95)
;; setb bit (95)
        clr  a
        clr  a
        setb acc.7
        setb acc.7
        subb a,#128
        subb a,#128
        jz   done95
        jz   done95
        mov  P1,#95
        mov  P1,#95
        ljmp failed
        ljmp failed
done95:
done95:
;;;;;;;;;;;;;;;;  INST 96 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 96 ;;;;;;;;;;;;;;;;;;;;;;;
;; sjmp (96)
;; sjmp (96)
        sjmp done96
        sjmp done96
        mov  P1,#96
        mov  P1,#96
        ljmp failed
        ljmp failed
done96:
done96:
;;;;;;;;;;;;;;;;  INST 97 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 97 ;;;;;;;;;;;;;;;;;;;;;;;
;; subb a,Rn (97)
;; subb a,Rn (97)
        setb c
        setb c
        mov  a,#100
        mov  a,#100
        mov  r0,#10
        mov  r0,#10
        subb a,r0     ; 100 - 10 - 1 = 89
        subb a,r0     ; 100 - 10 - 1 = 89
        jc   fail97
        jc   fail97
        add  a,#167    ; 167 + 89 = 0
        add  a,#167    ; 167 + 89 = 0
        jnz  fail97
        jnz  fail97
        clr  c
        clr  c
        mov  a,#10
        mov  a,#10
        mov  r0,#100
        mov  r0,#100
        subb a,r0     ; 10 - 100 - 0 = 166
        subb a,r0     ; 10 - 100 - 0 = 166
        jnc  fail97
        jnc  fail97
        add  a,#90     ; 166 + 90 = 0
        add  a,#90     ; 166 + 90 = 0
        jz   done97
        jz   done97
fail97:
fail97:
        mov  P1,#97
        mov  P1,#97
        ljmp failed
        ljmp failed
done97:
done97:
;;;;;;;;;;;;;;;;  INST 98 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 98 ;;;;;;;;;;;;;;;;;;;;;;;
;; subb a,direct (98)
;; subb a,direct (98)
        setb c
        setb c
        mov  a,#100
        mov  a,#100
        mov  127,#10
        mov  127,#10
        subb a,127    ; 100 - 10 - 1 = 89
        subb a,127    ; 100 - 10 - 1 = 89
        jc   fail98
        jc   fail98
        add  a,#167    ; 167 + 89 = 0
        add  a,#167    ; 167 + 89 = 0
        jnz  fail98
        jnz  fail98
        clr  c
        clr  c
        mov  a,#10
        mov  a,#10
        mov  127,#100
        mov  127,#100
        subb a,127    ; 10 - 100 - 0 = 166
        subb a,127    ; 10 - 100 - 0 = 166
        jnc  fail98
        jnc  fail98
        add  a,#90     ; 166 + 90 = 0
        add  a,#90     ; 166 + 90 = 0
        jz   done98
        jz   done98
fail98:
fail98:
        mov  P1,#98
        mov  P1,#98
        ljmp failed
        ljmp failed
done98:
done98:
;;;;;;;;;;;;;;;;  INST 99 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;  INST 99 ;;;;;;;;;;;;;;;;;;;;;;;
;; subb a,@Ri (99)
;; subb a,@Ri (99)
        setb c
        setb c
        mov  r0,#126
        mov  r0,#126
        mov  a,#100
        mov  a,#100
        mov  @r0,#10
        mov  @r0,#10
        subb a,@r0    ; 100 - 10 - 1 = 89
        subb a,@r0    ; 100 - 10 - 1 = 89
        jc   fail99
        jc   fail99
        add  a,#167    ; 167 + 89 = 0
        add  a,#167    ; 167 + 89 = 0
        jnz  fail99
        jnz  fail99
        clr  c
        clr  c
        mov  a,#10
        mov  a,#10
        mov  @r0,#100
        mov  @r0,#100
        subb a,@r0    ; 10 - 100 - 0 = 166
        subb a,@r0    ; 10 - 100 - 0 = 166
        jnc  fail99
        jnc  fail99
        add  a,#90     ; 166 + 90 = 0
        add  a,#90     ; 166 + 90 = 0
        jz   done99
        jz   done99
fail99:
fail99:
        mov  P1,#99
        mov  P1,#99
        ljmp failed
        ljmp failed
done99:
done99:
;;;;;;;;;;;;;;;; INST 100 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;; INST 100 ;;;;;;;;;;;;;;;;;;;;;;;
;; subb a,#data (100)
;; subb a,#data (100)
        setb c
        setb c
        mov  a,#100
        mov  a,#100
        subb a,#10    ; 100 - 10 - 1 = 89
        subb a,#10    ; 100 - 10 - 1 = 89
        jc   fail100
        jc   fail100
        add  a,#167    ; 167 + 89 = 0
        add  a,#167    ; 167 + 89 = 0
        jnz  fail100
        jnz  fail100
        clr  c
        clr  c
        mov  a,#10
        mov  a,#10
        subb a,#100   ; 10 - 100 - 0 = 166
        subb a,#100   ; 10 - 100 - 0 = 166
        jnc  fail100
        jnc  fail100
        add  a,#90     ; 166 + 90 = 0
        add  a,#90     ; 166 + 90 = 0
        jz   done100
        jz   done100
fail100:
fail100:
        mov  P1,#100
        mov  P1,#100
        ljmp failed
        ljmp failed
done100:
done100:
;;;;;;;;;;;;;;;; INST 101 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;; INST 101 ;;;;;;;;;;;;;;;;;;;;;;;
;; swap a (101)
;; swap a (101)
        clr  c
        clr  c
        mov  a,#23h
        mov  a,#23h
        swap a
        swap a
        jc   fail101
        jc   fail101
        subb a,#32h
        subb a,#32h
        jnz  fail101
        jnz  fail101
        mov  a,#0C3h
        mov  a,#0C3h
        setb c
        setb c
        swap a
        swap a
        jnc  fail101
        jnc  fail101
  clr  c
  clr  c
        subb a,#3Ch
        subb a,#3Ch
        jz   done101
        jz   done101
fail101:
fail101:
        mov  P1,#101
        mov  P1,#101
        ljmp failed
        ljmp failed
done101:
done101:
;;;;;;;;;;;;;;;; INST 102 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;; INST 102 ;;;;;;;;;;;;;;;;;;;;;;;
;; xch a,Rn (102)
;; xch a,Rn (102)
        mov  a,#10
        mov  a,#10
        mov  r0,#97
        mov  r0,#97
        xch  a,r0
        xch  a,r0
        subb a,#97
        subb a,#97
        jnz  fail102
        jnz  fail102
        mov  a,r0
        mov  a,r0
        subb a,#10
        subb a,#10
        jz   done102
        jz   done102
fail102:
fail102:
        mov  P1,#102
        mov  P1,#102
        ljmp failed
        ljmp failed
done102:
done102:
;;;;;;;;;;;;;;;; INST 103 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;; INST 103 ;;;;;;;;;;;;;;;;;;;;;;;
;; xch a,direct (103)
;; xch a,direct (103)
        mov  a,#10
        mov  a,#10
        mov  127,#99
        mov  127,#99
        xch  a,127
        xch  a,127
        subb a,#99
        subb a,#99
        jnz  fail103
        jnz  fail103
        mov  a,127
        mov  a,127
        subb a,#10
        subb a,#10
        jz   done103
        jz   done103
fail103:
fail103:
        mov  P1,#103
        mov  P1,#103
        ljmp failed
        ljmp failed
done103:
done103:
;;;;;;;;;;;;;;;; INST 104 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;; INST 104 ;;;;;;;;;;;;;;;;;;;;;;;
;; xch a,@Ri (104)
;; xch a,@Ri (104)
        mov  a,#10
        mov  a,#10
        mov  r0,#127
        mov  r0,#127
        mov  127,#99
        mov  127,#99
        xch  a,@r0
        xch  a,@r0
        subb a,#99
        subb a,#99
        jnz  fail104
        jnz  fail104
        mov  a,127
        mov  a,127
        subb a,#10
        subb a,#10
        jz   done104
        jz   done104
fail104:
fail104:
        mov  P1,#104
        mov  P1,#104
        ljmp failed
        ljmp failed
done104:
done104:
;;;;;;;;;;;;;;;; INST 105 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;; INST 105 ;;;;;;;;;;;;;;;;;;;;;;;
;; xchd a,@Ri (105)
;; xchd a,@Ri (105)
        mov  a,#44h
        mov  a,#44h
        mov  r0,#127
        mov  r0,#127
        mov  127,#55h
        mov  127,#55h
        xchd a,@r0
        xchd a,@r0
        subb a,#45h
        subb a,#45h
        jnz  fail105
        jnz  fail105
        mov  a,127
        mov  a,127
        subb a,#54h
        subb a,#54h
        jz   done105
        jz   done105
fail105:
fail105:
        mov  P1,#105
        mov  P1,#105
        ljmp failed
        ljmp failed
done105:
done105:
;;;;;;;;;;;;;;;; INST 106 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;; INST 106 ;;;;;;;;;;;;;;;;;;;;;;;
;; xrl a,Rn (106)
;; xrl a,Rn (106)
        mov  a,#35h
        mov  a,#35h
        mov  r0,#0C3h
        mov  r0,#0C3h
        xrl  a,r0
        xrl  a,r0
        subb a,#0F6h
        subb a,#0F6h
        jz   done106
        jz   done106
        mov  P1,#106
        mov  P1,#106
        ljmp failed
        ljmp failed
done106:
done106:
;;;;;;;;;;;;;;;; INST 107 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;; INST 107 ;;;;;;;;;;;;;;;;;;;;;;;
;; xrl a,direct (107)
;; xrl a,direct (107)
        mov  a,#0C3h
        mov  a,#0C3h
        mov  127,#35h
        mov  127,#35h
        xrl  a,127
        xrl  a,127
        subb a,#0F6h
        subb a,#0F6h
        jz   done107
        jz   done107
        mov  P1,#107
        mov  P1,#107
        ljmp failed
        ljmp failed
done107:
done107:
;;;;;;;;;;;;;;;; INST 108 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;; INST 108 ;;;;;;;;;;;;;;;;;;;;;;;
;; xrl a,@Ri (108)
;; xrl a,@Ri (108)
        mov  a,#35h
        mov  a,#35h
        mov  r0,#127
        mov  r0,#127
        mov  127,#0C3h
        mov  127,#0C3h
        xrl  a,@r0
        xrl  a,@r0
        subb a,#0F6h
        subb a,#0F6h
        jz   done108
        jz   done108
        mov  P1,#108
        mov  P1,#108
        ljmp failed
        ljmp failed
done108:
done108:
;;;;;;;;;;;;;;;; INST 109 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;; INST 109 ;;;;;;;;;;;;;;;;;;;;;;;
;; xrl a,#data (109)
;; xrl a,#data (109)
        mov  a,#35h
        mov  a,#35h
        xrl  a,#0C3h
        xrl  a,#0C3h
        subb a,#0F6h
        subb a,#0F6h
        jz   done109
        jz   done109
        mov  P1,#109
        mov  P1,#109
        ljmp failed
        ljmp failed
done109:
done109:
;;;;;;;;;;;;;;;; INST 110 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;; INST 110 ;;;;;;;;;;;;;;;;;;;;;;;
;; xrl direct,a (110)
;; xrl direct,a (110)
        mov  a,#35h
        mov  a,#35h
        mov  127,#0C3h
        mov  127,#0C3h
        xrl  127,a
        xrl  127,a
        clr  a
        clr  a
        mov  a,127
        mov  a,127
        subb a,#0F6h
        subb a,#0F6h
        jz   done110
        jz   done110
        mov  P1,#110
        mov  P1,#110
        ljmp failed
        ljmp failed
done110:
done110:
;;;;;;;;;;;;;;;; INST 111 ;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;; INST 111 ;;;;;;;;;;;;;;;;;;;;;;;
;; xrl direct,#data (111)
;; xrl direct,#data (111)
        mov  127,#35h
        mov  127,#35h
        xrl  127,#0C3h
        xrl  127,#0C3h
        mov  a,127
        mov  a,127
        subb a,#0F6h
        subb a,#0F6h
        jz   done111
        jz   done111
        mov  P1,#111
        mov  P1,#111
        ljmp failed
        ljmp failed
done111:
done111:
;;;;;;;;;;;;;;;;;  DONE    ;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;  DONE    ;;;;;;;;;;;;;;;;;;;;;;
        mov  P1,#127    ; All instructions passed
        mov  P1,#127    ; All instructions passed
failed:
failed:
  nop;
  nop;
  nop;
  nop;
  sjmp failed;
  sjmp failed;
end
end
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.