From c693892ce0073dffa120a990b86d10fe887a183f Mon Sep 17 00:00:00 2001 From: burniouf Date: Tue, 7 Sep 2021 14:32:31 +0200 Subject: [PATCH] RAMWORKS:Added SuperExpander support, PPP:new driver, HTTPGET:BugFix GH#176, ASM:fix around "<" & ">" ops, KERNEL:Added Cursor show/hide ESC seq, LIBTCPIP: tweaks for PPP --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes .Floppies/A2OSX.TEST.po | Bin 819200 -> 819200 bytes BIN/ASM.S.EXP.txt | 68 +- BIN/ASM.S.txt | 2 +- BIN/HTTPGET.S.txt | 50 +- BIN/PPPTEST.S.txt | 458 ------------- BIN/PS.S.txt | 2 +- BIN/TUITEST.S.txt | 205 ++++-- DRV/PPPSSC.DRV.S.D.txt | 758 +++++++++++++++++++++ DRV/PPPSSC.DRV.S.E.txt | 270 ++++++++ DRV/PPPSSC.DRV.S.txt | 1379 ++++++++++++++++---------------------- INC/A2osX.I.txt | 2 +- INC/LIBTUI.I.txt | 63 +- LIB/LIBTCPIP.S.CFG.txt | 90 +-- LIB/LIBTCPIP.S.txt | 2 +- LIB/LIBTUI.S.LBOX.txt | 129 ++++ LIB/LIBTUI.S.OBJ.txt | 585 ++++++++++++++++ LIB/LIBTUI.S.SCRN.txt | 82 +++ LIB/LIBTUI.S.TBOX.txt | 93 +++ LIB/LIBTUI.S.txt | 787 +++++++++++++++++----- SBIN/NETWORKD.S.txt | 14 +- SYS/KERNEL.S.CORE.txt | 8 +- SYS/KERNEL.S.TERMX.txt | 128 ++-- SYS/KM.RAMWORKS.S.txt | 42 +- SYS/KM.VSDRIVE.S.txt | 1 + 25 files changed, 3556 insertions(+), 1662 deletions(-) delete mode 100644 BIN/PPPTEST.S.txt create mode 100644 DRV/PPPSSC.DRV.S.D.txt create mode 100644 DRV/PPPSSC.DRV.S.E.txt create mode 100644 LIB/LIBTUI.S.LBOX.txt create mode 100644 LIB/LIBTUI.S.OBJ.txt create mode 100644 LIB/LIBTUI.S.SCRN.txt create mode 100644 LIB/LIBTUI.S.TBOX.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 64188a7f205374e7e2dbc9d5e1fde052e864df08..59dc59b26ae8712156dda729011399bd97b7e8c5 100644 GIT binary patch delta 199939 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
|#b=V@Fx0K6c? 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 delta 208471 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 KZDa){{C@x;CkHbC diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index 4f1033c66d281877a9836fe26e748e8d856c23c7..abccde387e625b99d4853863203e1315012360d2 100644 GIT binary patch delta 44452 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 delta 48117 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 diff --git a/BIN/ASM.S.EXP.txt b/BIN/ASM.S.EXP.txt index 9d840a71..99e1f6cc 100644 --- a/BIN/ASM.S.EXP.txt +++ b/BIN/ASM.S.EXP.txt @@ -315,16 +315,10 @@ EXP.OP.AND ldx #3 bpl .1 rts *--------------------------------------- -EXP.OP.LOW jsr EXP.OP.SUB - - lda #0 - rol - jmp EXP.SetAccA -*--------------------------------------- -EXP.OP.EQU ldx #0 ARG-ACC->ACC +EXP.OP.EQU ldx #0 ARG-ACC->ACC ldy #4 - clc if not Equals, return 0 + clc if not Equals, return 0 .1 lda SRC.ARG,x eor SRC.ACC,x @@ -334,20 +328,47 @@ EXP.OP.EQU ldx #0 ARG-ACC->ACC dey bne .1 - sec equals, return 1 + sec equals, return 1 .2 lda #0 rol jmp EXP.SetAccA *--------------------------------------- -EXP.OP.GRT jsr EXP.OP.SUB +EXP.OP.LWR jsr EXP.SUB + bcc .2 - lda #0 + ldx #3 + +.1 lda SRC.ACC,x + bne .2 + + dex + bpl .1 + + clc + +.2 lda #0 rol - eor #1 jmp EXP.SetAccA *--------------------------------------- -EXP.OP.ADD ldx #0 ARG-ACC->ACC +EXP.OP.GRT jsr EXP.SUB + bcc .2 + + ldx #3 + +.1 lda SRC.ACC,x + bne .2 + + dex + bpl .1 + + clc + +.2 lda #0 + rol + jmp EXP.SetAccA +*--------------------------------------- +EXP.OP.ADD ldx #0 ARG-ACC->ACC ldy #4 clc @@ -364,7 +385,17 @@ EXP.OP.ADD ldx #0 ARG-ACC->ACC lda #E.VAL.TOO.BIG .8 rts *--------------------------------------- -EXP.OP.SUB ldx #0 ARG-ACC->ACC +EXP.OP.SUB jsr EXP.SUB + bcs .8 + + lda #E.VAL.TOO.BIG + sec + rts + +.8 clc + rts +*--------------------------------------- +EXP.SUB ldx #0 ARG-ACC->ACC ldy #4 sec @@ -375,14 +406,7 @@ EXP.OP.SUB ldx #0 ARG-ACC->ACC inx dey bne .1 - - bcs .8 - - lda #E.VAL.TOO.BIG - sec - rts - -.8 clc + rts *--------------------------------------- EXP.OP.MUL >PUSHL SRC.ARG diff --git a/BIN/ASM.S.txt b/BIN/ASM.S.txt index 715cbbe0..5f281e31 100644 --- a/BIN/ASM.S.txt +++ b/BIN/ASM.S.txt @@ -207,7 +207,7 @@ J.EXP.OP .DA EXP.OP.EOR ^!|&<=>+-*/ .DA EXP.OP.ORA .DA EXP.OP.ORA .DA EXP.OP.AND - .DA EXP.OP.LOW + .DA EXP.OP.LWR .DA EXP.OP.EQU .DA EXP.OP.GRT .DA EXP.OP.ADD diff --git a/BIN/HTTPGET.S.txt b/BIN/HTTPGET.S.txt index f5326a7c..e1477a97 100644 --- a/BIN/HTTPGET.S.txt +++ b/BIN/HTTPGET.S.txt @@ -29,7 +29,6 @@ ZPReqBufPtr .BS 2 ZPReqBufLen .BS 2 bHeader .BS 1 TimeOut .BS 1 -bURI .BS 1 hEncodedBuf .BS 1 ZPEncodedBufPtr .BS 2 @@ -174,8 +173,8 @@ CS.RUN.HOSTOK jsr CS.RUN.GETNEXTARG .11 cmp #'U' bne .2 - bit bURI - bmi CS.RUN.ESYN + lda ZPReqBufPtr+1 + bne CS.RUN.ESYN jsr CS.RUN.GETNEXTARG @@ -184,15 +183,13 @@ CS.RUN.HOSTOK jsr CS.RUN.GETNEXTARG >STYA ZPReqBufPtr >SYSCALL StrLen >STYA ZPReqBufLen - sec - ror bURI bra CS.RUN.HOSTOK .2 cmp #'F' bne .3 - bit bURI - bmi CS.RUN.ESYN + lda ZPReqBufPtr+1 + bne CS.RUN.ESYN jsr CS.RUN.GETNEXTARG bcs .9 @@ -205,28 +202,28 @@ CS.RUN.HOSTOK jsr CS.RUN.GETNEXTARG >SYSCALL GetMemPtr >STYA ZPReqBufPtr - sec - ror bURI jmp CS.RUN.HOSTOK .3 cmp #'O' bne .9 + + lda ZPFileName+1 + bne CS.RUN.ESYN2 - inc ArgIndex - lda ArgIndex - >SYSCALL ArgV + jsr CS.RUN.GETNEXTARG bcs .9 >STYA ZPFileName jmp CS.RUN.HOSTOK *-------------------------------------- -CS.RUN.GETNEXTARG - inc ArgIndex - lda ArgIndex - >SYSCALL ArgV +CS.RUN.ESYN2 lda #E.SYN + sec rts *-------------------------------------- -CS.RUN.ARGSOK >PUSHW L.MSG.CONNECT +CS.RUN.ARGSOK lda ZPReqBufPtr+1 + beq CS.RUN.ESYN2 + + >PUSHW L.MSG.CONNECT ldx #0 .1 >PUSHB SA.REMOTE+S.SOCKADDR.ADDR,x @@ -325,7 +322,11 @@ CS.RUN.GET jsr CS.RUN.ENCODE *-------------------------------------- CS.RUN.SKTERR pha >PUSHW L.MSG.SKTERR - pla + bra CS.RUN.ERR +*-------------------------------------- +CS.RUN.IOERR pha + >PUSHW L.MSG.IOERR +CS.RUN.ERR pla pha >PUSHA >PUSHBI 1 @@ -334,15 +335,10 @@ CS.RUN.SKTERR pha sec rts *-------------------------------------- -CS.RUN.IOERR pha - >PUSHW L.MSG.IOERR - pla - pha - >PUSHA - >PUSHBI 1 - >SYSCALL PrintF - pla - sec +CS.RUN.GETNEXTARG + inc ArgIndex + lda ArgIndex + >SYSCALL ArgV rts *-------------------------------------- CS.RUN.ENCODE >LDYA ZPReqBufPtr diff --git a/BIN/PPPTEST.S.txt b/BIN/PPPTEST.S.txt deleted file mode 100644 index 21ff78e7..00000000 --- a/BIN/PPPTEST.S.txt +++ /dev/null @@ -1,458 +0,0 @@ -NEW - AUTO 3,1 - .LIST OFF - .OP 65C02 - .OR $2000 - .TF root/ppptest -*-------------------------------------- - .INB inc/macros.i - .INB inc/a2osx.i -*-------------------------------------- -TIMEOUT.MAX .EQ 200 20 sec. -BUFSIZE .EQ 256 -*-------------------------------------- - .DUMMY - .OR ZPBIN -ZS.START -ZPBufPtr .BS 2 -ZPBufLen .BS 2 -ZPPtr1 .BS 2 -ZPPtr2 .BS 2 - -FCS .BS 2 -hBuf .BS 1 -hDev .BS 1 -TimeOut .BS 1 -ZS.END - .ED -*-------------------------------------- -* File Header (16 Bytes) -*-------------------------------------- -CS.START cld - jmp (.1,x) - .DA #$61 6502,Level 1 (65c02) - .DA #1 BIN Layout Version 1 - .DA #S.PS.F.EVENT S.PS.F - .DA #0 - .DA CS.END-CS.START Code Size (without Constants) - .DA DS.END-DS.START Data Segment Size - .DA #32 Stack Size - .DA #ZS.END-ZS.START Zero Page Size - .DA 0 -*-------------------------------------- -.1 .DA CS.INIT - .DA CS.RUN - .DA CS.DOEVENT - .DA CS.QUIT -L.MSG.USAGE .DA MSG.USAGE -L.MSG.DEVOK .DA MSG.DEVOK -L.MSG.AT .DA MSG.AT -L.MSG.BUFLEN .DA MSG.BUFLEN -L.MSG.HEXDUMP .DA MSG.HEXDUMP -L.PPP.1 .DA PPP.1 - .DA 0 -*-------------------------------------- -CS.INIT clc - rts -*-------------------------------------- -CS.RUN lda #1 - >SYSCALL ArgV - bcs .9 - - >PUSHYA - >PUSHBI O.RDWR - >PUSHBI 0 type - >PUSHWZ auxtype - >SYSCALL FOpen - bcs .99 - - sta hDev - >LDYA L.MSG.DEVOK - >SYSCALL PutS - - >LDYAI BUFSIZE - >SYSCALL GetMem - bcs .99 - - >STYA ZPBufPtr - stx hBuf - - bra CS.RUN.TEST -* jmp CS.RUN.LOOP - -.9 >LDYA L.MSG.USAGE - >SYSCALL PutS - - lda #E.SYN - sec -.99 rts -*-------------------------------------- -CS.RUN.TEST -* jsr ATInit -* bcs .9 - - >LDYAI PPP.1.LEN - >STYA ZPBufLen - >LDYA L.PPP.1 - jsr PPPFCS16 - - >LDYA L.PPP.1 - jsr DumpBuf - - >PUSHB hDev - >PUSHW L.PPP.1 - >PUSHWI PPP.1.LEN - >SYSCALL FWrite - bcs .9 - - >SLEEP - - >PUSHB hDev - >PUSHW ZPBufPtr - >PUSHWI BUFSIZE - >SYSCALL FRead - bcs .9 - - >STYA ZPBufLen - - >LDYA ZPBufPtr - jsr DumpBuf - - lda #0 - sec - -.9 -CS.RUN.RTS rts -*-------------------------------------- -CS.RUN.LOOP >SLEEP - - lda hDev - >SYSCALL FEOF - bcs CS.RUN.RTS - tay - bne .1 EOF, no char - - >PUSHB hDev - >PUSHW ZPBufPtr - >PUSHWI BUFSIZE - >SYSCALL FRead - bcs CS.RUN.RTS - - phy - pha - - ldy #S.PS.hStdOut - lda (pPS),y - >PUSHA - >PUSHW ZPBufPtr - - pla - ply - >PUSHYA len - >SYSCALL FWrite - bcs .9 - -.1 ldy #S.PS.hStdIn - lda (pPS),y - - >SYSCALL FEOF - bcs .9 - tay - bne CS.RUN.LOOP EOF = true, no char from STDIN - - ldy #S.PS.hStdIn - lda (pPS),y - >PUSHA - >PUSHW ZPBufPtr - >PUSHWI BUFSIZE - >SYSCALL FRead - bcs .9 - - tax - lda (ZPBufPtr) - cmp #$14 Ctrl-T - beq .9 - - txa - - phy - pha - >PUSHB hDev - >PUSHW ZPBufPtr - pla - ply - >PUSHYA len - >SYSCALL FWrite - bcs .9 - - jmp CS.RUN.LOOP - -.9 rts -*-------------------------------------- -CS.DOEVENT lda (pEvent) - bpl .9 is it a TIMER event? - - lda TimeOut - beq .9 - - dec TimeOut -.9 sec do not discard TIMER event - rts -*-------------------------------------- -CS.QUIT lda hDev - beq .1 - - >SYSCALL FClose - -.1 lda hBuf - beq .2 - - >SYSCALL FreeMem - -.2 clc - rts -*-------------------------------------- -ATInit lda #250 - sta TimeOut - - >PUSHB hDev - >PUSHW L.MSG.AT - >PUSHWI MSG.AT.LEN - >SYSCALL FWrite - bcs .9 - -.1 lda hDev - >SYSCALL FEOF - bcs .9 - - tay - beq .2 - - >SLEEP - - dec TimeOut - bne .1 - - rts - -.2 >PUSHB hDev - >PUSHW ZPBufPtr - >PUSHWI BUFSIZE - >SYSCALL FRead - bcs .9 - - >PUSHYA len - >PUSHW ZPBufPtr - ldy #S.PS.hStdOut - lda (pPS),y - bcc .1 - -.9 rts -*-------------------------------------- -* U16 fcs = 0xFFFF; -* -* while (len--) -* { -* fcs=(fcs >> 8) ^ fcstab[(fcs ^ *cp++) & 0xff]; -* } -* return (~fcs); -*-------------------------------------- -PPPFCS16 >STYA ZPPtr1 - - lda #$ff - sta FCS - sta FCS+1 - - lda ZPBufLen - sec - sbc #4 minus 7E .... FCS FCS 7E - eor #$ff - sta ZPPtr2 - - lda ZPBufLen+1 - sbc #0 - eor #$ff - sta ZPPtr2+1 - -.1 inc ZPPtr2 - bne .2 - - inc ZPPtr2+1 - beq .8 - -.2 inc ZPPtr1 - bne .3 - - inc ZPPtr1+1 - -.3 lda (ZPPtr1) - eor FCS - tax - - lda FCS.LO,x - eor FCS+1 - sta FCS - - lda FCS.HI,x - sta FCS+1 - - bra .1 - -.8 lda FCS+1 - eor #$ff - ldy #1 - sta (ZPPtr1),y - - lda FCS - eor #$ff - iny - sta (ZPPtr1),y - - rts -*-------------------------------------- -DumpBuf >STYA ZPPtr1 - - >PUSHW L.MSG.BUFLEN - >PUSHW ZPBufLen - >PUSHBI 2 - >SYSCALL PrintF - bcs .9 - -.1 >PUSHW L.MSG.HEXDUMP - - ldy #0 - -.2 >PUSHB (ZPPtr1),y - iny - cpy #16 - bne .2 - - >PUSHBI 16 - >SYSCALL PrintF - bcs .9 - - lda ZPPtr1 - adc #16 - sta ZPPtr1 - lda ZPPtr1+1 - adc #0 - sta ZPPtr1+1 - - lda ZPBufLen - sec - sbc #16 - sta ZPBufLen - lda ZPBufLen+1 - sbc #0 - sta ZPBufLen+1 - bcc .9 - ora ZPBufLen - bne .1 - - clc - -.9 rts -*-------------------------------------- -CS.END -MSG.USAGE .AZ "Usage : TERM device " -MSG.DEVOK .AZ "Opening Device..." -MSG.AT .AS "ATI0" - .HS 0D0A -MSG.AT.LEN .EQ *-MSG.AT -MSG.BUFLEN .AZ "BufLen:%H\r\n" -MSG.HEXDUMP .AZ "%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h\r\n" -*-------------------------------------- -FCS.LO .DA #$0000,#$1189,#$2312,#$329b,#$4624,#$57ad,#$6536,#$74bf - .DA #$8c48,#$9dc1,#$af5a,#$bed3,#$ca6c,#$dbe5,#$e97e,#$f8f7 - .DA #$1081,#$0108,#$3393,#$221a,#$56a5,#$472c,#$75b7,#$643e - .DA #$9cc9,#$8d40,#$bfdb,#$ae52,#$daed,#$cb64,#$f9ff,#$e876 - .DA #$2102,#$308b,#$0210,#$1399,#$6726,#$76af,#$4434,#$55bd - .DA #$ad4a,#$bcc3,#$8e58,#$9fd1,#$eb6e,#$fae7,#$c87c,#$d9f5 - .DA #$3183,#$200a,#$1291,#$0318,#$77a7,#$662e,#$54b5,#$453c - .DA #$bdcb,#$ac42,#$9ed9,#$8f50,#$fbef,#$ea66,#$d8fd,#$c974 - .DA #$4204,#$538d,#$6116,#$709f,#$0420,#$15a9,#$2732,#$36bb - .DA #$ce4c,#$dfc5,#$ed5e,#$fcd7,#$8868,#$99e1,#$ab7a,#$baf3 - .DA #$5285,#$430c,#$7197,#$601e,#$14a1,#$0528,#$37b3,#$263a - .DA #$decd,#$cf44,#$fddf,#$ec56,#$98e9,#$8960,#$bbfb,#$aa72 - .DA #$6306,#$728f,#$4014,#$519d,#$2522,#$34ab,#$0630,#$17b9 - .DA #$ef4e,#$fec7,#$cc5c,#$ddd5,#$a96a,#$b8e3,#$8a78,#$9bf1 - .DA #$7387,#$620e,#$5095,#$411c,#$35a3,#$242a,#$16b1,#$0738 - .DA #$ffcf,#$ee46,#$dcdd,#$cd54,#$b9eb,#$a862,#$9af9,#$8b70 - .DA #$8408,#$9581,#$a71a,#$b693,#$c22c,#$d3a5,#$e13e,#$f0b7 - .DA #$0840,#$19c9,#$2b52,#$3adb,#$4e64,#$5fed,#$6d76,#$7cff - .DA #$9489,#$8500,#$b79b,#$a612,#$d2ad,#$c324,#$f1bf,#$e036 - .DA #$18c1,#$0948,#$3bd3,#$2a5a,#$5ee5,#$4f6c,#$7df7,#$6c7e - .DA #$a50a,#$b483,#$8618,#$9791,#$e32e,#$f2a7,#$c03c,#$d1b5 - .DA #$2942,#$38cb,#$0a50,#$1bd9,#$6f66,#$7eef,#$4c74,#$5dfd - .DA #$b58b,#$a402,#$9699,#$8710,#$f3af,#$e226,#$d0bd,#$c134 - .DA #$39c3,#$284a,#$1ad1,#$0b58,#$7fe7,#$6e6e,#$5cf5,#$4d7c - .DA #$c60c,#$d785,#$e51e,#$f497,#$8028,#$91a1,#$a33a,#$b2b3 - .DA #$4a44,#$5bcd,#$6956,#$78df,#$0c60,#$1de9,#$2f72,#$3efb - .DA #$d68d,#$c704,#$f59f,#$e416,#$90a9,#$8120,#$b3bb,#$a232 - .DA #$5ac5,#$4b4c,#$79d7,#$685e,#$1ce1,#$0d68,#$3ff3,#$2e7a - .DA #$e70e,#$f687,#$c41c,#$d595,#$a12a,#$b0a3,#$8238,#$93b1 - .DA #$6b46,#$7acf,#$4854,#$59dd,#$2d62,#$3ceb,#$0e70,#$1ff9 - .DA #$f78f,#$e606,#$d49d,#$c514,#$b1ab,#$a022,#$92b9,#$8330 - .DA #$7bc7,#$6a4e,#$58d5,#$495c,#$3de3,#$2c6a,#$1ef1,#$0f78 -*-------------------------------------- -FCS.HI .DA /$0000,/$1189,/$2312,/$329b,/$4624,/$57ad,/$6536,/$74bf - .DA /$8c48,/$9dc1,/$af5a,/$bed3,/$ca6c,/$dbe5,/$e97e,/$f8f7 - .DA /$1081,/$0108,/$3393,/$221a,/$56a5,/$472c,/$75b7,/$643e - .DA /$9cc9,/$8d40,/$bfdb,/$ae52,/$daed,/$cb64,/$f9ff,/$e876 - .DA /$2102,/$308b,/$0210,/$1399,/$6726,/$76af,/$4434,/$55bd - .DA /$ad4a,/$bcc3,/$8e58,/$9fd1,/$eb6e,/$fae7,/$c87c,/$d9f5 - .DA /$3183,/$200a,/$1291,/$0318,/$77a7,/$662e,/$54b5,/$453c - .DA /$bdcb,/$ac42,/$9ed9,/$8f50,/$fbef,/$ea66,/$d8fd,/$c974 - .DA /$4204,/$538d,/$6116,/$709f,/$0420,/$15a9,/$2732,/$36bb - .DA /$ce4c,/$dfc5,/$ed5e,/$fcd7,/$8868,/$99e1,/$ab7a,/$baf3 - .DA /$5285,/$430c,/$7197,/$601e,/$14a1,/$0528,/$37b3,/$263a - .DA /$decd,/$cf44,/$fddf,/$ec56,/$98e9,/$8960,/$bbfb,/$aa72 - .DA /$6306,/$728f,/$4014,/$519d,/$2522,/$34ab,/$0630,/$17b9 - .DA /$ef4e,/$fec7,/$cc5c,/$ddd5,/$a96a,/$b8e3,/$8a78,/$9bf1 - .DA /$7387,/$620e,/$5095,/$411c,/$35a3,/$242a,/$16b1,/$0738 - .DA /$ffcf,/$ee46,/$dcdd,/$cd54,/$b9eb,/$a862,/$9af9,/$8b70 - .DA /$8408,/$9581,/$a71a,/$b693,/$c22c,/$d3a5,/$e13e,/$f0b7 - .DA /$0840,/$19c9,/$2b52,/$3adb,/$4e64,/$5fed,/$6d76,/$7cff - .DA /$9489,/$8500,/$b79b,/$a612,/$d2ad,/$c324,/$f1bf,/$e036 - .DA /$18c1,/$0948,/$3bd3,/$2a5a,/$5ee5,/$4f6c,/$7df7,/$6c7e - .DA /$a50a,/$b483,/$8618,/$9791,/$e32e,/$f2a7,/$c03c,/$d1b5 - .DA /$2942,/$38cb,/$0a50,/$1bd9,/$6f66,/$7eef,/$4c74,/$5dfd - .DA /$b58b,/$a402,/$9699,/$8710,/$f3af,/$e226,/$d0bd,/$c134 - .DA /$39c3,/$284a,/$1ad1,/$0b58,/$7fe7,/$6e6e,/$5cf5,/$4d7c - .DA /$c60c,/$d785,/$e51e,/$f497,/$8028,/$91a1,/$a33a,/$b2b3 - .DA /$4a44,/$5bcd,/$6956,/$78df,/$0c60,/$1de9,/$2f72,/$3efb - .DA /$d68d,/$c704,/$f59f,/$e416,/$90a9,/$8120,/$b3bb,/$a232 - .DA /$5ac5,/$4b4c,/$79d7,/$685e,/$1ce1,/$0d68,/$3ff3,/$2e7a - .DA /$e70e,/$f687,/$c41c,/$d595,/$a12a,/$b0a3,/$8238,/$93b1 - .DA /$6b46,/$7acf,/$4854,/$59dd,/$2d62,/$3ceb,/$0e70,/$1ff9 - .DA /$f78f,/$e606,/$d49d,/$c514,/$b1ab,/$a022,/$92b9,/$8330 - .DA /$7bc7,/$6a4e,/$58d5,/$495c,/$3de3,/$2c6a,/$1ef1,/$0f78 -*-------------------------------------- -PPP.1 .HS 7E - -* .HS ff.03.C0.21.01.01.00.17.02.06.00.0a.00.00.05.06 -* .HS 00.2a.2b.78.07.02.08.02.0d.03.06 -* .HS A5.F8 - -PPP.1.START .HS FF03 - .HS C021 LCP -PPP.1.LCP .HS 01 Configure-Request - .HS 01 ID - .DA /PPP.1.LCP.LEN,#PPP.1.LCP.LEN - .HS 01.04.05DC MRU - .HS 02.06.000A0000 ACCM - .HS 05.06.2A2B7807 MAGIC -PPP.1.LCP.LEN .EQ *-PPP.1.LCP - .BS 2 FCS - .HS 7E -PPP.1.LEN .EQ *-PPP.1 -*-------------------------------------- - .DUMMY - .OR 0 -DS.START -DS.END - .ED -*-------------------------------------- -MAN -SAVE root/ppptest.s -ASM diff --git a/BIN/PS.S.txt b/BIN/PS.S.txt index 586f6c20..17cb3bfa 100644 --- a/BIN/PS.S.txt +++ b/BIN/PS.S.txt @@ -224,7 +224,7 @@ CS.QUIT clc *-------------------------------------- CS.END MSG0 .DA #C.ESC - .AZ "[?7lhPS pPID PID cPID CPU\% Status Flags UID Args" + .AZ "[?7lhPS pPID PID cPID CPU% Status Flags UID Args" MSG1 .AZ "%3d %3d %3d %3d %3d\% %6s %s %3d" MSG2 .AS " %s" MSG3 .DA #0 diff --git a/BIN/TUITEST.S.txt b/BIN/TUITEST.S.txt index 9aa090ae..9e1a0a3b 100644 --- a/BIN/TUITEST.S.txt +++ b/BIN/TUITEST.S.txt @@ -12,9 +12,10 @@ NEW .DUMMY .OR ZPBIN ZS.START -ZPPtr1 .BS 2 -hScreen .BS 1 -hListBox .BS 1 +ZPPtr1 .BS 2 +hSCRN .BS 1 +hTBOX1 .BS 1 +hLBOX1 .BS 1 ZS.END .ED *-------------------------------------- * File Header (16 Bytes) @@ -27,7 +28,7 @@ CS.START cld .DA #0 .DA CS.END-CS.START Code Size (without Constants) .DA DS.END-DS.START Data Segment Size - .DA #32 Stack Size + .DA #64 Stack Size .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- @@ -36,92 +37,194 @@ CS.START cld .DA CS.DOEVENT .DA CS.QUIT L.LIBTUI .DA LIBTUI +*-------------------------------------- +L.SCRN.Title .DA SCRN.Title +L.SCRN.Status .DA SCRN.Status +L.CS.SCRN.fResize .DA CS.SCRN.fResize +L.TBOX1 .DA TBOX1 +L.TBOX1.Title .DA TBOX1.Title +L.TBOX1.Status .DA TBOX1.Status L.LBOX1 .DA LBOX1 -L.MSG.Screen .DA MSG.Screen +L.LBOX1.L .DA LBOX1.L .DA 0 *-------------------------------------- CS.INIT >LDYA L.LIBTUI >SYSCALL LoadLib - bcs .9 - + bcs CS.INIT.RTS + sta hLIBTUI -.9 clc - rts +* clc + +CS.INIT.RTS rts *-------------------------------------- -CS.RUN >LIBCALL hLIBTUI,LIBTUI.Open - bcs .9 +CS.RUN lda #S.OBJ.F.bTITLE+S.OBJ.F.bSTATUS + >LIBCALL hLIBTUI,LIBTUI.Init + bcs CS.INIT.RTS - sta hScreen - >SYSCALL GetMemPtr - >STYA ZPPtr1 - - >PUSHW L.MSG.Screen - - ldy #S.OBJ.X1 - -.1 lda (ZPPtr1),y + sta hSCRN >PUSHA - iny - cpy #S.OBJ.Y2+1 - bne .1 + >PUSHBI S.OBJ.pTITLE + >PUSHEA.G SCRN.Buf + >LIBCALL hLIBTUI,LIBTUI.SetProp + + >PUSHB hSCRN + >PUSHBI S.OBJ.pSTATUS + >PUSHW L.SCRN.Status + >LIBCALL hLIBTUI,LIBTUI.SetProp + + >PUSHB hSCRN + >PUSHBI S.OBJ.fRESIZE + >PUSHW L.CS.SCRN.fResize + >LIBCALL hLIBTUI,LIBTUI.SetProp + + jsr CS.TBOX1.Init + bcs CS.RUN.RTS + + jsr CS.LBOX1.Init + bcs CS.RUN.RTS + + jsr CS.SCRN.fResize Will Call SCRN.Draw - >PUSHBI 6 - >SYSCALL printf + lda hTBOX1 + >LIBCALL hLIBTUI,LIBTUI.Activate +*-------------------------------------- +CS.RUN.LOOP >SLEEP + + lda hSCRN + >LIBCALL hLIBTUI,LIBTUI.GetEvent + bcs .9 + + tay + beq CS.RUN.LOOP - >PUSHB hScreen + >PUSHB hSCRN + tya + >PUSHA + >LIBCALL hLIBTUI,LIBTUI.Dispatch + bcc CS.RUN.LOOP + + + +.9 pha + lda hSCRN + >LIBCALL hLIBTUI,LIBTUI.Close + pla + sec + +CS.RUN.RTS rts +*-------------------------------------- +CS.TBOX1.Init >PUSHB hSCRN + >PUSHW L.TBOX1 + >LIBCALL hLIBTUI,LIBTUI.New + bcs .9 + + sta hTBOX1 + + >PUSHA + >PUSHBI S.OBJ.pTITLE + >PUSHW L.TBOX1.Title + >LIBCALL hLIBTUI,LIBTUI.SetProp + + >PUSHB hTBOX1 + >PUSHBI S.OBJ.pSTATUS + >PUSHW L.TBOX1.Status + >LIBCALL hLIBTUI,LIBTUI.SetProp + +.9 rts +*-------------------------------------- +CS.LBOX1.Init >PUSHB hSCRN >PUSHW L.LBOX1 - >LIBCALL hLIBTUI,LIBTUI.LBOXNew + >LIBCALL hLIBTUI,LIBTUI.New bcs .9 - - sta hListBox - -.2 >SYSCALL GetChar - bcs .9 - - cmp #3 - beq .9 - - >SYSCALL putchar - bcc .2 - + + sta hLBOX1 + + >PUSHA + >PUSHBI S.LBOX.pL + >PUSHW L.LBOX1.L + >LIBCALL hLIBTUI,LIBTUI.SetProp .9 rts *-------------------------------------- CS.DOEVENT sec do not discard TIMER event rts *-------------------------------------- -CS.QUIT lda hScreen - beq .1 - - >LIBCALL hLIBTUI,LIBTUI.Close - -.1 lda hLIBTUI +CS.QUIT lda hLIBTUI beq .8 - + >SYSCALL UnloadLib - + .8 clc rts *-------------------------------------- +CS.SCRN.fResize lda hSCRN + >SYSCALL GetMemPtr + >STYA ZPPtr1 + + >PUSHEA.G SCRN.Buf + >PUSHW L.SCRN.Title + + ldy #S.OBJ.X1 + +.1 lda (ZPPtr1),y + >PUSHA + iny + cpy #S.OBJ.InnerH+1 + bne .1 + + >PUSHBI 10 + >SYSCALL sprintf + + lda hSCRN + >LIBCALL hLIBTUI,LIBTUI.Draw + rts +*-------------------------------------- CS.END *-------------------------------------- LIBTUI .AZ "libtui" hLIBTUI .BS 1 *-------------------------------------- -MSG.Screen .AZ "Screen : X1=%d, Y1=%d, W=%d, H=%d,X2=%d, Y2=%d\r\n" +SCRN.Title .AZ "Window: X1=%d,Y1=%d, W=%d,H=%d, X2=%d,Y2=%d, iX=%d,iY=%d, iW=%d,iH=%d" +SCRN.Status .AZ "Status bar..." +*-------------------------------------- +TBOX1 .DA #S.OBJ.T.TBOX T + .DA #S.OBJ.F.bHBorder+S.OBJ.F.bVBorder+S.OBJ.F.bTITLE+S.OBJ.F.bSTATUS + .BS 2 + .DA #4 X1 + .DA #4 Y1 + .DA #40 W + .DA #15 H +TBOX1.Title .AZ "Text Box Title" +TBOX1.Status .AZ "Text Box Status" *-------------------------------------- LBOX1 .DA #S.OBJ.T.LBOX T - .BS 3 - .DA #10 X1 + .DA #S.OBJ.F.bHBorder+S.OBJ.F.bVBorder + .BS 2 + .DA #50 X1 .DA #4 Y1 .DA #20 W .DA #10 H -LBOX1.Title .AZ "Title" +LBOX1.L .AZ "Item 1" + .AZ "Item 2" + .AZ "Item 3" + .AZ "Item 4" + .AZ "Item 5" + .AZ "Item 6 very long line" + .AZ "Item 7" + .AZ "Item 8" + .AZ "Item 9" + .AZ "Item 10" + .AZ "Item 11" + .AZ "Item 12" + .AZ "Item 13" + .AZ "Item 14 last one" + .DA #0 *-------------------------------------- .DUMMY .OR 0 DS.START +SCRN.Buf .BS 80 DS.END .ED *-------------------------------------- MAN diff --git a/DRV/PPPSSC.DRV.S.D.txt b/DRV/PPPSSC.DRV.S.D.txt new file mode 100644 index 00000000..4ac4d857 --- /dev/null +++ b/DRV/PPPSSC.DRV.S.D.txt @@ -0,0 +1,758 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +* Driver Code +*-------------------------------------- +INBUF.SIZE .EQ 4096 +*-------------------------------------- +ZPIOCTL .EQ ZPDRV +ZPBufPtr .EQ ZPDRV+2 +ZPCount .EQ ZPDRV+4 +ZPnCount .EQ ZPDRV+6 +ZPFCS .EQ ZPDRV+8 +*-------------------------------------- +DRV.CS.START cld + jmp (.1,x) +.1 .DA STATUS + .DA A2osX.BADCALL + .DA A2osX.BADCALL + .DA A2osX.BADCALL + .DA CONTROL + .DA A2osX.BADCALL + .DA OPEN + .DA CLOSE + .DA READ + .DA WRITE + .DA 0 end or relocation +*-------------------------------------- +STATUS jsr STATUS.CONTROL.Init + ldy #S.IOCTL.S + lda (ZPIOCTL),y + beq .1 + + cmp #S.IOCTL.S.GETDIB + bne STATUS.DCB + + ldy #S.DIB-1 + .HS 2C bit abs +.1 ldy #3 + +.2 lda DIB,y + sta (ZPBufPtr),y + dey + bpl .2 + + clc + rts + +STATUS.DCB cmp #S.IOCTL.S.GETDCB + bne .3 + + ldy #S.DCB.NIC-1 + +.2 lda DCB,y + sta (ZPBufPtr),y + dey + bpl .2 + + clc + rts + +.3 cmp #S.IOCTL.S.EOF + bne STATUS.9 + + lda DIB+S.DIB.S + and #S.DIB.S.OPENED + beq OPEN.E + + lda INBUF.CNT + ora INBUF.CNT+1 + bne .8 NO DATA? eof = TRUE + + lda #1 + clc + rts + +.8 lda #0 + clc + rts + +STATUS.9 lda #MLI.E.BADCTL + sec + rts +*-------------------------------------- +CONTROL jsr STATUS.CONTROL.Init + + ldy #S.IOCTL.C + lda (ZPIOCTL),y + cmp #S.IOCTL.C.SETDCB + bne STATUS.9 + + ldy #S.DCB.NIC-1 + +.2 lda (ZPBufPtr),y + sta DCB,y + dey + bpl .2 +*-------------------------------------- +OPEN lda DIB+S.DIB.S + bit #S.DIB.S.OPENED + beq OPEN.1 + +OPEN.E lda #MLI.E.OPEN + sec + rts + +OPEN.1 >LDYAI INBUF.SIZE + >SYSCALL2 GetMem + bcs .9 + + stx hINBUF + sta INBUF.BASEH + + >STYA READ.BUF+1 + >STYA READ.SSC.BUF+1 + + stz INBUF.TAIL + stz INBUF.TAIL+1 + stz INBUF.HEAD + stz INBUF.HEAD+1 + stz INBUF.CNT + stz INBUF.CNT+1 + + ldx DEVSLOTn08F + lda #C.XOFF + jsr WRITE.Byte + + lda #S.DIB.S.OPENED + tsb DIB+S.DIB.S + + clc + +.9 rts +*-------------------------------------- +CLOSE php + sei + + ldx DEVSLOTn08F + stz SSC.RESET-$8F,x + + lda #S.DIB.S.OPENED + trb DIB+S.DIB.S + + lda hINBUF + >SYSCALL2 FreeMem + + plp + clc + rts +*-------------------------------------- +READ >STYA ZPIOCTL + + jsr READ.SSC + bcs .99 + +.1 jsr READ.Sync + bcs .98 + + cmp #$C0 C021 = LCP + beq .6 + + tay 0021 = IP + bne .1 + + jsr READ.GetByteEsc + bcs .98 + + cmp #$21 + bne .1 + + jsr READ.GetByteEsc + bcs .98 + + cmp #$45 45 = S.IP.V.IHL + bne .1 + + jsr READ.GetByteEsc + bcs .98 + +* tay ignore DSCP.ECN +* bne .1 + + jsr READ.GetByteEsc HHLL = S.IP.TOTAL.LENGTH + bcs .98 + + sta ZPCount+1 + eor #$ff + sta ZPnCount+1 + + jsr READ.GetByteEsc + bcs .98 + + sta ZPCount + eor #$ff +* clc + adc #4 already 4 bytes read + sta ZPnCount + bcc .2 + + inc ZPnCount+1 + +.2 jsr READ.NewFrame + bcs .99 + + phx hFrame + + jsr READ.GetFrame + + pla + bcc .99 + + >SYSCALL2 FreeMem + + lda #MLI.E.IO + sec + rts + +.6 jsr READ.GetByteEsc + bcs .98 + + cmp #$21 + bne .1 + + jsr READ.GetByteEsc + bcs .98 + + cmp #$09 + bne .1 + + jsr READ.SendEchoRep + bra .1 + +.98 lda #E.NODATA + +.99 rts +*-------------------------------------- +READ.SSC php + sei + + ldx DEVSLOTn08F + + lda SSC.STATUS-$8F,x + bit #SSC.STATUS.nDCD true when 0 + bne READ.SSC.98 + + lda #C.XON + jsr WRITE.Byte + +READ.SSC.1 ldy #0 + +READ.SSC.2 lda SSC.STATUS-$8F,x + and #SSC.STATUS.RDRF + bne READ.SSC.3 + + iny + bne READ.SSC.2 + + lda #C.XOFF + jsr WRITE.Byte + + plp + clc + rts + +READ.SSC.3 lda SSC.DATA-$8F,x + +READ.SSC.BUF sta $FFFF SELF MODIFIED + + inc READ.SSC.BUF+1 + bne .1 + + inc READ.SSC.BUF+2 + +.1 inc INBUF.CNT + bne .2 + + inc INBUF.CNT+1 + +.2 inc INBUF.HEAD + bne READ.SSC.1 + + inc INBUF.HEAD+1 + + lda INBUF.HEAD+1 + cmp /INBUF.SIZE + bne READ.SSC.1 + + stz INBUF.HEAD+1 + lda INBUF.BASEH + sta READ.SSC.BUF+2 + bra READ.SSC.1 + +READ.SSC.98 lda #MLI.E.IO + plp + sec + rts +*-------------------------------------- +READ.NewFrame lda ZPCount + clc + adc #S.ETH.EII + + ldy #S.IOCTL.BYTECNT + sta (ZPIOCTL),y + pha + + lda ZPCount+1 + adc /S.ETH.EII + iny + sta (ZPIOCTL),y + + ply + + >SYSCALL2 GetMem + bcs .9 + + >STYA ZPBufPtr + + phy + ldy #S.IOCTL.BUFPTR+1 + sta (ZPIOCTL),y + dey + pla + sta (ZPIOCTL),y + + ldy #S.ETH.EII.TYPE + lda /S.ETH.EII.TYPE.IP + sta (ZPBufPtr),y + + iny + + lda #S.ETH.EII.TYPE.IP + sta (ZPBufPtr),y + + ldy #S.IP.V.IHL.DSCP.ECN + lda #$45 + sta (ZPBufPtr),y + + iny + + lda #0 + sta (ZPBufPtr),y + + iny S.IP.TOTAL.LENGTH + + lda ZPCount+1 + sta (ZPBufPtr),y + + iny + + lda ZPCount + sta (ZPBufPtr),y + + iny + tya + +* clc + adc ZPBufPtr + sta ZPBufPtr + bcc .8 + + inc ZPBufPtr+1 + clc +.8 +* clc + +.9 rts +*-------------------------------------- +READ.GetFrame inc ZPnCount + bne .1 + + inc ZPnCount+1 + beq .2 + +.1 jsr READ.GetByteEsc + bcs .9 + + sta (ZPBufPtr) + inc ZPBufPtr + bne READ.GetFrame + + inc ZPBufPtr+1 + bra READ.GetFrame + +.2 jsr READ.GetByteEsc skip FCS HI + bcs .9 + + jsr READ.GetByteEsc skip FCS LO + bcs .9 + + jsr READ.GetByte + bcs .9 + + eor #$7E + beq .9 + + sec + +.9 rts +*-------------------------------------- +READ.Sync jsr READ.GetByte + bcs READ.GetByte.RTS + +.1 cmp #$7E + bne READ.Sync + + jsr READ.GetByte + bcs READ.GetByte.RTS + + cmp #$FF + bne .1 + + jsr READ.GetByteEsc + bcs READ.GetByte.RTS + + cmp #$03 + bne .1 +*-------------------------------------- +READ.GetByteEsc jsr READ.GetByte + bcs READ.GetByte.9 + + cmp #$7D + bne READ.GetByte.8 + + jsr READ.GetByte + bcs READ.GetByte.9 + + eor #%00100000 +* clc + rts + +READ.GetByte lda INBUF.CNT + bne READ.GetByte.1 + + lda INBUF.CNT+1 + beq READ.GetByte.9 + + dec INBUF.CNT+1 + +READ.GetByte.1 dec INBUF.CNT + +READ.BUF lda $FFFF SELF MODIFIED + inc READ.BUF+1 + bne READ.GetByte.8 + + inc READ.BUF+2 + + inc INBUF.TAIL+1 + ldy INBUF.TAIL+1 + cpy /INBUF.SIZE + bne READ.GetByte.8 + + stz INBUF.TAIL+1 + ldy INBUF.BASEH + sty READ.BUF+2 + +READ.GetByte.8 clc + rts + +READ.GetByte.9 sec +READ.GetByte.RTS + rts +*-------------------------------------- +READ.SendEchoRep + ldx DEVSLOTn08F + + lda #$7E + jsr WRITE.Byte + + ldy #0 + +.1 lda PPP.EchoRep,y + phy + jsr WRITE.ByteEsc + ply + iny + cpy #PPP.EchoRep.TOTAL + bne .1 + + lda #$7E + jmp WRITE.Byte +*-------------------------------------- +* 7E FF 03 00 21 ... FCS FCS 7E +*-------------------------------------- +WRITE >STYA ZPIOCTL + + ldy #S.IOCTL.BUFPTR + lda (ZPIOCTL),y + clc + adc #S.ETH.EII + sta ZPBufPtr + + iny + + lda (ZPIOCTL),y + adc /S.ETH.EII + sta ZPBufPtr+1 + + iny #S.IOCTL.BYTECNT + + lda (ZPIOCTL),y + sec + sbc #S.ETH.EII + eor #$ff + sta ZPCount + + iny + + lda (ZPIOCTL),y + sbc /S.ETH.EII + eor #$ff + sta ZPCount+1 + + ldx DEVSLOTn08F + + php + sei + + lda SSC.STATUS-$8F,x + bit #SSC.STATUS.nDCD true when 0 + bne .9 + + lda #$ff + sta ZPFCS + sta ZPFCS+1 + + lda #$7E + jsr WRITE.Byte + + lda #$FF + jsr WRITE.ByteEscFCS + + lda #$03 + jsr WRITE.ByteEscFCS + + lda #$00 + jsr WRITE.ByteEscFCS + + lda #$21 + jsr WRITE.ByteEscFCS + +.1 inc ZPCount + bne .2 + + inc ZPCount+1 + beq .8 + +.2 lda (ZPBufPtr) + jsr WRITE.ByteEscFCS + + inc ZPBufPtr + bne .1 + + inc ZPBufPtr+1 + bra .1 + +.8 lda ZPFCS + eor #$ff + jsr WRITE.ByteEsc + + lda ZPFCS+1 + eor #$ff + jsr WRITE.ByteEsc + + lda #$7E + jsr WRITE.Byte + + plp + clc + rts + +.9 lda #MLI.E.IO + plp + sec + rts +*-------------------------------------- +WRITE.ByteEscFCS + pha + eor ZPFCS + tay + lda FCS.LO,y + eor ZPFCS+1 + sta ZPFCS + + lda FCS.HI,y + sta ZPFCS+1 + + pla +*-------------------------------------- +WRITE.ByteEsc cmp #$7D + beq .1 + + cmp #$7E + beq .1 + + cmp #$20 + bcs WRITE.Byte + +* pha +* and #7 +* tay bit mask +* lda ACCM.BIT2MASK,y +* sta .10+1 + +* pla +* pha +* lsr +* lsr +* lsr +* tay +* lda ACCM.OUT,y + +*.10 and #$FF SELF MODIFIED +* beq WRITE.Byte.1 + +* pla + +.1 eor #%00100000 + pha + + lda #$7D + jsr WRITE.Byte + + .HS 89 BIT imm + +WRITE.Byte pha + +WRITE.Byte.1 lda SSC.STATUS-$8F,x + bit #SSC.STATUS.TDRE Register Empty ? + beq WRITE.Byte.1 + + pla + sta SSC.DATA-$8F,x + rts +*-------------------------------------- +STATUS.CONTROL.Init + >STYA ZPIOCTL + + ldy #S.IOCTL.BUFPTR + lda (ZPIOCTL),y + sta ZPBufPtr + iny + lda (ZPIOCTL),y + sta ZPBufPtr+1 + rts +*-------------------------------------- +DRV.CS.END +*-------------------------------------- +DEVSLOTn08F .BS 1 +hINBUF .BS 1 +INBUF.BASEH .BS 1 +INBUF.TAIL .BS 2 +INBUF.HEAD .BS 2 +INBUF.CNT .BS 2 +*-------------------------------------- +DIB .DA #0 + .DA #0,#0,#0 size + >PSTR "SSC/PPP Driver " + .DA #S.DIB.T.NIC + .DA #0 + .DA K.VER +*-------------------------------------- +DCB .DA #S.DCB.T.NIC + .DA #S.DCB.NIC.FLAGS.ARPOFFLOAD + .DA #S.DCB.NIC.LINK.OK+S.DCB.NIC.LINK.FD + .DA #S.DCB.NIC.SPEED.10 + .HS 000A1A123456 MAC +DCB.IP .BS 4 +DCB.MASK .HS FF.FF.FF.FF +DCB.GW .BS 4 +*-------------------------------------- +ACCM.IN .HS 000A0000 +ACCM.OUT .HS FFFFFFFF +*-------------------------------------- +ACCM.BIT2MASK .HS 0102040810204080 +*-------------------------------------- +PPP.EchoRep .HS FF03 + .HS C021 LCP +PPP.EchoRep.DATA + .HS 0A Echo-Reply + .HS FF ID + .DA /PPP.EchoRep.LEN,#PPP.EchoRep.LEN + .HS 05.06.EA4C2B41 MAGIC +PPP.EchoRep.LEN .EQ *-PPP.EchoRep.DATA + .BS 2 FCS +PPP.EchoRep.TOTAL .EQ *-PPP.EchoRep +*-------------------------------------- +FCS.LO .DA #$0000,#$1189,#$2312,#$329b,#$4624,#$57ad,#$6536,#$74bf + .DA #$8c48,#$9dc1,#$af5a,#$bed3,#$ca6c,#$dbe5,#$e97e,#$f8f7 + .DA #$1081,#$0108,#$3393,#$221a,#$56a5,#$472c,#$75b7,#$643e + .DA #$9cc9,#$8d40,#$bfdb,#$ae52,#$daed,#$cb64,#$f9ff,#$e876 + .DA #$2102,#$308b,#$0210,#$1399,#$6726,#$76af,#$4434,#$55bd + .DA #$ad4a,#$bcc3,#$8e58,#$9fd1,#$eb6e,#$fae7,#$c87c,#$d9f5 + .DA #$3183,#$200a,#$1291,#$0318,#$77a7,#$662e,#$54b5,#$453c + .DA #$bdcb,#$ac42,#$9ed9,#$8f50,#$fbef,#$ea66,#$d8fd,#$c974 + .DA #$4204,#$538d,#$6116,#$709f,#$0420,#$15a9,#$2732,#$36bb + .DA #$ce4c,#$dfc5,#$ed5e,#$fcd7,#$8868,#$99e1,#$ab7a,#$baf3 + .DA #$5285,#$430c,#$7197,#$601e,#$14a1,#$0528,#$37b3,#$263a + .DA #$decd,#$cf44,#$fddf,#$ec56,#$98e9,#$8960,#$bbfb,#$aa72 + .DA #$6306,#$728f,#$4014,#$519d,#$2522,#$34ab,#$0630,#$17b9 + .DA #$ef4e,#$fec7,#$cc5c,#$ddd5,#$a96a,#$b8e3,#$8a78,#$9bf1 + .DA #$7387,#$620e,#$5095,#$411c,#$35a3,#$242a,#$16b1,#$0738 + .DA #$ffcf,#$ee46,#$dcdd,#$cd54,#$b9eb,#$a862,#$9af9,#$8b70 + .DA #$8408,#$9581,#$a71a,#$b693,#$c22c,#$d3a5,#$e13e,#$f0b7 + .DA #$0840,#$19c9,#$2b52,#$3adb,#$4e64,#$5fed,#$6d76,#$7cff + .DA #$9489,#$8500,#$b79b,#$a612,#$d2ad,#$c324,#$f1bf,#$e036 + .DA #$18c1,#$0948,#$3bd3,#$2a5a,#$5ee5,#$4f6c,#$7df7,#$6c7e + .DA #$a50a,#$b483,#$8618,#$9791,#$e32e,#$f2a7,#$c03c,#$d1b5 + .DA #$2942,#$38cb,#$0a50,#$1bd9,#$6f66,#$7eef,#$4c74,#$5dfd + .DA #$b58b,#$a402,#$9699,#$8710,#$f3af,#$e226,#$d0bd,#$c134 + .DA #$39c3,#$284a,#$1ad1,#$0b58,#$7fe7,#$6e6e,#$5cf5,#$4d7c + .DA #$c60c,#$d785,#$e51e,#$f497,#$8028,#$91a1,#$a33a,#$b2b3 + .DA #$4a44,#$5bcd,#$6956,#$78df,#$0c60,#$1de9,#$2f72,#$3efb + .DA #$d68d,#$c704,#$f59f,#$e416,#$90a9,#$8120,#$b3bb,#$a232 + .DA #$5ac5,#$4b4c,#$79d7,#$685e,#$1ce1,#$0d68,#$3ff3,#$2e7a + .DA #$e70e,#$f687,#$c41c,#$d595,#$a12a,#$b0a3,#$8238,#$93b1 + .DA #$6b46,#$7acf,#$4854,#$59dd,#$2d62,#$3ceb,#$0e70,#$1ff9 + .DA #$f78f,#$e606,#$d49d,#$c514,#$b1ab,#$a022,#$92b9,#$8330 + .DA #$7bc7,#$6a4e,#$58d5,#$495c,#$3de3,#$2c6a,#$1ef1,#$0f78 +*-------------------------------------- +FCS.HI .DA /$0000,/$1189,/$2312,/$329b,/$4624,/$57ad,/$6536,/$74bf + .DA /$8c48,/$9dc1,/$af5a,/$bed3,/$ca6c,/$dbe5,/$e97e,/$f8f7 + .DA /$1081,/$0108,/$3393,/$221a,/$56a5,/$472c,/$75b7,/$643e + .DA /$9cc9,/$8d40,/$bfdb,/$ae52,/$daed,/$cb64,/$f9ff,/$e876 + .DA /$2102,/$308b,/$0210,/$1399,/$6726,/$76af,/$4434,/$55bd + .DA /$ad4a,/$bcc3,/$8e58,/$9fd1,/$eb6e,/$fae7,/$c87c,/$d9f5 + .DA /$3183,/$200a,/$1291,/$0318,/$77a7,/$662e,/$54b5,/$453c + .DA /$bdcb,/$ac42,/$9ed9,/$8f50,/$fbef,/$ea66,/$d8fd,/$c974 + .DA /$4204,/$538d,/$6116,/$709f,/$0420,/$15a9,/$2732,/$36bb + .DA /$ce4c,/$dfc5,/$ed5e,/$fcd7,/$8868,/$99e1,/$ab7a,/$baf3 + .DA /$5285,/$430c,/$7197,/$601e,/$14a1,/$0528,/$37b3,/$263a + .DA /$decd,/$cf44,/$fddf,/$ec56,/$98e9,/$8960,/$bbfb,/$aa72 + .DA /$6306,/$728f,/$4014,/$519d,/$2522,/$34ab,/$0630,/$17b9 + .DA /$ef4e,/$fec7,/$cc5c,/$ddd5,/$a96a,/$b8e3,/$8a78,/$9bf1 + .DA /$7387,/$620e,/$5095,/$411c,/$35a3,/$242a,/$16b1,/$0738 + .DA /$ffcf,/$ee46,/$dcdd,/$cd54,/$b9eb,/$a862,/$9af9,/$8b70 + .DA /$8408,/$9581,/$a71a,/$b693,/$c22c,/$d3a5,/$e13e,/$f0b7 + .DA /$0840,/$19c9,/$2b52,/$3adb,/$4e64,/$5fed,/$6d76,/$7cff + .DA /$9489,/$8500,/$b79b,/$a612,/$d2ad,/$c324,/$f1bf,/$e036 + .DA /$18c1,/$0948,/$3bd3,/$2a5a,/$5ee5,/$4f6c,/$7df7,/$6c7e + .DA /$a50a,/$b483,/$8618,/$9791,/$e32e,/$f2a7,/$c03c,/$d1b5 + .DA /$2942,/$38cb,/$0a50,/$1bd9,/$6f66,/$7eef,/$4c74,/$5dfd + .DA /$b58b,/$a402,/$9699,/$8710,/$f3af,/$e226,/$d0bd,/$c134 + .DA /$39c3,/$284a,/$1ad1,/$0b58,/$7fe7,/$6e6e,/$5cf5,/$4d7c + .DA /$c60c,/$d785,/$e51e,/$f497,/$8028,/$91a1,/$a33a,/$b2b3 + .DA /$4a44,/$5bcd,/$6956,/$78df,/$0c60,/$1de9,/$2f72,/$3efb + .DA /$d68d,/$c704,/$f59f,/$e416,/$90a9,/$8120,/$b3bb,/$a232 + .DA /$5ac5,/$4b4c,/$79d7,/$685e,/$1ce1,/$0d68,/$3ff3,/$2e7a + .DA /$e70e,/$f687,/$c41c,/$d595,/$a12a,/$b0a3,/$8238,/$93b1 + .DA /$6b46,/$7acf,/$4854,/$59dd,/$2d62,/$3ceb,/$0e70,/$1ff9 + .DA /$f78f,/$e606,/$d49d,/$c514,/$b1ab,/$a022,/$92b9,/$8330 + .DA /$7bc7,/$6a4e,/$58d5,/$495c,/$3de3,/$2c6a,/$1ef1,/$0f78 +*-------------------------------------- +DRV.END +*-------------------------------------- +MAN +SAVE usr/src/drv/pppssc.drv.s.d +LOAD usr/src/drv/pppssc.drv.s +ASM diff --git a/DRV/PPPSSC.DRV.S.E.txt b/DRV/PPPSSC.DRV.S.E.txt new file mode 100644 index 00000000..8e65ee12 --- /dev/null +++ b/DRV/PPPSSC.DRV.S.E.txt @@ -0,0 +1,270 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +PPP.ETCFILE >PUSHW L.ETCFILE + >PUSHBI O.RDONLY + >PUSHBI 0 + >PUSHWZ + >SYSCALL FOpen + bcs .99 + + sta hETCFILE + + >PUSHW L.MSG.ETCFILE + >PUSHW L.ETCFILE + >PUSHBI 2 + >SYSCALL PrintF + +.1 >PUSHB hETCFILE + >PUSHW L.IN.Buf + >PUSHWI 255 + >SYSCALL FGetS + bcs .8 + + lda IN.Buf + beq .1 + + cmp #'#' + beq .1 + + >LDYA L.IN.Buf + >SYSCALL PutS + + lda IN.Buf + cmp #'>' + bne .2 + + >LDYA L.IN.Bufp1 + jsr SSC.Write + bcs .9 + +.10 bra .1 + +.99 rts + +.2 cmp #'?' + bne .7 +*-------------------------------------- +.3 jsr SSC.Read + bcs .9 + + tya + beq .3 + + lda #0 + sta IN.Buf,y + + >LDYA L.IN.Buf + >STYA ZPPtr2 + +.4 jsr PPP.SkipCRLFPtr2 + bcs .3 + + ldy #$ff + +.5 iny + lda IN.Buf+1,y skip ! + beq .10 + +.6 cmp (ZPPtr2),y + beq .5 + + lda (ZPPtr2),y + beq .60 + + cmp #C.CR + beq .60 + + jsr PPP.ETCFILE.ERR1 + bra .9 + +.60 jsr PPP.NextStrPtr2 + lda (ZPPtr2) + bne .4 + +.7 jsr PPP.ETCFILE.ERR2 + bra .9 + +.8 cmp #MLI.E.EOF + sec + bne .9 + + lda #0 + clc + +.9 php + pha + lda hETCFILE + >SYSCALL FClose + pla + plp + + rts +*-------------------------------------- +PPP.SkipCRLFPtr2 +.1 lda (ZPPtr2) + beq .9 + + cmp #C.CR + bne .8 + + ldy #1 + lda (ZPPtr2),y + beq .9 + + cmp #C.LF + bne .2 + + iny + +.2 tya + clc + adc ZPPtr2 + sta ZPPtr2 + bcc .1 + + inc ZPPtr2+1 + bra .1 + +.8 clc + rts + +.9 sec + rts +*-------------------------------------- +PPP.NextStrPtr2 ldy #$ff + +.1 iny + lda (ZPPtr2),y + beq .2 + + cmp #C.CR + bne .1 + +.2 tya + clc + adc ZPPtr2 + sta ZPPtr2 + bcc .8 + + inc ZPPtr2+1 + +.8 rts +*-------------------------------------- +PPP.ETCFILE.ERR1 + >PUSHW L.MSG.UNEXPECTED + >PUSHW L.IN.Buf + bra PPP.ETCFILE.ERR +*-------------------------------------- +PPP.ETCFILE.ERR2 + >PUSHW L.MSG.SYNTAX + >PUSHW L.IN.Buf + +PPP.ETCFILE.ERR >PUSHBI 2 + >SYSCALL PrintF + lda #MLI.E.IO + sec + rts +*-------------------------------------- +SSC.Write >STYA ZPPtr1 + + ldy #$ff + +.10 iny + lda (ZPPtr1),y + bne .10 + + lda #C.CR + sta (ZPPtr1),y + iny + + lda #C.LF + sta (ZPPtr1),y + iny + + sty Len + + php + sei + + ldx DEVSLOTn08F + + ldy #0 + +.1 phy + + ldy #0 + +.2 lda SSC.STATUS-$8F,x + bit #SSC.STATUS.nDCD true when 0 + bne .9 + + bit #SSC.STATUS.TDRE Register Empty ? + bne .3 + + iny + bne .2 + +.9 pla + lda #MLI.E.IO + plp + sec + rts + +.3 ply + + lda (ZPPtr1),y +.6 sta SSC.DATA-$8F,x + iny + cpy Len + bne .1 + + plp + clc + rts +*-------------------------------------- +SSC.Read php + sei + + ldx DEVSLOTn08F + + ldy #0 + +.1 phy + + ldy #0 + +.2 lda SSC.STATUS-$8F,x + bit #SSC.STATUS.nDCD true when 0 + bne .9 + + bit #SSC.STATUS.RDRF incoming char? + bne .3 + + iny + bne .2 + + ply + + plp + clc + rts + +.3 ply + + lda SSC.DATA-$8F,x + sta IN.Buf,y + iny + + bra .1 + +.9 lda #MLI.E.IO + plp + sec + rts +*-------------------------------------- +MAN +SAVE usr/src/drv/pppssc.drv.s.e +LOAD usr/src/drv/pppssc.drv.s +ASM diff --git a/DRV/PPPSSC.DRV.S.txt b/DRV/PPPSSC.DRV.S.txt index 9c83dd3f..668d9ffc 100644 --- a/DRV/PPPSSC.DRV.S.txt +++ b/DRV/PPPSSC.DRV.S.txt @@ -4,15 +4,18 @@ NEW .OP 65C02 .OR $2000 .TF drv/pppssc.drv +*-------------------------------------- +DBG .EQ 0 *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i + .INB inc/kernel.i .INB inc/mli.e.i .INB inc/com.i .INB inc/com.6551.i .INB inc/nic.i -*-------------------------------------- -INBUF.SIZE .EQ $800 + .INB inc/eth.i + .INB inc/libtcpip.i *-------------------------------------- .DUMMY .OR ZPBIN @@ -20,15 +23,15 @@ ZS.START ZPArgsPtr .BS 2 ZPPtr1 .BS 2 ZPPtr2 .BS 2 -ZPBufLen .BS 2 -ZPIOCTL .BS 2 -ZPBufPtr .BS 2 -ZPCount .BS 2 -ZPCount2 .BS 2 -FCS .BS 2 -Len .BS 1 -hETCFILE .BS 1 +ZPPtr3 .BS 2 +ZPBufLen .BS 2 + +FCS .BS 2 +hETCFILE .BS 1 +b7D .BS 1 +Len .BS 1 +bConfigured .BS 1 ZS.END .ED *-------------------------------------- * File Header (16 Bytes) @@ -55,16 +58,42 @@ L.ETCFILE .DA ETCFILE L.MSG.ETCFILE .DA MSG.ETCFILE L.MSG.UNEXPECTED .DA MSG.UNEXPECTED L.MSG.SYNTAX .DA MSG.SYNTAX +L.MSG.LCPInit .DA MSG.LCPInit +L.MSG.LocalIP .DA MSG.LocalIP +L.MSG.RemoteIP .DA MSG.RemoteIP + .DO DBG=1 L.MSG.DUMPBUF .DA MSG.DUMPBUFS .DA MSG.DUMPBUFR L.MSG.HEXDUMP .DA MSG.HEXDUMP -L.PPP.LCPReq .DA PPP.LCPReq + .FIN +L.PPP.ConfReq .DA PPP.ConfReq +L.PPP.EchoRep .DA PPP.EchoRep L.PPP.IPCPReq .DA PPP.IPCPReq -L.FILE.Buf .DA FILE.Buf -L.FILE.Bufp1 .DA FILE.Buf+1 -L.RCV.Buf .DA RCV.Buf -L.RCV.Bufp1 .DA RCV.Buf+1 -L.RCV.Bufp2 .DA RCV.Buf+2 +L.IN.Buf .DA IN.Buf +L.IN.Bufp1 .DA IN.Buf+1 +L.OUT.Buf .DA OUT.Buf +J.LCP .DA LCP.ConfReq + .DA LCP.ConfAck + .DA LCP.ConfNak + .DA LCP.Discard + .DA LCP.Discard + .DA LCP.Discard + .DA LCP.Discard + .DA LCP.Discard + .DA LCP.EchoReq + .DA LCP.Discard + .DA LCP.Discard + .DA LCP.Discard + .DA LCP.Discard + .DA LCP.Discard + .DA LCP.Discard +J.IPCP .DA IPCP.ConfReq + .DA IPCP.ConfAck + .DA IPCP.ConfNak + .DA IPCP.Discard + .DA IPCP.Discard + .DA IPCP.Discard + .DA IPCP.Discard .DA 0 End Of Reloc Table *-------------------------------------- Dev.Detect >STYA ZPArgsPtr @@ -105,7 +134,7 @@ Dev.Detect >STYA ZPArgsPtr lda #MLI.E.NODEV Not Found in any slot, exiting sec rts -*-------------------------------------- + .4 lda ZPPtr1+1 asl asl @@ -114,32 +143,34 @@ Dev.Detect >STYA ZPArgsPtr clc adc #$8F sta DEVSLOTn08F - +*-------------------------------------- jsr SSC.Init - jsr PPP.ETCFILE - bcs .99 - jsr PPP.Init - bcs .99 + jsr PPP.ETCFILE + bcs .9 + + jsr PPP.LCPInit + bcs .9 >PUSHW L.MSG.DETECT.OK >PUSHW L.FD.DEV.NAME >PUSHBI 2 >SYSCALL PrintF + bcs .9 >PUSHWI DRV.END >PUSHWI DRV.CS.END-DRV.CS.START >PUSHWI DRV.CS.START >LDYA L.DRV.CS.START >SYSCALL InsDrv -.99 bcs .9 +.9 bcs .99 >STYA FD.DEV+S.FD.DEV.DRVPTR >PUSHW L.FD.DEV >PUSHW L.FD.DEV.NAME >SYSCALL MKDev - bcs .9 + bcs .99 lda FD.DEV.NAME+3 and #$0F @@ -147,197 +178,35 @@ Dev.Detect >STYA ZPArgsPtr lda #A2osX.S.NIC sta A2osX.S,x - lda #0 - sec +* clc + rts - -.9 ldx DEVSLOTn08F + +.99 ldx DEVSLOTn08F stz SSC.RESET-$8F,x Dev.Detect.RTS rts *-------------------------------------- -PPP.ETCFILE >PUSHW L.ETCFILE - >PUSHBI O.RDONLY - >PUSHBI 0 - >PUSHWZ - >SYSCALL FOpen - bcs Dev.Detect.RTS - - sta hETCFILE - - >PUSHW L.MSG.ETCFILE - >PUSHW L.ETCFILE - >PUSHBI 2 - >SYSCALL PrintF - -.1 >PUSHB hETCFILE - >PUSHW L.FILE.Buf - >PUSHWI 255 - >SYSCALL FGetS - bcs .8 - - lda FILE.Buf - beq .1 - - cmp #'#' - beq .1 - - >LDYA L.FILE.Buf +PPP.LCPInit >LDYA L.MSG.LCPInit >SYSCALL PutS - lda FILE.Buf - cmp #'>' - bne .2 + >LDYA L.PPP.EchoRep Pre calculate EchoRep FCS + jsr PPP.FCS16.Set - >LDYA L.FILE.Bufp1 - jsr SSC.WriteYA - bcs .9 + >LDYA L.PPP.ConfReq + jsr PPP.FCS16.Set -.10 bra .1 - -.2 cmp #'?' - bne .7 -*-------------------------------------- -.3 jsr SSC.Read - bcs .9 - - tya - beq .3 - - lda #0 - sta RCV.Buf,y - - >LDYA L.RCV.Buf - >STYA ZPPtr2 - -.4 jsr PPP.SkipCRLFPtr2 - bcs .3 - - ldy #$ff - -.5 iny - lda FILE.Buf+1,y skip ! - beq .10 - -.6 cmp (ZPPtr2),y - beq .5 - - lda (ZPPtr2),y - beq .60 - - cmp #C.CR - beq .60 - - jsr PPP.ETCFILE.ERR1 - bra .9 - -.60 jsr PPP.NextStrPtr2 - lda (ZPPtr2) - bne .4 - -.7 jsr PPP.ETCFILE.ERR2 - bra .9 - -.8 cmp #MLI.E.EOF - sec - bne .9 - - lda #0 - clc - -.9 php - pha - lda hETCFILE - >SYSCALL FClose - pla - plp - - rts -*-------------------------------------- -PPP.SkipCRLFPtr2 -.1 lda (ZPPtr2) - beq .9 - - cmp #C.CR - bne .8 - - ldy #1 - lda (ZPPtr2),y - beq .9 - - cmp #C.LF - bne .2 - - iny - -.2 tya - clc - adc ZPPtr2 - sta ZPPtr2 - bcc .1 - - inc ZPPtr2+1 - bra .1 - -.8 clc - rts - -.9 sec - rts -*-------------------------------------- -PPP.NextStrPtr2 ldy #$ff - -.1 iny - lda (ZPPtr2),y - beq .2 - - cmp #C.CR - bne .1 - -.2 tya - clc - adc ZPPtr2 - sta ZPPtr2 - bcc .8 - - inc ZPPtr2+1 - -.8 rts -*-------------------------------------- -PPP.ETCFILE.ERR1 - >PUSHW L.MSG.UNEXPECTED - >PUSHW L.RCV.Buf - >PUSHBI 2 - >SYSCALL PrintF - lda #MLI.E.IO - sec - rts -*-------------------------------------- -PPP.ETCFILE.ERR2 - >PUSHW L.MSG.SYNTAX - >PUSHW L.FILE.Buf - >PUSHBI 2 - >SYSCALL PrintF - lda #MLI.E.IO - sec - rts -*-------------------------------------- -PPP.Init >LDYAI PPP.LCPReq.LEN - >STYA ZPBufLen - >LDYA L.PPP.LCPReq - jsr PPPFCS16 - - >LDYA L.PPP.LCPReq + .DO DBG=1 + >LDYA L.PPP.ConfReq ldx #0 - jsr DumpBuf + jsr DumpBuf.PPP + .FIN - >LDYA L.PPP.LCPReq - ldx #PPP.LCPReq.LEN - - jsr SSC.WriteYAX + >LDYA L.PPP.ConfReq + jsr SSC.WritePPP bcs .9 -.1 jsr SSC.Read +.1 jsr SSC.ReadPPP bcs .9 tya @@ -346,42 +215,296 @@ PPP.Init >LDYAI PPP.LCPReq.LEN sty ZPBufLen stz ZPBufLen+1 - >LDYA L.RCV.Buf + .DO DBG=1 + >LDYA L.IN.Buf ldx #2 - jsr DumpBuf + jsr DumpBuf.PPP + .FIN - >LDYAI PPP.IPCPReq.LEN - >STYA ZPBufLen - >LDYA L.PPP.IPCPReq - jsr PPPFCS16 - - >LDYA L.PPP.IPCPReq - ldx #0 - jsr DumpBuf - - >LDYA L.PPP.IPCPReq - ldx #PPP.IPCPReq.LEN - - jsr SSC.WriteYAX + jsr LCP.IN.JUMP bcs .9 -.2 jsr SSC.Read - bcs .9 + bit bConfigured + bpl .1 +* clc + rts - tya - beq .2 +.9 lda #MLI.E.IO +* sec + rts +*-------------------------------------- +LCP.IN.JUMP lda IN.Buf+3 + cmp #$21 + bne LCP.Discard - sty ZPBufLen - stz ZPBufLen+1 + lda IN.Buf+2 + cmp #$C0 + bne .1 - >LDYA L.RCV.Buf - ldx #2 - jsr DumpBuf + lda IN.Buf+4 + beq LCP.Discard + + cmp #16 + bcs LCP.Discard + + asl + tax + jmp (J.LCP-2,x) + +.1 cmp #$80 + bne LCP.Discard + + lda IN.Buf+4 + beq LCP.Discard + + cmp #8 + bcs LCP.Discard + + asl + tax + jmp (J.IPCP-2,x) +*-------------------------------------- +LCP.Discard +IPCP.Discard + clc + rts +*-------------------------------------- +LCP.ConfReq ldy #0 + +.1 lda IN.Buf,y FF03C021 + sta OUT.Buf,y + iny + cpy #4 + bne .1 + + lda #2 Configure-Ack + sta OUT.Buf,y + + iny ID + + lda IN.Buf,y + sta OUT.Buf,y + + iny Len MSB + + lda IN.Buf,y + sta OUT.Buf,y + sta ZPBufLen+1 + + iny Len LSB + + lda IN.Buf,y + sta OUT.Buf,y + sta ZPBufLen sec + sbc #4 minus LEN LEN ... FCS FCS + tax + + iny First option ID + +.2 lda IN.Buf,y + cmp #6 ACCM ? + bne .7 + + phy + phx + + ldx #3 + +.3 lda IN.Buf+2,y + sta ACCM.OUT,x + iny + dex + bpl .3 + + plx + ply + +.7 jsr LCP.Ack.Copy + bne .2 + + lda ZPBufLen + clc + adc #6 + sta ZPBufLen + bcc .8 + + inc ZPBufLen+1 + +.8 >LDYA L.OUT.Buf + jsr PPP.FCS16.Set + + .DO DBG=1 + >LDYA L.OUT.Buf + ldx #0 + jsr DumpBuf.PPP + .FIN + + >LDYA L.OUT.Buf + jmp SSC.WritePPP +*-------------------------------------- +LCP.Ack.Copy txa + sec + sbc IN.Buf+1,y + + pha + + ldx IN.Buf+1,y + +.1 lda IN.Buf,y + sta OUT.Buf,y + iny + dex + bne .1 + + plx + rts +*-------------------------------------- +LCP.Ack.Next txa + sec + sbc IN.Buf+1,y + tax + + tya + clc + adc IN.Buf+1,y + tay + + rts +*-------------------------------------- +LCP.ConfAck >LDYA L.PPP.IPCPReq + jsr PPP.FCS16.Set + + .DO DBG=1 + >LDYA L.PPP.IPCPReq + ldx #0 + jsr DumpBuf.PPP + .FIN + + >LDYA L.PPP.IPCPReq + jmp SSC.WritePPP +*-------------------------------------- +LCP.ConfNak + + clc + rts +*-------------------------------------- +LCP.EchoReq .DO DBG=1 + >LDYA L.PPP.EchoRep + ldx #0 + jsr DumpBuf.PPP + .FIN + + >LDYA L.PPP.EchoRep + jmp SSC.WritePPP +*-------------------------------------- +IPCP.ConfReq ldy #0 + +.1 lda IN.Buf,y FF038021 + sta OUT.Buf,y + iny + cpy #4 + bne .1 + + lda #2 Configure-Ack + sta OUT.Buf,y + + iny ID + + lda IN.Buf,y + sta OUT.Buf,y + + iny Len MSB + + lda IN.Buf,y + sta OUT.Buf,y + sta ZPBufLen+1 + + iny Len LSB + + lda IN.Buf,y + sta OUT.Buf,y + sta ZPBufLen + + sec + sbc #4 minus LEN LEN ... FCS FCS + tax + + iny First option ID + +.2 lda IN.Buf,y + cmp #3 IP ADDR ? + bne .7 + + phy + phx + + >PUSHW L.MSG.RemoteIP + + ldx #0 + +.3 lda IN.Buf+2,y + sta DCB.GW,x + >PUSHA + iny + inx + cpx #4 + bne .3 + + >PUSHBI 4 + >SYSCALL PrintF + + plx + ply + +.7 jsr LCP.Ack.Copy + bne .2 + + lda ZPBufLen + clc + adc #6 + sta ZPBufLen + bcc .8 + + inc ZPBufLen+1 + +.8 >LDYA L.OUT.Buf + jsr PPP.FCS16.Set + + .DO DBG=1 + >LDYA L.OUT.Buf + ldx #0 + jsr DumpBuf.PPP + .FIN + + >LDYA L.OUT.Buf + jmp SSC.WritePPP +*-------------------------------------- +IPCP.ConfAck sec + ror bConfigured * clc -.9 rts + rts +*-------------------------------------- +IPCP.ConfNak ldy #10 + ldx #0 + + >PUSHW L.MSG.LocalIP + +.1 lda IN.Buf,y + sta PPP.IPCPReq,y + sta DCB.IP,x + >PUSHA + inx + iny + cpy #14 + bne .1 + + >PUSHBI 4 + >SYSCALL PrintF + + jmp LCP.ConfAck *-------------------------------------- SSC.Init ldx DEVSLOTn08F stz SSC.RESET-$8F,x @@ -395,66 +518,89 @@ SSC.Init ldx DEVSLOTn08F lda SSC.STATUS-$8F,x clear any IRQ pending rts *-------------------------------------- -SSC.WriteYA >STYA ZPPtr1 +SSC.WritePPP >STYA ZPPtr1 - ldy #$ff + ldy #7 + lda (ZPPtr1),y Len LO + clc + adc #6 + eor #$ff + sta ZPPtr3 -.1 iny - lda (ZPPtr1),y - bne .1 + dey + lda (ZPPtr1),y Len HI + adc #0 + eor #$ff + sta ZPPtr3+1 - lda #C.CR - sta (ZPPtr1),y - iny - - lda #C.LF - sta (ZPPtr1),y - iny - - sty Len - - bra SSC.Write - -SSC.WriteYAX >STYA ZPPtr1 - stx Len - -SSC.Write php + php sei ldx DEVSLOTn08F ldy #0 -.1 phy - - ldy #0 - -.2 lda SSC.STATUS-$8F,x +.1 lda SSC.STATUS-$8F,x bit #SSC.STATUS.nDCD true when 0 bne .9 bit #SSC.STATUS.TDRE Register Empty ? - bne .3 - - iny bne .2 -.9 pla - lda #MLI.E.IO + iny + bne .1 + +.9 lda #MLI.E.IO + plp sec rts -.3 ply +.2 lda #$7E + sta SSC.DATA-$8F,x + +.3 inc ZPPtr3 + bne .31 + + inc ZPPtr3+1 + beq .8 + + +.31 lda SSC.STATUS-$8F,x + bit #SSC.STATUS.TDRE + beq .3 lda (ZPPtr1),y - pha - and #$7F - cmp #C.XON + cmp #$7D beq .4 - cmp #C.XOFF - bne .6 + cmp #$7E + beq .4 + + cmp #$20 + bcs .6 + + phx + phy + + and #7 + tax bit in byte + + lda (ZPPtr1),y + lsr + lsr + lsr + tay + + lda ACCM.OUT,y + and ACCM.BIT2MASK,x + cmp #1 + + ply + plx + + lda (ZPPtr1),y + bcc .6 .4 lda #$7D sta SSC.DATA-$8F,x @@ -463,31 +609,33 @@ SSC.Write php bit #SSC.STATUS.TDRE beq .5 - pla - ora #$20 - .HS F0 BEQ + lda (ZPPtr1),y + eor #%00100000 -.6 pla - - sta SSC.DATA-$8F,x +.6 sta SSC.DATA-$8F,x iny - cpy Len - bne .1 + bne .3 + inc ZPPtr1+1 + bra .3 +.8 lda SSC.STATUS-$8F,x + bit #SSC.STATUS.TDRE + beq .8 + + lda #$7E + sta SSC.DATA-$8F,x plp clc rts *-------------------------------------- -SSC.Read php +SSC.ReadPPP php sei ldx DEVSLOTn08F - ldy #0 - -.1 phy +.1 stz b7D ldy #0 @@ -501,75 +649,85 @@ SSC.Read php iny bne .2 - ply - - plp +.8 plp clc rts -.3 ply +.3 lda SSC.DATA-$8F,x + bit b7D + bmi .4 + + cmp #$7E + bne .4 + + ror b7D + bra .1 + +.4 cmp #$FF + bne .1 + + sta IN.Buf + ldy #1 + stz b7D + +.5 lda SSC.STATUS-$8F,x + bit #SSC.STATUS.nDCD true when 0 + bne .9 + + bit #SSC.STATUS.RDRF incoming char? + beq .5 lda SSC.DATA-$8F,x - sta RCV.Buf,y - iny + bit b7D + bmi .6 - bra .1 + cmp #$7D + bne .7 + + ror b7D + bra .5 + +.6 stz b7D + eor #%00100000 + sta IN.Buf,y + iny + bra .5 + +.7 cmp #$7E + beq .8 + + sta IN.Buf,y + iny + bra .5 .9 lda #MLI.E.IO plp sec rts *-------------------------------------- -DumpBuf >STYA ZPPtr1 + .DO DBG=1 +DumpBuf.PPP >STYA ZPPtr1 + + stz ZPPtr2 + stz ZPPtr2+1 + + ldy #7 + lda (ZPPtr1),y Len LO + clc + adc #6 + sta ZPPtr3 + + dey + lda (ZPPtr1),y Len HI + adc #0 + sta ZPPtr3+1 >PUSHW L.MSG.DUMPBUF,x - >PUSHW ZPBufLen + >PUSHW ZPPtr3 >PUSHBI 2 >SYSCALL PrintF bcs .9 - lda (ZPPtr1) - cmp #$0D - bne DumpBuf.PPP - - lda ZPBufLen - eor #$ff - sta ZPBufLen - lda ZPBufLen+1 - eor #$ff - sta ZPBufLen+1 - -.1 inc ZPBufLen - bne .2 - - inc ZPBufLen+1 - beq .9 - -.2 lda (ZPPtr1) - inc ZPPtr1 - bne .3 - - inc ZPPtr1+1 - -.3 cmp #$0D - beq .4 - - cmp #$0A - beq .4 - - cmp #C.SPACE - bcs .4 - - ora #$20 - -.4 >SYSCALL PutChar - bcc .1 - -.9 rts - -DumpBuf.PPP stz ZPPtr2 - stz ZPPtr2+1 - .1 >PUSHW L.MSG.HEXDUMP >PUSHW ZPPtr2 @@ -577,73 +735,83 @@ DumpBuf.PPP stz ZPPtr2 .2 >PUSHB (ZPPtr1),y iny - cpy #8 + cpy #16 bne .2 - >PUSHBI 10 + >PUSHBI 18 >SYSCALL PrintF bcs .9 lda ZPPtr1 - adc #8 + adc #16 sta ZPPtr1 lda ZPPtr1+1 adc #0 sta ZPPtr1+1 lda ZPPtr2 - adc #8 + adc #16 sta ZPPtr2 lda ZPPtr2+1 adc #0 sta ZPPtr2+1 - lda ZPBufLen + lda ZPPtr3 sec - sbc #8 - sta ZPBufLen - lda ZPBufLen+1 + sbc #16 + sta ZPPtr3 + lda ZPPtr3+1 sbc #0 - sta ZPBufLen+1 + sta ZPPtr3+1 bcc .9 - ora ZPBufLen + ora ZPPtr3 bne .1 clc .9 rts + .FIN *-------------------------------------- -PPPFCS16 >STYA ZPPtr1 +PPP.FCS16.Check sec + .HS 90 BCC +PPP.FCS16.Set clc + php + + >STYA ZPPtr1 lda #$ff sta FCS sta FCS+1 - lda ZPBufLen - sec - sbc #4 minus 7E .... FCS FCS 7E + ldy #7 + lda (ZPPtr1),y Len LO + clc + adc #4 add FF 00 XX XX but dont include FCS FCS eor #$ff sta ZPPtr2 - lda ZPBufLen+1 - sbc #0 + dey + lda (ZPPtr1),y Len HI + adc #0 eor #$ff sta ZPPtr2+1 + ldy #0 + .1 inc ZPPtr2 bne .2 inc ZPPtr2+1 - beq .8 + beq .7 -.2 inc ZPPtr1 skip First 7E +.2 lda (ZPPtr1),y + iny bne .3 inc ZPPtr1+1 -.3 lda (ZPPtr1) - eor FCS +.3 eor FCS tax lda FCS.LO,x @@ -655,84 +823,39 @@ PPPFCS16 >STYA ZPPtr1 bra .1 -.8 lda FCS+1 - eor #$ff - ldy #1 - sta (ZPPtr1),y +.7 plp + bcc .8 CC = set lda FCS eor #$ff + eor (ZPPtr1),y + bne .9 + iny + + lda FCS+1 + eor #$ff + eor (ZPPtr1),y + bne .9 + + clc + rts + +.8 lda FCS + eor #$ff sta (ZPPtr1),y - rts + iny + + lda FCS+1 + eor #$ff + sta (ZPPtr1),y + +.9 rts +*-------------------------------------- + .INB usr/src/drv/pppssc.drv.s.e *-------------------------------------- CS.END -FCS.LO .DA #$0000,#$1189,#$2312,#$329b,#$4624,#$57ad,#$6536,#$74bf - .DA #$8c48,#$9dc1,#$af5a,#$bed3,#$ca6c,#$dbe5,#$e97e,#$f8f7 - .DA #$1081,#$0108,#$3393,#$221a,#$56a5,#$472c,#$75b7,#$643e - .DA #$9cc9,#$8d40,#$bfdb,#$ae52,#$daed,#$cb64,#$f9ff,#$e876 - .DA #$2102,#$308b,#$0210,#$1399,#$6726,#$76af,#$4434,#$55bd - .DA #$ad4a,#$bcc3,#$8e58,#$9fd1,#$eb6e,#$fae7,#$c87c,#$d9f5 - .DA #$3183,#$200a,#$1291,#$0318,#$77a7,#$662e,#$54b5,#$453c - .DA #$bdcb,#$ac42,#$9ed9,#$8f50,#$fbef,#$ea66,#$d8fd,#$c974 - .DA #$4204,#$538d,#$6116,#$709f,#$0420,#$15a9,#$2732,#$36bb - .DA #$ce4c,#$dfc5,#$ed5e,#$fcd7,#$8868,#$99e1,#$ab7a,#$baf3 - .DA #$5285,#$430c,#$7197,#$601e,#$14a1,#$0528,#$37b3,#$263a - .DA #$decd,#$cf44,#$fddf,#$ec56,#$98e9,#$8960,#$bbfb,#$aa72 - .DA #$6306,#$728f,#$4014,#$519d,#$2522,#$34ab,#$0630,#$17b9 - .DA #$ef4e,#$fec7,#$cc5c,#$ddd5,#$a96a,#$b8e3,#$8a78,#$9bf1 - .DA #$7387,#$620e,#$5095,#$411c,#$35a3,#$242a,#$16b1,#$0738 - .DA #$ffcf,#$ee46,#$dcdd,#$cd54,#$b9eb,#$a862,#$9af9,#$8b70 - .DA #$8408,#$9581,#$a71a,#$b693,#$c22c,#$d3a5,#$e13e,#$f0b7 - .DA #$0840,#$19c9,#$2b52,#$3adb,#$4e64,#$5fed,#$6d76,#$7cff - .DA #$9489,#$8500,#$b79b,#$a612,#$d2ad,#$c324,#$f1bf,#$e036 - .DA #$18c1,#$0948,#$3bd3,#$2a5a,#$5ee5,#$4f6c,#$7df7,#$6c7e - .DA #$a50a,#$b483,#$8618,#$9791,#$e32e,#$f2a7,#$c03c,#$d1b5 - .DA #$2942,#$38cb,#$0a50,#$1bd9,#$6f66,#$7eef,#$4c74,#$5dfd - .DA #$b58b,#$a402,#$9699,#$8710,#$f3af,#$e226,#$d0bd,#$c134 - .DA #$39c3,#$284a,#$1ad1,#$0b58,#$7fe7,#$6e6e,#$5cf5,#$4d7c - .DA #$c60c,#$d785,#$e51e,#$f497,#$8028,#$91a1,#$a33a,#$b2b3 - .DA #$4a44,#$5bcd,#$6956,#$78df,#$0c60,#$1de9,#$2f72,#$3efb - .DA #$d68d,#$c704,#$f59f,#$e416,#$90a9,#$8120,#$b3bb,#$a232 - .DA #$5ac5,#$4b4c,#$79d7,#$685e,#$1ce1,#$0d68,#$3ff3,#$2e7a - .DA #$e70e,#$f687,#$c41c,#$d595,#$a12a,#$b0a3,#$8238,#$93b1 - .DA #$6b46,#$7acf,#$4854,#$59dd,#$2d62,#$3ceb,#$0e70,#$1ff9 - .DA #$f78f,#$e606,#$d49d,#$c514,#$b1ab,#$a022,#$92b9,#$8330 - .DA #$7bc7,#$6a4e,#$58d5,#$495c,#$3de3,#$2c6a,#$1ef1,#$0f78 -*-------------------------------------- -FCS.HI .DA /$0000,/$1189,/$2312,/$329b,/$4624,/$57ad,/$6536,/$74bf - .DA /$8c48,/$9dc1,/$af5a,/$bed3,/$ca6c,/$dbe5,/$e97e,/$f8f7 - .DA /$1081,/$0108,/$3393,/$221a,/$56a5,/$472c,/$75b7,/$643e - .DA /$9cc9,/$8d40,/$bfdb,/$ae52,/$daed,/$cb64,/$f9ff,/$e876 - .DA /$2102,/$308b,/$0210,/$1399,/$6726,/$76af,/$4434,/$55bd - .DA /$ad4a,/$bcc3,/$8e58,/$9fd1,/$eb6e,/$fae7,/$c87c,/$d9f5 - .DA /$3183,/$200a,/$1291,/$0318,/$77a7,/$662e,/$54b5,/$453c - .DA /$bdcb,/$ac42,/$9ed9,/$8f50,/$fbef,/$ea66,/$d8fd,/$c974 - .DA /$4204,/$538d,/$6116,/$709f,/$0420,/$15a9,/$2732,/$36bb - .DA /$ce4c,/$dfc5,/$ed5e,/$fcd7,/$8868,/$99e1,/$ab7a,/$baf3 - .DA /$5285,/$430c,/$7197,/$601e,/$14a1,/$0528,/$37b3,/$263a - .DA /$decd,/$cf44,/$fddf,/$ec56,/$98e9,/$8960,/$bbfb,/$aa72 - .DA /$6306,/$728f,/$4014,/$519d,/$2522,/$34ab,/$0630,/$17b9 - .DA /$ef4e,/$fec7,/$cc5c,/$ddd5,/$a96a,/$b8e3,/$8a78,/$9bf1 - .DA /$7387,/$620e,/$5095,/$411c,/$35a3,/$242a,/$16b1,/$0738 - .DA /$ffcf,/$ee46,/$dcdd,/$cd54,/$b9eb,/$a862,/$9af9,/$8b70 - .DA /$8408,/$9581,/$a71a,/$b693,/$c22c,/$d3a5,/$e13e,/$f0b7 - .DA /$0840,/$19c9,/$2b52,/$3adb,/$4e64,/$5fed,/$6d76,/$7cff - .DA /$9489,/$8500,/$b79b,/$a612,/$d2ad,/$c324,/$f1bf,/$e036 - .DA /$18c1,/$0948,/$3bd3,/$2a5a,/$5ee5,/$4f6c,/$7df7,/$6c7e - .DA /$a50a,/$b483,/$8618,/$9791,/$e32e,/$f2a7,/$c03c,/$d1b5 - .DA /$2942,/$38cb,/$0a50,/$1bd9,/$6f66,/$7eef,/$4c74,/$5dfd - .DA /$b58b,/$a402,/$9699,/$8710,/$f3af,/$e226,/$d0bd,/$c134 - .DA /$39c3,/$284a,/$1ad1,/$0b58,/$7fe7,/$6e6e,/$5cf5,/$4d7c - .DA /$c60c,/$d785,/$e51e,/$f497,/$8028,/$91a1,/$a33a,/$b2b3 - .DA /$4a44,/$5bcd,/$6956,/$78df,/$0c60,/$1de9,/$2f72,/$3efb - .DA /$d68d,/$c704,/$f59f,/$e416,/$90a9,/$8120,/$b3bb,/$a232 - .DA /$5ac5,/$4b4c,/$79d7,/$685e,/$1ce1,/$0d68,/$3ff3,/$2e7a - .DA /$e70e,/$f687,/$c41c,/$d595,/$a12a,/$b0a3,/$8238,/$93b1 - .DA /$6b46,/$7acf,/$4854,/$59dd,/$2d62,/$3ceb,/$0e70,/$1ff9 - .DA /$f78f,/$e606,/$d49d,/$c514,/$b1ab,/$a022,/$92b9,/$8330 - .DA /$7bc7,/$6a4e,/$58d5,/$495c,/$3de3,/$2c6a,/$1ef1,/$0f78 *-------------------------------------- DEVSIG.Offset .HS 05070B0C DEVSIG.Value .HS 38180131 @@ -745,9 +868,14 @@ ETCFILE .AZ "${ROOT}etc/ppp.conf" MSG.ETCFILE .AZ "Executing %s File...\r\n" MSG.UNEXPECTED .AZ "\r\nERR:Unexpected reply From Modem\r\n{%s}\r\n" MSG.SYNTAX .AZ "\r\nERR:Bad Syntax In ppp.conf\r\n{%s}\r\n" -MSG.DUMPBUFS .AZ "Send:%H\r\n" -MSG.DUMPBUFR .AZ "Recv:%H\r\n" -MSG.HEXDUMP .AZ "%H:%h %h %h %h %h %h %h %h\r\n" +MSG.LCPInit .AZ "LCP/IPCP Negotiation..." +MSG.LocalIP .AZ "Local IP is %d.%d.%d.%d\r\n" +MSG.RemoteIP .AZ "Remote IP is %d.%d.%d.%d\r\n" + .DO DBG=1 +MSG.DUMPBUFS .AZ ">>Send:%H\r\n" +MSG.DUMPBUFR .AZ "Recv<<:%H\r\n" +MSG.HEXDUMP .AZ "%H:%h %h %h %h %h %h %h %h:%h %h %h %h %h %h %h %h\r\n" + .FIN *-------------------------------------- FD.DEV .DA #S.FD.T.CDEV .DA #0 HANDLER @@ -759,410 +887,37 @@ FD.DEV .DA #S.FD.T.CDEV .DA 0 BUFPTR FD.DEV.NAME .AZ "eth1" *-------------------------------------- -PPP.LCPReq .HS 7E -PPP.LCPReq.START - .HS FF03 +PPP.ConfReq .HS FF03 .HS C021 LCP -PPP.LCPReq.DATA .HS 01 Configure-Request - .HS 01 ID - .DA /PPP.LCPReq.DATA.LEN,#PPP.LCPReq.DATA.LEN - .HS 01.04 MRU - .DA /576,#576 +PPP.ConfReq.DATA + .HS 01 Configure-Request + .HS FF ID + .DA /PPP.ConfReq.LEN,#PPP.ConfReq.LEN +* .HS 01.04 MRU +* .DA /1400,#1400 .HS 02.06.000A0000 ACCM - .HS 05.06.002A2B78 MAGIC + .HS 05.06.EA4C2B41 MAGIC * .HS 07.02 * .HS 08.02 -PPP.LCPReq.DATA.LEN .EQ *-PPP.LCPReq.DATA -* .HS 0000 PADDING +PPP.ConfReq.LEN .EQ *-PPP.ConfReq.DATA .BS 2 FCS - .HS 7E -PPP.LCPReq.LEN .EQ *-PPP.LCPReq *-------------------------------------- -PPP.IPCPReq .HS 7E -PPP.IPCPReq.START - .HS FF03 +PPP.IPCPReq .HS FF03 .HS 8021 IPCP -PPP.IPCPReq.DATA .HS 01 Configure-Request - .HS 01 ID - .DA /PPP.IPCPReq.DATA.LEN,#PPP.IPCPReq.DATA.LEN +PPP.IPCPReq.DATA + .HS 01 Configure-Request + .HS FF ID + .DA /PPP.IPCPReq.LEN,#PPP.IPCPReq.LEN +* .HS 02.06.00.2D.0F.00 VJ .HS 03.06.00.00.00.00 IP Address -PPP.IPCPReq.DATA.LEN .EQ *-PPP.IPCPReq.DATA -* .HS 0000 PADDING +PPP.IPCPReq.LEN .EQ *-PPP.IPCPReq.DATA .BS 2 FCS - .HS 7E -PPP.IPCPReq.LEN .EQ *-PPP.IPCPReq *-------------------------------------- -FILE.Buf .BS 256 -RCV.Buf .BS 256 +IN.Buf .BS 256 +OUT.Buf .BS 256 *-------------------------------------- -* Driver Code + .INB usr/src/drv/pppssc.drv.s.d *-------------------------------------- -DRV.CS.START cld - jmp (.1,x) -.1 .DA STATUS - .DA A2osX.BADCALL - .DA A2osX.BADCALL - .DA A2osX.BADCALL - .DA CONTROL - .DA A2osX.BADCALL - .DA OPEN - .DA CLOSE - .DA READ - .DA WRITE - .DA IRQ - .DA 0 end or relocation -*-------------------------------------- -STATUS jsr STATUS.CONTROL.Init - ldy #S.IOCTL.S - lda (ZPIOCTL),y - beq .1 - - cmp #S.IOCTL.S.GETDIB - bne STATUS.DCB - - ldy #S.DIB-1 - .HS 2C bit abs -.1 ldy #3 - -.2 lda DIB,y - sta (ZPBufPtr),y - dey - bpl .2 - - clc - rts - -STATUS.DCB cmp #S.IOCTL.S.GETDCB - bne .3 - - ldy #S.DCB.COM-1 -.2 lda DCB,y - sta (ZPBufPtr),y - dey - bpl .2 - - clc - rts - -.3 cmp #S.IOCTL.S.EOF - bne STATUS.9 - - lda DIB+S.DIB.S - and #S.DIB.S.OPENED - beq OPEN.E - - lda INBUF.TAIL - eor INBUF.HEAD - bne .8 NO DATA? eof = TRUE - - lda INBUF.TAIL+1 - eor INBUF.HEAD+1 - bne .8 - - lda #1 - clc - rts - -.8 lda #0 - clc - rts - -STATUS.9 lda #MLI.E.BADCTL - sec - rts -*-------------------------------------- -CONTROL jsr STATUS.CONTROL.Init - - ldy #S.IOCTL.C - lda (ZPIOCTL),y - cmp #S.IOCTL.C.SETDCB - bne STATUS.9 - - ldy #S.DCB.COM-1 - -.2 lda (ZPBufPtr),y - sta DCB,y - dey - bpl .2 -*-------------------------------------- -OPEN lda DIB+S.DIB.S - bit #S.DIB.S.OPENED - beq OPEN.1 - -OPEN.E lda #MLI.E.OPEN - sec - rts - -OPEN.1 >LDYAI INBUF.SIZE - >SYSCALL2 GetMem - bcs .9 - - stx hINBUF - >STYA INBUF.PTR - >STYA READ.BUF+1 - >STYA IRQ.BUF+1 - - stz INBUF.TAIL - stz INBUF.TAIL+1 - stz INBUF.HEAD - stz INBUF.HEAD+1 - stz INBUF.CNT - stz INBUF.CNT+1 - - php - sei - ldx DEVSLOTn08F - stz SSC.RESET-$8F,x - - lda #SSC.CTL.CLKINT+SSC.CTL.B115200+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP - sta SSC.CTL-$8F,x - lda #SSC.CMD.TE+SSC.CMD.DTR - sta SSC.CMD-$8F,x - - lda SSC.DATA-$8F,x discard any garbage byte - lda SSC.STATUS-$8F,x clear any IRQ pending - - lda #S.DIB.S.OPENED - tsb DIB+S.DIB.S - - plp - clc -.9 rts -*-------------------------------------- -CLOSE php - sei - ldx DEVSLOTn08F - stz SSC.RESET-$8F,x - - lda #S.DIB.S.OPENED - trb DIB+S.DIB.S - - lda hINBUF - >SYSCALL2 FreeMem - - plp - clc - rts -*-------------------------------------- -READ php - sei - jsr READ.WRITE.Init - - lda INBUF.CNT - ora INBUF.CNT+1 - beq READ.9 - - stz ZPCount2 - stz ZPCount2+1 - - ldy INBUF.TAIL - -READ.1 inc ZPCount - bne READ.BUF - - inc ZPCount+1 - beq READ.8 - -READ.BUF lda $FFFF,y SELF MODIFIED - sta (ZPBufPtr) - inc ZPBufPtr - bne .1 - - inc ZPBufPtr+1 - -.1 inc ZPCount2 - bne .2 - - inc ZPCount2+1 - -.2 iny - bne .3 - - inc READ.BUF+2 - - inc INBUF.TAIL+1 - lda INBUF.TAIL+1 - cmp /INBUF.SIZE - bne .3 - - lda INBUF.PTR+1 - sta READ.BUF+2 - -.3 lda INBUF.CNT - ldx INBUF.CNT+1 - clc - sbc #0 - bcs .4 - dex - bmi .8 - - stx INBUF.CNT+1 - -.4 sta INBUF.CNT - bra READ.1 - -.8 sty INBUF.TAIL - -READ.8 lda ZPCount2 - ldy #S.IOCTL.BYTECNT - sta (ZPIOCTL),y - iny - lda ZPCount2+1 - sta (ZPIOCTL),y - - plp - clc - rts - -READ.9 lda SSC.STATUS-$8F,x - bit #SSC.STATUS.nDCD true when 0 - beq .99 - - lda #MLI.E.IO - .HS 2C BIT ABS - -.99 lda #E.NODATA - plp - sec - rts -*-------------------------------------- -WRITE php - sei - jsr READ.WRITE.Init - - lda SSC.STATUS-$8F,x - bit #SSC.STATUS.nDCD true when 0 - bne .9 - - ldy #0 - -.1 inc ZPCount - bne .2 - - inc ZPCount+1 - beq .8 - -.2 lda SSC.STATUS-$8F,x - and #SSC.STATUS.TDRE Register Empty ? - beq .2 - - lda (ZPBufPtr),y - sta SSC.DATA-$8F,x - iny - bne .1 - - inc ZPBufPtr+1 - bra .1 - -.8 plp - clc - rts - -.9 lda #MLI.E.IO - plp - sec - rts -*-------------------------------------- -READ.WRITE.Init ldx DEVSLOTn08F - -STATUS.CONTROL.Init - >STYA ZPIOCTL - - ldy #S.IOCTL.BUFPTR - lda (ZPIOCTL),y - sta ZPBufPtr - - iny - - lda (ZPIOCTL),y - sta ZPBufPtr+1 - iny #S.IOCTL.BYTECNT - - lda (ZPIOCTL),y - eor #$ff - sta ZPCount - - iny - - lda (ZPIOCTL),y - eor #$ff - sta ZPCount+1 - rts -*-------------------------------------- -* IRQ Handler -* on exit, CC if handled -*-------------------------------------- -IRQ ldx DEVSLOTn08F - lda SSC.STATUS-$8F,x -* and #SSC.STATUS.IRQ - bpl IRQ.9 IRQ from this device ? no, exit !!!!Applewin bug #308!!!! - - bit #SSC.STATUS.RDRF incoming char? - beq IRQ.8 - - ldy INBUF.HEAD - -IRQ.1 lda SSC.DATA-$8F,x read data to clear IRQ -IRQ.BUF sta $FFFF,y SELF MODIFIED - - inc INBUF.CNT - bne .1 - - inc INBUF.CNT+1 - -.1 iny - bne .2 - - inc IRQ.BUF+2 - - inc INBUF.HEAD+1 - lda INBUF.HEAD+1 - cmp /INBUF.SIZE - bne .2 - - lda INBUF.PTR+1 - sta IRQ.BUF+2 - - lda #0 - -.2 bit SSC.STATUS-$8F,x - bmi IRQ.1 - - inc - bne .2 - - sty INBUF.HEAD - -IRQ.8 clc - rts - -IRQ.9 sec - rts -*-------------------------------------- -DRV.CS.END -*-------------------------------------- -DEVSLOTn08F .BS 1 -hINBUF .BS 1 -INBUF.PTR .BS 2 -INBUF.TAIL .BS 2 -INBUF.HEAD .BS 2 -INBUF.CNT .BS 2 -*-------------------------------------- -DIB .DA #S.DIB.S.IRQ - .DA #0,#0,#0 size - >PSTR "SSC/PPP Driver " - .DA #S.DIB.T.NIC - .DA #0 - .DA K.VER -*-------------------------------------- -DCB .DA #S.DCB.T.NIC - .DA #S.DCB.NIC.FLAGS.ARPOFFLOAD - .DA #S.DCB.NIC.LINK.OK+S.DCB.NIC.LINK.FD - .DA #S.DCB.NIC.SPEED.10 - .HS 000000000000 MAC - .BS 12 IP/MASK/GW -*-------------------------------------- -DRV.END MAN SAVE usr/src/drv/pppssc.drv.s ASM diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 573310e8..dca09000 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -25,7 +25,7 @@ PSCTX.SIZE .EQ $100-pCode A2osX.ZCALL .EQ $0000 *-------------------------------------- * A2osX GLOBAL PAGE -* $BC00->$BC0F : Public Vetors +* $BC00->$BC0F : Public Vectors *-------------------------------------- A2osX.SYSCALL .EQ $BC00 A2osX.LIBCALL .EQ $BC03 diff --git a/INC/LIBTUI.I.txt b/INC/LIBTUI.I.txt index 6e36d1a2..285c9654 100644 --- a/INC/LIBTUI.I.txt +++ b/INC/LIBTUI.I.txt @@ -1,38 +1,57 @@ NEW AUTO 3,1 *-------------------------------------- -LIBTUI.Open .EQ 4 -LIBTUI.Close .EQ 6 -LIBTUI.LBOXNew .EQ 8 +LIBTUI.Init .EQ 4 +LIBTUI.GetEvent .EQ 6 +LIBTUI.Dispatch .EQ 8 +LIBTUI.Close .EQ 10 +LIBTUI.New .EQ 12 +LIBTUI.Destroy .EQ 14 +LIBTUI.Run .EQ 16 +LIBTUI.Draw .EQ 18 +LIBTUI.GetProp .EQ 20 +LIBTUI.SetProp .EQ 22 +LIBTUI.Activate .EQ 24 +LIBTUI.Deactivate .EQ 26 *-------------------------------------- S.OBJ.T .EQ 0 S.OBJ.T.SCRN .EQ 0 -S.OBJ.T.LBOX .EQ 2 -S.OBJ.P .EQ 1 -S.OBJ.F .EQ 2 +S.OBJ.T.TBOX .EQ 2 +S.OBJ.T.LBOX .EQ 4 +S.OBJ.F .EQ 1 S.OBJ.F.bTITLE .EQ %10000000 S.OBJ.F.bMENU .EQ %01000000 S.OBJ.F.bSTATUS .EQ %00100000 S.OBJ.F.bHBorder .EQ %00010000 S.OBJ.F.bVBorder .EQ %00001000 +S.OBJ.F.bHScroll .EQ %00000100 +S.OBJ.F.bVScroll .EQ %00000010 +S.OBJ.F.bCursor .EQ %00000001 +S.OBJ.P .EQ 2 S.OBJ.S .EQ 3 -S.OBJ.S.bVISIBLE .EQ %10000000 -S.OBJ.S.bACTIVE .EQ %01000000 +S.OBJ.S.bACTIVE .EQ %10000000 +S.OBJ.S.bVISIBLE .EQ %01000000 S.OBJ.X1 .EQ 4 S.OBJ.Y1 .EQ 5 S.OBJ.W .EQ 6 S.OBJ.H .EQ 7 +*-------------------------------------- S.OBJ.X2 .EQ 8 S.OBJ.Y2 .EQ 9 -S.OBJ.pTITLE .EQ 10 -S.OBJ.pMENU .EQ 12 -S.OBJ.pSTATUS .EQ 14 +S.OBJ.InnerX .EQ 10 +S.OBJ.InnerY .EQ 11 +S.OBJ.InnerW .EQ 12 +S.OBJ.InnerH .EQ 13 +S.OBJ.ActChild .EQ 14 * -S.OBJ.InnerX .EQ 16 -S.OBJ.InnerY .EQ 17 -S.OBJ.InnerW .EQ 18 -S.OBJ.InnerH .EQ 19 +*-------------------------------------- +S.OBJ.pTITLE .EQ 16 +S.OBJ.pMENU .EQ 18 +S.OBJ.pSTATUS .EQ 20 +S.OBJ.fRESIZE .EQ 22 * +* +*-------------------------------------- S.OBJ.Childs .EQ 32 * S.OBJ .EQ 48 @@ -44,11 +63,23 @@ S.SCRN.EndBuf .EQ S.OBJ+15 * S.SCRN .EQ S.OBJ+16 *-------------------------------------- +S.TBOX.hBuf .EQ S.OBJ+0 +* +S.TBOX.CurX .EQ S.OBJ+2 +S.TBOX.CurY .EQ S.OBJ+3 +S.TBOX.DocX .EQ S.OBJ+4 +S.TBOX.DocY .EQ S.OBJ+6 + +* +S.TBOX .EQ S.OBJ+16 +*-------------------------------------- S.LBOX.pL .EQ S.OBJ+0 S.LBOX.Idx .EQ S.OBJ+2 -S.LBOX.Cnt .EQ S.OBJ+4 +S.LBOX.VScroll .EQ S.OBJ+3 * S.LBOX .EQ S.OBJ+16 *-------------------------------------- +EV.RESIZE .EQ $80 +*-------------------------------------- MAN SAVE inc/libtui.i diff --git a/LIB/LIBTCPIP.S.CFG.txt b/LIB/LIBTCPIP.S.CFG.txt index 205705a5..d9147e5a 100644 --- a/LIB/LIBTCPIP.S.CFG.txt +++ b/LIB/LIBTCPIP.S.CFG.txt @@ -1,6 +1,10 @@ NEW AUTO 3,1 *-------------------------------------- +CFG.GET >LDYA L.IPCFG + clc +CFG.GET.RTS rts +*-------------------------------------- CFG.SET >PULLW ZPTmpPtr1 IPCFG ldy #S.IPCFG-1 @@ -10,29 +14,6 @@ CFG.SET >PULLW ZPTmpPtr1 IPCFG dey bpl .1 - ldx #5 - -.2 lda IPCFG+S.NETCFG.MAC,x - sta ARP.REQ.SRCMAC,x - sta ARP.REQ.SHA,x - sta ARP.REP.SRCMAC,x - sta ARP.REP.SHA,x - dex - bpl .2 - - ldx #3 - -.3 lda IPCFG+S.IPCFG.IP,x - sta SA.LOCAL+S.SOCKADDR.ADDR,x - sta ARP.REQ.SPA,x - sta ARP.REP.SPA,x - dex - bpl .3 - - lda IPCFG+S.NETCFG.DevFlags - and #S.DCB.NIC.FLAGS.ARPOFFLOAD - beq .5 - >LDYA L.DCB.NIC >STYA IOCTL+S.IOCTL.BUFPTR @@ -40,43 +21,72 @@ CFG.SET >PULLW ZPTmpPtr1 IPCFG sta IOCTL+S.IOCTL.S ldx #IOCTL.STATUS - jsr CFG.SET.IOCTL - bcs .9 - + jsr CFG.IOCTL + bcs CFG.GET.RTS + ldx #11 IP/MASK/GW -.4 lda IPCFG+S.IPCFG.IP,x + lda IPCFG+S.IPCFG.IP + bne .3 + + lda DCB.NIC+S.DCB.NIC.IP + beq .6 + +.2 lda DCB.NIC+S.DCB.NIC.IP,x + sta IPCFG+S.IPCFG.IP,x + dex + bpl .2 + + lda #S.IPCFG.STATUS.OK + sta IPCFG + + bra .6 + +.3 lda IPCFG+S.IPCFG.IP,x sta DCB.NIC+S.DCB.NIC.IP,x dex - bpl .4 + bpl .3 - lda #S.IOCTL.C.SETDCB +.6 lda #S.IOCTL.C.SETDCB sta IOCTL+S.IOCTL.C - ldx #IOCTL.CONTROL - jsr CFG.SET.IOCTL - bcs .9 + ldx #IOCTL.CONTROL NIC driver may wants IP config.... + jsr CFG.IOCTL +* bcs CFG.GET.RTS .....or not -.5 stz SA.LOCAL+S.SOCKADDR.PORT + ldx #5 + +.7 lda IPCFG+S.NETCFG.MAC,x + sta ARP.REQ.SRCMAC,x + sta ARP.REQ.SHA,x + sta ARP.REP.SRCMAC,x + sta ARP.REP.SHA,x + dex + bpl .7 + + ldx #3 + +.8 lda IPCFG+S.IPCFG.IP,x + sta SA.LOCAL+S.SOCKADDR.ADDR,x + sta ARP.REQ.SPA,x + sta ARP.REP.SPA,x + dex + bpl .8 + + stz SA.LOCAL+S.SOCKADDR.PORT stz SA.LOCAL+S.SOCKADDR.PORT+1 >PUSHB hDNSSocket >PUSHW L.SA.LOCAL jmp SKT.Bind - -.9 rts *-------------------------------------- -CFG.SET.IOCTL >PUSHB IPCFG+S.NETCFG.DevID +CFG.IOCTL >PUSHB IPCFG+S.NETCFG.DevID txa >PUSHA >PUSHW L.IOCTL >SYSCALL2 IOCTL rts *-------------------------------------- -CFG.GET >LDYA L.IPCFG - clc - rts -*-------------------------------------- MAN SAVE usr/src/lib/libtcpip.s.cfg LOAD usr/src/lib/libtcpip.s diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index bd32c259..cfbe3066 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -218,7 +218,7 @@ INCOMING sta hFrameIn dey dex bpl .1 - + ldy #S.ETH.EII.TYPE lda (ZPFrameInPtr),y cmp /S.ETH.EII.TYPE.IP diff --git a/LIB/LIBTUI.S.LBOX.txt b/LIB/LIBTUI.S.LBOX.txt new file mode 100644 index 00000000..585c16c1 --- /dev/null +++ b/LIB/LIBTUI.S.LBOX.txt @@ -0,0 +1,129 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +LBOX.New + clc + rts +*-------------------------------------- +LBOX.Destroy + clc + rts +*-------------------------------------- +LBOX.Run lda (pStack) Event + cmp #C.LF + bne .5 + + + clc + rts + +.5 cmp #C.VT + bne .9 + + + clc + rts + +.9 sec + rts +*-------------------------------------- +LBOX.Draw ldy #S.LBOX.VScroll + lda (ZPObjPtr),y + clc + adc (pStack) Relative Y + + tax + jsr LBOX.GetLineX + bcs .5 + + txa + ldy #S.LBOX.Idx + cmp (ZPObjPtr),y + bne .1 + + ldx #SEQ.INVERSE-SEQS + jsr LIB.LineBufSeqOut + +.1 ldy #S.OBJ.InnerW + lda (ZPObjPtr),y + tax + + ldy #0 + +.2 lda (ZPPtr1),y + beq .3 + + jsr LIB.LineBufCOut + iny + dex + bne .2 + +.3 txa + beq .8 + + bra .6 + +.5 ldy #S.OBJ.InnerW + lda (ZPObjPtr),y + + tax + +.6 lda #C.SPACE + +.7 jsr LIB.LineBufCOut + dex + bne .7 + +.8 clc + rts +*-------------------------------------- +LBOX.GetLineX stz TempI + + ldy #S.LBOX.pL + lda (ZPObjPtr),y + sta ZPPtr1 + iny + lda (ZPObjPtr),y + sta ZPPtr1+1 + +.1 cpx TempI + beq .8 + +.2 inc TempI + + ldy #$ff + +.4 iny + lda (ZPPtr1),y + bne .4 + + tya + beq .9 + + sec + adc ZPPtr1 + sta ZPPtr1 + bcc .1 + + inc ZPPtr1+1 + bra .1 + +.8 clc + rts + +.9 sec + rts +*-------------------------------------- +LBOX.Activate + clc + rts +*-------------------------------------- +LBOX.Deactivate + clc + rts +*-------------------------------------- +MAN +SAVE usr/src/lib/libtui.s.lbox +LOAD usr/src/lib/libtui.s +ASM diff --git a/LIB/LIBTUI.S.OBJ.txt b/LIB/LIBTUI.S.OBJ.txt new file mode 100644 index 00000000..0e5843e7 --- /dev/null +++ b/LIB/LIBTUI.S.OBJ.txt @@ -0,0 +1,585 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +OBJ.New >PULLW ZPPtr1 Params + + >PULLB TempW hParent + + >SYSCALL2 GetMemPtr + >STYA ZPPtr2 + + ldy #S.OBJ.Childs + +.10 lda (ZPPtr2),y + beq .11 + + iny + cpy #S.OBJ + bcc .10 + + lda #E.OOH +* sec + rts + +.11 sty TempW+1 + + lda (ZPPtr1) S.OBJ.T + tax + + ldy OBJ.SIZES,x + lda #0 + + >SYSCALL2 GetMem + bcs .9 + + >STYA ZPObjPtr + + phx + + ldy #0 + +.1 lda (ZPPtr1),y + sta (ZPObjPtr),y + iny + cpy #S.OBJ.H+1 + bne .1 + + lda (ZPPtr1) S.OBJ.T + tax + + ldy OBJ.SIZES,x + + lda #0 + +.2 dey + sta (ZPObjPtr),y + cpy #S.OBJ.pTITLE + bne .2 + + lda TempW + ldy #S.OBJ.P + sta (ZPObjPtr),y + + >LDYA ZPObjPtr + jsr LIB.SetObjX2Y2 + + pla + ldy TempW+1 + sta (ZPPtr2),y + pha + + jsr .7 + + bcs .99 + + pla + + rts + +.7 lda (ZPObjPtr) S.OBJ.T + tax + jmp (J.ObjNew,x) + +.99 plx + +.9 rts +*-------------------------------------- +OBJ.Destroy ldx ZPObjPtr + phx + ldx ZPObjPtr+1 + phx + + pha + jsr LIB.GetObj + + ldy #S.OBJ.Childs + +.1 lda (ZPObjPtr),y + beq .2 + + phy + jsr OBJ.Destroy + ply + +.2 iny + cpy #S.OBJ + bcc .1 + + pla + pha + jsr LIB.GetObj + + jsr .7 + + pla + >SYSCALL2 FreeMem + + plx + stx ZPObjPtr+1 + plx + stx ZPObjPtr + + rts + +.7 lda (ZPObjPtr) S.OBJ.T + tax + jmp (J.ObjDestroy,x) +*-------------------------------------- +OBJ.Run ldx ZPObjPtr + phx + ldx ZPObjPtr+1 + phx + + ldy #1 + lda (pStack),y + jsr LIB.GetObj + + ldy #S.OBJ.S + lda (ZPObjPtr),y + bpl .9 S.OBJ.S.bACTIVE + + ldy #1 + lda (pStack),y hOBJ + >PUSHA + lda (pStack),y Event + >PUSHA + jsr .80 + + bcc .8 + + ldy #S.OBJ.Childs + +.1 lda (ZPObjPtr),y + beq .5 + + phy + >PUSHA hChild + ldy #1 + lda (pStack),y Event + >PUSHA + jsr OBJ.Run + + ply + + bcc .8 + +.5 iny + cpy #S.OBJ + bne .1 + +.9 sec + +.8 plx + stx ZPObjPtr+1 + plx + stx ZPObjPtr + + rts + +.80 lda (ZPObjPtr) S.OBJ.T + tax + jmp (J.ObjRun,x) +*-------------------------------------- +OBJ.Draw >PUSHA hObj + + jsr OBJ.Draw.Top + bcs .9 + + jsr OBJ.Draw.Body + bcs .9 + + jsr OBJ.Draw.Bottom + bcs .9 + + lda #S.OBJ.Childs + >PUSHA + +.6 ldy #1 + lda (pStack),y + jsr LIB.GetObj + + lda (pStack) + tay + lda (ZPObjPtr),y + beq .7 + + jsr OBJ.Draw + bcs .99 + +.7 lda (pStack) + inc + sta (pStack) + cmp #S.OBJ + bne .6 + + clc + +.99 inc pStack + +.9 inc pStack + +OBJ.Draw.RTS rts +*-------------------------------------- +OBJ.Draw.Top lda (pStack) + jsr LIB.GetObj + + ldy #S.OBJ.F + lda (ZPObjPtr),y + and #S.OBJ.F.bTITLE+S.OBJ.F.bHBorder +* clc + beq OBJ.Draw.RTS + + jsr LIB.LineBufInit + + ldy #S.OBJ.X1 + lda (ZPObjPtr),y + tax + ldy #S.OBJ.Y1 + lda (ZPObjPtr),y + tay + jsr LIB.GotoXY + + ldy #S.OBJ.F + lda (ZPObjPtr),y + and #S.OBJ.F.bVBorder + beq .1 + + lda (ZPObjPtr) + jsr LIB.SetColor + + ldx #SEQ.BORDERTL-SEQS + jsr LIB.LineBufSeqOut + +.1 ldy #S.OBJ.F + lda (ZPObjPtr),y + bpl .4 + + ldx #SEQ.BAR-SEQS + jsr LIB.LineBufSeqOut + + ldy #S.OBJ.InnerW + lda (ZPObjPtr),y + tax + + ldy #S.OBJ.pTITLE + lda (ZPObjPtr),y + sta ZPPtr1 + iny + lda (ZPObjPtr),y + sta ZPPtr1+1 + beq .3 + + lda #C.SI + jsr LIB.LineBufCOut + + ldy #0 + +.2 lda (ZPPtr1),y + beq .3 + + jsr LIB.LineBufCOut + iny + dex + bne .2 + +.3 txa + beq .31 + + lda #C.SPACE + +.30 jsr LIB.LineBufCOut + dex + bne .30 + +.31 ldx #SEQ.BAREND-SEQS + jsr LIB.LineBufSeqOut + bra .6 + +.4 ldy #S.OBJ.InnerW + lda (ZPObjPtr),y + tax + + lda #'q' + +.5 jsr LIB.LineBufCOut + dex + bne .5 + +.6 ldy #S.OBJ.F + lda (ZPObjPtr),y + and #S.OBJ.F.bVBorder + beq .7 + + lda (ZPObjPtr) + jsr LIB.SetColor + + ldx #SEQ.BORDERTR-SEQS + jsr LIB.LineBufSeqOut + +.7 jmp LIB.LineBufOut +*-------------------------------------- +OBJ.Draw.Body lda (pStack) + jsr LIB.GetObj + + ldy #S.OBJ.InnerY + lda (ZPObjPtr),y + >PUSHA + + ldy #S.OBJ.InnerH + lda (ZPObjPtr),y + >PUSHA Count + + >PUSHBI 0 Relative Y + +.1 jsr LIB.LineBufInit + + ldy #3 hObj + lda (pStack),y + jsr LIB.GetObj + + ldy #S.OBJ.X1 + lda (ZPObjPtr),y + tax + + ldy #2 InnerY + lda (pStack),y + tay + jsr LIB.GotoXY + + lda (ZPObjPtr) + jsr LIB.SetColor + + ldy #S.OBJ.F + lda (ZPObjPtr),y + and #S.OBJ.F.bVBorder + php + beq .2 + + ldx #SEQ.BORDERV-SEQS + jsr LIB.LineBufSeqOut + +.2 jsr OBJ.Draw.Body.JMP + + ldx #SEQ.NORMAL-SEQS + jsr LIB.LineBufSeqOut + + plp + beq .4 + + ldy #S.OBJ.X2 + lda (ZPObjPtr),y + tax + + ldy #2 InnerY + lda (pStack),y + tay + jsr LIB.GotoXY + + lda (ZPObjPtr) + jsr LIB.SetColor + + ldx #SEQ.BORDERV-SEQS + jsr LIB.LineBufSeqOut + +.4 jsr LIB.LineBufOut + bcs .9 + + lda (pStack) Relative Y + inc + sta (pStack) + + ldy #2 InnerY + lda (pStack),y + inc + sta (pStack),y + + dey + + lda (pStack),y Count + dec + sta (pStack),y + bne .1 + +* clc + +.9 >POP 3 + +OBJ.Draw.Body.RTS + rts +*-------------------------------------- +OBJ.Draw.Body.JMP + lda (ZPObjPtr) + tax + jmp (J.ObjDraw,x) +*-------------------------------------- +OBJ.Draw.Bottom lda (pStack) + jsr LIB.GetObj + + ldy #S.OBJ.F + lda (ZPObjPtr),y + and #S.OBJ.F.bSTATUS+S.OBJ.F.bHBorder +* clc + beq OBJ.Draw.Body.RTS + + jsr LIB.LineBufInit + + ldy #S.OBJ.X1 + lda (ZPObjPtr),y + tax + ldy #S.OBJ.Y2 + lda (ZPObjPtr),y + tay + jsr LIB.GotoXY + + ldy #S.OBJ.F + lda (ZPObjPtr),y + and #S.OBJ.F.bVBorder + beq .1 + + lda (ZPObjPtr) + jsr LIB.SetColor + + ldx #SEQ.BORDERBL-SEQS + jsr LIB.LineBufSeqOut + +.1 ldy #S.OBJ.F + lda (ZPObjPtr),y + and #S.OBJ.F.bSTATUS + beq .4 + + ldx #SEQ.BAR-SEQS + jsr LIB.LineBufSeqOut + + ldy #S.OBJ.InnerW + lda (ZPObjPtr),y + tax + + ldy #S.OBJ.pSTATUS + lda (ZPObjPtr),y + sta ZPPtr1 + iny + lda (ZPObjPtr),y + sta ZPPtr1+1 + beq .3 + + lda #C.SI + jsr LIB.LineBufCOut + + ldy #0 + +.2 lda (ZPPtr1),y + beq .3 + + jsr LIB.LineBufCOut + iny + dex + bne .2 + +.3 txa + beq .31 + + lda #C.SPACE + +.30 jsr LIB.LineBufCOut + dex + bne .30 + +.31 ldx #SEQ.BAREND-SEQS + jsr LIB.LineBufSeqOut + bra .6 + +.4 ldy #S.OBJ.InnerW + lda (ZPObjPtr),y + tax + + lda #'q' + +.5 jsr LIB.LineBufCOut + dex + bne .5 + +.6 ldy #S.OBJ.F + lda (ZPObjPtr),y + and #S.OBJ.F.bVBorder + beq .7 + + lda (ZPObjPtr) + jsr LIB.SetColor + + ldx #SEQ.BORDERBR-SEQS + jsr LIB.LineBufSeqOut + +.7 jmp LIB.LineBufOut +*-------------------------------------- +OBJ.GetProp ldy #1 hObj + lda (pStack),y + jsr LIB.GetObj + + >PULLA + tay prop + + lda (ZPObjPtr),y + pha + iny + lda (ZPObjPtr),y + ply + + inc pStack +* clc + rts +*-------------------------------------- +OBJ.SetProp ldy #3 hObj + lda (pStack),y + jsr LIB.GetObj + + ldy #2 + lda (pStack),y + tay prop + + >PULLA + sta (ZPObjPtr),y + iny + >PULLA + sta (ZPObjPtr),y + + inc pStack + inc pStack +* clc + rts +*-------------------------------------- +OBJ.Activate pha + + jsr LIB.FindActive + bcs .1 + + jsr OBJ.Deactivate + +.1 pla +*-------------------------------------- +OBJ.Activate2 jsr LIB.GetObj + + ldy #S.OBJ.S + lda (ZPObjPtr),y + ora #S.OBJ.S.bACTIVE + sta (ZPObjPtr),y + + lda (ZPObjPtr) + tax + jmp (J.ObjActivate,x) +*-------------------------------------- +OBJ.Deactivate jsr LIB.GetObj + + ldy #S.OBJ.S + lda (ZPObjPtr),y + and #S.OBJ.S.bACTIVE^$ff + sta (ZPObjPtr),y + + lda (ZPObjPtr) + tax + jmp (J.ObjDeactivate,x) +*-------------------------------------- +MAN +SAVE usr/src/lib/libtui.s.obj +LOAD usr/src/lib/libtui.s +ASM diff --git a/LIB/LIBTUI.S.SCRN.txt b/LIB/LIBTUI.S.SCRN.txt new file mode 100644 index 00000000..daef34a4 --- /dev/null +++ b/LIB/LIBTUI.S.SCRN.txt @@ -0,0 +1,82 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +SCRN.New + clc + rts +*-------------------------------------- +SCRN.Destroy + clc + rts +*-------------------------------------- +SCRN.Run lda (pStack) Event + cmp #C.TAB + bne .9 + + ldy #1 + lda (pStack),y hObj + jsr LIB.FindActive + bcs .9 + + >PUSHA hActive + + phy index + + ldy #2 + lda (pStack),y hObj + >SYSCALL2 GetMemPtr + >STYA ZPPtr1 + + ply + +.1 iny + cpy #S.OBJ + bne .2 + + ldy #S.OBJ.Childs + +.2 lda (ZPPtr1),y + beq .1 + + cmp (pStack) + beq .8 + + jsr OBJ.Activate2 + + lda (pStack) + jsr OBJ.Deactivate + +.8 inc pStack discard hActive + + clc + rts + +.9 sec + rts +*-------------------------------------- +SCRN.Draw ldy #S.OBJ.InnerW + lda (ZPObjPtr),y + + tax + lda #C.SPACE + +.1 jsr LIB.LineBufCOut + dex + bne .1 + + clc + rts +*-------------------------------------- +SCRN.Activate + clc + rts +*-------------------------------------- +SCRN.Deactivate + clc + rts +*-------------------------------------- +MAN +SAVE usr/src/lib/libtui.s.scrn +LOAD usr/src/lib/libtui.s +ASM diff --git a/LIB/LIBTUI.S.TBOX.txt b/LIB/LIBTUI.S.TBOX.txt new file mode 100644 index 00000000..33362986 --- /dev/null +++ b/LIB/LIBTUI.S.TBOX.txt @@ -0,0 +1,93 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +TBOX.New >LDYAI 1024 + >SYSCALL2 GetMem + bcs .9 + + >STYA ZPPtr1 + txa + + ldy #S.TBOX.hBuf + sta (ZPObjPtr),y + + lda #0 + sta (ZPPtr1) + + ldy #S.TBOX.CurX + +.1 sta (ZPObjPtr),y + iny + cpy #S.TBOX.DocY+1 + bne .1 + + clc + +.9 rts +*-------------------------------------- +TBOX.Destroy ldy #S.TBOX.hBuf + lda (ZPObjPtr),y + beq .8 + + >SYSCALL2 FreeMem + +.8 clc + rts +*-------------------------------------- +TBOX.Run lda (pStack) Event + cmp #C.SPACE + bcc .8 + + +.9 sec + +.8 + rts +*-------------------------------------- +TBOX.Draw ldy #S.OBJ.InnerW + lda (ZPObjPtr),y + + tax + lda #C.SPACE + +.1 jsr LIB.LineBufCOut + dex + bne .1 + + clc + rts +*-------------------------------------- +TBOX.Activate jsr LIB.LineBufInit + + ldy #S.OBJ.InnerX + lda (ZPObjPtr),y + clc + ldy #S.TBOX.CurX + adc (ZPObjPtr),y + tax + + ldy #S.OBJ.InnerY + lda (ZPObjPtr),y + clc + ldy #S.TBOX.CurY + adc (ZPObjPtr),y + tay + jsr LIB.GotoXY + + ldx #SEQ.CURON-SEQS + jsr LIB.LineBufSeqOut + + jmp LIB.LineBufOut +*-------------------------------------- +TBOX.Deactivate jsr LIB.LineBufInit + + ldx #SEQ.CUROFF-SEQS + jsr LIB.LineBufSeqOut + + jmp LIB.LineBufOut +*-------------------------------------- +MAN +SAVE usr/src/lib/libtui.s.tbox +LOAD usr/src/lib/libtui.s +ASM diff --git a/LIB/LIBTUI.S.txt b/LIB/LIBTUI.S.txt index 10a74f3f..0e40eda1 100644 --- a/LIB/LIBTUI.S.txt +++ b/LIB/LIBTUI.S.txt @@ -12,11 +12,20 @@ NEW *-------------------------------------- .DUMMY .OR ZPLIB -hScrn .BS 1 - .BS 1 + ZPScrnPtr .BS 2 ZPObjPtr .BS 2 + +ZPLineBufPtr .BS 2 +ZPLineBufCnt .BS 2 + ZPPtr1 .BS 2 +ZPPtr2 .BS 2 +TempW .BS 2 +TempC .BS 2 +TempI .BS 2 +bResize .BS 1 + .ED *-------------------------------------- * File Header (16 Bytes) @@ -35,22 +44,58 @@ CS.START cld *-------------------------------------- .1 .DA LIB.LOAD .DA LIB.UNLOAD - .DA LIB.Open + .DA LIB.Init + .DA LIB.GetEvent + .DA LIB.Dispatch .DA LIB.Close - .DA LIB.LBOXNew + .DA OBJ.New + .DA OBJ.Destroy + .DA OBJ.Run + .DA OBJ.Draw + .DA OBJ.GetProp + .DA OBJ.SetProp + .DA OBJ.Activate + .DA OBJ.Deactivate +*-------------------------------------- +J.ObjNew .DA SCRN.New + .DA TBOX.New + .DA LBOX.New +*-------------------------------------- +J.ObjDestroy .DA SCRN.Destroy + .DA TBOX.Destroy + .DA LBOX.Destroy +*-------------------------------------- +J.ObjRun .DA SCRN.Run + .DA TBOX.Run + .DA LBOX.Run +*-------------------------------------- +J.ObjDraw .DA SCRN.Draw + .DA TBOX.Draw + .DA LBOX.Draw +*-------------------------------------- +J.ObjActivate .DA SCRN.Activate + .DA TBOX.Activate + .DA LBOX.Activate +*-------------------------------------- +J.ObjDeactivate .DA SCRN.Deactivate + .DA TBOX.Deactivate + .DA LBOX.Deactivate *-------------------------------------- -L.SEQ.TERMCAP .DA SEQ.TERMCAP L.SEQ.INIT .DA SEQ.INIT +L.SEQ.GOTOXY .DA SEQ.GOTOXY +L.SEQ.COLOR .DA SEQ.COLOR +L.SEQ.CLOSE .DA SEQ.CLOSE L.FMT.ESCCSI.R .DA FMT.ESCCSI.R .DA 0 *-------------------------------------- LIB.LOAD lda LibCnt bne .8 - >LDYAI 256 + >LDYAI 512 >SYSCALL2 GetMem bcs .9 + >STYA LineBuf stx hLineBuf @@ -68,15 +113,18 @@ LIB.UNLOAD dec LibCnt .8 clc rts *-------------------------------------- -LIB.Open >LDYAI S.SCRN +LIB.Init sta TempW F + + >LDYAI S.SCRN >SYSCALL2 GetMem bcs .99 - + >STYA ZPScrnPtr txa - >PUSHA - + >PUSHA hScrn + lda #0 + >PUSHA Init Counter ldy #S.SCRN-1 @@ -84,37 +132,42 @@ LIB.Open >LDYAI S.SCRN dey bpl .10 - jsr CheckCh.Reset + lda TempW + ldy #S.OBJ.F + sta (ZPScrnPtr),y - >LDYA L.SEQ.TERMCAP - >SYSCALL2 puts + jsr LIB.GetC.Reset - lda #0 - >PUSHA + >LDYA L.SEQ.INIT + jsr LIB.YAOut + bcs .98 .1 >SLEEP - ldy #1 + ldy #1 hScrn lda (pStack),y - jsr GetScrn - - jsr CheckCh - bcs .97 - + + jsr LIB.GetC + bcs .98 + beq .2 - >SYSCALL2 PutChar - bcs .97 - + >SYSCALL PutChar + bcs .98 + + ldy #1 hScrn + lda (pStack),y + jsr LIB.GetScrn + .2 ldy #S.OBJ.W lda (ZPScrnPtr),y bne .8 - + lda (pStack) dec sta (pStack) bne .1 - + lda #80 ldy #S.OBJ.W @@ -124,139 +177,321 @@ LIB.Open >LDYAI S.SCRN iny S.OBJ.H sta (ZPScrnPtr),y -.8 inc pStack - - >LDYA ZPScrnPtr +.8 >LDYA ZPScrnPtr jsr LIB.SetObjX2Y2 - + + ldy #S.OBJ.S + lda #S.OBJ.S.bACTIVE + sta (ZPScrnPtr),y + + inc pStack Discard counter >PULLA hScrn clc - rts - -.97 inc pStack - inc pStack +.99 rts .98 pha - lda hScrn + inc pStack Discard counter + >PULLA hScrn >SYSCALL2 FreeMem pla sec -.99 rts + rts *-------------------------------------- -LIB.Close >SYSCALL2 FreeMem +LIB.GetEvent stz bResize + + >PUSHA hScrn + + jsr LIB.GetC + bcs .9 + + bit bResize + bpl .8 + + lda (pStack) + jsr LIB.GetScrn + + ldy #S.OBJ.fRESIZE + lda (ZPScrnPtr),y + sta ZPPtr1 + + iny + lda (ZPScrnPtr),y + sta ZPPtr1+1 + + jsr .10 + + stz bResize + + lda #0 + clc +.8 +.9 inc pStack + + rts + +.10 jmp (ZPPtr1) +*-------------------------------------- +LIB.Dispatch jsr OBJ.Run + bcc .8 + + lda (pStack) + cmp #3 Ctrl-C + beq .9 + + clc + +.8 + +.9 inc pStack Destroy Event + inc pStack on Stack + + rts +*-------------------------------------- +LIB.Close jsr OBJ.Destroy + + >LDYA L.SEQ.CLOSE + jsr LIB.YAOut clc rts *-------------------------------------- -LIB.LBOXNew >PULLW ZPPtr1 Params - - >PULLA hScrn - jsr GetScrn - - >LDYAI S.LBOX - >SYSCALL2 GetMem - bcs .9 - - >STYA ZPObjPtr - - lda #S.OBJ.T.LBOX - sta (ZPObjPtr) - - ldy #S.OBJ.P - lda hScrn - sta (ZPObjPtr),y +LIB.FindActive ldx ZPObjPtr + phx + ldx ZPObjPtr+1 + phx - iny #S.OBJ.F - lda #S.OBJ.F.bHBorder+S.OBJ.F.bVBorder - sta (ZPObjPtr),y + jsr LIB.GetObj + +* ldy #S.OBJ.P +* lda (ZPObjPtr),y +* sec +* beq .80 + + ldy #S.OBJ.Childs - ldy #S.OBJ.X1 +.1 phy + lda (ZPObjPtr),y + beq .7 -.1 lda (ZPPtr1),y - sta (ZPObjPtr),y + pha + + >SYSCALL2 GetMemPtr + >STYA ZPPtr1 + ldy #S.OBJ.S + lda (ZPPtr1),y + and #S.OBJ.S.bACTIVE + bne .8 + + pla + +.7 ply iny - cpy #S.OBJ.H+1 + cpy #S.OBJ bne .1 +* sec + bra .80 - -.8 txa +.8 pla + ply clc -.9 rts + +.80 plx + stx ZPObjPtr+1 + plx + stx ZPObjPtr + + rts *-------------------------------------- -LIB.LBOXSetData >SYSCALL2 GetMemPtr +LIB.GotoXY >PUSHW ZPLineBufPtr + >PUSHW L.SEQ.GOTOXY + + tya + inc + >PUSHA + + txa + inc + >PUSHA + + >PUSHBI 2 + jmp LIB.LineBufPrintF +*-------------------------------------- +LIB.SetColor tax + >PUSHW ZPLineBufPtr + >PUSHW L.SEQ.COLOR + + >PUSHB OBJ.COLORS,x + >PUSHB OBJ.COLORS+1,x + + >PUSHBI 2 + jmp LIB.LineBufPrintF +*-------------------------------------- +LIB.GetScrn >SYSCALL2 GetMemPtr + >STYA ZPScrnPtr + rts +*-------------------------------------- +LIB.GetObj >SYSCALL2 GetMemPtr >STYA ZPObjPtr - - rts *-------------------------------------- -LIB.LBOXFocus -*-------------------------------------- -LIB.LBOXRun -*-------------------------------------- -LIB.LBOXClose - clc - rts -*-------------------------------------- -LIB.SetObjX2Y2 >STYA ZPObjPtr +LIB.SetObjX2Y2 >STYA ZPPtr1 ldy #S.OBJ.X1 - jsr .1 - - ldy #S.OBJ.Y1 + jsr .7 + + ldy #S.OBJ.Y1 + jsr .7 + + ldy #S.OBJ.F + lda (ZPPtr1),y + and #S.OBJ.F.bHBorder + beq .1 + + ldy #S.OBJ.InnerX + lda (ZPPtr1),y + inc + sta (ZPPtr1),y + + iny + iny + + lda (ZPPtr1),y S.OBJ.InnerW + dec + dec + sta (ZPPtr1),y + +.1 ldx #0 + + ldy #S.OBJ.F + lda (ZPPtr1),y + bit #S.OBJ.F.bVBorder+S.OBJ.F.bTITLE + beq .2 + + dex + +.2 bit #S.OBJ.F.bVBorder+S.OBJ.F.bSTATUS + beq .3 + + dex + +.3 txa + beq .4 + + ldy #S.OBJ.InnerY + lda (ZPPtr1),y + inc + sta (ZPPtr1),y + + txa + + iny + iny + + clc + adc (ZPPtr1),y S.OBJ.InnerH + sta (ZPPtr1),y + +.4 ldy #S.OBJ.F + lda (ZPPtr1),y + bit #S.OBJ.F.bMENU + beq .5 + + ldy #S.OBJ.InnerY + lda (ZPPtr1),y + inc + sta (ZPPtr1),y + + iny + iny + + lda (ZPPtr1),y S.OBJ.InnerH + dec + sta (ZPPtr1),y + +.5 rts +*-------------------------------------- +.7 lda (ZPPtr1),y S.OBJ.X1/Y1 + tax -.1 clc - - lda (ZPObjPtr),y iny iny S.OBJ.W/H - adc (ZPObjPtr),y + phy + + clc + adc (ZPPtr1),y + dec iny iny S.OBJ.X2/Y2 - sta (ZPObjPtr),y + sta (ZPPtr1),y + iny + iny + + txa + sta (ZPPtr1),y S.OBJ.InnerX/Y + + ply S.OBJ.W/H + lda (ZPPtr1),y + iny + iny + iny + iny + iny + iny + sta (ZPPtr1),y S.OBJ.InnerW/H + rts *-------------------------------------- -LIB.DrawFrame - clc - rts -*-------------------------------------- -CheckCh ldy #S.PS.hStdIn +LIB.GetC >PUSHA hScrn + + ldy #S.PS.hStdIn lda (pPS),y >SYSCALL2 FEOF bcs .9 - - tay - bne .18 - - >SYSCALL2 GetChar - bcs .9 - tax + tay + beq .10 + + inc pStack + bra .18 + +.10 >SYSCALL2 GetChar + bcc .11 + +.9 inc pStack + rts + +.11 pha + + >PULLA + jsr LIB.GetScrn + + plx ldy #S.SCRN.bEscMode lda (ZPScrnPtr),y beq .20 - + bmi .40 IAC mode - + iny S.SCRN.InBufPtr lda (ZPScrnPtr),y cpx #'[' CSI ? - bne .10 - + bne .12 + cmp #S.SCRN.InBufPtr bne .49 buffer not empty...bad SEQ -.10 jsr CheckCh.ToBuf +.12 jsr LIB.GetC.ToBuf bcs .49 Buffer Full cpx #'[' beq .18 cpx #64 - bcs CheckCh.ESCSEQ if CC, not a letter...SEQ is incomplete + bcs LIB.GetC.ESCSEQ if CC, not a letter...SEQ is incomplete .18 lda #0 clc @@ -266,59 +501,58 @@ CheckCh ldy #S.PS.hStdIn bne .30 inc A = $01 - - jsr CheckCh.SetMode - - lda #0 - clc - rts + + bra .31 *-------------------------------------- .30 cpx #IAC bne .38 dec A = $FF - jsr CheckCh.SetMode - inx X = 0 +.31 jsr LIB.GetC.SetMode -.38 txa + lda #0 clc rts *-------------------------------------- -.40 jsr CheckCh.ToBuf +.38 txa + clc +.39 rts +*-------------------------------------- +.40 jsr LIB.GetC.ToBuf bcs .49 Buffer Full - + cpy #S.SCRN.InBuf First char... beq .48 - + ldy #S.SCRN.InBuf lda (ZPScrnPtr),y - cmp #SB - bne CheckCh.IACSEQ - - cpx #SE + cmp #SB First char is SB ? + bne LIB.GetC.IACSEQ no ... + + cpx #SE is SE after SB ..... ? bne .48 - - bra CheckCh.IACSEQ - -.49 jsr CheckCh.Reset + + bra LIB.GetC.IACSEQ yes, we have IAC SB .....SE + +.49 jsr LIB.GetC.Reset .48 lda #0 clc -.9 rts + rts *-------------------------------------- -CheckCh.ESCSEQ cmp #S.SCRN.InBuf+2 +LIB.GetC.ESCSEQ cmp #S.SCRN.InBuf+2 bcs .2 ldy #ESC.Out-ESC.In-1 txa - + .1 cmp ESC.In,y beq .7 - + dey bpl .1 - + bra .6 *-------------------------------------- * \e[xxx;yyyR @@ -327,55 +561,113 @@ CheckCh.ESCSEQ cmp #S.SCRN.InBuf+2 bne .6 lda #S.SCRN.InBuf+1 skip ESC [ - jsr GetScrnOfs + jsr LIB.GetC.GetScrnOfs >PUSHYA >PUSHW L.FMT.ESCCSI.R - + lda #S.OBJ.H - jsr GetScrnOfs + jsr LIB.GetC.GetScrnOfs >PUSHYA lda #S.OBJ.W - jsr GetScrnOfs + jsr LIB.GetC.GetScrnOfs >PUSHYA - + >PUSHBI 4 2 pointers >SYSCALL2 sscanf - + .6 ldx #0 bra .8 - + .7 ldx ESC.Out,y -.8 jsr CheckCh.Reset - +.8 jsr LIB.GetC.Reset + txa clc -.9 rts + rts *-------------------------------------- -CheckCh.IACSEQ - >DEBUG - jsr CheckCh.Reset +* IAC SB TN.O.NAWS ww ww hh hh IAC SE +*-------------------------------------- +LIB.GetC.IACSEQ ldy #S.SCRN.InBuf + lda (ZPScrnPtr),y + cmp #SB + bne .8 + + iny + lda (ZPScrnPtr),y + cmp #TN.O.NAWS + bne .8 + + iny + lda (ZPScrnPtr),y + bne .8 + + iny + lda (ZPScrnPtr),y + cmp #80 + bcs .1 + + lda #80 + +.1 tax + + iny + lda (ZPScrnPtr),y + bne .8 + + iny + lda (ZPScrnPtr),y + cmp #24 + bcs .2 + + lda #24 + +.2 ldy #S.OBJ.H + + sta (ZPScrnPtr),y + + dey S.OBJ.W + + txa + sta (ZPScrnPtr),y + + >LDYA ZPScrnPtr + jsr LIB.SetObjX2Y2 + + sec + ror bResize + +.8 jsr LIB.GetC.Reset lda #0 clc rts *-------------------------------------- -CheckCh.Reset lda #0 +LIB.GetC.Reset lda #0 -CheckCh.SetMode ldy #S.SCRN.bEscMode +LIB.GetC.SetMode + ldy #S.SCRN.bEscMode sta (ZPScrnPtr),y - + iny Y = S.SCRN.InBufPtr tya sta (ZPScrnPtr),y rts *-------------------------------------- -CheckCh.ToBuf ldy #S.SCRN.InBufPtr +LIB.GetC.GetScrnOfs + clc + adc ZPScrnPtr + tay + lda ZPScrnPtr+1 + adc #0 +.9 rts +*-------------------------------------- +LIB.GetC.ToBuf ldy #S.SCRN.InBufPtr lda (ZPScrnPtr),y - + cmp #S.SCRN.EndBuf buffer full bcs .9 @@ -387,44 +679,203 @@ CheckCh.ToBuf ldy #S.SCRN.InBufPtr tya ply sta (ZPScrnPtr),y - -* clc - -.9 rts + +* clc + +.9 rts *-------------------------------------- -GetScrn sta hScrn - >SYSCALL2 GetMemPtr - >STYA ZPScrnPtr +LIB.LineBufInit >LDYA LineBuf + >STYA ZPLineBufPtr + stz ZPLineBufCnt + stz ZPLineBufCnt+1 rts *-------------------------------------- -GetScrnOfs clc - adc ZPScrnPtr - tay - lda ZPScrnPtr+1 - adc #0 -.9 rts +LIB.LineBufSeqOut +.1 lda SEQS,x + beq .8 + + jsr LIB.LineBufCOut + inx + bra .1 + +.8 rts +*-------------------------------------- +LIB.LineBufYAOut + ldx #0 +*-------------------------------------- +LIB.LineBufYAOutX + >STYA ZPPtr1 X = MaxLen + + ldy #$ff + +.1 iny + lda (ZPPtr1),y + beq .8 + + jsr LIB.LineBufCOut + dex + bne .1 + +.8 rts +*-------------------------------------- +LIB.LineBufPrintF + >SYSCALL2 SPrintF + tya + + clc + adc ZPLineBufPtr + sta ZPLineBufPtr + bcc .1 + + inc ZPLineBufPtr+1 + clc + +.1 tya + adc ZPLineBufCnt + sta ZPLineBufCnt + bcc .8 + + inc ZPLineBufCnt+1 + clc + +.8 rts +*-------------------------------------- +LIB.LineBufHOut pha + lsr + lsr + lsr + lsr + jsr .1 + + pla + and #$0F + +.1 ora #$30 + cmp #'9'+1 + bcc LIB.LineBufCOut + + adc #6 +*-------------------------------------- +LIB.LineBufCOut sta (ZPLineBufPtr) + inc ZPLineBufPtr + bne .1 + + inc ZPLineBufPtr+1 + +.1 inc ZPLineBufCnt + bne .8 + + inc ZPLineBufCnt+1 + +.8 rts +*-------------------------------------- +LIB.LineBufOut ldy #S.PS.hStdOut + lda (pPS),y + >PUSHA + >PUSHW LineBuf + >PUSHW ZPLineBufCnt + >SYSCALL fwrite + rts +*-------------------------------------- +LIB.YAOut dec pStack + >PUSHYA + ldy #S.PS.hStdOut + lda (pPS),y + ldy #2 + sta (pStack),y + >SYSCALL fputs + rts +*-------------------------------------- + .INB usr/src/lib/libtui.s.obj + .INB usr/src/lib/libtui.s.lbox + .INB usr/src/lib/libtui.s.scrn + .INB usr/src/lib/libtui.s.tbox *-------------------------------------- CS.END *-------------------------------------- LibCnt .BS 1 hLineBuf .BS 1 +LineBuf .BS 2 *-------------------------------------- ESC.In .AS "DBAC" -ESC.Out .HS 080A0B15 +ESC.Out .DA #C.BS,#C.LF,#C.VT,#C.FS *-------------------------------------- FMT.ESCCSI.R .AZ "%d;%d" *-------------------------------------- -SEQ.TERMCAP .DA #C.ESC +OBJ.SIZES .DA S.SCRN,S.TBOX,S.LBOX +*-------------------------------------- +OBJ.COLORS .DA #93,#44 SCRN + .DA #93,#104 TBOX + .DA #93,#104 LBOX +*-------------------------------------- +SEQ.INIT .DA #C.ESC + .AS "c" FF + .DA #C.ESC .AS "[999;999H" Set Cursor Pos to 999,999 .DA #C.ESC - .AZ "[6n" then query Cursor Pos -SEQ.INIT .AS "\ec\e(B\e)0" -SEQ.SCROLLRGN .AZ "\e[?7l\e[2;%dr" -SEQ.SCROLLCURUP .AS "\e[?7l\e[%d;%dr" -SEQ.SCROLLUP .AZ "\eD" -SEQ.SCROLLCURDN .AS "\e[?7l\e[%d;%dr" -SEQ.SCROLLDN .AZ "\eM" -SEQ.CLOSE .AZ "\ec" + .AS "[6n" then query Cursor Pos + .DA #C.ESC + .AS "(B" font select + .DA #C.ESC + .AS ")0" font select + .DA #C.ESC + .AS "[?7l" Disable Line Wrap + .DA #C.ESC + .AS "[?25l" Hide Cursor + .DA #0 +*-------------------------------------- +SEQ.GOTOXY .AZ "\e[%d;%dH" +*-------------------------------------- +SEQ.COLOR .AZ "\e[%d;%dm" +*-------------------------------------- +SEQS .EQ * +*-------------------------------------- +SEQ.CURON .DA #C.ESC + .AS "[?25h" Show Cursor + .DA #0 +SEQ.CUROFF .DA #C.ESC + .AS "[?25l" Hide Cursor + .DA #0 +*-------------------------------------- +SEQ.BAR .DA #C.ESC + .AS "[1m" BOLD + .DA #C.ESC + .AS "[7m" INVERSE + .DA #C.ESC + .AS "[37;40m" + .DA #0 +SEQ.BAREND .DA #C.ESC + .AS "[0m" + .DA #0 +*-------------------------------------- +SEQ.BORDERTL .DA #C.SO,#'l' + .DA #0 +SEQ.BORDERTR .DA #C.SO,#'k',#C.SI + .DA #0 +SEQ.BORDERBL .DA #C.SO,#'m' + .DA #0 +SEQ.BORDERBR .DA #C.SO,#'j',#C.SI + .DA #0 +*SEQ.BORDERH .DA #C.SO,#'q',#C.SI +* .DA #0 +SEQ.BORDERV .DA #C.SO,#'x',#C.SI + .DA #0 +SEQ.INVERSE .DA #C.ESC + .AS "[7m" + .DA #0 +SEQ.NORMAL .DA #C.ESC + .AS "[0m" + .DA #0 +*-------------------------------------- +*SEQ.SCROLLCURUP .AS "\e[?7l\e[%d;%dr" +*SEQ.SCROLLUP .AZ "\eD" +*SEQ.SCROLLCURDN .AS "\e[?7l\e[%d;%dr" +*SEQ.SCROLLDN .AZ "\eM" +*-------------------------------------- +SEQ.CLOSE .DA #C.ESC + .AS "c" + .DA #C.ESC + .AZ "[?7h" Enable Line Wrap *-------------------------------------- MAN SAVE usr/src/lib/libtui.s diff --git a/SBIN/NETWORKD.S.txt b/SBIN/NETWORKD.S.txt index 1aad9e23..a3de9962 100644 --- a/SBIN/NETWORKD.S.txt +++ b/SBIN/NETWORKD.S.txt @@ -148,7 +148,7 @@ CS.IOCTL lda DevID >PUSHA >PUSHW L.IOCTL >SYSCALL IOCTL - rts +CS.IOCTL.RTS rts *-------------------------------------- * pBuf = DCB.NIC *-------------------------------------- @@ -166,14 +166,14 @@ CS.INIT.LIB phy >SYSCALL LoadLib jsr CS.RUN.CheckErr - bcs .9 + bcs CS.IOCTL.RTS ldy LibCnt sta hLIBs,y tay ldx #LIBNET.GETCFG jsr A2osX.LIBCALL - bcs .9 + bcs CS.IOCTL.RTS >STYA pNETCFG @@ -183,7 +183,7 @@ CS.INIT.LIB phy ldy #S.DCB.NIC.FLAGS lda (pBuf),y - + ldy #S.NETCFG.DevFlags sta (pNETCFG),y @@ -211,11 +211,7 @@ CS.INIT.LIB phy ldy hLIBs,x ldx #LIBNET.SETCFG - jsr A2osX.LIBCALL - -* clc - -.9 rts + jmp A2osX.LIBCALL *-------------------------------------- CS.INIT.CONF >PUSHW L.ETCNETWORK >PUSHBI O.RDONLY+O.TEXT diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index eaa832ca..e060fe45 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -163,8 +163,11 @@ CORE.UpdPPS tax save RC From INIT or RUN >STYA ZPPtr1 lda (ZPPtr1) Parent PS is HOLD? - bit #S.PS.F.HOLD - beq .8 no... + +* bit #S.PS.F.HOLD +* beq .8 no... + + bpl .8 ldy #S.PS.CPID lda (ZPPtr1),y @@ -175,6 +178,7 @@ CORE.UpdPPS tax save RC From INIT or RUN txa waiting for this PS to terminate.... ldy #S.PS.RC give it RC sta (ZPPtr1),y + lda (ZPPtr1) eor #S.PS.F.HOLD release Parent PS HOLD... sta (ZPPtr1) diff --git a/SYS/KERNEL.S.TERMX.txt b/SYS/KERNEL.S.TERMX.txt index 0a208642..2b294af0 100644 --- a/SYS/KERNEL.S.TERMX.txt +++ b/SYS/KERNEL.S.TERMX.txt @@ -123,11 +123,9 @@ TERMX.CONTROL lda (ZPDCBPtr) #S.DCB.TTY.DEVID sta CLRMIXED jsr TERMX.SCRCPY - + lda #0 - ldy #S.DCB.TTY.bCURON - sta (ZPDCBPtr),y - iny #S.DCB.TTY.bTITLE + ldy #S.DCB.TTY.bTITLE sta (ZPDCBPtr),y clc rts @@ -159,6 +157,7 @@ TERMX.ISOPENED ldy #S.DCB.TTY.S *-------------------------------------- TERMX.READ bit bActive is screen active? bpl .6 no....go check flush... + jsr TERMX.CBLNK bit OPENAPPLE @@ -198,6 +197,7 @@ TERMX.READ bit bActive is screen active? bpl .7 lda #C.LF + .21 jsr TERMX.COUT no remap....send char.... bra .7 and flush @@ -534,6 +534,10 @@ TERMX.CSI.Exec stz CsiH .DA Csi.CLRL K .DA Csi.Home H *-------------------------------------- +* CRLF : ESC [ 20 +* LINEWRAP : ESC [ ? 7 +* CUR : ESC [ ? 25 +*-------------------------------------- Csi.SetM sec .HS 90 BCC *-------------------------------------- @@ -545,32 +549,46 @@ Csi.ResetM clc dex bne .99 - ldx CsiH - lda CsiP + ldx CsiH php - - cmp #20 bCRLF bne .1 - txa + cmp #20 bCRLF bne .98 ldy #S.DCB.TTY.bCRLF bra .8 - -.1 cmp #7 +*-------------------------------------- +.1 cpx #'?' bne .98 - cpx #'?' - bne .98 + cmp #7 + bne .2 ldy #S.DCB.TTY.bLINEWRAP + bra .8 + +.2 cmp #25 + bne .98 + + ldy #S.DCB.TTY.bCURON + plp + lda #0 + ror + sta (ZPDCBPtr),y + bmi .80 + + jsr TERMX.CUROFF + + clc + rts .8 plp ror sta (ZPDCBPtr),y - clc + +.80 clc rts .98 plp @@ -912,11 +930,13 @@ RESET.MODE lda #0 rts *-------------------------------------- RESET ldy #S.DCB.TTY.M + .1 lda RESET.VALUES-S.DCB.TTY.M,y sta (ZPDCBPtr),y iny cpy #S.DCB.TTY.INBUF+1 bne .1 + jmp TERMX.CLRSCR *-------------------------------------- RESETATTR lda #$80 @@ -933,6 +953,7 @@ ENQ ldx #0 inx cpx #ENQ.String.Len bne .1 + .8 clc rts *-------------------------------------- @@ -1030,6 +1051,7 @@ SCROLL.UP ldy #S.DCB.TTY.SCROLLTOP ldy #S.DCB.TTY.SCROLLBOT cmp (ZPDCBPtr),y bne .1 + bra CLRLINE *-------------------------------------- SCROLL.DN ldy #S.DCB.TTY.SCROLLBOT @@ -1050,51 +1072,61 @@ SCROLL.DN ldy #S.DCB.TTY.SCROLLBOT clc rts *-------------------------------------- -TERMX.CBLNK bit bActive - bpl .9 +TERMX.CBLNK jsr TERMX.CCheck + bcs TERMX.RTS lda DevMgr.Timer and #CURSOR.BLINK.SPEED - ldy #S.DCB.TTY.bCURON eor (ZPDCBPtr),y - bne TERMX.CBLNK.1 + asl + beq TERMX.RTS -.9 rts - -TERMX.CUROFF bit bActive - bpl TERMX.RTS - ldy #S.DCB.TTY.bCURON lda (ZPDCBPtr),y - beq TERMX.RTS - -TERMX.CBLNK.1 lda (ZPDCBPtr),y - bne TERMX.CBLNK.OFF - + eor #CURSOR.BLINK.SPEED + sta (ZPDCBPtr),y + asl + beq TERMX.CUROFF.1 + jsr GetCharAtCurPos bcs TERMX.RTS Out of screen and #$80 eor #" " + jmp SetCharAtY.SCR +*-------------------------------------- +TERMX.CUROFF jsr TERMX.CCheck + bcs TERMX.RTS -TERMX.CBLNK.SET - jsr SetCharAtY.SCR - ldy #S.DCB.TTY.bCURON - lda (ZPDCBPtr),y - eor #CURSOR.BLINK.SPEED - sta (ZPDCBPtr),y - rts + asl + beq TERMX.RTS already off + +TERMX.CUROFF.1 jsr GetCharAtCurPos + bcs TERMX.RTS Out of screen -TERMX.CBLNK.OFF - jsr GetCharAtCurPos - bcc TERMX.CBLNK.SET if not Out of screen + jmp SetCharAtY.SCR TERMX.RTS rts *-------------------------------------- +TERMX.CCheck sec + + bit bActive + bpl .9 + + ldy #S.DCB.TTY.bCURON + lda (ZPDCBPtr),y + bpl .9 + + clc + +.9 rts +*-------------------------------------- DecOut jsr MATH.A2STR10NP ldx #0 + .1 lda FOUTBuf,x beq TERMX.RTS + inx jsr TERMX.COUT bra .1 @@ -1107,11 +1139,13 @@ TERMX.COUT pha save char inc cmp #S.DCB.TTY.OUTBUF.MAX bne .1 + lda #S.DCB.TTY.OUTBUF .1 dey OUTTAIL cmp (ZPDCBPtr),y HEAD+1 = TAIL ? beq .9 CS, full! + iny sta (ZPDCBPtr),y new head ply old head @@ -1119,6 +1153,7 @@ TERMX.COUT pha save char sta (ZPDCBPtr),y clc rts + .9 pla pla rts @@ -1128,6 +1163,7 @@ Char.Out.Get ldy #S.DCB.TTY.OUTTAIL iny OUTHEAD cmp (ZPDCBPtr),y beq .9 CS + tay lda (ZPDCBPtr),y pha @@ -1135,6 +1171,7 @@ Char.Out.Get ldy #S.DCB.TTY.OUTTAIL inc cmp #S.DCB.TTY.OUTBUF.MAX bne .1 + lda #S.DCB.TTY.OUTBUF .1 ldy #S.DCB.TTY.OUTTAIL @@ -1182,6 +1219,7 @@ TERMX.CLRSCR.2 sty .1+1 .1 cpx #$ff SELF MODIFIED beq .9 + jsr TERMX.SETUP.L1X lda #" " @@ -1204,9 +1242,11 @@ TERMX.CLRSCR.2 sty .1+1 bra .1 .7 ldy #39 + .8 sta (ZPScrBL1),y dey bpl .8 + .9 rts *-------------------------------------- TERMX.Title.ON ldy #S.DCB.TTY.bTITLE @@ -1228,8 +1268,10 @@ TERMX.Title.ON ldy #S.DCB.TTY.bTITLE cmp #$40 bcc .2 + cmp #$60 bcs .2 + and #$1F remap UPPERCASE .2 phy @@ -1480,7 +1522,7 @@ RESET.VALUES .DA #0 MODE .DA #0 CV.SAVE .DA #0 SCROLLTOP .DA #23 SCROLLBOT - .DA #0 bCURON + .DA #$80 bCURON .DA #0 bTITLE .DA #$80 bNORMAL @@ -1501,10 +1543,10 @@ TERMX.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ .DA #0 .DA K.VER *-------------------------------------- -* ` a b c d e f g h i j k l m n o -REMAP.E0.FF .HS 5B4142434445464748495FA0DF544e4f -* p q r s t u v w x y z { | } ~ DEL - .HS 50DF5253545556575F595a5b5c5d5e5f +* ` a b c d e f g h i j k l m n o +REMAP.E0.FF .HS 5B.41.42.43.44.45.46.47.48.49.20.5e.5a.5a.4e.4f +* p q r s t u v w x y z { | } ~ DEL + .HS 50.5c.52.53.54.55.56.57.5a.59.5a.5b.5c.5d.5e.5f *-------------------------------------- SCR.BL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0 SCR.BH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07 diff --git a/SYS/KM.RAMWORKS.S.txt b/SYS/KM.RAMWORKS.S.txt index 83ea1590..5586f10b 100644 --- a/SYS/KM.RAMWORKS.S.txt +++ b/SYS/KM.RAMWORKS.S.txt @@ -13,6 +13,7 @@ NEW *-------------------------------------- TmpPtr1 .EQ $0 TmpPtr2 .EQ $2 +Type .EQ $4 *-------------------------------------- RW.SAVEZP0 .EQ $800 RW.SAVEZP1 .EQ $900 @@ -21,18 +22,24 @@ RW.BLOCK .EQ $A00 *-------------------------------------- * A2OSX.SYSTEM relocated at $1000 !!! *-------------------------------------- +SEBankSelect .EQ $C071 RWBankSelect .EQ $C073 *-------------------------------------- RW.Init >LDYAI RW.MSG jsr PrintFYA - jsr RW.Detect1 + jsr RW.DetectRAM3 bcs .10 >LDYAI RW.MSG.OK jsr PrintFYA rts -.10 jsr RW.Detect2 +.10 lda #RWBankSelect + jsr RW.DetectHW + bcc .1 + + lda #SEBankSelect + jsr RW.DetectHW bcc .1 >LDYAI RW.MSG.KO1 @@ -88,7 +95,7 @@ RW.Init >LDYAI RW.MSG .9 jsr PrintFYA rts *-------------------------------------- -RW.Detect1 jsr MLI +RW.DetectRAM3 jsr MLI .DA #MLIONLINE .DA RW.ONLINE rts @@ -98,9 +105,14 @@ RW.ONLINE .DA #2 .DA RW.ONLINEBUFFER RW.ONLINEBUFFER .BS 16 *-------------------------------------- -RW.Detect2 php +RW.DetectHW php sei - + sta Type + sta .1+1 + sta .2+1 + sta .3+1 + sta .6+1 + sta SETALTZP ldx #0 start detection at page $00 @@ -199,7 +211,12 @@ RW.Install lda RRAMWRAMBNK1 ror sta RWDRV.MAXLO+1 + lda Type + sta RWDRV.IO1+1 + sta RWDRV.EXIT+1 + lda RROMBNK1 + sta SETWRITEAUX ldx #RWDRVX.SIZE @@ -209,6 +226,11 @@ RW.Install lda RRAMWRAMBNK1 dex bne .2 + lda Type + sta RWDRVX.XM.IO1+1 + sta RWDRVX.XM.IO2+1 + sta RWDRVX.XM.IO3+1 + sta CLRWRITEAUX inc DEVCNT ldx DEVCNT @@ -391,7 +413,7 @@ RW.BLOCK2.END .EQ * *-------------------------------------- .INB usr/src/shared/x.printf.s *-------------------------------------- -RW.MSG .AZ "RAMWorks (I,II,III,z-Ram) Driver For A2osX\n" +RW.MSG .AZ "SuperExpander E, RAMWorks (I,II,III,z-Ram) Driver For A2osX\n" RW.MSG.OK .AZ "/RAM3 Device Already Installed.\n" RW.MSG.OK1 .AZ "%D KB Detected (%d Pages), %D KB (%d Pages) Available for RamDrive.\n" RW.MSG.KO1 .AZ "Not Detected.\n" @@ -451,7 +473,7 @@ RWDRV.START ldy DRV.COMMAND 0 = Status ? *-------------------------------------- * X=Page($02 -> $BF),A=Bank,Y=CMD *-------------------------------------- - sta RWBankSelect Select RAMWorks Bank +RWDRV.IO1 sta RWBankSelect Select RAMWorks Bank inx second 256 bytes first stx DRV.A2H Use DRV.A1L/H for RAM PTR @@ -616,7 +638,7 @@ RWDRVX.XM.COPY sta CLRALTZP jsr RWDRV.XM.RUN+RWDRVX.XM.SRCLC-RWDRVX.XM.START sta $C000,x select proper Main/Aux ZP/LC - sta RWBankSelect +RWDRVX.XM.IO1 sta RWBankSelect ldx #0 @@ -629,7 +651,7 @@ RWDRVX.XM.SRC lda $FFFF,x jsr RWDRV.XM.RUN+RWDRVX.XM.DSTLC-RWDRVX.XM.START sta $C000,x select proper Main/Aux ZP/LC - sta RWBankSelect +RWDRVX.XM.IO2 sta RWBankSelect ldx #0 @@ -644,7 +666,7 @@ RWDRVX.XM.DST sta $FFFF,x bne RWDRVX.XM.COPY sta CLRALTZP - stz RWBankSelect +RWDRVX.XM.IO3 stz RWBankSelect *-------------------------------------- RWDRVX.XM.MNLC bit RRAMWRAMBNK1 ProDOS always uses LCBANK1 diff --git a/SYS/KM.VSDRIVE.S.txt b/SYS/KM.VSDRIVE.S.txt index b36ff827..05dfbc67 100644 --- a/SYS/KM.VSDRIVE.S.txt +++ b/SYS/KM.VSDRIVE.S.txt @@ -195,6 +195,7 @@ VSDRIVE.Ping lda TmpPtr1+1 A=SlotCN tya .9 stz SSC.RESET-$8F,x + stz SSC.CMD-$8F,x Applewin Bug ??? plp sec rts