Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-08-12 21:31:36 +02:00
parent 70b226c525
commit eb4adc065f
9 changed files with 118 additions and 103 deletions

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
*-------------------------------------- *--------------------------------------

View File

@ -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

View File

@ -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