2015-03-14 22:48:35 +01:00
|
|
|
|
NEW
|
2017-12-22 22:24:30 +01:00
|
|
|
|
PREFIX /A2OSX.BUILD
|
|
|
|
|
AUTO 4,1
|
2015-03-14 22:48:35 +01:00
|
|
|
|
.LIST OFF
|
|
|
|
|
.OP 65C02
|
|
|
|
|
.OR $2000
|
2017-03-29 17:48:15 +02:00
|
|
|
|
.TF /A2OSX.BUILD/SBIN/GETTY
|
2015-03-14 22:48:35 +01:00
|
|
|
|
*--------------------------------------
|
2017-03-29 17:48:15 +02:00
|
|
|
|
.INB /A2OSX.BUILD/INC/MACROS.I
|
|
|
|
|
.INB /A2OSX.BUILD/INC/A2OSX.I
|
|
|
|
|
.INB /A2OSX.BUILD/INC/NET.TELNET.I
|
2015-03-14 22:48:35 +01:00
|
|
|
|
*--------------------------------------
|
2017-10-05 17:39:17 +02:00
|
|
|
|
TIMEOUT.MAX .EQ 100 1 sec.
|
2017-03-03 17:37:15 +01:00
|
|
|
|
*--------------------------------------
|
2015-06-03 20:30:57 +02:00
|
|
|
|
* File Header (16 Bytes)
|
2015-03-14 22:48:35 +01:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
CS.START cld
|
|
|
|
|
jmp (.1,x)
|
2015-06-03 20:30:57 +02:00
|
|
|
|
.DA #$61 6502,Level 1 (65c02)
|
|
|
|
|
.DA #1 BIN Layout Version 1
|
|
|
|
|
.DA 0
|
2017-10-05 17:39:17 +02:00
|
|
|
|
.DA CS.END-CS.START CS
|
|
|
|
|
.DA DS.END-DS.START DS
|
2018-04-26 17:38:02 +02:00
|
|
|
|
.DA #64 SS
|
2017-10-19 17:27:38 +02:00
|
|
|
|
.DA #0 ZP
|
2015-06-03 20:30:57 +02:00
|
|
|
|
.DA 0
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* Relocation Table
|
|
|
|
|
*--------------------------------------
|
2015-03-14 22:48:35 +01:00
|
|
|
|
.1 .DA CS.INIT
|
|
|
|
|
.DA CS.RUN
|
|
|
|
|
.DA CS.DOEVENT
|
|
|
|
|
.DA CS.QUIT
|
2015-09-13 22:35:07 +02:00
|
|
|
|
L.MSG.USAGE .DA MSG.USAGE
|
2017-10-05 17:39:17 +02:00
|
|
|
|
L.MSG.TELNETOPT .DA MSG.TELNETOPT
|
2015-09-13 22:35:07 +02:00
|
|
|
|
L.MSG.GREETINGS .DA MSG.GREETINGS
|
2017-10-05 17:39:17 +02:00
|
|
|
|
L.ENV.TERM .DA ENV.TERM
|
2015-06-03 20:30:57 +02:00
|
|
|
|
.DA 0 End Of Reloc Table
|
2015-03-14 22:48:35 +01:00
|
|
|
|
*--------------------------------------
|
2017-09-14 17:21:06 +02:00
|
|
|
|
CS.INIT ldy #S.PS.ARGC
|
|
|
|
|
lda (pPs),y
|
|
|
|
|
cmp #2
|
2018-04-16 06:53:19 +01:00
|
|
|
|
bne .90
|
2015-09-13 22:35:07 +02:00
|
|
|
|
|
2017-09-14 17:21:06 +02:00
|
|
|
|
lda #1
|
2017-08-24 14:46:48 +02:00
|
|
|
|
>SYSCALL GetArg.A
|
2016-06-07 08:10:18 +02:00
|
|
|
|
|
2017-08-31 08:23:29 +02:00
|
|
|
|
>SYSCALL MkNod.YA
|
2017-01-12 18:43:45 +01:00
|
|
|
|
bcs .9
|
|
|
|
|
|
|
|
|
|
ldy #S.PS.hStdIn
|
2015-06-03 20:30:57 +02:00
|
|
|
|
sta (pPs),y
|
2018-04-26 17:38:02 +02:00
|
|
|
|
iny #S.PS.hStdOut
|
2015-06-03 20:30:57 +02:00
|
|
|
|
sta (pPs),y
|
2018-04-26 17:38:02 +02:00
|
|
|
|
iny #S.PS.hStdErr
|
2015-06-03 20:30:57 +02:00
|
|
|
|
sta (pPs),y
|
2015-10-19 22:35:00 +02:00
|
|
|
|
|
2018-04-16 16:25:39 +01:00
|
|
|
|
>STA.G hNode
|
|
|
|
|
|
2016-08-17 08:25:58 +02:00
|
|
|
|
lda #2
|
2017-08-24 14:46:48 +02:00
|
|
|
|
>SYSCALL GetArg.A
|
2017-01-12 18:43:45 +01:00
|
|
|
|
bcs .9
|
2015-03-14 22:48:35 +01:00
|
|
|
|
|
2017-08-24 17:29:22 +02:00
|
|
|
|
>SYSCALL ExpandStr.YA
|
2017-01-12 18:43:45 +01:00
|
|
|
|
bcs .9
|
2016-11-01 18:18:04 +01:00
|
|
|
|
|
2016-08-17 08:25:58 +02:00
|
|
|
|
txa
|
2016-11-01 18:18:04 +01:00
|
|
|
|
|
2017-09-19 17:34:01 +02:00
|
|
|
|
>STA.G hBinName
|
2018-04-26 17:38:02 +02:00
|
|
|
|
|
2017-03-03 17:37:15 +01:00
|
|
|
|
lda (pPs)
|
|
|
|
|
ora #S.PS.F.EVENT Now accept events
|
|
|
|
|
sta (pPs)
|
|
|
|
|
|
2016-06-07 08:10:18 +02:00
|
|
|
|
clc
|
2017-09-14 17:21:06 +02:00
|
|
|
|
rts
|
|
|
|
|
|
2018-04-16 06:53:19 +01:00
|
|
|
|
.90 >LDYA L.MSG.USAGE
|
2017-09-14 17:21:06 +02:00
|
|
|
|
>SYSCALL PrintF.YA
|
|
|
|
|
lda #0
|
|
|
|
|
sec
|
2017-01-12 18:43:45 +01:00
|
|
|
|
.9 rts
|
2015-03-14 22:48:35 +01:00
|
|
|
|
*--------------------------------------
|
2017-11-17 17:16:05 +01:00
|
|
|
|
CS.RUN >SLEEP
|
2018-04-26 17:38:02 +02:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
>SYSCALL GetChar
|
|
|
|
|
bcs CS.RUN
|
2018-04-26 17:38:02 +02:00
|
|
|
|
|
2017-09-15 08:37:15 +02:00
|
|
|
|
|
2018-04-16 16:25:39 +01:00
|
|
|
|
.11 >SLEEP
|
2017-08-31 08:23:29 +02:00
|
|
|
|
>SYSCALL GetChar
|
2017-10-05 17:39:17 +02:00
|
|
|
|
bcc .11
|
|
|
|
|
|
|
|
|
|
jsr Init.Timeout
|
2017-03-03 17:37:15 +01:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
ldy #0
|
2017-03-03 17:37:15 +01:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
.1 lda MSG.TELNETOPT,y
|
|
|
|
|
phy
|
|
|
|
|
>SYSCALL PutChar.A
|
|
|
|
|
ply
|
|
|
|
|
iny
|
|
|
|
|
cpy #MSG.TELNETOPT.LEN
|
|
|
|
|
bne .1
|
|
|
|
|
|
2018-04-26 17:38:02 +02:00
|
|
|
|
CS.RUN.LOOP
|
2017-11-17 17:16:05 +01:00
|
|
|
|
.1 >SLEEP
|
2017-08-31 08:23:29 +02:00
|
|
|
|
>SYSCALL GetChar
|
2017-10-05 17:39:17 +02:00
|
|
|
|
bcs .4
|
2017-03-01 16:22:00 +01:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
cmp #IAC
|
|
|
|
|
beq CS.RUN.IACMODE
|
2017-03-01 16:22:00 +01:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.4 jsr Wait.Timeout
|
|
|
|
|
bcc .1
|
|
|
|
|
|
|
|
|
|
>LDYA L.MSG.GREETINGS
|
|
|
|
|
>SYSCALL PrintF.YA
|
2017-03-03 17:37:15 +01:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
bcs .8 unable to send greetings...reset..
|
2017-03-03 17:37:15 +01:00
|
|
|
|
|
2018-05-04 16:55:29 +02:00
|
|
|
|
>LDA.G hBinName
|
2017-10-05 17:39:17 +02:00
|
|
|
|
>SYSCALL GetMemPtr.A
|
2017-10-19 08:19:54 +02:00
|
|
|
|
>SYSCALL ExecPS.YA
|
2018-04-26 17:38:02 +02:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
.9 rts
|
|
|
|
|
|
|
|
|
|
.8 clc
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2017-11-17 17:16:05 +01:00
|
|
|
|
CS.RUN.IACMODE >SLEEP Wait for IAC VERB (or SB)
|
2017-08-31 08:23:29 +02:00
|
|
|
|
>SYSCALL GetChar
|
2017-10-05 17:39:17 +02:00
|
|
|
|
bcs CS.RUN.IACMODE
|
2017-03-03 17:37:15 +01:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
>STA.G IAC.VERB
|
2017-03-01 16:22:00 +01:00
|
|
|
|
|
2017-11-17 17:16:05 +01:00
|
|
|
|
.1 >SLEEP Wait for IAC OPT
|
2017-08-31 08:23:29 +02:00
|
|
|
|
>SYSCALL GetChar
|
2017-10-05 17:39:17 +02:00
|
|
|
|
bcs .1
|
2017-03-03 17:37:15 +01:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
>STA.G IAC.OPT
|
2017-03-03 17:37:15 +01:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
>LDA.G IAC.VERB
|
2017-03-03 17:37:15 +01:00
|
|
|
|
cmp #SB
|
2017-10-05 17:39:17 +02:00
|
|
|
|
beq CS.RUN.IACSB
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
CS.RUN.IACVERB
|
2018-04-16 16:25:39 +01:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
jmp CS.RUN.LOOP
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
CS.RUN.IACSB
|
2017-11-17 17:16:05 +01:00
|
|
|
|
.1 >SLEEP
|
2017-08-31 08:23:29 +02:00
|
|
|
|
>SYSCALL GetChar
|
2017-10-05 17:39:17 +02:00
|
|
|
|
bcs .1
|
|
|
|
|
|
|
|
|
|
>STA.G IAC.SB
|
2017-03-03 17:37:15 +01:00
|
|
|
|
|
|
|
|
|
lda #0
|
2017-10-05 17:39:17 +02:00
|
|
|
|
sta (pData) reset IAC.SB.DATA
|
2017-03-03 17:37:15 +01:00
|
|
|
|
|
2017-11-17 17:16:05 +01:00
|
|
|
|
.2 >SLEEP
|
2017-08-31 08:23:29 +02:00
|
|
|
|
>SYSCALL GetChar
|
2017-10-05 17:39:17 +02:00
|
|
|
|
bcs .2
|
|
|
|
|
|
2017-03-03 17:37:15 +01:00
|
|
|
|
cmp #IAC
|
2017-10-05 17:39:17 +02:00
|
|
|
|
beq .4 end of DATA, go wait SE
|
2017-03-03 17:37:15 +01:00
|
|
|
|
|
|
|
|
|
pha
|
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
ldy #IAC.SB.DATA-1
|
2017-03-03 17:37:15 +01:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
.3 iny
|
|
|
|
|
lda (pData),y
|
|
|
|
|
bne .3
|
2017-02-03 17:58:13 +01:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
pla
|
|
|
|
|
sta (pData),y
|
|
|
|
|
iny
|
|
|
|
|
lda #0
|
|
|
|
|
sta (pData),y
|
|
|
|
|
bra .2
|
2017-03-03 17:37:15 +01:00
|
|
|
|
|
2017-11-17 17:16:05 +01:00
|
|
|
|
.4 >SLEEP
|
2017-08-31 08:23:29 +02:00
|
|
|
|
>SYSCALL GetChar
|
2017-10-05 17:39:17 +02:00
|
|
|
|
bcs .4
|
2017-03-03 17:37:15 +01:00
|
|
|
|
|
|
|
|
|
cmp #SE
|
2017-10-05 17:39:17 +02:00
|
|
|
|
bne .8
|
2017-03-03 17:37:15 +01:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
>LDA.G IAC.OPT
|
|
|
|
|
cmp #TELOPT.TTYPE
|
|
|
|
|
bne .8
|
2015-06-03 20:30:57 +02:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
>LDA.G IAC.SB
|
|
|
|
|
cmp #SB.IS
|
|
|
|
|
bne .8
|
2015-11-22 23:30:06 +01:00
|
|
|
|
|
2017-10-05 17:39:17 +02:00
|
|
|
|
>PUSHEA.G IAC.SB.DATA
|
|
|
|
|
>PUSHW L.ENV.TERM
|
|
|
|
|
>SYSCALL SetEnv
|
|
|
|
|
|
2018-04-16 16:25:39 +01:00
|
|
|
|
.8 jmp CS.RUN.LOOP
|
2015-03-14 22:48:35 +01:00
|
|
|
|
*--------------------------------------
|
2017-03-03 17:37:15 +01:00
|
|
|
|
CS.DOEVENT lda (pEvent)
|
|
|
|
|
bpl .9 is it a TIMER event?
|
|
|
|
|
|
|
|
|
|
ldy #TimeOut
|
|
|
|
|
lda (pData),y
|
|
|
|
|
beq .9
|
|
|
|
|
|
|
|
|
|
dec
|
|
|
|
|
sta (pData),y
|
|
|
|
|
|
|
|
|
|
.9 sec do not discard TIMER event
|
|
|
|
|
rts
|
2015-03-14 22:48:35 +01:00
|
|
|
|
*--------------------------------------
|
2018-04-16 16:25:39 +01:00
|
|
|
|
CS.QUIT >LDA.G hBinName
|
2016-10-03 17:59:36 +02:00
|
|
|
|
beq .1
|
2017-08-25 08:37:21 +02:00
|
|
|
|
>SYSCALL FreeMem.A
|
2015-06-03 20:30:57 +02:00
|
|
|
|
|
2018-04-16 16:25:39 +01:00
|
|
|
|
.1 >LDA.G hNode
|
|
|
|
|
beq .8
|
|
|
|
|
|
|
|
|
|
>PUSHA
|
|
|
|
|
>PUSHBI DEVMGR.CLOSE
|
|
|
|
|
>PUSHBI 0
|
2015-06-03 20:30:57 +02:00
|
|
|
|
|
2018-04-16 16:25:39 +01:00
|
|
|
|
>SYSCALL IOCTL
|
|
|
|
|
|
|
|
|
|
.8 clc
|
2015-03-14 22:48:35 +01:00
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2017-03-03 17:37:15 +01:00
|
|
|
|
Init.Timeout ldy #TimeOut
|
|
|
|
|
lda #TIMEOUT.MAX
|
|
|
|
|
sta (pData),y
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
Wait.TimeOut sec
|
|
|
|
|
ldy #TimeOut
|
|
|
|
|
lda (pData),y
|
|
|
|
|
beq .9
|
|
|
|
|
clc
|
|
|
|
|
.9 rts
|
|
|
|
|
*--------------------------------------
|
2015-03-14 22:48:35 +01:00
|
|
|
|
CS.END
|
2018-04-11 16:35:51 +01:00
|
|
|
|
MSG.USAGE .AZ "Usage : GETTY <DEV> <PROGRAM>\r\n"
|
2017-10-05 17:39:17 +02:00
|
|
|
|
MSG.TELNETOPT .DA #IAC,#WILL,#TELOPT.BINARY
|
|
|
|
|
.DA #IAC,#DO,#TELOPT.LINEMODE
|
|
|
|
|
.DA #IAC,#SB,#TELOPT.LINEMODE,#SB.SEND,#0,#IAC,#SE
|
2017-03-03 17:37:15 +01:00
|
|
|
|
.DA #IAC,#DONT,#TELOPT.ECHO
|
2017-02-28 17:58:36 +01:00
|
|
|
|
.DA #IAC,#WILL,#TELOPT.ECHO
|
2017-03-03 17:37:15 +01:00
|
|
|
|
.DA #IAC,#WILL,#TELOPT.SGA
|
|
|
|
|
.DA #IAC,#DO,#TELOPT.SGA
|
2017-02-28 17:58:36 +01:00
|
|
|
|
* .DA #IAC,#DO,#TELOPT.NAWS
|
2017-03-03 17:37:15 +01:00
|
|
|
|
.DA #IAC,#DO,#TELOPT.TTYPE
|
|
|
|
|
.DA #IAC,#SB,#TELOPT.TTYPE,#SB.SEND,#IAC,#SE
|
2017-10-05 17:39:17 +02:00
|
|
|
|
MSG.TELNETOPT.LEN .EQ *-MSG.TELNETOPT
|
2018-04-11 16:35:51 +01:00
|
|
|
|
MSG.GREETINGS .AZ "\r\nA2osX-GeTTY 0.9.1\r\n"
|
|
|
|
|
ENV.TERM .AZ "TERM"
|
2015-03-14 22:48:35 +01:00
|
|
|
|
*--------------------------------------
|
2015-06-03 20:30:57 +02:00
|
|
|
|
.DUMMY
|
|
|
|
|
.OR 0
|
2017-02-03 17:58:13 +01:00
|
|
|
|
DS.START
|
2017-10-05 17:39:17 +02:00
|
|
|
|
IAC.SB.DATA .BS 64
|
2017-03-03 17:37:15 +01:00
|
|
|
|
IAC.VERB .BS 1
|
|
|
|
|
IAC.OPT .BS 1
|
2017-10-05 17:39:17 +02:00
|
|
|
|
IAC.SB .BS 1
|
2018-04-16 16:25:39 +01:00
|
|
|
|
hNode .BS 1
|
|
|
|
|
hBinName .BS 1
|
|
|
|
|
TimeOut .BS 1
|
2015-06-03 20:30:57 +02:00
|
|
|
|
DS.END .ED
|
2015-03-14 22:48:35 +01:00
|
|
|
|
MAN
|
2017-03-29 17:48:15 +02:00
|
|
|
|
SAVE /A2OSX.SRC/SBIN/GETTY.S
|
2015-03-14 22:48:35 +01:00
|
|
|
|
ASM
|