mirror of
https://github.com/A2osX/A2osX.git
synced 2025-01-22 22:30:25 +00:00
Kernel 0.9.1 : CP,MV,RM.....commands
This commit is contained in:
parent
c29cc70671
commit
bad4a3fc8e
@ -136,17 +136,6 @@ Make current process suspend until next RUN
|
||||
|
||||
## Out:
|
||||
|
||||
# GetFullPath.YA
|
||||
|
||||
## In :
|
||||
+ Y,A = Filename (C-String)
|
||||
|
||||
## Out :
|
||||
+ CC : success
|
||||
+ Y,A = FullPath (C-String)
|
||||
+ X = hMem of FullPath
|
||||
+ CS : A = Error Code
|
||||
|
||||
# LoadFile
|
||||
|
||||
## In:
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
139
BIN/CHTYP.S.txt
139
BIN/CHTYP.S.txt
@ -19,6 +19,7 @@ ZPPtr1 .EQ ZPBIN
|
||||
ZPPtr2 .EQ ZPBIN+2
|
||||
ZPFileName .EQ ZPBIN+4
|
||||
ZPFileStat .EQ ZPBIN+6
|
||||
ZPFullPath .EQ ZPBIN+8
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
@ -27,9 +28,10 @@ CS.START cld
|
||||
.DA #$61 6502,Level 1 (65c02)
|
||||
.DA #1 BIN Layout Version 1
|
||||
.DA 0
|
||||
.DA CS.END-CS.START Code Length To Relocate
|
||||
.DA DS.END-DS.START Data Segment to Allocate
|
||||
.DA 0
|
||||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #16 SS
|
||||
.DA #10 ZP
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Relocation Table
|
||||
@ -42,35 +44,20 @@ L.MSG.USAGE .DA MSG.USAGE
|
||||
L.MSG.FILE .DA MSG.FILE
|
||||
L.MSG.OK .DA MSG.OK
|
||||
L.MSG.ERR .DA MSG.ERR
|
||||
L.STAT .DA STAT
|
||||
L.PRODOS.FT.TXT .DA PRODOS.FT.TXT-1
|
||||
L.PRODOS.FT.TXT .DA PRODOS.FT.TXT
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT >SYSCALL GetArgC
|
||||
sta ArgCount
|
||||
cmp #1
|
||||
beq .99
|
||||
|
||||
stz ArgIndex
|
||||
|
||||
.1 dec ArgCount
|
||||
beq .7
|
||||
|
||||
inc ArgIndex
|
||||
lda ArgIndex
|
||||
CS.INIT
|
||||
.1 >INC.G ArgCount
|
||||
>SYSCALL GetArg.A
|
||||
bcs .7
|
||||
>STYA ZPPtr1
|
||||
|
||||
lda (ZPPtr1)
|
||||
cmp #2
|
||||
bne .4
|
||||
|
||||
ldy #1
|
||||
lda (ZPPtr1),y
|
||||
cmp #'-'
|
||||
bne .4
|
||||
|
||||
iny
|
||||
ldy #1
|
||||
lda (ZPPtr1),y
|
||||
|
||||
ldx OptionList
|
||||
@ -116,10 +103,17 @@ CS.INIT >SYSCALL GetArgC
|
||||
lda (pData),y
|
||||
beq .99 we also have a TYPE
|
||||
|
||||
>LDYAI 256
|
||||
>SYSCALL GetMem.YA
|
||||
bcs .99
|
||||
>STYA ZPFullPath
|
||||
txa
|
||||
>STA.G hSrcFullPath
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN >SYSCALL GetC
|
||||
CS.RUN >SYSCALL GetChar
|
||||
bcs .10 no char
|
||||
|
||||
cmp #$03 Ctrl-C
|
||||
@ -128,27 +122,24 @@ CS.RUN >SYSCALL GetC
|
||||
cmp #$13 Ctrl-S
|
||||
bne .10
|
||||
|
||||
ldy #bPause
|
||||
lda (pData),y
|
||||
>LDA.G bPause
|
||||
eor #$ff
|
||||
sta (pData),y
|
||||
bne .80
|
||||
|
||||
.10 ldy #bPause
|
||||
lda (pData),y
|
||||
.10 >LDA.G bPause
|
||||
bne .80 Pause...
|
||||
|
||||
jsr GetEntry
|
||||
bcs .9
|
||||
|
||||
ldy #hFilter
|
||||
lda (pData),y
|
||||
>LDA.G hFilter
|
||||
beq .4 No filter....
|
||||
|
||||
>SYSCALL GetMemPtr.A
|
||||
>PUSHYA
|
||||
>PUSHW ZPFileName
|
||||
>SYSCALL PStrMatch
|
||||
>SYSCALL StrMatch
|
||||
bcs .8 no match, skip....
|
||||
|
||||
.4 ldy #S.STAT.P.DRIVE
|
||||
@ -189,7 +180,7 @@ CS.RUN.DEV
|
||||
*--------------------------------------
|
||||
CS.RUN.FILE jsr CS.RUN.GetFilePath
|
||||
|
||||
>PUSHWI UsrBuf256
|
||||
>PUSHW ZPFullPath
|
||||
|
||||
>LDYA L.MSG.FILE
|
||||
>SYSCALL PrintF.YA
|
||||
@ -198,16 +189,14 @@ CS.RUN.FILE jsr CS.RUN.GetFilePath
|
||||
ldy #HexFileType
|
||||
>PUSHB (pData),y
|
||||
|
||||
>PUSHWI UsrBuf256
|
||||
>PUSHW ZPFullPath
|
||||
>SYSCALL ChTyp
|
||||
jsr CS.RUN.CheckErr
|
||||
|
||||
ldy #bRecurse
|
||||
lda (pData),y
|
||||
>LDA.G bRecurse
|
||||
bpl .8
|
||||
|
||||
ldy #1
|
||||
lda (ZPFileName),y
|
||||
lda (ZPFileName)
|
||||
cmp #'.'
|
||||
beq .8
|
||||
|
||||
@ -226,8 +215,7 @@ CS.RUN.CheckErr bcs .1
|
||||
|
||||
.1 pha
|
||||
|
||||
ldy #bContinue
|
||||
lda (pData),y
|
||||
>LDA.G bContinue
|
||||
bpl .2
|
||||
|
||||
pla
|
||||
@ -247,16 +235,17 @@ CS.RUN.CheckErr bcs .1
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GetFilePath
|
||||
ldy #hSrcBasePath
|
||||
lda (pData),y
|
||||
>LDA.G hSrcBasePath
|
||||
>SYSCALL GetMemPtr.A
|
||||
>PUSHYA
|
||||
>PUSHWI UsrBuf256
|
||||
>SYSCALL PStrCpy
|
||||
|
||||
>PUSHW ZPFullPath
|
||||
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>PUSHW ZPFileName
|
||||
>PUSHWI UsrBuf256
|
||||
>SYSCALL PStrCat
|
||||
>PUSHW ZPFullPath
|
||||
>SYSCALL StrCat
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.DOEVENT sec
|
||||
@ -265,20 +254,27 @@ CS.DOEVENT sec
|
||||
CS.QUIT jsr LeaveSubDir
|
||||
bcc CS.QUIT
|
||||
|
||||
ldy #hFilter
|
||||
lda (pData),y
|
||||
beq .3
|
||||
>LDA.G hFilter
|
||||
beq .1
|
||||
>SYSCALL FreeMem.A
|
||||
|
||||
.3 clc
|
||||
.1 >LDA.G hSrcFullPath
|
||||
beq .8
|
||||
>SYSCALL FreeMem.A
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
GetHexFileType lda (ZPPtr1)
|
||||
cmp #3
|
||||
GetHexFileType ldy #$ff
|
||||
|
||||
.10 iny
|
||||
lda (ZPPtr1),y
|
||||
bne .10
|
||||
|
||||
cpy #3
|
||||
bne .9
|
||||
|
||||
ldy #1
|
||||
lda (ZPPtr1),y
|
||||
lda (ZPPtr1)
|
||||
cmp #'0'
|
||||
bne .1
|
||||
|
||||
@ -292,16 +288,16 @@ GetHexFileType lda (ZPPtr1)
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
sta Tmp
|
||||
>STA.G HexFileType
|
||||
iny
|
||||
lda (ZPPtr1),y
|
||||
cmp #'0'
|
||||
bcc .9
|
||||
cmp #'9'+1
|
||||
bcs .9
|
||||
and #$F
|
||||
ora Tmp
|
||||
ldy #HexFileType
|
||||
|
||||
and #$0F
|
||||
>ORA.G HexFileType
|
||||
sta (pData),y
|
||||
clc
|
||||
rts
|
||||
@ -310,26 +306,26 @@ GetHexFileType lda (ZPPtr1)
|
||||
>LDYA L.PRODOS.FT.TXT
|
||||
>STYA ZPPtr2
|
||||
|
||||
.2 ldy #3
|
||||
.2 ldy #2
|
||||
|
||||
.21 lda (ZPPtr1),y
|
||||
cmp #'a'
|
||||
bcc .3
|
||||
bcc .4
|
||||
cmp #'z'+1
|
||||
bcs .3
|
||||
bcs .4
|
||||
eor #$20
|
||||
|
||||
.3 cmp (ZPPtr2),y
|
||||
bne .4
|
||||
.4 cmp (ZPPtr2),y
|
||||
bne .5
|
||||
dey
|
||||
bne .21
|
||||
bpl .21
|
||||
|
||||
lda PRODOS.FT.ID,x
|
||||
ldy #HexFileType
|
||||
sta (pData),y
|
||||
>STA.G HexFileType
|
||||
clc
|
||||
rts
|
||||
|
||||
.4 clc
|
||||
.5 clc
|
||||
lda ZPPtr2
|
||||
adc #3
|
||||
sta ZPPtr2
|
||||
@ -350,13 +346,11 @@ CS.END
|
||||
OptionList >PSTR "CRcr"
|
||||
OptionVars .DA #bContinue,#bRecurse,#bContinue,#bRecurse
|
||||
*--------------------------------------
|
||||
MSG.USAGE >CSTR "Usage : CHTYP [File *,? wildcards allowed] [File type : 0HH, SYS,TXT....]\r\n -C : Continue on error\r\n -R : Recurse subdirectories\r\n"
|
||||
MSG.USAGE >CSTR "Usage : CHTYP [File *,? wildcards allowed] [File type : 0xx (Hexadecimal byte),SYS,TXT....]\r\n -C : Continue on error\r\n -R : Recurse subdirectories\r\n"
|
||||
MSG.OK >CSTR "[Ok]\r\n"
|
||||
MSG.ERR >CSTR "[%h]\r\n"
|
||||
MSG.FILE >CSTR "CHTYP File:%S..."
|
||||
STAT .BS S.STAT
|
||||
ArgCount .BS 1
|
||||
ArgIndex .BS 1
|
||||
|
||||
Tmp .BS 1
|
||||
*--------------------------------------
|
||||
PRODOS.FT.COUNT .EQ 7
|
||||
@ -372,6 +366,11 @@ PRODOS.FT.TXT .AS "TXT"
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
ArgCount .BS 1
|
||||
|
||||
hFullPath .BS 1
|
||||
hSrcFullPath .BS 1
|
||||
STAT .BS S.STAT
|
||||
Index .BS 1
|
||||
hDIRs .BS X.MAX.RECURSE
|
||||
hDIRENTs .BS X.MAX.RECURSE
|
||||
|
28
BIN/CP.S.txt
28
BIN/CP.S.txt
@ -34,36 +34,12 @@ MSG.DONE >CSTR "%D File(s) Copied.\r\n"
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
ArgCount .BS 1
|
||||
Index .BS 1
|
||||
STAT .BS S.STAT
|
||||
|
||||
hFullPath .BS 1
|
||||
hDIRs .BS X.MAX.RECURSE
|
||||
hDIRENTs .BS X.MAX.RECURSE
|
||||
oDIRENTs .BS X.MAX.RECURSE*2
|
||||
|
||||
hSrcBasePath .BS 1
|
||||
hFilter .BS 1
|
||||
hSrcFullPath .BS 1
|
||||
hSrcFile .BS 1
|
||||
|
||||
hDstBasePath .BS 1
|
||||
hDstFileName .BS 1
|
||||
hDstFullPath .BS 1
|
||||
hDstFile .BS 1
|
||||
|
||||
bPause .BS 1
|
||||
bCopy .BS 1
|
||||
hToDelete .BS 1
|
||||
CopyRC .BS 1
|
||||
RC .BS 1
|
||||
bWildcard .BS 1
|
||||
bContinue .BS 1
|
||||
bRecurse .BS 1
|
||||
bNoConfirm .BS 1
|
||||
bQuiet .BS 1
|
||||
Count .BS 2
|
||||
.INB /A2OSX.SRC/BIN/X.CPMVRM.G
|
||||
.INB /A2OSX.SRC/BIN/X.FILEENUM.G
|
||||
DS.END
|
||||
.ED
|
||||
*--------------------------------------
|
||||
|
@ -58,6 +58,7 @@ CS.INIT ldy #S.PS.ARGC
|
||||
|
||||
ldy #1
|
||||
lda (ZPPtr1),y
|
||||
beq .99
|
||||
|
||||
ldx OptionList
|
||||
|
||||
@ -90,14 +91,16 @@ CS.INIT ldy #S.PS.ARGC
|
||||
.5 ldy #$ff
|
||||
|
||||
.6 iny
|
||||
lda (ZPPtr1),y
|
||||
beq .61
|
||||
|
||||
cpy #16
|
||||
cpy #15
|
||||
beq .99 VolName too long
|
||||
|
||||
lda (ZPPtr1),y
|
||||
sta (pData),y
|
||||
bne .6
|
||||
bra .1 success, scan for any other args
|
||||
.61 >PUSHW ZPPtr1
|
||||
>PUSHEA.G VolName
|
||||
>SYSCALL StrCpy
|
||||
jmp .1 success, scan for any other args
|
||||
|
||||
.7 >LDA.G VolName
|
||||
bne .8 Volume name ok
|
||||
@ -190,7 +193,6 @@ CS.RUN.BuildCat >LDA.G hDev
|
||||
>STA.G SizeInBlocks+1
|
||||
|
||||
>LDA.G hDev
|
||||
lda (pData),y
|
||||
>SYSCALL GetDevByID.A
|
||||
bcs .99
|
||||
|
||||
@ -212,23 +214,26 @@ CS.RUN.BuildCat >LDA.G hDev
|
||||
|
||||
>PUSHW.G SizeInBlocks
|
||||
>LIBCALL hLIBBLKDEV,LIBBLKDEV.GetProDOSCatSize
|
||||
|
||||
bcs .9
|
||||
|
||||
phy
|
||||
pha
|
||||
txa
|
||||
>STA.G BlkCnt
|
||||
pla
|
||||
ply
|
||||
|
||||
>SYSCALL GetMem0.YA BufferSize
|
||||
bcs .9
|
||||
>STYA BlkParams.Ptr
|
||||
txa
|
||||
|
||||
phx
|
||||
>STYA.G BlkParams.Ptr
|
||||
pla
|
||||
>STA.G hBuf
|
||||
|
||||
>PUSHW.G SizeInBlocks
|
||||
>PUSHEA.G VolName
|
||||
>PUSHW BlkParams.Ptr
|
||||
>PUSHW.G BlkParams.Ptr
|
||||
>LIBCALL hLIBBLKDEV,LIBBLKDEV.BuildProDOSCat
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
@ -237,18 +242,26 @@ CS.RUN.WriteCat >LDA.G hDev
|
||||
bcs .9
|
||||
>STYA pDev
|
||||
|
||||
.1 >LEA.G BlkParams.Ptr
|
||||
>LEA.G BlkParams.Ptr
|
||||
ldx #DEVMGR.WRITEBLOCK
|
||||
|
||||
jsr pDevJmp
|
||||
bcs .9
|
||||
|
||||
lda #'.'
|
||||
>SYSCALL PutChar.A
|
||||
|
||||
>LDA.G BlkParams.Ptr+1
|
||||
* clc
|
||||
adc #2
|
||||
sta (pData),y
|
||||
|
||||
>INC.G BlkParams.Num
|
||||
|
||||
* >SLEEP
|
||||
|
||||
>DEC.G BlkCnt
|
||||
bne .1
|
||||
bne CS.RUN.WriteCat
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.DOEVENT sec
|
||||
|
11
BIN/LS.S.txt
11
BIN/LS.S.txt
@ -488,22 +488,19 @@ HEXDIGIT .AS '0123456789ABCDEF'
|
||||
.OR 0
|
||||
DS.START
|
||||
ArgCount .BS 1
|
||||
Index .BS 1
|
||||
STAT .BS S.STAT
|
||||
|
||||
TIME.Create .BS 20
|
||||
TIME.Mod .BS 20
|
||||
|
||||
hFullPath .BS 1
|
||||
hDIRs .BS X.MAX.RECURSE
|
||||
hDIRENTs .BS X.MAX.RECURSE
|
||||
oDIRENTs .BS X.MAX.RECURSE*2
|
||||
hSrcBasePath .BS 1
|
||||
hFilter .BS 1
|
||||
bPause .BS 1
|
||||
bAllmostAll .BS 1
|
||||
bLong .BS 1
|
||||
bRecurse .BS 1
|
||||
|
||||
ColCount .BS 1
|
||||
|
||||
.INB /A2OSX.SRC/BIN/X.FILEENUM.G
|
||||
DS.END
|
||||
.ED
|
||||
*--------------------------------------
|
||||
|
29
BIN/MV.S.txt
29
BIN/MV.S.txt
@ -30,40 +30,17 @@ MSG.OVERWRITE >CSTR "Overwrite %S [Yes,No,All]?"
|
||||
MSG.OK >CSTR "[OK]\r\n"
|
||||
MSG.ERR >CSTR "[%h]\r\n"
|
||||
MSG.DONE >CSTR "%D File(s) Moved.\r\n"
|
||||
*--------------------------------------
|
||||
STAT .BS S.STAT
|
||||
ArgCount .BS 1
|
||||
ArgIndex .BS 1
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
Index .BS 1
|
||||
hDIRs .BS X.MAX.RECURSE
|
||||
hDIRENTs .BS X.MAX.RECURSE
|
||||
oDIRENTs .BS X.MAX.RECURSE*2
|
||||
|
||||
hSrcBasePath .BS 1
|
||||
hFilter .BS 1
|
||||
hSrcFullPath .BS 1
|
||||
hSrcFile .BS 1
|
||||
|
||||
hDstBasePath .BS 1
|
||||
hDstFileName .BS 1
|
||||
hDstFullPath .BS 1
|
||||
hDstFile .BS 1
|
||||
|
||||
bPause .BS 1
|
||||
bCopy .BS 1
|
||||
hToDelete .BS 1
|
||||
bWildcard .BS 1
|
||||
RC .BS 1
|
||||
CopyRC .BS 1
|
||||
bContinue .BS 1
|
||||
bRecurse .BS 1
|
||||
bNoConfirm .BS 1
|
||||
bQuiet .BS 1
|
||||
Count .BS 2
|
||||
.INB /A2OSX.SRC/BIN/X.CPMVRM.G
|
||||
.INB /A2OSX.SRC/BIN/X.FILEENUM.G
|
||||
|
||||
DS.END
|
||||
.ED
|
||||
*--------------------------------------
|
||||
|
23
BIN/RM.S.txt
23
BIN/RM.S.txt
@ -29,35 +29,16 @@ MSG.FILE >CSTR "RM File:%S..."
|
||||
MSG.OK >CSTR "[OK]\r\n"
|
||||
MSG.ERR >CSTR "[%h]\r\n"
|
||||
MSG.DONE >CSTR "%D File(s) Removed.\r\n"
|
||||
*--------------------------------------
|
||||
STAT .BS S.STAT
|
||||
ArgCount .BS 1
|
||||
ArgIndex .BS 1
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
Index .BS 1
|
||||
hDIRs .BS X.MAX.RECURSE
|
||||
hDIRENTs .BS X.MAX.RECURSE
|
||||
oDIRENTs .BS X.MAX.RECURSE*2
|
||||
|
||||
hSrcBasePath .BS 1
|
||||
hFilter .BS 1
|
||||
hSrcFullPath .BS 1
|
||||
hSrcFile .BS 1
|
||||
|
||||
bPause .BS 1
|
||||
bCopy .BS 1
|
||||
hToDelete .BS 1
|
||||
RC .BS 1
|
||||
bWildcard .BS 1
|
||||
|
||||
bContinue .BS 1
|
||||
bRecurse .BS 1
|
||||
bNoConfirm .BS 1
|
||||
bQuiet .BS 1
|
||||
Count .BS 2
|
||||
.INB /A2OSX.SRC/BIN/X.CPMVRM.G
|
||||
.INB /A2OSX.SRC/BIN/X.FILEENUM.G
|
||||
DS.END
|
||||
.ED
|
||||
*--------------------------------------
|
||||
|
36
BIN/X.CPMVRM.G.txt
Normal file
36
BIN/X.CPMVRM.G.txt
Normal file
@ -0,0 +1,36 @@
|
||||
PR#3
|
||||
PREFIX /A2OSX.BUILD
|
||||
NEW
|
||||
INC 1
|
||||
AUTO 6
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
ArgCount .BS 1
|
||||
bPause .BS 1
|
||||
|
||||
hFilter .BS 1
|
||||
hSrcFile .BS 1
|
||||
hSrcFullPath .BS 1
|
||||
Count .BS 2
|
||||
RC .BS 1
|
||||
|
||||
.DO X.COPY.TO.DEST=1
|
||||
|
||||
hDstFileName .BS 1
|
||||
hDstFullPath .BS 1
|
||||
hDstFile .BS 1
|
||||
bCopy .BS 1
|
||||
CopyRC .BS 1
|
||||
|
||||
.FIN
|
||||
|
||||
.DO X.DELETE.SOURCE=1
|
||||
|
||||
hToDelete .BS 1
|
||||
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/BIN/X.CPMVRM.G
|
||||
LOAD /A2OSX.SRC/BIN/CP.S
|
||||
ASM
|
@ -34,9 +34,13 @@ CS.START cld
|
||||
L.MSG.USAGE .DA MSG.USAGE
|
||||
L.MSG.DIR .DA MSG.DIR
|
||||
L.MSG.FILE .DA MSG.FILE
|
||||
|
||||
.DO X.COPY.TO.DEST=1
|
||||
|
||||
L.MSG.OVERWRITE .DA MSG.OVERWRITE
|
||||
|
||||
.FIN
|
||||
|
||||
L.MSG.OK .DA MSG.OK
|
||||
L.MSG.ERR .DA MSG.ERR
|
||||
L.MSG.DONE .DA MSG.DONE
|
||||
@ -81,8 +85,7 @@ CS.INIT
|
||||
|
||||
.4 tax Save len
|
||||
|
||||
ldy #index
|
||||
lda (pData),y
|
||||
>LDA.G index
|
||||
|
||||
.DO X.COPY.TO.DEST=1
|
||||
bne .5 Already have a Src dir...
|
||||
@ -96,23 +99,22 @@ CS.INIT
|
||||
.9 rts
|
||||
|
||||
.DO X.COPY.TO.DEST=1
|
||||
.5 ldy #hDstBasePath
|
||||
lda (pData),y
|
||||
|
||||
.5 >LDA.G hDstBasePath
|
||||
bne .99 we already have a second arg....error!
|
||||
|
||||
>LDYA ZPPtr1
|
||||
jsr InitDstDirYA
|
||||
bcc .1 success, scan for any other args
|
||||
rts
|
||||
|
||||
.FIN
|
||||
|
||||
.7 ldy #index processed all args
|
||||
lda (pData),y
|
||||
.7 >LDA.G index processed all args
|
||||
beq .99 , no src ? ERROR
|
||||
|
||||
.DO X.COPY.TO.DEST=1
|
||||
ldy #hDstBasePath
|
||||
lda (pData),y
|
||||
>LDA.G hDstBasePath
|
||||
bne .8 we also have a Dst folder
|
||||
|
||||
ldy #S.PS.hPREFIX no dst folder, use actual prefix
|
||||
@ -126,7 +128,7 @@ CS.INIT
|
||||
>SYSCALL GetMem.YA
|
||||
bcs .9
|
||||
txa
|
||||
ldy #hSrcFullPath
|
||||
>STA.G hSrcFullPath
|
||||
sta (pData),y
|
||||
|
||||
.DO X.COPY.TO.DEST=1
|
||||
@ -134,8 +136,8 @@ CS.INIT
|
||||
>SYSCALL GetMem.YA
|
||||
bcs .9
|
||||
txa
|
||||
ldy #hDstFullPath
|
||||
sta (pData),y
|
||||
>STA.G hDstFullPath
|
||||
|
||||
.FIN
|
||||
|
||||
* lda (pPs)
|
||||
@ -250,8 +252,7 @@ CS.RUN >SYSCALL GetChar
|
||||
cmp #$0F Directory ?
|
||||
bne .5
|
||||
|
||||
ldy #bRecurse
|
||||
lda (pData),y
|
||||
>LDA.G bRecurse
|
||||
bpl CS.RUN.NEXT
|
||||
|
||||
ldy #1
|
||||
@ -486,6 +487,7 @@ CS.RUN.FILE.MSG clc
|
||||
jsr CS.RUN.GetPathY
|
||||
|
||||
>PUSHYA
|
||||
|
||||
.FIN
|
||||
|
||||
ldy #hSrcFullPath
|
||||
@ -505,6 +507,7 @@ CS.RUN.FILE.MSG clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
.DO X.COPY.TO.DEST=1
|
||||
|
||||
CS.RUN.OVERWRITE.MSG
|
||||
ldy #bQuiet
|
||||
lda (pData),y
|
||||
@ -522,6 +525,7 @@ CS.RUN.OVERWRITE.MSG
|
||||
CS.RUN.OVERWRITE.KEY
|
||||
|
||||
rts
|
||||
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
CS.RUN.CR lda #13
|
||||
@ -532,7 +536,9 @@ CS.RUN.CR lda #13
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
.DO X.COPY.TO.DEST=1
|
||||
|
||||
.DO X.DELETE.SOURCE=1
|
||||
|
||||
CS.RUN.Rename ldy #hDstFullPath
|
||||
jsr CS.RUN.GetPathY
|
||||
|
||||
@ -545,10 +551,13 @@ CS.RUN.Rename ldy #hDstFullPath
|
||||
|
||||
>SYSCALL Rename
|
||||
rts
|
||||
|
||||
.FIN
|
||||
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
.DO X.COPY.TO.DEST=1
|
||||
|
||||
CS.RUN.CopyStart
|
||||
ldy #hSrcFullPath
|
||||
lda #SYS.FOpen.R
|
||||
@ -671,7 +680,9 @@ CS.RUN.CopyEnd ldy #hSrcFile
|
||||
sta (pData),y
|
||||
clc
|
||||
rts
|
||||
|
||||
.FIN
|
||||
|
||||
*--------------------------------------
|
||||
CS.RUN.CheckErr bcs .1
|
||||
|
||||
@ -724,6 +735,7 @@ CS.RUN.BuildFilePath
|
||||
>SYSCALL StrCat
|
||||
|
||||
.DO X.COPY.TO.DEST=1
|
||||
|
||||
ldy #hDstBasePath
|
||||
jsr CS.RUN.GetPathY
|
||||
>PUSHYA
|
||||
@ -747,7 +759,9 @@ CS.RUN.BuildFilePath
|
||||
|
||||
.2 >PUSHW ZPPtr1
|
||||
>SYSCALL StrCat
|
||||
|
||||
.FIN
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GetPathY lda (pData),y
|
||||
@ -772,6 +786,7 @@ CS.QUIT jsr LeaveSubDir
|
||||
bcc CS.QUIT
|
||||
|
||||
.DO X.COPY.TO.DEST=1
|
||||
|
||||
ldy #bCopy
|
||||
lda (pData),y
|
||||
bpl .1
|
||||
|
25
BIN/X.FILEENUM.G.txt
Normal file
25
BIN/X.FILEENUM.G.txt
Normal file
@ -0,0 +1,25 @@
|
||||
PR#3
|
||||
PREFIX /A2OSX.BUILD
|
||||
NEW
|
||||
INC 1
|
||||
AUTO 6
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
Index .BS 1
|
||||
hDIRs .BS X.MAX.RECURSE+1
|
||||
hDIRENTs .BS X.MAX.RECURSE+1
|
||||
oDIRENTs .BS X.MAX.RECURSE*2
|
||||
STAT .BS S.STAT
|
||||
hFullPath .BS 1
|
||||
hSrcBasePath .BS 1
|
||||
|
||||
.DO X.COPY.TO.DEST=1
|
||||
|
||||
hDstBasePath .BS 1
|
||||
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/BIN/X.FILEENUM.G
|
||||
LOAD /A2OSX.SRC/BIN/LS.S
|
||||
ASM
|
@ -140,6 +140,7 @@ InitSrcDirYA.RTS
|
||||
rts
|
||||
*--------------------------------------
|
||||
.DO X.COPY.TO.DEST=1
|
||||
|
||||
InitDstDirYA >SYSCALL RealPath.YA
|
||||
bcs InitSrcDirYA.RTS
|
||||
|
||||
@ -532,8 +533,10 @@ LeaveSubDir ldy #index
|
||||
rts
|
||||
*--------------------------------------
|
||||
BasePath.. .DO X.COPY.TO.DEST=1
|
||||
|
||||
ldy #hDstBasePath
|
||||
jsr BasePath..1
|
||||
|
||||
.FIN
|
||||
|
||||
ldy #hSrcBasePath
|
||||
@ -549,7 +552,7 @@ BasePath..1 lda (pData),y
|
||||
lda (ZPPtr1),y get len
|
||||
bne .1
|
||||
|
||||
dey discard ending /
|
||||
dey discard ending /
|
||||
|
||||
.2 dey
|
||||
lda (ZPPtr1),y
|
||||
@ -563,14 +566,6 @@ BasePath..1 lda (pData),y
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
DEBUG.YA >SYSCALL PrintF.YA
|
||||
lda #'|'
|
||||
>SYSCALL PutChar.A
|
||||
lda #13
|
||||
>SYSCALL PutChar.A
|
||||
lda #10
|
||||
>SYSCALL PutChar.A
|
||||
rts
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/BIN/X.FILEENUM.S
|
||||
LOAD /A2OSX.SRC/BIN/LS.S
|
||||
|
@ -143,6 +143,11 @@ AUTO 6
|
||||
ldy #]1
|
||||
sta (pData),y
|
||||
.EM
|
||||
*--------------------------------------
|
||||
.MA ORA.G
|
||||
ldy #]1
|
||||
ora (pData),y
|
||||
.EM
|
||||
*--------------------------------------
|
||||
.MA CMP.G
|
||||
ldy #]1
|
||||
|
@ -22,7 +22,7 @@ GAP3 .EQ 27
|
||||
*--------------------------------------
|
||||
Status.PrvDrvOff .EQ $80 Waiting old drive stop spining
|
||||
Status.DrvOn .EQ $81 Waiting target drive spin
|
||||
Status.seek .EQ $82 targetdrive seeking
|
||||
Status.seek .EQ $82 target drive seeking
|
||||
*--------------------------------------
|
||||
D2Ph0Off .EQ $C080
|
||||
D2Ph0On .EQ $C081
|
||||
@ -74,6 +74,10 @@ CS.START cld
|
||||
L.TrkWriter .DA TrkWriter
|
||||
L.ProDOS.Boot .DA ProDOS.Boot
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
LIB.LOAD
|
||||
LIB.UNLOAD clc
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # GetProDOSCatSize
|
||||
* Compute space needed for ProDOS Catalog
|
||||
@ -133,10 +137,10 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf
|
||||
|
||||
ldx #3
|
||||
|
||||
.10 lda DATELO,x
|
||||
.1 lda DATELO,x
|
||||
sta VolDirHdr.CT,x
|
||||
dex
|
||||
bpl .10
|
||||
bpl .1
|
||||
|
||||
* Boot Code
|
||||
>LDYA L.ProDOS.Boot
|
||||
@ -145,29 +149,32 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf
|
||||
ldy #0
|
||||
ldx #2 2 pages
|
||||
|
||||
.1 lda (ZPPtr3),y
|
||||
.2 lda (ZPPtr3),y
|
||||
sta (ZPPtr1),y
|
||||
iny
|
||||
bne .1
|
||||
bne .2
|
||||
|
||||
inc ZPPtr3+1
|
||||
inc ZPPtr1+1
|
||||
|
||||
dex
|
||||
bne .1
|
||||
bne .2
|
||||
|
||||
inc ZPPtr1+1 Skip Blk 2 (SOS boot code)
|
||||
inc ZPPtr1+1
|
||||
|
||||
* Directory Blocks
|
||||
* ldy #0
|
||||
|
||||
.3 lda (ZPPtr2),y
|
||||
beq .31
|
||||
iny
|
||||
sta VolDirHdr.Name,y
|
||||
cpy #15
|
||||
bne .3
|
||||
|
||||
tya
|
||||
and #$0f make sure 15 bytes max
|
||||
.31 tya
|
||||
* and #$0f make sure 15 bytes max
|
||||
ora #$F0 Volume Directory Header
|
||||
sta VolDirHdr.Name
|
||||
|
||||
@ -343,10 +350,6 @@ SetStatusAndExit
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
LIB.LOAD
|
||||
LIB.UNLOAD clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
* A=DSSS0000
|
||||
* Y=target Track Number * 4
|
||||
*--------------------------------------
|
||||
|
13
README.md
13
README.md
@ -6,12 +6,12 @@
|
||||
|
||||
**Disk images :**
|
||||
|
||||
+ **A2OSX.BOOT.po** : **(0.9)** 140k BOOT disk image with all binaries
|
||||
+ **A2OSX.DEV.po** : **(0.9)** 140k disk image with ASM binaries, Debug Tools & INClude files
|
||||
+ **A2OSX.BOOT.po** : **(0.9.1)** 140k BOOT disk image with all binaries
|
||||
+ **A2OSX.DEV.po** : **(0.9.1)** 140k disk image with ASM binaries, Debug Tools & INClude files
|
||||
+ **A2OSX.BUILD.po** : **(0.9.1)** 800k BOOT disk image with S-C MASM 2.0 and all binaries (BOOT+DEV)
|
||||
+ **A2OSX.SRC.po** : **(0.9.1)** 800k disk image with all sources
|
||||
|
||||
(once Kernel 0.9.1 stable enough, BOOT & DEV will be updated)
|
||||
(once Kernel 0.9.1 stable enough, BOOT & DEV will be updated) __(done!)__
|
||||
|
||||
**0.9 has been archived, next Kernel Version is 0.9.1**
|
||||
|
||||
@ -185,21 +185,21 @@ note : '$VAR' does NOT expand Variable
|
||||
| LS | Working | -A : Do Not Print . & .. | 0.9.1 |
|
||||
| | | -L : long listing with size/date... | |
|
||||
| | | -R : Recurse subdirectories | |
|
||||
| RM | Working | -C : Continue On Error | 0.9 |
|
||||
| RM | Working | -C : Continue On Error | 0.9.1 |
|
||||
| | | -Q : Quiet | |
|
||||
| | | -R : Recurse subdirectories | |
|
||||
| CP | Working | -C : Continue On Error | 0.9.1 |
|
||||
| | | -Q : Quiet | |
|
||||
| | | -R : Recurse subdirectories | |
|
||||
| | | -Y : Dont't Prompt For Override | |
|
||||
| MV | Working | -C : Continue On Error | 0.9 |
|
||||
| MV | Working | -C : Continue On Error | 0.9.1 |
|
||||
| | | -Q : Quiet | |
|
||||
| | | -R : Recurse subdirectories | |
|
||||
| | | -Y : Dont't Prompt For Override | |
|
||||
| CAT | Working | -A : Show All non printable caracters | 0.9.1 |
|
||||
| | | -N : Number all output lines | |
|
||||
| | | -S : Suppress repeated empty output lines | |
|
||||
| CHTYP | In Progress | -C : Continue On Error | 0.9 |
|
||||
| CHTYP | Working | -C : Continue On Error | 0.9.1 |
|
||||
| | | -R : Recurse subdirectories | |
|
||||
| CHMOD | In Progress | -C : Continue On Error | 0.9 |
|
||||
| | | -R : Recurse subdirectories | |
|
||||
@ -222,6 +222,7 @@ note : '$VAR' does NOT expand Variable
|
||||
| ---- | ------ | ------- | ----- |
|
||||
| ASM | In Progress | S-C MASM based multi CPU assembler | 0.9 |
|
||||
| MEMDUMP | Working | | 0.9.1 |
|
||||
| ---- | ------ | ------- | ----- |
|
||||
| RPCDUMP | Working | tool based on UDP socket API, renamed from RPCINFO | 0.9 |
|
||||
|
||||
## Misc
|
||||
|
@ -120,7 +120,7 @@ K.SaveFile jsr K.FOpen
|
||||
* PUSHW = PATH
|
||||
*\--------------------------------------
|
||||
K.ChTyp jsr PFT.CheckPathSTK
|
||||
>PULLW K.MLI.PARAMS+1
|
||||
jsr STDIO.PullMLIPath
|
||||
>PULLB .1+1
|
||||
>MLICALL MLIGETFILEINFO
|
||||
bcs .9
|
||||
|
Loading…
x
Reference in New Issue
Block a user