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 >LDA.G hIncludeBuf
bne .90 bne .90
>PUSHW pData
>PUSHBI O.RDONLY
>PUSHBI S.FI.T.TXT >LDYA pData
>PUSHWZ Aux type jsr CS.RUN.LoadFile
>SYSCALL LoadTxtFile
bcs .99 bcs .99
txa
>STA.G hIncludeBuf >STA.G hIncludeBuf
rts rts
@@ -456,11 +454,6 @@ CSH.AddSymbol >LDA.G CSH.hSymbols
>PUSHWI ZPVarDef >PUSHWI ZPVarDef
>PUSHWI 6 >PUSHWI 6
>SYSCALL SListAddData >SYSCALL SListAddData
* bcs .9
* lda #'*'
* jsr DEBUG.VAR
.9 rts .9 rts
.99 lda #CSH.E.OOM .99 lda #CSH.E.OOM
@@ -528,8 +521,6 @@ CSH.SetVarValueFromStack
cpy ZPVarSizeOf cpy ZPVarSizeOf
bne .1 bne .1
* lda #'>'
* jsr DEBUG.VAR
clc clc
rts rts
@@ -929,20 +920,6 @@ CSH.GetVarSize txa
lda #2 lda #2
rts 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 MAN
SAVE usr/src/bin/csh.s.core SAVE usr/src/bin/csh.s.core
LOAD usr/src/bin/csh.s 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.ECHOCRLF .DA MSG.ECHOCRLF
L.MSG.DEBUG .DA MSG.DEBUG L.MSG.DEBUG .DA MSG.DEBUG
L.MSG.ERR .DA MSG.ERR L.MSG.ERR .DA MSG.ERR
L.MSG.DBGVAR .DA MSG.DBGVAR
L.ENV.INCLUDE .DA ENV.INCLUDE L.ENV.INCLUDE .DA ENV.INCLUDE
.INB usr/src/bin/csh.r .INB usr/src/bin/csh.r
.DA 0 .DA 0
@@ -150,18 +149,11 @@ CS.RUN.ARGS inc ArgIndex
.4 >LDA.G hFileBuf .4 >LDA.G hFileBuf
bne .90 bne .90
>PUSHW ZPPtr1 >LDYA ZPPtr1
>PUSHBI O.RDONLY jsr CS.RUN.LoadFile
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL LoadTxtFile
bcs .9 bcs .9
txa
>STA.G hFileBuf >STA.G hFileBuf
>SYSCALL GetMemPtr
>STYA ZPFileBuf
>STYA ZPFileBufPtr
bra CS.RUN.ARGS bra CS.RUN.ARGS
.7 >LDA.G hFileBuf .7 >LDA.G hFileBuf
@@ -178,6 +170,22 @@ CS.RUN.ARGS inc ArgIndex
sec QUIT Process sec QUIT Process
rts 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 CS.DOEVENT sec
rts rts
*-------------------------------------- *--------------------------------------
@@ -309,7 +317,6 @@ MSG.USAGE .AS "Usage : CSH <option> file\r\n"
MSG.ECHOCRLF .AZ "\r\n" MSG.ECHOCRLF .AZ "\r\n"
MSG.DEBUG .AZ "pStack=%H" MSG.DEBUG .AZ "pStack=%H"
MSG.ERR .AZ "^\r\nLine #%D:" 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" ENV.INCLUDE .AZ "INCLUDE"
*-------------------------------------- *--------------------------------------

View File

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