From fd63f01d30208ec77ad211337d559a75cc4f3992 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 12 Jul 2019 16:51:57 +0200 Subject: [PATCH] Kernel 0.93 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes SYS/KERNEL.S.DIRENT.txt | 14 +--- SYS/KERNEL.S.ENV.txt | 2 +- SYS/KERNEL.S.IO.txt | 37 ++++++--- SYS/KERNEL.S.MATH.txt | 2 +- SYS/KERNEL.S.MEM.txt | 12 +-- SYS/KERNEL.S.STAT.txt | 20 ++--- SYS/KERNEL.S.STDIO.txt | 2 +- SYS/KERNEL.S.TERM.txt | 159 ++++++++++++++++++++++----------------- SYS/KERNEL.S.TERMLC.txt | 65 ++-------------- SYS/KERNEL.S.txt | 2 +- 11 files changed, 137 insertions(+), 178 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index b71cb0e1581a4bdaceaa20e6d6403fc8a785cfa9..5bf8cdd1b1c0a5a8d9c54c119c981bbd2206a4b7 100644 GIT binary patch delta 41981 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 UH}DT|1^6HEZ`e-yFYNgL0euiXp8x;= delta 43203 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
  • INfdWfA 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 Vz@NZhz~8_>z`s!s(|=K){~s>jBj^AC diff --git a/SYS/KERNEL.S.DIRENT.txt b/SYS/KERNEL.S.DIRENT.txt index 8d762793..f7c6d928 100644 --- a/SYS/KERNEL.S.DIRENT.txt +++ b/SYS/KERNEL.S.DIRENT.txt @@ -16,19 +16,11 @@ NEW K.OpenDir jsr PFT.CheckPathYA bcs K.ReadDir.RTS - >LDYAI S.FD.DIR - ldx #S.MEM.F.INIT0+S.MEM.F.FD - jsr MEM.GetMem.YAX + ldx #1 + jsr IO.MkFD bcs K.ReadDir.RTS - - >STYA pFD - stx IO.hFD - - lda #S.FD.T.DIR - sta (pFD) - ldy #1 - lda K.Buf256,y One char ("/") ? + lda K.Buf256+1 One char ("/") ? beq .8 No, Go open dir.... >MLICALL MLIGETFILEINFO diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index 574a15f6..62e75457 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -463,7 +463,7 @@ ENV.ExpandSysVar bne .4 lda ENV.VarName - jsr MEM.IsDigit $0...$9 ?? + jsr IsDigit $0...$9 ?? bcs .1 and #$0F diff --git a/SYS/KERNEL.S.IO.txt b/SYS/KERNEL.S.IO.txt index 2c0bd3be..33414450 100644 --- a/SYS/KERNEL.S.IO.txt +++ b/SYS/KERNEL.S.IO.txt @@ -113,18 +113,10 @@ IO.OPEN.REG >MLICALL MLIGETFILEINFO jsr IO.MLI.CREATE bcs IO.OPEN.RTS -IO.OPEN.REG.E >LDYAI S.FD.REG - ldx #S.MEM.F.INIT0+S.MEM.F.FD - jsr MEM.GetMem.YAX +IO.OPEN.REG.E ldx #0 + jsr IO.MkFD bcs IO.OPEN.RTS - >STYA pFD - stx IO.hFD - -* ldy #S.FD.T Done by GetMem0 -* lda #S.FD.T.REG -* sta (pFD),y - jsr IO.MLIOPEN bcs IO.OPEN.ERR @@ -833,6 +825,31 @@ IO.EOF.FALSE lda #0 * clc rts *-------------------------------------- +* X = 0 > REG +* X = 1 > DIR +* X = 2 > PIPE +*-------------------------------------- +IO.MkFD stx .8+1 + + ldy IO.MkFD.Y,x + lda #0 + ldx #S.MEM.F.INIT0+S.MEM.F.FD + jsr MEM.GetMem.YAX + bcs .9 + + >STYA pFD + stx IO.hFD + +.8 ldx #$ff SELF MODIFIED + lda IO.MkFD.T,x + sta (pFD) X = hFD, A = T + +* clc +.9 rts + +IO.MkFD.Y .DA #S.FD.REG,#S.FD.DIR,#S.FD.PIPE +IO.MkFD.T .DA #S.FD.T.REG,#S.FD.T.DIR,#S.FD.T.PIPE +*-------------------------------------- IO.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF ldx #S.MEM.F.ALIGN+S.MEM.F.NOMOVE jsr MEM.GetMem.YAX diff --git a/SYS/KERNEL.S.MATH.txt b/SYS/KERNEL.S.MATH.txt index c0870959..37151000 100644 --- a/SYS/KERNEL.S.MATH.txt +++ b/SYS/KERNEL.S.MATH.txt @@ -577,7 +577,7 @@ MATH.Dec2ACC32 jsr MATH.ACC32ZERO lda (ZPPtr2),y beq .8 - jsr MEM.IsDigit + jsr IsDigit bcs .8 phy Save Y, pointing to next char diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index dbc6e172..ed1d1742 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -640,19 +640,15 @@ MEM.IsDigitOrUC cmp #'Z'+1 cmp #'A' bcs MEM.IsDigit.8 -MEM.IsDigit cmp #'9'+1 - bcs MEM.IsDigit.RTS - cmp #'0' - bcs MEM.IsDigit.8 + jmp IsDigit MEM.IsDigit.9 sec - -MEM.IsDigit.RTS rts + rts MEM.IsDigit.8 clc - rts +MEM.IsDigit.RTS rts *-------------------------------------- -MEM.IsHexDigit jsr MEM.IsDigit +MEM.IsHexDigit jsr IsDigit bcc .8 cmp #'A' diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index a32c9542..f0c74291 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -310,9 +310,6 @@ K.MKFIFO >STYA ZPPtr1 pathname buffer jsr K.pipe bcs STAT.Access2Mode.RTS - sta K.S.STAT+S.STAT.DEV hFD - pha - ldy #0 .1 lda STAT.FIFO,y @@ -321,7 +318,7 @@ K.MKFIFO >STYA ZPPtr1 pathname buffer cpy #9 bne .1 - pla + lda IO.hFD jsr MATH.AToHexAX sta (ZPPtr1),y @@ -352,7 +349,7 @@ K.MKFIFO >STYA ZPPtr1 pathname buffer K.MkNod >STYA ZPPtr1 pathname >PULLW K.S.STAT+S.STAT.MODE - >PULLB K.S.STAT+S.STAT.DEV + >PULLB IO.hFD K.MkNod.I ldx #2 @@ -377,7 +374,7 @@ K.MkNod.I ldx #2 .3 ldx #$ff SELF MODIFIED sta Nod.Table.hPath-2,x - lda K.S.STAT+S.STAT.DEV + lda IO.hFD sta Nod.Table.hFD-2,x txa hNODE @@ -407,17 +404,10 @@ K.Pipe sta .1+1 SIZE HI stx .8+1 save PIPE buffer - >LDYAI S.FD.PIPE - ldx #S.MEM.F.INIT0+S.MEM.F.FD - jsr MEM.GetMem.YAX - + ldx #2 + jsr IO.MkFD bcs .9 - >STYA pFD - - lda #S.FD.T.PIPE - sta (pFD) - .1 lda #$ff SELF MODIFIED ldy #S.FD.PIPE.Free+1 sta (pFD),y diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 23c52b35..f91e4780 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -310,7 +310,7 @@ K.PrintF.1 stz PrintF.Cnt sta K.PrintF.PadC no, this is the first 0, so make it K.PrintF.PadC bra .2 -.4 jsr MEM.IsDigit +.4 jsr IsDigit bcs .7 no TBL1, no digit....abort .5 and #$0F we have a digit diff --git a/SYS/KERNEL.S.TERM.txt b/SYS/KERNEL.S.TERM.txt index bed53138..03f08fb3 100644 --- a/SYS/KERNEL.S.TERM.txt +++ b/SYS/KERNEL.S.TERM.txt @@ -20,9 +20,7 @@ ZPTmpChar .BS 1 *-------------------------------------- bActive .BS 1 CsiHeader .BS 1 -bCsiInNum .BS 1 CsiParamCnt .BS 1 - CsiParams .BS 4 .ED *-------------------------------------- @@ -509,7 +507,7 @@ DRV.TERM.CSI ldy #S.DCB.TTY.INBUFFER cpy #S.DCB.TTY.INBUFFER.MAX-1 buffer full? bne .8 - jmp RESET.MODE + jsr RESET.MODE .8 clc rts @@ -517,93 +515,58 @@ DRV.TERM.CSI ldy #S.DCB.TTY.INBUFFER DRV.TERM.CSI.Exec stz CsiHeader stz CsiParamCnt - stz bCsiInNum - ldy #S.DCB.TTY.INBUFFER+1 EscSeq Ptr - lda (ZPDCBPtr),y - dey + lda #S.DCB.TTY.INBUFFER+1 EscSeq Ptr + clc + adc ZPDCBPtr + sta ZPPtr2 + lda /S.DCB.TTY.INBUFFER+1 + adc ZPDCBPtr+1 + sta ZPPtr2+1 + lda (ZPPtr2) cmp #'?' - bne .10 + bne .2 sta CsiHeader - iny + +.1 jsr MEM.NextCharPtr2 -.10 stz ZPTmpWord - stz ZPTmpWord+1 +.2 jsr MATH.Dec2ACC32 + bcs .5 -.1 iny - lda (ZPDCBPtr),y + jsr MEM.AddYToPtr2 - cmp #'0' - bcc .2 - cmp #'9'+1 - bcs .2 - - dec bCsiInNum - - and #$0F - pha - - lda ZPTmpWord - ldx ZPTmpWord+1 - - asl ZPTmpWord param=param*10 - rol ZPTmpWord+1 - asl ZPTmpWord - rol ZPTmpWord+1 - - clc - adc ZPTmpWord - sta ZPTmpWord - txa - adc ZPTmpWord+1 - sta ZPTmpWord+1 - asl ZPTmpWord - rol ZPTmpWord+1 - - pla - clc - adc ZPTmpWord - sta ZPTmpWord - bcc .1 - inc ZPTmpWord+1 - bra .1 - -.2 bit bCsiInNum - bpl .3 - - stz bCsiInNum lda #255 - ldx ZPTmpWord+1 - bne .21 + ldx ACC32+1 + bne .3 - lda ZPTmpWord -.21 ldx CsiParamCnt + lda ACC32 + +.3 ldx CsiParamCnt sta CsiParams,x inc CsiParamCnt -.3 lda (ZPDCBPtr),y + lda (ZPPtr2) cmp #';' - beq .10 + beq .1 - pha +.5 jsr RESET.MODE - jsr RESET.MODE - - pla + lda (ZPPtr2) ldx #CsiCodes.Cnt-1 -.4 cmp CsiCodes,x - beq .5 +.6 cmp CsiCodes,x + beq .7 + dex - bne .4 + bne .6 clc rts -.5 txa +.7 txa asl tax jmp (.8,x) @@ -962,15 +925,14 @@ COUT.IAC.EXIT RESET.MODE lda #0 ldy #S.DCB.TTY.MODE sta (ZPDCBPtr),y - clc rts *-------------------------------------- -RESET ldy #1 +RESET ldy #S.DCB.TTY.MODE -.1 iny - lda RESET.VALUES-2,y +.1 lda RESET.VALUES-S.DCB.TTY.MODE,y sta (ZPDCBPtr),y - cpy #S.DCB.TTY.INBUFFER + iny + cpy #S.DCB.TTY.INBUFFER+1 bne .1 jmp DRV.TERM.CLRSCR @@ -1298,6 +1260,61 @@ DRV.TERM.Title.OFF sta (ZPDCBPtr),y jmp DRV.TERM.LINE0CPY *-------------------------------------- +DRV.TERM.SETUP.L1X + ldy #S.FD.DEV.BUFPTR + lda (pFD),y + clc + adc BUF.BASEL,x + sta ZPBufBaseL1 + + iny + lda (pFD),y + adc BUF.BASEH,x + sta ZPBufBaseL1+1 + + bit bActive + bpl DRV.TERM.SETUP.L1X.8 + +DRV.TERM.SETUP.L1X.SCR + lda SCR.BASEL,x + sta ZPScrBaseL1 + lda SCR.BASEH,x + sta ZPScrBaseL1+1 +DRV.TERM.SETUP.L1X.8 + rts +*-------------------------------------- +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 +*-------------------------------------- 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 45efae29..2d53898e 100644 --- a/SYS/KERNEL.S.TERMLC.txt +++ b/SYS/KERNEL.S.TERMLC.txt @@ -267,33 +267,7 @@ GetCharAtCurPos ldy #S.DCB.TTY.CV .9 rts *-------------------------------------- -DRV.TERM.SETUP.L1X - ldy #S.FD.DEV.BUFPTR - lda (pFD),y - clc - adc BUF.BASEL,x - sta ZPBufBaseL1 - - iny - lda (pFD),y - adc BUF.BASEH,x - sta ZPBufBaseL1+1 - - bit bActive - bpl DRV.TERM.SETUP.L1X.8 - -DRV.TERM.SETUP.L1X.SCR - lda SCR.BASEL,x - sta ZPScrBaseL1 - lda SCR.BASEH,x - sta ZPScrBaseL1+1 -DRV.TERM.SETUP.L1X.8 - rts -*-------------------------------------- -* ` 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 +* TEMP *-------------------------------------- RESET.VALUES .DA #0 S.DCB.TTY.MODE .DA #0 S.DCB.TTY.CH @@ -317,38 +291,6 @@ RESET.VALUES .DA #0 S.DCB.TTY.MODE .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" @@ -356,6 +298,11 @@ DRV.TERM.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 +*-------------------------------------- BUF.BASEL .DA #0 .DA #80 .DA #160 diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index e64deba2..81e57a5a 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -47,6 +47,7 @@ A2osX.D1 .PH $D000 .INB USR/SRC/SYS/KERNEL.S.STDLIB .INB USR/SRC/SYS/KERNEL.S.DEV .INB USR/SRC/SYS/KERNEL.S.FIO + .INB USR/SRC/SYS/KERNEL.S.PFT .EP A2osX.D2 .PH $D000 .DA #RRAMWRAMBNK2 @@ -64,7 +65,6 @@ A2osX.E0 .PH $E000 .INB USR/SRC/SYS/KERNEL.S.MATH .INB USR/SRC/SYS/KERNEL.S.TERMLC ********* TMP ***** go to A2osX.D1 - .INB USR/SRC/SYS/KERNEL.S.PFT .INB USR/SRC/SYS/KERNEL.S.IO ********* TMP ***** go to A2osX.D2 .INB USR/SRC/SYS/KERNEL.S.PWD