Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-08-11 20:55:28 +02:00
parent c288baded3
commit 70b226c525
9 changed files with 45 additions and 38 deletions

Binary file not shown.

Binary file not shown.

View File

@ -264,8 +264,10 @@ CL.DEL pha
rts rts
*-------------------------------------- *--------------------------------------
CL.PrintEOL >LDA.G CL.Ptr CL.PrintEOL >LDA.G CL.Ptr
.1 >CMP.G CL.Len .1 >CMP.G CL.Len
beq .2 beq .2
pha pha
tay tay
lda (ZPCLBuf),y lda (ZPCLBuf),y
@ -277,14 +279,17 @@ CL.PrintEOL >LDA.G CL.Ptr
.2 lda #C.SPACE .2 lda #C.SPACE
>SYSCALL PutChar >SYSCALL PutChar
>LDA.G CL.Ptr >LDA.G CL.Ptr
.3 >CMP.G CL.Len .3 >CMP.G CL.Len
beq .4 beq .4
pha pha
lda #C.BS lda #C.BS
>SYSCALL PutChar >SYSCALL PutChar
pla pla
inc inc
bra .3 bra .3
.4 lda #C.BS .4 lda #C.BS
>SYSCALL PutChar >SYSCALL PutChar

View File

@ -3,19 +3,20 @@ NEW
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
CMD.. lda (ZPArgVBufPtr) CMD.. lda (ZPArgVBufPtr)
beq .9 beq CMD...9
>LDYA ZPArgVBufPtr >LDYA ZPArgVBufPtr
jsr IO.Load jsr IO.Load
bcs CMD.SHIFTA.RTS bcs CMD.SHIFTA.RTS
>LDYA ZPArgVBufPtr >LDYA ZPArgVBufPtr
jsr CORE.Load.YAX Exec . file
CMD..EXEC.YAX jsr CORE.Load.YAX Exec . file
bcs CMD.SHIFTA.RTS bcs CMD.SHIFTA.RTS
lda #$C0+C.. lda #$C0+C..
jmp CORE.StkPush jmp CORE.StkPush
.9
CMD...9 jmp CMD.E.CSYN CMD...9 jmp CMD.E.CSYN
*-------------------------------------- *--------------------------------------
CMD.NOHUP lda (ZPArgVBufPtr) CMD.NOHUP lda (ZPArgVBufPtr)
@ -46,6 +47,7 @@ CMD.PUSHD >LDA.G PUSHD.STACK
jsr GetCWD jsr GetCWD
>SYSCALL StrDup >SYSCALL StrDup
bcs CMD.POPD.CSYN bcs CMD.POPD.CSYN
>INC.G PUSHD.STACK >INC.G PUSHD.STACK
tay tay
txa txa
@ -621,7 +623,7 @@ CMD.CALL jsr CMD.CALL.GETFUNC
>PUSHWI $ffff all >PUSHWI $ffff all
>PUSHWZ From Start >PUSHWZ From Start
>SYSCALL SListGetData >SYSCALL SListGetData X = hMem
bcs CMD.CALL.RTS bcs CMD.CALL.RTS
>LDYA ZPArgVBufPtr FUNC PARAM1 PARAM2... >LDYA ZPArgVBufPtr FUNC PARAM1 PARAM2...

View File

@ -16,6 +16,13 @@ CORE.FUNCRESET >LDA.G hFuncList
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
* stack-6 InputBuf
* stack-4 InputBufPtr
* stack-3 old ARGC
* stack-2 old ARGV
* stack-1 new hCode
* stack
*--------------------------------------
CORE.Load.YAX stx M32.ACC X = Code to Execute CORE.Load.YAX stx M32.ACC X = Code to Execute
>SYSCALL ArgVDup Y,A = ArgV >SYSCALL ArgVDup Y,A = ArgV

View File

@ -179,7 +179,7 @@ L.PS1 .DA PS1
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
CS.INIT clc CS.INIT clc
CS.INIT.RTS rts rts
*-------------------------------------- *--------------------------------------
CS.RUN jsr CL.Init CS.RUN jsr CL.Init
jsr CORE.Init jsr CORE.Init
@ -195,6 +195,7 @@ CS.RUN jsr CL.Init
jsr GetArgV jsr GetArgV
>STYA ZPPtr1 >STYA ZPPtr1
lda (ZPPtr1) lda (ZPPtr1)
cmp #'-' cmp #'-'
bne .1 bne .1
@ -217,38 +218,35 @@ CS.RUN jsr CL.Init
jsr GetArgV jsr GetArgV
jmp CS.RUN.CMDLINE jmp CS.RUN.CMDLINE
.1 jsr GetArgV .1 jsr GetArgV Load SH batch file
jsr IO.Load jsr IO.Load
bcs CS.INIT.RTS bcs .9
jsr GetArgV phx X = loaded file hMem
jsr GetArgV Y,A = Args
jsr CORE.Load.YAX Exec Batch file plx
bcs CS.INIT.RTS jsr CMD..EXEC.YAX Execute . Batch file
lda #$C0+C.. bcc CS.RUN.LOOP
jsr CORE.StkPush
bra CS.RUN.LOOP .9 rts
*-------------------------------------- *--------------------------------------
.2 jsr CMD.CD.HOME .2 jsr CMD.CD.HOME
jsr HIS.Init jsr HIS.Init
.99 bcs CS.INIT.RTS bcs .9
>PUSHW L.MSG.GREETINGS >PUSHW L.MSG.GREETINGS
>PUSHB #K.VER >PUSHB #K.VER
>PUSHB /K.VER >PUSHB /K.VER
>PUSHBI 2 >PUSHBI 2
>SYSCALL PrintF >SYSCALL PrintF
bcs .99 bcs .9
>LDYA L.HOME.PROFILE >LDYA L.HOME.PROFILE
jsr IO.Load jsr IO.Load
bcs CS.RUN.LOOP No profile... bcs CS.RUN.LOOP No profile...
>LDYA L.HOME.PROFILE >LDYA L.HOME.PROFILE
jsr CORE.Load.YAX Exec profile and continue jsr CMD..EXEC.YAX Execute . ${home}profile
bcs CS.RUN.LOOP
lda #$C0+C..
jsr CORE.StkPush
*-------------------------------------- *--------------------------------------
CS.RUN.LOOP >SLEEP CS.RUN.LOOP >SLEEP
@ -347,7 +345,9 @@ CS.RUN.INTERACTIVE
CS.RUN.CMDLINE >SYSCALL StrDup CS.RUN.CMDLINE >SYSCALL StrDup
bcs CS.RUN.CMDLINE.8 bcs CS.RUN.CMDLINE.8
jsr GetArgV Y,A=ARGV, X=strdup phx
jsr GetArgV
plx Y,A=ARGV, X=strdup
jsr CORE.Load.YAX Exec CL jsr CORE.Load.YAX Exec CL
bcs CS.RUN.CMDLINE.9 bcs CS.RUN.CMDLINE.9
@ -468,16 +468,13 @@ CS.QUIT jsr CORE.FUNCRESET
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
GetCWD phx GetCWD ldy #S.PS.hCWD
ldy #S.PS.hCWD
bra GetArgV.1 bra GetArgV.1
*-------------------------------------- *--------------------------------------
GetArgV phx GetArgV ldy #S.PS.hARGV
ldy #S.PS.hARGV
GetArgV.1 lda (pPS),y GetArgV.1 lda (pPS),y
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
plx
rts rts
*-------------------------------------- *--------------------------------------
CheckLFAfterCR ldy #S.PS.hStdIn Check for any extra LF CheckLFAfterCR ldy #S.PS.hStdIn Check for any extra LF

View File

@ -133,7 +133,6 @@ L538E lda A4L get command #
jsr XRW.TestWP 0 = status jsr XRW.TestWP 0 = status
bcs XRW.E.WP bcs XRW.E.WP
lda #0
bra XRW.E.OK bra XRW.E.OK
.1 cmp #4 3 = format .1 cmp #4 3 = format
@ -145,8 +144,7 @@ L538E lda A4L get command #
jsr XRW.TestWP jsr XRW.TestWP
bcs XRW.E.WP bcs XRW.E.WP
*-------------------------------------- *--------------------------------------
.2 lda A4L get command # .2 jsr regrwts
jsr regrwts
bcs XRW.E.IO bcs XRW.E.IO
inc buf+1 inc buf+1
@ -154,7 +152,6 @@ L538E lda A4L get command #
inc XRW.ReqSector inc XRW.ReqSector
inc XRW.ReqSector inc XRW.ReqSector
lda A4L get command #
jsr regrwts get 2nd half of block jsr regrwts get 2nd half of block
dec buf+1 dec buf+1
@ -167,7 +164,6 @@ XRW.E.OK bit IO.D2.DrvOff,x turn off
XRW.E.IO lda #MLI.E.IO XRW.E.IO lda #MLI.E.IO
.HS 2C BIT ABS .HS 2C BIT ABS
XRW.E.WP lda #MLI.E.WRTPROT XRW.E.WP lda #MLI.E.WRTPROT
.HS 2C BIT ABS .HS 2C BIT ABS
XRW.E.ND lda #MLI.E.NODEV XRW.E.ND lda #MLI.E.NODEV
@ -178,6 +174,8 @@ XRW.E.ND lda #MLI.E.NODEV
regrwts ldy #1 regrwts ldy #1
sty XRW.RecalibrateCnt sty XRW.RecalibrateCnt
lda A4L get command #
lsr set carry = 1 for read, 0 for write. lsr set carry = 1 for read, 0 for write.
bcs .1 must prenibblize for write bcs .1 must prenibblize for write

View File

@ -142,9 +142,8 @@ CS.RUN.ETCINIT >LDYAI 256
beq .1 beq .1
>PUSHW BufPtr >PUSHW BufPtr
>PUSHBI S.PS.F.NOHUP >PUSHBI S.PS.F.NOHUP+S.PS.F.HOLD
>SYSCALL ExecL >SYSCALL ExecL
>SLEEP >SLEEP
bra .1 bra .1

View File

@ -23,7 +23,7 @@ DBG .EQ 0
ZS.START ZS.START
pNETCFG .BS 2 pNETCFG .BS 2
pBuf .BS 2 pBuf .BS 2
hNetworkFile .BS 1 hEtcNetwork .BS 1
hLineBuf .BS 1 hLineBuf .BS 1
hFrameIn .BS 1 hFrameIn .BS 1
ZS.END .ED ZS.END .ED
@ -207,11 +207,11 @@ CS.INIT.CONF >LDYAI 64
>SYSCALL FOpen >SYSCALL FOpen
bcs .98 bcs .98
sta hNetworkFile sta hEtcNetwork
.1 >PUSHWI 64 .1 >PUSHWI 64
>PUSHW pBuf >PUSHW pBuf
lda hNetworkFile lda hEtcNetwork
>SYSCALL fgets >SYSCALL fgets
bcs .80 bcs .80
@ -223,7 +223,6 @@ CS.INIT.CONF >LDYAI 64
>PUSHW pBuf >PUSHW pBuf
>PUSHBI S.PS.F.HOLD >PUSHBI S.PS.F.HOLD
>SYSCALL execL >SYSCALL execL
jsr CS.RUN.CheckErr jsr CS.RUN.CheckErr
>SLEEP >SLEEP
bra .1 bra .1
@ -234,7 +233,7 @@ CS.INIT.CONF >LDYAI 64
sec sec
rts rts
.80 lda hNetworkFile .80 lda hEtcNetwork
>SYSCALL FClose >SYSCALL FClose
.81 lda hLineBuf .81 lda hLineBuf