diff --git a/src/system/boot/platform/atari_m68k/debug.c b/src/system/boot/platform/atari_m68k/debug.c index 4100f05f20..5651ca0375 100644 --- a/src/system/boot/platform/atari_m68k/debug.c +++ b/src/system/boot/platform/atari_m68k/debug.c @@ -4,7 +4,6 @@ */ -#include "serial.h" #include "keyboard.h" #include "toscalls.h" @@ -19,17 +18,21 @@ void panic(const char *format, ...) { + char buffer[512]; va_list list; + int length; - platform_switch_to_text_mode(); + //platform_switch_to_text_mode(); - puts("*** PANIC ***"); + Bconputs(DEV_CONSOLE, "*** PANIC ***"); va_start(list, format); - vprintf(format, list); + length = vsnprintf(buffer, sizeof(buffer), format, list); va_end(list); - puts("\nPress key to reboot."); + Bconputs(DEV_CONSOLE, buffer); + + Bconputs(DEV_CONSOLE, "\nPress key to reboot."); clear_key_buffer(); wait_for_key(); @@ -48,10 +51,10 @@ dprintf(const char *format, ...) length = vsnprintf(buffer, sizeof(buffer), format, list); va_end(list); - serial_puts(buffer, length); + Bconputs(DEV_AUX, buffer); if (platform_boot_options() & BOOT_OPTION_DEBUG_OUTPUT) - fprintf(stderr, "%s", buffer); + Bconputs(DEV_CONSOLE, buffer); } diff --git a/src/system/boot/platform/atari_m68k/toscalls.h b/src/system/boot/platform/atari_m68k/toscalls.h index c792ff4e88..ffde24f3e1 100644 --- a/src/system/boot/platform/atari_m68k/toscalls.h +++ b/src/system/boot/platform/atari_m68k/toscalls.h @@ -71,6 +71,18 @@ struct tosbpb { #define Drvmap() (uint32)bios(10) #define Kbshift(mode) bios(11, (uint16)mode) +/* handy shortcut */ +static inline int Bconputs(int16 handle, const char *string) +{ + int i, err; + for (i = 0; string[i]; i++) { + err = Bconout(string[i]); + if (err) + return i; + } + return i; +} + /* * Atari XBIOS calls */