mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-27 00:29:29 +00:00
Kernel 0.94
This commit is contained in:
parent
70b226c525
commit
eb4adc065f
Binary file not shown.
|
@ -3,12 +3,12 @@ NEW
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF BIN/ARP
|
.TF bin/arp
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB inc/macros.i
|
||||||
.INB INC/A2OSX.I
|
.INB inc/a2osx.i
|
||||||
.INB INC/ETH.I
|
.INB inc/eth.i
|
||||||
.INB INC/LIBTCPIP.I
|
.INB inc/libtcpip.i
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TIMEOUT.MAX .EQ 40 40*100ms = 4 sec.
|
TIMEOUT.MAX .EQ 40 40*100ms = 4 sec.
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -17,8 +17,7 @@ TIMEOUT.MAX .EQ 40 40*100ms = 4 sec.
|
||||||
ZS.START
|
ZS.START
|
||||||
ZPPTR1 .BS 2
|
ZPPTR1 .BS 2
|
||||||
EntryCount .BS 1
|
EntryCount .BS 1
|
||||||
ZS.END
|
ZS.END .ED
|
||||||
.ED
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -78,7 +77,7 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG
|
||||||
>PUSHEA.G DST.IP+2
|
>PUSHEA.G DST.IP+2
|
||||||
>PUSHEA.G DST.IP+3
|
>PUSHEA.G DST.IP+3
|
||||||
>PUSHBI 8 4 Ptrs
|
>PUSHBI 8 4 Ptrs
|
||||||
>SYSCALL sscanf
|
>SYSCALL SScanF
|
||||||
bcs CS.RUN.ERR
|
bcs CS.RUN.ERR
|
||||||
|
|
||||||
ldy #S.PS.ARGC
|
ldy #S.PS.ARGC
|
||||||
|
@ -100,7 +99,7 @@ CS.RUN.QUERY jsr Init.Timeout
|
||||||
|
|
||||||
.1 >PUSHEA.G DST.MAC
|
.1 >PUSHEA.G DST.MAC
|
||||||
>PUSHEA.G DST.IP
|
>PUSHEA.G DST.IP
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.ARP.QUERY
|
>LIBCALL hLIBTCPIP,LIBTCPIP.ARP.Query
|
||||||
bcc .2 success, print & exit
|
bcc .2 success, print & exit
|
||||||
jsr Wait.TimeOut
|
jsr Wait.TimeOut
|
||||||
bcs .8
|
bcs .8
|
||||||
|
@ -146,17 +145,17 @@ CS.RUN.ADD lda #2
|
||||||
>PUSHEA.G DST.MAC+4
|
>PUSHEA.G DST.MAC+4
|
||||||
>PUSHEA.G DST.MAC+5
|
>PUSHEA.G DST.MAC+5
|
||||||
>PUSHBI 12 6 Ptrs
|
>PUSHBI 12 6 Ptrs
|
||||||
>SYSCALL sscanf
|
>SYSCALL SScanF
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>PUSHEA.G DST.MAC
|
>PUSHEA.G DST.MAC
|
||||||
>PUSHEA.G DST.IP
|
>PUSHEA.G DST.IP
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.ARP.ADD
|
>LIBCALL hLIBTCPIP,LIBTCPIP.ARP.Add
|
||||||
clc
|
clc
|
||||||
.8 rts
|
.8 rts
|
||||||
.9 jmp CS.RUN.ERR
|
.9 jmp CS.RUN.ERR
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.ARP.GETCACHE
|
CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.ARP.GetCache
|
||||||
>STYA ZPPTR1
|
>STYA ZPPTR1
|
||||||
>LDYA L.MSG0
|
>LDYA L.MSG0
|
||||||
>SYSCALL PutS
|
>SYSCALL PutS
|
||||||
|
@ -250,12 +249,14 @@ MSG1 .AZ "$%h %5D %h:%h:%h:%h:%h:%h %d.%d.%d.%d\r\n"
|
||||||
MSG2 .AZ "%d.%d.%d.%d is at %h:%h:%h:%h:%h:%h\r\n"
|
MSG2 .AZ "%d.%d.%d.%d is at %h:%h:%h:%h:%h:%h\r\n"
|
||||||
hLIBTCPIP .BS 1
|
hLIBTCPIP .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
.DUMMY
|
||||||
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
DST.IP .BS 4
|
DST.IP .BS 4
|
||||||
DST.MAC .BS 6
|
DST.MAC .BS 6
|
||||||
TimeOut .BS 1
|
TimeOut .BS 1
|
||||||
DS.END
|
DS.END .ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/BIN/ARP.S
|
SAVE usr/src/bin/arp.s
|
||||||
ASM
|
ASM
|
||||||
|
|
17
BIN/LS.S.txt
17
BIN/LS.S.txt
|
@ -122,7 +122,7 @@ CS.RUN
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.8 >PUSHEA.G TIME.SysTime
|
.8 >PUSHEA.G TIME.SysTime
|
||||||
>SYSCALL time
|
>SYSCALL Time
|
||||||
|
|
||||||
>LDYAI S.PW
|
>LDYAI S.PW
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
|
@ -154,7 +154,7 @@ CS.RUN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.LOOP ldy #S.PS.hStdIn
|
CS.RUN.LOOP ldy #S.PS.hStdIn
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>SYSCALL feof
|
>SYSCALL FEOF
|
||||||
bcs .99 I/O error
|
bcs .99 I/O error
|
||||||
|
|
||||||
tay
|
tay
|
||||||
|
@ -492,7 +492,7 @@ CS.RUN.PushUidGid
|
||||||
lda (ZPFileStat),y
|
lda (ZPFileStat),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHBI 2
|
>PUSHBI 2
|
||||||
>SYSCALL sprintf
|
>SYSCALL SPrintF
|
||||||
|
|
||||||
.3 ldy #S.STAT.GID
|
.3 ldy #S.STAT.GID
|
||||||
lda (ZPFileStat),y
|
lda (ZPFileStat),y
|
||||||
|
@ -516,7 +516,7 @@ CS.RUN.PushUidGid
|
||||||
lda (ZPFileStat),y
|
lda (ZPFileStat),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHBI 2
|
>PUSHBI 2
|
||||||
>SYSCALL sprintf
|
>SYSCALL SPrintF
|
||||||
|
|
||||||
.8 >PUSHEA.G USER
|
.8 >PUSHEA.G USER
|
||||||
>PUSHEA.G GROUP
|
>PUSHEA.G GROUP
|
||||||
|
@ -527,7 +527,7 @@ CS.RUN.PushUidGidStr
|
||||||
>PUSHW L.FMT.string6
|
>PUSHW L.FMT.string6
|
||||||
>PUSHW ZPPW
|
>PUSHW ZPPW
|
||||||
>PUSHBI 2
|
>PUSHBI 2
|
||||||
>SYSCALL sprintf
|
>SYSCALL SPrintF
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.PUSHDATES
|
CS.RUN.PUSHDATES
|
||||||
|
@ -642,13 +642,13 @@ CS.RUN.NewLine >LDA.G ColCount
|
||||||
beq CS.RUN.NewLine.8
|
beq CS.RUN.NewLine.8
|
||||||
CS.RUN.NewLine.1
|
CS.RUN.NewLine.1
|
||||||
lda #C.CR
|
lda #C.CR
|
||||||
>SYSCALL putchar
|
>SYSCALL PutChar
|
||||||
|
|
||||||
* bit bCRLF
|
* bit bCRLF
|
||||||
* bpl CS.RUN.NewLine.8
|
* bpl CS.RUN.NewLine.8
|
||||||
|
|
||||||
lda #C.LF
|
lda #C.LF
|
||||||
>SYSCALL putchar
|
>SYSCALL PutChar
|
||||||
|
|
||||||
CS.RUN.NewLine.8
|
CS.RUN.NewLine.8
|
||||||
clc
|
clc
|
||||||
|
@ -806,8 +806,7 @@ ColCount .BS 1
|
||||||
hPW .BS 1
|
hPW .BS 1
|
||||||
|
|
||||||
.INB usr/src/bin/x.fileenum.g
|
.INB usr/src/bin/x.fileenum.g
|
||||||
DS.END
|
DS.END .ED
|
||||||
.ED
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/bin/ls.s
|
SAVE usr/src/bin/ls.s
|
||||||
|
|
|
@ -1,23 +1,21 @@
|
||||||
NEW
|
NEW
|
||||||
PREFIX
|
AUTO 3,1
|
||||||
AUTO 4,1
|
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF BIN/LSDEV
|
.TF bin/lsdev
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB inc/macros.i
|
||||||
.INB INC/MLI.I
|
.INB inc/mli.i
|
||||||
.INB INC/A2OSX.I
|
.INB inc/a2osx.i
|
||||||
.INB INC/KERNEL.I
|
.INB inc/kernel.i
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR ZPBIN
|
.OR ZPBIN
|
||||||
ZS.START
|
ZS.START
|
||||||
ZPFDPtr .BS 2
|
ZPFDPtr .BS 2
|
||||||
Index .BS 1
|
Index .BS 1
|
||||||
ZS.END
|
ZS.END .ED
|
||||||
.ED
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -113,7 +111,7 @@ DumpDev >LDYA L.MSG0
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.7 inc Index
|
.7 inc Index
|
||||||
inc index
|
inc Index
|
||||||
|
|
||||||
ldx Index
|
ldx Index
|
||||||
cpx #K.DEV.MAX*2+1
|
cpx #K.DEV.MAX*2+1
|
||||||
|
@ -223,7 +221,7 @@ DumpNod >LDYA L.MSG3
|
||||||
tax
|
tax
|
||||||
>PUSHW L.FD.T,x
|
>PUSHW L.FD.T,x
|
||||||
|
|
||||||
ldx index
|
ldx Index
|
||||||
lda Nod.Table.hPath-2,x
|
lda Nod.Table.hPath-2,x
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
@ -231,9 +229,9 @@ DumpNod >LDYA L.MSG3
|
||||||
|
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
.7 inc index
|
.7 inc Index
|
||||||
|
|
||||||
ldx index
|
ldx Index
|
||||||
cpx #K.NOD.MAX+2
|
cpx #K.NOD.MAX+2
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
|
@ -278,9 +276,8 @@ BLANK.DIB .DA #0 #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
|
||||||
DS.START
|
DS.START
|
||||||
DEV.DIB .BS S.DIB
|
DEV.DIB .BS S.DIB
|
||||||
DEV.SFLAGS .BS 9
|
DEV.SFLAGS .BS 9
|
||||||
DS.END
|
DS.END .ED
|
||||||
.ED
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/BIN/LSDEV.S
|
SAVE usr/src/bin/lsdev.s
|
||||||
ASM
|
ASM
|
||||||
|
|
|
@ -5,8 +5,8 @@ NEW
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF bin/mem
|
.TF bin/mem
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB inc/macros.i
|
||||||
.INB INC/A2OSX.I
|
.INB inc/a2osx.i
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR ZPBIN
|
.OR ZPBIN
|
||||||
|
@ -129,9 +129,8 @@ MSG.End .AZ "--------------------------------"
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
DS.END
|
DS.END .ED
|
||||||
.ED
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/BIN/MEM.S
|
SAVE usr/src/bin/mem.s
|
||||||
ASM
|
ASM
|
||||||
|
|
|
@ -56,7 +56,7 @@ CS.INIT clc
|
||||||
CS.RUN lda #1
|
CS.RUN lda #1
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
bcs .10
|
bcs .10
|
||||||
>SYSCALL atoi
|
>SYSCALL AToI
|
||||||
bcs .90
|
bcs .90
|
||||||
tax
|
tax
|
||||||
bne .90
|
bne .90
|
||||||
|
@ -149,7 +149,7 @@ CS.RUN.DUMP >SYSCALL GetMemPtr
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
lda hSession
|
lda hSession
|
||||||
>SYSCALL freemem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
jmp CS.RUN.PrintArgs
|
jmp CS.RUN.PrintArgs
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
|
@ -69,8 +69,8 @@ K.GetEnv.I ldy #S.PS.hENV FROM STDLIB:EXPAND
|
||||||
tay
|
tay
|
||||||
lda S.Table.hSID-1,y
|
lda S.Table.hSID-1,y
|
||||||
|
|
||||||
tay
|
tay Y = hSID
|
||||||
pla
|
pla A = hENV
|
||||||
|
|
||||||
jmp K.SYSCALL.JMPX
|
jmp K.SYSCALL.JMPX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -8,7 +8,7 @@ ENVX.PutEnv.9 lda #E.SYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENVX.PutEnv tax save hEnv
|
ENVX.PutEnv sta ENVX.hEnv
|
||||||
sty ENVX.hSID
|
sty ENVX.hSID
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
@ -29,16 +29,16 @@ ENVX.PutEnv tax save hEnv
|
||||||
adc TXTPTR+1
|
adc TXTPTR+1
|
||||||
sta FORPNT+1
|
sta FORPNT+1
|
||||||
|
|
||||||
txa get back hEnv
|
jsr ENVX.UnsetEnv.I
|
||||||
ldy ENVX.hSID
|
bra ENVX.SetEnv.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENVX.SetEnv jsr ENVX.UnsetEnv
|
ENVX.SetEnv jsr ENVX.UnsetEnv
|
||||||
|
ENVX.SetEnv.I
|
||||||
.1 jsr ENVX.InitEnvP3
|
.1 jsr ENVX.InitEnvP3
|
||||||
|
|
||||||
lda #1
|
lda #1 \0
|
||||||
sta ZPPtr4
|
sta ZPPtr4
|
||||||
stz ZPPtr4+1 ZPPtr4 = ENVSIZE = 1
|
stz ZPPtr4+1
|
||||||
|
|
||||||
.10 lda (ZPPtr3) End of ENV
|
.10 lda (ZPPtr3) End of ENV
|
||||||
beq .15
|
beq .15
|
||||||
|
@ -66,29 +66,49 @@ ENVX.SetEnv jsr ENVX.UnsetEnv
|
||||||
bne .19
|
bne .19
|
||||||
|
|
||||||
jsr ENVX.NextEnvP4Y ZPPtr4 = ENVSIZE + VALUE
|
jsr ENVX.NextEnvP4Y ZPPtr4 = ENVSIZE + VALUE
|
||||||
lda ZPPtr4
|
|
||||||
beq .20
|
|
||||||
|
|
||||||
inc ZPPtr4+1
|
* lda ENVX.hEnv done by ENVX.InitEnvP3
|
||||||
|
* jsr MEM.GetMemByID
|
||||||
|
|
||||||
.20 lda ENVX.hEnv
|
ldy #S.MEM.LEN
|
||||||
jsr MEM.GetMemByID
|
lda (ZPMemMgrSPtr),y
|
||||||
|
cmp ZPPtr4
|
||||||
lda ZPPtr4+1
|
iny
|
||||||
ldy #S.MEM.LEN+1
|
lda (ZPMemMgrSPtr),y
|
||||||
cmp (ZPMemMgrSPtr),y
|
sbc ZPPtr4+1
|
||||||
bcs .22 env is large enough
|
bcs .22 env is large enough
|
||||||
|
|
||||||
sta MEM.NewSize+1
|
ldy #S.MEM.PTR
|
||||||
stz MEM.NewSize
|
lda (ZPMemMgrSPtr),y
|
||||||
jsr K.realloc.I
|
sta A1L
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPMemMgrSPtr),y
|
||||||
|
sta A1L+1
|
||||||
|
|
||||||
|
iny #S.MEM.LEN
|
||||||
|
lda (ZPMemMgrSPtr),y
|
||||||
|
eor #$ff
|
||||||
|
sta A4L
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPMemMgrSPtr),y
|
||||||
|
eor #$ff
|
||||||
|
sta A4L+1
|
||||||
|
|
||||||
|
>LDYA ZPPtr4
|
||||||
|
jsr MEM.DupA1LnA4L
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
stx ENVX.hEnv
|
pha
|
||||||
txa
|
lda ENVX.hEnv
|
||||||
|
jsr K.FreeMem
|
||||||
|
pla
|
||||||
|
sta ENVX.hEnv
|
||||||
|
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
ldy #S.PS.hENV
|
ldy #S.PS.hENV
|
||||||
lda (pPS),y
|
sta (pPS),y
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
bra .1 Start over
|
bra .1 Start over
|
||||||
|
|
||||||
|
@ -188,7 +208,7 @@ ENVX.GetEnv sta ENVX.hEnv
|
||||||
ENVX.UnsetEnv sta ENVX.hEnv
|
ENVX.UnsetEnv sta ENVX.hEnv
|
||||||
sty ENVX.hSID
|
sty ENVX.hSID
|
||||||
|
|
||||||
jsr ENVX.FindEnvVar
|
ENVX.UnsetEnv.I jsr ENVX.FindEnvVar
|
||||||
bcs .8 not found, quit
|
bcs .8 not found, quit
|
||||||
|
|
||||||
jsr ENVX.DelVarP3 Ptr3 -> NAME=VALUE
|
jsr ENVX.DelVarP3 Ptr3 -> NAME=VALUE
|
||||||
|
|
|
@ -24,7 +24,7 @@ MEM.NewSize .BS 2
|
||||||
K.Realloc >PULLW MEM.NewSize
|
K.Realloc >PULLW MEM.NewSize
|
||||||
|
|
||||||
>PULLA Src hMem
|
>PULLA Src hMem
|
||||||
K.Realloc.I tax
|
tax
|
||||||
|
|
||||||
jsr MEM.GetMemByID
|
jsr MEM.GetMemByID
|
||||||
|
|
||||||
|
@ -544,8 +544,8 @@ MEM.Dup jsr K.GetMemPtr
|
||||||
eor #$ff
|
eor #$ff
|
||||||
ply
|
ply
|
||||||
|
|
||||||
jsr K.GetMem
|
MEM.DupA1LnA4L jsr K.GetMem
|
||||||
bcs .9
|
bcs MEM.Dup.RTS
|
||||||
|
|
||||||
>STYA A2L
|
>STYA A2L
|
||||||
|
|
||||||
|
@ -567,7 +567,6 @@ MEM.Dup jsr K.GetMemPtr
|
||||||
|
|
||||||
.8 txa
|
.8 txa
|
||||||
* clc
|
* clc
|
||||||
.9
|
|
||||||
MEM.Dup.RTS rts
|
MEM.Dup.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MEM.CopyToMain clc
|
MEM.CopyToMain clc
|
||||||
|
|
Loading…
Reference in New Issue
Block a user