A2osX/SYS/KERNEL.S.PFT.txt

123 lines
2.5 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
*--------------------------------------
2016-09-26 16:00:52 +00:00
* K.PFTAdd
* In :
* Out :
*--------------------------------------
K.PFTAdd
clc
rts
*--------------------------------------
* K.PFTRemove
* In :
* Out :
*--------------------------------------
K.PFTRemove
clc
rts
*--------------------------------------
2016-09-29 15:30:15 +00:00
* PFT.CheckPath___
2016-09-26 16:00:52 +00:00
* In :
* PULLW/Y,A = PATH (PSTR)
* Out :
2016-08-24 15:42:33 +00:00
*--------------------------------------
2016-09-29 15:30:15 +00:00
PFT.CheckPathSTK
lda (pStack) read PTR.LO on top of stack
pha
ldy #1
lda (pStack),y read PTR.HI on top of stack
ply
2016-09-29 15:30:15 +00:00
PFT.CheckPathYA
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
*--------------------------------------
2016-09-29 15:30:15 +00:00
* PFT.Check___
2016-09-26 16:00:52 +00:00
* In :
* PULLB/A = hFILE/hDIR
* Out :
2016-08-24 15:42:33 +00:00
*--------------------------------------
2016-09-29 15:30:15 +00:00
PFT.CheckFileSTK
lda (pStack) read hFILE on top of stack
2016-09-29 15:30:15 +00:00
PFT.CheckFileA
PFT.CheckDirA 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