mirror of
https://github.com/A2osX/A2osX.git
synced 2024-07-07 04:28:56 +00:00
Kernel 0.9.2
This commit is contained in:
parent
404b32e3a6
commit
c5c2d41ae3
Binary file not shown.
Binary file not shown.
108
SBIN/GETTY.S.txt
108
SBIN/GETTY.S.txt
@ -35,7 +35,7 @@ L.MSG.USAGE .DA MSG.USAGE
|
|||||||
L.MSG.GREETINGS .DA MSG.GREETINGS
|
L.MSG.GREETINGS .DA MSG.GREETINGS
|
||||||
L.TELNETOPTS .DA TELNETOPTS
|
L.TELNETOPTS .DA TELNETOPTS
|
||||||
L.TELNETOPT.TTYPE .DA TELNETOPT.TTYPE
|
L.TELNETOPT.TTYPE .DA TELNETOPT.TTYPE
|
||||||
L.TELNETOPT.LINEMODE .DA TELNETOPT.LINEMODE
|
L.TELNETOPT.LMODE .DA TELNETOPT.LMODE
|
||||||
L.ENV.TERM .DA ENV.TERM
|
L.ENV.TERM .DA ENV.TERM
|
||||||
L.MSG.DEBUG .DA MSG.DEBUG
|
L.MSG.DEBUG .DA MSG.DEBUG
|
||||||
.DA 0 End Of Reloc Table
|
.DA 0 End Of Reloc Table
|
||||||
@ -79,68 +79,66 @@ CS.INIT ldy #S.PS.ARGC
|
|||||||
sec
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >PUSHWI TELNETOPTS.LEN
|
CS.RUN >LDYA L.ENV.TERM
|
||||||
|
>SYSCALL UnSetEnv
|
||||||
|
|
||||||
|
>PUSHWI TELNETOPTS.LEN
|
||||||
>PUSHW L.TELNETOPTS
|
>PUSHW L.TELNETOPTS
|
||||||
ldy #S.PS.hStdOut
|
ldy #S.PS.hStdOut
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
>SYSCALL write
|
>SYSCALL write
|
||||||
bcs CS.RUN.8
|
bcs CS.RUN.9
|
||||||
|
|
||||||
>PUSHWI K.VER
|
>PUSHWI K.VER
|
||||||
>PUSHBI 2
|
>PUSHBI 2
|
||||||
>LDYA L.MSG.GREETINGS
|
>LDYA L.MSG.GREETINGS
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
|
|
||||||
bcs CS.RUN.8 unable to send greetings...reset..
|
bcs CS.RUN.9 unable to send greetings...reset..
|
||||||
|
|
||||||
jsr Init.Timeout
|
jsr Init.Timeout
|
||||||
|
|
||||||
CS.RUN.LOOP
|
CS.RUN.LOOP >SLEEP
|
||||||
>SLEEP
|
|
||||||
|
>SYSCALL GetChar
|
||||||
|
bcs .1
|
||||||
|
|
||||||
.1 >SYSCALL GetChar
|
|
||||||
bcs .2
|
|
||||||
cmp #IAC
|
cmp #IAC
|
||||||
beq CS.RUN.IACMODE
|
beq CS.RUN.IACMODE
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
bcc .8
|
bcc .2
|
||||||
|
|
||||||
bra CS.RUN.8
|
bra CS.RUN.8
|
||||||
|
|
||||||
.2 jsr Wait.Timeout
|
.1 jsr Wait.Timeout
|
||||||
bcc CS.RUN.LOOP
|
bcc CS.RUN.LOOP
|
||||||
|
|
||||||
|
.2 lda #2
|
||||||
.8 lda #2
|
|
||||||
>SYSCALL GetArg
|
>SYSCALL GetArg
|
||||||
>SYSCALL ExecPS
|
>SYSCALL ExecPSNewEnv
|
||||||
|
|
||||||
CS.RUN.8 clc
|
CS.RUN.8
|
||||||
|
CS.RUN.9 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.IACMODE jsr PrintHEX
|
CS.RUN.IACMODE >SLEEP Wait for IAC CMD (or SB)
|
||||||
|
|
||||||
>SLEEP Wait for IAC VERB (or SB)
|
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs CS.RUN.IACMODE
|
bcs CS.RUN.IACMODE
|
||||||
|
|
||||||
jsr PrintHEX
|
|
||||||
|
|
||||||
>STA.G IAC.CMD
|
>STA.G IAC.CMD
|
||||||
|
|
||||||
.1 >SLEEP Wait for IAC OPT
|
.1 >SLEEP Wait for IAC SUBCMD
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
jsr PrintHEX
|
|
||||||
|
|
||||||
>STA.G IAC.SUBCMD
|
>STA.G IAC.SUBCMD
|
||||||
tax
|
tax
|
||||||
|
|
||||||
>LDA.G IAC.CMD
|
>LDA.G IAC.CMD
|
||||||
cmp #SB
|
cmp #SB
|
||||||
beq CS.RUN.IACSB
|
beq CS.RUN.IAC.SB
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.IACVERB cmp #WILL
|
CS.RUN.IAC.CMD cmp #WILL
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
cpx #TELOPT.TTYPE
|
cpx #TELOPT.TTYPE
|
||||||
@ -153,8 +151,8 @@ CS.RUN.IACVERB cmp #WILL
|
|||||||
.2 cpx #TELOPT.LINEMODE
|
.2 cpx #TELOPT.LINEMODE
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
>PUSHWI TELNETOPT.LINEMODE.LEN
|
>PUSHWI TELNETOPT.LMODE.LEN
|
||||||
>PUSHW L.TELNETOPT.LINEMODE
|
>PUSHW L.TELNETOPT.LMODE
|
||||||
|
|
||||||
.7 ldy #S.PS.hStdOut
|
.7 ldy #S.PS.hStdOut
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
@ -162,46 +160,42 @@ CS.RUN.IACVERB cmp #WILL
|
|||||||
|
|
||||||
.8 jmp CS.RUN.LOOP
|
.8 jmp CS.RUN.LOOP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.IACSB
|
CS.RUN.IAC.SB
|
||||||
.1 >SLEEP
|
.1 >SLEEP Wait for IAC SB.IS or SEND
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
jsr PrintHEX
|
|
||||||
>STA.G IAC.SB
|
|
||||||
|
|
||||||
lda #0
|
>STA.G IAC.SB.CMD
|
||||||
sta (pData) reset IAC.SB.DATA
|
|
||||||
|
>STZ.G IAC.SB.LEN
|
||||||
|
|
||||||
.2 >SLEEP
|
.2 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .2
|
bcs .2
|
||||||
|
|
||||||
jsr PrintHEX
|
|
||||||
cmp #IAC
|
cmp #IAC
|
||||||
beq .4 end of DATA, go wait SE
|
beq .4 end of DATA, go wait SE
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
ldy #IAC.SB.DATA-1
|
>LDA.G IAC.SB.LEN
|
||||||
|
clc
|
||||||
.3 iny
|
adc #IAC.SB.DATA
|
||||||
lda (pData),y
|
tay
|
||||||
bne .3
|
|
||||||
|
|
||||||
pla
|
pla
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
iny
|
iny
|
||||||
lda #0
|
lda #0
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
|
>INC.G IAC.SB.LEN
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.4 >SLEEP
|
.4 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .4
|
bcs .4
|
||||||
|
|
||||||
jsr PrintHEX
|
|
||||||
|
|
||||||
cmp #SE
|
cmp #SE
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
@ -209,7 +203,7 @@ CS.RUN.IACSB
|
|||||||
cmp #TELOPT.TTYPE
|
cmp #TELOPT.TTYPE
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
>LDA.G IAC.SB
|
>LDA.G IAC.SB.CMD
|
||||||
cmp #SB.IS
|
cmp #SB.IS
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
@ -249,13 +243,13 @@ Wait.TimeOut sec
|
|||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintHEX pha
|
*PrintHEX pha
|
||||||
>PUSHA
|
* >PUSHA
|
||||||
>PUSHBI 1
|
* >PUSHBI 1
|
||||||
>LDYA L.MSG.DEBUG
|
* >LDYA L.MSG.DEBUG
|
||||||
>SYSCALL printf
|
* >SYSCALL printf
|
||||||
pla
|
* pla
|
||||||
rts
|
* rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG.USAGE .AZ "Usage : GETTY <DEV> <PROGRAM>"
|
MSG.USAGE .AZ "Usage : GETTY <DEV> <PROGRAM>"
|
||||||
@ -270,22 +264,24 @@ TELNETOPTS .DA #IAC,#WILL,#TELOPT.BINARY
|
|||||||
.DA #IAC,#DO,#TELOPT.TTYPE
|
.DA #IAC,#DO,#TELOPT.TTYPE
|
||||||
.DA #IAC,#DO,#TELOPT.LINEMODE
|
.DA #IAC,#DO,#TELOPT.LINEMODE
|
||||||
TELNETOPTS.LEN .EQ *-TELNETOPTS
|
TELNETOPTS.LEN .EQ *-TELNETOPTS
|
||||||
|
*--------------------------------------
|
||||||
TELNETOPT.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.SEND,#IAC,#SE
|
TELNETOPT.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.SEND,#IAC,#SE
|
||||||
TELNETOPT.TTYPE.LEN .EQ *-TELNETOPT.TTYPE
|
TELNETOPT.TTYPE.LEN .EQ *-TELNETOPT.TTYPE
|
||||||
TELNETOPT.LINEMODE
|
*--------------------------------------
|
||||||
.DA #IAC,#SB,#TELOPT.LINEMODE,#SB.SEND,#0,#IAC,#SE
|
TELNETOPT.LMODE .DA #IAC,#SB,#TELOPT.LINEMODE,#SB.SEND,#0,#IAC,#SE
|
||||||
TELNETOPT.LINEMODE.LEN
|
TELNETOPT.LMODE.LEN .EQ *-TELNETOPT.LMODE
|
||||||
ENV.TERM .AZ "TERM"
|
ENV.TERM .AZ "TERM"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
IAC.SB.DATA .BS 64
|
|
||||||
IAC.CMD .BS 1
|
|
||||||
IAC.SUBCMD .BS 1
|
|
||||||
IAC.SB .BS 1
|
|
||||||
hDEV .BS 1
|
hDEV .BS 1
|
||||||
TimeOut .BS 1
|
TimeOut .BS 1
|
||||||
|
IAC.CMD .BS 1
|
||||||
|
IAC.SUBCMD .BS 1
|
||||||
|
IAC.SB.CMD .BS 1
|
||||||
|
IAC.SB.LEN .BS 1
|
||||||
|
IAC.SB.DATA .BS 32
|
||||||
DS.END .ED
|
DS.END .ED
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SBIN/GETTY.S
|
SAVE /A2OSX.SRC/SBIN/GETTY.S
|
||||||
|
@ -35,7 +35,7 @@ CL.CHARIN tax
|
|||||||
sta (pData),y Y=bEscMode
|
sta (pData),y Y=bEscMode
|
||||||
txa
|
txa
|
||||||
|
|
||||||
ldx #EscChars.count-1
|
ldx #EscChars.Cnt-1
|
||||||
|
|
||||||
.17 cmp EscChars,x
|
.17 cmp EscChars,x
|
||||||
beq .18
|
beq .18
|
||||||
|
@ -389,10 +389,8 @@ Cmd.Exec.SET lda (ZPPTR2)
|
|||||||
|
|
||||||
>PUSHW ZPPTR2 Push value
|
>PUSHW ZPPTR2 Push value
|
||||||
>PUSHW ZPPTR1 Push name
|
>PUSHW ZPPTR1 Push name
|
||||||
|
jsr Cmd.Exec.SET.PRINT
|
||||||
|
|
||||||
>PUSHBI 4
|
|
||||||
>LDYA L.MSG.PRINTENV
|
|
||||||
>SYSCALL printf
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
@ -412,22 +410,20 @@ Cmd.Exec.SET lda (ZPPTR2)
|
|||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 jmp Cmd.Exec.Done
|
.9 jmp Cmd.Exec.Done
|
||||||
|
*--------------------------------------
|
||||||
|
Cmd.Exec.SETVAR cmp #'=' string is '=value' ?
|
||||||
Cmd.Exec.SETVAR ldy #0
|
|
||||||
|
|
||||||
lda (ZPPTR2),y
|
|
||||||
iny
|
|
||||||
cmp #'=' string is '=value' ?
|
|
||||||
beq .99 syntax error
|
beq .99 syntax error
|
||||||
|
|
||||||
.1 lda (ZPPTR2),y
|
ldy #0
|
||||||
iny
|
|
||||||
|
.1 iny
|
||||||
|
lda (ZPPTR2),y
|
||||||
beq .3 no =, GetEnv
|
beq .3 no =, GetEnv
|
||||||
|
|
||||||
cmp #'=' ARGS contains =, PutEnv
|
cmp #'=' ARGS contains =, PutEnv
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
|
iny
|
||||||
lda (ZPPTR2),y
|
lda (ZPPTR2),y
|
||||||
beq .2 "VAR=" go UnsetEnv
|
beq .2 "VAR=" go UnsetEnv
|
||||||
|
|
||||||
@ -435,8 +431,10 @@ Cmd.Exec.SETVAR ldy #0
|
|||||||
>SYSCALL PutEnv
|
>SYSCALL PutEnv
|
||||||
jmp Cmd.Exec.Done
|
jmp Cmd.Exec.Done
|
||||||
|
|
||||||
.2 dey String is "VAR=", Remove endig '='
|
.2 dey String is "VAR=", Remove ending '='
|
||||||
|
lda #0
|
||||||
sta (ZPPTR2),y
|
sta (ZPPTR2),y
|
||||||
|
|
||||||
>LDYA ZPPTR2 String is "VAR"...
|
>LDYA ZPPTR2 String is "VAR"...
|
||||||
>SYSCALL UnsetEnv
|
>SYSCALL UnsetEnv
|
||||||
jmp Cmd.Exec.Done
|
jmp Cmd.Exec.Done
|
||||||
@ -449,16 +447,19 @@ Cmd.Exec.SETVAR ldy #0
|
|||||||
|
|
||||||
>PUSHYA push value
|
>PUSHYA push value
|
||||||
>PUSHW ZPPTR2 push name
|
>PUSHW ZPPTR2 push name
|
||||||
>LDYA L.MSG.PRINTENV
|
jsr Cmd.Exec.SET.PRINT
|
||||||
|
|
||||||
>PUSHBI 4
|
|
||||||
>SYSCALL printf
|
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 jmp Cmd.Exec.Done
|
.9 jmp Cmd.Exec.Done
|
||||||
|
|
||||||
.99 jmp Cmd.Exec.ERRSYN
|
.99 jmp Cmd.Exec.ERRSYN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
Cmd.Exec.SET.PRINT
|
||||||
|
>PUSHBI 4
|
||||||
|
>LDYA L.MSG.PRINTENV
|
||||||
|
>SYSCALL printf
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
Cmd.Exec.DATE sec
|
Cmd.Exec.DATE sec
|
||||||
.HS 90 bcc
|
.HS 90 bcc
|
||||||
Cmd.Exec.TIME clc
|
Cmd.Exec.TIME clc
|
||||||
|
@ -370,8 +370,8 @@ FMT.TIME .AZ "%H:%M:%S (%I:%M:%S%p)"
|
|||||||
.INB /A2OSX.SRC/SBIN/SHELL.C.CSH
|
.INB /A2OSX.SRC/SBIN/SHELL.C.CSH
|
||||||
.INB /A2OSX.SRC/X.ERRORS.S
|
.INB /A2OSX.SRC/X.ERRORS.S
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EscChars.Count .EQ 4
|
|
||||||
EscChars .AS 'DBAC'
|
EscChars .AS 'DBAC'
|
||||||
|
EscChars.Cnt .EQ *-EscChars
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
|
Loading…
Reference in New Issue
Block a user