mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-18 00:30:40 +00:00
Kernel version 0.9 : SHell, Added READ internal command
This commit is contained in:
parent
f06d8b92f2
commit
fd3b4036e0
BIN
A2OSX.BOOT.po
BIN
A2OSX.BOOT.po
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
@ -7,8 +7,7 @@ ECHO *** A2osX Startup file ***
|
|||||||
echo Working Directory:
|
echo Working Directory:
|
||||||
CD
|
CD
|
||||||
SET PATH=${PATH};/A2OSX.DEV/BIN/
|
SET PATH=${PATH};/A2OSX.DEV/BIN/
|
||||||
echo Env:
|
SET PS1='$PWD'
|
||||||
SET
|
|
||||||
# Main Screen
|
# Main Screen
|
||||||
INSDRV CONSOLE.DRV
|
INSDRV CONSOLE.DRV
|
||||||
STARTPROC GETTY CON ${A2OSX}SBIN/LOGIN
|
STARTPROC GETTY CON ${A2OSX}SBIN/LOGIN
|
||||||
|
@ -89,7 +89,8 @@ In Progress : moving TCPIP to socket API
|
|||||||
| EXIT | Working | |
|
| EXIT | Working | |
|
||||||
| IF | | |
|
| IF | | |
|
||||||
| PAUSE | Working | |
|
| PAUSE | Working | |
|
||||||
| READ | | |
|
| READ | Working | -S no echo (password) |
|
||||||
|
| | | -P "prompt message" |
|
||||||
| TIME | Working | |
|
| TIME | Working | |
|
||||||
| SET | Working | |
|
| SET | Working | |
|
||||||
| STARTPROC | Working | Used in A2osX.startup |
|
| STARTPROC | Working | Used in A2osX.startup |
|
||||||
|
@ -87,8 +87,7 @@ Cmd.ExecYA.1 >SYSCALL ExpandPStrYA
|
|||||||
inc ZPPtr2+1
|
inc ZPPtr2+1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.5 jmp (J.INTCMDS,x)
|
.5 jmp (J.INTCMDS,x)
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Cmd.Exec.EXT ldy #1
|
Cmd.Exec.EXT ldy #1
|
||||||
lda CMD,y
|
lda CMD,y
|
||||||
@ -115,7 +114,6 @@ Cmd.Exec.EXT ldy #1
|
|||||||
|
|
||||||
.2 phx save X=hMem, Y,A = Filename
|
.2 phx save X=hMem, Y,A = Filename
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
|
|
||||||
>PUSHW L.CMD replace CMD in TmpBuffer with full path
|
>PUSHW L.CMD replace CMD in TmpBuffer with full path
|
||||||
>SYSCALL PStrCpy
|
>SYSCALL PStrCpy
|
||||||
@ -398,9 +396,7 @@ Cmd.Exec.SETVAR tax
|
|||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
.99 lda #SYSMGR.ERRSYN
|
.99 jmp Cmd.Exec.ERRSYN
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Cmd.Exec.DATE sec
|
Cmd.Exec.DATE sec
|
||||||
.HS 90 bcc
|
.HS 90 bcc
|
||||||
@ -439,9 +435,98 @@ Cmd.Exec.ECHO lda ARGS
|
|||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Cmd.Exec.READ
|
Cmd.Exec.READ lda ARGS
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
ldy #bSecureRead
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
|
lda pData
|
||||||
clc
|
clc
|
||||||
rts
|
adc #VarBuffer
|
||||||
|
sta ZPPTR1
|
||||||
|
lda pData+1
|
||||||
|
adc #0
|
||||||
|
sta ZPPTR1+1
|
||||||
|
|
||||||
|
ldx #0
|
||||||
|
|
||||||
|
.1 cpx ARGS
|
||||||
|
beq .8
|
||||||
|
inx
|
||||||
|
lda ARGS,x
|
||||||
|
cmp #' '
|
||||||
|
beq .1
|
||||||
|
cmp #'-'
|
||||||
|
bne .7
|
||||||
|
|
||||||
|
cpx ARGS
|
||||||
|
beq .9
|
||||||
|
inx
|
||||||
|
lda ARGS,x
|
||||||
|
cmp #'S'
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
ldy #bSecureRead
|
||||||
|
lda #$80
|
||||||
|
sta (pData),y
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.2 cmp #'P'
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
cpx ARGS
|
||||||
|
beq .9
|
||||||
|
inx
|
||||||
|
lda ARGS,x
|
||||||
|
cmp #' '
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
cpx ARGS
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
inx
|
||||||
|
lda ARGS,x
|
||||||
|
cmp #'"'
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
.3 cpx ARGS
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
inx
|
||||||
|
lda ARGS,x
|
||||||
|
cmp #'"'
|
||||||
|
beq .1
|
||||||
|
phx
|
||||||
|
>SYSCALL PutCA
|
||||||
|
plx
|
||||||
|
bcs .99
|
||||||
|
bra .3
|
||||||
|
|
||||||
|
.9 jmp Cmd.Exec.ERRSYN
|
||||||
|
|
||||||
|
.70 inx
|
||||||
|
lda ARGS,x
|
||||||
|
cmp #' '
|
||||||
|
beq .1
|
||||||
|
|
||||||
|
.7 lda (ZPPTR1)
|
||||||
|
cmp #VarLen.MAX
|
||||||
|
beq .9
|
||||||
|
inc
|
||||||
|
sta (ZPPTR1)
|
||||||
|
tay
|
||||||
|
lda ARGS,x
|
||||||
|
sta (ZPPTR1),y
|
||||||
|
cpx ARGS
|
||||||
|
bne .70
|
||||||
|
|
||||||
|
.8 lda (ZPPTR1) No var name ? SYNERR
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
clc
|
||||||
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Cmd.Exec.PAUSE ldy #bPause
|
Cmd.Exec.PAUSE ldy #bPause
|
||||||
lda #$80
|
lda #$80
|
||||||
|
138
SBIN/SHELL.S.txt
138
SBIN/SHELL.S.txt
@ -16,7 +16,8 @@ ZPPTR1 .EQ ZPBIN
|
|||||||
ZPPTR2 .EQ ZPBIN+2
|
ZPPTR2 .EQ ZPBIN+2
|
||||||
ZPPTR3 .EQ ZPBIN+4
|
ZPPTR3 .EQ ZPBIN+4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CmdBuffer.MAX .EQ 127
|
CmdLine.MAX .EQ 127
|
||||||
|
VarLen.MAX .EQ 15
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -98,27 +99,28 @@ CS.INIT.INTERACTIVE
|
|||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN lda #0
|
CS.RUN ldy #bPause
|
||||||
|
lda (pData),y
|
||||||
|
bmi .8
|
||||||
|
|
||||||
|
ldy #VarBuffer READ Command ?
|
||||||
|
lda (pData),y
|
||||||
|
bne CS.RUN.READ
|
||||||
|
|
||||||
|
ldy #hInputFile batch mode ?
|
||||||
|
lda (pData),y
|
||||||
|
beq .10
|
||||||
|
|
||||||
|
jmp CS.RUN.BATCH
|
||||||
|
|
||||||
|
.10 lda #0
|
||||||
sta (pData)
|
sta (pData)
|
||||||
|
|
||||||
.11 ldy #bPause
|
ldy #bSecureRead
|
||||||
lda (pData),y
|
sta (pData),y
|
||||||
bpl .10
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.10 ldy #S.PS.RC
|
|
||||||
lda (pPs),y
|
|
||||||
beq .12
|
|
||||||
|
|
||||||
jsr ERR.Print
|
|
||||||
|
|
||||||
.12 ldy #hInputFile batch mode ?
|
|
||||||
lda (pData),y
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
jsr PrintPrompt
|
jsr PrintPrompt
|
||||||
bcs .99
|
bcs CS.RUN.EXIT.RTS
|
||||||
|
|
||||||
.1 >SYSCALL Sleep
|
.1 >SYSCALL Sleep
|
||||||
>SYSCALL GetC
|
>SYSCALL GetC
|
||||||
@ -131,46 +133,94 @@ CS.RUN lda #0
|
|||||||
|
|
||||||
and #$7F
|
and #$7F
|
||||||
sta (pData)
|
sta (pData)
|
||||||
bra .3
|
|
||||||
|
|
||||||
.2 jsr TXT.ReadFile
|
jsr CmdBuffer.Normalize
|
||||||
bcs .81
|
|
||||||
|
|
||||||
.3 jsr CmdBuffer.Normalize
|
|
||||||
lda (pData)
|
lda (pData)
|
||||||
beq .11 Empty line
|
beq .8 Empty line
|
||||||
|
|
||||||
ldy #hInputFile if batch mode, do not add to cmd history
|
|
||||||
lda (pData),y
|
|
||||||
bne .4
|
|
||||||
|
|
||||||
jsr HIS.Add
|
jsr HIS.Add
|
||||||
|
|
||||||
.4 >LDYA pData
|
>LDYA pData
|
||||||
jsr Cmd.ExecYA
|
jsr Cmd.ExecYA
|
||||||
|
ldy #S.PS.RC
|
||||||
|
sta (pPs),y
|
||||||
bcc .8
|
bcc .8
|
||||||
tay
|
tay
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
pha
|
|
||||||
jsr ERR.Print
|
jsr ERR.Print
|
||||||
pla
|
bcs CS.RUN.EXIT.RTS
|
||||||
bcs .99
|
|
||||||
|
|
||||||
.8 ldy #bEXIT
|
.8 ldy #bEXIT
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
bne .99
|
bne CS.RUN.EXIT
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.81 jsr TXT.CloseFile
|
CS.RUN.EXIT lda #0
|
||||||
|
CS.RUN.EXIT.ERR sec
|
||||||
|
CS.RUN.EXIT.RTS rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.READ lda #0
|
||||||
|
sta (pData)
|
||||||
|
|
||||||
|
.1 >SYSCALL Sleep
|
||||||
|
>SYSCALL GetC
|
||||||
|
bcs .1 no char
|
||||||
|
|
||||||
|
jsr CS.CHARIN
|
||||||
|
|
||||||
|
lda (pData)
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
and #$7F
|
||||||
|
sta (pData)
|
||||||
|
|
||||||
|
>PUSHW pData
|
||||||
|
|
||||||
|
lda #VarBuffer
|
||||||
|
clc
|
||||||
|
adc pData
|
||||||
|
tay
|
||||||
|
lda pData+1
|
||||||
|
adc #0
|
||||||
|
>PUSHYA
|
||||||
|
>SYSCALL SetEnv
|
||||||
|
php
|
||||||
|
pha
|
||||||
|
|
||||||
|
ldy #VarBuffer
|
||||||
|
lda #0
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
|
pla
|
||||||
|
plp
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.BATCH jsr TXT.ReadFile
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jsr CmdBuffer.Normalize
|
||||||
|
lda (pData)
|
||||||
|
beq .8 Empty line
|
||||||
|
|
||||||
|
jsr HIS.Add
|
||||||
|
|
||||||
|
>LDYA pData
|
||||||
|
jsr Cmd.ExecYA
|
||||||
|
ldy #S.PS.RC
|
||||||
|
sta (pPs),y
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 jsr TXT.CloseFile
|
||||||
ldy #bExitOnEOF
|
ldy #bExitOnEOF
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
beq .8
|
bne CS.RUN.EXIT
|
||||||
lda #0
|
|
||||||
.99 sec
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT sec
|
CS.DOEVENT sec
|
||||||
rts
|
rts
|
||||||
@ -235,7 +285,7 @@ CS.CHARIN tax
|
|||||||
|
|
||||||
.2 lda (pData) CmdBuffer
|
.2 lda (pData) CmdBuffer
|
||||||
|
|
||||||
cmp #CmdBuffer.MAX
|
cmp #CmdLine.MAX
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
inc
|
inc
|
||||||
@ -244,6 +294,12 @@ CS.CHARIN tax
|
|||||||
txa
|
txa
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
|
tax
|
||||||
|
ldy #bSecureRead
|
||||||
|
lda (pData),y
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
txa
|
||||||
>SYSCALL PutCA
|
>SYSCALL PutCA
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
@ -459,11 +515,13 @@ hTextFile .BS 1
|
|||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
CmdBuffer .BS CmdBuffer.MAX+1 (pData)
|
CmdBuffer .BS CmdLine.MAX+1 (pData)
|
||||||
|
VarBuffer .BS VarLen.MAX+1
|
||||||
bEscMode .BS 1
|
bEscMode .BS 1
|
||||||
bPause .BS 1
|
bPause .BS 1
|
||||||
bExit .BS 1
|
bExit .BS 1
|
||||||
bEcho .BS 1
|
bEcho .BS 1
|
||||||
|
bSecureRead .BS 1
|
||||||
bExitOnEOF .BS 1
|
bExitOnEOF .BS 1
|
||||||
hCmdHistory .BS 1
|
hCmdHistory .BS 1
|
||||||
CmdHistory.IDX .BS 1
|
CmdHistory.IDX .BS 1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user