From e7f3a0731ff7c91ee141a3b77318b974b4c1daf7 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sun, 23 May 2021 13:00:13 +0200 Subject: [PATCH] code size optimization in CBDOS --- .../filesystem_vfs/fs_vfs_nextdirentry.s | 4 +- .../filesystem_vfs/fs_vfs_nextfileblock.s | 12 +-- src/dos_m65/filesystem_vfs/fs_vfs_read_dir.s | 8 +- src/dos_m65/filesystem_vfs/fs_vfs_read_file.s | 4 +- src/dos_m65/unit_ramdisk/unit_rd_preload.s | 32 ++------ src/dos_m65/unit_sdcard/unit_sd_init.s | 13 +--- src/dos_m65/utils/util_htrap.s | 75 +++++++++++++++++++ 7 files changed, 91 insertions(+), 57 deletions(-) create mode 100644 src/dos_m65/utils/util_htrap.s diff --git a/src/dos_m65/filesystem_vfs/fs_vfs_nextdirentry.s b/src/dos_m65/filesystem_vfs/fs_vfs_nextdirentry.s index f459b304..0e03fff3 100644 --- a/src/dos_m65/filesystem_vfs/fs_vfs_nextdirentry.s +++ b/src/dos_m65/filesystem_vfs/fs_vfs_nextdirentry.s @@ -27,9 +27,7 @@ fs_vfs_nextdirentry: ldx SD_DESC ; directory descriptor XXX rename to FS_HVSR_DESC ldy #>MEM_BUF ; target page number - lda #$14 ; dos_readdir - sta HTRAP00 - +nop + jsr util_htrap_dos_readddir +bcc @fail diff --git a/src/dos_m65/filesystem_vfs/fs_vfs_nextfileblock.s b/src/dos_m65/filesystem_vfs/fs_vfs_nextfileblock.s index e700a6c7..c5cd21ce 100644 --- a/src/dos_m65/filesystem_vfs/fs_vfs_nextfileblock.s +++ b/src/dos_m65/filesystem_vfs/fs_vfs_nextfileblock.s @@ -9,9 +9,7 @@ fs_vfs_nextfileblock: ; Read chunk of data to SD card buffer ldx SD_DESC - lda #$1A ; dos_readfile - sta HTRAP00 - +nop + jsr util_htrap_dos_readfile ; XXX check error code @@ -26,9 +24,7 @@ fs_vfs_nextfileblock: ora SD_ACPTR_LEN+0 bne @copy - lda #$20 ; dos_closefile - sta HTRAP00 - +nop + jsr util_htrap_dos_closefile lda #$00 sec @@ -69,9 +65,7 @@ fs_vfs_file_not_found: jsr util_shadow_restore ; restore MEM_BUF memory content ldx SD_DESC - lda #$16 ; dos_closedir - sta HTRAP00 - +nop + jsr util_htrap_dos_closedir lda #39 ; file not found error jsr util_status_SD diff --git a/src/dos_m65/filesystem_vfs/fs_vfs_read_dir.s b/src/dos_m65/filesystem_vfs/fs_vfs_read_dir.s index 7cba036f..14dec880 100644 --- a/src/dos_m65/filesystem_vfs/fs_vfs_read_dir.s +++ b/src/dos_m65/filesystem_vfs/fs_vfs_read_dir.s @@ -8,9 +8,7 @@ fs_vfs_read_dir_open: ; Open the directory - lda #$12 ; dos_opendir - sta HTRAP00 - +nop + jsr util_htrap_dos_opendir ; XXX handle read errors @@ -105,9 +103,7 @@ fs_vfs_read_dir_blocksfree: ; Close the directory within the hypervisor XXX maybe move it to close routine ldx SD_DESC - lda #$16 ; dos_closedir - sta HTRAP00 - +nop + jsr util_htrap_dos_closedir clc rts diff --git a/src/dos_m65/filesystem_vfs/fs_vfs_read_file.s b/src/dos_m65/filesystem_vfs/fs_vfs_read_file.s index 7c019a68..9cc623bc 100644 --- a/src/dos_m65/filesystem_vfs/fs_vfs_read_file.s +++ b/src/dos_m65/filesystem_vfs/fs_vfs_read_file.s @@ -50,9 +50,7 @@ fs_vfs_read_file_open: jsr util_shadow_restore ; restore MEM_BUF memory content - lda #$18 ; dos_openfile - sta HTRAP00 - +nop + jsr util_htrap_dos_openfile ; XXX check error code diff --git a/src/dos_m65/unit_ramdisk/unit_rd_preload.s b/src/dos_m65/unit_ramdisk/unit_rd_preload.s index 9bf90c13..4322b264 100644 --- a/src/dos_m65/unit_ramdisk/unit_rd_preload.s +++ b/src/dos_m65/unit_ramdisk/unit_rd_preload.s @@ -31,18 +31,14 @@ unit_rd_preload: ldy #>MEM_BUF ldx #