28 lines
448 B
ArmAsm
28 lines
448 B
ArmAsm
#
|
|
#include "asm.h"
|
|
|
|
! Prints a \0-terminated string.
|
|
|
|
.define _cpm_printstring0
|
|
_cpm_printstring0:
|
|
pop h ! pop return address
|
|
pop d ! pop parameter (possibly junk)
|
|
push d
|
|
push h
|
|
|
|
.1:
|
|
ldax d ! fetch byte
|
|
ora a
|
|
rz ! exit if zero
|
|
inx d
|
|
|
|
push b ! save FP as the BDOS will corrupt it
|
|
push d
|
|
mov e, a
|
|
mvi c, 2 ! conout
|
|
call 0x0005
|
|
pop d
|
|
pop b
|
|
|
|
jmp .1
|