diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index be969482..2f8ef37b 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 dc1d3bf3..be01b6e9 100644 --- a/BIN/GTEST.S.txt +++ b/BIN/GTEST.S.txt @@ -39,12 +39,15 @@ CS.START cld .DA CS.QUIT L.DEVNAME.GFX .DA DEVNAME.GFX L.FONTFILE .DA FONTFILE +L.FONTFILEB .DA FONTFILEB L.PIXFILE .DA PIXFILE 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.Apple .DA CB.Apple L.BM.Apple .DA BM.Apple +L.MESSAGEB .DA MESSAGEB L.MESSAGE .DA MESSAGE .DA 0 @@ -53,42 +56,50 @@ CS.INIT clc rts *-------------------------------------- CS.RUN jsr GFX.Open - bcs .99 + bcs .9 - >PUSHWZ Aux type - >PUSHBI $CC Type - >PUSHBI O.RDONLY - >LDYA L.FONTFILE - >SYSCALL LoadStkObj - bcs .99 - stx hFont - - >PUSHWZ Aux type - >PUSHBI $CB Type - >PUSHBI O.RDONLY - >LDYA L.PIXFILE - >SYSCALL LoadStkObj -.99 bcs .9 - stx CB.PIX+S.CB.SrcPtr + jsr LoadResources + bcs .9 >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.Apple jsr GFX.Write.YA + + + lda hFontB + sta CB.TEXTB+S.CB.hFont + + >LDYA L.MESSAGEB + >STYA CB.TEXTB+S.CB.TxtPtr + + >LDYA L.CB.TEXTB + >SYSCALL OSD + bcs .9 + + >LDYA L.CB.TEXTB + jsr GFX.Write.YA + + + lda hFont sta CB.TEXT+S.CB.hFont - + >LDYA L.MESSAGE >STYA CB.TEXT+S.CB.TxtPtr - + >LDYA L.CB.TEXT >SYSCALL OSD bcs .9 @@ -109,11 +120,11 @@ CS.QUIT lda hFont >SYSCALL FreeStkObj .1 lda hFontB - beq .1 + beq .2 >SYSCALL FreeStkObj - lda CB.PIX+S.CB.SrcPtr +.2 lda CB.PIX+S.CB.SrcPtr beq .3 >SYSCALL FreeStkObj @@ -129,6 +140,32 @@ CS.QUIT lda hFont clc rts *-------------------------------------- +LoadResources >PUSHWZ Aux type + >PUSHBI $CC Type + >PUSHBI O.RDONLY + >LDYA L.FONTFILE + >SYSCALL LoadStkObj + bcs .9 + stx hFont + + >PUSHWZ Aux type + >PUSHBI $CC Type + >PUSHBI O.RDONLY + >LDYA L.FONTFILEB + >SYSCALL LoadStkObj + bcs .9 + stx hFontb + + >PUSHWZ Aux type + >PUSHBI $CB Type + >PUSHBI O.RDONLY + >LDYA L.PIXFILE + >SYSCALL LoadStkObj + bcs .9 + stx CB.PIX+S.CB.SrcPtr + +.9 rts +*-------------------------------------- GFX.Open >PUSHBI 0 >LDYA L.DEVNAME.GFX >SYSCALL open @@ -145,9 +182,11 @@ GFX.Write.YA >PUSHYA *-------------------------------------- CS.END DEVNAME.GFX .AZ "/DEV/GFX" -FONTFILE .AZ "${ROOT}SBIN/GUI/SYSX7B" +FONTFILE .AZ "${ROOT}SBIN/GUI/SYSX7" +FONTFILEB .AZ "${ROOT}SBIN/GUI/SYSX7B" PIXFILE .AZ "${ROOT}ROOT/GUITEST/MARILYN" -MESSAGE .AZ " @@@ DHGR & OSD Drivers Test @@@ " +MESSAGEB .AZ " DHGR Driver & OSD 'Off-Screen Driver' Test (SYSX7B Font, Inverse) " +MESSAGE .AZ " 1234567890 abcdefghijklmnopqrstuvwxyz { + - * / } (SYSX7B Font, Normal) " CB.RECT .DA #S.CB.CMD.FILLRECT .DA #S.CB.OP.SET @@ -184,6 +223,19 @@ CB.PIX .DA #S.CB.CMD.BITBLT .BS 2 SrcPtr .DA 0 DSTPTR +CB.TEXTB .DA #S.CB.CMD.DRAWTEXT + .DA #S.CB.OP.SET+S.CB.OP.INVERSE + .DA #S.CB.M.MONO + .BS 1 hFONT + .DA 0 X1 + .DA 0 Y1 + .DA 0 X2 + .DA 0 Y2 + .DA 7 DstX + .DA 1 DstY + .BS 2 TXTPTR + .DA 0 DSTPTR + CB.TEXT .DA #S.CB.CMD.DRAWTEXT .DA #S.CB.OP.SET .DA #S.CB.M.MONO @@ -192,8 +244,8 @@ CB.TEXT .DA #S.CB.CMD.DRAWTEXT .DA 0 Y1 .DA 0 X2 .DA 0 Y2 - .DA 60 DstX - .DA 1 DstY + .DA 50 DstX + .DA 184 DstY .BS 2 TXTPTR .DA 0 DSTPTR diff --git a/INC/GFX.I.txt b/INC/GFX.I.txt index ed4d42d7..366405aa 100644 --- a/INC/GFX.I.txt +++ b/INC/GFX.I.txt @@ -59,10 +59,12 @@ S.CB.OP.SAVE .EQ %00010000 Save Screen to DstPtr before painting S.CB.OP.RESTORE .EQ %00100000 Restore Screen From DstPtr S.CB.OP.COLOR .EQ %01000000 Assume BitMap is COLOR -S.CB.OP.F.B .EQ %00010000 BOLD -S.CB.OP.F.I .EQ %00100000 ITALIC -S.CB.OP.F.U .EQ %01000000 UNDERLINED -S.CB.OP.F.G .EQ %10000000 GREYED +S.CB.OP.INVERSE .EQ %10000000 General Inverse Flag + +S.CB.OP.F.B .EQ %00000001 BOLD +S.CB.OP.F.I .EQ %00000010 ITALIC +S.CB.OP.F.U .EQ %00000100 UNDERLINED +S.CB.OP.F.G .EQ %00001000 GREYED S.CB.M .EQ 2 S.CB.M.MONO .EQ %00000001 b/w (1 bit/pixel) *S.CB.M.C4 .EQ %00000010 diff --git a/SYS/KERNEL.S.OSDX.txt b/SYS/KERNEL.S.OSDX.txt index cf6e8e96..61f4e6f6 100644 --- a/SYS/KERNEL.S.OSDX.txt +++ b/SYS/KERNEL.S.OSDX.txt @@ -8,6 +8,12 @@ ZPTablePtr .EQ ZPDRV+6 ZPCharPtr .EQ ZPDRV+8 ZPSrcBMPtr .EQ ZPDRV+10 ZPTmpPtr .EQ ZPDRV+14 + +ColIndex .EQ ZPDRV+16 +GBYTE .EQ ZPDRV+17 +GBYTE2 .EQ ZPDRV+18 + +GWORD .EQ ZPDRV+20 *-------------------------------------- * Y,A = Ptr to S.CB in MAIN *-------------------------------------- @@ -273,13 +279,13 @@ DRAWTEXT.LOOP jsr SHARED.TXTPTR.GetNext sec +1 for char spacing adc GWORD+1 Add Bit index in Col pha - and #7 mod 7 + and #7 mod 8 sta GWORD+1 Update Bit index in Col pla lsr lsr - lsr + lsr div 8 clc adc GWORD Update Col Index in BM sta GWORD @@ -333,6 +339,7 @@ DRAWTEXT.SHIFT0 lda FON.Cache+S.FON.PixH .10 pla get back Height counter dec bne .6 + rts *-------------------------------------- DRAWTEXT.SHIFT1 lda FON.Cache+S.FON.PixH @@ -369,21 +376,25 @@ DRAWTEXT.SHIFT1 lda FON.Cache+S.FON.PixH .4 pla get back Height counter dec - bne .1 + bne .1 + rts *-------------------------------------- +* X = ShiftL x2 (Range 4..10) +*-------------------------------------- DRAWTEXT.SHIFT26 - ldx GWORD+1 Get Bit Index for shifting - lda SHIFT8.LL-1,x + lda SHIFT8.L-4,x sta .3+1 - lda SHIFT8.LH-1,x + lda SHIFT8.L-3,x sta .3+2 - - lda SHIFT8.LL,x + + lda SHIFT8.L-2,x sta .4+1 - lda SHIFT8.LH,x + lda SHIFT8.L-1,x sta .4+2 + ldx GWORD+1 ShiftL Index + lda FON.Cache+S.FON.PixH .1 pha save Height counter @@ -411,7 +422,7 @@ DRAWTEXT.SHIFT26 and Last.Masks,x x = 2->6, for X=3 : A=xxx00000 lsr Range 0..127 !! A=0xxx0000 - tay but SHIFTL(x+1) A=00000xxx + tay but SHIFTL(X+1) A=00000xxx .4 lda $FFFF,y SELF MODIFIED @@ -582,8 +593,13 @@ BM.Create lda DstBM.Cache+S.BM.W sta ZPDstBMPtr+1 sta .4+2 - lda CB.Cache+S.CB.M Get Background color ldy #0 + + lda CB.Cache+S.CB.OP + and #S.CB.OP.INVERSE + beq .3 + + lda #$ff .3 inc ZPTmpPtr bne .4 @@ -651,10 +667,6 @@ CB.Cache .BS S.CB FON.Cache .BS S.FON SrcBM.Cache .BS S.BM DstBM.Cache .BS S.BM -ColIndex .BS 1 -GBYTE .BS 1 -GBYTE2 .BS 1 -GWORD .BS 2 *-------------------------------------- Mono.NMasks .DA #%11111110 .DA #%11111101 @@ -692,37 +704,44 @@ Last.Masks .DA #%00000000 Useless .DA #%11111100 .DA #%11111110 *-------------------------------------- -SHIFT8.LL .DA #SHIFT8.L1 - .DA #SHIFT8.L2 - .DA #SHIFT8.L3 - .DA #SHIFT8.L4 - .DA #SHIFT8.L5 - .DA #SHIFT8.L6 - .DA #SHIFT8.L7 -SHIFT8.LH .DA /SHIFT8.L1 - .DA /SHIFT8.L2 - .DA /SHIFT8.L3 - .DA /SHIFT8.L4 - .DA /SHIFT8.L5 - .DA /SHIFT8.L6 - .DA /SHIFT8.L7 +SHIFT8.L .DA SHIFT8.L2 + .DA SHIFT8.L3 + .DA SHIFT8.L4 + .DA SHIFT8.L5 + .DA SHIFT8.L6 + .DA SHIFT8.L7 *-------------------------------------- -SHIFT8.L1 .DA #%00000000,#%00000010,#%00000100,#%00000110,#%00001000,#%00001010,#%00001100,#%00001110 - .DA #%00010000,#%00010010,#%00010100,#%00010110,#%00011000,#%00011010,#%00011100,#%00011110 - .DA #%00100000,#%00100010,#%00100100,#%00100110,#%00101000,#%00101010,#%00101100,#%00101110 - .DA #%00110000,#%00110010,#%00110100,#%00110110,#%00111000,#%00111010,#%00111100,#%00111110 - .DA #%01000000,#%01000010,#%01000100,#%01000110,#%01001000,#%01001010,#%01001100,#%01001110 - .DA #%01010000,#%01010010,#%01010100,#%01010110,#%01011000,#%01011010,#%01011100,#%01011110 - .DA #%01100000,#%01100010,#%01100100,#%01100110,#%01101000,#%01101010,#%01101100,#%01101110 - .DA #%01110000,#%01110010,#%01110100,#%01110110,#%01111000,#%01111010,#%01111100,#%01111110 - .DA #%10000000,#%10000010,#%10000100,#%10000110,#%10001000,#%10001010,#%10001100,#%10001110 - .DA #%10010000,#%10010010,#%10010100,#%10010110,#%10011000,#%10011010,#%10011100,#%10011110 - .DA #%10100000,#%10100010,#%10100100,#%10100110,#%10101000,#%10101010,#%10101100,#%10101110 - .DA #%10110000,#%10110010,#%10110100,#%10110110,#%10111000,#%10111010,#%10111100,#%10111110 - .DA #%11000000,#%11000010,#%11000100,#%11000110,#%11001000,#%11001010,#%11001100,#%11001110 - .DA #%11010000,#%11010010,#%11010100,#%11010110,#%11011000,#%11011010,#%11011100,#%11011110 - .DA #%11100000,#%11100010,#%11100100,#%11100110,#%11101000,#%11101010,#%11101100,#%11101110 - .DA #%11110000,#%11110010,#%11110100,#%11110110,#%11111000,#%11111010,#%11111100,#%11111110 +*SHIFT8.LL .DA #SHIFT8.L1 +* .DA #SHIFT8.L2 +* .DA #SHIFT8.L3 +* .DA #SHIFT8.L4 +* .DA #SHIFT8.L5 +* .DA #SHIFT8.L6 +* .DA #SHIFT8.L7 +*SHIFT8.LH .DA /SHIFT8.L1 +* .DA /SHIFT8.L2 +* .DA /SHIFT8.L3 +* .DA /SHIFT8.L4 +* .DA /SHIFT8.L5 +* .DA /SHIFT8.L6 +* .DA /SHIFT8.L7 +*-------------------------------------- +*SHIFT8.L1 .DA #%00000000,#%00000010,#%00000100,#%00000110,#%00001000,#%00001010,#%00001100,#%00001110 +* .DA #%00010000,#%00010010,#%00010100,#%00010110,#%00011000,#%00011010,#%00011100,#%00011110 +* .DA #%00100000,#%00100010,#%00100100,#%00100110,#%00101000,#%00101010,#%00101100,#%00101110 +* .DA #%00110000,#%00110010,#%00110100,#%00110110,#%00111000,#%00111010,#%00111100,#%00111110 +* .DA #%01000000,#%01000010,#%01000100,#%01000110,#%01001000,#%01001010,#%01001100,#%01001110 +* .DA #%01010000,#%01010010,#%01010100,#%01010110,#%01011000,#%01011010,#%01011100,#%01011110 +* .DA #%01100000,#%01100010,#%01100100,#%01100110,#%01101000,#%01101010,#%01101100,#%01101110 +* .DA #%01110000,#%01110010,#%01110100,#%01110110,#%01111000,#%01111010,#%01111100,#%01111110 +* .DA #%10000000,#%10000010,#%10000100,#%10000110,#%10001000,#%10001010,#%10001100,#%10001110 +* .DA #%10010000,#%10010010,#%10010100,#%10010110,#%10011000,#%10011010,#%10011100,#%10011110 +* .DA #%10100000,#%10100010,#%10100100,#%10100110,#%10101000,#%10101010,#%10101100,#%10101110 +* .DA #%10110000,#%10110010,#%10110100,#%10110110,#%10111000,#%10111010,#%10111100,#%10111110 +* .DA #%11000000,#%11000010,#%11000100,#%11000110,#%11001000,#%11001010,#%11001100,#%11001110 +* .DA #%11010000,#%11010010,#%11010100,#%11010110,#%11011000,#%11011010,#%11011100,#%11011110 +* .DA #%11100000,#%11100010,#%11100100,#%11100110,#%11101000,#%11101010,#%11101100,#%11101110 +* .DA #%11110000,#%11110010,#%11110100,#%11110110,#%11111000,#%11111010,#%11111100,#%11111110 SHIFT8.L2 .DA #%00000000,#%00000100,#%00001000,#%00001100,#%00010000,#%00010100,#%00011000,#%00011100 .DA #%00100000,#%00100100,#%00101000,#%00101100,#%00110000,#%00110100,#%00111000,#%00111100 .DA #%01000000,#%01000100,#%01001000,#%01001100,#%01010000,#%01010100,#%01011000,#%01011100