From 5d9d5ea789dfc23f6dfebebe68cbb19e3f18e75a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 25 Jul 2019 17:10:59 +0200 Subject: [PATCH] Kernel 0.93+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes DRV/DHGR.DRV.G.txt | 3 +- DRV/DHGR.DRV.S.BLT.txt | 8 +-- DRV/DHGR.DRV.S.LBUF.txt | 121 ++++++++++----------------------------- DRV/DHGR.DRV.S.LINE.txt | 3 +- DRV/DHGR.DRV.S.PIX.txt | 3 +- DRV/DHGR.DRV.S.RECT.txt | 3 +- DRV/DHGR.DRV.S.txt | 3 +- SYS/KERNEL.S.FIO.txt | 7 ++- SYS/KERNEL.S.IO.txt | 24 ++++---- SYS/KERNEL.S.STAT.txt | 6 +- SYS/KERNEL.S.STDIO.txt | 28 ++++----- 12 files changed, 65 insertions(+), 144 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index f5afa5d0e7d7b96506785d568b7bdececdbefb43..b80ff6b00bd97d5ffd6275e3c211a5e947748e8a 100644 GIT binary patch delta 52826 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
vc(K%%eGSY1>SxZ9}-j)H` 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 Q0{#a6iFuI!8?*QS0K)WnV*mgE delta 52677 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 T_#bc#_!IccaXSYSCALL2 GetMemPtr jsr BITBLT.1 @@ -399,8 +397,6 @@ BLT.Get7BMBits1 lda (ZPBMDataPtr) inc ZPBMDataPtr+1 .8 rts *-------------------------------------- -Kernel.JMP jmp (SYS.Kernel.JMP,x) -*-------------------------------------- MAN SAVE USR/SRC/DRV/DHGR.DRV.S.RECT LOAD USR/SRC/DRV/DHGR.DRV.S diff --git a/DRV/DHGR.DRV.S.LBUF.txt b/DRV/DHGR.DRV.S.LBUF.txt index 068d1e87..eb59375d 100644 --- a/DRV/DHGR.DRV.S.LBUF.txt +++ b/DRV/DHGR.DRV.S.LBUF.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 .LIST OFF *-------------------------------------- LBUF.SetBounds1YA @@ -87,58 +86,9 @@ LBUF.DrawAtY lda BASEL,y setup line Base Ptr bcc .5 rts -*-------------------------------------- -LBUF.DrawAtY.XOR -LBUF.DrawAtY.AND.XOR - ldx LBUF.C1 x C1->C2 - - ldy COL.BANK,x - sta $C000,y - ldy COL.OFS,x - - lda (ZPBasePtr),y Get C1 - and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7 - sta ZPTmpByte - lda LBUF.DATA,x get DATA bits - and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 - ora ZPTmpByte - eor (ZPBasePtr),y - sta (ZPBasePtr),y update screen - - inx - cpx LBUF.C2 - beq .2 C1=C2, go setup C2 - bcs .8 C1+1 > C2, we are done... - -.1 ldy COL.BANK,x - sta $C000,y - ldy COL.OFS,x - - lda LBUF.DATA,x - eor (ZPBasePtr),y - sta (ZPBasePtr),y - - inx - cpx LBUF.C2 - bne .1 - -.2 ldy COL.BANK,x - sta $C000,y - ldy COL.OFS,x - - lda (ZPBasePtr),y Get C2 - and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7 - sta ZPTmpByte - lda LBUF.DATA,x get DATA bits - and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 - ora ZPTmpByte - eor (ZPBasePtr),y - sta (ZPBasePtr),y update screen - -.8 rts *-------------------------------------- LBUF.DrawAtY.SET -LBUF.DrawAtY.AND.SET +LBUF.DrawAtY.AND.SET USELESS ldx LBUF.C1 x C1->C2 ldy COL.BANK,x @@ -151,51 +101,26 @@ LBUF.DrawAtY.AND.SET lda LBUF.DATA,x get DATA bits and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 - ora ZPTmpByte ora with screen bits + ora ZPTmpByte ora with screen bits sta (ZPBasePtr),y update screen inx cpx LBUF.C2 - beq .7 C1=C2, go setup C2 + beq .2 C1=C2, go setup C2 bcs .8 C1+1 > C2, we are done... - phx - - ldy COL.BANK,x C1+1,3,5,7..... +.1 ldy COL.BANK,x sta $C000,y ldy COL.OFS,x -.1 lda LBUF.DATA,x set all bytes between C1+1 & C2-1 + lda LBUF.DATA,x set all bytes between C1+1 & C2-1 sta (ZPBasePtr),y - iny - - inx + inx cpx LBUF.C2 bcc .1 - plx - - inx - cpx LBUF.C2 - beq .7 - - ldy COL.BANK,x C1+2,4,6,8.... - sta $C000,y - ldy COL.OFS,x - -.2 lda LBUF.DATA,x set all bytes between C1+1 & C2-1 - sta (ZPBasePtr),y - iny - - inx - inx - cpx LBUF.C2 - bcc .2 - - ldx LBUF.C2 - -.7 ldy COL.BANK,x +.2 ldy COL.BANK,x sta $C000,y ldy COL.OFS,x @@ -206,11 +131,23 @@ LBUF.DrawAtY.AND.SET lda LBUF.DATA,x get DATA bits and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 ora ZPTmpByte + sta (ZPBasePtr),y update screen .8 rts +*-------------------------------------- +LBUF.DrawAtY.XOR +LBUF.DrawAtY.AND.XOR UELESS + lda #$51 EOR (Indirect),Y + bra LBUF.DrawAtY.XXX *-------------------------------------- -LBUF.DrawAtY.ORA +LBUF.DrawAtY.ORA + lda #$11 ORA (Indirect),Y +LBUF.DrawAtY.XXX + sta .10+1 + sta .20+1 + sta .30+1 + ldx LBUF.C1 x C1->C2 ldy COL.BANK,x @@ -224,7 +161,7 @@ LBUF.DrawAtY.ORA lda LBUF.DATA,x get DATA bits and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 ora ZPTmpByte - ora (ZPBasePtr),y +.10 ora (ZPBasePtr),y sta (ZPBasePtr),y update screen inx @@ -237,7 +174,7 @@ LBUF.DrawAtY.ORA ldy COL.OFS,x lda LBUF.DATA,x set all bytes between C1+1 & C2-1 - ora (ZPBasePtr),y +.20 ora (ZPBasePtr),y sta (ZPBasePtr),y inx @@ -248,16 +185,16 @@ LBUF.DrawAtY.ORA sta $C000,y ldy COL.OFS,x - lda LBUF.MASK,x get MASK bits - ora LBUF.C2.MASK - and (ZPBasePtr),y + lda (ZPBasePtr),y Get C2 + and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7 sta ZPTmpByte - + lda LBUF.DATA,x get DATA bits and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 ora ZPTmpByte - sta (ZPBasePtr),y update screen - +.30 ora (ZPBasePtr),y + sta (ZPBasePtr),y update screen + .8 rts *-------------------------------------- LBUF.DrawAtY.AND.ORA diff --git a/DRV/DHGR.DRV.S.LINE.txt b/DRV/DHGR.DRV.S.LINE.txt index 8301f1ad..0196a4e9 100644 --- a/DRV/DHGR.DRV.S.LINE.txt +++ b/DRV/DHGR.DRV.S.LINE.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 .LIST OFF *-------------------------------------- * HLINE X1,X2 at Y1 (XOR,SET,ORA) diff --git a/DRV/DHGR.DRV.S.PIX.txt b/DRV/DHGR.DRV.S.PIX.txt index adb060ab..f644759f 100644 --- a/DRV/DHGR.DRV.S.PIX.txt +++ b/DRV/DHGR.DRV.S.PIX.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 .LIST OFF *-------------------------------------- * SETPIXEL diff --git a/DRV/DHGR.DRV.S.RECT.txt b/DRV/DHGR.DRV.S.RECT.txt index 5a0a7a2e..c832381a 100644 --- a/DRV/DHGR.DRV.S.RECT.txt +++ b/DRV/DHGR.DRV.S.RECT.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 .LIST OFF *-------------------------------------- * FILLRECT diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index 89655b9d..3892b19e 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 .LIST OFF .OP 65C02 .OR $2000 diff --git a/SYS/KERNEL.S.FIO.txt b/SYS/KERNEL.S.FIO.txt index f38b841d..6ef9ad03 100644 --- a/SYS/KERNEL.S.FIO.txt +++ b/SYS/KERNEL.S.FIO.txt @@ -47,7 +47,6 @@ FIO.bTXT .BS 1 FIO.hFILE .BS 1 FIO.MemPtr .BS 2 FIO.hMem .BS 1 -FIO.BytesRead .BS 2 .ED *-------------------------------------- K.LoadTxtFile sec @@ -121,7 +120,8 @@ K.LoadFile clc sec .9 rts -.2 >STYA FIO.BytesRead +.2 sty .7+1 + sta .8+1 bit FIO.bTXT bpl .5 @@ -142,7 +142,8 @@ K.LoadFile clc .5 jsr .99 close file - >LDYA FIO.BytesRead +.7 ldy #$ff SELFMODIFIED +.8 lda #$ff SELFMODIFIED ldx FIO.hMem clc rts diff --git a/SYS/KERNEL.S.IO.txt b/SYS/KERNEL.S.IO.txt index 33414450..af12c7e4 100644 --- a/SYS/KERNEL.S.IO.txt +++ b/SYS/KERNEL.S.IO.txt @@ -64,8 +64,7 @@ IO.Open.I ldx #5 /DEV/ bne .2 lda Nod.Table.hFD-2,x return hFD - sta IO.hFD - jsr K.GetMemPtr + jsr IO.GetPFD bra .71 @@ -78,9 +77,9 @@ IO.Open.I ldx #5 /DEV/ rts no OF found .7 stx IO.hDev -.71 >STYA pFD + >STYA pFD - lda (pFD) #S.FD.T +.71 lda (pFD) #S.FD.T tax jmp (.8,x) @@ -206,9 +205,7 @@ IO.MLI.CREATE sta K.MLI.PARAMS+7 Storage Type * `lda fd` * `>SYSCALL close` *\-------------------------------------- -K.Close sta IO.hFD - jsr K.GetMemPtr - >STYA pFD +K.Close jsr IO.GetPFD IO.Close.I lda (pFD) #S.FD.T tax @@ -320,9 +317,7 @@ IO.CLOSE.NOD ldx #2 * CC: Y,A = bytes read * CS: A = EC *\-------------------------------------- -K.Read sta IO.hFD - jsr K.GetMemPtr - >STYA pFD +K.Read jsr IO.GetPFD IO.Read.I lda (pFD) #S.FD.T tax @@ -350,9 +345,7 @@ IO.Read.I lda (pFD) #S.FD.T * CC: Y,A = bytes written * CS: A = EC *\-------------------------------------- -K.Write sta IO.hFD - jsr K.GetMemPtr - >STYA pFD +K.Write jsr IO.GetPFD IO.Write.I lda (pFD) #S.FD.T tax @@ -825,6 +818,11 @@ IO.EOF.FALSE lda #0 * clc rts *-------------------------------------- +IO.GetPFD sta IO.hFD + jsr K.GetMemPtr + >STYA pFD + rts +*-------------------------------------- * X = 0 > REG * X = 1 > DIR * X = 2 > PIPE diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index f0c74291..3aac5ba5 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -48,7 +48,7 @@ K.GetMemStat >STYA ZPPtr1 * only 777-555 *-------------------------------------- K.ChMod jsr PFT.CheckPathYA - bcs .99 + bcs K.FStat.9 >PULLW K.S.STAT+S.STAT.MODE @@ -103,7 +103,7 @@ K.ChMod jsr PFT.CheckPathYA sec .90 rts -.99 >RET 2 +K.FStat.9 >RET 2 discard statbuf *-------------------------------------- * # FStat * Return information about a hFILE @@ -152,8 +152,6 @@ K.FStat jsr PFT.CheckNodeA * clc rts - -K.FStat.9 >RET 2 discard statbuf */-------------------------------------- * # Stat * Return information about a file diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 3d12a8f6..f6ac49ea 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -108,14 +108,14 @@ K.PutS >STYA ZPPtr2 ldy #S.PS.hStdOut lda (pPs),y jsr K.FPutS - bcc .99 + bcc K.PutS.RTS tay - bne .99 0 = BLOCKING + bne K.PutS.RTS 0 = BLOCKING - inc pStack pop K.IOBuf - inc pStack * sec -.99 rts + +K.PutS.RET2 >POP 2 pop K.IOBuf +K.PutS.RTS rts */-------------------------------------- * # fputs (BLOCKING) * Write Str to hFILE @@ -130,7 +130,7 @@ K.PutS >STYA ZPPtr2 * CC = success *\-------------------------------------- K.FPutS jsr PFT.CheckNodeA set IO.hFD - bcs .9 + bcs K.PutS.RET2 lda (pStack) sta ZPPtr2 Get String @@ -159,15 +159,13 @@ K.FPutS jsr PFT.CheckNodeA set IO.hFD >PUSHW ZPPtr2 jsr IO.Write.I - bcc .9 + bcc K.PutS.RET2 tay - bpl .9 IO Erorr + bpl K.PutS.RET2 IO Erorr inc 0 = BLOCKING - +* sec rts - -.9 >RET 2 pop str */-------------------------------------- * # PrintF (BLOCKING) * # FPrintF (BLOCKING) @@ -775,7 +773,7 @@ K.FGetS jsr PFT.CheckNodeA .8 lda #0 sta (ZPPtr2) terminate string clc -.9 >RET 4 +.9 >RET 4 */-------------------------------------- * # getchar (BLOCKING) * Get char from StdIn @@ -1037,8 +1035,6 @@ K.FClose jsr PFT.CheckNodeA stz OF.Table.hPath-1,x jmp K.FreeMem discard filename - -K.FClose.RTS rts */-------------------------------------- * # FRead (BLOCKING) * Read bytes from file @@ -1059,7 +1055,7 @@ K.FRead jsr PFT.CheckNodeA jsr IO.Read.I bcs K.FWrite.9 - rts +K.FClose.RTS rts */-------------------------------------- * # FWrite (BLOCKING) * Write bytes to file @@ -1181,7 +1177,7 @@ K.FSeek jsr PFT.CheckNodeA .98 lda #E.BADARG .HS 2C bit abs .99 lda #E.FTB - sec +* sec K.FSeek.RTS rts */--------------------------------------