PR#3 PREFIX /A2OSX.SRC NEW INC 1 AUTO 6 .LIST OFF .OP 65C02 *-------------------------------------- * PUBLIC *-------------------------------------- S.MLICreateFile clc rts *-------------------------------------- S.MLICreateDirA jsr S.GetMemPtrA S.MLICreateDirYA >STYA MLICALL.PARAMS+1 lda #$C3 sta MLICALL.PARAMS+3 Access lda #$0F sta MLICALL.PARAMS+4 type=Directory lda #$0D sta MLICALL.PARAMS+7 Storage=Linked List >MLICALL MLICREATE rts *-------------------------------------- S.MLIDestroyA jsr S.GetMemPtrA S.MLIDestroyYA >STYA MLICALL.PARAMS+1 >MLICALL MLIDESTROY rts *-------------------------------------- S.MLIRename >PULLW MLICALL.PARAMS+3 >PULLW MLICALL.PARAMS+1 >MLICALL MLIRENAME rts *-------------------------------------- S.MLISetFileInfo *-------------------------------------- * S.MLIGetFileInfoA * in : * A = hMem To FileName * out : * Y,A = PTR To Buffer (L=15) *-------------------------------------- S.MLIGetFileInfoA jsr S.GetMemPtrA S.MLIGetFileInfoYA >STYA MLICALL.PARAMS+1 >MLICALL MLIGETFILEINFO bcs .9 >LDYAI MLICALL.PARAMS+3 .9 rts *-------------------------------------- * S.MLIOnline * in : * PULLB = Device * PULLW = Dest PTR *-------------------------------------- S.MLIOnline >PULLB MLICALL.PARAMS+1 >PULLW MLICALL.PARAMS+2 >MLICALL MLIONLINE rts *-------------------------------------- S.MLISetPrefixA jsr S.GetMemPtrA S.MLISetPrefixYA >STYA MLICALL.PARAMS+1 >MLICALL MLISETPREFIX rts *-------------------------------------- S.MLIGetPrefixA jsr S.GetMemPtrA S.MLIGetPrefixYA >STYA MLICALL.PARAMS+1 >MLICALL MLIGETPREFIX rts *-------------------------------------- * S.MLIOpenA * in : * A = hMem To FileName * out : * A = ref_num * X = buf hMem *-------------------------------------- S.MLIOpenA jsr S.GetMemPtrA S.MLIOpenYA >STYA MLICALL.PARAMS+1 >PUSHWI 1024 get a ProDOS IO buffer >PUSHBI S.MEM.F.ALIGN+S.MEM.F.NOMOVE jsr S.GetMem bcs .99 phx save Prodos Buffer hMem >STYA MLICALL.PARAMS+3 >MLICALL MLIOPEN bcs .98 lda MLICALL.PARAMS+5 get ref_num plx get back Prodos Buffer hMem rts CC .98 plx get back Prodos Buffer hMem pha save MLI error txa jsr S.FreeMemA discard Prodos Buffer pla get back MLI error sec .99 rts *-------------------------------------- * S.MLINewline * in : * PULLB = ref_num * PULLB = Enable Mask * PULLB = Newline Char *-------------------------------------- S.MLINewLine >PULLB MLICALL.PARAMS+1 >PULLB MLICALL.PARAMS+2 >PULLB MLICALL.PARAMS+3 >MLICALL MLINEWLINE rts *-------------------------------------- * S.MLIRead * in : * PULLB = ref_num * PULLW = Dest PTR * PULLW = Bytes To Read * out : * Y,A = Bytes Read *-------------------------------------- S.MLIRead >PULLB MLICALL.PARAMS+1 >PULLW MLICALL.PARAMS+2 >PULLW MLICALL.PARAMS+4 >MLICALL MLIREAD bcs .9 >LDYA MLICALL.PARAMS+6 .9 rts *-------------------------------------- * S.MLIWrite * in : * PULLB = ref_num * PULLW = Dest PTR * PULLW = Bytes To Read * out : * Y,A = Bytes Written *-------------------------------------- S.MLIWrite >PULLB MLICALL.PARAMS+1 >PULLW MLICALL.PARAMS+2 >PULLW MLICALL.PARAMS+4 >MLICALL MLIWRITE bcs .9 >LDYA MLICALL.PARAMS+6 .9 rts *-------------------------------------- * S.MLICloseA * in : * A = ref_num * out : *-------------------------------------- S.MLICloseA sta MLICALL.PARAMS+1 >MLICALL MLICLOSE rts *-------------------------------------- S.MLIFlushA sta MLICALL.PARAMS+1 >MLICALL MLIFLUSH rts *-------------------------------------- S.MLISetMark *-------------------------------------- * S.MLIGetMarkA * in : * A = ref_num * out : * Y,A,X = EOF *-------------------------------------- S.MLIGetMarkA sta MLICALL.PARAMS+1 >MLICALL MLIGETMARK bcs .9 >LDYA MLICALL.PARAMS+2 ldx MLICALL.PARAMS+4 clc .9 rts *-------------------------------------- S.MLISetEOF *-------------------------------------- * S.MLIGetEOF * in : * A = ref_num * out : * Y,A,X = EOF *-------------------------------------- S.MLIGetEOFA sta MLICALL.PARAMS+1 >MLICALL MLIGETEOF bcs .9 >LDYA MLICALL.PARAMS+2 ldx MLICALL.PARAMS+4 clc .9 rts *-------------------------------------- S.MLISetBuf clc rts *-------------------------------------- S.MLIGetBuf clc rts *-------------------------------------- S.MLIGetTime >MLICALL MLIGETTIME rts *-------------------------------------- S.MLIAllocIRQ >PULLB MLICALL.PARAMS+1 >PULLW MLICALL.PARAMS+2 >MLICALL MLIALLOCIRQ rts *-------------------------------------- S.MLIDeallocIRQA sta MLICALL.PARAMS+1 >MLICALL MLIDEALLOCIRQ rts *-------------------------------------- S.MLIReadBlock clc rts *-------------------------------------- S.MLIWriteBlock clc rts *-------------------------------------- MAN SAVE SYS/KERNEL.S.MLI LOAD SYS/KERNEL.S ASM