From 279adc1e0e0872fcf73b1d005f34c00b0c1672ab Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Fri, 12 Feb 2021 21:00:09 +0100 Subject: [PATCH] fixed improper SECOND/TKSA processing in CBDOS --- src/dos_m65/dos_second_tksa.s | 79 +++++++++++++---------------------- 1 file changed, 29 insertions(+), 50 deletions(-) diff --git a/src/dos_m65/dos_second_tksa.s b/src/dos_m65/dos_second_tksa.s index 071869a0..2c139500 100644 --- a/src/dos_m65/dos_second_tksa.s +++ b/src/dos_m65/dos_second_tksa.s @@ -7,77 +7,56 @@ dos_SECOND: + pha phx - cmp #$60 - bcs dos_SECOND_OPEN + phy - ; XXX provide implementation + ; First store the channel - plx - sec - rts - -dos_SECOND_OPEN: - - and #$1F + tay + and #$0F ; support channels 0-15, like 1541 drive ldx IDX1_LISTENER ; store channel - sta XX_CHANNEL, X + bmi dos_SECOND_done ; do nothing if no listener + sta XX_CHANNEL, x - cmp #$0F - beq dos_SECOND_OPEN_cmd + ; Determine command type + + tya + and #$F0 + + cmp #$F0 + beq dos_SECOND_OPEN + cmp #$E0 + beq dos_SECOND_CLOSE ; XXX provide implementation - plx - sec - rts +dos_SECOND_OPEN: ; XXX provide implementaation +dos_SECOND_CLOSE: ; XXX provide implementaation + ; finish -dos_SECOND_OPEN_cmd: - - ; XXX provide implementation - - plx - clc - rts - +dos_SECOND_done: + ply + bra dos_TKSA_done ; reuse part of TKSA code dos_TKSA: + pha phx - cmp #$60 - bcs dos_TKSA_OPEN - ; XXX provide implementation + and #$0F ; support channels 0-15, like 1541 drive - plx - sec - rts + ldx IDX1_TALKER ; store channel + bmi dos_TKSA_done ; do nothing if no taalker + sta XX_CHANNEL, x -dos_TKSA_OPEN: - - and #$1F - - ldx IDX1_TALKER ; store channel - sta XX_CHANNEL, X - - cmp #$0F - beq dos_TKSA_OPEN_cmd - - ; XXX provide implementation - - plx - sec - rts - - -dos_TKSA_OPEN_cmd: - - ; XXX provide implementation +dos_TKSA_done: plx + pla clc rts