From d43a064a594bb3c429434ce7f478415644293448 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 1 Sep 2020 17:38:55 +0200 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes DRV/DHGR.DRV.G.txt | 5 --- DRV/DHGR.DRV.S.BLT.txt | 11 +++++++ DRV/DHGR.DRV.S.LBUF.txt | 61 +++++++++++++++++++++++++++++------- DRV/DHGR.DRV.S.LINE.txt | 4 ++- DRV/DHGR.DRV.S.PIX.txt | 35 +++++++-------------- DRV/MOUSE.DRV.S.txt | 66 ++++++++++++++++++++++++++++----------- LIB/LIBGUI.S.DRAW.txt | 5 +-- 8 files changed, 123 insertions(+), 64 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index a963b58cf21e7ad95a1a76d03ab7d6c8c03fbe81..24c187228f7cbbe763c45d90fa27f8a9c0628e49 100644 GIT binary patch delta 16126 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

c}InU+^7Kw1D2v<~hBwF&p;PTetRUPi> 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 c{zAHg^f%I7qLDYA BLT.BMMaskPtr >STYA ZPBMDataPtr @@ -169,8 +170,10 @@ BITBLT.LOOP0 lda CB.Cache+S.CB.OP inc BLT.ScrColIdx cpx LBUF.C2 bne .1 + .2 >LDYA BLT.BMDataPtr >STYA ZPBMDataPtr + lda BLT.BMBitOfs sta BLT.BMBitOfsL ldx LBUF.C1 @@ -184,14 +187,17 @@ BITBLT.LOOP0 lda CB.Cache+S.CB.OP inc BLT.ScrColIdx cpx LBUF.C2 bne .3 + ldy CB.Cache+S.CB.DstY jsr LBUF.DrawAtY inc CB.Cache+S.CB.DstY dec CB.Cache+S.CB.SrcH beq .8 + lda CB.Cache+S.CB.OP bit #S.CB.OP.MASK beq .4 + lda BLT.BMMaskPtr clc adc BM.Cache+S.BM.RowBytes @@ -205,6 +211,7 @@ BITBLT.LOOP0 lda CB.Cache+S.CB.OP adc BM.Cache+S.BM.RowBytes sta BLT.BMDataPtr bcc .5 + inc BLT.BMDataPtr+1 .5 jmp BITBLT.LOOP0 @@ -215,6 +222,7 @@ BITBLT.LOOP0 lda CB.Cache+S.CB.OP BITBLT.LOOPx lda CB.Cache+S.CB.OP X = BLT.ScrBitOfs bit #S.CB.OP.MASK beq BITBLT.LOOPx.4 + >LDYA BLT.BMMaskPtr >STYA ZPBMDataPtr @@ -269,14 +277,17 @@ BITBLT.LOOPx.7 and #$ff SELF MODIFIED : #%01110000 get only col2 bites inc BLT.ScrColIdx cpx LBUF.C2 bne BITBLT.LOOPx.5 + ldy CB.Cache+S.CB.DstY jsr LBUF.DrawAtY inc CB.Cache+S.CB.DstY dec CB.Cache+S.CB.SrcH beq .8 + lda CB.Cache+S.CB.OP bit #S.CB.OP.MASK beq .1 + lda BLT.BMMaskPtr clc adc BM.Cache+S.BM.RowBytes diff --git a/DRV/DHGR.DRV.S.LBUF.txt b/DRV/DHGR.DRV.S.LBUF.txt index f020ffb1..41aee605 100644 --- a/DRV/DHGR.DRV.S.LBUF.txt +++ b/DRV/DHGR.DRV.S.LBUF.txt @@ -47,7 +47,10 @@ LBUF.DrawAtY lda BASEL,y setup line Base Ptr .1 ldy COL.BANK,x sta $C000,y - ldy COL.OFS,x + txa + lsr + tay + lda (ZPBasePtr),y sta (ZPBMSavePtr) inc ZPBMSavePtr @@ -60,6 +63,7 @@ LBUF.DrawAtY lda BASEL,y setup line Base Ptr bcc .1 lda CB.Cache+S.CB.OP + .3 and #$F tax jmp (J.LBUF.DrawAtY,x) @@ -68,7 +72,10 @@ LBUF.DrawAtY lda BASEL,y setup line Base Ptr .5 ldy COL.BANK,x sta $C000,y - ldy COL.OFS,x + txa + lsr + tay + lda (ZPBMSavePtr) sta (ZPBasePtr),y inc ZPBMSavePtr @@ -85,9 +92,13 @@ LBUF.DrawAtY lda BASEL,y setup line Base Ptr LBUF.DrawAtY.SET LBUF.DrawAtY.AND.SET ldx LBUF.C1 x C1->C2 + ldy COL.BANK,x sta $C000,y - ldy COL.OFS,x + txa + lsr + tay + lda (ZPBasePtr),y Clear screen at C1 and LBUF.C1.MASK with MASK bits sta ZPTmpByte @@ -96,6 +107,7 @@ LBUF.DrawAtY.AND.SET and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 ora ZPTmpByte ora with screen bits sta (ZPBasePtr),y update screen + inx cpx LBUF.C2 beq .2 C1=C2, go setup C2 @@ -104,7 +116,10 @@ LBUF.DrawAtY.AND.SET .1 ldy COL.BANK,x sta $C000,y - ldy COL.OFS,x + txa + lsr + tay + lda LBUF.DATA,x set all bytes between C1+1 & C2-1 sta (ZPBasePtr),y @@ -114,16 +129,19 @@ LBUF.DrawAtY.AND.SET .2 ldy COL.BANK,x sta $C000,y - ldy COL.OFS,x + txa + lsr + tay 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 + .8 rts *-------------------------------------- LBUF.DrawAtY.XOR @@ -142,7 +160,10 @@ LBUF.DrawAtY.XXX ldy COL.BANK,x sta $C000,y - ldy COL.OFS,x + txa + lsr + tay + lda (ZPBasePtr),y Get C1 and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7 sta ZPTmpByte @@ -160,7 +181,10 @@ LBUF.DrawAtY.XXX .1 ldy COL.BANK,x sta $C000,y - ldy COL.OFS,x + txa + lsr + tay + lda LBUF.DATA,x set all bytes between C1+1 & C2-1 .20 ora (ZPBasePtr),y sta (ZPBasePtr),y @@ -171,7 +195,10 @@ LBUF.DrawAtY.XXX .2 ldy COL.BANK,x sta $C000,y - ldy COL.OFS,x + txa + lsr + tay + lda (ZPBasePtr),y Get C2 and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7 sta ZPTmpByte @@ -189,7 +216,10 @@ LBUF.DrawAtY.AND.ORA ldy COL.BANK,x sta $C000,y - ldy COL.OFS,x + txa + lsr + tay + lda LBUF.MASK,x get MASK bits ora LBUF.C1.MASK clear ONLY bits starting at X1 mod 7 and (ZPBasePtr),y Clear screen at C1 @@ -207,7 +237,10 @@ LBUF.DrawAtY.AND.ORA .1 ldy COL.BANK,x sta $C000,y - ldy COL.OFS,x + txa + lsr + tay + lda (ZPBasePtr),y and LBUF.MASK,x ora LBUF.DATA,x set all bytes between C1+1 & C2-1 @@ -219,7 +252,10 @@ LBUF.DrawAtY.AND.ORA .2 ldy COL.BANK,x sta $C000,y - ldy COL.OFS,x + txa + lsr + tay + lda LBUF.MASK,x get MASK bits ora LBUF.C2.MASK and (ZPBasePtr),y @@ -229,6 +265,7 @@ LBUF.DrawAtY.AND.ORA and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 ora ZPTmpByte sta (ZPBasePtr),y update screen + .8 rts *-------------------------------------- MAN diff --git a/DRV/DHGR.DRV.S.LINE.txt b/DRV/DHGR.DRV.S.LINE.txt index 624796f8..75f02799 100644 --- a/DRV/DHGR.DRV.S.LINE.txt +++ b/DRV/DHGR.DRV.S.LINE.txt @@ -74,8 +74,9 @@ VLINE.MONO >LDYA CB.Cache+S.CB.X1 jsr DIVMOD7YA X = MOD 7 tay - lda COL.OFS,y + lsr sta ZPTmpByte Save COL (DIV) + lda COL.BANK,y tay sta $C000,y Select proper BANK @@ -109,6 +110,7 @@ VLINE.MONO.WHITE VLINE.MONO.XOR lda #$5D EOR abs,x sta .2 + .1 lda BASEL,y adc ZPTmpByte sta ZPBasePtr diff --git a/DRV/DHGR.DRV.S.PIX.txt b/DRV/DHGR.DRV.S.PIX.txt index 0f189051..bff5308c 100644 --- a/DRV/DHGR.DRV.S.PIX.txt +++ b/DRV/DHGR.DRV.S.PIX.txt @@ -16,7 +16,7 @@ SETPIXEL.MONO >LDYA CB.Cache+S.CB.X1 jsr DIVMOD7YA tay - lda COL.OFS,y + lsr phy ldy CB.Cache+S.CB.Y1 clc @@ -85,26 +85,16 @@ SETPIXEL.C16.YX lda DIV7.0,y PixelX MOD 7 (range 0->19) lda Color.Masks,x bits in 1st byte to light? beq .10 - and Color.Pixels,y apply color - sta ZPTmpByte sta SETPAGE2 - lda (ZPBasePtr) - and Color.NMasks,x reset existing pixel, - ora ZPTmpByte - sta (ZPBasePtr) + + jsr .81 .10 inx iny lda Color.Masks,x beq .11 - and Color.Pixels,y apply color - sta ZPTmpByte - sta CLRPAGE2 - lda (ZPBasePtr) - and Color.NMasks,x reset existing pixel, - ora ZPTmpByte - sta (ZPBasePtr) + jsr .80 .11 inc ZPBasePtr inx @@ -112,28 +102,25 @@ SETPIXEL.C16.YX lda DIV7.0,y PixelX MOD 7 (range 0->19) lda Color.Masks,x beq .12 - and Color.Pixels,y apply color - sta ZPTmpByte sta SETPAGE2 - lda (ZPBasePtr) - and Color.NMasks,x reset existing pixel, - ora ZPTmpByte - sta (ZPBasePtr) + + jsr .81 .12 inx iny lda Color.Masks,x - beq .13 + beq .88 - and Color.Pixels,y apply color +.80 sta CLRPAGE2 + +.81 and Color.Pixels,y apply color sta ZPTmpByte - sta CLRPAGE2 lda (ZPBasePtr) and Color.NMasks,x reset existing pixel, ora ZPTmpByte sta (ZPBasePtr) -.13 rts +.88 rts *-------------------------------------- * GETPIXEL *-------------------------------------- diff --git a/DRV/MOUSE.DRV.S.txt b/DRV/MOUSE.DRV.S.txt index c8a7b797..d53ccc67 100644 --- a/DRV/MOUSE.DRV.S.txt +++ b/DRV/MOUSE.DRV.S.txt @@ -1,5 +1,5 @@ NEW - AUTO 4,1 + AUTO 3,1 .LIST OFF .OP 65C02 .OR $2000 @@ -41,6 +41,7 @@ Dev.Detect >LDYA L.MSG.DETECT stz ZPSlotPtr lda #$C1 + .1 sta ZPSlotPtr+1 ldx #DEVSIG.Value-DEVSIG.Offset-1 @@ -115,7 +116,7 @@ FD.DEV .DA #S.FD.T.CDEV .BS 2 DRVPTR .DA 0 DCBPTR .DA 0 BUFPTR -FD.DEV.NAME .AZ "MOUx" +FD.DEV.NAME .AZ "moux" *-------------------------------------- * Driver Code *-------------------------------------- @@ -148,15 +149,20 @@ STATUS >STYA ZPIOCTL ldy #S.IOCTL.STATCODE lda (ZPIOCTL),y beq .1 + cmp #S.IOCTL.STATCODE.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 @@ -169,46 +175,47 @@ CONTROL >STYA ZPBufPtr NON STANDARD php sei + ldy #0 ldx #0 set X jsr SETCLAMP + ldy #4 ldx #1 set Y jsr SETCLAMP - ldy #HOMEMOUSE - jsr GOMOUSE - plp - clc - rts + ldy #HOMEMOUSE + bra EXIT *-------------------------------------- OPEN php sei + lda #S.DIB.S.OPENED + tsb DIB+S.DIB.S + ldx DEVSLOT0n lda MOUSEMODx,x keep if VBLInt already activated by kernel and #MOUSEMODx.INTVBL ora #MOUSEMODx.ACTIVE Enable, Polling mode ldy #SETMOUSE jsr GOMOUSE - ldy #INITMOUSE Reset - jsr GOMOUSE - lda #S.DIB.S.OPENED - tsb DIB+S.DIB.S - plp - clc - rts + ldy #INITMOUSE Reset + bra EXIT *-------------------------------------- CLOSE php sei + + lda #S.DIB.S.OPENED + trb DIB+S.DIB.S + ldx DEVSLOT0n lda MOUSEMODx,x keep if VBLInt already activated by kernel and #MOUSEMODx.INTVBL Disable ALL but VBLInt if previously active ldy #SETMOUSE - jsr GOMOUSE - lda #S.DIB.S.OPENED - trb DIB+S.DIB.S + +EXIT jsr GOMOUSE + plp clc rts @@ -220,14 +227,17 @@ READ >STYA ZPBufPtr NON STANDARD php sei - sta SET80STORE +* sta SET80STORE sta CLRPAGE2 + * ldy #READMOUSE DONE BY IRQ MANAGER * jsr GOMOUSE + ldx DEVSLOT0n lda MOUSESTSx,x and #MOUSESTSx.MOVED beq .1 + ldy #S.MOUSE.X1 lda MOUSEXLOx,x @@ -249,12 +259,16 @@ READ >STYA ZPBufPtr NON STANDARD .1 lda MOUSESTSx,x and #MOUSESTSx.DOWN+MOUSESTSx.LDOWN beq .8 no button state change:up & previously up + cmp #MOUSESTSx.DOWN+MOUSESTSx.LDOWN beq .8 no button state change:down & previously down + asl if CS, down & previously up bcc .2 + lda #S.MOUSE.S.DOWN tsb READ.S+1 button has been pressed, start drag... + lda MOUSEXLOx,x sta SrcDrag lda MOUSEXHIx,x @@ -264,29 +278,38 @@ READ >STYA ZPBufPtr NON STANDARD lda MOUSEYHIx,x sta SrcDrag+3 bra .8 + .2 lda READ.S+1 pha save move state ora #S.MOUSE.S.UP sta READ.S+1 pla get back move state bne .4 no move...click! + lda #S.MOUSE.S.CLK bit bDblClick bpl .3 + lda #S.MOUSE.S.DCLK + ldy #1 sty bDblClick + .3 dec bDblClick tsb READ.S+1 bra .8 + .4 lda #S.MOUSE.S.DRAGSTART tsb READ.S+1 + ldy #S.MOUSE.X2+3 + .5 lda SrcDrag-S.MOUSE.X2,y sta (ZPBufPtr),y dey bpl .5 + .8 plp READ.S lda #$ff SELF MODIFIED @@ -305,6 +328,7 @@ READ.S lda #$ff SELF MODIFIED *-------------------------------------- SETCLAMP lda (ZPBufPtr),y sta LOCLAMPLO + iny lda (ZPBufPtr),y sta LOCLAMPHI @@ -316,6 +340,7 @@ SETCLAMP lda (ZPBufPtr),y iny lda (ZPBufPtr),y sta HICLAMPHI + txa ldy #CLAMPMOUSE *-------------------------------------- @@ -339,6 +364,11 @@ DIB .DA #0 .DA K.VER *-------------------------------------- DRV.END +*-------------------------------------- + .LIST ON +DRV.CS.SIZE .EQ DRV.CS.END-DRV.CS.START +DRV.SIZE .EQ DRV.END-DRV.CS.START + .LIST OFF MAN SAVE usr/src/drv/mouse.drv.s ASM diff --git a/LIB/LIBGUI.S.DRAW.txt b/LIB/LIBGUI.S.DRAW.txt index e4619f03..316018ab 100644 --- a/LIB/LIBGUI.S.DRAW.txt +++ b/LIB/LIBGUI.S.DRAW.txt @@ -262,10 +262,7 @@ DrawLine.IncX lda DX bra .1 .8 rts *-------------------------------------- -DrawText >LDYA L.CB.Cache - ldx #0 - - >SYSCALL2 OSD +DrawText jsr GFXWrite.CB bcs .9 jsr GFXWrite.CB lda CB.Cache+S.CB.SrcPtr