mirror of
https://github.com/A2osX/A2osX.git
synced 2025-04-22 16:40:09 +00:00
Kernel 0.92
This commit is contained in:
parent
b71302d05d
commit
15caee549d
Binary file not shown.
133
BIN/LS.S.txt
133
BIN/LS.S.txt
@ -15,10 +15,15 @@ X.DELETE.SOURCE .EQ 0
|
||||
*--------------------------------------
|
||||
MAX.COL .EQ 4
|
||||
*--------------------------------------
|
||||
ZPPtr1 .EQ ZPBIN
|
||||
ZPPtr2 .EQ ZPBIN+2
|
||||
ZPFileName .EQ ZPBIN+4
|
||||
ZPFileStat .EQ ZPBIN+6
|
||||
.DUMMY
|
||||
.OR ZPBIN
|
||||
ZS.START
|
||||
ZPPtr1 .BS 2
|
||||
ZPPtr2 .BS 2
|
||||
ZPFileName .BS 2
|
||||
ZPFileStat .BS 2
|
||||
ZS.END
|
||||
.ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
@ -26,11 +31,12 @@ CS.START cld
|
||||
jmp (.1,x)
|
||||
.DA #$61 6502,Level 1 (65c02)
|
||||
.DA #1 BIN Layout Version 1
|
||||
.DA 0
|
||||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #64 SS
|
||||
.DA #8 ZP
|
||||
.DA #0 S.PS.F.EVENT
|
||||
.DA #0
|
||||
.DA CS.END-CS.START Code Size (without Constants)
|
||||
.DA DS.END-DS.START Data SegmentSize
|
||||
.DA #64 Stack Size
|
||||
.DA #ZS.END-ZS.START Zero Page Size
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Relocation Table
|
||||
@ -49,7 +55,10 @@ L.PRODOS.FT.TXT .DA PRODOS.FT.TXT
|
||||
L.FMT.DateTime .DA FMT.DateTime
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT
|
||||
CS.INIT clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN
|
||||
.1 >INC.G ArgCount
|
||||
>SYSCALL ArgV
|
||||
bcs .6
|
||||
@ -79,38 +88,38 @@ CS.INIT
|
||||
|
||||
.4 >LDYA ZPPtr1
|
||||
jsr InitSrcDirYA
|
||||
bcs .9
|
||||
bcc .1 scan for any other args
|
||||
|
||||
bra .1 scan for any other args
|
||||
.9 rts
|
||||
|
||||
.6 >LDA.G index do we have a Source dir ?
|
||||
bne .8
|
||||
bne CS.RUN.LOOP
|
||||
|
||||
.7 ldy #S.PS.hPREFIX
|
||||
ldy #S.PS.hPREFIX
|
||||
lda (pPs),y
|
||||
>SYSCALL GetMemPtr
|
||||
jsr InitSrcDirYA
|
||||
bcs .9
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
bcs .9
|
||||
*--------------------------------------
|
||||
CS.RUN >SYSCALL GetChar
|
||||
bcs .10 no char
|
||||
CS.RUN.LOOP >SLEEP
|
||||
|
||||
>SYSCALL GetChar
|
||||
bcs .2 no char
|
||||
|
||||
cmp #$03 Ctrl-C
|
||||
beq .92 Abort....
|
||||
bne .1 Abort....
|
||||
rts CS
|
||||
|
||||
cmp #$13 Ctrl-S
|
||||
bne .10
|
||||
.1 cmp #$13 Ctrl-S
|
||||
bne .2
|
||||
|
||||
>LDA.G bPause
|
||||
eor #$ff
|
||||
sta (pData),y
|
||||
bne .80
|
||||
bne CS.RUN.LOOP
|
||||
|
||||
.10 >LDA.G bPause
|
||||
bne .80 Pause...
|
||||
.2 >LDA.G bPause
|
||||
bne CS.RUN.LOOP
|
||||
|
||||
jsr GetEntry
|
||||
bcs .9
|
||||
@ -143,10 +152,21 @@ CS.RUN >SYSCALL GetChar
|
||||
cmp #$0F Directory ?
|
||||
bne .6
|
||||
|
||||
jmp CS.RUN.DIR
|
||||
.5 jmp CS.RUN.DEV
|
||||
.6 jmp CS.RUN.FILE
|
||||
jsr CS.RUN.PRINT.DIR
|
||||
bcs .99
|
||||
bra .8
|
||||
|
||||
.5 jsr CS.RUN.PRINT.DEV
|
||||
bcs .99
|
||||
bra .8
|
||||
|
||||
.6 jsr CS.RUN.PRINT.FILE
|
||||
bcs .99
|
||||
|
||||
.8 jsr GetNextEntry
|
||||
|
||||
bcc .92
|
||||
|
||||
.9 ldy #bLong
|
||||
lda (pData),y
|
||||
bmi .91
|
||||
@ -155,20 +175,20 @@ CS.RUN >SYSCALL GetChar
|
||||
bcs .99
|
||||
|
||||
.91 jsr LeaveSubDir
|
||||
bcs .92
|
||||
bcs .98
|
||||
|
||||
jsr BasePath..
|
||||
jsr GetNextEntry
|
||||
|
||||
.8 jsr GetNextEntry
|
||||
.80 clc
|
||||
rts
|
||||
.92 jmp CS.RUN.LOOP
|
||||
|
||||
.92 lda #0
|
||||
.98 lda #0
|
||||
sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.DEV >LDA.G bLong
|
||||
bpl CS.RUN.DIR
|
||||
CS.RUN.PRINT.DEV
|
||||
>LDA.G bLong
|
||||
bpl CS.RUN.PRINT.DIR
|
||||
|
||||
ldy #S.STAT.P.DEVBLOCKS+1
|
||||
>PUSHB (ZPFileStat),y
|
||||
@ -197,14 +217,13 @@ CS.RUN.DEV >LDA.G bLong
|
||||
>LDYA ZPFileName
|
||||
jsr EnterSubDirYA
|
||||
bcs .9
|
||||
jsr CS.RUN.ENTER.MSG
|
||||
rts
|
||||
jmp CS.RUN.ENTER.MSG
|
||||
|
||||
.8 jsr GetNextEntry
|
||||
clc
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.DIR >LDA.G bAllmostAll
|
||||
CS.RUN.PRINT.DIR
|
||||
>LDA.G bAllmostAll
|
||||
bmi .10
|
||||
|
||||
lda (ZPFileName)
|
||||
@ -219,7 +238,7 @@ CS.RUN.DIR >LDA.G bAllmostAll
|
||||
>LDYA L.MSG.DIR
|
||||
>SYSCALL printf
|
||||
|
||||
bcs .9
|
||||
bcs .99
|
||||
|
||||
ldy #0
|
||||
|
||||
@ -250,7 +269,8 @@ CS.RUN.DIR >LDA.G bAllmostAll
|
||||
>PUSHBI 8
|
||||
>LDYA L.MSG.DIREXT
|
||||
>SYSCALL printf
|
||||
bcs .9
|
||||
|
||||
.99 bcs .9
|
||||
|
||||
.5 ldy #bRecurse
|
||||
lda (pData),y
|
||||
@ -266,14 +286,13 @@ CS.RUN.DIR >LDA.G bAllmostAll
|
||||
>LDYA ZPFileName
|
||||
jsr EnterSubDirYA
|
||||
bcs .9
|
||||
jsr CS.RUN.ENTER.MSG
|
||||
rts
|
||||
jmp CS.RUN.ENTER.MSG
|
||||
|
||||
.8 jsr GetNextEntry
|
||||
clc
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.FILE ldy #bLong
|
||||
CS.RUN.PRINT.FILE
|
||||
ldy #bLong
|
||||
lda (pData),y
|
||||
bmi .1
|
||||
|
||||
@ -283,10 +302,7 @@ CS.RUN.FILE ldy #bLong
|
||||
>SYSCALL printf
|
||||
bcs .9
|
||||
|
||||
jsr CS.RUN.UpdateColCnt
|
||||
jsr GetNextEntry
|
||||
clc
|
||||
rts
|
||||
jmp CS.RUN.UpdateColCnt
|
||||
|
||||
.1 jsr CS.RUN.PUSHDATES
|
||||
|
||||
@ -319,10 +335,7 @@ CS.RUN.FILE ldy #bLong
|
||||
>PUSHBI 16
|
||||
>LDYA L.MSG.FILEEXT
|
||||
>SYSCALL printf
|
||||
bcs .9
|
||||
|
||||
jsr GetNextEntry
|
||||
clc
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.PUSHDATES
|
||||
@ -379,10 +392,7 @@ CS.RUN.PUSHDATES
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.UpdateColCnt
|
||||
ldy #ColCount
|
||||
lda (pData),y
|
||||
inc
|
||||
sta (pData),y
|
||||
>INC.G ColCount
|
||||
cmp #MAX.COL
|
||||
bne CS.RUN.NewLine.8
|
||||
|
||||
@ -390,8 +400,7 @@ CS.RUN.UpdateColCnt
|
||||
sta (pData),y
|
||||
bra CS.RUN.NewLine.1
|
||||
*--------------------------------------
|
||||
CS.RUN.NewLine ldy #ColCount
|
||||
lda (pData),y
|
||||
CS.RUN.NewLine >LDA.G ColCount
|
||||
beq CS.RUN.NewLine.8
|
||||
CS.RUN.NewLine.1
|
||||
lda #13
|
||||
|
@ -19,3 +19,5 @@ hDstBasePath .BS 1
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/X.FILEENUM.G
|
||||
LOAD USR/SRC/BIN/LS.S
|
||||
ASM
|
||||
|
@ -312,12 +312,8 @@ InitDstDirYA >SYSCALL RealPath
|
||||
GetNextEntry jsr GetEntry
|
||||
bcs .9
|
||||
|
||||
ldy #0
|
||||
|
||||
.10 iny
|
||||
lda (ZPFileName),y Save actual file len for setting up
|
||||
bne .10
|
||||
phy new offset later
|
||||
jsr GetFilenameLen Save actual file len for setting up
|
||||
pha new offset later
|
||||
|
||||
lda ZPFileStat
|
||||
clc
|
||||
@ -331,12 +327,8 @@ GetNextEntry jsr GetEntry
|
||||
lda (ZPFileName) are we at end of this buffer ?
|
||||
beq .1 yes, go read next one ...
|
||||
|
||||
sec
|
||||
adc ZPFileName
|
||||
sta ZPFileStat
|
||||
lda ZPFileName+1
|
||||
adc #0
|
||||
sta ZPFileStat+1
|
||||
jsr GetFilenameLen
|
||||
jsr SetFileStatPtr
|
||||
|
||||
jsr GetoDIRENT
|
||||
|
||||
@ -368,27 +360,16 @@ GetNextEntry jsr GetEntry
|
||||
.1 pla
|
||||
jsr GetEntry.ReadDir
|
||||
bcs .9
|
||||
lda (ZPFileName)
|
||||
beq .99
|
||||
|
||||
ldy #0
|
||||
|
||||
.2 iny
|
||||
lda (ZPFileName),y
|
||||
bne .2
|
||||
tya
|
||||
|
||||
sec
|
||||
adc ZPFileName
|
||||
sta ZPFileStat
|
||||
lda ZPFileName+1
|
||||
adc #0
|
||||
sta ZPFileStat+1
|
||||
jsr GetFilenameLen
|
||||
beq GetNextEntry.99
|
||||
|
||||
jsr SetFileStatPtr
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
|
||||
.99 sec
|
||||
GetNextEntry.99 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
GetEntry jsr GethDIRENT
|
||||
@ -399,9 +380,7 @@ GetEntry jsr GethDIRENT
|
||||
|
||||
lda (ZPFileName) Empty !!!
|
||||
bne .8
|
||||
|
||||
* txa
|
||||
* >SYSCALL FreeMem
|
||||
|
||||
sec
|
||||
rts
|
||||
|
||||
@ -420,18 +399,8 @@ GetEntry jsr GethDIRENT
|
||||
adc (pData),y
|
||||
sta ZPFileName+1 ZPFileName=ZPFileName+oDIRENT
|
||||
|
||||
.8 ldy #0
|
||||
|
||||
.81 iny
|
||||
lda (ZPFileName),y
|
||||
bne .81
|
||||
tya
|
||||
sec
|
||||
adc ZPFileName
|
||||
sta ZPFileStat
|
||||
lda ZPFileName+1
|
||||
adc #0
|
||||
sta ZPFileStat+1
|
||||
.8 jsr GetFilenameLen
|
||||
jsr SetFileStatPtr
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
@ -589,7 +558,7 @@ BasePath..1 lda (pData),y
|
||||
|
||||
>STYA ZPPtr1 save full path
|
||||
|
||||
ldy #0
|
||||
ldy #$ff
|
||||
|
||||
.1 iny
|
||||
lda (ZPPtr1),y get len
|
||||
@ -609,6 +578,24 @@ BasePath..1 lda (pData),y
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
GetFilenameLen ldy #$ff
|
||||
|
||||
.1 iny
|
||||
lda (ZPFileName),y
|
||||
bne .1
|
||||
|
||||
tya
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
SetFileStatPtr sec
|
||||
adc ZPFileName
|
||||
sta ZPFileStat
|
||||
lda ZPFileName+1
|
||||
adc #0
|
||||
sta ZPFileStat+1
|
||||
rts
|
||||
*--------------------------------------
|
||||
GethDIR ldy #index
|
||||
lda (pData),y
|
||||
clc
|
||||
|
@ -91,15 +91,12 @@ IO.OPEN.9 sec
|
||||
IO.OPEN.RTS rts
|
||||
*--------------------------------------
|
||||
IO.OPEN.REG >MLICALL MLIGETFILEINFO
|
||||
bcc K.IO.OPEN.REG.E Already Exists
|
||||
bcc IO.OPEN.REG.E Already Exists
|
||||
|
||||
bit K.Open.FLAGS Create if not exists ?
|
||||
bpl IO.OPEN.9 No, return MLI error
|
||||
|
||||
lda #S.FI.A.FULL Yes, Create...
|
||||
sta K.MLI.PARAMS+3 Access
|
||||
|
||||
ldx #2
|
||||
ldx #2 Yes, Create...
|
||||
|
||||
.1 lda K.Open.TYPE,x
|
||||
sta K.MLI.PARAMS+4,x File type,Aux type
|
||||
@ -107,19 +104,11 @@ IO.OPEN.REG >MLICALL MLIGETFILEINFO
|
||||
bpl .1
|
||||
|
||||
lda #S.FI.ST.STD
|
||||
sta K.MLI.PARAMS+7
|
||||
|
||||
ldx #3
|
||||
|
||||
.2 lda DATELO,x
|
||||
sta K.MLI.PARAMS+8,x
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
>MLICALL MLICREATE
|
||||
jsr IO.MLI.CREATE
|
||||
bcs IO.OPEN.RTS
|
||||
|
||||
K.IO.OPEN.REG.E >LDYAI S.FD.REG
|
||||
IO.OPEN.REG.E >LDYAI S.FD.REG
|
||||
ldx #S.MEM.F.INIT0+S.MEM.F.FD
|
||||
jsr MEM.GetMem.YAX
|
||||
bcs IO.OPEN.RTS
|
||||
@ -203,6 +192,21 @@ IO.OPEN.SSOCK
|
||||
IO.OPEN.PIPE
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
IO.MLI.CREATE sta K.MLI.PARAMS+7 Storage Type
|
||||
|
||||
ldx #3
|
||||
|
||||
.1 lda DATELO,x
|
||||
sta K.MLI.PARAMS+8,x Create Date/Time
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
lda #S.FI.A.FULL
|
||||
sta K.MLI.PARAMS+3 Access
|
||||
|
||||
>MLICALL MLICREATE
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # close
|
||||
* ## C
|
||||
|
@ -148,25 +148,14 @@ K.Stat.DST .DA #S.STAT.P.TYPE
|
||||
* A = EC
|
||||
*\-------------------------------------
|
||||
K.MKDir jsr PFT.CheckPathYA
|
||||
bcs K.MKDir.RTS
|
||||
bcs K.Stat.9
|
||||
|
||||
lda #S.FI.A.FULL
|
||||
sta K.MLI.PARAMS+S.FI.A
|
||||
lda #S.FI.T.DIR
|
||||
sta K.MLI.PARAMS+S.FI.T
|
||||
sta K.MLI.PARAMS+4
|
||||
stz K.MLI.PARAMS+5
|
||||
stz K.MLI.PARAMS+6
|
||||
lda #S.FI.ST.DIR
|
||||
sta K.MLI.PARAMS+S.FI.ST
|
||||
|
||||
* jsr DATETIME
|
||||
|
||||
ldx #3
|
||||
.1 lda DATELO,x
|
||||
sta K.MLI.PARAMS+8,x
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
>MLICALL MLICREATE
|
||||
K.MKDir.RTS rts
|
||||
jmp IO.MLI.CREATE
|
||||
*/--------------------------------------
|
||||
* # MkNod
|
||||
* Create a special or ordinary file.
|
||||
@ -189,14 +178,14 @@ K.MkNod >STYA ZPPtr1 pathname
|
||||
>PULLB K.S.STAT+S.STAT.DEV
|
||||
|
||||
jsr K.GetMemPtr
|
||||
bcs K.MKDir.RTS
|
||||
bcs K.MKNOD.RTS
|
||||
|
||||
>STYA pFD
|
||||
|
||||
>LDYA ZPPtr1
|
||||
ldx K.S.STAT+S.STAT.DEV
|
||||
jsr STAT.NewhNodeYAX
|
||||
bcs K.MKDir.RTS
|
||||
bcs K.MKNOD.RTS
|
||||
|
||||
lda (pFD) #S.FD.T
|
||||
|
||||
@ -218,7 +207,7 @@ STAT.MKNOD.DSOCK
|
||||
STAT.MKNOD.SSOCK
|
||||
STAT.MKNOD.PIPE
|
||||
clc
|
||||
rts
|
||||
K.MKNOD.RTS rts
|
||||
*/--------------------------------------
|
||||
* # MKFIFO
|
||||
* return a hFILE to a new FIFO
|
||||
|
Loading…
x
Reference in New Issue
Block a user