Improved error messages

This commit is contained in:
neauoire 2021-07-24 17:09:46 -07:00
parent c5b8595fb5
commit fa6b8a1769
4 changed files with 18 additions and 24 deletions

View File

@ -4052,10 +4052,8 @@ int
loaduxn(Uxn *u, char *filepath)
{
FILE *f;
if(!(f = fopen(filepath, "rb"))) {
fprintf(stderr, "Halted: Missing input rom.\n");
if(!(f = fopen(filepath, "rb")))
return 0;
}
fread(u->ram.dat + PAGE_PROGRAM, sizeof(u->ram.dat) - PAGE_PROGRAM, 1, f);
fprintf(stderr, "Uxn loaded[%s].\n", filepath);
return 1;

View File

@ -180,10 +180,8 @@ int
loaduxn(Uxn *u, char *filepath)
{
FILE *f;
if(!(f = fopen(filepath, "rb"))) {
fprintf(stderr, "Halted: Missing input rom.\n");
if(!(f = fopen(filepath, "rb")))
return 0;
}
fread(u->ram.dat + PAGE_PROGRAM, sizeof(u->ram.dat) - PAGE_PROGRAM, 1, f);
fprintf(stderr, "Uxn loaded[%s].\n", filepath);
return 1;

View File

@ -137,9 +137,9 @@ sublabel(char *src, char *scope, char *name)
#pragma mark - Parser
static int
error(char *name, char *id)
error(char *name, char *msg)
{
fprintf(stderr, "Error: %s[%s]\n", name, id);
fprintf(stderr, "%s: %s\n", name, msg);
return 0;
}
@ -366,11 +366,11 @@ main(int argc, char *argv[])
{
FILE *f;
if(argc < 3)
return !error("Usage", "input.tal output.rom");
return !error("usage", "input.tal output.rom");
if(!(f = fopen(argv[1], "r")))
return !error("Open", "Failed");
return !error("Load", "Failed to open source.");
if(!pass1(f) || !pass2(f))
return !error("Assembly", "Failed");
return !error("Assembly", "Failed to assemble rom.");
fwrite(p.data + TRIM, p.length - TRIM, 1, fopen(argv[2], "wb"));
fclose(f);
cleanup(argv[2]);

View File

@ -44,7 +44,7 @@ clamp(int val, int min, int max)
static int
error(char *msg, const char *err)
{
fprintf(stderr, "Error %s: %s\n", msg, err);
fprintf(stderr, "%s: %s\n", msg, err);
return 0;
}
@ -130,26 +130,26 @@ init(void)
{
SDL_AudioSpec as;
if(!initppu(&ppu, 64, 40))
return error("PPU", "Init failure");
return error("ppu", "Init failure");
gRect.x = PAD;
gRect.y = PAD;
gRect.w = ppu.width;
gRect.h = ppu.height;
if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0)
return error("Init", SDL_GetError());
return error("sdl", SDL_GetError());
gWindow = SDL_CreateWindow("Uxn", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, (ppu.width + PAD * 2) * zoom, (ppu.height + PAD * 2) * zoom, SDL_WINDOW_SHOWN);
if(gWindow == NULL)
return error("Window", SDL_GetError());
return error("sdl_window", SDL_GetError());
gRenderer = SDL_CreateRenderer(gWindow, -1, 0);
if(gRenderer == NULL)
return error("Renderer", SDL_GetError());
return error("sdl_renderer", SDL_GetError());
SDL_RenderSetLogicalSize(gRenderer, ppu.width + PAD * 2, ppu.height + PAD * 2);
bgTexture = SDL_CreateTexture(gRenderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STATIC, ppu.width + PAD * 2, ppu.height + PAD * 2);
if(bgTexture == NULL || SDL_SetTextureBlendMode(bgTexture, SDL_BLENDMODE_NONE))
return error("Texture", SDL_GetError());
return error("sdl_texture", SDL_GetError());
fgTexture = SDL_CreateTexture(gRenderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STATIC, ppu.width + PAD * 2, ppu.height + PAD * 2);
if(fgTexture == NULL || SDL_SetTextureBlendMode(fgTexture, SDL_BLENDMODE_BLEND))
return error("Texture", SDL_GetError());
return error("sdl_texture", SDL_GetError());
SDL_UpdateTexture(bgTexture, NULL, ppu.bg.pixels, 4);
SDL_UpdateTexture(fgTexture, NULL, ppu.fg.pixels, 4);
SDL_StartTextInput();
@ -163,7 +163,7 @@ init(void)
as.userdata = NULL;
audio_id = SDL_OpenAudioDevice(NULL, 0, &as, NULL, 0);
if(!audio_id)
return error("Audio", SDL_GetError());
return error("sdl_audio", SDL_GetError());
return 1;
}
@ -409,13 +409,11 @@ main(int argc, char **argv)
SDL_CreateThread(stdin_handler, "stdin", NULL);
if(argc < 2)
return error("Input", "usage: uxnemu file.rom");
if(!bootuxn(&u))
return error("Boot", "Failed");
return error("usage", "uxnemu file.rom");
if(!loaduxn(&u, argv[1]))
return error("Load", "Failed");
return error("Load", "Failed to open rom.");
if(!init())
return error("Init", "Failed");
return error("Init", "Failed to initialize emulator.");
portuxn(&u, 0x0, "system", system_talk);
devconsole = portuxn(&u, 0x1, "console", console_talk);