From bfdc86b2c720f1e5571a14eb9997386cddfbe3e9 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Sat, 17 Jan 2015 14:46:30 +0000 Subject: [PATCH] 6502: syscalls with no argument require nothing pushing --- Library/tools/syscall_6502.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Library/tools/syscall_6502.c b/Library/tools/syscall_6502.c index 4ae15e87..d3ee6c87 100644 --- a/Library/tools/syscall_6502.c +++ b/Library/tools/syscall_6502.c @@ -21,7 +21,10 @@ static void write_call(int n) fprintf(fp, "\t.export _%s\n\n", syscall_name[n]); fprintf(fp, "\t.import __syscall\n\n", syscall_name[n]); fprintf(fp, "\t.import pushax\n\n"); - fprintf(fp, ".proc _%s\n\tjsr pushax\n\tldx #%d\n", syscall_name[n], n); + fprintf(fp, ".proc _%s\n", syscall_name[n]); + if (syscall_args[n]) + fprintf(fp, "\tjsr pushax\n"); + fprintf(fp, "\tldx #%d\n", n); fprintf(fp, "\tldy #%d\n", 2 * syscall_args[n]); fprintf(fp, "\tjmp __syscall\n\n.endproc\n"); fclose(fp); -- 2.34.1