53 lines
1 KiB
PHP
53 lines
1 KiB
PHP
# MACRO: exit
|
|
.macro exit nr
|
|
ldd # \nr
|
|
# The debug insn class.
|
|
.byte 0xcd
|
|
# The exit utility function.
|
|
.byte 0x03
|
|
.endm
|
|
|
|
# MACRO: pass
|
|
# Write 'pass' to stdout and quit
|
|
.macro pass
|
|
# Point to the string.
|
|
# NB: See comment above _pass below.
|
|
ldx #0x8000
|
|
# Number of bytes to write.
|
|
ldd #5
|
|
# The debug insn class.
|
|
.byte 0xcd
|
|
# The write utility function.
|
|
.byte 0x01
|
|
exit 0
|
|
.endm
|
|
|
|
# MACRO: ffail
|
|
# Write 'ffail' to stdout and quit
|
|
# Normally this would be 'fail', but m68k has a pseudo "fail" op.
|
|
.macro ffail
|
|
# Point to the string.
|
|
ldx #0x8006
|
|
# Number of bytes to write.
|
|
ldd #5
|
|
# The debug insn class.
|
|
.byte 0xcd
|
|
# The write utility function.
|
|
.byte 0x01
|
|
exit 0
|
|
.endm
|
|
|
|
# MACRO: start
|
|
# All assembler tests should start with a call to "start"
|
|
.macro start
|
|
.text
|
|
# These need to be at the start of text as it's the only stable address.
|
|
# The sim will load all sections starting at the .text address and ignore
|
|
# the addresses for the other sections.
|
|
_pass:
|
|
.asciz "pass\n"
|
|
_fail:
|
|
.asciz "fail\n"
|
|
.global _start
|
|
_start:
|
|
.endm
|