diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index d4b8b9bc..26c4e84f 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 new file mode 100644 index 00000000..75aeb048 --- /dev/null +++ b/BIN/GTEST.S.txt @@ -0,0 +1,180 @@ +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 +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.CB.RECT .DA CB.RECT +L.CB.TEXT .DA CB.TEXT +L.CB.Apple .DA CB.Apple +L.BM.Apple .DA BM.Apple +L.MESSAGE .DA MESSAGE + + .DA 0 +*-------------------------------------- +CS.INIT clc + rts +*-------------------------------------- +CS.RUN jsr GFX.Open + bcs .9 + + >LDYA L.FONTFILE + >SYSCALL LoadStkObj + bcs .9 + stx hFont + + >LDYA L.CB.RECT + jsr GFX.Write.YA + >DEBUG + 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 + + >LDYA L.CB.TEXT + jsr GFX.Write.YA + >DEBUG + >LDYA L.BM.Apple + >STYA CB.Apple+S.CB.SrcPtr + + >LDYA L.CB.Apple + jsr GFX.Write.YA + + jsr GFX.Close + + lda #0 + sec +.9 rts +*-------------------------------------- +CS.DOEVENT clc + rts +*-------------------------------------- +CS.QUIT lda hFont + beq .8 + + >SYSCALL FreeStkObj + +.8 clc + rts +*-------------------------------------- +GFX.Open >PUSHBI 0 + >LDYA L.DEVNAME.GFX + >SYSCALL open + bcs .9 + + sta hDevGFX +.9 rts +*-------------------------------------- +GFX.Write.YA >PUSHYA + >PUSHBI IOCTL.WRITE + lda hDevGFX + >SYSCALL IOCTL + rts +*-------------------------------------- +GFX.Close lda hDevGFX + >SYSCALL close + rts +*-------------------------------------- +CS.END +DEVNAME.GFX .AZ "/DEV/GFX" +FONTFILE .AZ "${ROOT}SBIN/GUI/SYSX7" +MESSAGE .AZ " DHGR & OSD Drivers Test " + +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.TEXT .DA #S.CB.CMD.DRAWTEXT + .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 60 DstX + .DA 60 DstY + .BS 2 TXTPTR + .DA 0 DSTPTR + +CB.Apple .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 16 SrcW + .DA 7 SrcH + .DA 60 DstX + .DA 80 DstY + .BS 2 SrcPtr + .DA 0 DSTPTR + +*-------------------------------------- +BM.Apple .DA #S.BM.F.BBP4 + .DA #2 RowBytes + .DA 16 W + .DA 7 H + .DA 0 no MASK.OFS + + .HS FFF6 green (8) + .HS 6FF6 green (8) + .HS EEEE yellow (15) + .HS CCFC orange (14) + .HS 88F8 magenta (10) + .HS 9999 violet (11) + .HS 1FF1 Dark blue (4) +*-------------------------------------- + .DUMMY + .OR 0 +DS.START +DS.END + .ED +*-------------------------------------- +MAN +SAVE USR/SRC/BIN/GTEST.S +ASM diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index 3892b19e..72755f3f 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -123,32 +123,34 @@ Dev.Detect >LDYA L.MSG.DETECT .9 rts *-------------------------------------- -ClrScr ldx #191 +ClrScr ldx #0 lda #0 -.4 ldy BASEL,x +.1 ldy BASEL,x sty ZPPtr ldy BASEH,x sty ZPPtr+1 sta SETPAGE2 - ldy #39 + jsr .2 -.5 sta (ZPPtr),y - dey - bpl .5 - sta CLRPAGE2 - ldy #39 + jsr .2 -.6 sta (ZPPtr),y + inx + cpx #192 + bne .1 + + rts + +.2 ldy #39 + +.3 sta (ZPPtr),y dey - bpl .6 + bpl .3 - dex - bpl .4 rts *-------------------------------------- CS.END diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 1acdd543..969f3b20 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -289,7 +289,7 @@ SYS.PutPW .EQ $D4 * .EQ $D8 * .EQ $DA * .EQ $DC -SYS.OSD .EQ $DF +SYS.OSD .EQ $DE *-------------------------------------- SYS.GetMem .EQ $E0 SYS.GetMem0 .EQ $E2 diff --git a/INC/GFX.I.txt b/INC/GFX.I.txt index 36f2562d..ed4d42d7 100644 --- a/INC/GFX.I.txt +++ b/INC/GFX.I.txt @@ -59,10 +59,10 @@ 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 -S.CB.OP.F.I .EQ %00100000 -S.CB.OP.F.U .EQ %01000000 -S.CB.OP.F.G .EQ %10000000 +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.M .EQ 2 S.CB.M.MONO .EQ %00000001 b/w (1 bit/pixel) *S.CB.M.C4 .EQ %00000010 @@ -73,14 +73,19 @@ S.CB.COLOR .EQ 3 xPIXEL,xLINE,FILLRECT S.CB.hFont .EQ 3 DRAWTEXT S.CB.X1 .EQ 4 xPIXEL,xLINE,FILLRECT,BITBLT,GETRECTBUFSIZE,DRAWLINE S.CB.Y1 .EQ 6 xPIXEL,xLINE,FILLRECT,BITBLT,GETRECTBUFSIZE,DRAWLINE + S.CB.X2 .EQ 8 VLINE,FILLRECT,DRAWLINE -S.CB.Y2 .EQ 10 HLINE,FILLRECT,DRAWLINE S.CB.SrcW .EQ 8 BITBLT,GETRECTBUFSIZE + +S.CB.Y2 .EQ 10 HLINE,FILLRECT,DRAWLINE S.CB.SrcH .EQ 10 BITBLT,GETRECTBUFSIZE + S.CB.DstX .EQ 12 BITBLT,DRAWTEXT S.CB.DstY .EQ 14 BITBLT,DRAWTEXT + S.CB.SrcPtr .EQ 16 BITBLT S.CB.TxtPtr .EQ 16 DRAWTEXT + S.CB.DstPtr .EQ 18 BITBLT * S.CB .EQ 20 diff --git a/LIB/LIBGUI.S.BUT.txt b/LIB/LIBGUI.S.BUT.txt index 596a5184..c42a288f 100644 --- a/LIB/LIBGUI.S.BUT.txt +++ b/LIB/LIBGUI.S.BUT.txt @@ -14,7 +14,7 @@ BUT.New >STYA ZPPtr1 beq .1 ldy #S.BM.W - >SYSCALL2 GetStkObjProp +* >SYSCALL2 GetStkObjProp phy ldy #S.OBJ.W+1 diff --git a/LIB/LIBGUI.S.DRAW.txt b/LIB/LIBGUI.S.DRAW.txt index a8c6c41a..f9b965fd 100644 --- a/LIB/LIBGUI.S.DRAW.txt +++ b/LIB/LIBGUI.S.DRAW.txt @@ -318,7 +318,7 @@ DrawLine.IncX lda DX DrawText >LDYA L.CB.Cache ldx #0 - jsr SYS.GuiOSD.JMP + >SYSCALL2 OSD bcs .9 jsr GFXWrite.CB diff --git a/LIB/LIBGUI.S.FON.txt b/LIB/LIBGUI.S.FON.txt index 1ca91052..751a6e19 100644 --- a/LIB/LIBGUI.S.FON.txt +++ b/LIB/LIBGUI.S.FON.txt @@ -9,9 +9,10 @@ FON.Init >PUSHWZ Aux type bcs .9 sta hSYSFON - ldy #S.FON.PixH - >SYSCALL2 GetStkObjProp - sty SYSFON.H +* ldy #S.FON.PixH +* >SYSCALL2 GetStkObjProp + lda #7 + sta SYSFON.H >PUSHWZ Aux type >PUSHBI $CC Type diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index 8fd94481..56b95fc7 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -426,11 +426,11 @@ K.LoadStkObj ldx #SYS.LoadTxtFile To get ending \0 bne .1 inc +1 for ending 0 .1 >STYA A2L Save LEN temporarly - + ldx #SYS.NewStkObj - jsr K.SYSCALL2.AUX - + jsr K.SYSCALL2.AUX bcs .9 + stx .80+1 >STYA A4L Save Destination Address in AUX diff --git a/SYS/KERNEL.S.OSDX.txt b/SYS/KERNEL.S.OSDX.txt index dab3f405..cf6e8e96 100644 --- a/SYS/KERNEL.S.OSDX.txt +++ b/SYS/KERNEL.S.OSDX.txt @@ -9,10 +9,10 @@ ZPCharPtr .EQ ZPDRV+8 ZPSrcBMPtr .EQ ZPDRV+10 ZPTmpPtr .EQ ZPDRV+14 *-------------------------------------- -* YA =Ptr to S.CB in MAIN -* X = DstBM hMem +* Y,A = Ptr to S.CB in MAIN *-------------------------------------- -X.OSD >STYA TXTPTR +X.OSD >STYA ZPCmdPtr + >STYA TXTPTR ldy #S.CB-1 @@ -21,25 +21,31 @@ X.OSD >STYA TXTPTR dey bpl .10 - txa - beq .3 + ldy CB.Cache+S.CB.DstPtr + lda CB.Cache+S.CB.DstPtr+1 + bne .11 Ptr To Aux + tya hBM in Aux + beq .8 no Src BM + jsr K.GetMemPtr - - >STYA ZPDstBMPtr - + +.11 >STYA ZPDstBMPtr + ldx #0 -.1 lda (ZPDstBMPtr) +.1 lda (ZPDstBMPtr) sta DstBM.Cache,x inc ZPDstBMPtr bne .2 + inc ZPDstBMPtr+1 + .2 inx cpx #S.BM bne .1 -.3 ldx CB.Cache+S.CB.CMD +.8 ldx CB.Cache+S.CB.CMD jmp (J.Cmds,x) *-------------------------------------- @@ -286,9 +292,7 @@ DRAWTEXT.END lda #$FF SELF MODIFIED lda #S.CB.CMD.BITBLT sta CB.Cache+S.CB.CMD - jsr CB.Update - clc - rts + jmp CB.Update *-------------------------------------- DRAWTEXT.JMP asl tax @@ -630,16 +634,18 @@ YAMultX stx GBYTE rts *-------------------------------------- CB.Update >LDYA ZPCmdPtr - >STYA A4L Dst Start Address (MAIN) + >STYA ZPSListDataPtr + + ldx #0 - >LDYAI CB.Cache - >STYA A1L Src Start Address (AUX) - - >LDYAI CB.Cache+S.CB-1 - >STYA A2L Src End Address (AUX) +.1 lda CB.Cache,x + jsr SHARED.SetDataByte + inx + cpx #S.CB + bne .1 - clc Aux To Main - jmp AuxMove + clc + rts *-------------------------------------- CB.Cache .BS S.CB FON.Cache .BS S.FON