From 12212e7fb1a9c5a907cc5602259ce5e3d718173d Mon Sep 17 00:00:00 2001 From: jede Date: Mon, 15 Jan 2024 23:12:12 +0100 Subject: [PATCH] fix for pre release --- .github/workflows/main.yml | 3 ++- VERSION | 2 +- memmap.md | 6 ++--- modules/src/dummy/main.c | 6 +++++ run.sh | 7 +++--- src/functions/memory/memory_driver.asm | 3 ++- .../process/kernel_exec_from_storage.asm | 2 -- src/functions/process/kernel_kill_process.asm | 7 ++---- src/functions/process/xexec.asm | 8 ++++--- .../process/xexec_replace_process.asm | 3 --- src/functions/process/xfork.asm | 11 +++------- src/kernel.asm | 4 +++- src/versions/versions.inc | 4 ++-- tests/unit_test/verify.sh | 2 +- tests/unit_test/xopen.sub | 22 +++++++++---------- tests/unit_test/xrm.sub | 12 ++++++++++ 16 files changed, 57 insertions(+), 45 deletions(-) create mode 100644 modules/src/dummy/main.c delete mode 100644 src/functions/process/xexec_replace_process.asm create mode 100644 tests/unit_test/xrm.sub diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index df5b044..a2b2150 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -136,7 +136,8 @@ jobs: git clone https://github.com/orix-software/docker-unit-test.git cd docker-unit-test && bash install.sh ${GITHUB_WORKSPACE} && cd .. cp build/usr/share/kernel/kernelsd.rom ${GITHUB_WORKSPACE}/oricutron/roms/kernel.rom - cp tests/unit_test/xopen.sub ${GITHUB_WORKSPACE}/oricutron/sdcard/ETC/AUTOBOOT + cat tests/unit_test/xopen.sub > ${GITHUB_WORKSPACE}/oricutron/sdcard/ETC/AUTOBOOT + cat tests/unit_test/xrm.sub >> ${GITHUB_WORKSPACE}/oricutron/sdcard/ETC/AUTOBOOT cd ${GITHUB_WORKSPACE}/oricutron timeout --preserve-status 5 ./xvfb.sh || exit 0 diff --git a/VERSION b/VERSION index f416694..2cf03e5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2023.4 \ No newline at end of file +2024.1 \ No newline at end of file diff --git a/memmap.md b/memmap.md index 2488c2d..c6c88e4 100644 --- a/memmap.md +++ b/memmap.md @@ -291,12 +291,12 @@ CALL:XOPEN:XRM_ROUTINE |##MEMMAP: Kernel bank 7 |MEMMAP: Type | Name | Range | Size | |MEMMAP: :-------- |:---------------------------- |:------- |:-----| -|MEMMAP:ROM|FREE |$fef4-$fff0| 252 | +|MEMMAP:ROM|FREE |$fef5-$fff0| 251 | |##MEMMAP:Bank 0 |MEMMAP: Type | Name | Range | Size | |MEMMAP: -------- | ---------------------------- | ------- |-----| |MEMMAP:BANK0|BUFBUF | $c080-$c0b6 | 54 | |MEMMAP:BANK0|BUFROU | $c500-$c54e | | |MEMMAP:BANK0|TELEMON_KEYBOARD_BUFFER_BEGIN | $c5c4-$c680 | | -|MEMMAP:BANK0|XMALLOC (copy from kernel) | $fba6-$fc52 | | -|MEMMAP:BANK0|XFREE (copy from kernel) | $fc52-$fed7 | | +|MEMMAP:BANK0|XMALLOC (copy from kernel) | $fba7-$fc53 | | +|MEMMAP:BANK0|XFREE (copy from kernel) | $fc53-$fed8 | | diff --git a/modules/src/dummy/main.c b/modules/src/dummy/main.c new file mode 100644 index 0000000..55b4ef9 --- /dev/null +++ b/modules/src/dummy/main.c @@ -0,0 +1,6 @@ +#include + +//cl65 --module -t c64 -o $@ loader-arch-module.o $^ + +int main() { +} \ No newline at end of file diff --git a/run.sh b/run.sh index fe39cdf..1c8e249 100644 --- a/run.sh +++ b/run.sh @@ -19,12 +19,13 @@ ca65 --cpu 6502 -DWITH_SDCARD_FOR_ROOT=1 -DWITH_DEBUG=1 --verbose -s -ttelestra ld65 -tnone -DWITH_SDCARD_FOR_ROOT=1 -DWITH_DEBUG=1 kdebugsd.ld65 -o kdebug.rom -Ln kdebugsd.sym -m memmap.txt -vm cp kernel.rom $ORICUTRON_PATH/roms -cp kdebug.rom $ORICUTRON_PATH/roms +# cp kdebug.rom $ORICUTRON_PATH/roms cp tests/test_kernel $ORICUTRON_PATH/sdcard/bin/test -cp tests/kopened $ORICUTRON_PATH/sdcard/bin/ +#cp tests/kopened $ORICUTRON_PATH/sdcard/bin/ -cp tests/unit_test/xopen.sub $ORICUTRON_PATH/sdcard/etc/AUTOBOOT +#cat tests/unit_test/xopen.sub > $ORICUTRON_PATH/sdcard/etc/AUTOBOOT +#cat tests/unit_test/xrm.sub >> $ORICUTRON_PATH/sdcard/etc/AUTOBOOT cd $ORICUTRON_PATH ./oricutron diff --git a/src/functions/memory/memory_driver.asm b/src/functions/memory/memory_driver.asm index d726d50..4faac14 100644 --- a/src/functions/memory/memory_driver.asm +++ b/src/functions/memory/memory_driver.asm @@ -64,6 +64,7 @@ command_not_found_no_inc: adc RESB bcc read_command_from_bank_driver_do_not_inc inc RESB+1 + read_command_from_bank_driver_do_not_inc: sta RESB inx @@ -72,6 +73,7 @@ read_command_from_bank_driver_do_not_inc: ; at this step we did not found the command in the rom exit_to_kernel_ENOENT: ldy #ENOENT ; error + exit_to_kernel: lda VIA2::PRA ora #%00000111 ; Return to telemon @@ -99,7 +101,6 @@ read_command_from_bank_driver_patch2: lda #$07 ; Return to telemon jsr $46A - jsr _XFORK cpy #EOK diff --git a/src/functions/process/kernel_exec_from_storage.asm b/src/functions/process/kernel_exec_from_storage.asm index 7a2970a..cb41299 100644 --- a/src/functions/process/kernel_exec_from_storage.asm +++ b/src/functions/process/kernel_exec_from_storage.asm @@ -478,8 +478,6 @@ open_binary_and_exec: rts - - str_root_bin: ; If you change this path, you need to change .strlen("/bin/") above .asciiz "/bin/" diff --git a/src/functions/process/kernel_kill_process.asm b/src/functions/process/kernel_kill_process.asm index d0f4db7..f2e2564 100644 --- a/src/functions/process/kernel_kill_process.asm +++ b/src/functions/process/kernel_kill_process.asm @@ -38,13 +38,10 @@ ; FIXME use kernel_get_struct_process_ptr routine jsr kernel_get_struct_process_ptr - ;lda kernel_process+kernel_process_struct::kernel_one_process_struct_ptr_low,x + sta RES sty RES+1 -; lda kernel_process+kernel_process_struct::kernel_one_process_struct_ptr_high,x - ;sta RES+1 - ldy #kernel_one_process_struct::ppid lda (RES),y ; A contains the PPID @@ -69,7 +66,7 @@ ; restore zp of the PPID - ldx kernel_process+kernel_process_struct::kernel_current_process + ldx kernel_process+kernel_process_struct::kernel_current_process ; $57D jsr kernel_get_struct_process_ptr sta RES sty RES+1 diff --git a/src/functions/process/xexec.asm b/src/functions/process/xexec.asm index 5e529e4..2c9acc3 100644 --- a/src/functions/process/xexec.asm +++ b/src/functions/process/xexec.asm @@ -43,8 +43,6 @@ lda (TR0),y beq @S6 sta BUFEDT,y - - iny cpy #110 bne @L7 @@ -62,6 +60,7 @@ cmp #$07 bne @do_not_correct lda #$05 ; Shell by default + @do_not_correct: sta KERNEL_KERNEL_XEXEC_BNKOLD @@ -150,9 +149,13 @@ out1: stx HRS2+1 skip_sta_hrs2: + lda kernel_process+kernel_process_struct::kernel_current_process + cmp #$01 ; Dans le cas d'exec, il y a 2 kill qui se font FIXME bug + beq @no_kill jsr kernel_kill_process +@no_kill: ldy #EOK exit: @@ -166,7 +169,6 @@ exit: lda KERNEL_SAVE_XEXEC_CURRENT_SET sta $343 - lda HRS2 ; Return code ldx HRS2+1 diff --git a/src/functions/process/xexec_replace_process.asm b/src/functions/process/xexec_replace_process.asm deleted file mode 100644 index e3a02ca..0000000 --- a/src/functions/process/xexec_replace_process.asm +++ /dev/null @@ -1,3 +0,0 @@ -.proc xexec_replace_process - stx HRS3 -.endproc diff --git a/src/functions/process/xfork.asm b/src/functions/process/xfork.asm index 79efd3c..0564073 100644 --- a/src/functions/process/xfork.asm +++ b/src/functions/process/xfork.asm @@ -35,14 +35,10 @@ bne @perform_fork ; At this step we replace the process - ; ; Let's free all memory from this process + ; Let's free all memory from this process ldx kernel_process+kernel_process_struct::kernel_current_process - ;jsr erase_all_chunk_from_current_process - ; Change command line - lda kernel_process+kernel_process_struct::kernel_current_process jsr kernel_get_struct_process_ptr - sty KERNEL_CREATE_PROCESS_PTR1+1 sta KERNEL_CREATE_PROCESS_PTR1 @@ -54,8 +50,6 @@ @S7: sta KERNEL_CREATE_PROCESS_PTR1 -; Shebang management -; Copy new cmdline with #! ldy #$00 @L10: @@ -66,11 +60,11 @@ cpy #(KERNEL_LENGTH_MAX_CMDLINE-1) bne @L10 lda #$00 ; Store 0 + @S8: sta (KERNEL_CREATE_PROCESS_PTR1),y ldy #EOK - rts @perform_fork: @@ -84,6 +78,7 @@ ldx #$00 ldy #kernel_one_process_struct::zp_save_userzp + @L1: lda userzp,x sta (RES),y diff --git a/src/kernel.asm b/src/kernel.asm index c23e16a..f3611e7 100644 --- a/src/kernel.asm +++ b/src/kernel.asm @@ -15,7 +15,7 @@ adc #$01 .endmacro -.define VERSION "2023.4" +.define VERSION "2024.1" XMALLOC_ROUTINE_TO_RAM_OVERLAY = 39 @@ -5035,6 +5035,7 @@ XGOKBD_ROUTINE: sta RESB sty RESB+1 ldy #$00 + loop70: ldx #$00 lda (RESB,x) @@ -5097,6 +5098,7 @@ next81: iny bne @skip inc RES+1 + @skip: pla lsr diff --git a/src/versions/versions.inc b/src/versions/versions.inc index 1058d1e..851348a 100644 --- a/src/versions/versions.inc +++ b/src/versions/versions.inc @@ -4,6 +4,6 @@ .define KERNEL_VERSION_2023_1 $03 .define KERNEL_VERSION_2023_2 $04 .define KERNEL_VERSION_2023_3 $05 -.define KERNEL_VERSION_2023_4 $06 +.define KERNEL_VERSION_2024_1 $06 -.define CURRENT_VERSION_BINARY KERNEL_VERSION_2023_4 +.define CURRENT_VERSION_BINARY KERNEL_VERSION_2024_1 diff --git a/tests/unit_test/verify.sh b/tests/unit_test/verify.sh index d2aeadc..aa27dda 100644 --- a/tests/unit_test/verify.sh +++ b/tests/unit_test/verify.sh @@ -6,7 +6,7 @@ if [ -e "$MYPATH/STARTED" ]; then echo "Le fichier $MYPATH/STARTED existe." else echo "Le fichier $MYPATH/STARTED n'existe pas." - echo "Le script submit n'a pas été lancé ou touch à un pb" + echo "Le script submit n'a pas été lancé ou touch à un pb, vérifier le timeout" exit 1 fi diff --git a/tests/unit_test/xopen.sub b/tests/unit_test/xopen.sub index 00edb13..2131c0e 100644 --- a/tests/unit_test/xopen.sub +++ b/tests/unit_test/xopen.sub @@ -2,19 +2,19 @@ touch started -# touch test XOPEN O_CREAT only -echo -n Testing XOPEN O_CREAT +# XOPEN O_CREAT only (touch test ) +echo ^[TTest XOPEN +echo -n O_CREAT touch /toto if exist /toto echo ^[B [OK] -echo -n Testing XRM -rm /toto -if exist /toto goto error_rm -echo ^[B [OK] -exit - -:error_rm -echo ^[A il y a un dysfonctionnement avec rm, le fichier n'a pas été supprimé -exit + +# XOPEN O_RDONLY only AND O_WRONLY|O_CREAT +echo -n O_RDONLY & O_WRONLY|O_CREAT + +cp started starcop +if exist /starcop echo ^[B [OK] + + diff --git a/tests/unit_test/xrm.sub b/tests/unit_test/xrm.sub new file mode 100644 index 0000000..82cb875 --- /dev/null +++ b/tests/unit_test/xrm.sub @@ -0,0 +1,12 @@ +#! /bin/submit + +echo -n ^[TTest XRM +rm /toto +if exist /toto goto error_rm +echo ^[B [OK] +dump +exit + +:error_rm +echo ^[A il y a un dysfonctionnement avec rm, le fichier n'a pas été supprimé +exit