mirror of
https://github.com/A2osX/A2osX.git
synced 2025-04-08 01:37:13 +00:00
Kernel 0.92
This commit is contained in:
parent
c0e8b88dc1
commit
03231059b9
Binary file not shown.
Binary file not shown.
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -574,7 +574,7 @@ CL.IO.Open pha
|
||||
rts
|
||||
|
||||
.9 pla
|
||||
lda #E.SYNTAX
|
||||
lda #E.CSYN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -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
|
||||
*--------------------------------------
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
13
README.md
13
README.md
@ -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:
|
||||
|
||||
|
@ -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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user