mirror of https://github.com/deadw00d/AROS.git
Complete calculator shutdown
NOTE: memory gets damaged somewhere and any operation after shutdown, like opening RAM: window for example causes crash
This commit is contained in:
parent
909d02e309
commit
f9e636ee69
|
@ -52,6 +52,12 @@ APTR abiv0_CreatePool(ULONG requirements, ULONG puddleSize, ULONG threshSize, st
|
|||
}
|
||||
MAKE_PROXY_ARG_4(CreatePool)
|
||||
|
||||
void abiv0_DeletePool(APTR poolHeader, struct ExecBaseV0 *SysBaseV0)
|
||||
{
|
||||
DeletePool(poolHeader);
|
||||
}
|
||||
MAKE_PROXY_ARG_2(DeletePool)
|
||||
|
||||
APTR abiv0_AllocPooled(APTR poolHeader, ULONG memSize, struct ExecBaseV0 *SysBaseV0)
|
||||
{
|
||||
return AllocPooled(poolHeader, memSize);
|
||||
|
@ -248,17 +254,32 @@ asm("int3");
|
|||
}
|
||||
MAKE_PROXY_ARG_4(OpenDevice)
|
||||
|
||||
void abiv0_CloseDevice(struct IORequestV0 *iORequest, struct ExecBaseV0 *SysBaseV0)
|
||||
{
|
||||
bug("abiv0_CloseDevice: STUB\n");
|
||||
}
|
||||
MAKE_PROXY_ARG_2(CloseDevice)
|
||||
|
||||
struct MsgPortV0 * abiv0_CreateMsgPort(struct ExecBaseV0 *SysBaseV0)
|
||||
{
|
||||
struct MsgPortProxy *proxy = abiv0_AllocMem(sizeof(struct MsgPortProxy), MEMF_CLEAR, SysBaseV0);
|
||||
struct MsgPort *native = CreateMsgPort();
|
||||
|
||||
proxy->base.mp_SigBit = native->mp_SigBit;
|
||||
NEWLISTV0(&proxy->base.mp_MsgList);
|
||||
|
||||
proxy->native = native;
|
||||
|
||||
return (struct MsgPortV0 *)proxy;
|
||||
}
|
||||
MAKE_PROXY_ARG_1(CreateMsgPort)
|
||||
|
||||
void abiv0_DeleteMsgPort(struct MsgPortV0 * port, struct ExecBaseV0 *SysBaseV0)
|
||||
{
|
||||
struct MsgPortProxy *proxy = (struct MsgPortProxy *)port;
|
||||
DeleteMsgPort(proxy->native);
|
||||
}
|
||||
MAKE_PROXY_ARG_2(DeleteMsgPort)
|
||||
struct MessageV0 * abiv0_GetMsg(struct MsgPortV0 *port, struct ExecBaseV0 *SysBaseV0)
|
||||
{
|
||||
struct MsgPortProxy *proxy = (struct MsgPortProxy *)port;
|
||||
|
@ -399,6 +420,10 @@ struct ExecBaseV0 *init_exec()
|
|||
__AROS_SETVECADDRV0(abiv0SysBase, 62, (APTR32)(IPTR)proxy_GetMsg);
|
||||
__AROS_SETVECADDRV0(abiv0SysBase, 53, (APTR32)(IPTR)proxy_Wait);
|
||||
__AROS_SETVECADDRV0(abiv0SysBase, 63, (APTR32)(IPTR)proxy_ReplyMsg);
|
||||
__AROS_SETVECADDRV0(abiv0SysBase,117, (APTR32)(IPTR)proxy_DeletePool);
|
||||
__AROS_SETVECADDRV0(abiv0SysBase,112, (APTR32)(IPTR)proxy_DeleteMsgPort);
|
||||
__AROS_SETVECADDRV0(abiv0SysBase, 75, (APTR32)(IPTR)proxy_CloseDevice);
|
||||
__AROS_SETVECADDRV0(abiv0SysBase,110, execfunctable[109]); // DeleteIORequest
|
||||
|
||||
return abiv0SysBase;
|
||||
}
|
||||
|
|
|
@ -51,6 +51,12 @@ bug("abiv0_OpenFont: STUB\n");
|
|||
}
|
||||
MAKE_PROXY_ARG_3(OpenFont)
|
||||
|
||||
void abiv0_CloseFont(APTR textFont, struct GfxBaseV0 *GfxBaseV0)
|
||||
{
|
||||
bug("abiv0_CloseFont: STUB\n");
|
||||
}
|
||||
MAKE_PROXY_ARG_3(CloseFont)
|
||||
|
||||
LONG abiv0_ObtainBestPenA(struct ColorMapV0 *cm, ULONG r, ULONG g, ULONG b, struct TagItemV0 *tags, struct LibraryV0 *GfxBaseV0)
|
||||
{
|
||||
struct ColorMapProxy *proxy = (struct ColorMapProxy *)cm;
|
||||
|
@ -81,6 +87,13 @@ asm("int3");
|
|||
}
|
||||
MAKE_PROXY_ARG_6(ObtainBestPenA)
|
||||
|
||||
void abiv0_ReleasePen(struct ColorMapV0 *cm, ULONG n, struct GfxBaseV0 *GfxBaseV0)
|
||||
{
|
||||
struct ColorMapProxy *proxy = (struct ColorMapProxy *)cm;
|
||||
ReleasePen(proxy->native, n);
|
||||
}
|
||||
MAKE_PROXY_ARG_3(ReleasePen)
|
||||
|
||||
void abiv0_SetDrMd(struct RastPortV0 *rp, ULONG drawMode, struct GfxBaseV0 *GfxBaseV0)
|
||||
{
|
||||
struct RastPort *rpnative = (struct RastPort *)*(IPTR *)&rp->longreserved;
|
||||
|
@ -203,4 +216,6 @@ void init_graphics(struct ExecBaseV0 *SysBaseV0)
|
|||
__AROS_SETVECADDRV0(abiv0GfxBase, 10, (APTR32)(IPTR)proxy_Text);
|
||||
__AROS_SETVECADDRV0(abiv0GfxBase, 87, (APTR32)(IPTR)proxy_ClearRectRegion);
|
||||
__AROS_SETVECADDRV0(abiv0GfxBase, 54, (APTR32)(IPTR)proxy_WritePixel);
|
||||
__AROS_SETVECADDRV0(abiv0GfxBase, 158, (APTR32)(IPTR)proxy_ReleasePen);
|
||||
__AROS_SETVECADDRV0(abiv0GfxBase, 13, (APTR32)(IPTR)proxy_CloseFont);
|
||||
}
|
||||
|
|
|
@ -63,6 +63,13 @@ bug("abiv0_LockPubScreen: STUB\n");
|
|||
}
|
||||
MAKE_PROXY_ARG_2(LockPubScreen)
|
||||
|
||||
void abiv0_UnlockPubScreen(UBYTE *name, struct ScreenV0 *screen, struct LibraryV0 *IntuitionBaseV0)
|
||||
{
|
||||
struct ScreenProxy *proxy = (struct ScreenProxy *)screen;
|
||||
UnlockPubScreen(name, proxy->native);
|
||||
}
|
||||
MAKE_PROXY_ARG_3(UnlockPubScreen)
|
||||
|
||||
void abiv0_ScreenDepth(struct ScreenV0 *screen, ULONG flags, APTR reserved, struct LibraryV0 *IntuitionBaseV0)
|
||||
{
|
||||
bug("abiv0_ScreenDepth: STUB\n");
|
||||
|
@ -200,6 +207,20 @@ BOOL abiv0_WindowLimits(struct WindowV0 *window, WORD MinWidth, WORD MinHeight,
|
|||
}
|
||||
MAKE_PROXY_ARG_6(WindowLimits)
|
||||
|
||||
void abiv0_ClearMenuStrip(struct WindowV0 *window, struct LibraryV0 *IntuitionBaseV0)
|
||||
{
|
||||
struct WindowProxy *proxy = (struct WindowProxy *)window;
|
||||
return ClearMenuStrip(proxy->native);
|
||||
}
|
||||
MAKE_PROXY_ARG_2(ClearMenuStrip)
|
||||
|
||||
void abiv0_CloseWindow(struct Window *window, struct LibraryV0 *IntuitionBaseV0)
|
||||
{
|
||||
struct WindowProxy *proxy = (struct WindowProxy *)window;
|
||||
return CloseWindow(proxy->native);
|
||||
}
|
||||
MAKE_PROXY_ARG_2(CloseWindow)
|
||||
|
||||
static struct MessageV0 *Intuition_Translate(struct Message *native)
|
||||
{
|
||||
struct IntuiMessage *imsg = (struct IntuiMessage *)native;
|
||||
|
@ -289,6 +310,11 @@ void init_intuition(struct ExecBaseV0 *SysBaseV0)
|
|||
__AROS_SETVECADDRV0(abiv0IntuitionBase, 101, (APTR32)(IPTR)proxy_OpenWindowTagList);
|
||||
__AROS_SETVECADDRV0(abiv0IntuitionBase, 53, (APTR32)(IPTR)proxy_WindowLimits);
|
||||
__AROS_SETVECADDRV0(abiv0IntuitionBase, 25, (APTR32)(IPTR)proxy_ModifyIDCMP);
|
||||
__AROS_SETVECADDRV0(abiv0IntuitionBase, 9, (APTR32)(IPTR)proxy_ClearMenuStrip);
|
||||
__AROS_SETVECADDRV0(abiv0IntuitionBase, 12, (APTR32)(IPTR)proxy_CloseWindow);
|
||||
__AROS_SETVECADDRV0(abiv0IntuitionBase, 86, (APTR32)(IPTR)proxy_UnlockPubScreen);
|
||||
__AROS_SETVECADDRV0(abiv0IntuitionBase, 119, intuitionjmp[165 - 119]); // FreeClass
|
||||
__AROS_SETVECADDRV0(abiv0IntuitionBase, 118, intuitionjmp[165 - 118]); // RemoveClass
|
||||
|
||||
/* Call CLASSESINIT_LIST */
|
||||
ULONG pos = 1;
|
||||
|
|
Loading…
Reference in New Issue