**********************************************************************************
*assorted low level assembly support routines used by the sample Library & Device*
**********************************************************************************
CLEAR MACRO ;quick way to clear a D register on 68000
MOVEQ #0,\1
ENDM
LINKSYS MACRO ; link to a library without having to see a _LVO
MOVE.L A6,-(SP)
MOVE.L \2,A6
JSR _LVO\1(A6)
MOVE.L (SP)+,A6
ENDM
CALLSYS MACRO ; call a library via A6 without having to see _LVO
JSR _LVO\1(A6)
ENDM
XLIB MACRO ; define a library reference without the _LVO
XREF _LVO\1
ENDM
;
; Put a message to the serial port at 9600 baud. Used as so:
;
; PUTMSG 30,<'%s/Init: called'>
;
; Parameters can be printed out by pushing them on the stack and
; adding the appropriate C printf-style % formatting commands.
;
XREF KPutFmt
PUTMSG: MACRO * level,msg
IFGE INFO_LEVEL-\1
PEA subSysName(PC)
MOVEM.L A0/A1/D0/D1,-(SP)
LEA msg\@(pc),A0 ;Point to static format string
LEA 4*4(SP),A1 ;Point to args
JSR KPutFmt
MOVEM.L (SP)+,D0/D1/A0/A1
ADDQ.L #4,SP
BRA.S end\@
msg\@ DC.B \2
DC.B 10
DC.B 0
DS.W 0
end\@
ENDC
ENDM
[Back to Amiga Developer Docs]