66 lines
926 B
NASM
66 lines
926 B
NASM
MOV $FF0000,%SP
|
|
|
|
#Test verious instructions
|
|
MOV $0x0001,%R0l
|
|
MOV $0x0000,%R0h
|
|
MOV $0xBEEF,%R1l
|
|
MOV $0x0000,%R1h
|
|
CALL $SUBROUTINE
|
|
CALL $SUBROUTINE
|
|
CALL $SUBROUTINE
|
|
CALL $SUBROUTINE2
|
|
JMP $END
|
|
:SUBROUTINE
|
|
PUSH %R1
|
|
ADD %R0,%R1
|
|
POP %R1
|
|
RET
|
|
:SUBROUTINE2
|
|
ADD %R0,%R1
|
|
RET
|
|
:END
|
|
|
|
#Test text terminal
|
|
MOV $0xFFFC,%R0l
|
|
MOV $0x00FF,%R0h
|
|
MOV $0x0068,%R1l
|
|
MOV $0x0000,%R1h
|
|
MOV %R1,(%R0)
|
|
MOV $0x0065,%R1l
|
|
MOV %R1,(%R0)
|
|
MOV $0x006c,%R1l
|
|
MOV %R1,(%R0)
|
|
MOV $0x006c,%R1l
|
|
MOV %R1,(%R0)
|
|
MOV $0x006f,%R1l
|
|
MOV %R1,(%R0)
|
|
|
|
# Test Vector Display
|
|
MOV $0xFFFF,%R1l
|
|
MOV $0xFFFF,%R1h
|
|
MOV %R1,(%R0)
|
|
MOV $0x0000,%R1l
|
|
MOV $0x0000,%R1h
|
|
MOV %R1,(%R0)
|
|
MOV $0xcccd,%R1l
|
|
MOV $0xbf4c,%R1h
|
|
MOV %R1,(%R0)
|
|
MOV $0xcccd,%R1l
|
|
MOV $0xbf4c,%R1h
|
|
MOV %R1,(%R0)
|
|
MOV $0xcccd,%R1l
|
|
MOV $0x3f4c,%R1h
|
|
MOV %R1,(%R0)
|
|
|
|
#Test Indirect read/writes
|
|
MOV $0xcccd,%R1l
|
|
MOV $0x3f4c,%R1h
|
|
MOV %R1,(%R0)
|
|
MOV $0x00D0,%R0l
|
|
MOV $0x0000,%R0h
|
|
MOV %R1,(%R0)
|
|
MOV (%R0),%R5
|
|
HALT
|
|
:TR_LOW
|
|
DDW $0xDEADBEEF
|