diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index d2ed530d..a34b43cc 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/GTEST.S.txt b/BIN/GTEST.S.txt index 06348214..e69f8965 100644 --- a/BIN/GTEST.S.txt +++ b/BIN/GTEST.S.txt @@ -41,10 +41,12 @@ L.DEVNAME.GFX .DA DEVNAME.GFX L.FONTFILE .DA FONTFILE L.FONTFILEB .DA FONTFILEB L.PIXFILE .DA PIXFILE +L.LOGOFILE .DA LOGOFILE L.CB.RECT .DA CB.RECT L.CB.TEXTB .DA CB.TEXTB L.CB.TEXT .DA CB.TEXT L.CB.PIX .DA CB.PIX +L.CB.LOGO .DA CB.LOGO L.CB.Apple .DA CB.Apple L.BM.Apple .DA BM.Apple L.MESSAGEB .DA MESSAGEB @@ -53,23 +55,26 @@ L.MESSAGE .DA MESSAGE .DA 0 *-------------------------------------- CS.INIT clc - rts +CS.INIT.RTS rts *-------------------------------------- CS.RUN jsr GFX.Open - bcs .9 + bcs CS.INIT.RTS jsr LoadResources - bcs .9 + bcs CS.INIT.RTS >LDYA L.CB.RECT jsr GFX.Write.YA - >LDYA L.BM.Apple - >STYA CB.Apple+S.CB.SrcPtr - >LDYA L.CB.PIX jsr GFX.Write.YA + >LDYA L.CB.LOGO + jsr GFX.Write.YA + + >LDYA L.BM.Apple + >STYA CB.Apple+S.CB.SrcPtr + >LDYA L.CB.Apple jsr GFX.Write.YA @@ -77,7 +82,7 @@ CS.RUN jsr GFX.Open sta CB.TEXTB+S.CB.hFont >LDYA L.MESSAGEB >STYA CB.TEXTB+S.CB.TxtPtr - + >LDYA L.CB.TEXTB jsr GFX.Write.YA bcs .9 @@ -108,15 +113,28 @@ CS.DOEVENT clc CS.QUIT lda hFont beq .1 >SYSCALL FreeStkObj + .1 lda hFontB beq .2 >SYSCALL FreeStkObj + .2 lda CB.PIX+S.CB.SrcPtr beq .3 - >SYSCALL FreeStkObj -.3 +.3 lda CB.LOGO+S.CB.SrcPtr + beq .4 + >SYSCALL FreeStkObj + +.4 lda CB.TEXTB+S.CB.SrcPtr + beq .5 + >SYSCALL FreeStkObj + +.5 lda CB.TEXT+S.CB.SrcPtr + beq .6 + >SYSCALL FreeStkObj + +.6 lda hDevGFX beq .8 * >DEBUG @@ -131,7 +149,7 @@ LoadResources >PUSHW L.FONTFILE >PUSHBI $CC Type >PUSHWZ Aux type >SYSCALL LoadStkObj - bcs .9 + bcs .99 stx hFont >PUSHW L.FONTFILEB @@ -147,9 +165,17 @@ LoadResources >PUSHW L.FONTFILE >PUSHBI $CB Type >PUSHWZ Aux type >SYSCALL LoadStkObj - bcs .9 +.99 bcs .9 stx CB.PIX+S.CB.SrcPtr + >PUSHW L.LOGOFILE + >PUSHBI O.RDONLY + >PUSHBI $CB Type + >PUSHWZ Aux type + >SYSCALL LoadStkObj + bcs .9 + stx CB.LOGO+S.CB.SrcPtr + .9 rts *-------------------------------------- GFX.Open >PUSHBI 0 @@ -172,8 +198,9 @@ DEVNAME.GFX .AZ "/dev/gfx" FONTFILE .AZ "${ROOT}sbin/sysx7" FONTFILEB .AZ "${ROOT}sbin/sysx7b" PIXFILE .AZ "${ROOT}root/guitest/marilyn" +LOGOFILE .AZ "${ROOT}A2osX.logo" MESSAGEB .AZ " DHGR Driver & OSD 'Off-Screen Driver' Test (SYSX7B Font, Inverse) " -MESSAGE .AZ " 1234567890 abcdefghijklmnopqrstuvwxyz { + - * / } (SYSX7B Font, Normal) " +MESSAGE .AZ " 1234567890 abcdefghijklmnopqrstuvwxyz { + - * / } (SYSX7 Font, Normal) " CB.RECT .DA #S.CB.CMD.FILLRECT .DA #S.CB.OP.SET @@ -210,6 +237,19 @@ CB.PIX .DA #S.CB.CMD.BITBLT .BS 2 SrcPtr .DA 0 DSTPTR +CB.LOGO .DA #S.CB.CMD.BITBLT + .DA #S.CB.OP.SET+S.CB.OP.COLOR + .DA #S.CB.M.C16 + .DA #0 + .DA 0 X1 + .DA 0 Y1 + .DA 320 SrcW + .DA 40 SrcH + .DA 200 DstX + .DA 50 DstY + .BS 2 SrcPtr + .DA 0 DSTPTR + CB.TEXTB .DA #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD .DA #S.CB.OP.SET+S.CB.OP.INVERSE .DA #S.CB.M.MONO diff --git a/DRV/DHGR.DRV.S.BLT.txt b/DRV/DHGR.DRV.S.BLT.txt index ff97edce..eee61278 100644 --- a/DRV/DHGR.DRV.S.BLT.txt +++ b/DRV/DHGR.DRV.S.BLT.txt @@ -197,7 +197,8 @@ BITBLT.LOOP0 lda CB.Cache+S.CB.OP inc BLT.BMDataPtr+1 .5 jmp BITBLT.LOOP0 -.8 rts +.8 clc + rts *------------ Shift 1->6 Comment : SCRBitOfs=X=3 BITBLT.LOOPx lda CB.Cache+S.CB.OP X = BLT.SCRBitOfs @@ -281,7 +282,8 @@ BITBLT.LOOPx.7 and #$ff SELF MODIFIED : #%01110000 get only col2 bites inc BLT.BMDataPtr+1 .2 jmp BITBLT.LOOPx -.8 rts +.8 clc + rts *-------------------------------------- * BM Data/Mask bits : * 76543210 76543210 diff --git a/DRV/DHGR.DRV.S.OSD.txt b/DRV/DHGR.DRV.S.OSD.txt index a537b72f..fb595b57 100644 --- a/DRV/DHGR.DRV.S.OSD.txt +++ b/DRV/DHGR.DRV.S.OSD.txt @@ -14,7 +14,8 @@ GBYTE .EQ ZPDRV+17 GBYTE2 .EQ ZPDRV+18 GWORD .EQ ZPDRV+20 -TXTPTR .EQ ZPDRV+22 +*-------------------------------------- +TXTPTR .EQ $B8 *-------------------------------------- * Y,A = Ptr to S.CB in MAIN *-------------------------------------- @@ -59,7 +60,7 @@ X.OSD ldy CBX.Cache+S.CB.DstPtr *-------------------------------------- OSD.SETPIXEL >LDYA CBX.Cache+S.CB.Y1 ldx DstBM.Cache+S.BM.RowBytes - jsr YAMultX + jsr OSD.YAMultX pha tya clc @@ -174,11 +175,14 @@ OSD.GETTEXTSIZE clc lda CBX.Cache+S.CB.hFONT >SYSCALL2 GetMemPtr >STYA ZPFontPtr + ldy #S.FON-1 + .1 lda (ZPFontPtr),y sta FON.Cache,y dey bpl .1 + lda ZPFontPtr clc adc #S.FON @@ -186,6 +190,7 @@ OSD.GETTEXTSIZE clc lda ZPFontPtr+1 adc /S.FON sta ZPTablePtr+1 + .2 >LDYA CBX.Cache+S.CB.TxtPtr >STYA TXTPTR stz CBX.Cache+S.CB.SrcW @@ -194,13 +199,10 @@ OSD.GETTEXTSIZE clc lda FON.Cache+S.FON.PixH sta CBX.Cache+S.CB.SrcH stz CBX.Cache+S.CB.SrcH+1 + .3 jsr OSD.TXTPTR.GetNext beq .4 - inc TXTPTR - bne .31 - inc TXTPTR+1 -.31 jsr OSD.FON.GetChar lda (ZPCharPtr) Get Char PixelW sec @@ -215,14 +217,18 @@ OSD.GETTEXTSIZE clc ldx CBX.Cache+S.CB.SrcW+1 ldy CBX.Cache+S.CB.SrcH bcc OSD.DRAWTEXT.RTS + sta DstBM.Cache+S.BM.W stx DstBM.Cache+S.BM.W+1 sty DstBM.Cache+S.BM.H stz DstBM.Cache+S.BM.H+1 + lda #S.BM.F.BBP1 sta DstBM.Cache+S.BM.F + jsr OSD.BM.Create bcs OSD.DRAWTEXT.RTS + sta OSD.DRAWTEXT.END+1 save hBM, ZPDstBMPtr=BMData >LDYA CBX.Cache+S.CB.TxtPtr >STYA TXTPTR @@ -234,11 +240,6 @@ OSD.DRAWTEXT.LOOP jsr OSD.TXTPTR.GetNext beq OSD.DRAWTEXT.END - inc TXTPTR - bne .31 - inc TXTPTR+1 -.31 - jsr OSD.FON.GetChar lda (ZPCharPtr) Char PixW sta GBYTE @@ -493,7 +494,7 @@ OSD.BM.Create lda DstBM.Cache+S.BM.W ror DstBM.Cache+S.BM.RowBytes >LDYA DstBM.Cache+S.BM.H ldx DstBM.Cache+S.BM.RowBytes - jsr YAMultX Compute BM total bytes + jsr OSD.YAMultX Compute BM total bytes pha eor #$ff sta ZPTmpPtr+1 @@ -573,7 +574,7 @@ OSD.YAMultX stx GBYTE CB.Update sta CLRWRITEAUX ldx CBX.Cache - ldy CB.CmdLen,x + ldy CBX.CmdLen,x .1 lda CBX.Cache,y sta (ZPCmdPtr),y @@ -585,6 +586,20 @@ CB.Update sta CLRWRITEAUX clc rts *-------------------------------------- +OSD.TXTPTR.GetNext + jmp ($a000) +*-------------------------------------- +CBX.CmdLen .DA #S.CB.Y1+1 SETPIXEL + .DA #S.CB.Y1+1 GETPIXEL + .DA #S.CB.X2+1 HLINE + .DA #S.CB.Y2+1 VLINE + .DA #S.CB.Y2+1 FILLRECT + .DA #S.CB.DstPtr+1 BITBLT + .DA #S.CB.DstPtr+1 GETRECTBUFSIZE + .DA #S.CB.Y2+1 DRAWLINE + .DA #S.CB.TxtPtr+1 DRAWTEXT + .DA #S.CB.SrcH+1 GETTEXTSIZE +*-------------------------------------- CBX.Cache .BS S.CB FON.Cache .BS S.FON SrcBM.Cache .BS S.BM diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index cfac7e1d..b1b80d9f 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -81,6 +81,7 @@ Dev.Detect >LDYA L.MSG.DETECT bit DCB+S.DCB.GFX.S bmi .3 + >LDYA L.MSG.DETECT.80C .3 >SYSCALL PutS @@ -107,6 +108,7 @@ Dev.Detect >LDYA L.MSG.DETECT sta SETWRITEAUX >STYA $800 sta CLRWRITEAUX + sta SETHIRES sta SET80STORE @@ -231,31 +233,23 @@ OSD.install >LDYA L.OSD inc ZPPtr2+1 bra .1 -.3 ldy #OSD.TXTPTR.GetNext.LEN-1 - -.4 lda OSD.TXTPTR.GetNext,y - sta SETPAGE2 - sta $2000+240,y - sta CLRPAGE2 - sta $2000+240,y - dey - bpl .4 - -.8 sta CLRWRITEAUX +.3 sta CLRWRITEAUX rts *-------------------------------------- ClrScr ldx #0 txa lda #0 + .1 ldy BASEL,x sty ZPPtr1 ldy BASEH,x sty ZPPtr1+1 + sta SETPAGE2 - jsr .2 + sta CLRPAGE2 - jsr .2 + inx cpx #192 bne .1 @@ -263,9 +257,11 @@ ClrScr ldx #0 rts .2 ldy #39 + .3 sta (ZPPtr1),y dey bpl .3 + rts *-------------------------------------- CS.END @@ -475,7 +471,6 @@ WRITE >STYA ZPIOCTL NON STANDARD bpl .3 sta SETREADAUX - jsr X.OSD sta CLRREADAUX sta CLRWRITEAUX @@ -636,15 +631,6 @@ DRV.END OSD .PH $1000 .INB usr/src/drv/dhgr.drv.s.osd .EP -*-------------------------------------- - .PH $2000+240 -OSD.TXTPTR.GetNext - sta CLRREADAUX - lda (TXTPTR) - sta SETREADAUX - rts -OSD.TXTPTR.GetNext.LEN .EQ *-OSD.TXTPTR.GetNext - .EP *-------------------------------------- .LIST ON DRV.CS.SIZE .EQ DRV.CS.END-DRV.CS.START diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index 6a271c10..c057e43e 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -14,7 +14,6 @@ NEW .INB inc/mli.e.i .INB inc/net.telnet.i .INB inc/xy.mouse.i -* .INB inc/gfx.i .INB inc/kernel.i .INB usr/src/sys/kernel.s.def @@ -48,6 +47,9 @@ A2osX.AUX .DA #0 .DA A2osX.AUX.S A2osX.AUX.B .PH Mem.XHiMem + + .DA SHARED.TXTPTR.GetNext + .INB usr/src/sys/kernel.s.termx .INB usr/src/sys/kernel.s.strvx .INB usr/src/sys/kernel.s.envx