Kernel 0.9.1 : SHELL : History & CL Editing OK

This commit is contained in:
Rémy GIBERT 2017-09-27 17:40:31 +02:00
parent 7a753cfbea
commit 98632f7a49
11 changed files with 218 additions and 115 deletions

Binary file not shown.

Binary file not shown.

View File

@ -60,6 +60,10 @@ CS.INIT ldy #S.PS.ARGC
.1 >SYSCALL GetArg.A .1 >SYSCALL GetArg.A
>STYA ZPPtr1 >STYA ZPPtr1
>SYSCALL PrintF.YA
lda #'|'
>SYSCALL PutChar.A
lda (ZPPtr1) lda (ZPPtr1)
cmp #'-' cmp #'-'
bne .4 bne .4

View File

@ -186,6 +186,8 @@ WRITE bit bEscMode
.1 pha .1 pha
jsr CUROFF jsr CUROFF
pla pla
cmp #$7f
beq DEL
cmp #32 cmp #32
bcc COUT.Ctrl bcc COUT.Ctrl
@ -202,6 +204,27 @@ FS ldx CH
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
DEL ldx CH
beq .1
dec CH
bra .3
.1 ldy CV
beq .8
lda #79
sta CH
dec CV
.3 lda #$20
ora INVFLG
ldx CH
ldy CV
jmp SetCharAtXY
.8 clc
rts
*--------------------------------------
COUT.Ctrl ldx #CtrlChars.Cnt-1 COUT.Ctrl ldx #CtrlChars.Cnt-1
.1 cmp CtrlChars,x .1 cmp CtrlChars,x
@ -383,13 +406,6 @@ BS ldx CH
.3 clc .3 clc
rts rts
lda #$20
ora INVFLG
ldx CH
ldy CV
jmp SetCharAtXY
*-------------------------------------- *--------------------------------------
ClrScr stz CH ClrScr stz CH
stz CV stz CV

View File

@ -79,7 +79,7 @@ Dev.Detect >STYA ARGS
sta A2osX.SLOTS,y sta A2osX.SLOTS,y
pla pla
ora #$30 ora #$30
sta DEV.HEADER.NAME+4 sta DEV.HEADER.NAME+3
asl asl
asl asl
asl asl
@ -97,7 +97,7 @@ DEVSIG.Offset .HS 05070B0C
DEVSIG.Value .HS 38180131 DEVSIG.Value .HS 38180131
DEVSIG.Length .EQ DEVSIG.Value-DEVSIG.Offset DEVSIG.Length .EQ DEVSIG.Value-DEVSIG.Offset
MSG.DETECT >CSTR "Apple SSC (Super Serial Card,//c Serial Port) Driver.\r\n" MSG.DETECT >CSTR "Apple SSC (Super Serial Card,//c Serial Port) Driver.\r\n"
MSG.DETECT.OK >CSTR "SSC Installed As Device : %S\r\n" MSG.DETECT.OK >CSTR "SSC Installed As Device : %s\r\n"
MSG.DETECT.KO >CSTR "No SSC Found.\r\n" MSG.DETECT.KO >CSTR "No SSC Found.\r\n"
ARGS .BS 2 ARGS .BS 2
*-------------------------------------- *--------------------------------------
@ -107,7 +107,7 @@ DEV.HEADER cld
jmp (DRV.CS.START,x) jmp (DRV.CS.START,x)
.DA #S.DEV.S.WRITE+S.DEV.S.READ .DA #S.DEV.S.WRITE+S.DEV.S.READ
.BS 6 .BS 6
DEV.HEADER.NAME >PSTR "COM1" NAME DEV.HEADER.NAME >CSTR "COM1" NAME
*-------------------------------------- *--------------------------------------
* Driver Code * Driver Code
*-------------------------------------- *--------------------------------------

View File

@ -82,7 +82,7 @@ Dev.Detect >STYA ARGS
sta A2osX.SLOTS,y sta A2osX.SLOTS,y
pla pla
ora #$30 ora #$30
sta DEV.HEADER.NAME+4 sta DEV.HEADER.NAME+3
asl asl
asl asl
asl asl
@ -100,7 +100,7 @@ DEVSIG.Offset .HS 05070B0C
DEVSIG.Value .HS 38180131 DEVSIG.Value .HS 38180131
DEVSIG.Length .EQ DEVSIG.Value-DEVSIG.Offset DEVSIG.Length .EQ DEVSIG.Value-DEVSIG.Offset
MSG.DETECT >CSTR "Apple SSC (Super Serial Card,//c Serial Port) Driver (IRQ Enabled).\r\n" MSG.DETECT >CSTR "Apple SSC (Super Serial Card,//c Serial Port) Driver (IRQ Enabled).\r\n"
MSG.DETECT.OK >CSTR "SSC Installed As Device : %S\r\n" MSG.DETECT.OK >CSTR "SSC Installed As Device : %s\r\n"
MSG.DETECT.KO >CSTR "No SSC Found.\r\n" MSG.DETECT.KO >CSTR "No SSC Found.\r\n"
ARGS .BS 2 ARGS .BS 2
*-------------------------------------- *--------------------------------------
@ -110,7 +110,7 @@ DEV.HEADER cld
jmp (DRV.CS.START,x) jmp (DRV.CS.START,x)
.DA #S.DEV.S.WRITE+S.DEV.S.READ+S.DEV.S.IRQ .DA #S.DEV.S.WRITE+S.DEV.S.READ+S.DEV.S.IRQ
.BS 6 .BS 6
DEV.HEADER.NAME >PSTR "COM1" NAME DEV.HEADER.NAME >CSTR "COM1" NAME
*-------------------------------------- *--------------------------------------
* Driver Code * Driver Code
*-------------------------------------- *--------------------------------------

View File

@ -164,8 +164,8 @@ note : '$VAR' does NOT expand Variable
| Name | Status | Comment | K.Ver | | Name | Status | Comment | K.Ver |
| ---- | ------ | ------- | ----- | | ---- | ------ | ------- | ----- |
| Console.DRV | Working | ANSI support in Progress. | 0.9.1 | | Console.DRV | Working | ANSI support in Progress. | 0.9.1 |
| SSC.DRV | Working | Apple "Super Serial Card" Driver | 0.9 | | SSC.DRV | Working | Apple "Super Serial Card" Driver | 0.9.1 |
| SSC.I.DRV | Working | Apple "Super Serial Card" Driver (IRQ enabled) | 0.9 | | SSC.I.DRV | Working | Apple "Super Serial Card" Driver (IRQ enabled) | 0.9.1 |
| PIC.DRV | In Progress | Apple "Parallel Interface Card" Driver, renamed from PPIC.DRV | 0.9 | | PIC.DRV | In Progress | Apple "Parallel Interface Card" Driver, renamed from PPIC.DRV | 0.9 |
| Mouse.DRV | Working | Apple Mouse Card,//c Mouse Port | 0.9 | | Mouse.DRV | Working | Apple Mouse Card,//c Mouse Port | 0.9 |
| DHGR.DRV | In Progress | except bitblt... | 0.9 | | DHGR.DRV | In Progress | except bitblt... | 0.9 |
@ -182,7 +182,7 @@ note : '$VAR' does NOT expand Variable
| LSDEV | Working | | 0.9.1 | | LSDEV | Working | | 0.9.1 |
| PS | Working | | 0.9.1 | | PS | Working | | 0.9.1 |
| MD | Working | | 0.9.1 | | MD | Working | | 0.9.1 |
| LS | Working | -A : Do Not Print . & .. | 0.9 | | LS | Working | -A : Do Not Print . & .. | 0.9.1 |
| | | -L : long listing with size/date... | | | | | -L : long listing with size/date... | |
| | | -R : Recurse subdirectories | | | | | -R : Recurse subdirectories | |
| RM | Working | -C : Continue On Error | 0.9 | | RM | Working | -C : Continue On Error | 0.9 |

131
SBIN/SHELL.S.CL.txt Normal file
View File

@ -0,0 +1,131 @@
PR#3
PREFIX /A2OSX.BUILD
NEW
INC 1
AUTO 6
.LIST OFF
*--------------------------------------
*--------------------------------------
CmdLine.CLR ldy #0
.1 lda (ZPCMDBuf),y
beq .9
.2 lda #$7F
sta (ZPCMDBuf),y
iny
lda (ZPCMDBuf),y
bne .2
jsr CmdLine.PRINT
jmp CmdLine.RESET
.9 rts
*--------------------------------------
CmdLine.BS >LDA.G CmdBufPtr
beq .9
dec
sta (pData),y
lda #8
>SYSCALL PutChar.A
.9 rts
*--------------------------------------
CmdLine.NAK >LDA.G CmdBufPtr
>CMP.G CmdBuflen
beq .9
inc
>STA.G CmdBufPtr
lda #21
>SYSCALL PutChar.A
.9 rts
*--------------------------------------
CmdLine.DEL >LDA.G CmdBuflen
beq .8
sec
>SBC.G CmdBufPtr
tax Keep in x char count to \0
bne .1
>DEC.G CmdBuflen
>STA.G CmdBufPtr
tay
lda #0
sta (ZPCMDBuf),y
lda #$7f
>SYSCALL PutChar.A
rts
.8 clc
rts
.1 >LDA.G CmdBufPtr
tay
.2 iny
lda (ZPCMDBuf),y
dey
sta (ZPCMDBuf),y
iny
dex
bne .2
>DEC.G CmdBuflen
*--------------------------------------
CmdLine.PRINTPTR
>LDA.G CmdBufPtr
tay
.1 lda (ZPCMDBuf),y
beq .2
phy
>SYSCALL PutChar.A
ply
iny
bra .1
.2 lda #' '
>SYSCALL PutChar.A
lda #8
>SYSCALL PutChar.A
>LDA.G CmdBufPtr
tay
.3 lda (ZPCMDBuf),y
beq .8
phy
lda #8
>SYSCALL PutChar.A
ply
iny
bra .3
.8 clc
rts
*--------------------------------------
CmdLine.PRINT >LDYA ZPCMDBuf
>SYSCALL PrintF.YA
rts
*--------------------------------------
CmdLine.RESET lda #0
sta (ZPCMDBuf)
>STA.G bCmdBufexec
>STA.G CmdBufPtr
>STA.G CmdBuflen
>STA.G bSecureRead Clear password mode
rts
*--------------------------------------
MAN
SAVE /A2OSX.SRC/SBIN/SHELL.S.CL
LOAD /A2OSX.SRC/SBIN/SHELL.S
ASM

View File

@ -205,12 +205,21 @@ Cmd.Exec.EXT.TXT
>SYSCALL StrCpy >SYSCALL StrCpy
jsr Cmd.Exec.EXT.SEP Add a space.... jsr Cmd.Exec.EXT.SEP Add a space....
>LDA.G CMD.hFullpath >LDA.G CMD.hFullpath
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr.A
>PUSHYA >PUSHYA
>PUSHW ZPCMDBuf >PUSHW ZPCMDBuf
>SYSCALL StrCat >SYSCALL StrCat
>LDYA ZPCMDBuf
>SYSCALL PrintF.YA
lda #'!'
>SYSCALL PutChar.A
lda #13
>SYSCALL PutChar.A
lda #10
>SYSCALL PutChar.A
*-------------------------------------- *--------------------------------------
* BIN : Launch "/PATH/CMD ARGS" * BIN : Launch "/PATH/CMD ARGS"
*-------------------------------------- *--------------------------------------
@ -224,6 +233,15 @@ Cmd.Exec.EXT.BIN
>PUSHW ZPCMDBuf >PUSHW ZPCMDBuf
>SYSCALL StrCat >SYSCALL StrCat
>LDYA ZPCMDBuf
>SYSCALL PrintF.YA
lda #'!'
>SYSCALL PutChar.A
lda #13
>SYSCALL PutChar.A
lda #10
>SYSCALL PutChar.A
.1 >LDA.G CMD.bStartProc .1 >LDA.G CMD.bStartProc
asl asl
>LDYA ZPCMDBuf >LDYA ZPCMDBuf

View File

@ -143,6 +143,10 @@ HIS.SetA jsr HIS.GetA
sta (ZPCMDBuf),y sta (ZPCMDBuf),y
bne .2 bne .2
tya
>STA.G CmdBufPtr
>STA.G CmdBuflen
jmp CmdLine.PRINT jmp CmdLine.PRINT
*-------------------------------------- *--------------------------------------
HIS.GetA ldy #0 HIS.GetA ldy #0

View File

@ -66,7 +66,6 @@ L.ENV.PWD .DA ENV.PWD
L.ENV.PS1 .DA ENV.PS1 L.ENV.PS1 .DA ENV.PS1
L.FMT.DATE .DA FMT.DATE L.FMT.DATE .DA FMT.DATE
L.FMT.TIME .DA FMT.TIME L.FMT.TIME .DA FMT.TIME
L.MSG.HEXBYTE .DA MSG.HEXBYTE
J.ESC .DA CmdLine.BS left arrow J.ESC .DA CmdLine.BS left arrow
.DA HIS.GetNext .DA HIS.GetNext
.DA HIS.GetPrev .DA HIS.GetPrev
@ -353,57 +352,45 @@ CS.CHARIN tax Save Char
jmp CmdLine.DEL jmp CmdLine.DEL
.2 >LDA.G CmdBuflen .2 >LDA.G CmdBuflen
cmp #CmdLine.MAX cmp #CmdLine.MAX
beq .8 Buffer full, discard... beq .8 Buffer full, discard...
inc inc
sta (pData),y sta (pData),y
clc Len-1-Ptr !!!!!
>SBC.G CmdBufPtr
beq .30
phx
tax
>LDA.G CmdBuflen
tay tay
lda #0
.3 lda (ZPCMDBuf),y Move from Ptr To end of buffer forward...
iny
sta (ZPCMDBuf),y sta (ZPCMDBuf),y
dey
>LDA.G CmdBufPtr dey
tay dex
bne .3
*.3 lda (ZPCMDBuf),y Move from Ptr To end of buffer forward... plx
* iny
* sta (ZPCMDBuf),y .30 >LDA.G CmdBufPtr Insert char at Ptr
* ora #0
* bne .3 ...until ending 0
>LDA.G CmdBufPtr Insert char at Ptr
tay tay
txa txa
sta (ZPCMDBuf),y sta (ZPCMDBuf),y
>SYSCALL PutChar.A
>INC.G CmdBufPtr >INC.G CmdBufPtr
>CMP.G CmdBuflen >CMP.G CmdBuflen
bne .4 beq .8
jmp CmdLine.PRINTPTR
.4 >LDA.G bSecureRead
bne .8
txa
>SYSCALL PutChar.A
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
CS.CHARIN.CTRL CS.CHARIN.CTRL
* phx
* txa
* >PUSHA
* >LDYA L.MSG.HEXBYTE
* >SYSCALL PrintF.YA
* plx
cpx #13 CR cpx #13 CR
bne .10 bne .10
@ -412,6 +399,13 @@ CS.CHARIN.CTRL
lda #10 lda #10
>SYSCALL PutChar.A >SYSCALL PutChar.A
>LDA.G CmdBufPtr
tay
lda #0
sta (ZPCMDBuf),y
tya
>STA.G CmdBuflen
lda #$ff lda #$ff
>STA.G bCmdBufexec >STA.G bCmdBufexec
clc clc
@ -475,70 +469,7 @@ PrintPrompt >LDYA L.ENV.PS1
plp plp
rts rts
*-------------------------------------- *--------------------------------------
CmdLine.CLR ldy #0 .INB /A2OSX.SRC/SBIN/SHELL.S.CL
.1 lda (ZPCMDBuf),y
beq .9
.2 lda #8
sta (ZPCMDBuf),y
iny
lda (ZPCMDBuf),y
bne .2
jsr CmdLine.PRINT
jmp CmdLine.RESET
.9 rts
*--------------------------------------
CmdLine.BS >LDA.G CmdBufPtr
beq .9
dec
sta (pData),y
lda #8
>SYSCALL PutChar.A
.9 rts
*--------------------------------------
CmdLine.NAK >LDA.G CmdBufPtr
>CMP.G CmdBuflen
beq .9
inc
>STA.G CmdBufPtr
lda #21
>SYSCALL PutChar.A
.9 rts
*--------------------------------------
CmdLine.DEL >LDA.G CmdBuflen
beq .9
dec
sta (pData),y
tay
lda #0
sta (ZPCMDBuf),y
lda #8
>SYSCALL PutChar.A
.9 rts
*--------------------------------------
CmdLine.PRINT >LDYA ZPCMDBuf
>SYSCALL PrintF.YA
rts
*--------------------------------------
CmdLine.RESET lda #0
sta (ZPCMDBuf)
>STA.G bCmdBufexec
>STA.G CmdBufPtr
>STA.G CmdBuflen
>STA.G bSecureRead Clear password mode
rts
*--------------------------------------
.INB /A2OSX.SRC/SBIN/SHELL.S.CMD .INB /A2OSX.SRC/SBIN/SHELL.S.CMD
.INB /A2OSX.SRC/SBIN/SHELL.S.CSH .INB /A2OSX.SRC/SBIN/SHELL.S.CSH
.INB /A2OSX.SRC/SBIN/SHELL.S.IO .INB /A2OSX.SRC/SBIN/SHELL.S.IO
@ -580,7 +511,6 @@ MSG.PRINTENV >CSTR "%s=%s\r\n"
MSG.CSHERR >CSTR "Pos %D:" MSG.CSHERR >CSTR "Pos %D:"
FMT.DATE >CSTR "%A, %B %d %Y" FMT.DATE >CSTR "%A, %B %d %Y"
FMT.TIME >CSTR "%H:%M:%S (%I:%M:%S%p)" FMT.TIME >CSTR "%H:%M:%S (%I:%M:%S%p)"
MSG.HEXBYTE >CSTR "[%h]"
*-------------------------------------- *--------------------------------------
.INB /A2OSX.SRC/X.ERRORS.S .INB /A2OSX.SRC/X.ERRORS.S
*-------------------------------------- *--------------------------------------