First/test.asm

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