Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-09-14 15:08:30 +02:00
parent 404b32e3a6
commit c5c2d41ae3
6 changed files with 72 additions and 75 deletions

Binary file not shown.

Binary file not shown.

View File

@ -35,7 +35,7 @@ L.MSG.USAGE .DA MSG.USAGE
L.MSG.GREETINGS .DA MSG.GREETINGS
L.TELNETOPTS .DA TELNETOPTS
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.MSG.DEBUG .DA MSG.DEBUG
.DA 0 End Of Reloc Table
@ -79,68 +79,66 @@ CS.INIT ldy #S.PS.ARGC
sec
.9 rts
*--------------------------------------
CS.RUN >PUSHWI TELNETOPTS.LEN
CS.RUN >LDYA L.ENV.TERM
>SYSCALL UnSetEnv
>PUSHWI TELNETOPTS.LEN
>PUSHW L.TELNETOPTS
ldy #S.PS.hStdOut
lda (pPs),y
>SYSCALL write
bcs CS.RUN.8
bcs CS.RUN.9
>PUSHWI K.VER
>PUSHBI 2
>LDYA L.MSG.GREETINGS
>SYSCALL printf
bcs CS.RUN.8 unable to send greetings...reset..
bcs CS.RUN.9 unable to send greetings...reset..
jsr Init.Timeout
CS.RUN.LOOP
>SLEEP
CS.RUN.LOOP >SLEEP
>SYSCALL GetChar
bcs .1
.1 >SYSCALL GetChar
bcs .2
cmp #IAC
beq CS.RUN.IACMODE
>SYSCALL PutChar
bcc .8
bcc .2
bra CS.RUN.8
.2 jsr Wait.Timeout
.1 jsr Wait.Timeout
bcc CS.RUN.LOOP
.8 lda #2
.2 lda #2
>SYSCALL GetArg
>SYSCALL ExecPS
>SYSCALL ExecPSNewEnv
CS.RUN.8 clc
CS.RUN.8
CS.RUN.9 clc
rts
*--------------------------------------
CS.RUN.IACMODE jsr PrintHEX
>SLEEP Wait for IAC VERB (or SB)
CS.RUN.IACMODE >SLEEP Wait for IAC CMD (or SB)
>SYSCALL GetChar
bcs CS.RUN.IACMODE
jsr PrintHEX
>STA.G IAC.CMD
.1 >SLEEP Wait for IAC OPT
.1 >SLEEP Wait for IAC SUBCMD
>SYSCALL GetChar
bcs .1
jsr PrintHEX
>STA.G IAC.SUBCMD
tax
>LDA.G IAC.CMD
cmp #SB
beq CS.RUN.IACSB
beq CS.RUN.IAC.SB
*--------------------------------------
CS.RUN.IACVERB cmp #WILL
CS.RUN.IAC.CMD cmp #WILL
bne .8
cpx #TELOPT.TTYPE
@ -153,8 +151,8 @@ CS.RUN.IACVERB cmp #WILL
.2 cpx #TELOPT.LINEMODE
bne .8
>PUSHWI TELNETOPT.LINEMODE.LEN
>PUSHW L.TELNETOPT.LINEMODE
>PUSHWI TELNETOPT.LMODE.LEN
>PUSHW L.TELNETOPT.LMODE
.7 ldy #S.PS.hStdOut
lda (pPs),y
@ -162,46 +160,42 @@ CS.RUN.IACVERB cmp #WILL
.8 jmp CS.RUN.LOOP
*--------------------------------------
CS.RUN.IACSB
.1 >SLEEP
CS.RUN.IAC.SB
.1 >SLEEP Wait for IAC SB.IS or SEND
>SYSCALL GetChar
bcs .1
jsr PrintHEX
>STA.G IAC.SB
lda #0
sta (pData) reset IAC.SB.DATA
>STA.G IAC.SB.CMD
>STZ.G IAC.SB.LEN
.2 >SLEEP
>SYSCALL GetChar
bcs .2
jsr PrintHEX
cmp #IAC
beq .4 end of DATA, go wait SE
pha
ldy #IAC.SB.DATA-1
.3 iny
lda (pData),y
bne .3
>LDA.G IAC.SB.LEN
clc
adc #IAC.SB.DATA
tay
pla
sta (pData),y
iny
lda #0
sta (pData),y
>INC.G IAC.SB.LEN
bra .2
.4 >SLEEP
>SYSCALL GetChar
bcs .4
jsr PrintHEX
cmp #SE
bne .8
@ -209,7 +203,7 @@ CS.RUN.IACSB
cmp #TELOPT.TTYPE
bne .8
>LDA.G IAC.SB
>LDA.G IAC.SB.CMD
cmp #SB.IS
bne .8
@ -249,13 +243,13 @@ Wait.TimeOut sec
clc
.9 rts
*--------------------------------------
PrintHEX pha
>PUSHA
>PUSHBI 1
>LDYA L.MSG.DEBUG
>SYSCALL printf
pla
rts
*PrintHEX pha
* >PUSHA
* >PUSHBI 1
* >LDYA L.MSG.DEBUG
* >SYSCALL printf
* pla
* rts
*--------------------------------------
CS.END
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.LINEMODE
TELNETOPTS.LEN .EQ *-TELNETOPTS
*--------------------------------------
TELNETOPT.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.SEND,#IAC,#SE
TELNETOPT.TTYPE.LEN .EQ *-TELNETOPT.TTYPE
TELNETOPT.LINEMODE
.DA #IAC,#SB,#TELOPT.LINEMODE,#SB.SEND,#0,#IAC,#SE
TELNETOPT.LINEMODE.LEN
*--------------------------------------
TELNETOPT.LMODE .DA #IAC,#SB,#TELOPT.LINEMODE,#SB.SEND,#0,#IAC,#SE
TELNETOPT.LMODE.LEN .EQ *-TELNETOPT.LMODE
ENV.TERM .AZ "TERM"
*--------------------------------------
.DUMMY
.OR 0
DS.START
IAC.SB.DATA .BS 64
IAC.CMD .BS 1
IAC.SUBCMD .BS 1
IAC.SB .BS 1
hDEV .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
MAN
SAVE /A2OSX.SRC/SBIN/GETTY.S

View File

@ -35,7 +35,7 @@ CL.CHARIN tax
sta (pData),y Y=bEscMode
txa
ldx #EscChars.count-1
ldx #EscChars.Cnt-1
.17 cmp EscChars,x
beq .18

View File

@ -389,10 +389,8 @@ Cmd.Exec.SET lda (ZPPTR2)
>PUSHW ZPPTR2 Push value
>PUSHW ZPPTR1 Push name
jsr Cmd.Exec.SET.PRINT
>PUSHBI 4
>LDYA L.MSG.PRINTENV
>SYSCALL printf
bcs .9
ldy #$ff
@ -412,22 +410,20 @@ Cmd.Exec.SET lda (ZPPTR2)
.8 clc
.9 jmp Cmd.Exec.Done
Cmd.Exec.SETVAR ldy #0
lda (ZPPTR2),y
iny
cmp #'=' string is '=value' ?
*--------------------------------------
Cmd.Exec.SETVAR cmp #'=' string is '=value' ?
beq .99 syntax error
.1 lda (ZPPTR2),y
iny
ldy #0
.1 iny
lda (ZPPTR2),y
beq .3 no =, GetEnv
cmp #'=' ARGS contains =, PutEnv
bne .1
iny
lda (ZPPTR2),y
beq .2 "VAR=" go UnsetEnv
@ -435,8 +431,10 @@ Cmd.Exec.SETVAR ldy #0
>SYSCALL PutEnv
jmp Cmd.Exec.Done
.2 dey String is "VAR=", Remove endig '='
.2 dey String is "VAR=", Remove ending '='
lda #0
sta (ZPPTR2),y
>LDYA ZPPTR2 String is "VAR"...
>SYSCALL UnsetEnv
jmp Cmd.Exec.Done
@ -449,16 +447,19 @@ Cmd.Exec.SETVAR ldy #0
>PUSHYA push value
>PUSHW ZPPTR2 push name
>LDYA L.MSG.PRINTENV
>PUSHBI 4
>SYSCALL printf
jsr Cmd.Exec.SET.PRINT
.8 clc
.9 jmp Cmd.Exec.Done
.99 jmp Cmd.Exec.ERRSYN
*--------------------------------------
Cmd.Exec.SET.PRINT
>PUSHBI 4
>LDYA L.MSG.PRINTENV
>SYSCALL printf
rts
*--------------------------------------
Cmd.Exec.DATE sec
.HS 90 bcc
Cmd.Exec.TIME clc

View File

@ -370,8 +370,8 @@ FMT.TIME .AZ "%H:%M:%S (%I:%M:%S%p)"
.INB /A2OSX.SRC/SBIN/SHELL.C.CSH
.INB /A2OSX.SRC/X.ERRORS.S
*--------------------------------------
EscChars.Count .EQ 4
EscChars .AS 'DBAC'
EscChars.Cnt .EQ *-EscChars
*--------------------------------------
.DUMMY
.OR 0