A2osX/SYS/KERNEL.S.PFT.txt
2016-08-28 22:48:01 +02:00

100 lines
2.0 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

PR#3
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
.LIST OFF
*--------------------------------------
* In :
* Y,A = PATH (PSTR)
* Out :
* CC :
* CS : A = EC
*--------------------------------------
S.PFTCHECKPATHSTK
lda (pStack) read PTR.LO on top of stack
pha
ldy #1
lda (pStack),y read PTR.HI on top of stack
ply
S.PFTCHECKPATHYA
stx S.PFT.SYSCALL save #SYSCALL
>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
ldy #S.PFT.HANDLER
lda (ZPQuickPtr2),y get hLib
jsr S.GetMemPtrA
>STYA .3+1
lda S.PFT.SYSCALL getback #SYSCALL
sec
sbc #SYS.FOPEN-4 0=Lib.load, 2=Lib.Unload
tax
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
sta ZPQuickPtr2
bcc .1
.9 >LDYA ZPQuickPtr1 restore passed params
ldx S.PFT.SYSCALL
>LDYA ZPQuickPtr1
rts
*--------------------------------------
* In :
* PUSHB/A = hFILE
* Out :
* CC : Y,A = PTR to S.DIRENT
* CS : A = EC
*--------------------------------------
S.PFTCHECKFILESTK
lda (pStack) read hFILE on top of stack
S.PFTCHECKFILEA
jsr S.GetMemPtrA X = unmidified
.8 clc
rts
.9 sec
rts
*--------------------------------------
* In :
* hDIR
*--------------------------------------
S.PFTCHECKDIRA lda (pStack) read hDIR on top of stack
rts
*--------------------------------------
S.PFT.SYSCALL .BS 1
*--------------------------------------
MAN
SAVE SYS/KERNEL.S.PFT
LOAD SYS/KERNEL.S
ASM