NEW AUTO 3,1 .LIST OFF .OP 65C02 .OR $2000 .TF bin/gtest *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i .INB inc/kernel.i .INB inc/gfx.i *-------------------------------------- .DUMMY .OR ZPBIN ZS.START hDevGFX .BS 1 hFont .BS 1 hFontB .BS 1 ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA #0 #S.PS.F.EVENT S.PS.F .DA #0 .DA CS.END-CS.START Code Size (without Constants) .DA DS.END-DS.START Data Segment Size .DA #64 Stack Size .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT .DA CS.QUIT L.DEVNAME.GFX .DA DEVNAME.GFX L.FONTFILE .DA FONTFILE L.FONTFILEB .DA FONTFILEB L.PIXFILE .DA PIXFILE L.LOGOFILE .DA LOGOFILE L.PALETTEFILE .DA PALETTEFILE L.CB.RECT .DA CB.RECT L.CB.RECT2 .DA CB.RECT2 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.PALETTE .DA CB.PALETTE L.CB.Apple .DA CB.Apple L.BM.Apple .DA BM.Apple L.MESSAGEB .DA MESSAGEB L.MESSAGE .DA MESSAGE .DA 0 *-------------------------------------- CS.INIT clc CS.INIT.RTS rts *-------------------------------------- CS.RUN jsr GFX.Open bcs CS.INIT.RTS jsr LoadResources bcs CS.INIT.RTS >LDYA L.CB.RECT jsr GFX.Write.YA .1 >LDYA L.CB.RECT2 jsr GFX.Write.YA inc CB.RECT2+S.CB.COLOR lda CB.RECT2+S.CB.COLOR cmp #16 beq .3 lda CB.RECT2+S.CB.X1 clc adc #28 sta CB.RECT2+S.CB.X1 bcc .2 inc CB.RECT2+S.CB.X1+1 .2 lda CB.RECT2+S.CB.X2 clc adc #28 sta CB.RECT2+S.CB.X2 bcc .1 inc CB.RECT2+S.CB.X2+1 bra .1 .3 >LDYA L.CB.PIX jsr GFX.Write.YA >LDYA L.CB.LOGO jsr GFX.Write.YA >LDYA L.CB.PALETTE jsr GFX.Write.YA >LDYA L.BM.Apple >STYA CB.Apple+S.CB.SrcPtr >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 jsr GFX.Write.YA 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 jsr GFX.Write.YA bcs .9 >LDYA L.CB.TEXT jsr GFX.Write.YA lda #0 sec .9 rts *-------------------------------------- CS.DOEVENT clc rts *-------------------------------------- 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 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 * >SYSCALL close * >DEBUG .8 clc rts *-------------------------------------- LoadResources >PUSHW L.FONTFILE >PUSHBI O.RDONLY >PUSHBI $CC Type >PUSHWZ Aux type >SYSCALL LoadStkObj bcs .99 stx hFont >PUSHW L.FONTFILEB >PUSHBI O.RDONLY >PUSHBI $CC Type >PUSHWZ Aux type >SYSCALL LoadStkObj bcs .99 stx hFontb >PUSHW L.PIXFILE >PUSHBI O.RDONLY >PUSHBI $CB Type >PUSHWZ Aux type >SYSCALL LoadStkObj .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 >PUSHW L.PALETTEFILE >PUSHBI O.RDONLY >PUSHBI $CB Type >PUSHWZ Aux type >SYSCALL LoadStkObj bcs .9 stx CB.PALETTE+S.CB.SrcPtr .9 rts *-------------------------------------- GFX.Open >PUSHBI 0 >LDYA L.DEVNAME.GFX >SYSCALL open bcs .9 sta hDevGFX .9 rts *-------------------------------------- GFX.Write.YA pha >PUSHB hDevGFX >PUSHBI IOCTL.WRITE pla >PUSHYA >SYSCALL IOCTL rts *-------------------------------------- CS.END 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" LOGOFILE .AZ "${ROOT}root/BMP/A2osX.logo" PALETTEFILE .AZ "${ROOT}root/BMP/PALETTE" MESSAGEB .AZ " DHGR Driver & OSD 'Off-Screen Driver' Test (SYSX7B Font, Inverse) " MESSAGE .AZ " 1234567890 abcdefghijklmnopqrstuvwxyz { + - * / } (SYSX7 Font, Normal) " CB.RECT .DA #S.CB.CMD.FILLRECT .DA #S.CB.OP.SET .DA #S.CB.M.C16 .DA #6 Color .DA 20 .DA 10 .DA 540 .DA 182 CB.RECT2 .DA #S.CB.CMD.FILLRECT .DA #S.CB.OP.SET .DA #S.CB.M.C16 .DA #0 Color .DA 70 .DA 150 .DA 98 .DA 180 CB.Apple .DA #S.CB.CMD.BITBLT .DA #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.COLOR .DA #S.CB.M.C16 .DA #0 .DA 0 X1 .DA 0 Y1 .DA 16 SrcW .DA 7 SrcH .DA 20 DstX .DA 184 DstY .BS 2 SrcPtr .DA 0 DSTPTR CB.PIX .DA #S.CB.CMD.BITBLT .DA #S.CB.OP.SET+S.CB.OP.COLOR .DA #S.CB.M.MONO .DA #0 .DA 10 X1 .DA 20 Y1 .DA 120 SrcW .DA 100 SrcH .DA 60 DstX .DA 30 DstY .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.PALETTE .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 100 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 .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+S.CB.CMD.OSD .DA #S.CB.OP.SET .DA #S.CB.M.MONO .BS 1 hFONT .DA 0 X1 .DA 0 Y1 .DA 0 X2 .DA 0 Y2 .DA 50 DstX .DA 184 DstY .BS 2 TXTPTR .DA 0 DSTPTR *-------------------------------------- BM.Apple .DA #S.BM.F.BBP4 .DA #2 RowBytes .DA 16 W .DA 7 H .DA BM.Apple.AND-BM.Apple .HS 0006 green (8) .HS 6006 green (8) .HS EEEE yellow (15) .HS CC0C orange (14) .HS 8808 magenta (10) .HS 9999 violet (11) .HS 1001 Dark blue (4) BM.Apple.AND .HS FFF0 .HS 0FF0 .HS 0000 .HS 00F0 .HS 00F0 .HS 0000 .HS 0FF0 *-------------------------------------- .DUMMY .OR 0 DS.START DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/gtest.s ASM