Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-07-30 21:00:15 +02:00
parent b3792e9d57
commit 65c8588e36
2 changed files with 43 additions and 20 deletions

Binary file not shown.

View File

@ -59,6 +59,7 @@ ZPCLBuf .BS 2
ZPInputBuf .BS 2 ZPInputBuf .BS 2
ZPInputBufPtr .BS 2 ZPInputBufPtr .BS 2
ZPInputCmdPtr .BS 2 ZPInputCmdPtr .BS 2
ZPArgVBuf .BS 2 ZPArgVBuf .BS 2
ZPArgVBufPrev .BS 2 ZPArgVBufPrev .BS 2
ZPArgVBufPtr .BS 2 ZPArgVBufPtr .BS 2
@ -70,10 +71,10 @@ CORE.Operator .BS 1
CORE.LogicOp .BS 1 CORE.LogicOp .BS 1
CORE.TestResult .BS 1 CORE.TestResult .BS 1
CORE.PrevTestResult .BS 1 CORE.PrevTestResult .BS 1
ZPTmpW .BS 2
ZPPtr1 .BS 2 ZPPtr1 .BS 2
ZPPtr2 .BS 2 ZPPtr2 .BS 2
ZPTmpW .BS 2
M32.ACC .BS 4 M32.ACC .BS 4
@ -185,27 +186,46 @@ CS.RUN jsr CL.Init
ldy #S.PS.ARGC ldy #S.PS.ARGC
lda (pPS),y lda (pPS),y
beq .1 no arg, continue starting interactive beq .2 no arg, continue starting interactive
lda #$ff lda #$ff
>STA.G bExitOnEOF >STA.G bExitOnEOF
lda #0 inc lda #0
jsr CMD.SHIFTA Remove $0=/bin/sh jsr CMD.SHIFTA Remove $0 = /bin/sh
jsr GetArgV jsr GetArgV
>STYA ZPPtr1
lda (ZPPtr1)
cmp #'-'
bne .1
jsr IO.Load ldy #1
lda (ZPPtr1),y
cmp #'C'
bne .1
iny
lda (ZPPtr1),y
bne .1
* lda #0
jsr CMD.SHIFTA Remove $0 = -C
jsr GetArgV
jmp CS.RUN.CMDLINE
.1 jsr IO.Load
bcs CS.INIT.RTS bcs CS.INIT.RTS
jsr GetArgV jsr GetArgV
jsr CORE.Load.YAX Exec Batch file jsr CORE.Load.YAX Exec Batch file
bcs CS.INIT.RTS .77 bcs CS.INIT.RTS
lda #$C0+C.. lda #$C0+C..
jsr CORE.StkPush jsr CORE.StkPush
bra CS.RUN.LOOP bra CS.RUN.LOOP
*-------------------------------------- *--------------------------------------
.1 jsr CMD.CD.HOME .2 jsr CMD.CD.HOME
jsr HIS.Init jsr HIS.Init
bcs CS.INIT.RTS bcs CS.INIT.RTS
@ -214,7 +234,7 @@ CS.RUN jsr CL.Init
>PUSHB /K.VER >PUSHB /K.VER
>PUSHBI 2 >PUSHBI 2
>SYSCALL PrintF >SYSCALL PrintF
bcs CS.INIT.RTS bcs .77
>LDYA L.HOME.PROFILE >LDYA L.HOME.PROFILE
jsr IO.Load jsr IO.Load
@ -294,46 +314,49 @@ CS.RUN.INTERACTIVE
jsr CL.Reset jsr CL.Reset
jsr CL.PrintPrompt jsr CL.PrintPrompt
bcs .9 bcs CS.RUN.CMDLINE.9
>STZ.G bREAD.S >STZ.G bREAD.S
dec dec
>STA.G READ.N >STA.G READ.N
.1 >SYSCALL GetChar .1 >SYSCALL GetChar
bcs .9 I/O error bcs CS.RUN.CMDLINE.9 I/O error
.2 cmp #C.EOF ....or Ctrl-D .2 cmp #C.EOF ....or Ctrl-D
beq .9 CS beq CS.RUN.CMDLINE.9 CS
jsr CL.CHARIN jsr CL.CHARIN
>LDA.G CL.bReady Something to execute ? >LDA.G CL.bReady Something to execute ?
bpl .1 bpl .1
>PUSHW L.MSG.PROMPTCRLF >PUSHW L.MSG.PROMPTCRLF
>PUSHBI 0 >PUSHBI 0
>SYSCALL PrintF >SYSCALL PrintF
bcs .9 bcs CS.RUN.CMDLINE.9
lda (ZPCLBuf) lda (ZPCLBuf)
beq .8 Empty line beq CS.RUN.CMDLINE.8 Empty line
jsr HIS.Add jsr HIS.Add
>LDYA ZPCLBuf >LDYA ZPCLBuf
>SYSCALL StrDup
bcs .8 CS.RUN.CMDLINE >SYSCALL StrDup
bcs CS.RUN.CMDLINE.8
jsr GetArgV Y,A=ARGV, X=strdup jsr GetArgV Y,A=ARGV, X=strdup
jsr CORE.Load.YAX Exec CL jsr CORE.Load.YAX Exec CL
bcs .9 bcs CS.RUN.CMDLINE.9
lda #$C0+C.CLEXEC lda #$C0+C.CLEXEC
jsr CORE.StkPush jsr CORE.StkPush
jsr CORE.Run jsr CORE.Run
.8 jmp CS.RUN.LOOP.END CS.RUN.CMDLINE.8
jmp CS.RUN.LOOP.END
.9 rts CS.RUN.CMDLINE.9
rts
*-------------------------------------- *--------------------------------------
CS.RUN.BATCH >LDA.G bSET.X CS.RUN.BATCH >LDA.G bSET.X
beq .5 beq .5
@ -684,7 +707,7 @@ IO.hIn .BS 1
IO.hOut .BS 1 IO.hOut .BS 1
IO.hErr .BS 1 IO.hErr .BS 1
*TimeBuf .BS S.TIME 8 bytes *TimeBuf .BS S.TIME 8 bytes
*M32.BUF .BS 12 -1234567890\0 *M32.BUF .BS 12 -1234567890\0
TimeBuf .EQ * TimeBuf .EQ *
M32.BUF .EQ * M32.BUF .EQ *