************************************************************************ * NewBindings.ASM * * This assembly file contains binding routines for the new gadget functions * provided in V1.2 of AmigaDOS. You can use these binding routines * if you have an old version of C compiler, for instance Manx V3.20A * ( Though with a couple minor changes it can be used with the old * MetaComco Assember and Lattice C V3.03 ) ************************************************************************ LIB_VERSION equ $14 _LVOActivateGadget equ -$1CE _LVOActivateWindow equ -$1C2 _LVOAddGList equ -$1B6 _LVORefreshGList equ -$1B0 _LVORemoveGList equ -$1BC _LVOGetScreenData equ -$1AA _LVOAreaEllipse equ -$BA public _ActivateGadget public _ActivateWindow public _AddGList public _RefreshGList public _RemoveGList public _GetScreenData public _AreaEllipse public _IntuitionBase public _GfxBase ************************************************************************* * ActivateGadget(&gadget, p_window, p_requester); * BOOLEAN return true on sucess ************************************************************************* _ActivateGadget: movem.l A2/A6,-(sp) * A6 isn't mandatory w/Manx movem.l 12(sp),A0-A2 * ( but if you toss, adjust to 8! ) move.l _IntuitionBase,A6 cmp #32,LIB_VERSION(A6) * SPECIAL TEST FOR LEGIT V1.2 ble nicht1 jsr _LVOActivateGadget(A6) nicht1: movem.l (sp)+,A2/A6 rts ************************************************************************ * ActivateWindow(p_wind); * ************************************************************************ _ActivateWindow: move.l 4(sp),A0 move.l A6,-(sp) * Not necessary w/Manx move.l _IntuitionBase,A6 cmp #32,LIB_VERSION(A6) * SPECIAL TEST FOR LEGIT V1.2 ble nicht2 jsr _LVOActivateWindow(A6) nicht2: move.l (sp)+,A6 rts ************************************************************************* * AddGList( &gad, p_wind, position, number) * Return value is actual position inserted ************************************************************************* _AddGList: movem.l 4(sp),A0/A1 movem.l 12(sp),D0/D1 move.l A6,-(sp) * Nicht Manx move.l _IntuitionBase,A6 jsr _LVOAddGList(A6) move.l (sp)+,A6 rts ************************************************************************* * RefreshGList( &gad, p_wind, p_requester, number ) * ************************************************************************* _RefreshGList: movem.l A2/A6,-(sp) movem.l 12(sp),A0-A2 move.l $18(sp),D0 move.l _IntuitionBase,A6 jsr _LVORefreshGList(A6) movem.l (sp)+,A2/A6 rts ************************************************************************* * RemoveGList( &gad, p_wind, number); ************************************************************************* _RemoveGList: movem.l 4(sp),A0-A1 move.l 12(sp),D0 move.l A6,-(sp) * Toss w/Manx move.l _IntuitionBase,A6 jsr _LVORemoveGList(A6) move.l (sp)+,A6 rts ************************************************************************* * AreaEllipse( p_rast, xcenter, ycenter, xdel, ydel); * (?) Returns 0 if no error a_la_AreaDraw() ************************************************************************* _AreaEllipse: movem.l D2/D3/A6,-(sp) move.l 16(sp),A1 movem.l 20(sp),D0-D3 move.l _GfxBase,A6 jsr _LVOAreaEllipse(A6) movem.l (sp)+,D2/D3/A6 rts ************************************************************************* * GetScreenData( p_buffer, buffsize, type, p_somescreen); * * Where p_buffer is a data area, sizeof(buffsize) which is * sizeof (struct Screen). type is WBENCHSCREEN or CUSTOMSCREEN * if type = CUSTOM, p_somescreen is the customscreen * Returns buffer containing a cloned_data for the screen requested ************************************************************************* _GetScreenData move.l 4(sp),A0 movem.l 8(sp),D0/D1/A1 move.l A6,-(sp) * Gonzo Manx_a_mania move.l _IntuitionBase,A6 jsr _LVOGetScreenData(A6) move.l (sp)+,A6 rts