Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-11-09 16:59:04 +01:00
parent 04510ec5bf
commit 2f284f68ed
5 changed files with 141 additions and 108 deletions

Binary file not shown.

Binary file not shown.

View File

@ -92,9 +92,9 @@ S.IPCFG.DOMAIN .EQ 48 79+\0 C String
*
S.IPCFG .EQ 128
*--------------------------------------
S.ARPCACHE.S .EQ 0
S.ARPCACHE.S .EQ 0
S.ARPCACHE.S.PENDING .EQ 1
S.ARPCACHE.S.STATIC .EQ 2
S.ARPCACHE.S.STATIC .EQ 2
S.ARPCACHE.S.RESOLVED .EQ 128
S.ARPCACHE.TTL .EQ 2
S.ARPCACHE.IP .EQ 6

View File

@ -111,7 +111,8 @@ Cmd.CheckCmd ldy #$ff
>STA.G CMD.hCmdLine
bra .6 go check type...
.2 >LDYA L.CMD.INT
.2 >PUSHW ZPCMDBuf
>LDYA L.CMD.INT
jsr CMD.Search no / found, search internal...
bcs .4 not internal, search PATH
@ -219,6 +220,84 @@ Cmd.SearchExt pha
>SYSCALL FileSearch
rts
*--------------------------------------
CMD.CheckIO >PUSHW ZPCMDBuf
>LDYA L.CMD.IO
jsr CMD.Search
bcs .9 not a IO token...should be an arg....
phx
jsr CMD.NextCmdBufToken skip this IO token
plx
jmp (J.CMD.IO,x)
.9 lda #0
rts
*--------------------------------------
CMD.IO.AMP >LDA.G CMD.PSFlags
and #$ff^S.PS.F.HOLD
sta (pData),y
clc
rts
CMD.IO.PIPE
clc
rts
CMD.IO.IN lda #O.RDONLY+O.TEXT
jsr CMD.IO.Open
bcs .9
jsr IO.Set.In
jsr CMD.NextCmdBufToken skip arg
clc
.9 rts
CMD.IO.OUTA
CMD.IO.1OUTA lda #O.WRONLY+O.APPEND+O.CREATE+O.TEXT
bra CMD.IO.OUT.1
CMD.IO.OUT
CMD.IO.1OUT lda #O.WRONLY+O.TRUNC+O.CREATE+O.TEXT
CMD.IO.OUT.1 jsr CMD.IO.Open
bcs .9
jsr IO.Set.Out
jsr CMD.NextCmdBufToken skip arg
clc
.9 rts
CMD.IO.2OUTA lda #O.WRONLY+O.APPEND+O.CREATE+O.TEXT
bra CMD.IO.2OUT.1
CMD.IO.2OUT lda #O.WRONLY+O.TRUNC+O.CREATE+O.TEXT
CMD.IO.2OUT.1 jsr CMD.IO.Open
bcs .9
jsr IO.Set.Err
jsr CMD.NextCmdBufToken skip arg
clc
.9 rts
*--------------------------------------
CMD.IO.Open pha
lda (ZPCMDBuf)
beq .9 no arg left....
>PUSHWI 0 Aux type
>PUSHBI S.FI.T.TXT ftype
pla
>PUSHA flags
>LDYA ZPCMDBuf
>SYSCALL fopen
rts
.9 pla
lda #E.SYN
sec
rts
*--------------------------------------
* Input : ZPArgVBuf
*--------------------------------------
Cmd.Exec >LDA.G CMD.IntCmd
bmi .1
tax
@ -484,6 +563,12 @@ Cmd.INT.ECHO ldx #1
.8 clc
.9 rts
*--------------------------------------
Cmd.INT.ELSE clc
rts
*--------------------------------------
Cmd.INT.FI clc
rts
*--------------------------------------
Cmd.INT.READ ldx #1
jsr Cmd.GetArgX
beq .9
@ -608,121 +693,46 @@ Cmd.INT.EXIT lda #$FF
clc
rts
*--------------------------------------
Cmd.INT.IF >STZ.G CMD.IFNOT
lda (ZPCMDBuf)
beq .9
cmp #'!'
bne .1
lda #$ff
sta (pData),y Y = #CMD.IFNOT
jsr Cmd.NextCharPtr2NB
Cmd.INT.IF ldx #1
jsr Cmd.GetArgX
beq .9
cmp #'('
bne .9
>PUSHYA
>LDYA L.CMD.IF.TOKEN1
jsr CMD.Search
bcs .9
jsr Cmd.NextCharPtr2NB
cpx #4 [ or ![
bcs .9
dex
dex 1 or $ff
txa
>STA.G CMD.IF.NOT
ldx #2
jsr Cmd.GetArgX
beq .9
cmp #'-' -d -e -f
bne .1
>PUSHYA
>LDYA L.CMD.IF.TOKEN2 -d -e -f ?
jsr CMD.Search
bcs .1
jsr Cmd.NextCharPtr2NB
beq .9
jmp (J.CMD.IF.TOKEN2,x)
.1
.1 >DEBUG
>LDYA ZPCMDBuf
>SYSCALL puts
clc
rts
.9 jmp Cmd.Exec.ERRSYN
*--------------------------------------
CMD.CheckIO >LDYA L.CMD.IO
jsr CMD.Search
bcs .9 not a IO token...should be an arg....
phx
jsr CMD.NextCmdBufToken skip this IO token
plx
jmp (J.CMD.IO,x)
.9 lda #0
rts
*--------------------------------------
CMD.IO.AMP >LDA.G CMD.PSFlags
and #$ff^S.PS.F.HOLD
sta (pData),y
CMD.IF.D
CMD.IF.E
CMD.IF.F
clc
rts
CMD.IO.PIPE
clc
rts
CMD.IO.IN lda #O.RDONLY+O.TEXT
jsr CMD.IO.Open
bcs .9
jsr IO.Set.In
jsr CMD.NextCmdBufToken skip arg
clc
.9 rts
CMD.IO.OUTA
CMD.IO.1OUTA lda #O.WRONLY+O.APPEND+O.CREATE+O.TEXT
bra CMD.IO.OUT.1
CMD.IO.OUT
CMD.IO.1OUT lda #O.WRONLY+O.TRUNC+O.CREATE+O.TEXT
CMD.IO.OUT.1 jsr CMD.IO.Open
bcs .9
jsr IO.Set.Out
jsr CMD.NextCmdBufToken skip arg
clc
.9 rts
CMD.IO.2OUTA lda #O.WRONLY+O.APPEND+O.CREATE+O.TEXT
bra CMD.IO.2OUT.1
CMD.IO.2OUT lda #O.WRONLY+O.TRUNC+O.CREATE+O.TEXT
CMD.IO.2OUT.1 jsr CMD.IO.Open
bcs .9
jsr IO.Set.Err
jsr CMD.NextCmdBufToken skip arg
clc
.9 rts
*--------------------------------------
CMD.IO.Open pha
lda (ZPCMDBuf)
beq .9 no arg left....
>PUSHWI 0 Aux type
>PUSHBI S.FI.T.TXT ftype
pla
>PUSHA flags
>LDYA ZPCMDBuf
>SYSCALL fopen
rts
.9 pla
lda #E.SYN
sec
rts
*--------------------------------------
CMD.NextCmdBufToken
lda (ZPCMDBuf)
@ -775,13 +785,14 @@ CMD.AddYAToArgV >STYA ZPPtr1
rts
*--------------------------------------
CMD.Search >STYA ZPPtr2
>PULLW ZPPtr1
ldx #0
.1 phx
>PUSHW ZPPtr2
>LDYA ZPCMDBuf
>LDYA ZPPtr1
>SYSCALL StrCaseCmp
bcs .2

View File

@ -25,6 +25,7 @@ ZPCSHStack .EQ ZPBIN+18
CmdLine.MAX .EQ 127
VarLen.MAX .EQ 15
History.MAX .EQ 256
CMD.IF.STACK.MAX .EQ 4
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
@ -69,7 +70,9 @@ J.CMD.INT .DA Cmd.INT.STARTPROC
.DA Cmd.INT.CD
.DA Cmd.INT.DATE
.DA Cmd.INT.ECHO
.DA Cmd.INT.ELSE
.DA Cmd.INT.EXIT
.DA Cmd.INT.FI
.DA Cmd.INT.IF
.DA Cmd.INT.PAUSE
.DA Cmd.INT.PWD
@ -87,6 +90,12 @@ J.CMD.IO .DA CMD.IO.AMP
.DA CMD.IO.1OUT
.DA CMD.IO.2OUTA
.DA CMD.IO.2OUT
L.CMD.IF.TOKEN1 .DA CMD.IF.TOKEN1
L.CMD.IF.TOKEN2 .DA CMD.IF.TOKEN2
J.CMD.IF.TOKEN2 .DA CMD.IF.D
.DA CMD.IF.E
.DA CMD.IF.F
L.CMD.IF.TOKEN3 .DA CMD.IF.TOKEN3
L.CSH.BOPS .DA CSH.BOPS
J.CSH.BOPS .DA CSH.BOPS.ADD
.DA CSH.BOPS.SUB
@ -397,7 +406,9 @@ CMD.INT .AZ "STARTPROC"
.AZ "CD"
.AZ "DATE"
.AZ "ECHO"
.AZ "ELSE"
.AZ "EXIT"
.AZ "FI"
.AZ "IF"
.AZ "PAUSE"
.AZ "PWD"
@ -418,8 +429,16 @@ CMD.IO .AZ "&"
.AZ "2>"
.HS 00
*--------------------------------------
CMD.IF.Chars .AS "def"
CMD.IF.Chars.Cnt .EQ *-CMD.IF.Chars
CMD.IF.TOKEN1 .AZ "["
.AZ "!["
.HS 00
CMD.IF.TOKEN2 .AZ "-d"
.AZ "-e"
.AZ "-f"
.HS 00
CMD.IF.TOKEN3 .AZ "-eq"
.AZ "-ne"
.HS 00
*--------------------------------------
.INB /A2OSX.SRC/SBIN/SHELL.C.CSH
.INB /A2OSX.SRC/X.ERRORS.S
@ -454,7 +473,10 @@ CMD.VarName.LEN .BS 1
CMD.VarName .BS VarLen.MAX+1
CMD.Stat .BS S.STAT
CMD.Time .BS S.TIME
CMD.IFNOT .BS 1
CMD.IF.NOT .BS 1
CMD.IF.PTR .BS 1
CMD.IF.STACK .BS CMD.IF.STACK.MAX
HIS.hBuf .BS 1
HIS.Count .BS 1