From 81da8b21071535e1f6837bd92e9a610bfe8463a5 Mon Sep 17 00:00:00 2001 From: mrdudz Date: Mon, 30 Jun 2025 20:34:59 +0200 Subject: [PATCH] fix getdevice --- libsrc/cbm/getdevice.s | 13 ++++++++----- libsrc/cbm610/kreadst.s | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/libsrc/cbm/getdevice.s b/libsrc/cbm/getdevice.s index cb63c8cd0..25b54fe9d 100644 --- a/libsrc/cbm/getdevice.s +++ b/libsrc/cbm/getdevice.s @@ -34,22 +34,25 @@ next: inx ; interpret a non-disk as a no-op while we need to interpret it ; as an error here - jsr isdisk + jsr isdisk ; carry clear if the unit number in X is a disk bcs next ; [open|close]cmdchannel don't call into the Kernal at all if they ; only [in|de]crement the reference count of the shared cmdchannel ; so we need to explicitly initialize ST here + stx tmp2 ; further calls my use X + jsr initst - stx tmp2 + ldx tmp2 ; get unit number back jsr opencmdchannel - ldx tmp2 + ldx tmp2 ; get unit number back jsr closecmdchannel - ldx tmp2 - jsr READST + ldx tmp2 ; get unit number back + + jsr READST ; preserves X, returns A and Flags ; Either the Kernal calls above were successful or there was ; already a cmdchannel to the device open - which is a pretty diff --git a/libsrc/cbm610/kreadst.s b/libsrc/cbm610/kreadst.s index 44dc1ebab..209f7a842 100644 --- a/libsrc/cbm610/kreadst.s +++ b/libsrc/cbm610/kreadst.s @@ -11,7 +11,7 @@ .include "cbm610.inc" - +; preserves X and Y, returns status in A and in status flags .proc READST jsr sys_bank