; ; Oliver Schmidt, 2010-05-24 ; ; char* __fastcall__ getdevicedir (unsigned char device, char* buf, size_t size); ; .export _getdevicedir .import popptr1, popa .include "zeropage.inc" .include "errno.inc" .include "mli.inc" _getdevicedir: ; Save size sta ptr2 stx ptr2+1 ; Save buf jsr popptr1 ; Set buf ldx ptr1+1 sta mliparam + MLI::ON_LINE::DATA_BUFFER stx mliparam + MLI::ON_LINE::DATA_BUFFER+1 ; Set device jsr popa asl asl asl asl sta mliparam + MLI::ON_LINE::UNIT_NUM ; Check for valid slot and #$70 beq erange ; Check for sufficient buf size lda ptr2+1 bne :++ ; Buf >= 256 lda ptr2 cmp #17 bcs :++ ; Buf >= 17 ; Handle errors erange: lda #