A2osX/SYS/KERNEL.S.PFT.txt

105 lines
2.2 KiB
Plaintext
Raw Normal View History

2016-08-24 15:42:33 +00:00
PR#3
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
.LIST OFF
*--------------------------------------
* In :
* PULLW/Y,A = PATH (PSTR)
2016-08-24 15:42:33 +00:00
* Out :
*--------------------------------------
K.PFTCheckPathSTK
lda (pStack) read PTR.LO on top of stack
pha
ldy #1
lda (pStack),y read PTR.HI on top of stack
ply
K.PFTCheckPathYA
stx S.PFT.SYSCALL save #SYSCALL
2016-08-24 15:42:33 +00:00
>STYA ZPQuickPtr1
>LDYA FltMgr.Table
>STYA ZPQuickPtr2
.1 lda (ZPQuickPtr2) Get Filter Len
beq .9 End Of Table, Exit
tay
lda (ZPQuickPtr1),y is there a "/" at this point in SRC path?
cmp #'/'
bne .8
.2 lda (ZPQuickPtr1),y
cmp (ZPQuickPtr2),y
bne .8
dey
bne .2
2016-08-28 20:48:01 +00:00
ldy #S.PFT.HANDLER
2016-08-24 15:42:33 +00:00
lda (ZPQuickPtr2),y get hLib
2016-09-21 15:20:37 +00:00
jsr K.GetMemPtrA
2016-08-24 15:42:33 +00:00
>STYA .3+1
lda S.PFT.SYSCALL getback #SYSCALL
sec
sbc #SYS.FOPEN-4 0=Lib.load, 2=Lib.Unload
tax
2016-08-24 15:42:33 +00:00
pla discard JSR return @
pla
>LDYA ZPQuickPtr1 restore passed params
.3 jmp $ffff
.8 lda ZPQuickPtr2
clc
adc (ZPQuickPtr2) Add STR len
adc #S.PFT
2016-08-24 15:42:33 +00:00
sta ZPQuickPtr2
bcc .1
2016-08-24 15:42:33 +00:00
.9 >LDYA ZPQuickPtr1 restore passed params
ldx S.PFT.SYSCALL
2016-08-24 15:42:33 +00:00
rts
*--------------------------------------
* In :
* PULLB/A = hFILE/hDIR
2016-08-24 15:42:33 +00:00
* Out :
*--------------------------------------
K.PFTCheckFileSTK
lda (pStack) read hFILE on top of stack
K.PFTCheckFileA
K.PFTCheckDirA stx S.PFT.SYSCALL save #SYSCALL
sta S.PFT.hFILE
2016-09-21 15:20:37 +00:00
jsr K.GetMemPtrA X = unmidified
>STYA ZPQuickPtr1
lda (ZPQuickPtr1)
beq .9 Handler is 0, back to kernel....
2016-09-21 15:20:37 +00:00
jsr K.GetMemPtrA
>STYA .1+1
lda S.PFT.SYSCALL getback #SYSCALL
sec
sbc #SYS.FOPEN-4 0=Lib.load, 2=Lib.Unload
tax
2016-08-24 15:42:33 +00:00
pla discard JSR return @
pla
2016-08-24 15:42:33 +00:00
lda S.PFT.hFILE restore passed params
.1 jmp $ffff
2016-08-24 15:42:33 +00:00
.9 lda S.PFT.hFILE
2016-08-24 15:42:33 +00:00
rts
*--------------------------------------
S.PFT.hFILE .BS 1
S.PFT.SYSCALL .BS 1
2016-08-24 15:42:33 +00:00
*--------------------------------------
MAN
SAVE SYS/KERNEL.S.PFT
LOAD SYS/KERNEL.S
ASM