void lib_DPrintF(struct SysBase *SysBase, char *fmt, ...) { if (!enabled) {RawIOInit(); enabled = TRUE;} va_list pvar; va_start(pvar, fmt); RawDoFmt(fmt, pvar, raw_printit, SysBase); // RawDoFmt(fmt, pvar, printit, NULL); va_end(pvar); }
int consinit(void *consptr) { struct Console *mc; if (consptr != NULL) { /* Check magic? */ ConsoleBase = consptr; /* Use existing console */ return (0); } mc = &myConsole; IntuitionBase = OpenLibrary("intuition.library", 36L); if (IntuitionBase == 0) goto err; mc->s = OpenScreenTagList(0, screentags); if (!mc->s) goto err; windowtags[1] = (u_int32_t)mc->s; mc->w = OpenWindowTagList(0, windowtags); if (!mc->w) goto err; mc->cnmp = CreateMsgPort(); if (!mc->cnmp) goto err; mc->cnior = (struct AmigaIO *)CreateIORequest(mc->cnmp, sizeof(struct AmigaIO)); if (!mc->cnior) goto err; mc->cnior->buf = (void *)mc->w; if (OpenDevice("console.device", 0, mc->cnior, 0)) goto err; mc->tmior = (struct TimerIO *)CreateIORequest(mc->cnmp, sizeof(struct TimerIO)); if (!mc->tmior) goto err; if (OpenDevice("timer.device", 0, (struct AmigaIO*)mc->tmior, 0)) goto err; #ifdef SERCONSOLE conspreinit(); if (use_serconsole) RawIOInit(); #endif ConsoleBase = mc; return 0; err: #ifdef notyet if (mc->tmior) DeleteIORequest(mc->tmior); if (mc->cnior) DeleteIORequest(mc->cnior); if (mc->cnmp) DeleteMsgPort(mc->cnmp); if (mc->w) CloseWindow(mc->w); if (mc->s) CloseScreen(mc->s); if (IntuitionBase) CloseLibrary(IntuitionBase); #endif return 1; }