A2osX/SYS/KERNEL.S.MLI.txt

231 lines
5.4 KiB
Plaintext
Raw Normal View History

2015-03-14 21:48:35 +00:00
PR#3
2015-06-03 18:30:57 +00:00
PREFIX /A2OSX.SRC
2015-03-14 21:48:35 +00:00
NEW
INC 1
AUTO 6
.LIST OFF
*--------------------------------------
* PUBLIC
*--------------------------------------
2016-01-06 22:05:12 +00:00
S.MLICreateFile >PULLW MLICALL.PARAMS+1
>PULLB MLICALL.PARAMS+3 Access
>PULLB MLICALL.PARAMS+4 File type
>PULLW MLICALL.PARAMS+5 Aux type
2016-05-01 21:13:54 +00:00
lda #$01 Storage=Standard Files
bra S.MLICreate
2015-06-03 18:30:57 +00:00
*--------------------------------------
S.MLICreateDirYA
>STYA MLICALL.PARAMS+1
lda #$C3
sta MLICALL.PARAMS+3 Access
lda #$0F
sta MLICALL.PARAMS+4 type=Directory
2016-05-01 21:13:54 +00:00
lda #$0D Storage=Linked List
S.MLICreate sta MLICALL.PARAMS+7
2015-06-03 18:30:57 +00:00
>MLICALL MLICREATE
rts
*--------------------------------------
S.MLIDestroyYA >STYA MLICALL.PARAMS+1
>MLICALL MLIDESTROY
rts
*--------------------------------------
S.MLIRename >PULLW MLICALL.PARAMS+3
>PULLW MLICALL.PARAMS+1
>MLICALL MLIRENAME
rts
*--------------------------------------
2016-05-01 21:13:54 +00:00
* S.MLISetFileInfo
*--------------------------------------
2015-03-14 21:48:35 +00:00
S.MLISetFileInfo
2016-05-01 21:13:54 +00:00
>PULLW ZPQuickPtr1
>PULLW MLICALL.PARAMS+1
ldy #$E
.1 lda (ZPQuickPtr1),y
sta MLICALL.PARAMS+3,y
dey
bpl .1
>MLICALL MLISETFILEINFO
rts
2015-03-14 21:48:35 +00:00
*--------------------------------------
2016-06-07 06:10:18 +00:00
* S.MLIGetFileInfoYA
2015-03-14 21:48:35 +00:00
* in :
2016-06-07 06:10:18 +00:00
* Y,A = FileName
2015-03-14 21:48:35 +00:00
* out :
* Y,A = PTR To Buffer (L=15)
*--------------------------------------
2015-06-03 18:30:57 +00:00
S.MLIGetFileInfoYA
2015-03-14 21:48:35 +00:00
>STYA MLICALL.PARAMS+1
2015-06-03 18:30:57 +00:00
>MLICALL MLIGETFILEINFO
2015-03-14 21:48:35 +00:00
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
2015-06-03 18:30:57 +00:00
>MLICALL MLIONLINE
2015-03-14 21:48:35 +00:00
rts
*--------------------------------------
2015-06-03 18:30:57 +00:00
S.MLISetPrefixYA
>STYA MLICALL.PARAMS+1
>MLICALL MLISETPREFIX
rts
2015-03-14 21:48:35 +00:00
*--------------------------------------
2015-06-03 18:30:57 +00:00
S.MLIGetPrefixYA
>STYA MLICALL.PARAMS+1
>MLICALL MLIGETPREFIX
2015-03-14 21:48:35 +00:00
rts
*--------------------------------------
2016-06-07 06:10:18 +00:00
* S.MLIOpenYA
2015-03-14 21:48:35 +00:00
* in :
2016-06-07 06:10:18 +00:00
* YA = FileName
2015-03-14 21:48:35 +00:00
* out :
* A = ref_num
* X = buf hMem
*--------------------------------------
2015-06-03 18:30:57 +00:00
S.MLIOpenYA >STYA MLICALL.PARAMS+1
2015-03-14 21:48:35 +00:00
>PUSHWI 1024 get a ProDOS IO buffer
2015-06-03 18:30:57 +00:00
>PUSHBI S.MEM.F.ALIGN+S.MEM.F.NOMOVE
2015-03-14 21:48:35 +00:00
jsr S.GetMem
bcs .99
2015-06-03 18:30:57 +00:00
2015-03-14 21:48:35 +00:00
phx save Prodos Buffer hMem
>STYA MLICALL.PARAMS+3
2015-06-03 18:30:57 +00:00
>MLICALL MLIOPEN
2015-03-14 21:48:35 +00:00
bcs .98
lda MLICALL.PARAMS+5 get ref_num
plx get back Prodos Buffer hMem
rts CC
2015-06-03 18:30:57 +00:00
2015-03-14 21:48:35 +00:00
.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
2015-06-03 18:30:57 +00:00
>MLICALL MLINEWLINE
2015-03-14 21:48:35 +00:00
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
2015-06-03 18:30:57 +00:00
>MLICALL MLIREAD
2015-03-14 21:48:35 +00:00
bcs .9
>LDYA MLICALL.PARAMS+6
.9 rts
*--------------------------------------
* S.MLIWrite
* in :
* PULLB = ref_num
2016-01-06 22:05:12 +00:00
* PULLW = Src PTR
* PULLW = Bytes To Write
2015-03-14 21:48:35 +00:00
* out :
* Y,A = Bytes Written
*--------------------------------------
S.MLIWrite >PULLB MLICALL.PARAMS+1
>PULLW MLICALL.PARAMS+2
>PULLW MLICALL.PARAMS+4
2015-06-03 18:30:57 +00:00
>MLICALL MLIWRITE
2015-03-14 21:48:35 +00:00
bcs .9
>LDYA MLICALL.PARAMS+6
.9 rts
*--------------------------------------
2015-06-03 18:30:57 +00:00
* S.MLICloseA
2015-03-14 21:48:35 +00:00
* in :
* A = ref_num
* out :
*--------------------------------------
S.MLICloseA sta MLICALL.PARAMS+1
2015-06-03 18:30:57 +00:00
>MLICALL MLICLOSE
rts
*--------------------------------------
S.MLIFlushA sta MLICALL.PARAMS+1
>MLICALL MLIFLUSH
2015-03-14 21:48:35 +00:00
rts
*--------------------------------------
S.MLISetMark
2015-06-03 18:30:57 +00:00
*--------------------------------------
* 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
*--------------------------------------
2015-03-14 21:48:35 +00:00
S.MLISetEOF
*--------------------------------------
* S.MLIGetEOF
* in :
* A = ref_num
* out :
* Y,A,X = EOF
*--------------------------------------
S.MLIGetEOFA sta MLICALL.PARAMS+1
2015-06-03 18:30:57 +00:00
>MLICALL MLIGETEOF
2015-03-14 21:48:35 +00:00
bcs .9
>LDYA MLICALL.PARAMS+2
ldx MLICALL.PARAMS+4
clc
.9 rts
*--------------------------------------
2015-06-03 18:30:57 +00:00
S.MLISetBuf clc
rts
*--------------------------------------
S.MLIGetBuf clc
rts
*--------------------------------------
S.MLIGetTime >MLICALL MLIGETTIME
rts
*--------------------------------------
S.MLIAllocIRQ >PULLW MLICALL.PARAMS+2
2015-06-03 18:30:57 +00:00
>MLICALL MLIALLOCIRQ
bcs .9
lda MLICALL.PARAMS+1
.9 rts
2015-06-03 18:30:57 +00:00
*--------------------------------------
S.MLIDeallocIRQA
sta MLICALL.PARAMS+1
>MLICALL MLIDEALLOCIRQ
rts
*--------------------------------------
S.MLIReadBlock clc
rts
*--------------------------------------
S.MLIWriteBlock clc
rts
*--------------------------------------
2015-03-14 21:48:35 +00:00
MAN
SAVE SYS/KERNEL.S.MLI
LOAD SYS/KERNEL.S
ASM