home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fish 'n' More 2
/
fishmore-publicdomainlibraryvol.ii1991xetec.iso
/
disks
/
disk393.lzh
/
LibTool
/
AsmSimple
/
SimpleApp.asm
< prev
Wrap
Assembly Source File
|
1990-10-28
|
2KB
|
99 lines
;**************************************************************************
; SimpleApp.asm
;
; This is an application which tests our "simple.library" assembly example.
; It opens the simple.library, and calls each of the functions with some
; args. It prints results to the CLI. Then, it close the lib and exits.
;
;Link as follows:
;Blink startup.o simpleapp.o small.lib nodebug to TEST
INCLUDE "Simple.i" ;our asm INCLUDE file made by LibTool (-a option)
;from StartUp.o
XREF _DOSBase,_SysBase,_stdout
;from amiga.lib or small.lib
XREF _LVORawDoFmt,_LVOWrite,_LVOOpenLibrary,_LVOCloseLibrary
XDEF _main
_main:
;--- Open our simple.library
lea SimpleName,a1
moveq #simpleVERSION,d0 ;from the INCLUDE file
movea.l _SysBase,a6
jsr _LVOOpenLibrary(a6)
lea NoSimple,a0
move.l d0,d7
beq.s printf
;--- Call Add2Numbers and print results
moveq #2,d0
moveq #3,d1
movea.l d7,a6
jsr _LVOAdd2Numbers(a6) ;2+3
lea AddAnswer,a0
move.l d0,-(sp)
bsr.s printf
addq.l #4,sp
;--- Call Sub2Numbers and print results
moveq #10,d0
moveq #4,d1
movea.l d7,a6
jsr _LVOSub2Numbers(a6) ;10-4
lea SubAnswer,a0
move.l d0,-(sp)
bsr.s printf
addq.l #4,sp
;--- Call Mult2Numbers and print results
moveq #8,d0
moveq #8,d1
movea.l d7,a6
jsr _LVOMult2Numbers(a6) ;8*8
lea MultAnswer,a0
move.l d0,-(sp)
bsr.s printf
addq.l #4,sp
;--- Close simple.library and exit
movea.l d7,a1
movea.l _SysBase,a6
jmp _LVOCloseLibrary(a6)
XDEF printf
printf:
move.l _stdout,d0
beq.s 3$
lea 4(sp),a1 ;args to format (if any)
movem.l d2/d3/a2/a3/a4/a6,-(sp)
movea.l d0,a4
moveq #126,d0
suba.l d0,sp ;get a buffer to hold the string
lea storeIt,a2
movea.l sp,a3
movea.l _SysBase,a6
jsr _LVORawDoFmt(a6)
moveq #-1,d3
1$ move.b (a3)+,d0
Dbeq d3,1$(pc)
not.l d3
beq.s 2$
move.l sp,d2
move.l a4,d1
movea.l _DOSBase,a6
jsr _LVOWrite(a6)
2$ moveq #126,d0
adda.l d0,sp
movem.l (sp)+,d2/d3/a2/a3/a4/a6
3$ rts
storeIt move.b d0,(a3)+
rts
SimpleName dc.b 'simple.library',0
NoSimple dc.b 'can',$27,'t get simple.library in LIBS',10,0
AddAnswer dc.b '2 + 3 = %ld',10,0
SubAnswer dc.b '10 - 4 = %ld',10,0
MultAnswer dc.b '8 * 8 = %ld',10,0
END