Kernel 0.92

This commit is contained in:
Rémy GIBERT 2018-11-28 12:39:33 +01:00
parent c0e8b88dc1
commit 03231059b9
13 changed files with 135 additions and 99 deletions

Binary file not shown.

Binary file not shown.

View File

@ -221,26 +221,17 @@ CS.RUN.CheckErr bcs .1
rts
.1 pha
>LDA.G bContinue
bpl .2
pla
>PUSHA
>PUSHBI 1
>LDYA L.MSG.ERR
>SYSCALL printf
bcs .9
rts
.2 lda #13
>SYSCALL PutChar
lda #10
>SYSCALL PutChar
>LDA.G bContinue
eor #$80
asl
pla
sec
.9 rts
rts
*--------------------------------------
CS.RUN.GetFilePath
>LDA.G hSrcBasePath

View File

@ -269,7 +269,7 @@ CS.QUIT clc
CS.END
MSG0 .AZ " # Flags PID REF PTR LEN BINPATH/DATA"
MSG1.INV .AZ "\e[7m"
MSG1 .AZ "%03d %s %3d %3d $%H %5D "
MSG1 .AZ "$%h %s %3d %3d $%H %5D "
MSG1.BIN .AZ "{%s}\e[0m\r\n"
MSG1.STR .AZ "[%03d:%s]\e[0m\r\n"
MSG1.HEX .AZ "?HEX:%h%h.%h%h.%h%h.%h%h.%h%h.%h%h.%h%h.%h%h\e[0m\r\n"
@ -293,5 +293,5 @@ DS.END
.ED
*--------------------------------------
MAN
SAVE USR/SRC/SRC/BIN/DEV/MEMDUMP.S
SAVE USR/SRC/BIN/DEV/MEMDUMP.S
ASM

View File

@ -37,8 +37,8 @@ CS.START cld
.DA CS.DOEVENT
.DA CS.QUIT
L.MSG.USAGE .DA MSG.USAGE
L.MSG.NUMLINECR .DA MSG.NUMLINECR
L.MSG.LINECR .DA MSG.LINECR
L.MSG.NUMLINE .DA MSG.NUMLINE
L.MSG.CRLF .DA MSG.CRLF
L.MSG.Pause .DA MSG.Pause
L.MSG.PauseErase .DA MSG.PauseErase
.DA 0
@ -163,6 +163,8 @@ CS.RUN.PAUSE >PUSHBI 0
cmp #'Q'
beq .9
cmp #'q'
beq .9
.3 cmp #C.SPACE
bne .4
@ -243,20 +245,22 @@ CS.RUN.GETLINE >LDA.G hFile
clc
.9 rts
*--------------------------------------
CS.RUN.PRINT clc
>LDA.G bLineNum
CS.RUN.PRINT >LDA.G bLineNum
bpl .1
>PUSHW ZPBufPtr
>PUSHW.G LineNum
>PUSHBI 4
>LDYA L.MSG.NUMLINECR
>SYSCALL printf
rts
.1 >PUSHW ZPBufPtr
>PUSHBI 2
>LDYA L.MSG.LINECR
>LDYA L.MSG.NUMLINE
>SYSCALL printf
bcs .9
.1 >PUSHBI 0
>LDYA ZPBufPtr
>SYSCALL printf
bcs .9
>PUSHBI 0
>LDYA L.MSG.CRLF
>SYSCALL printf
.9 rts
*--------------------------------------
@ -286,9 +290,9 @@ MSG.USAGE .AS "Usage : MORE <File>\r\n"
.AS " -H : This help screen\r\n"
.AS " -N : Number all output lines\r\n"
.AZ " -P : Page mode, no scroll\r\n"
MSG.NUMLINECR .AZ "%5D:%s\r\n"
MSG.LINECR .AZ "%s\r\n"
MSG.Pause .AZ "\r\e[7m --- 'SPACE' for more, 'CR' one line, 'Q' to quit --- \e[0m"
MSG.NUMLINE .AZ "%5D:"
MSG.CRLF .AZ "\r\n"
MSG.Pause .AZ "\r\e[7m --- 'SPACE' for more, 'CR' one line, 'Q/q' to quit --- \e[0m"
MSG.PauseErase .AZ "\r\e[2K"
*--------------------------------------
.DUMMY

View File

@ -574,7 +574,7 @@ CL.IO.Open pha
rts
.9 pla
lda #E.SYNTAX
lda #E.CSYN
sec
rts
*--------------------------------------

View File

@ -111,7 +111,7 @@ Cmd.INT.PUSHD >LDA.G PUSHD.STACK
lda (pPs),y
>SYSCALL GetMemPtr
>SYSCALL NewStr
bcs .99
bcs Cmd.INT.POPD.CSYN
>INC.G PUSHD.STACK
tay
@ -123,20 +123,16 @@ Cmd.INT.PUSHD >LDA.G PUSHD.STACK
bcs .8
>SYSCALL RealPath
bcs .99
bcs .9
jmp Cmd.INT.CD.1
.8 clc
rts
.9 lda #E.SYNTAX
sec
.99 rts
.9 rts
*--------------------------------------
Cmd.INT.POPD >LDA.G PUSHD.STACK
cmp #PUSHD.STACK
beq .9
beq Cmd.INT.POPD.CSYN
tay
lda (pData),y
@ -146,7 +142,8 @@ Cmd.INT.POPD >LDA.G PUSHD.STACK
clc
rts
.9 lda #E.SYNTAX
Cmd.INT.POPD.CSYN
lda #E.CSYN
sec
rts
*--------------------------------------
@ -189,7 +186,7 @@ Cmd.INT.CD.1 >STYA ZPPtr1
cmp #S.FI.T.DIR
beq .1
lda #E.SYNTAX
lda #E.CSYN
sec
bra .90
@ -237,7 +234,11 @@ Cmd.SetPrefixA pha
sta (pPs),y
jmp SetPWD.I
*--------------------------------------
Cmd.Exec.ERRSYN lda #E.SYNTAX
Cmd.Exec.CSYN lda #E.CSYN
sec
rts
*--------------------------------------
Cmd.Exec.SSYN lda #E.SSYN
sec
rts
*--------------------------------------
@ -314,7 +315,6 @@ Cmd.INT.SET.1 >STZ.G CMD.Varname
>EOR.G bSET.X
sta (pData),y
>INC.G CMD.ArgIndex
tax
bra .1
.2 >LDA.G CMD.ArgIndex
@ -355,7 +355,7 @@ Cmd.INT.SET.1 >STZ.G CMD.Varname
.8 clc
rts
.99 lda #E.SYNTAX
.99 lda #E.CSYN
sec
rts
@ -409,14 +409,28 @@ Cmd.INT.TIME clc
>SYSCALL puts
rts
*--------------------------------------
Cmd.INT.ECHO lda #1
Cmd.INT.ECHO >STZ.G bECHO.N
lda #1
>STA.G CMD.ArgIndex
tax
.1 tax
jsr Cmd.GetArgX
bcs .7
pha
jsr CMD.IsSwitch
bcs .2
cmp #'N'
bne .99
lda #$ff
>EOR.G bECHO.N
sta (pData),y
>INC.G CMD.ArgIndex
bra .1
.2 pha
>PUSHBI 0
pla
>SYSCALL printf
@ -428,7 +442,7 @@ Cmd.INT.ECHO lda #1
jsr Cmd.GetArgX
bcs .7
.1 lda #C.SPACE
.6 lda #C.SPACE
>SYSCALL putchar
bcs .9
@ -445,7 +459,7 @@ Cmd.INT.ECHO lda #1
tax
jsr Cmd.GetArgX
bcc .1
bcc .6
.7 >LDA.G bECHO.N
bmi .8
@ -457,6 +471,10 @@ Cmd.INT.ECHO lda #1
.8 clc
.9 rts
.99 lda #E.CSYN
sec
rts
*--------------------------------------
Cmd.INT.READ lda #1
>STA.G CMD.ArgIndex
@ -503,7 +521,7 @@ Cmd.INT.READ lda #1
clc
.99 rts
.9 jmp Cmd.Exec.ERRSYN
.9 jmp Cmd.Exec.CSYN
*--------------------------------------
Cmd.INT.SLEEP ldx #1
jsr Cmd.GetArgX
@ -516,7 +534,7 @@ Cmd.INT.SLEEP ldx #1
clc
rts
.9 jmp Cmd.Exec.ERRSYN
.9 jmp Cmd.Exec.CSYN
*--------------------------------------
Cmd.INT.PAUSE lda #$FF
>STA.G bPause
@ -535,7 +553,7 @@ Cmd.INT.MD ldx #1
>SYSCALL MKDir
rts
.9 jmp Cmd.Exec.ERRSYN
.9 jmp Cmd.Exec.CSYN
*--------------------------------------
Cmd.INT.REN ldx #2
jsr Cmd.GetArgX
@ -547,7 +565,7 @@ Cmd.INT.REN ldx #2
>SYSCALL Rename
rts
.9 jmp Cmd.Exec.ERRSYN
.9 jmp Cmd.Exec.CSYN
*--------------------------------------
Cmd.INT.RD ldx #1
jsr Cmd.GetArgX
@ -569,19 +587,19 @@ Cmd.INT.RD ldx #1
>SYSCALL Remove
.99 rts
.9 jmp Cmd.Exec.ERRSYN
.9 jmp Cmd.Exec.CSYN
*--------------------------------------
Cmd.INT.BREAK
.9 jmp Cmd.Exec.ERRSYN
.9 jmp Cmd.Exec.SSYN
*--------------------------------------
Cmd.INT.CONTINUE
.9 jmp Cmd.Exec.ERRSYN
.9 jmp Cmd.Exec.SSYN
*--------------------------------------
Cmd.INT.FOR
.9 jmp Cmd.Exec.ERRSYN
.9 jmp Cmd.Exec.SSYN
*--------------------------------------
Cmd.INT.NEXT
.9 jmp Cmd.Exec.ERRSYN
.9 jmp Cmd.Exec.SSYN
*--------------------------------------
Cmd.INT.WHILE
Cmd.INT.IF jsr CMD.StkGet
@ -713,7 +731,7 @@ Cmd.Eval ldx #1
ldx #4 go check ]
bra .8
.9 lda #E.SYNTAX
.9 lda #E.ESYN
sec
.99 rts
@ -759,7 +777,7 @@ CMD.Eval.UNARY ldx #3
tax
jmp (J.CMD.Eval.TOKEN2,x)
.9 lda #E.SYNTAX
.9 lda #E.ESYN
sec
rts
@ -818,13 +836,14 @@ CMD.Eval.BINARY ldx #2
ldx #4
jsr Cmd.GetArgX
>SYSCALL strcmp
lsr CS if !=
ror CS if !=
and #$80
eor #$80
>EOR.G CMD.Operator
clc
rts
.9 lda #E.SYNTAX
.9 lda #E.ESYN
sec
rts
*--------------------------------------
@ -865,7 +884,7 @@ CMD.Eval.BINARY.NUM
clc
rts
.9 lda #E.SYNTAX
.9 lda #E.ESYN
sec
rts
*--------------------------------------
@ -1030,7 +1049,7 @@ CMD.StkGetPtr lda (pData) StackPtr
clc
rts
.9 lda #E.SYNTAX
.9 lda #E.SSYN
sec
rts
*--------------------------------------
@ -1069,7 +1088,7 @@ CMD.StkGet lda (pData) StackPtr
clc
rts
.9 lda #E.SYNTAX
.9 lda #E.SSYN
sec
rts
*--------------------------------------

View File

@ -41,13 +41,15 @@ C.IF .EQ 46
C.ELSE .EQ 48
C.FI .EQ 50
*--------------------------------------
E.SYNTAX .EQ $C0
E.STKOVERFLOW .EQ $C1
E.NOWHILE .EQ $C2
E.NOFOR .EQ $C3
E.NOIF .EQ $C4
E.BADEXP .EQ $C5
E.BADFTYPE .EQ $C6
E.CSYN .EQ $C0
E.SSYN .EQ $C1
E.ESYN .EQ $C1
E.STKOVERFLOW .EQ $C3
E.NOWHILE .EQ $C4
E.NOFOR .EQ $C5
E.NOIF .EQ $C6
E.BADEXP .EQ $C7
E.BADFTYPE .EQ $C8
*--------------------------------------
.INB INC/MACROS.I
.INB INC/A2OSX.I

View File

@ -443,6 +443,7 @@ CS.RUN.FILE jsr CS.RUN.FILE.MSG
.3 jsr CS.RUN.CopyStart
bcc .4
jsr CS.RUN.CheckErr
bcs .9
jmp CS.RUN.NEXT
.FIN
@ -554,7 +555,7 @@ CS.RUN.Rename ldy #hDstFullPath
CS.RUN.CopyStart
ldy #hSrcFullPath
lda #O.RDONLY
jsr CS.RUN.Open
bcs .99
@ -583,11 +584,11 @@ CS.RUN.CopyStart
>SYSCALL fclose
pla
ldy #CopyRC
.99 ldy #CopyRC
sta (pData),y
sec
.99 rts
rts
*--------------------------------------
CS.RUN.Open phy Save Filename
pha Save open mode
@ -673,23 +674,17 @@ CS.RUN.CheckErr bcs .1
>SYSCALL puts
.8 rts
.1 >LDA.G RC
pha
>LDA.G bContinue
bpl .2
pla
.1 pha
>PUSHA
>PUSHBI 1
>LDYA L.MSG.ERR
>SYSCALL printf
rts
.2 jsr CS.RUN.CR
>LDA.G bContinue
eor #$80
asl
pla
sec
rts
*--------------------------------------
CS.RUN.BuildFilePath

View File

@ -35,7 +35,25 @@ InitSrcDirYA >SYSCALL RealPath
>LDA.G STAT+S.STAT.P.TYPE
cmp #$0f
bne .4 TYPE not a DIR, extract....
beq .5 TYPE=DIR, do not extract pattern
ldy #0
.56 iny
lda (ZPPtr1),y
bne .56
dey
lda #'/'
cmp (ZPPtr1),y
beq .5
iny
sta (ZPPtr1),y
iny
lda #0
sta (ZPPtr1),y
bra .5 TYPE=DIR, do not extract pattern
.1 ldy #0 TYPE is not DIR, check if wc

View File

@ -637,10 +637,7 @@ BS ldx CH
.3 clc
rts
*--------------------------------------
ClrScr stz CH
stz CV
ldx #23
ClrScr ldx #23
.1 jsr SETUP.L1X
@ -657,6 +654,7 @@ ClrScr stz CH
sta CLRWRITEAUX
ldy #39
.3 sta (ZPBaseL1),y
dey
bpl .3
@ -664,11 +662,9 @@ ClrScr stz CH
dex
bpl .1
clc
rts
stz CV
*--------------------------------------
CROUT jsr CLREOL
stz CH
CROUT stz CH
clc
rts
*--------------------------------------
@ -1148,5 +1144,5 @@ DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
*--------------------------------------
DRV.END
MAN
SAVE USR/SRC/BIN/DRV/CONSOLE.DRV.S
SAVE USR/SRC/DRV/CONSOLE.DRV.S
ASM

View File

@ -269,15 +269,21 @@ OApple+1,OApple+2,OApple+3 to switch between screens : Kernel Log, text, DHGR.
| PWD | Working | Print Working Directory |
| DATE | Working | |
| ECHO | Working | \b,\e,\f,\n,\\\ and \\% supported |
| | | -N : Suppress \r\n |
| EXIT | Working | exit shell |
| PAUSE | Working | Wait until CR |
| PUSHD | Working | Save actual working directory |
| | | PUSHD <dir> do aslo a CD to <dir> |
| POPD | Working | Restore previously saved working directory |
| READ | Working | -S : no echo (password) |
| | | -P : "prompt message" |
| TIME | Working | |
| SET | Working | -X toggle debug mode |
| SLEEP | Working | Wait <count> 10th sec |
| STARTPROC | Working | Used in A2osX.startup |
| IF ELSE FI | Working | [ -d direxists ] |
| SHIFT | Working | Remove $1 from cmd line |
| ---- | ------ | ------- |
| IF .. ELSE .. FI | Working | [ -d direxists ] |
| | | [ -e fileordirexists ] |
| | | [ -f fileexists ] |
| | | [ string1 = string2 ] |
@ -288,8 +294,9 @@ OApple+1,OApple+2,OApple+3 to switch between screens : Kernel Log, text, DHGR.
| | | [ int32 -le int32 ] |
| | | [ int32 -gt int32 ] |
| | | [ int32 -ge int32 ] |
| SHIFT | Working | Remove $1 from cmd line |
| WHILE BREAK LOOP | Working | [ same as IF ] |
| WHILE .. LOOP | Working | [ same tests as IF ] |
| BREAK | | |
| CONTINUE | | |
## Shell variables:

View File

@ -33,7 +33,9 @@ ERR.Codes .DA #MLI.E.IO
.DA #E.FTB
.DA #3 Ctrl-C
*--------------------------------------
.DA #E.SYNTAX
.DA #E.CSYN
.DA #E.SSYN
.DA #E.ESYN
.DA #E.STKOVERFLOW
.DA #E.NOWHILE
.DA #E.NOFOR
@ -73,7 +75,9 @@ ERR.Messages >PSTR "I/O Error"
>PSTR "File Too Big"
>PSTR "User Interrupt"
*--------------------------------------
>PSTR "Command Syntax Error"
>PSTR "Script Syntax Error"
>PSTR "Expression Syntax Error"
>PSTR "Stack Overflow"
>PSTR "LOOP Without WHILE"
>PSTR "NEXT Without FOR"