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.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

View File

@ -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

View File

@ -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

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/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