#/bin/sh
. Common

asm "ASL A (inside A)" <<EOF
	asl	a
	halt
EOF
sim <<EOF
a = 4
run
a
CPU_F_Carry
CPU_F_Zero
.
@
EOF
expect <<EOF
HALT
0x8 8
0x0 0
0x0 0
0x2 2
0xd 13
EOF

asm "ASL A (into A[7])" <<EOF
	asl	a
	halt
EOF
sim <<EOF
a = 64
run
a
CPU_F_Carry
CPU_F_Zero
.
@
EOF
expect <<EOF
HALT
0x80 128
0x0 0
0x0 0
0x2 2
0xd 13
EOF

asm "ASL [expr] (into carry)" <<EOF
	asl	[20]
	halt
EOF
sim <<EOF
[20] = 0x80
run
[20]
CPU_F_Carry
CPU_F_Zero
.
@
EOF
expect <<EOF
HALT
0x0 0
0x1 1
0x1 1
0x3 3
0x10 16
EOF

asm "ASL [X+expr] (carry is set)" <<EOF
	asl	[x+255]
	halt
EOF
sim <<EOF
x = 11
[10] = 48
CPU_F_Carry = 1
run
[10]
CPU_F_Carry
CPU_F_Zero
.
@
EOF
expect <<EOF
HALT
0x60 96
0x0 0
0x0 0
0x3 3
0x11 17
EOF
