mirror of https://github.com/A2osX/A2osX.git
Compare commits
3 Commits
2c549174d4
...
d69b4e0488
Author | SHA1 | Date |
---|---|---|
Brian J. Bernstein | d69b4e0488 | |
burniouf | 5ff8654986 | |
burniouf | 6f0f9c0a3d |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -2,11 +2,9 @@ NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FILE.New jsr FILE.Reset
|
FILE.New >LDYA L.MSG.NEWFILE
|
||||||
|
|
||||||
>LDYA L.MSG.NEWFILE
|
|
||||||
|
|
||||||
FILE.RealPath >PUSHYA
|
FILE.NewYA >PUSHYA
|
||||||
>PUSHWZ Allocate
|
>PUSHWZ Allocate
|
||||||
>SYSCALL RealPath
|
>SYSCALL RealPath
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -14,9 +12,11 @@ FILE.RealPath >PUSHYA
|
||||||
txa
|
txa
|
||||||
>STA.G hFileName
|
>STA.G hFileName
|
||||||
|
|
||||||
|
jmp FILE.Reset
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FILE.Load jsr FILE.RealPath
|
FILE.Load jsr FILE.NewYA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr FILE.Reset
|
jsr FILE.Reset
|
||||||
|
|
|
@ -175,6 +175,8 @@ CS.RUN >PUSHW L.MSG.TERMCAP
|
||||||
|
|
||||||
cmp #E.OOM
|
cmp #E.OOM
|
||||||
beq CS.RUN.RTS
|
beq CS.RUN.RTS
|
||||||
|
|
||||||
|
bra .3
|
||||||
|
|
||||||
.2 jsr FILE.New
|
.2 jsr FILE.New
|
||||||
bcs CS.RUN.RTS
|
bcs CS.RUN.RTS
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SEL2.PBuf .EQ $0280 prefix buffer
|
SEL2.PBuf .EQ $0280 prefix buffer
|
||||||
SEL2.VBuf .EQ $0F00 volume buffer
|
SEL2.VBuf .EQ $0F00 volume buffer
|
||||||
SEL2.FBuf .EQ $1C00 open file buffer (selector)
|
SEL2.FBuf .EQ $1C00 open file buffer (selector)
|
||||||
|
|
|
@ -992,14 +992,14 @@ XDOS.Create1 jsr XDOS.ZeroGBuf zero out XDOS.GBuf
|
||||||
dey
|
dey
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
ldy #$03 index to 'access' parameter
|
ldy #$03 index to ACCESS parameter
|
||||||
lda (ZP.A3L),y
|
lda (ZP.A3L),y
|
||||||
sta XDOS.DE.Access
|
sta XDOS.DE.Access
|
||||||
iny also move 'file identification'
|
iny also move TYPE
|
||||||
lda (ZP.A3L),y
|
lda (ZP.A3L),y
|
||||||
sta XDOS.DE.Type
|
sta XDOS.DE.Type
|
||||||
|
|
||||||
.6 iny move auxillary identification bytes
|
.6 iny move AUXTYPE
|
||||||
lda (ZP.A3L),y
|
lda (ZP.A3L),y
|
||||||
sta XDOS.DE.AuxType-5,y
|
sta XDOS.DE.AuxType-5,y
|
||||||
cpy #$06
|
cpy #$06
|
||||||
|
@ -1016,23 +1016,23 @@ XDOS.Create1 jsr XDOS.ZeroGBuf zero out XDOS.GBuf
|
||||||
lda #$01 usage is always 1 block
|
lda #$01 usage is always 1 block
|
||||||
sta XDOS.DE.BlkUsed
|
sta XDOS.DE.BlkUsed
|
||||||
|
|
||||||
lda XDOS.DE.DirHBlk place back pointer to header block
|
lda XDOS.DE.DirHBlk place back pointer to header block
|
||||||
sta XDOS.DE.BlkPtr
|
sta XDOS.DE.BlkPtr
|
||||||
lda XDOS.DE.DirHBlk+1
|
lda XDOS.DE.DirHBlk+1
|
||||||
sta XDOS.DE.BlkPtr+1
|
sta XDOS.DE.BlkPtr+1
|
||||||
|
|
||||||
lda XDOS.DE.Filename storage type.
|
lda XDOS.DE.Filename storage type.
|
||||||
and #$E0 is it a directory?
|
and #$E0 is it a directory?
|
||||||
beq cralcblk branch if seed file.
|
beq XDOS.CreateDBLK branch if seed file.
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Create Dir First Block
|
* Create Dir First Block
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ldx #$1E move header to data block
|
XDOS.Create2 ldx #$1E move header to data block
|
||||||
|
|
||||||
cmvheadr lda XDOS.DE.Filename,x
|
.1 lda XDOS.DE.Filename,x
|
||||||
sta XDOS.GBuf+4,x
|
sta XDOS.GBuf+4,x
|
||||||
dex
|
dex
|
||||||
bpl cmvheadr
|
bpl .1
|
||||||
|
|
||||||
eor #$30
|
eor #$30
|
||||||
sta XDOS.GBuf+4 make it a directory header mark.
|
sta XDOS.GBuf+4 make it a directory header mark.
|
||||||
|
@ -1041,34 +1041,41 @@ cmvheadr lda XDOS.DE.Filename,x
|
||||||
|
|
||||||
ldx #$07 overwrite password area and other
|
ldx #$07 overwrite password area and other
|
||||||
|
|
||||||
cmvpass lda pass,x header info.
|
.2 lda pass,x header info.
|
||||||
sta XDOS.GBuf+20,x
|
sta XDOS.GBuf+20,x
|
||||||
|
|
||||||
lda xdosver,x
|
lda xdosver,x
|
||||||
sta XDOS.GBuf+32,x
|
sta XDOS.GBuf+32,x
|
||||||
dex
|
dex
|
||||||
bpl cmvpass
|
bpl .2
|
||||||
|
|
||||||
.ELSE
|
.ELSE
|
||||||
lda #$75
|
|
||||||
sta XDOS.GBuf+20
|
|
||||||
|
|
||||||
ldx #XDOS.VolHdrDef.Cnt-1
|
ldx #XDOS.VolHdrDef.Cnt-1
|
||||||
|
|
||||||
.1 lda XDOS.VolHdrDef,x
|
.2 lda XDOS.VolHdrDef,x
|
||||||
sta XDOS.GBuf+34,x
|
sta XDOS.GBuf+34,x
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .2
|
||||||
|
|
||||||
|
lda #$75
|
||||||
|
sta XDOS.GBuf+20
|
||||||
|
|
||||||
|
ldx #7
|
||||||
|
|
||||||
|
.3 stz XDOS.GBuf+20,x
|
||||||
|
dex
|
||||||
|
bne .3
|
||||||
|
|
||||||
.FIN
|
.FIN
|
||||||
|
|
||||||
ldx #$02 and include info about parent directory
|
ldx #$02 and include info about parent directory
|
||||||
stx XDOS.DE.EOF+1 set file size = 512
|
stx XDOS.DE.EOF+1 set file size = 512
|
||||||
|
|
||||||
cmvparnt lda XDOS.DE.DirEBlk,x
|
.4 lda XDOS.DE.DirEBlk,x
|
||||||
sta XDOS.GBuf+39,x
|
sta XDOS.GBuf+39,x
|
||||||
dex
|
dex
|
||||||
bpl cmvparnt
|
bpl .4
|
||||||
|
|
||||||
lda XDOS.DH.EL lastly, the length of parent's
|
lda XDOS.DH.EL lastly, the length of parent's
|
||||||
sta XDOS.GBuf+42 directory entries.
|
sta XDOS.GBuf+42 directory entries.
|
||||||
|
@ -1076,8 +1083,8 @@ cmvparnt lda XDOS.DE.DirEBlk,x
|
||||||
.DO LOWERCASE=1
|
.DO LOWERCASE=1
|
||||||
jsr XDOS.PackGBuf
|
jsr XDOS.PackGBuf
|
||||||
.FIN
|
.FIN
|
||||||
|
*--------------------------------------
|
||||||
cralcblk jsr XDOS.GetFreeBlk get address of file's data block
|
XDOS.CreateDBLK jsr XDOS.GetFreeBlk get address of file's data block
|
||||||
bcs crerr3
|
bcs crerr3
|
||||||
|
|
||||||
sta XDOS.DE.KeyPtr
|
sta XDOS.DE.KeyPtr
|
||||||
|
@ -1088,11 +1095,11 @@ cralcblk jsr XDOS.GetFreeBlk get address of file's data block
|
||||||
bcs crerr3
|
bcs crerr3
|
||||||
|
|
||||||
inc XDOS.DH.FileCnt add 1 to total # of files in this dir
|
inc XDOS.DH.FileCnt add 1 to total # of files in this dir
|
||||||
bne credone
|
bne .1
|
||||||
|
|
||||||
inc XDOS.DH.FileCnt+1
|
inc XDOS.DH.FileCnt+1
|
||||||
|
|
||||||
credone jsr XDOS.DE.Update go revise directories with new file
|
.1 jsr XDOS.DE.Update go revise directories with new file
|
||||||
bcs crerr3
|
bcs crerr3
|
||||||
|
|
||||||
jmp XDOS.FlushBM lastly, update volume bitmap
|
jmp XDOS.FlushBM lastly, update volume bitmap
|
||||||
|
|
|
@ -375,7 +375,7 @@ XDOS.GetDH ldx #10 move this directory info
|
||||||
.DO ACL=1
|
.DO ACL=1
|
||||||
ldx #7
|
ldx #7
|
||||||
|
|
||||||
lda XDOS.GBuf+$14
|
lda XDOS.GBuf+20
|
||||||
cmp #$57
|
cmp #$57
|
||||||
bne .20
|
bne .20
|
||||||
|
|
||||||
|
|
|
@ -142,25 +142,41 @@ X.InitSrcDirPtr1
|
||||||
lda (ZPPtr2),y
|
lda (ZPPtr2),y
|
||||||
beq .8 we have '/'
|
beq .8 we have '/'
|
||||||
|
|
||||||
jsr X.Init.StatBuf
|
jsr X.Init.Stat
|
||||||
bcs .1 File/DIR does not exists, go extract pattern
|
bcs .1 File/DIR does not exists, go extract pattern
|
||||||
|
|
||||||
.DO X.ENTER.SUBDIR=1
|
.DO X.ENTER.SUBDIR=1
|
||||||
|
|
||||||
>LDA.G STATBUF+S.STAT.MODE+1
|
>LDA.G STATBUF+S.STAT.MODE+1
|
||||||
and #$F0
|
and #$F0
|
||||||
cmp /S.STAT.MODE.DIR
|
cmp /S.STAT.MODE.DIR
|
||||||
beq .8 TYPE=DIR, do not extract pattern
|
bne .7 Not a dir....
|
||||||
|
|
||||||
|
jsr X.GetPtr2Len
|
||||||
|
|
||||||
|
dey
|
||||||
|
lda #'/'
|
||||||
|
cmp (ZPPtr2),y
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
iny
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
iny
|
||||||
|
lda #0
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
|
||||||
|
bra .8 TYPE=DIR, do not extract pattern
|
||||||
|
|
||||||
|
.ELSE
|
||||||
|
|
||||||
|
bra .7
|
||||||
|
|
||||||
.FIN
|
.FIN
|
||||||
|
|
||||||
bra .4
|
|
||||||
|
|
||||||
.1 cmp #MLI.E.INVPATH
|
.1 cmp #MLI.E.INVPATH
|
||||||
beq .11
|
bne .98
|
||||||
|
|
||||||
sec
|
jsr X.GetPtr2Len TYPE is not DIR, check if wc
|
||||||
rts
|
|
||||||
|
|
||||||
.11 jsr X.GetPtr2Len TYPE is not DIR, check if wc
|
|
||||||
|
|
||||||
dey
|
dey
|
||||||
|
|
||||||
|
@ -168,22 +184,23 @@ X.InitSrcDirPtr1
|
||||||
|
|
||||||
.2 lda (ZPPtr2),y search backward for a /
|
.2 lda (ZPPtr2),y search backward for a /
|
||||||
cmp #'/'
|
cmp #'/'
|
||||||
beq .3
|
beq .6
|
||||||
|
|
||||||
cmp #'?' Test if some wildcard chars....
|
cmp #'?' Test if some wildcard chars....
|
||||||
beq .21
|
beq .3
|
||||||
|
|
||||||
cmp #'*'
|
cmp #'*'
|
||||||
bne .22
|
bne .4
|
||||||
|
|
||||||
.21 inx inc wildcard count
|
.3 inx inc wildcard count
|
||||||
.22 dey
|
|
||||||
|
.4 dey
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
.3 txa
|
.6 txa
|
||||||
beq .98 no wc, file not found....
|
beq .97 no wc, file not found....
|
||||||
|
|
||||||
.4 jsr X.InitSplitBuf
|
.7 jsr X.InitSplitBuf
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>STA.G hInclude
|
>STA.G hInclude
|
||||||
|
@ -202,8 +219,8 @@ X.InitSrcDirPtr1
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.98 lda #MLI.E.INVPATH
|
.97 lda #MLI.E.INVPATH
|
||||||
sec
|
.98 sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DO X.RESET.SRC.DIR=1
|
.DO X.RESET.SRC.DIR=1
|
||||||
|
@ -239,7 +256,7 @@ X.InitDstDirPtr1
|
||||||
|
|
||||||
>STA.G hDstBasePath
|
>STA.G hDstBasePath
|
||||||
|
|
||||||
jsr X.Init.StatBuf
|
jsr X.Init.Stat
|
||||||
bcs .1 File/DIR does not exists, go extract DstFileName
|
bcs .1 File/DIR does not exists, go extract DstFileName
|
||||||
|
|
||||||
>LDA.G STATBUF+S.STAT.MODE+1
|
>LDA.G STATBUF+S.STAT.MODE+1
|
||||||
|
@ -287,7 +304,7 @@ X.InitGetBuf >LDYAI 256
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
X.Init.StatBuf >PUSHW ZPPtr2
|
X.Init.Stat >PUSHW ZPPtr2
|
||||||
>PUSHEA.G STATBUF
|
>PUSHEA.G STATBUF
|
||||||
>SYSCALL Stat
|
>SYSCALL Stat
|
||||||
rts
|
rts
|
||||||
|
|
Loading…
Reference in New Issue