home *** CD-ROM | disk | FTP | other *** search
- ;==================================================================
- ;===
- ;=== Name: ConGlue.asm
- ;===
- ;=== Author: Bjørn Reese & Michael Berg
- ;===
- ;=== Glue code for 'con.library'
- ;===
- ;==================================================================
-
- XREF _ConBase
-
- ;--- First the _LVO's ---------------------------------------------
-
- _LVOOpenCon EQU -30
- _LVOCloseCon EQU -36
- _LVODoFormat EQU -42
- _LVOUserNotes EQU -48
- _LVODefineChars EQU -54
- _LVODisplayRaw EQU -60
- _LVODisplay EQU -66
- _LVOAccept EQU -72
- _LVOAcceptString EQU -78
- _LVOSetMsgHandler EQU -84
- _LVOGetInfo EQU -90
- _LVOSetGfx EQU -96
- _LVOGotoXY EQU -102
- _LVOCursor EQU -108
- _LVOScroll EQU -114
- _LVOConvert EQU -120
-
- ;--- Custom Macro -------------------------------------------------
-
- CALLCON: MACRO
- move.l a6,-(sp)
- move.l _ConBase,a6
- jsr _LVO\1(a6)
- move.l (sp)+,a6
- rts
- ENDM
-
- ;--- The glue code itself -----------------------------------------
-
- XDEF _OpenCon
- _OpenCon:
- move.l 4(sp),a0 ; ConWindow
- move.l 8(sp),d0 ; CursorMode
- CALLCON OpenCon
-
- XDEF _CloseCon
- _CloseCon:
- move.l 4(sp),a0 ; ConHandle
- CALLCON CloseCon
-
- XDEF _DoFormat
- _DoFormat:
- movem.l a2/a3/a6,-(sp)
- movem.l 12+4(sp),a0-a3 ; ConHandle, String, FormatArgs, TextBuffer
- move.l 12+20(sp),d0 ; BufferSize
- move.l _ConBase,a6
- jsr _LVODoFormat(a6)
- movem.l (sp)+,a2/a3/a6
- rts
-
- XDEF _UserNotes
- _UserNotes:
- move.l 4(sp),a0 ; ConHandle
- move.l 8(sp),a1 ; UserText
- move.w 12(sp),d0 ; NoteNumber
- CALLCON UserNotes
-
- XDEF _DefineChars
- _DefineChars:
- move.w 4(sp),d0 ; Mode
- move.l 6(sp),a1 ; BitTable
- move.l 10(sp),a2 ; ArrayOfChars
- CALLCON DefineChars
-
- XDEF _DisplayRaw
- _DisplayRaw:
- move.l 4(sp),a0 ; ConHandle
- move.l 8(sp),a1 ; String
- move.l 12(sp),d0 ; MaxLength
- CALLCON DisplayRaw
-
- XDEF _Display
- _Display:
- movem.l a2/a6,-(sp)
- movem.l 8+4(sp),a0/a1/a2 ; ConHandle, String, FormatArgs
- move.l 8+16(sp),d0 ; MaxLength
- move.l _ConBase,a6
- jsr _LVODisplay(a6)
- movem.l (sp)+,a2/a6
- rts
-
- XDEF _Accept
- _Accept:
- move.l 4(sp),a0 ; ConHandle
- move.l 8(sp),a1 ; AcceptStructure
- move.l 12(sp),d0 ; Flags
- CALLCON Accept
-
- XDEF _AcceptString
- _AcceptString:
- move.l 4(sp),a0 ; ConHandle
- move.l 8(sp),a1 ; AcceptStructure
- move.l 12(sp),d0 ; Flags
- CALLCON AcceptString
-
- XDEF _SetMsgHandler
- _SetMsgHandler:
- move.l 4(sp),a0 ; ConHandle
- move.l 8(sp),a1 ; NewMsgHandler
- CALLCON SetMsgHandler
-
- XDEF _GetInfo
- _GetInfo:
- move.l 4(sp),a0 ; ConHandle
- move.l 8(sp),a1 ; ConInfo
- CALLCON GetInfo
-
- XDEF _SetGfx
- _SetGfx:
- movem.l d2/a6,-(sp)
- move.l 8+4(sp),a0 ; ConHandle
- movem.w 8+8(sp),d0/d1/d2 ; Styles, FgCol, BgCol
- move.l _ConBase,a6
- jsr _LVOSetGfx(a6)
- movem.l (sp)+,d2/a6
- rts
-
- XDEF _GotoXY
- _GotoXY:
- move.l 4(sp),a0 ; ConHandle
- movem.w 8(sp),d0/d1 ; X, Y
- CALLCON GotoXY
-
- XDEF _Cursor
- _Cursor:
- move.l 4(sp),a0 ; ConHandle
- move.w 8(sp),d0 ; Mode
- CALLCON Cursor
-
- XDEF _Scroll
- _Scroll:
- move.l 4(sp),a0 ; ConHandle
- move.w 8(sp),d0 ; Step
- CALLCON Scroll
-
- XDEF _Convert
- _Convert:
- movem.l a2/a6,-(sp)
- move.l 8+4(sp),a1 ; String
- move.l 8+8(sp),a2 ; ResultBuffer
- move.l 8+12(sp),d0 ; Flags
- move.w 8+16(sp),d1 ; MaxLength
- move.l _ConBase,a6
- jsr _LVOConvert(a6)
- movem.l (sp)+,a2/a6
- rts
-
- END
-