From d0ead5d970052467a38fec1445f48566cea71f62 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Wed, 17 Feb 2021 18:48:23 +0100 Subject: [PATCH] old code removal in CBDOS, bugfixes --- src/dos_m65/dev_sdcard/fs_hvsr_read_dir.s | 4 +- src/dos_m65/dos_error.s | 82 ----------------------- src/dos_m65/msg_acptr.s | 13 +++- src/dos_m65/utils/util_status.s | 13 ++-- 4 files changed, 22 insertions(+), 90 deletions(-) delete mode 100644 src/dos_m65/dos_error.s diff --git a/src/dos_m65/dev_sdcard/fs_hvsr_read_dir.s b/src/dos_m65/dev_sdcard/fs_hvsr_read_dir.s index 27579f34..e450a0dc 100644 --- a/src/dos_m65/dev_sdcard/fs_hvsr_read_dir.s +++ b/src/dos_m65/dev_sdcard/fs_hvsr_read_dir.s @@ -22,7 +22,9 @@ fs_hvsr_read_dir_open: ; Reset status to OK lda #$00 - jsr dos_status_00 + sta PAR_TRACK + sta PAR_SECTOR + jsr util_status_SD ; Provide pointer to the header diff --git a/src/dos_m65/dos_error.s b/src/dos_m65/dos_error.s deleted file mode 100644 index a02fc3fe..00000000 --- a/src/dos_m65/dos_error.s +++ /dev/null @@ -1,82 +0,0 @@ - -; -; Set current error or status -; - - -; XXX add methods for remaining codes -; XXX size-optimize this, move some parts into subroutines - - -; .A = 0 for SD card, 1 for FDD, 2 for RAM disk - -dos_status_00: ; OK - - ; Set status byte pointer to the beginning - - tax - lda #$00 - sta XX_STATUS_IDX, x - - ; Set .X to offset from XX_STATUS_STR - - lda dos_status_offset, x - tax - - ; Store '00,' - - lda #'0' - sta XX_STATUS_STR, x - inx - sta XX_STATUS_STR, x - inx - lda #',' - sta XX_STATUS_STR, x - inx - - ; Store 'OK' - - dex - ldy #$FF -@1: - inx - iny - lda dos_sts_00, y - beq @2 - sta XX_STATUS_STR, x - bra @1 -@2: - ; Store ',00,00' - - lda #',' - sta XX_STATUS_STR, x - inx - lda #'0' - sta XX_STATUS_STR, x - inx - sta XX_STATUS_STR, x - inx - lda #',' - sta XX_STATUS_STR, x - inx - lda #'0' - sta XX_STATUS_STR, x - inx - sta XX_STATUS_STR, x - inx - - ; Store 0 (mark end of the status) - - lda #$00 - sta XX_STATUS_STR, x - - ; End - - rts - - - - -dos_status_offset: - - !byte $00,$20,$40 diff --git a/src/dos_m65/msg_acptr.s b/src/dos_m65/msg_acptr.s index 032700c5..0d73ae4d 100644 --- a/src/dos_m65/msg_acptr.s +++ b/src/dos_m65/msg_acptr.s @@ -123,8 +123,11 @@ msg_ACPTR_fail_no_talker: msg_ACPTR_reset_status: - lda IDX1_TALKER - jsr dos_status_00 + ldx IDX2_TALKER + lda #$00 + sta PAR_TRACK + sta PAR_SECTOR + jsr (msg_ACPTR_set_status_vectab, x) ; FALLTROUGH @@ -147,3 +150,9 @@ msg_ACPTR_read_vectab: !word msg_ACPTR_read_SD !word msg_ACPTR_read_FD !word msg_ACPTR_read_RD + +msg_ACPTR_set_status_vectab: + + !word util_status_SD + !word util_status_FD + !word util_status_RD diff --git a/src/dos_m65/utils/util_status.s b/src/dos_m65/utils/util_status.s index 4a4e0bf9..126f7a96 100644 --- a/src/dos_m65/utils/util_status.s +++ b/src/dos_m65/utils/util_status.s @@ -11,21 +11,21 @@ util_status_SD: ldx #$00 stx SD_STATUS_IDX ; set first byte of status to read - ldx $00 ; offset to status buffer + ldx #$00 ; offset to status buffer bra util_status_common util_status_FD: ldx #$00 stx FD_STATUS_IDX ; set first byte of status to read - ldx $20 ; offset to status buffer + ldx #$20 ; offset to status buffer bra util_status_common util_status_RD: ldx #$00 stx RD_STATUS_IDX ; set first byte of status to read - ldx $40 ; offset to status buffer + ldx #$40 ; offset to status buffer ; FALLLTROUGH @@ -49,7 +49,7 @@ util_status_common: ldy #$00 ; copy the string @lp: jsr code_LDA_nnnn_Y - bne @lp_end + beq @lp_end sta XX_STATUS_STR, x iny inx @@ -59,6 +59,7 @@ util_status_common: ; Store track and sector + jsr util_status_store_comma lda PAR_TRACK jsr util_status_store_number jsr util_status_store_comma @@ -112,10 +113,12 @@ util_status_store_number: sbc #10 bra @lp -@store_finalize: ; first digit to store in .Y, second in .A +@store_finalize: ; first digit to store in .Y, second in .A (need no add '0') sty XX_STATUS_STR, x inx + clc + adc #'0' sta XX_STATUS_STR, x inx