From 3d40cd048d3772725c8c9b9903dc39a4976655ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sat, 25 May 2019 21:24:07 +0200 Subject: [PATCH] Kernel 0.93 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/EDIT.S.BUF.txt | 38 +++---- BIN/EDIT.S.CTRL.txt | 46 ++++---- BIN/MORE.S.txt | 2 +- BIN/PS.S.txt | 2 +- BIN/SH.S.txt | 4 +- SYS/KERNEL.S.ARG.txt | 3 +- SYS/KERNEL.S.BIN.txt | 3 +- SYS/KERNEL.S.CTRL.txt | 3 +- SYS/KERNEL.S.DEF.txt | 26 +++-- SYS/KERNEL.S.DEV.txt | 3 +- SYS/KERNEL.S.DIRENT.txt | 3 +- SYS/KERNEL.S.DRV.txt | 3 +- SYS/KERNEL.S.ENV.txt | 3 +- SYS/KERNEL.S.GP.txt | 3 +- SYS/KERNEL.S.IRQ.txt | 3 +- SYS/KERNEL.S.JMP.txt | 3 +- SYS/KERNEL.S.MATH.txt | 3 +- SYS/KERNEL.S.MEM.txt | 3 +- SYS/KERNEL.S.PFT.txt | 3 +- SYS/KERNEL.S.PS.txt | 3 +- SYS/KERNEL.S.PWD.txt | 3 +- SYS/KERNEL.S.STDLIB.txt | 3 +- SYS/KERNEL.S.STRING.txt | 3 +- SYS/KERNEL.S.TERM.txt | 234 ++++++++++++++++++++------------------- SYS/KERNEL.S.TERMLC.txt | 61 ++++++++++ SYS/KERNEL.S.TIME.txt | 3 +- 27 files changed, 259 insertions(+), 208 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 491839a520bb4a8518f2b5dfe990da8f33de01cf..1087839ad401251db929b36ee26fe2361d582bc8 100644 GIT binary patch delta 42222 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 E3*iQA-2eap delta 42059 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 diff --git a/BIN/EDIT.S.BUF.txt b/BIN/EDIT.S.BUF.txt index 1b60a902..e0c90092 100644 --- a/BIN/EDIT.S.BUF.txt +++ b/BIN/EDIT.S.BUF.txt @@ -166,14 +166,18 @@ BUF.DelSel jsr BUF.GetSelLen .8 clc .9 rts *-------------------------------------- -BUF.Del ldy #FileLen - lda (pData),y - iny - ora (pData),y - beq .8 exit with A=0 - - jsr BUF.ComputeCOffset - +* Erase char at CurXY +*-------------------------------------- +BUF.DelChar lda BUF.COffset + sec + sbc #1 + tay + lda BUF.COffset+1 + sbc #0 + bcc .9 deleting char #0 + + >STYA TmpCount + ldy #FileLen+1 lda (pData),y pha @@ -183,17 +187,6 @@ BUF.Del ldy #FileLen pla jsr BUF.GetNewYA BufferLen-1 bcs .9 - - lda BUF.COffset - sec - sbc #1 - tay - lda BUF.COffset+1 - sbc #0 - bcc .3 deleting char #0 - - sty TmpCount - sta TmpCount+1 jsr BUF.CopyCount @@ -268,7 +261,7 @@ BUF.SelToClipboard ldy #0 .2 jsr DecTmpCount - beq .8 + beq .7 lda (BufPtr),y sta (ClipboardPtr),y iny @@ -277,7 +270,7 @@ BUF.SelToClipboard inc ClipboardPtr+1 bra .2 - jsr BUF.ResetSel +.7 jsr BUF.ResetSel .8 clc .9 rts @@ -394,7 +387,8 @@ BUF.GetLineAX sta BUF.TmpLine1 .2 lda (BufPtr),y beq .7 - cmp #13 + + cmp #C.CR beq .3 iny diff --git a/BIN/EDIT.S.CTRL.txt b/BIN/EDIT.S.CTRL.txt index 343cebce..9d3d0a9d 100644 --- a/BIN/EDIT.S.CTRL.txt +++ b/BIN/EDIT.S.CTRL.txt @@ -120,7 +120,8 @@ Ctrl.G ldy #FileX *-------------------------------------- Ctrl.BS ldy #FileX lda (pData),y - beq .1 already at begining of line + beq .1 already at beginning of line + dec sta (pData),y bra .3 @@ -158,6 +159,7 @@ Ctrl.BS ldy #FileX .8 clc rts + .9 jmp Ctrl.Q *-------------------------------------- Ctrl.TAB @@ -520,40 +522,46 @@ Ctrl.ESC clc rts *-------------------------------------- Prompt.Editor cmp #C.DEL - beq .4 + bne .2 - cmp #C.SPACE - bcs .7 + lda BUF.COffset + ora BUF.COffset+1 No Backspace possible + beq .8 + + jsr Ctrl.BS + bcs .9 - asl - tax - jmp (J.CTRL,x) - -.4 jsr BUF.Del + jsr BUF.DelChar bcs .9 cmp #C.CR did we DEL a CR ? - bne .5 + bne .1 jsr SCRN.UpdateMain bcs .9 - - bra .6 - -.5 jsr SCRN.UpdateCurrentLine - bcs .9 - -.6 jsr SCRN.UpdateStatusBar - bcs .9 + jsr SCRN.UpdateStatusBar rts -.7 jsr BUF.InsertA +.1 jsr SCRN.UpdateCurrentLine + jsr SCRN.UpdateStatusBar + rts + +.2 cmp #C.SPACE + bcc .3 + + jsr BUF.InsertA bcs .9 jsr SCRN.UpdateCurrentLine bcs .9 jsr Ctrl.FS bcs .9 + +.8 clc rts + +.3 asl + tax + jmp (J.CTRL,x) .9 jmp Ctrl.Q *-------------------------------------- diff --git a/BIN/MORE.S.txt b/BIN/MORE.S.txt index f036ce6d..e1666859 100644 --- a/BIN/MORE.S.txt +++ b/BIN/MORE.S.txt @@ -312,7 +312,7 @@ MSG.USAGE .AS "Usage : MORE \r\n" .AS " -P : Page mode, no scroll\r\n" .AS " -S : Process ESC codes" MSG.CRLF .AZ "\r\n" -MSG.Init .AZ "\e[7l" +MSG.Init .AZ "\e[?7l" MSG.NUMLINE .AZ "%5D:" MSG.Pause .AZ "\r\e[7m --- 'SPACE' for more, 'CR' one line, 'Q/q' to quit --- \e[0m" MSG.PauseErase .AZ "\r\e[2K" diff --git a/BIN/PS.S.txt b/BIN/PS.S.txt index 46f6a176..af839322 100644 --- a/BIN/PS.S.txt +++ b/BIN/PS.S.txt @@ -212,7 +212,7 @@ CS.QUIT clc rts *-------------------------------------- CS.END -MSG0 .AZ "\e[7lhPS pPID PID cPID CPU\% Flags UID Command Line\r\n" +MSG0 .AZ "\e[?7lhPS pPID PID cPID CPU\% Flags UID Command Line\r\n" MSG1 .AZ "%3d %3d %3d %3d %3d\% %s %3d" MSG2 .AZ " %s" MSG3 .AZ "\r\n" diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index bd1d4ee5..31406a9a 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -582,8 +582,8 @@ ToUpperCase cmp #'a' CS.END *-------------------------------------- MSG.GREETINGS .AZ "\r\nA2osX-SH %d.%d\r\n\r\n" -MSG.PROMPT .AZ "\e[7h$ " Enable Line Wrap -MSG.PROMPTCRLF .AZ "\e[7l\r\n" Disable Line Wrap +MSG.PROMPT .AZ "\e[?7h$ " Enable Line Wrap +MSG.PROMPTCRLF .AZ "\e[?7l\r\n" Disable Line Wrap MSG.TRACE .AZ ">%s\r\n" MSG.BATCHERR .AZ "^\r\nLine #%D:" MSG.ERROR .AS "[$%h]:%S." diff --git a/SYS/KERNEL.S.ARG.txt b/SYS/KERNEL.S.ARG.txt index d0c1289d..906ac47a 100644 --- a/SYS/KERNEL.S.ARG.txt +++ b/SYS/KERNEL.S.ARG.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 */-------------------------------------- * # Args2ArgV * Expand String and convert to ArgV List diff --git a/SYS/KERNEL.S.BIN.txt b/SYS/KERNEL.S.BIN.txt index 96fc524a..518634e4 100644 --- a/SYS/KERNEL.S.BIN.txt +++ b/SYS/KERNEL.S.BIN.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 *-------------------------------------- .DUMMY .OR FAC 15 Bytes diff --git a/SYS/KERNEL.S.CTRL.txt b/SYS/KERNEL.S.CTRL.txt index b3894ad6..855eb087 100644 --- a/SYS/KERNEL.S.CTRL.txt +++ b/SYS/KERNEL.S.CTRL.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 *-------------------------------------- * CONTROL SECTION : .LIST ON diff --git a/SYS/KERNEL.S.DEF.txt b/SYS/KERNEL.S.DEF.txt index c2abf90e..356044e2 100644 --- a/SYS/KERNEL.S.DEF.txt +++ b/SYS/KERNEL.S.DEF.txt @@ -164,19 +164,23 @@ S.DCB.TTY.CV .EQ 4 S.DCB.TTY.SCROLLTOP .EQ 5 S.DCB.TTY.SCROLLBOT .EQ 6 S.DCB.TTY.bCURON .EQ 7 -S.DCB.TTY.bNORMAL .EQ 8 -S.DCB.TTY.bLINEWRAP .EQ 9 -S.DCB.TTY.bTITLE .EQ 10 +S.DCB.TTY.bTITLE .EQ 8 -S.DCB.TTY.bG0G1 .EQ 11 -S.DCB.TTY.bG0ALT .EQ 12 -S.DCB.TTY.bG1ALT .EQ 13 +S.DCB.TTY.bNORMAL .EQ 9 +S.DCB.TTY.bLINEWRAP .EQ 10 +S.DCB.TTY.bCRLF .EQ 11 -S.DCB.TTY.OUTTAIL .EQ 14 -S.DCB.TTY.OUTHEAD .EQ 15 -S.DCB.TTY.INBUFFER .EQ 16 -S.DCB.TTY.INBUFFER.MAX .EQ 32 -S.DCB.TTY.OUTBUFFER .EQ 32 +* .EQ 12 + +S.DCB.TTY.bG0G1 .EQ 13 +S.DCB.TTY.bG0ALT .EQ 14 +S.DCB.TTY.bG1ALT .EQ 15 + +S.DCB.TTY.OUTTAIL .EQ 16 +S.DCB.TTY.OUTHEAD .EQ 17 +S.DCB.TTY.INBUFFER .EQ 18 +S.DCB.TTY.INBUFFER.MAX .EQ 33 +S.DCB.TTY.OUTBUFFER .EQ 34 S.DCB.TTY.OUTBUFFER.MAX .EQ 48 * S.DCB.TTY .EQ 48 diff --git a/SYS/KERNEL.S.DEV.txt b/SYS/KERNEL.S.DEV.txt index a1390d81..17ef9d88 100644 --- a/SYS/KERNEL.S.DEV.txt +++ b/SYS/KERNEL.S.DEV.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 */-------------------------------------- * # GetDevByName * Y,A = Ptr to device name (C-String) diff --git a/SYS/KERNEL.S.DIRENT.txt b/SYS/KERNEL.S.DIRENT.txt index dfdc8966..447445ad 100644 --- a/SYS/KERNEL.S.DIRENT.txt +++ b/SYS/KERNEL.S.DIRENT.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 */-------------------------------------- * # OpenDir * ## C diff --git a/SYS/KERNEL.S.DRV.txt b/SYS/KERNEL.S.DRV.txt index 6ed2439d..7197fce3 100644 --- a/SYS/KERNEL.S.DRV.txt +++ b/SYS/KERNEL.S.DRV.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 *-------------------------------------- * DRV.DiskII * X = IOCTL diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index 0a9044aa..b612fdf2 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 */-------------------------------------- * # ExpandStr * **In:** diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index 4258f7b8..221d568f 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 *-------------------------------------- * SYSCALL (AUXLC to AUXLC) * Used by user & kernel for inter bank Calls diff --git a/SYS/KERNEL.S.IRQ.txt b/SYS/KERNEL.S.IRQ.txt index 0d5aa855..db3163ac 100644 --- a/SYS/KERNEL.S.IRQ.txt +++ b/SYS/KERNEL.S.IRQ.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 *-------------------------------------- * called directly by IRQ Vector $FFFE in AuxLC * Must keep: diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index 2a8c9e10..2eb17f6b 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 *-------------------------------------- * $E000-E1FF System calls Jump Table *-------------------------------------- diff --git a/SYS/KERNEL.S.MATH.txt b/SYS/KERNEL.S.MATH.txt index 86bb5d12..b3a092da 100644 --- a/SYS/KERNEL.S.MATH.txt +++ b/SYS/KERNEL.S.MATH.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 */-------------------------------------- * # FAdd,FSub,FMult,FDiv,FPwr * Return X+Y, X-Y, X*Y, X/Y, X^Y diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index c41f1a7e..f47d3137 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 *-------------------------------------- ZPMemMgrSPtr .EQ ZPMEMMGR Pointer To Slot selected ZPMemMgrTmp1 .EQ ZPMEMMGR+2 diff --git a/SYS/KERNEL.S.PFT.txt b/SYS/KERNEL.S.PFT.txt index 26cb30e0..9819e2e7 100644 --- a/SYS/KERNEL.S.PFT.txt +++ b/SYS/KERNEL.S.PFT.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 *-------------------------------------- * K.PFTAdd * In : diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index ffb8395b..72c02bc1 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 *-------------------------------------- .DUMMY .OR ZPTMP+21 diff --git a/SYS/KERNEL.S.PWD.txt b/SYS/KERNEL.S.PWD.txt index 42811535..2fb5e26c 100644 --- a/SYS/KERNEL.S.PWD.txt +++ b/SYS/KERNEL.S.PWD.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 */-------------------------------------- * # GetPWUID * ## C diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index c5400a5b..0eeda129 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 */-------------------------------------- * # strtof * Convert String to 40 bits Float diff --git a/SYS/KERNEL.S.STRING.txt b/SYS/KERNEL.S.STRING.txt index b8ddab43..77048ed9 100644 --- a/SYS/KERNEL.S.STRING.txt +++ b/SYS/KERNEL.S.STRING.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 */-------------------------------------- * # StrLen * Returns Length of C-String diff --git a/SYS/KERNEL.S.TERM.txt b/SYS/KERNEL.S.TERM.txt index 0414e36c..2565a929 100644 --- a/SYS/KERNEL.S.TERM.txt +++ b/SYS/KERNEL.S.TERM.txt @@ -19,8 +19,10 @@ ZPTmpBool .BS 1 ZPTmpChar .BS 1 *-------------------------------------- bActive .BS 1 +CsiHeader .BS 1 bCsiInNum .BS 1 CsiParamCnt .BS 1 + CsiParams .BS 4 .ED *-------------------------------------- @@ -213,22 +215,38 @@ DRV.TERM.READ jsr DRV.TERM.GetIOCTLBufCntDCB and #$7F - ldx KeyRemapped + ldx #KeyRemapped.cnt-1 + .2 cmp KeyRemapped,x beq .3 dex - bne .2 - jsr Char.Out.Put no remap....send char.... + bpl .2 + + cmp #C.CR + bne .21 + + jsr Char.Out.Put + ldy #S.DCB.TTY.bCRLF + lda (ZPDCBPtr),y + bpl .7 + + lda #C.LF + +.21 jsr Char.Out.Put no remap....send char.... bra .7 and flush -.3 lda KeyRemappedIdx,x - tax +.3 lda KeyRemapped.Tbl,x + pha -.4 lda KeyRemappedTbl,x - beq .7 end of remap....flush + lda #C.ESC jsr Char.Out.Put - inx - bra .4 + + lda #'[' + jsr Char.Out.Put + + pla + jsr Char.Out.Put + bra .7 .6 ldy #S.DCB.TTY.OUTTAIL lda (ZPDCBPtr),y @@ -274,7 +292,7 @@ DRV.TERM.WRITE jsr DRV.TERM.GetIOCTLBufCntDCB .1 inc ZPCount bne .2 inc ZPCount+1 - beq FS.8 + beq .8 .2 ldy #S.DCB.TTY.MODE lda (ZPDCBPtr),y @@ -295,6 +313,9 @@ DRV.TERM.WRITE jsr DRV.TERM.GetIOCTLBufCntDCB .DA DRV.TERM.IAC .DA DRV.TERM.G0 .DA DRV.TERM.G1 + +.8 clc + rts *-------------------------------------- DRV.TERM.COUT lda (ZPBufPtr) @@ -324,8 +345,8 @@ DRV.TERM.COUT lda (ZPBufPtr) jmp (.4,x) .4 .DA ENQ - .DA BS - .DA LF + .DA DRV.TERM.COUT.BS + .DA DRV.TERM.COUT.LF .DA DRV.TERM.COUT.FF .DA DRV.TERM.COUT.CR .DA DRV.TERM.COUT.SO @@ -343,18 +364,43 @@ DRV.TERM.COUT.FS ldy #S.DCB.TTY.bLINEWRAP lda (ZPDCBPtr),y - bpl FS.8 + bpl DRV.TERM.COUT.FS.8 ldy #S.DCB.TTY.CH lda #0 sta (ZPDCBPtr),y - jmp LF + jmp DRV.TERM.COUT.LF.1 .1 inc sta (ZPDCBPtr),y -FS.8 clc +DRV.TERM.COUT.FS.8 + clc + rts +*-------------------------------------- +DRV.TERM.COUT.BS + ldy #S.DCB.TTY.CH + lda (ZPDCBPtr),y + beq .1 + + dec + sta (ZPDCBPtr),y + clc + rts + +.1 ldy #S.DCB.TTY.CV + lda (ZPDCBPtr),y + beq .2 + + dec + sta (ZPDCBPtr),y + + lda #79 + dey + sta (ZPDCBPtr),y + +.2 clc rts *-------------------------------------- DRV.TERM.COUT.DEL @@ -367,7 +413,7 @@ DRV.TERM.COUT.DEL .1 iny S.DCB.TTY.CV lda (ZPDCBPtr),y - beq FS.8 + beq DRV.TERM.COUT.FS.8 dec sta (ZPDCBPtr),y @@ -470,11 +516,20 @@ DRV.TERM.CSI ldy #S.DCB.TTY.INBUFFER rts DRV.TERM.CSI.Exec + stz CsiHeader stz CsiParamCnt stz bCsiInNum - ldy #S.DCB.TTY.INBUFFER EscSeq Ptr + ldy #S.DCB.TTY.INBUFFER+1 EscSeq Ptr + lda (ZPDCBPtr),y + dey + cmp #'?' + bne .10 + + sta CsiHeader + iny + .10 stz ZPTmpWord stz ZPTmpWord+1 @@ -554,8 +609,8 @@ DRV.TERM.CSI.Exec tax jmp (.8,x) -.8 .DA Csi.LWEnable h - .DA Csi.LWDisable l +.8 .DA Csi.SetMode h + .DA Csi.ResetMode l .DA Csi.DispAttr m .DA Csi.Query n .DA Csi.Scroll r @@ -563,24 +618,46 @@ DRV.TERM.CSI.Exec .DA Csi.EraseLine K .DA Csi.Home H *-------------------------------------- -Csi.LWEnable sec +Csi.SetMode sec .HS 90 BCC *-------------------------------------- -Csi.LWDisable clc +Csi.ResetMode clc + ldx CsiParamCnt - beq .8 - dex - bne .8 - - lda CsiParams - eor #7 - bne .8 - - ror - ldy #S.DCB.TTY.bLINEWRAP - sta (ZPDCBPtr),y + beq .99 -.8 clc + dex + bne .99 + + ldx CsiHeader + lda CsiParams + + php + + cmp #20 bCRLF + bne .1 + txa + bne .98 + + ldy #S.DCB.TTY.bCRLF + bra .8 + +.1 cmp #7 + bne .98 + + cpx #'?' + bne .98 + + ldy #S.DCB.TTY.bLINEWRAP + +.8 plp + ror + sta (ZPDCBPtr),y + clc + rts + +.98 plp +.99 clc rts *-------------------------------------- Csi.DispAttr ldx CsiParamCnt @@ -917,30 +994,15 @@ ENQ ldx #0 .8 clc rts *-------------------------------------- -BS ldy #S.DCB.TTY.CH +DRV.TERM.COUT.LF + ldy #S.DCB.TTY.bCRLF lda (ZPDCBPtr),y - beq .1 - - dec - sta (ZPDCBPtr),y - clc - rts - -.1 ldy #S.DCB.TTY.CV - lda (ZPDCBPtr),y - beq .2 - - dec - sta (ZPDCBPtr),y - - lda #79 - dey - sta (ZPDCBPtr),y - -.2 clc - rts -*-------------------------------------- -LF ldy #S.DCB.TTY.CV + bpl DRV.TERM.COUT.LF.1 + + jsr DRV.TERM.COUT.CR + +DRV.TERM.COUT.LF.1 + ldy #S.DCB.TTY.CV lda (ZPDCBPtr),y ldy #S.DCB.TTY.SCROLLBOT cmp (ZPDCBPtr),y @@ -1280,66 +1342,6 @@ DRV.TERM.Title.OFF sta (ZPDCBPtr),y jmp DRV.TERM.LINE0CPY *-------------------------------------- -RESET.VALUES .DA #0 S.DCB.TTY.MODE - .DA #0 S.DCB.TTY.CH - .DA #0 S.DCB.TTY.CV - .DA #0 S.DCB.TTY.SCROLLTOP - .DA #23 S.DCB.TTY.SCROLLBOT - .DA #0 S.DCB.TTY.bCURON - .DA #$80 S.DCB.TTY.bNORMAL - .DA #$80 S.DCB.TTY.bLINEWRAP - .DA #0 S.DCB.TTY.bTITLE - .DA #0 S.DCB.TTY.bG0G1 - .DA #0 S.DCB.TTY.bG0ALT - .DA #$80 S.DCB.TTY.bG1ALT - .DA #S.DCB.TTY.OUTBUFFER S.DCB.TTY.OUTTAIL - .DA #S.DCB.TTY.OUTBUFFER S.DCB.TTY.OUTHEAD - .DA #S.DCB.TTY.INBUFFER S.DCB.TTY.INBUFFER -*-------------------------------------- -CtrlChars .DA #C.ENQ,#C.BS,#C.LF,#C.FF,#C.CR,#C.SO,#C.SI,#C.FS,#C.ESC -CtrlChars.Cnt .EQ *-CtrlChars -*-------------------------------------- -EscCodes .AZ "MDc[()" -EscCodes.Cnt .EQ *-EscCodes -EscModes .DA #0,#0,#0,#S.DCB.TTY.MODE.CSI,#S.DCB.TTY.MODE.G0,#S.DCB.TTY.MODE.G1 -CsiCodes .AS "hlmnrJKH" -CsiCodes.Cnt .EQ *-CsiCodes -*-------------------------------------- -KeyRemapped .HS 05080A0B0D15 L,D,U,CR,R -KeyRemappedIdx .HS 050004080C0F -KeyRemappedTbl .EQ * -KeyRemappedLEFT .HS 1B5B4400 esc[D -KeyRemappedDOWN .HS 1B5B4200 esc[B -KeyRemappedUP .HS 1B5B4100 esc[A -KeyRemappedCR .HS 0D0A00 crlf -KeyRemappedRGHT .HS 1B5B4300 esc[C -*-------------------------------------- -WILLDO .DA #TELOPT.BINARY,#TELOPT.SGA -WILLDO.CNT .EQ *-WILLDO -WILLDONT .DA #TELOPT.TSPEED,#TELOPT.LINEMODE,#TELOPT.STATUS -WILLDONT.CNT .EQ *-WILLDONT -DOWILL .DA #TELOPT.BINARY,#TELOPT.SGA,#TELOPT.TTYPE,#TELOPT.NAWS -DOWILL.CNT .EQ *-DOWILL -DOWONT .DA #TELOPT.ECHO,#TELOPT.NEWENVIRON,#TELOPT.XDISPLOC,#TELOPT.TSPEED,#TELOPT.LFLOW -DOWONT.CNT .EQ *-DOWONT -SB.IS.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.IS -ENQ.String .AS "xterm" -ENQ.String.Len .EQ *-ENQ.String - .DA #IAC,#SE -SB.IS.TTYPE.LEN .EQ *-SB.IS.TTYPE -SB.IS.NAWS .DA #IAC,#SB,#TELOPT.NAWS,#SB.IS - .DA 80 - .DA 24 - .DA #IAC,#SE -SB.IS.NAWS.LEN .EQ *-SB.IS.NAWS -*-------------------------------------- -DRV.TERM.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ - .DA #0,#0,#0 - >PSTR "A2osX VT100 TERM" - .DA #S.DIB.T.CHAR - .DA #0 - .DA K.VER -*-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.TERM LOAD USR/SRC/SYS/KERNEL.S diff --git a/SYS/KERNEL.S.TERMLC.txt b/SYS/KERNEL.S.TERMLC.txt index 4c9627fe..688901af 100644 --- a/SYS/KERNEL.S.TERMLC.txt +++ b/SYS/KERNEL.S.TERMLC.txt @@ -285,6 +285,67 @@ REMAP.E0.FF .HS 5B4142434445464748495FA0DF544e4f * p q r s t u v w x y z { | } ~ DEL .HS 50DF5253545556575F595a5b5c5d5e5f *-------------------------------------- +RESET.VALUES .DA #0 S.DCB.TTY.MODE + .DA #0 S.DCB.TTY.CH + .DA #0 S.DCB.TTY.CV + .DA #0 S.DCB.TTY.SCROLLTOP + .DA #23 S.DCB.TTY.SCROLLBOT + .DA #0 S.DCB.TTY.bCURON + .DA #0 S.DCB.TTY.bTITLE + + .DA #$80 S.DCB.TTY.bNORMAL + .DA #$80 S.DCB.TTY.bLINEWRAP + .DA #$80 S.DCB.TTY.bCRLF + + .DA #0 + + .DA #0 S.DCB.TTY.bG0G1 + .DA #0 S.DCB.TTY.bG0ALT + .DA #$80 S.DCB.TTY.bG1ALT + + .DA #S.DCB.TTY.OUTBUFFER S.DCB.TTY.OUTTAIL + .DA #S.DCB.TTY.OUTBUFFER S.DCB.TTY.OUTHEAD + .DA #S.DCB.TTY.INBUFFER S.DCB.TTY.INBUFFER +*-------------------------------------- +CtrlChars .DA #C.ENQ,#C.BS,#C.LF,#C.FF,#C.CR,#C.SO,#C.SI,#C.FS,#C.ESC +CtrlChars.Cnt .EQ *-CtrlChars +*-------------------------------------- +EscCodes .AZ "MDc[()" +EscCodes.Cnt .EQ *-EscCodes +EscModes .DA #0,#0,#0,#S.DCB.TTY.MODE.CSI,#S.DCB.TTY.MODE.G0,#S.DCB.TTY.MODE.G1 +CsiCodes .AS "hlmnrJKH" +CsiCodes.Cnt .EQ *-CsiCodes +*-------------------------------------- +KeyRemapped .HS 080A0B15 Left,Down,Up,Right +KeyRemapped.Cnt .EQ *-KeyRemapped +KeyRemapped.Tbl .HS 44424143 esc[D,esc[B,esc[A,esc[C +*-------------------------------------- +WILLDO .DA #TELOPT.BINARY,#TELOPT.SGA +WILLDO.CNT .EQ *-WILLDO +WILLDONT .DA #TELOPT.TSPEED,#TELOPT.LINEMODE,#TELOPT.STATUS +WILLDONT.CNT .EQ *-WILLDONT +DOWILL .DA #TELOPT.BINARY,#TELOPT.SGA,#TELOPT.TTYPE,#TELOPT.NAWS +DOWILL.CNT .EQ *-DOWILL +DOWONT .DA #TELOPT.ECHO,#TELOPT.NEWENVIRON,#TELOPT.XDISPLOC,#TELOPT.TSPEED,#TELOPT.LFLOW +DOWONT.CNT .EQ *-DOWONT +SB.IS.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.IS +ENQ.String .AS "xterm" +ENQ.String.Len .EQ *-ENQ.String + .DA #IAC,#SE +SB.IS.TTYPE.LEN .EQ *-SB.IS.TTYPE +SB.IS.NAWS .DA #IAC,#SB,#TELOPT.NAWS,#SB.IS + .DA 80 + .DA 24 + .DA #IAC,#SE +SB.IS.NAWS.LEN .EQ *-SB.IS.NAWS +*-------------------------------------- +DRV.TERM.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ + .DA #0,#0,#0 + >PSTR "A2osX VT100 TERM" + .DA #S.DIB.T.CHAR + .DA #0 + .DA K.VER +*-------------------------------------- BUF.BASEL .DA #0 .DA #80 .DA #160 diff --git a/SYS/KERNEL.S.TIME.txt b/SYS/KERNEL.S.TIME.txt index b9270226..b007a3c2 100644 --- a/SYS/KERNEL.S.TIME.txt +++ b/SYS/KERNEL.S.TIME.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 *-------------------------------------- * https://www.cise.ufl.edu/~cop4600/cgi-bin/lxr/http/source.cgi/lib/ansi/gmtime.c *--------------------------------------