Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-08-27 08:30:03 +02:00
parent 2c19045368
commit d665c03158
6 changed files with 83 additions and 73 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -316,14 +316,12 @@ CSH.DIR.INCLUDE >STZ.G PathBuf
>LDA.G hIncludeBuf
bne .90
>PUSHW pData
>PUSHBI O.RDONLY
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL LoadTxtFile
>LDYA pData
jsr CS.RUN.LoadFile
bcs .99
txa
>STA.G hIncludeBuf
rts
@ -456,11 +454,6 @@ CSH.AddSymbol >LDA.G CSH.hSymbols
>PUSHWI ZPVarDef
>PUSHWI 6
>SYSCALL SListAddData
* bcs .9
* lda #'*'
* jsr DEBUG.VAR
.9 rts
.99 lda #CSH.E.OOM
@ -528,8 +521,6 @@ CSH.SetVarValueFromStack
cpy ZPVarSizeOf
bne .1
* lda #'>'
* jsr DEBUG.VAR
clc
rts
@ -929,20 +920,6 @@ CSH.GetVarSize txa
lda #2
rts
*--------------------------------------
DEBUG.VAR >SYSCALL PutChar
>PUSHW L.MSG.DBGVAR
>PUSHW ZPVarID
>PUSHW ZPVarType
>PUSHW ZPVarSizeOf
>PUSHW ZPVarDataPtr
ldy #3
.1 >PUSHB (ZPVarDataPtr),y
dey
bpl .1
>PUSHBI 12
>SYSCALL PrintF
rts
*--------------------------------------
MAN
SAVE usr/src/bin/csh.s.core
LOAD usr/src/bin/csh.s

View File

@ -66,7 +66,6 @@ L.MSG.USAGE .DA MSG.USAGE
L.MSG.ECHOCRLF .DA MSG.ECHOCRLF
L.MSG.DEBUG .DA MSG.DEBUG
L.MSG.ERR .DA MSG.ERR
L.MSG.DBGVAR .DA MSG.DBGVAR
L.ENV.INCLUDE .DA ENV.INCLUDE
.INB usr/src/bin/csh.r
.DA 0
@ -150,18 +149,11 @@ CS.RUN.ARGS inc ArgIndex
.4 >LDA.G hFileBuf
bne .90
>PUSHW ZPPtr1
>PUSHBI O.RDONLY
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL LoadTxtFile
>LDYA ZPPtr1
jsr CS.RUN.LoadFile
bcs .9
txa
>STA.G hFileBuf
>SYSCALL GetMemPtr
>STYA ZPFileBuf
>STYA ZPFileBufPtr
bra CS.RUN.ARGS
.7 >LDA.G hFileBuf
@ -178,6 +170,22 @@ CS.RUN.ARGS inc ArgIndex
sec QUIT Process
rts
*--------------------------------------
CS.RUN.LoadFile >PUSHYA
>PUSHBI O.RDONLY
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL LoadTxtFile
bcs .9
phx
txa
>SYSCALL GetMemPtr
>STYA ZPFileBuf
>STYA ZPFileBufPtr
pla
.9 rts
*--------------------------------------
CS.DOEVENT sec
rts
*--------------------------------------
@ -309,7 +317,6 @@ MSG.USAGE .AS "Usage : CSH <option> file\r\n"
MSG.ECHOCRLF .AZ "\r\n"
MSG.DEBUG .AZ "pStack=%H"
MSG.ERR .AZ "^\r\nLine #%D:"
MSG.DBGVAR .AZ "K=%H, T=%H, S=%H, P=%H, V=%L\r\n"
*--------------------------------------
ENV.INCLUDE .AZ "INCLUDE"
*--------------------------------------

View File

@ -39,9 +39,13 @@ CS.START cld
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.DOEVENT
.DA CS.QUIT
L.MSG.CTRLR .DA MSG.CTRLR
L.MSG.CTRLR .DA MSG.CTRLR
.DO INITDDBG=1
L.MSG.OK .DA MSG.OK
L.MSG.KO .DA MSG.KO
.FIN
L.ETCINIT .DA ETCINIT
L.CMDS .DA BINSH
.DA BINMEM
@ -64,7 +68,7 @@ CS.RUN ldy #S.PS.PID
bcs .99
tay
bne .1
>SYSCALL GetChar
bcs .99
@ -73,32 +77,32 @@ CS.RUN ldy #S.PS.PID
>LDYA L.MSG.CTRLR
>SYSCALL PutS
ldx #0
jsr CS.RUN.EXEC.X
>SLEEP
.1 jsr CS.RUN.ETCINIT
bcs .99
.2 >SYSCALL GetChar
bcs .99
cmp #C.CR Ctrl.M
bne .3
ldx #2
jsr CS.RUN.EXEC.X
bra .2
.3 cmp #16 Ctrl.P
bne .4
ldx #4
jsr CS.RUN.EXEC.X
bra .2
.4 cmp #12 Ctrl.L
bne .5
@ -107,14 +111,14 @@ CS.RUN ldy #S.PS.PID
.5 cmp #4 Ctrl.D
bne .2
ldx #8
jsr CS.RUN.EXEC.X
bcs .2
sec
rts
.9 lda #E.SYN
sec
.99 rts
@ -123,55 +127,73 @@ CS.RUN.ETCINIT >LDYAI 256
>SYSCALL GetMem
>STYA BufPtr
stx hBuf
>PUSHW L.ETCINIT
>PUSHBI O.RDONLY+O.TEXT
>PUSHBI S.FI.T.TXT
>PUSHWZ
>SYSCALL FOpen
bcs .90
sta hFile
bcc .10
pha
jsr .81
pla
sec
rts
.10 sta hFile
.1 >PUSHWI 256
>PUSHW BufPtr
lda hFile
>SYSCALL FGetS
bcs .80
lda (BufPtr)
cmp #'#'
beq .1
.DO INITDDBG=1
>LDYA BufPtr
>SYSCALL PutS
>PUSHW BufPtr
>PUSHBI 0
>SYSCALL PrintF
.FIN
>PUSHW BufPtr
>PUSHBI S.PS.F.NOHUP+S.PS.F.HOLD
>SYSCALL ExecL
.DO INITDDBG=1
bcs .2
>LDYA L.MSG.OK
>SYSCALL PutS
.FIN
>SLEEP
bra .1
.90 pha
jsr .81
pla
sec
rts
.DO INITDDBG=1
.2 tax
>PUSHW L.MSG.KO
txa
>PUSHA
>PUSHBI 1
>SYSCALL PrintF
jmp .1
.FIN
.80 lda hFile
>SYSCALL FClose
.81 lda hBuf
>SYSCALL FreeMem
rts
*--------------------------------------
CS.RUN.EXEC.X >PUSHW L.CMDS,x
>PUSHBI S.PS.F.HOLD
>SYSCALL ExecL
rts
rts
*--------------------------------------
CS.DOEVENT sec
rts
@ -186,6 +208,10 @@ CS.QUIT lda #MLIQUIT
CS.END
*--------------------------------------
MSG.CTRLR .AZ "INITD:Entering ROOT mode..."
.DO INITDDBG=1
MSG.OK .AZ " [OK]"
MSG.KO .AZ " [%h]\r\n"
.FIN
ETCINIT .AZ "${ROOT}etc/init"
BINSH .AZ "${ROOT}bin/sh"
BINMEM .AZ "${ROOT}bin/mem"