         .org 0
         add a,#00
         add a,#h'ff
         add a,@r0
         add a,@r1
         add a,r0           ;test all 8048 opcodes in all configurations
         add a,r1           ;all machine mnemonics copyright Intel corp. 1976
         add a,r2
         add a,r3
         add a,r4
         add a,r5
         add a,r6
         add a,r7
         addc a,#00
         addc a,#h'ff
         addc a,@r0
         addc a,@r1
         addc a,r0
         addc a,r1
         addc a,r2
         addc a,r3
         addc a,r4
         addc a,r5
         addc a,r6
         addc a,r7
         anl a,#00
         anl a,#h'ff
         anl a,@r0
         anl a,@r1
         anl a,r0
         anl a,r1
         anl a,r2
         anl a,r3
         anl a,r4
         anl a,r5
         anl a,r6
         anl a,r7
         anl bus,#00
         anl bus,#h'ff
         anl p1,#00
         anl p2,#h'ff
         anld p4,a
         anld p5,a
         anld p6,a
         anld p7,a
         call farloop
         clr a
         clr c
         clr f0
         clr f1
         cpl a
         cpl c
         cpl f0
         cpl f1
         da a
         dec a
         dec r0
         dec r1
         dec r2
         dec r3
         dec r4
         dec r5
         dec r6
         dec r7
         dis i
         dis tcnti
loop1:   djnz r0,loop1
         djnz r1,loop1
         djnz r2,loop1
         djnz r3,loop1
         djnz r4,loop1
         djnz r5,loop1
         djnz r6,loop1
         djnz r7,loop1
         en i
         en tcnti
         ent0 clk
         in a,p1
         in a,p2
         inc @r0
         inc @r1
         inc a
         inc r0
         inc r1
         inc r2
         inc r3
         inc r4
         inc r5
         inc r6
         inc r7
         ins a,bus
         jb0 loop
         jb1 loop
         jb2 loop
         jb3 loop
loop:    jb4 loop
         jb5 loop
         jb6 loop
         jb7 loop
         jc loop
         jf0 loop
         jf1 loop
         jmp farloop
         jmpp @a
         jnc loop
         jni loop
         jnt0 loop
         jnt1 loop
         jnz loop
         jt0 loop
         jt1 loop
         jtf loop
         jz loop
         mov @r0,#h'00
         mov @r0,#h'ff
         mov @r0,a
         mov @r1,#h'00
         mov @r1,#h'ff
         mov @r1,a
         mov a,#h'00
         mov a,#h'ff
         mov a,@r0
         mov a,@r1
         mov a,psw
         mov a,r0
         mov a,r1
         mov a,r2
         mov a,r3
         mov a,r4
         mov a,r5
         mov a,r6
         mov a,r7
         mov a,t
         mov psw,a
         mov r0,#h'00
         mov r0,#h'ff
         mov r0,a
         mov r1,#h'00
         mov r1,#h'ff
         mov r1,a
         mov r2,#h'00
         mov r2,#h'ff
         mov r2,a
         mov r3,#h'00
         mov r3,#h'ff
         mov r3,a
         mov r4,#h'00
         mov r4,#h'ff
         mov r4,a
         mov r5,#h'00
         mov r5,#h'ff
         mov r5,a
         mov r6,#h'00
         mov r6,#h'ff
         mov r6,a
         mov r7,#h'00
         mov r7,#h'ff
         mov r7,a
         mov t,a
         movd a,p4
         movd a,p5
         movd a,p6
         movd a,p7
         movd p4,a
         movd p5,a
         movd p6,a
         movd p7,a
         movp a,@a
         movp3 a,@a
         movx @r0,a
         movx @r1,a
         movx a,@r0
         movx a,@r1
         nop
         orl a,#00
         orl a,#h'ff
         orl a,@r0
         orl a,@r1
         orl a,r0
         orl a,r1
         orl a,r2
         orl a,r3
         orl a,r4
         orl a,r5
         orl a,r6
         orl a,r7
         orl bus,#00
         orl bus,#h'ff
         orl p1,#00
         orl p2,#h'ff
         orld p4,a
         orld p5,a
         orld p6,a
         orld p7,a
         outl bus,a
         outl p1,a
         outl p2,a
         ret
         retr
         rl a
         rlc a
         rr a
         rrc a
         sel mb0
         sel mb1
         sel rb0
         sel rb1
         stop tcnt
         strt cnt
         strt t
         swap a
         xch a,@r0
         xch a,@r1
         xch a,r0
         xch a,r1
         xch a,r2
         xch a,r3
         xch a,r4
         xch a,r5
         xch a,r6
         xch a,r7
         xchd a,@r0
         xchd a,@r1
         xrl a,#00
         xrl a,#h'ff
         xrl a,@r0
         xrl a,@r1
         xrl a,r0
         xrl a,r1
         xrl a,r2
         xrl a,r3
         xrl a,r4
         xrl a,r5
         xrl a,r6
         xrl a,r7
synctst1:
         add a,#forward2
         add a,#forward1
         add a,@r0
         add a,@r1
         add a,r0
         add a,r1
         add a,r2
         add a,r3
         add a,r4
         add a,r5
         add a,r6
         add a,r7
         addc a,#forward2
         addc a,#forward1
         addc a,@r0
         addc a,@r1
         addc a,r0
         addc a,r1
         addc a,r2
         addc a,r3
         addc a,r4
         addc a,r5
         addc a,r6
         addc a,r7
         anl a,#forward2
         anl a,#forward1
         anl a,@r0
         anl a,@r1
         anl a,r0
         anl a,r1
         anl a,r2
         anl a,r3
         anl a,r4
         anl a,r5
         anl a,r6
         anl a,r7
         anl bus,#forward2
         anl bus,#forward1
         anl p1,#forward2
         anl p2,#forward1
         anld p4,a
         anld p5,a
         anld p6,a
         anld p7,a
         call farloop
         clr a
         clr c
         clr f0
         clr f1
         cpl a
         cpl c
         cpl f0
         cpl f1
         da a
         dec a
         dec r0
         dec r1
         dec r2
         dec r3
         dec r4
         dec r5
         dec r6
         dec r7
         dis i
         dis tcnti
loop2:   djnz r0,loop2
         djnz r1,loop2
         djnz r2,loop2
         djnz r3,loop2
         djnz r4,loop2
         djnz r5,loop2
         djnz r6,loop2
         djnz r7,loop2
         en i
         en tcnti
         ent0 clk
         in a,p1
         in a,p2
         inc @r0
         inc @r1
         inc a
         inc r0
         inc r1
         inc r2
         inc r3
         inc r4
         inc r5
         inc r6
         inc r7
         ins a,bus
loop3:   jb0 loop3
         jb1 loop3
         jb2 loop3
         jb3 loop3
         jb4 loop3
         jb5 loop3
         jb6 loop3
         jb7 loop3
         jc loop3
         jf0 loop3
         jf1 loop3
         jmp farloop
         jmpp @a
         jnc loop3
         jni loop3
         jnt0 loop3
         jnt1 loop3
         jnz loop3
         jt0 loop3
         jt1 loop3
         jtf loop3
         jz loop3
         mov @r0,#forward2
         mov @r0,#forward1
         mov @r0,a
         mov @r1,#forward2
         mov @r1,#forward1
         mov @r1,a
         mov a,#forward2
         mov a,#forward1
         mov a,@r0
         mov a,@r1
         mov a,psw
         mov a,r0
         mov a,r1
         mov a,r2
         mov a,r3
         mov a,r4
         mov a,r5
         mov a,r6
         mov a,r7
         mov a,t
         mov psw,a
         mov r0,#forward2
         mov r0,#forward1
         mov r0,a
         mov r1,#forward2
         mov r1,#forward1
         mov r1,a
         mov r2,#forward2
         mov r2,#forward1
         mov r2,a
         mov r3,#forward2
         mov r3,#forward1
         mov r3,a
         mov r4,#forward2
         mov r4,#forward1
         mov r4,a
         mov r5,#forward2
         mov r5,#forward1
         mov r5,a
         mov r6,#forward2
         mov r6,#forward1
         mov r6,a
         mov r7,#forward2
         mov r7,#forward1
         mov r7,a
         mov t,a
         movd a,p4
         movd a,p5
         movd a,p6
         movd a,p7
         movd p4,a
         movd p5,a
         movd p6,a
         movd p7,a
         movp a,@a
         movp3 a,@a
         movx @r0,a
         movx @r1,a
         movx a,@r0
         movx a,@r1
         nop
         orl a,#forward2
         orl a,#forward1
         orl a,@r0
         orl a,@r1
         orl a,r0
         orl a,r1
         orl a,r2
         orl a,r3
         orl a,r4
         orl a,r5
         orl a,r6
         orl a,r7
         orl bus,#forward2
         orl bus,#forward1
         orl p1,#forward2
         orl p2,#forward1
         orld p4,a
         orld p5,a
         orld p6,a
         orld p7,a
         outl bus,a
         outl p1,a
         outl p2,a
         ret
         retr
         rl a
         rlc a
         rr a
         rrc a
         sel mb0
         sel mb1
         sel rb0
         sel rb1
         stop tcnt
         strt cnt
         strt t
         swap a
         xch a,@r0
         xch a,@r1
         xch a,r0
         xch a,r1
         xch a,r2
         xch a,r3
         xch a,r4
         xch a,r5
         xch a,r6
         xch a,r7
         xchd a,@r0
         xchd a,@r1
         xrl a,#forward2
         xrl a,#forward1
         xrl a,@r0
         xrl a,@r1
         xrl a,r0
         xrl a,r1
         xrl a,r2
         xrl a,r3
         xrl a,r4
         xrl a,r5
         xrl a,r6
         xrl a,r7
         .equ forward1,h'ff
         .equ forward2,h'00
synctst2:
farloop:
         .end
