mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-10 22:54:59 +00:00
168 lines
3.6 KiB
Plaintext
168 lines
3.6 KiB
Plaintext
|
PR#3
|
|||
|
PREFIX /A2OSX.SRC
|
|||
|
NEW
|
|||
|
INC 1
|
|||
|
AUTO 6
|
|||
|
.LIST OFF
|
|||
|
*--------------------------------------
|
|||
|
* For All SYS.xxxx calls, X = #SYSCall
|
|||
|
* Must be kept in X before calling
|
|||
|
* S.PFTCheckPathXX
|
|||
|
*--------------------------------------
|
|||
|
* S.FOPEN
|
|||
|
* In :
|
|||
|
* PULLW = PATH (PSTR)
|
|||
|
* PULLB = MODE
|
|||
|
* Out :
|
|||
|
* CC : A = hFILE
|
|||
|
* CS : A = EC
|
|||
|
*--------------------------------------
|
|||
|
S.FOPEN jsr S.PFTCHECKPATHSTK
|
|||
|
>PULLW MLICALL.PARAMS+1
|
|||
|
>PULLB S.FOPEN.MODE
|
|||
|
|
|||
|
>PUSHWI S.FILE.PRODOS
|
|||
|
>PUSHBI S.MEM.F.INIT0
|
|||
|
jsr S.GetMem
|
|||
|
bcs .99
|
|||
|
>STYA ZPQuickPtr1
|
|||
|
stx hFILE
|
|||
|
|
|||
|
>PUSHWI 1024 get a ProDOS IOBUF
|
|||
|
>PUSHBI S.MEM.F.ALIGN+S.MEM.F.NOMOVE
|
|||
|
jsr S.GetMem
|
|||
|
bcs .99
|
|||
|
|
|||
|
>STYA MLICALL.PARAMS+3 Save Ptr to IOBUF for MLIOPEN call
|
|||
|
txa
|
|||
|
ldy #S.FILE.PRODOS.IOBUF
|
|||
|
sta (ZPQuickPtr1),y
|
|||
|
|
|||
|
>MLICALL MLIOPEN
|
|||
|
bcc .1 Failed...
|
|||
|
bit S.FOPEN.MODE Create if not exists?
|
|||
|
bpl .98 no....error
|
|||
|
|
|||
|
|
|||
|
.1 lda MLICALL.PARAMS+5 get ref_num
|
|||
|
ldy #S.FILE.PRODOS.REF
|
|||
|
sta (ZPQuickPtr1),y
|
|||
|
|
|||
|
lda S.FOPEN.MODE
|
|||
|
bit #SYS.FOPEN.A
|
|||
|
beq .1
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
.1
|
|||
|
lda hFILE
|
|||
|
clc
|
|||
|
rts CC
|
|||
|
|
|||
|
.98 pha save MLI error
|
|||
|
jsr S.FCLOSEA.1
|
|||
|
pla get back MLI error
|
|||
|
sec
|
|||
|
.99 rts
|
|||
|
*--------------------------------------
|
|||
|
S.FOPEN.MODE .BS 1
|
|||
|
hFILE .BS 1
|
|||
|
*--------------------------------------
|
|||
|
* S.FCLOSEA
|
|||
|
* In :
|
|||
|
* A = hFILE
|
|||
|
*--------------------------------------
|
|||
|
S.FCLOSEA jsr S.PFTCHECKFILEA
|
|||
|
jsr S.GetMemPtrA
|
|||
|
>STYA ZPQuickPtr1
|
|||
|
|
|||
|
S.FCLOSEA.1 ldy #S.FILE.PRODOS.REF
|
|||
|
lda (ZPQuickPtr1),y
|
|||
|
beq .1
|
|||
|
sta MLICALL.PARAMS+1
|
|||
|
>MLICALL MLICLOSE
|
|||
|
|
|||
|
.1 ldy #S.FILE.PRODOS.IOBUF
|
|||
|
lda (ZPQuickPtr1),y
|
|||
|
beq .2
|
|||
|
jsr S.FreeMemA
|
|||
|
|
|||
|
.2 lda hFILE
|
|||
|
jsr S.FreeMemA
|
|||
|
rts
|
|||
|
*--------------------------------------
|
|||
|
* S.FREAD
|
|||
|
* In :
|
|||
|
* PULLB = hFILE
|
|||
|
* PULLW = Bytes To Read
|
|||
|
* PULLW = Dest Ptr
|
|||
|
* Out :
|
|||
|
* Y,A = Bytes Read
|
|||
|
*--------------------------------------
|
|||
|
S.FREAD jsr S.PFTCHECKFILESTK
|
|||
|
>PULLB MLICALL.PARAMS+1
|
|||
|
>PULLW MLICALL.PARAMS+4
|
|||
|
>PULLW MLICALL.PARAMS+2
|
|||
|
>MLICALL MLIREAD
|
|||
|
bcs .9
|
|||
|
>LDYA MLICALL.PARAMS+6
|
|||
|
.9 rts
|
|||
|
*--------------------------------------
|
|||
|
* S.FWRITE
|
|||
|
* In :
|
|||
|
* PULLB = hFILE
|
|||
|
* PULLW = Bytes To Write
|
|||
|
* PULLW = Src Ptr
|
|||
|
* Out :
|
|||
|
* Y,A = Bytes Written
|
|||
|
*--------------------------------------
|
|||
|
S.FWRITE jsr S.PFTCHECKFILESTK
|
|||
|
>PULLB MLICALL.PARAMS+1
|
|||
|
>PULLW MLICALL.PARAMS+4
|
|||
|
>PULLW MLICALL.PARAMS+2
|
|||
|
>MLICALL MLIWRITE
|
|||
|
bcs .9
|
|||
|
>LDYA MLICALL.PARAMS+6
|
|||
|
.9 rts
|
|||
|
*--------------------------------------
|
|||
|
* S.FFLUSHA
|
|||
|
* In :
|
|||
|
* A = hFILE
|
|||
|
*--------------------------------------
|
|||
|
S.FFLUSHA jsr S.PFTCHECKFILEA
|
|||
|
sta MLICALL.PARAMS+1
|
|||
|
>MLICALL MLIFLUSH
|
|||
|
rts
|
|||
|
*--------------------------------------
|
|||
|
*--------------------------------------
|
|||
|
S.FSEEK
|
|||
|
*--------------------------------------
|
|||
|
*--------------------------------------
|
|||
|
S.FTELL
|
|||
|
*--------------------------------------
|
|||
|
*--------------------------------------
|
|||
|
S.FEOF
|
|||
|
*--------------------------------------
|
|||
|
*--------------------------------------
|
|||
|
S.REMOVE
|
|||
|
*--------------------------------------
|
|||
|
*--------------------------------------
|
|||
|
S.RENAME
|
|||
|
*--------------------------------------
|
|||
|
S.MKDIRYA jsr S.PFTCHECKPATHYA
|
|||
|
>STYA MLICALL.PARAMS+1
|
|||
|
lda #$C3
|
|||
|
sta MLICALL.PARAMS+3 Access
|
|||
|
lda #$0F
|
|||
|
sta MLICALL.PARAMS+4 type=Directory
|
|||
|
lda #$0D Storage=Linked List
|
|||
|
sta MLICALL.PARAMS+7
|
|||
|
>MLICALL MLICREATE
|
|||
|
rts
|
|||
|
*--------------------------------------
|
|||
|
MAN
|
|||
|
SAVE SYS/KERNEL.S.FIL
|
|||
|
LOAD SYS/KERNEL.S
|
|||
|
ASM
|