;
; group e, test 1
;
; 8-bit memory stores
;

m4_include(..\tmacros.h)

INIT_TEST(e,0x01)

; declare symbols here
SYM(next0)
SYM(next1)
SYM(next2)
SYM(next3)
SYM(next4)
SYM(next5)
SYM(next6)
SYM(next7)
SYM(next8)
SYM(next9)

; set up data

    ld.16    a,0x6000
    ld.16    b,0x0000
    st.8     0(a),b
    st.16    2(a),b

; Begin test here

SUBTEST(1)

;   DP w/ 16-bit offset

    ld.16   b,0x6000
    lea	    a,-513(b)
    copy    dp,a
    ld.8    a,0x80
    st.8    513(dp),a
    ld.8    a,0xff
    ld.8    a,513(dp)
    cmpb.eq.8	a,0x80,next0
    FAIL

next0:

SUBTEST(2)
    ld.16   a,0x6000
    lea	    a,-513(a)
    copy    dp,a
    ld.8    b,0x80
    st.8    513(dp),b
    ld.8    a,513(dp)
    cmpb.eq.8	a,0x80,next1
    FAIL

next1:

SUBTEST(3)

;   SP w/ 8-bit offset
;   NOTE: restore SP to 0x7000 after

    ld.16   a,0x6000
    lea	    a,-122(a)
    copy    sp,a
    ld.8    a,0x7f
    st.8    122(sp),a
    ld.8    a,0x00
    ld.8    a,122(sp)
    cmpb.eq.8	a,0x7f,next2
    FAIL

next2:
    ld.16   a,0x7000
    copy    sp,a

SUBTEST(4)
    ld.16   a,0x6000
    lea	a,-13(a)
    copy    sp,a
    ld.8    b,0x01
    st.8    13(sp),b
    ld.8    a,13(sp)
    cmpb.eq.8	a,0x01,next3
    FAIL

next3:
    ld.16   a,0x7000
    copy    sp,a

SUBTEST(5)
    ld.16   a,0x6000
    lea	    a,-100(a)
    ld.8    b,0x80
    st.8    100(a),b
    ld.8    a,100(a)
    cmpb.eq.8	a,0x80,next4
    FAIL

next4:

SUBTEST(6)
    ld.16   a,0x6000
    lea	    b,-100(a)
    ld.8    a,0x80
    st.8    100(b),a
    ld.8    a,100(b)
    cmpb.eq.8	a,0x80,next5
    FAIL

next5:

SUBTEST(7)
    ld.16   b,0x6000
    lea	    a,-44(b)
    ld.8    b,0x7f
    st.8    44(a),b
    ld.8    a,44(a)
    cmpb.eq.8	a,0x7f,next6
    FAIL

next6:

SUBTEST(8)
    ld.16   b,0x6000
    lea	    b,-44(b)
    ld.8    a,0x7f
    st.8    44(b),a
    ld.8    a,44(b)
    cmpb.eq.8	a,0x7f,next7
    FAIL

next7:

SUBTEST(9)
    ld.16   a,0x6000
    copy    b,a
    st.8    0(a),a
    copy    a,b
    ld.16   b,0x6000
    cmpb.eq.8	a,0(b),next8
    FAIL
next8:

SUBTEST(10)
    ld.16   b,0x6000
    copy    a,b
    st.8    0(b),b
    cmpb.eq.8	a,0(b),next9
    FAIL
next9:

    

;   Finally, when done branch to pass
    END_TEST
