ttl"Hello world program in Assembly Language"
;
;===================================================================
;Documentation Assignment on MOTOROLA by Alvin Pon
;Hey, don't blame me if this doesn't work! I can't test it!!
;
;This can be tested with DevPac 3 and DevPac Lite.
;
;Can I just warn you that this will run only on an
;Amiga - a machine that is not well known nowadays and
;something which I respect Motorola for.
;At least I can say I can multitask on an A1200 (14MHz)
;with 2Mb of RAM, Workbench 3.0 and AmigaDOS! {:-)
;A Pentium Pro (200Mhz) can boast about multitasking
;with 32Mb RAM and "essential", "efficient" Windows 95! {:-P
;So the only person I do not want to say "Hello!" to in
;this world is... you can take a stab in the dark...
;
;And before anyone even thinks of flaming me, I own a relatively
;powerful PC. I spent a bomb upgrading it because it went out
;of date THREE months after I bought it: 8Mb RAM and multimedia
;became a "standard"! Oh sorry, this is supposed to be an assignment.
;Ah yes... the program...
;====================================================================
section HelloWorld,code
;
ENTRY_POINT: bra.s START ; Call start of program.
;
; ---- Embedded version string: ....
VERSION: dc.b 0,"$VER: hello.asm 1.00 (11.1.97)",0
;
; ---- Include files ....
incdir "inc:"
include "exec/exec.i"
include "exec/funcdef.i" ; You may not need this.
include "exec/exec_lib.i"
include "dos/dos.i"
include "dos/dos_lib.i"
;
; ---- Equates ....
_EXECBASE: equ$04 ;exec.library base.
;
; ---- Macro Definitions ....
SYS: macro
move.1 _EXECBASE,a6
jsr_LVO\1(a6) ; exec.library access macro
endm
DOS: macro
move.1 DosBase,a6
jsr_LVO\1(a6) ; dos.library access macro
endm
;
; ---- Main Program: ....
START: leaDosName(pc),a1
move.1 #$00,d0 ; We're not fussed which version
SYSOpenLibrary
move.1 d0,DosBase
beqEXIT ; No dos, amazing. Abort.
;
; ---- Find output channel for CLI/Shell window ....
DOSOutput
;
; ---- Show our string ....
move.1 d0,d1 ; Set channel to shell/CLI
leaOutputString(pc),a0
move.1 a0,d2
move.1 #OutputString_END-OutputString,d3
DOSWrite
;
; ---- Close dos.library and exit ....
move.1 DosBase,a1
SYSCloseLibrary
;
; ---- Now quit this program ....
EXIT: moveq #00,d0 ; Exit program, no error.
rts
;
; ---- Data for this program ....
DosBase: dc.1 0 ;Space for dos library base
DosName: dcb.b "dos.library",0 ;Dos library name
;
OutputString: dc.b "Hello World!",10
OutputString_END;
;
; *** END OF PROGRAM ***
A.T.Pon@cs.cf.ac.uk