; ; Oliver Schmidt, 2010-05-24 ; Robert Justice, 2026 ; ; char* __fastcall__ getdevicedir (unsigned char device, char* buf, size_t size); ; .export _getdevicedir .import popptr1, popa, devname .include "zeropage.inc" .include "errno.inc" .include "sos.inc" _getdevicedir: ; Save size sta ptr2 stx ptr2+1 ; Save buf jsr popptr1 ; Set buffer for devname lda #devname sta sosparam + SOS::DINFO::DEV_NAME stx sosparam + SOS::DINFO::DEV_NAME+1 ; no option list needed ldx #0 stx sosparam + SOS::DINFO::LENGTH ; Set device jsr popa sta sosparam + SOS::DINFO::DEV_NUM ; Check for valid dev num cmp #$19 bcs erange ; Check for sufficient buf size lda ptr2+1 bne :++ ; Buf >= 256 lda ptr2 cmp #17 bcs :++ ; Buf >= 17 ; Handle errors erange: lda #