*
* Program to repeatedly display "Hello, World!" on the
* Motorola 68000
*
* Written by Stephane Brunet, Computer Engineering student
* at Concordia University, Montreal, Canada.
*
* s_brunet@ece.concordia.ca
*
org $1000
;Main function: use a jump to this address from debugger...
main
move.l #str,a0 ;load A0 register with address of string
movem.l a0,-(sp) ;push address of string on stack
bsr _puts ;branch to subroutine "_puts"
bra main ;keep looping!
org $2000
str dc.b 'Hello, World!',10,0
org $3000
******
_puts ;Like C/C++ puts function (LF added)
****** ;returns nothing
;save regs
movem.l d0-d1/d7/a0/a5/a6,-(sp)
move.l 28(sp),a5 ;get address of string from stack
;find end of string
move.l a5,a6
1$ move.b (a6)+,d0 ;get next char of string
cmp.b #0,d0 ;is it a null?
beq 2$ ; yes, found end of string
jmp 1$ ; no, so keep looping
2$ subq #1,a6 ;don't print the null
move.w #227,d7 ;call out1cr trap
trap #14
;retore regs & return
movem.l (sp)+,d0-d1/d7/a0/a5/a6
rts
;end _puts
END
submitted by: Stephane Brunet