diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index dc5f8b6c..ef5170ef 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index d35de2c7..87fa7ea5 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/DRV/DHGR.DRV.S.BLT.txt b/DRV/DHGR.DRV.S.BLT.txt index 136e17ae..bd5fea36 100644 --- a/DRV/DHGR.DRV.S.BLT.txt +++ b/DRV/DHGR.DRV.S.BLT.txt @@ -19,7 +19,7 @@ AUTO 6 *-------------------------------------- BITBLT >LDYA CB.CACHE+S.CB.SrcPtr >STYA ZPBMDataPtr - + ldy #S.BM-1 .1 lda (ZPBMDataPtr),y @@ -27,6 +27,14 @@ BITBLT >LDYA CB.CACHE+S.CB.SrcPtr dey bpl .1 + lda ZPBMDataPtr + clc + adc BM.Cache+S.BM.MASK.OFS + sta ZPBMMaskPtr + lda ZPBMDataPtr+1 + adc BM.Cache+S.BM.MASK.OFS+1 + sta ZPBMMaskPtr+1 + lda ZPBMDataPtr clc adc #S.BM @@ -43,19 +51,19 @@ BITBLT >LDYA CB.CACHE+S.CB.SrcPtr pha tya clc - adc ZPBMDataPtr0 - sta ZPBMDataPtr0 + adc ZPBMDataPtr + sta BLT.BMDataPtr pla pha - adc ZPBMDataPtr0+1 - sta ZPBMDataPtr0+1 + adc ZPBMDataPtr+1 + sta BLT.BMDataPtr+1 tya - adc BM.Cache+S.BM.MASK.OFS - sta ZPBMMaskPtr0 + adc ZPBMMaskPtr + sta BLT.BMMaskPtr pla - adc BM.Cache+S.BM.MASK.OFS+1 - sta ZPBMMaskPtr0+1 + adc ZPBMMaskPtr+1 + sta BLT.BMMaskPtr+1 lda CB.Cache+S.CB.X1 pha @@ -72,133 +80,141 @@ BITBLT >LDYA CB.CACHE+S.CB.SrcPtr pha clc - adc ZPBMDataPtr0 - sta ZPBMDataPtr0 + adc BLT.BMDataPtr + sta BLT.BMDataPtr bcc .3 - inc ZPBMDataPtr0+1 + inc BLT.BMDataPtr+1 .3 pla - adc ZPBMMaskPtr0 - sta ZPBMMaskPtr0 + adc BLT.BMMaskPtr + sta BLT.BMMaskPtr bcc .4 - inc ZPBMMaskPtr0+1 + inc BLT.BMMaskPtr+1 -.4 lda S.CB.X2 +.4 lda CB.Cache+S.CB.X2 sec - sbc S.CB.X1 + sbc CB.Cache+S.CB.X1 sta BLT.DX - lda S.CB.X2+1 - sbc S.CB.X1+1 + lda CB.Cache+S.CB.X2+1 + sbc CB.Cache+S.CB.X1+1 sta BLT.DX+1 - >LDYA S.CB.DestX + >LDYA CB.Cache+S.CB.DestX jsr LBUF.SetBounds1YA stx BLT.SCRBitOfs - lda S.CB.DestX + lda CB.Cache+S.CB.DestX clc adc BLT.DX tay - lda S.CB.DestX+1 + lda CB.Cache+S.CB.DestX+1 adc BLT.DX+1 jsr LBUF.SetBounds2YA - lda S.CB.Y2 + lda CB.Cache+S.CB.Y2 sec - sbc S.CB.Y1 + sbc CB.Cache+S.CB.Y1 + inc sta BLT.DY - lda BLT.BMBitOfs - sta BLT.BMBitOfsL - lda LBUF.C1 - sta BLT.ScreenC - - >LDYA ZPBMDataPtr0 - >STYA ZPBMDataPtr - >LDYA ZPBMMaskPtr0 - >STYA ZPBMMaskPtr - ldx BLT.SCRBitOfs beq BITBLT.LOOP ldy Shift.L.LO,x X = 1->6 - sty ZPShiftPtr - + sty ZPScrShiftPtr ldy Shift.L.HI,x X = 1->6 - sty ZPShiftPtr+1 - + sty ZPScrShiftPtr+1 -BITBLT.LOOP ldx BLT.SCRBitOfs +BITBLT.LOOP >LDYA BLT.BMDataPtr + >STYA ZPBMDataPtr + >LDYA BLT.BMMaskPtr + >STYA ZPBMMaskPtr + + lda BLT.BMBitOfs + sta BLT.BMBitOfsL + stz BLT.BMIdx + + ldx LBUF.C1 + stx BLT.ScrColIdx + stz LBUF.DATA,x make sure C1 not ORed with trash in "ora LBUF.DATA,x" + + ldx BLT.SCRBitOfs bne .2 +*------------ Shift 0 + .1 jsr BLT.Get7BMDBits we have 0xxxxxxxx in A - ldx BLT.ScreenC + ldx BLT.ScrColIdx sta LBUF.DATA,x - inc BLT.ScreenC + inc BLT.ScrColIdx cpx LBUF.C2 bne .1 bra BITBLT.DRAW + +*------------ Shift 1->6 Comment : SCRBitOfs=X=3 -.2 jsr BLT.Get7BMDBits we have 0xxxxxxxx in A +.2 lda Shift7BitsCol1,x get #%00001111, BM bits that go in Col1 + sta .4+1 + lda Shift7BitsCol2,x get #%01110000, BM bits that go in Col2 + sta .5+1 + +.3 jsr BLT.Get7BMDBits we have c6543210 in A, destination : COL=3210xxx, COL+1=xxxx654 - pha save it for 2nd part + pha save BM byte for 2nd col - ldx BLT.SCRBitOfs - and Mask7BitsH,x 0000xxxx, keep col1 bits only +.4 and #$ff SELF MODIFIED : MASK WITH #%00001111, keep col1 bits only tay - lda (ZPShiftPtr),y make 0xxxx000 + lda (ZPScrShiftPtr),y make 0000dddd Shift left 3 : 0dddd000 - ldy BLT.ScreenC - ora LBUF.DATA,y - sta LBUF.DATA,y + ldx BLT.ScrColIdx Get actual COL index + ora LBUF.DATA,x Light proper bits : 0dddd??? + sta LBUF.DATA,x store 0xdddd??? - pla + pla Get back BM Byte - inc BLT.ScreenC - cpy LBUF.C2 - beq BITBLT.DRAW - - and Mask7BitsL,x 0yyy0000 +.5 and #$ff SELF MODIFIED : #%01110000 get only col2 bites tay - lda (ZPShiftPtr),y 00000yyy + lda (ZPScrShiftPtr),y shift right 4 (=shift left 3!!!) : 00000ddd - ldy BLT.ScreenC - sta LBUF.DATA,y + sta LBUF.DATA+1,x - inc BLT.ScreenC - cpy LBUF.C2 - bne .2 - -BITBLT.DRAW ldy S.CB.Y1 + inx + stx BLT.ScrColIdx + cpx LBUF.C2 + bne .3 + +BITBLT.DRAW ldy CB.Cache+S.CB.DestY jsr LBUF.DrawAtY - inc S.CB.Y1 + inc CB.Cache+S.CB.DestY - lda ZPBMDataPtr0 + lda BLT.BMDataPtr clc adc BM.Cache+S.BM.RowBytes - sta ZPBMDataPtr0 + sta BLT.BMDataPtr bcc .6 - inc ZPBMDataPtr0+1 + inc BLT.BMDataPtr+1 -.6 lda ZPBMMaskPtr0 +.6 lda BLT.BMMaskPtr clc adc BM.Cache+S.BM.RowBytes - sta ZPBMMaskPtr0 + sta BLT.BMMaskPtr bcc .7 - inc ZPBMMaskPtr0+1 + inc BLT.BMMaskPtr+1 .7 dec BLT.DY - bne BITBLT.LOOP - clc + beq .8 + jmp BITBLT.LOOP + +.8 clc rts *-------------------------------------- * BMD/BMM bits : @@ -210,8 +226,9 @@ BITBLT.DRAW ldy S.CB.Y1 * ^ * SCRBitOfs (0->6) *-------------------------------------- -BLT.Get7BMDBits lda (ZPBMDataPtr) - +BLT.Get7BMDBits ldy BLT.BMIdx + lda (ZPBMDataPtr),y + ldx BLT.BMBitOfsL beq BLT.Get7BMBits0 OFS=0, done! and no need to advance ZPBMDataPtr lsr OFS=1->7, shift one (Range 0->127) @@ -219,28 +236,28 @@ BLT.Get7BMDBits lda (ZPBMDataPtr) beq BLT.Get7BMBits1 OFS was 1....done and go to next byte, OFS=0 ldy Shift.R.LO,x X = 1->6 - sty ZPShiftPtr + sty ZPBMShiftPtr ldy Shift.R.HI,x X = 1->6 - sty ZPShiftPtr+1 + sty ZPBMShiftPtr+1 - and Mask7BitsL,x Get only left upper X bits + and Mask7BitsH,x Get only left upper X bits tay xxxxx000 - lda (ZPShiftPtr),y shift'em RIGHT 000xxxxx + lda (ZPBMShiftPtr),y shift'em RIGHT 000xxxxx pha - inc ZPBMDataPtr Next BM data byte - bne .2 - inc ZPBMDataPtr+1 + inc BLT.BMIdx Next BM data byte -.2 lda (ZPBMDataPtr) get next byte - and Mask7BitsH,x only first Y bits 000000yy + ldy BLT.BMIdx + lda (ZPBMDataPtr),y get next byte + + and Mask7BitsL,x only first Y bits 000000yy tay pla get back right part bits 000xxxxx - ora (ZPShiftPtr),y shift right 000000yy and ORA with 000xxxxx=0yyxxxxx + ora (ZPBMShiftPtr),y shift right 000000yy and ORA with 000xxxxx=0yyxxxxx dec BLT.BMBitOfsL X = 1->6, ADD 7 MOD 8..... rts @@ -251,12 +268,8 @@ BLT.Get7BMBits0 and #%01111111 Get only 7 needed bits rts BLT.Get7BMBits1 stz BLT.BMBitOfsL Was 1, add 7 bits, MOD 8=0 - - inc ZPBMDataPtr go to next byte - bne .1 - inc ZPBMDataPtr+1 - -.1 rts LSR did already 0xxxxxxx + inc BLT.BMIdx go to next byte in BM line + rts LSR did already 0xxxxxxx *-------------------------------------- MAN SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.RECT diff --git a/DRV/DHGR.DRV.S.LBUF.txt b/DRV/DHGR.DRV.S.LBUF.txt index cfb1d0bd..08984d17 100644 --- a/DRV/DHGR.DRV.S.LBUF.txt +++ b/DRV/DHGR.DRV.S.LBUF.txt @@ -18,10 +18,10 @@ LBUF.SetBounds1YA LBUF.SetBounds2YA jsr DIVMOD7YA A=DIV, X=MOD sta LBUF.C2 - + cmp LBUF.C1 C1=C2, go combine in C1 beq .1 - + lda C2.MASK,x sta LBUF.C2.MASK lda C2.DATA,x @@ -70,6 +70,7 @@ LBUF.DrawAtY.XOR lda LBUF.DATA,x get DATA bits and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 ora GBYTE + eor (ZPBasePtr),y sta (ZPBasePtr),y update screen inx @@ -81,7 +82,8 @@ LBUF.DrawAtY.XOR sta $C000,y ldy COL.OFS,x - lda LBUF.DATA,x set all bytes between C1+1 & C2-1 + lda LBUF.DATA,x + eor (ZPBasePtr),y sta (ZPBasePtr),y inx @@ -98,6 +100,7 @@ LBUF.DrawAtY.XOR lda LBUF.DATA,x get DATA bits and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 ora GBYTE + eor (ZPBasePtr),y sta (ZPBasePtr),y update screen .8 rts @@ -109,7 +112,7 @@ LBUF.DrawAtY.SET sta $C000,y ldy COL.OFS,x - lda (ZPBasePtr),y Get C1 + lda (ZPBasePtr),y data for Get C1 and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7 sta GBYTE lda LBUF.DATA,x get DATA bits @@ -121,7 +124,7 @@ LBUF.DrawAtY.SET 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 @@ -160,6 +163,7 @@ LBUF.DrawAtY.ORA lda LBUF.DATA,x get DATA bits and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 ora GBYTE + ora (ZPBasePtr),y sta (ZPBasePtr),y update screen inx @@ -172,6 +176,7 @@ LBUF.DrawAtY.ORA ldy COL.OFS,x lda LBUF.DATA,x set all bytes between C1+1 & C2-1 + ora (ZPBasePtr),y sta (ZPBasePtr),y inx @@ -188,6 +193,7 @@ LBUF.DrawAtY.ORA lda LBUF.DATA,x get DATA bits and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 ora GBYTE + ora (ZPBasePtr),y sta (ZPBasePtr),y update screen .8 rts @@ -205,6 +211,7 @@ LBUF.DrawAtY.AND lda LBUF.DATA,x get DATA bits and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 ora GBYTE + and (ZPBasePtr),y sta (ZPBasePtr),y update screen inx @@ -217,6 +224,7 @@ LBUF.DrawAtY.AND ldy COL.OFS,x lda LBUF.DATA,x set all bytes between C1+1 & C2-1 + and (ZPBasePtr),y sta (ZPBasePtr),y inx @@ -233,6 +241,7 @@ LBUF.DrawAtY.AND lda LBUF.DATA,x get DATA bits and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 ora GBYTE + and (ZPBasePtr),y sta (ZPBasePtr),y update screen .8 rts diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index 7f1331d6..7d1f0300 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -17,9 +17,9 @@ AUTO 6 *-------------------------------------- ZPCmdPtr .EQ ZPDRV ZPBasePtr .EQ ZPDRV+2 -ZPShiftPtr .EQ ZPDRV+4 -ZPBMDataPtr0 .EQ ZPDRV+6 -ZPBMMaskPtr0 .EQ ZPDRV+8 +ZPBMShiftPtr .EQ ZPDRV+4 + +ZPScrShiftPtr .EQ ZPDRV+8 ZPBMDataPtr .EQ ZPDRV+10 ZPBMMaskPtr .EQ ZPDRV+12 ZPBMSavePtr .EQ ZPDRV+14 @@ -171,7 +171,7 @@ OPEN sta A2osX.SCRNDEVS+2 DEV.ID in A inx lda L.SHIFT,x Get relocated HI BYTE - sta Shift.L.LO,y + sta Shift.L.HI,y inx iny cpx #12 @@ -181,11 +181,11 @@ OPEN sta A2osX.SCRNDEVS+2 DEV.ID in A ldy #6 .2 lda L.SHIFT,x Get relocated LO BYTE - sta Shift.L.LO,y + sta Shift.R.LO,y inx lda L.SHIFT,x Get relocated HI BYTE - sta Shift.L.LO,y + sta Shift.R.HI,y inx dey bne .2 @@ -402,12 +402,15 @@ LBUF.C2.DATA .BS 1 LBUF.MASK .BS 80 LBUF.DATA .BS 80 *-------------------------------------- -BLT.BMBitOfs .BS 1 -BLT.BMBitOfsL .BS 1 -BLT.SCRBitOfs .BS 1 +BLT.BMDataPtr .BS 2 +BLT.BMMaskPtr .BS 2 BLT.DX .BS 2 BLT.DY .BS 1 -BLT.ScreenC .BS 1 +BLT.BMBitOfs .BS 1 +BLT.BMBitOfsL .BS 1 +BLT.BMIdx .BS 1 +BLT.SCRBitOfs .BS 1 +BLT.ScrColIdx .BS 1 *-------------------------------------- GBYTE .BS 1 GWORD .BS 2 diff --git a/DRV/DHGR.DRV.T.txt b/DRV/DHGR.DRV.T.txt index b43ab504..4825578e 100644 --- a/DRV/DHGR.DRV.T.txt +++ b/DRV/DHGR.DRV.T.txt @@ -5,36 +5,69 @@ INC 1 AUTO 6 .LIST OFF *-------------------------------------- -Mask7BitsL .DA #01111111 Useless - .DA #01111110 - .DA #01111100 - .DA #01111000 - .DA #01110000 - .DA #01100000 - .DA #01000000 -Mask7BitsH .DA #00000000 Useless - .DA #00000001 - .DA #00000011 - .DA #00000111 - .DA #00001111 - .DA #00011111 - .DA #00111111 +Mask7BitsH .DA #%01111111 Useless + .DA #%01111110 + .DA #%01111100 + .DA #%01111000 + .DA #%01110000 + .DA #%01100000 + .DA #%01000000 + +Mask7BitsL .DA #%00000000 Useless + .DA #%00000001 + .DA #%00000011 + .DA #%00000111 + .DA #%00001111 + .DA #%00011111 + .DA #%00111111 *-------------------------------------- -C1.MASK .DA #%10000000 mod 0..... -C2.DATA .DA #%10000001 ->C1.DATA +Shift7BitsCol1 .DA #%01111111 Useless + .DA #%00111111 + .DA #%00011111 + .DA #%00001111 + .DA #%00000111 + .DA #%00000011 + .DA #%00000001 + +Shift7BitsCol2 .DA #%00000000 Useless + .DA #%01000000 + .DA #%01100000 + .DA #%01110000 + .DA #%01111000 + .DA #%01111100 + .DA #%01111111 +*-------------------------------------- +C1.MASK .DA #%10000000 Clear (AND) Col 1 bits + .DA #%10000001 .DA #%10000011 .DA #%10000111 .DA #%10001111 .DA #%10011111 - .DA #%10111111 ...to 6 -C1.DATA .DA #%11111111 -C2.MASK .DA #%11111110 + .DA #%10111111 + +C1.DATA .DA #%11111111 set (ORA) COL 1 bits + .DA #%11111110 .DA #%11111100 .DA #%11111000 .DA #%11110000 .DA #%11100000 .DA #%11000000 - .DA #%10000000 +*-------------------------------------- +C2.MASK .DA #%11111110 Clear (AND) Col 1 bits + .DA #%11111100 + .DA #%11111000 + .DA #%11110000 + .DA #%11100000 + .DA #%11000000 + .DA #%10000000 + +C2.DATA .DA #%10000001 set (ORA) COL 1 bits + .DA #%10000011 + .DA #%10000111 + .DA #%10001111 + .DA #%10011111 + .DA #%10111111 + .DA #%11111111 *-------------------------------------- Mono.NMasks .DA #%01111110 .DA #%01111101 @@ -82,19 +115,19 @@ Color.Masks .DA #%10001111,#%00000000,#%00000000,#%00000000 * c1110000 c3322221 c5444433 c6666555 Color.Pixels .DA #%00000000,#%00000000,#%00000000,#%00000000 black (color bit disable) .DA #%01111111,#%01111111,#%01111111,#%01111111 white (color bit disable) - .DA #%10010001,#%10100010,#%11000100,#%10001000 dark blue - .DA #%10100010,#%11000100,#%10001000,#%10010001 dark green - .DA #%10110011,#%11100110,#%11001100,#%10011001 medium blue - .DA #%11000100,#%10001000,#%10010001,#%10100010 brown + .DA #%10101010,#%11010101,#%10101010,#%11010101 grey1 .DA #%11010101,#%10101010,#%11010101,#%10101010 grey2 + .DA #%10010001,#%10100010,#%11000100,#%10001000 dark blue + .DA #%10110011,#%11100110,#%11001100,#%10011001 medium blue + .DA #%10111011,#%11110111,#%11101110,#%11011101 light blue + .DA #%10100010,#%11000100,#%10001000,#%10010001 dark green .DA #%11100110,#%11001100,#%10011001,#%10110011 green .DA #%11110111,#%11101110,#%11011101,#%10111011 aqua .DA #%10001000,#%10010001,#%10100010,#%11000100 Magenta .DA #%10011001,#%10110011,#%11100110,#%11001100 violet - .DA #%10101010,#%11010101,#%10101010,#%11010101 grey1 - .DA #%10111011,#%11110111,#%11101110,#%11011101 light blue - .DA #%11001100,#%10011001,#%10110011,#%11100110 orange .DA #%11011101,#%10111011,#%11110111,#%11101110 pink + .DA #%11000100,#%10001000,#%10010001,#%10100010 brown + .DA #%11001100,#%10011001,#%10110011,#%11100110 orange .DA #%11101110,#%11011101,#%10111011,#%11110111 yellow *-------------------------------------- COL.BANK .DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2 diff --git a/INC/LIBGUI.I.txt b/INC/LIBGUI.I.txt index 8a345f98..0496ae37 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -21,7 +21,7 @@ S.CB.OP.SET .EQ %00000010 replace screen with bitmap S.CB.OP.ORA .EQ %00000100 combine screen & bitmap -> Screen S.CB.OP.AND .EQ %00000110 Apply BitMap mask before painting S.CB.OP.SAVE .EQ %00010000 Save Screen to DstPtr before painting -S.CB.OP.RESTORE .EQ %00100000 Restore Screen From 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.MODE .EQ 2 S.CB.MODE.MONO .EQ %00000001 b/w (1 bit/pixel) diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 9e7ae4cb..b7eafef2 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -43,6 +43,8 @@ L.MouseData .DA MouseData L.Rect.CB .DA Rect.CB L.SetPixel.CB .DA SetPixel.CB L.DrawLines.CB .DA DrawLines.CB +L.Filename .DA Filename +L.BitBlT.CB .DA BitBlT.CB .DA 0 *-------------------------------------- CS.INIT >LDYA L.MSG.INIT @@ -222,8 +224,32 @@ Destop.Paint >PUSHW L.Rect.CB cmp #16 bne .1 -.4 - >PUSHW L.DrawLines.CB +.4 >PUSHW L.DrawLines.CB + >LIBCALL hLIBGUI,LIBGUI.Draw + + >PUSHWI 0 Aux type + >PUSHBI $CB Type + >PUSHBI SYS.FOpen.R + >PUSHW L.FILENAME + >SYSCALL LoadFile + + txa + >SYSCALL GetMemPtr.A + >STYA BitBlT.CB+S.CB.SrcPtr + + >LDYAI 105 + >STYA BitBlT.CB+S.CB.DestX + >PUSHW L.BitBlt.CB + >LIBCALL hLIBGUI,LIBGUI.Draw + + >LDYAI 246 + >STYA BitBlT.CB+S.CB.DestX + >PUSHW L.BitBlt.CB + >LIBCALL hLIBGUI,LIBGUI.Draw + + >LDYAI 387 + >STYA BitBlT.CB+S.CB.DestX + >PUSHW L.BitBlt.CB >LIBCALL hLIBGUI,LIBGUI.Draw rts @@ -247,7 +273,7 @@ MouseData .BS 5 Rect.CB .DA #S.CB.CMD.FILLRECT .DA #S.CB.OP.SET .DA #S.CB.MODE.C16 - .DA #11 + .DA #2 .DA 0 .DA 0 .DA 559 @@ -258,36 +284,36 @@ Rect.CB .DA #S.CB.CMD.FILLRECT .DA #S.CB.MODE.MONO .DA #1 .DA 10 - .DA 10 - .DA 550 - .DA 180 - - .DA #S.CB.CMD.FILLRECT - .DA #S.CB.OP.ORA - .DA #S.CB.MODE.C16 - .DA #0 - .DA 20 - .DA 20 - .DA 540 - .DA 170 + .DA 5 + .DA 549 + .DA 186 .DA #S.CB.CMD.FILLRECT .DA #S.CB.OP.SET .DA #S.CB.MODE.C16 - .DA #9 - .DA 30 - .DA 30 - .DA 530 - .DA 160 + .DA #7 + .DA 20 + .DA 10 + .DA 539 + .DA 181 .DA #S.CB.CMD.FILLRECT - .DA #S.CB.OP.XOR + .DA #S.CB.OP.SET .DA #S.CB.MODE.C16 - .DA #8 + .DA #4 + .DA 30 + .DA 15 + .DA 529 + .DA 176 + + .DA #S.CB.CMD.FILLRECT + .DA #S.CB.OP.SET + .DA #S.CB.MODE.MONO + .DA #0 .DA 40 - .DA 40 - .DA 520 - .DA 150 + .DA 20 + .DA 519 + .DA 171 .DA #0 *-------------------------------------- @@ -356,12 +382,30 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE .DA #0 *-------------------------------------- +Filename >CSTR "/A2OSX.BUILD/MARILYN" +*-------------------------------------- +BitBlT.CB .DA #S.CB.CMD.BITBLT + .DA #S.CB.OP.SET + .DA #S.CB.MODE.MONO + .DA #0 + .DA 0 X1 + .DA 0 Y1 + .DA 140 X2 + .DA 149 y2 + .DA 196 DestX + .DA 21 DestY + .BS 2 SrcPtr + .DA 0 + + .DA #0 +*-------------------------------------- SetPixel.CB .DA #S.CB.CMD.SETPIXEL SetPixel.OP .BS 1 SetPixel.Mode .BS 1 SetPixel.Color .BS 1 SetPixel.X .BS 2 SetPixel.Y .BS 2 + .DA #0 *-------------------------------------- .DUMMY diff --git a/marilyn.bmp b/marilyn.bmp new file mode 100644 index 00000000..8a34be16 Binary files /dev/null and b/marilyn.bmp differ