From 1d934c8c80219d838485daa588518503684c32ab Mon Sep 17 00:00:00 2001 From: Adam Beckingham Date: Fri, 18 Oct 2024 12:42:26 -0600 Subject: [PATCH] Partially fix CEdit not loading existing files --- src/sys/ExecuteFile.asm | 22 +++++++++++++++++----- src/util.inc | 2 +- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/sys/ExecuteFile.asm b/src/sys/ExecuteFile.asm index a849f461..49439f22 100644 --- a/src/sys/ExecuteFile.asm +++ b/src/sys/ExecuteFile.asm @@ -257,9 +257,6 @@ sys_ExecuteFile: jr .restore_colors .runnothreading_actually: call .actuallyrunprogram_nothread - ld (LastExitCode),hl - ld a,e - ld (LastExitCode+3),a .restore_colors: call ti.PopOP3 ld iy,ti.OP3 @@ -305,8 +302,11 @@ sys_ExecuteFile: ld hl,(fsOP6+9) ; argc push hl call .jptoprogram - pop bc,bc - ret + ld (LastExitCode),hl ; save exit code + ld a,e + ld (LastExitCode+3),a + pop bc,hl ; argc, argv + jp sys_Free.entryhl ; free argv .actuallyrunprogram_thread: @@ -377,6 +377,18 @@ sys_jphl := $ ; output hl -> argv ; output bc -> argc .load_argc_argv_loop: + ld bc,(running_process_id) + push bc + ld a,1 ; make sure to malloc as PID 1 so it doesn't get freed until the program exits + ld (running_process_id),a + call .load_argc_argv_loop_entry + ex (sp),hl + ld a,l + ld (running_process_id),a + pop hl + ret + +.load_argc_argv_loop_entry: ex hl,de push hl inc sp diff --git a/src/util.inc b/src/util.inc index 68c97414..42674190 100644 --- a/src/util.inc +++ b/src/util.inc @@ -4,7 +4,7 @@ include 'util/BackupRegisters.asm' include 'util/NumToString.asm' include 'util/RestoreRegisters.asm' -include 'util/VoidPtr.asm' +; include 'util/VoidPtr.asm' include 'util/Zx7Compress.asm' include 'util/Zx7Decompress.asm' include 'util/Zx7DecompressToFlash.asm'