; drive_id = (slot * 2) + (drive - 1)
.export _dio_open
- .import decaxy, return0
+ .import return0
.include "zeropage.inc"
.include "errno.inc"
asl
asl
asl
+ tay ; Save handle
+
+ ; Set handle
sta mliparam + MLI::ON_LINE::UNIT_NUM
; Alloc 16-byte buffer just below stack
- ldy #16
lda sp
- ldx sp+1
- jsr decaxy
+ sec
+ sbc #16
sta mliparam + MLI::ON_LINE::DATA_BUFFER
- stx mliparam + MLI::ON_LINE::DATA_BUFFER+1
+ lda sp+1
+ sbc #$00
+ sta mliparam + MLI::ON_LINE::DATA_BUFFER+1
; Get device state
lda #ON_LINE_CALL
bcc oserr
; Return success
-: lda mliparam + MLI::ON_LINE::UNIT_NUM
+: tya ; Restore handle
ldx #$00
stx __oserror
rts