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