
        mov     p1, #0
        mov     tmod, #1        ; T0: Mode 1
        setb    tr0             ; run TR0

        mov     r0, #0F0h
m1:     mov     tl0, r0
        mov     th0, #0
        mul     ab              ; 4 cycle delay

        clr     a
        xch     a, tl0          ; read and clear simultaneous !!!
        mov     r7, a
        mov     r6, th0

        cjne    r6, #0, m2      ; >= 256
        cjne    r7, #0F0h, m3
m3:     jnc     m4              ; >= 0F0h
        setb    p1.4            ; error, val < 000F0h
        sjmp    m4
m2:     cjne    r7, #020h, m5
m5:     jc      m4
        setb    p1.5            ; error, val > 00120h
m4:     inc     r0
        cjne    r0, #0FCh, m1

        mov     r0, #0F0h
m11:    mov     tl0, r0
        mov     th0, #0
        mul     ab              ; 4 cycle delay

        mov     a, tl0          ; read
        mov     tl0, #0         ; clear to late !!!
        mov     r7, a
        mov     r6, th0

        cjne    r6, #0, m12     ; >= 256
        cjne    r7, #0F0h, m13
m13:    jnc     m14             ; >= 0F0h
        setb    p1.6            ; error, val < 000F0h
        sjmp    m14
m12:    cjne    r7, #020h, m15
m15:    jc      m14
        setb    p1.7            ; error, val > 00120h
m14:    inc     r0
        cjne    r0, #0FCh, m11

        sjmp    $
end
