mirror of
https://github.com/bobbimanners/ProDOS-Utils.git
synced 2024-06-15 02:29:27 +00:00
53 lines
1.0 KiB
ArmAsm
53 lines
1.0 KiB
ArmAsm
|
;
|
||
|
; Oliver Schmidt, 24.03.2005
|
||
|
;
|
||
|
; dhandle_t __fastcall__ dio_open (unsigned char device);
|
||
|
;
|
||
|
|
||
|
.export _dio_open
|
||
|
.import return0, __dos_type, isdevice
|
||
|
|
||
|
.include "errno.inc"
|
||
|
.include "mli.inc"
|
||
|
.include "zeropage.inc"
|
||
|
|
||
|
_dio_open:
|
||
|
; Check for ProDOS 8
|
||
|
ldx __dos_type
|
||
|
bne :+
|
||
|
lda #$01 ; "Bad system call number"
|
||
|
bne oserr ; Branch always
|
||
|
|
||
|
; Convert from 00DDDSSS format to DSSS00DD format
|
||
|
: tax
|
||
|
clc
|
||
|
asl
|
||
|
asl
|
||
|
asl
|
||
|
asl
|
||
|
sta tmp1
|
||
|
txa
|
||
|
lsr
|
||
|
lsr
|
||
|
lsr
|
||
|
lsr
|
||
|
ora tmp1
|
||
|
|
||
|
; Check for valid device
|
||
|
tax
|
||
|
|
||
|
jsr isdevice
|
||
|
beq :+
|
||
|
lda #$28 ; "No device connected"
|
||
|
|
||
|
; Return oserror
|
||
|
oserr: sta __oserror
|
||
|
jmp return0
|
||
|
|
||
|
; Return success
|
||
|
: txa
|
||
|
|
||
|
ldx #$00
|
||
|
stx __oserror
|
||
|
rts
|