diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 0b3b3fcd..ce1d5bfc 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Fonts/SYSx7.fnt b/.Fonts/SYSx7.fnt index dc5936f5..07a9bd71 100644 Binary files a/.Fonts/SYSx7.fnt and b/.Fonts/SYSx7.fnt differ diff --git a/BIN/FNT2FON.S.txt b/BIN/FNT2FON.S.txt index 5f6694cf..4f0c4c5e 100644 --- a/BIN/FNT2FON.S.txt +++ b/BIN/FNT2FON.S.txt @@ -11,14 +11,19 @@ NEW .INB inc/libgui.i .INB inc/fnt.i *-------------------------------------- -ZPPTR1 .EQ ZPBIN -ZPInputBufPtr .EQ ZPBIN+2 -ZPInputTblPtr .EQ ZPBIN+4 -ZPInputBMPtr .EQ ZPBIN+6 -ZPCharBufPtr .EQ ZPBIN+8 -ZPOutPutTblPtr .EQ ZPBIN+10 -ZPOutPutCharOfs .EQ ZPBIN+12 -ZPOutPutBufPtr .EQ ZPBIN+14 + .DUMMY + .OR ZPBIN +ZS.START +ZPPTR1 .BS 2 +ZPInputBufPtr .BS 2 +ZPInputTblPtr .BS 2 +ZPInputBMPtr .BS 2 +ZPCharBufPtr .BS 2 +ZPOutPutTblPtr .BS 2 +ZPOutPutCharOfs .BS 2 +ZPOutPutBufPtr .BS 2 +TmpWord .BS 2 +ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -26,11 +31,12 @@ CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 - .DA 0 - .DA CS.END-CS.START CS - .DA DS.END-DS.START DS - .DA #64 SS - .DA #16 ZP + .DA #0 S.PS.F.EVENT + .DA #0 + .DA CS.END-CS.START Code Size (without Constants) + .DA DS.END-DS.START Data Size + .DA #64 Stack Size + .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- * Relocation Table @@ -116,13 +122,17 @@ CS.INIT.OPENINPUT >SYSCALL LoadFile bcs CS.INIT.RTS - >PUSHYA + >STYA TmpWord txa >STA.G hInputBuf >SYSCALL GetMemPtr >STYA ZPInputBufPtr - >LDYA L.MSG.FILE.OK - >SYSCALL PutS + + >PUSHW L.MSG.FILE.OK + >PUSHW TmpWord + >PUSHBI 2 + >SYSCALL Printf + ldy #S.FNT.dfVersion lda (ZPInputBufPtr),y bne .99 @@ -134,28 +144,32 @@ CS.INIT.OPENINPUT cmp #3 bne .99 - +*-------------------------------------- .1 asl *2 = Entry Len in Tbl >STA.G FNT.Version pha - ldy #S.FNT.dfAscent - lda (ZPInputBufPtr),y - >STA.G FON.Header+S.FON.Ascent + + >PUSHW L.MSG.HEADER.OK + + pla >PUSHA + + ldy #S.FNT.dfPixWidth + lda (ZPInputBufPtr),y + >STA.G FON.Header+S.FON.PixW + >PUSHA ldy #S.FNT.dfPixHeight lda (ZPInputBufPtr),y >STA.G FON.Header+S.FON.PixH >PUSHA - ldy #S.FNT.dfPixWidth + ldy #S.FNT.dfAscent lda (ZPInputBufPtr),y - >STA.G FON.Header+S.FON.PixW - >PUSHA - - pla + >STA.G FON.Header+S.FON.Ascent >PUSHA - >LDYA L.MSG.HEADER.OK + + >PUSHBI 4 >SYSCALL PrintF clc rts @@ -185,9 +199,17 @@ CS.INIT.CREATEOUTPUT .9 rts *-------------------------------------- -CS.RUN ldy #S.FNT.dfBreakChar +CS.RUN >PUSHW L.MSG.RANGE + + ldy #S.FNT.dfFirstChar lda (ZPInputBufPtr),y - >STA.G FON.Header+S.FON.Break + >STA.G FON.Header+S.FON.First + >STA.G CharIndex + >PUSHA + + ldy #S.FNT.dfLastChar + lda (ZPInputBufPtr),y + >STA.G FON.Header+S.FON.Last >PUSHA ldy #S.FNT.dfDefaultChar @@ -195,17 +217,12 @@ CS.RUN ldy #S.FNT.dfBreakChar >STA.G FON.Header+S.FON.Default >PUSHA - ldy #S.FNT.dfLastChar + ldy #S.FNT.dfBreakChar lda (ZPInputBufPtr),y - >STA.G FON.Header+S.FON.Last + >STA.G FON.Header+S.FON.Break >PUSHA - ldy #S.FNT.dfFirstChar - lda (ZPInputBufPtr),y - >STA.G FON.Header+S.FON.First - >STA.G CharIndex - >PUSHA - >LDYA L.MSG.RANGE + >PUSHBI 4 >SYSCALL PrintF >LDA.G FON.Header+S.FON.Last @@ -239,10 +256,10 @@ CS.RUN ldy #S.FNT.dfBreakChar adc (pData),y sta (pData),y sta ZPOutPutCharOfs+1 - >LEA.G FileOffset - >PUSHYA - >PUSHBI SYS.FSeek.SET - >LDA.G hOutputFile + + >PUSHB.G hOutputFile + >PUSHL.G FileOffset + >PUSHBI SEEK.SET >SYSCALL FSeek bcc .1 @@ -317,7 +334,7 @@ CS.RUN.LOOP >SLEEP bcs .9 >LDYA L.MSG.DONE - >SYSCALL PrintF + >SYSCALL PutS lda #0 sec .9 rts @@ -386,15 +403,13 @@ CS.RUN.GetChar lda (ZPInputTblPtr) Get Char PixW *-------------------------------------- * Dump ZPCharBufPtr : CharByteW x FON.Header+S.FON.PixH *-------------------------------------- -CS.RUN.DumpChar >LDA.G CharOutByteW - >PUSHA - >LDA.G CharOutPixW - >PUSHA - >LDA.G CharIndex - >PUSHA - >PUSHA - >LDYA L.MSG.DUMP +CS.RUN.DumpChar >PUSHW L.MSG.DUMP + >PUSHB.G CharIndex + >PUSHB.G CharOutPixW + >PUSHB.G CharOutByteW + >PUSHBI 3 >SYSCALL PrintF + lda ZPCharBufPtr sta ZPPTR1 lda ZPCharBufPtr+1 @@ -683,9 +698,9 @@ CS.RUN.WriteByte clc bne .8 - >PUSHWI 256 + >PUSHB.G hOutputFile >PUSHW ZPOutPutBufPtr - >LDA.G hOutputFile + >PUSHWI 256 >SYSCALL FWrite bcs .9 @@ -703,11 +718,10 @@ CS.RUN.FlushOutPutBuf >LDA.G OutPutPtr beq .8 - tay - lda #0 - >PUSHYA + >PUSHB.G hOutputFile >PUSHW ZPOutPutBufPtr - >LDA.G hOutputFile + >PUSHBI 0 + >PUSHB.G OutPutPtr >SYSCALL FWrite .8 rts *-------------------------------------- @@ -715,24 +729,30 @@ CS.RUN.WriteBMAndTbl ldy #FileOffset ldx #4 lda #0 + .1 sta (pData),y iny dex bne .1 - >LEA.G FileOffset - >PUSHYA - >PUSHBI SYS.FSeek.SET - >LDA.G hOutputFile + >PUSHB.G hOutputFile + >PUSHL.G FileOffset + >PUSHBI SEEK.SET >SYSCALL FSeek bcs .9 - >PUSHWI S.FON + >PUSHB.G hOutputFile >PUSHEA.G FON.Header - >LDA.G hOutputFile + >PUSHWI S.FON >SYSCALL FWrite bcs .9 + >PUSHB.G hOutputFile + + >LDA.G hTblBuf + >SYSCALL GetMemPtr + >PUSHYA + >LDA.G FON.Header+S.FON.Last sec >SBC.G FON.Header+S.FON.First @@ -744,11 +764,6 @@ CS.RUN.WriteBMAndTbl ply >PUSHYA - >LDA.G hTblBuf - >SYSCALL GetMemPtr - >PUSHYA - - >LDA.G hOutputFile >SYSCALL FWrite clc .9 rts diff --git a/INC/LIBGUI.I.txt b/INC/LIBGUI.I.txt index cab50cb9..cd9b8098 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -144,33 +144,37 @@ S.WND.hCUR .EQ S.OBJ+16 * S.WND.TitleX1 .EQ S.OBJ+18 S.WND.TitleX2 .EQ S.OBJ+20 +* +S.WND.TBarY1 .EQ S.OBJ+20 S.WND.TBarY2 .EQ S.OBJ+22 S.WND.MBarY1 .EQ S.OBJ+22 S.WND.MBarY2 .EQ S.OBJ+24 -S.WND.InnerY1 .EQ S.OBJ+24 -S.WND.InnerY2 .EQ S.OBJ+26 -S.WND.SBarY1 .EQ S.OBJ+26 -S.WND.InnerW .EQ S.OBJ+28 -S.WND.InnerH .EQ S.OBJ+30 -S.WND.DocW .EQ S.OBJ+32 -S.WND.DocH .EQ S.OBJ+34 -S.WND.DocX .EQ S.OBJ+36 -S.WND.DocY .EQ S.OBJ+38 -S.WND.fPaint .EQ S.OBJ+40 +S.WND.InnerY1 .EQ S.OBJ+26 +S.WND.InnerY2 .EQ S.OBJ+28 +S.WND.SBarY1 .EQ S.OBJ+28 + +S.WND.InnerW .EQ S.OBJ+32 +S.WND.InnerH .EQ S.OBJ+34 +S.WND.DocW .EQ S.OBJ+36 +S.WND.DocH .EQ S.OBJ+38 +S.WND.DocX .EQ S.OBJ+40 +S.WND.DocY .EQ S.OBJ+42 +S.WND.fPaint .EQ S.OBJ+44 * -S.WND .EQ S.OBJ+42 +S.WND .EQ S.OBJ+46 *-------------------------------------- -S.MBAR.Selected .EQ S.OBJ -S.MBAR.Items .EQ S.OBJ+2 +S.MBAR.Items .EQ S.OBJ * *-------------------------------------- -S.MBITEM.X1 .EQ 0 -S.MBITEM.XT .EQ 2 -S.MBITEM.X2 .EQ 4 -S.MBITEM.pTEXT .EQ 6 -S.MBITEM.pMENU .EQ 8 +S.MBITEM.T .EQ 0 +S.MBITEM.T.SUBMENU .EQ 6 +S.MBITEM.S .EQ 1 +S.MBITEM.S.SELECTED .EQ %10000000 +S.MBITEM.W .EQ 2 +S.MBITEM.pTEXT .EQ 4 +S.MBITEM.pMENU .EQ 6 * -S.MBITEM .EQ 10 +S.MBITEM .EQ 8 *-------------------------------------- S.MENU.hSAVEBUF .EQ S.OBJ+0 S.MENU.iW .EQ S.OBJ+2 diff --git a/INCLUDE/libgui.h.txt b/INCLUDE/libgui.h.txt index 61174bd3..b44ad47e 100644 --- a/INCLUDE/libgui.h.txt +++ b/INCLUDE/libgui.h.txt @@ -3,6 +3,7 @@ NEW #define C_BLACK 0 #define C_WHITE 255 +#define pC_WHITE ((void *)255) #define PTR_T_ARROW 0 #define PTR_T_MOVE 2 diff --git a/LIB/LIBGUI.G.FON.txt b/LIB/LIBGUI.G.FON.txt index 61ed4db7..0d1bc7cc 100644 --- a/LIB/LIBGUI.G.FON.txt +++ b/LIB/LIBGUI.G.FON.txt @@ -3,9 +3,10 @@ NEW *-------------------------------------- hSYSFON .BS 1 hSYSFONB .BS 1 -SYSFON.H .BS 1 -SYSFON.Hp2 .BS 1 SYSFON.Hm1 .BS 1 +SYSFON.H .BS 1 +SYSFON.Hp1 .BS 1 +SYSFON.Hp2 .BS 1 *-------------------------------------- MAN SAVE usr/src/lib/libgui.g.fon diff --git a/LIB/LIBGUI.S.CB.txt b/LIB/LIBGUI.S.CB.txt index ad3ad5e4..4150650f 100644 --- a/LIB/LIBGUI.S.CB.txt +++ b/LIB/LIBGUI.S.CB.txt @@ -22,6 +22,14 @@ CB.GetInCache >STYA .1+1 rts *-------------------------------------- +CB.GetWndYCacheX + lda (ZPWNDPtr),y + sta CB.Cache,x + iny + lda (ZPWNDPtr),y + sta CB.Cache+1,x + rts +*-------------------------------------- CB.GetBuf clc ldx hCBBuf @@ -32,7 +40,6 @@ CB.GetBuf clc bcs .9 stx hCBBuf - >STYA ZPCBPtr >STYA ZPCBBufPtr .9 rts @@ -71,16 +78,20 @@ CB.FlushBufToYA ldx hCBBuf .1 lda #0 sta (ZPCBBufPtr) + + lda hCBBuf + >SYSCALL2 GetMemPtr + >STYA ZPCBBufPtr ply pla jsr OBJ.GetInCache -.2 lda (ZPCBPtr) +.2 lda (ZPCBBufPtr) beq .7 - >LDYA ZPCBPtr + >LDYA ZPCBBufPtr jsr CB.GetInCache A = CB.CMD cmp #S.CB.CMD.DRAWTEXT2 @@ -105,16 +116,16 @@ CB.FlushBufToYA ldx hCBBuf jsr CB.GFXWrite -.5 lda (ZPCBPtr) Get Cmd +.5 lda (ZPCBBufPtr) Get Cmd lsr tax lda CB.CmdLen-1,x sec +1 - adc ZPCBPtr - sta ZPCBPtr + adc ZPCBBufPtr + sta ZPCBBufPtr bcc .2 - inc ZPCBPtr+1 + inc ZPCBBufPtr+1 bra .2 .7 lda hCBBuf diff --git a/LIB/LIBGUI.S.DRAW.txt b/LIB/LIBGUI.S.DRAW.txt index 42aeafe6..f2e9b13e 100644 --- a/LIB/LIBGUI.S.DRAW.txt +++ b/LIB/LIBGUI.S.DRAW.txt @@ -365,10 +365,7 @@ DRAW.YAText >STYA CB.Cache+S.CB.TxtPtr bra DRAW.Text *-------------------------------------- DRAW.YATextAtDXDY - phx - jsr CB.ClearCache >STYA CB.Cache+S.CB.TxtPtr - plx stx CB.Cache+S.CB.hFont ldx #3 diff --git a/LIB/LIBGUI.S.FON.txt b/LIB/LIBGUI.S.FON.txt index 3018ce7f..7e2d36ad 100644 --- a/LIB/LIBGUI.S.FON.txt +++ b/LIB/LIBGUI.S.FON.txt @@ -21,6 +21,7 @@ FON.Init >LDYA L.SYSX7 inc sta SYSFON.H inc + sta SYSFON.Hp1 inc sta SYSFON.Hp2 diff --git a/LIB/LIBGUI.S.MBAR.txt b/LIB/LIBGUI.S.MBAR.txt index 24fc9d58..58523d31 100644 --- a/LIB/LIBGUI.S.MBAR.txt +++ b/LIB/LIBGUI.S.MBAR.txt @@ -3,132 +3,236 @@ NEW *-------------------------------------- * Y,A = MBAR definition *-------------------------------------- -MBAR.New >STYA ZPMENUPtr MBAR definition - >STYA ZPPtr1 for pass #2 +MBAR.New >STYA ZPPtr1 MBAR definition + >STYA ZPObjPtr for pass #2 - lda #S.MBAR.Items+1 Ending\0 - sta Counter - stz Counter+1 - -.10 lda (ZPMENUPtr) - beq .3 - - ldy #$ff - -.1 iny - lda (ZPMENUPtr),y - bne .1 - - tya - - sec text Ending\0 - - inc - inc skip pMENU - adc ZPMENUPtr - sta ZPMENUPtr - bcc .2 - - inc ZPMENUPtr+1 - -.2 tya - sec - adc #S.MBITEM - - adc Counter - sta Counter - bcc .10 - - inc Counter+1 - bra .10 - -.3 >LDYA Counter + jsr MBAR.GetSize >SYSCALL2 GetMem bcs .9 - - >STYA ZPObjPtr - + + >STYA ZPMENUPtr + phx hMBAR - - ldy #S.OBJ-1 + lda #S.OBJ.T.MBAR - jsr OBJ.Init - - lda #S.MBAR.Items + sta (ZPMENUPtr) S.OBJ.T + + lda #0 + + ldy #S.MBAR.Items-1 + +.1 sta (ZPMENUPtr),y + dey + bne .1 + + >LDYA ZPObjPtr + >STYA ZPPtr1 MENU definition + + jsr MBAR.GetData + + pla hMBAR clc - adc ZPObjPtr - sta ZPObjPtr - bcc .4 - - inc ZPObjPtr+1 - -.4 stz DX - stz DX+1 - -.5 lda (ZPPtr1) +.9 rts +*-------------------------------------- +* ZPPtr1 = defintion +*-------------------------------------- +MBAR.GetSize lda #S.MBAR.Items+1 Ending\0 + sta Counter + stz Counter+1 + +.1 lda (ZPPtr1) beq .8 - >LDYA DX - jsr OBJ.AddWord S.MBITEM.X1 + ldy #$ff - lda DX +.2 iny + lda (ZPPtr1),y + bne .2 + + tya + + sec text Ending\0 + + inc + inc skip pMENU + jsr SkipAPtr1 + + lda #S.MBITEM clc - adc PREFS.MBARXMARGIN - sta DX - bcc .6 + adc Counter + sta Counter + bcc .1 - sta DX+1 + inc Counter+1 + bra .1 -.6 >LDYA DX - jsr OBJ.AddWord S.MBITEM.XT +.8 >LDYA Counter + rts +*-------------------------------------- +* ZPPtr1 = defintion +* ZPMENUPtr = DstBuf +*-------------------------------------- +MBAR.GetData lda ZPMENUPtr + clc + adc #S.MBAR.Items + sta ZPMENUPtr + bcc .1 + + inc ZPMENUPtr+1 + +.1 lda (ZPPtr1) + beq .8 + + lda #S.MBITEM.T.SUBMENU + jsr MBAR.AddByte + + lda #0 S.MBITEM.S + jsr MBAR.AddByte >LDYA ZPPtr1 pTEXT ldx hSYSFON jsr FON.GetTextSize - lda DX + lda PREFS.MBarXMargin + asl x2 clc adc CB.CACHE+S.CB.SrcW - sta DX + tay - lda DX+1 + lda #0 adc CB.CACHE+S.CB.SrcW+1 - sta DX+1 - - >LDYA DX - jsr OBJ.AddWord S.MBITEM.X2 + jsr MBAR.AddWord S.MBITEM.W >LDYA ZPPtr1 pTEXT - jsr OBJ.AddWord + jsr MBAR.AddWord jsr SkipStrZPtr1 skip "TEXT\0" - + ldy #1 lda (ZPPtr1),y - jsr OBJ.AddByte pMENU+1 - + jsr MBAR.AddByte pMENU+1 + lda (ZPPtr1) - jsr OBJ.AddByte pMENU - - lda ZPPtr1 - clc - adc #2 - sta ZPPtr1 - bcc .5 - - inc ZPPtr1+1 - bra .5 stkip pMENU - -.8 pla hMBAR - clc + jsr MBAR.AddByte pMENU + + lda #2 + jsr SkipAPtr1 stkip pMENU + bra .1 + +.8 sta (ZPMENUPtr) + rts +*-------------------------------------- +MBAR.AddWord pha + + tya + jsr MBAR.AddByte + pla + +MBAR.AddByte sta (ZPMENUPtr) + inc ZPMENUPtr + bne .8 + + inc ZPMENUPtr+1 + +.8 rts +*-------------------------------------- +* ZPWNDPtr parent WND +* MSG.X1, MSG.Y1 +*-------------------------------------- +MBAR.Enter ldy #S.WND.pMBAR + lda (ZPWNDPtr),y + >SYSCALL2 GetMemPtr + >STYA ZPMENUPtr pMBAR + + jsr MBAR.GetMBItems + + ldy #S.OBJ.X1 + ldx #S.CB.X1 + jsr CB.GetWndYCacheX + +.1 lda (ZPPtr1) + beq .8 + + jsr MBAR.SetX2 + + lda MSG+S.MSG.X1 + cmp CB.Cache+S.CB.X1 + lda MSG+S.MSG.X1+1 + sbc CB.Cache+S.CB.X1+1 + bcc .7 + + lda CB.Cache+S.CB.X2 + cmp MSG+S.MSG.X1 + lda CB.Cache+S.CB.X2+1 + sbc MSG+S.MSG.X1+1 + bcc .7 +* >DEBUG + ldy #S.MBITEM.S + lda (ZPPtr1),y + ora #S.MBITEM.S.SELECTED + sta (ZPPtr1),y + + jsr MENU.DestroyAll + + jsr CB.GetBuf + bcs .9 + + jsr MBAR.DrawMBItem + + >LDYA L.WND.Screen + jmp CB.FlushBufToYA + +.7 lda CB.Cache+S.CB.X2 + sta CB.Cache+S.CB.X1 + lda CB.Cache+S.CB.X2+1 + sta CB.Cache+S.CB.X1+1 + + lda #S.MBITEM + jsr SkipAPtr1 + bra .1 + +.8 clc .9 rts *-------------------------------------- -*-------------------------------------- +MBAR.Leave + + clc + rts *-------------------------------------- * ZPWNDPtr = parent WND *-------------------------------------- -MBAR.Paint lda #S.CB.CMD.FILLRECT - jsr CB.InitCacheA +MBAR.Draw >SYSCALL2 GetMemPtr + >STYA ZPMENUPtr pMBAR + + ldy #S.OBJ.X1 + ldx #S.CB.X1 + jsr CB.GetWndYCacheX + + jsr MBAR.GetMBItems + +.1 lda (ZPPtr1) + beq .8 + + jsr MBAR.SetX2 + + jsr MBAR.DrawMBItem + bcs .9 + + lda CB.Cache+S.CB.X2 + sta CB.Cache+S.CB.X1 + lda CB.Cache+S.CB.X2+1 + sta CB.Cache+S.CB.X1+1 + + lda #S.MBITEM + jsr SkipAPtr1 + bra .1 + +.8 clc + +.9 rts +*-------------------------------------- +MBAR.DrawMBItem lda #S.CB.CMD.FILLRECT + sta CB.Cache+S.CB.CMD lda #S.CB.OP.SET sta CB.Cache+S.CB.OP @@ -136,123 +240,86 @@ MBAR.Paint lda #S.CB.CMD.FILLRECT lda #S.CB.M.MONO sta CB.Cache+S.CB.M - lda PREFS.MBARCOLOR - sta CB.Cache+S.CB.COLOR + ldy #S.MBITEM.S + lda (ZPPtr1),y + asl + + lda PREFS.MBarColor + bcc .1 + + eor #$ff - ldy #S.OBJ.X1 - lda (ZPWNDPtr),y +.1 sta CB.Cache+S.CB.COLOR + + jsr MBAR.SetY1Y2 + + jsr CB.Cache2CBBuf + + lda PREFS.MBarXMargin + clc + adc CB.Cache+S.CB.X1 sta CB.Cache+S.CB.X1 + bcc .10 + + inc CB.Cache+S.CB.X1+1 +.10 inc CB.Cache+S.CB.Y1 + bne .11 + + inc CB.Cache+S.CB.Y1+1 + +.11 ldy #S.MBITEM.S + lda (ZPPtr1),y + asl + + ldy #S.MBITEM.pTEXT + lda (ZPPtr1),y + pha iny - lda (ZPWNDPtr),y - sta CB.Cache+S.CB.X1+1 + lda (ZPPtr1),y + ply + ldx hSYSFON + jsr DRAW.YAText + + jmp CB.Cache2CBBuf +*-------------------------------------- +MBAR.GetMBItems lda ZPMENUPtr + clc + adc #S.MBAR.Items + sta ZPPtr1 - ldy #S.OBJ.X2 - lda (ZPWNDPtr),y + lda ZPMENUPtr+1 + adc /S.MBAR.Items + sta ZPPtr1+1 + rts +*-------------------------------------- +MBAR.SetX2 lda CB.Cache+S.CB.X1 + clc + ldy #S.MBITEM.W + adc (ZPPtr1),y sta CB.Cache+S.CB.X2 - + + lda CB.Cache+S.CB.X1+1 iny - lda (ZPWNDPtr),y + adc (ZPPtr1),y sta CB.Cache+S.CB.X2+1 - - ldy #S.WND.MBarY1 + + rts +*-------------------------------------- +MBAR.SetY1Y2 ldy #S.WND.MBarY1 lda (ZPWNDPtr),y sta CB.Cache+S.CB.Y1 - iny lda (ZPWNDPtr),y sta CB.Cache+S.CB.Y1+1 - iny #S.WND.MBarY2 + ldy #S.WND.MBarY2 lda (ZPWNDPtr),y sta CB.Cache+S.CB.Y2 - iny lda (ZPWNDPtr),y sta CB.Cache+S.CB.Y2+1 - jsr CB.Cache2CBBuf - - ldy #S.WND.pMBAR - lda (ZPWNDPtr),y - sta ZPMENUPtr - iny - lda (ZPWNDPtr),y - sta ZPMENUPtr+1 - -.1 lda (ZPMENUPtr) - beq .8 - - jsr CB.ClearCache - - lda #S.CB.CMD.DRAWTEXT2 - sta CB.CACHE+S.CB.CMD - - lda #S.CB.OP.SET+S.CB.OP.INVERSE - sta CB.Cache+S.CB.OP - - lda #S.CB.M.MONO - sta CB.Cache+S.CB.M - - lda hSYSFON - sta CB.CACHE+S.CB.hFont - - ldy #S.MBITEM.XT - lda (ZPMENUPtr),y - clc - ldy #S.OBJ.X1 - adc (ZPWNDPtr),y - sta CB.CACHE+S.CB.X1 - - ldy #S.MBITEM.XT+1 - lda (ZPMENUPtr),y - ldy #S.OBJ.X1+1 - adc (ZPWNDPtr),y - sta CB.CACHE+S.CB.X1+1 - - ldy #S.WND.MBarY1 - lda (ZPWNDPtr),y - clc - adc #1 - sta CB.CACHE+S.CB.Y1 - iny - lda (ZPWNDPtr),y - adc #0 - sta CB.CACHE+S.CB.Y1+1 - - lda #S.MBITEM.pTEXT - clc - adc ZPMENUPtr - sta CB.CACHE+S.CB.TxtPtr - - lda #0 - adc ZPMENUPtr+1 - sta CB.CACHE+S.CB.TxtPtr+1 - - jsr CB.Cache2CBBuf - - lda (ZPMENUPtr) - clc - adc ZPMENUPtr - sta ZPMENUPtr - bcc .1 - inc ZPMENUPtr+1 - bra .1 - -.8 clc - - rts -*-------------------------------------- -* ZPWNDPtr parent WND -* MSG.X1, MSG.Y1 -*-------------------------------------- -MBAR.Enter - -* >DEBUG -*-------------------------------------- -MBAR.Leave - - clc rts *-------------------------------------- MAN diff --git a/LIB/LIBGUI.S.MBOX.txt b/LIB/LIBGUI.S.MBOX.txt new file mode 100644 index 00000000..10c77c32 --- /dev/null +++ b/LIB/LIBGUI.S.MBOX.txt @@ -0,0 +1,11 @@ +NEW + AUTO 3,1 +*-------------------------------------- +* MsgBox(hWND, pTITLE, pTEXT, pBM, iButtons) +*-------------------------------------- + +*-------------------------------------- +MAN +SAVE usr/src/lib/libgui.s.mbox +LOAD usr/src/lib/libgui.s +ASM diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt index cbe7eadc..c8159d25 100644 --- a/LIB/LIBGUI.S.MENU.txt +++ b/LIB/LIBGUI.S.MENU.txt @@ -9,8 +9,8 @@ MENU.New >PULLW DY >STYA ZPPtr1 MENU definition >STYA ZPObjPtr for pass #2 - ldy MENU.Stack.Cnt - cpy #MENU.MAX + ldx MENU.Stack.Cnt + cpx #MENU.MAX beq .90 jsr MENU.GetSize @@ -65,7 +65,7 @@ MENU.New >PULLW DY .90 lda #E.OOH sec -.99 +.99 MENU.New.RTS rts *-------------------------------------- * ZPPtr1 = defintion @@ -73,7 +73,7 @@ MENU.New.RTS rts MENU.GetSize lda #S.MENU.Items+1 Ending\0 sta Counter stz Counter+1 - + .1 lda (ZPPtr1) beq .8 @@ -82,19 +82,19 @@ MENU.GetSize lda #S.MENU.Items+1 Ending\0 adc Counter sta Counter bcc .2 - + inc Counter+1 .2 lda (ZPPtr1) cmp #S.MITEM.T.SEP bne .3 - + inc ZPPtr1 bne .1 - + inc ZPPtr1+1 bra .1 - + .3 cmp #S.MITEM.T.ITEM bne .4 @@ -120,23 +120,23 @@ MENU.GetData lda ZPMENUPtr bcc .1 inc ZPMENUPtr+1 - + .1 lda (ZPPtr1) sta (ZPMENUPtr) beq .8 cmp #S.MITEM.T.SEP bne .2 - + inc ZPPtr1 skip 1 byte bne .5 - + inc ZPPtr1+1 bra .5 *-------------------------------------- .2 cmp #S.MITEM.T.ITEM bne .3 - + ldy #1 T+ID+KEMOD+KEY+pICON+"text" lda (ZPPtr1),y ldy #S.MITEM.ID @@ -147,7 +147,7 @@ MENU.GetData lda ZPMENUPtr tax iny lda (ZPPtr1),y - + ldy #S.MITEM.KEYMOD+1 sta (ZPMENUPtr),y dey KEY @@ -156,7 +156,7 @@ MENU.GetData lda ZPMENUPtr lda #4 bra .4 skip 4 bytes -*-------------------------------------- +*-------------------------------------- .3 ldy #1 skip T+pMENU+pICON+"text" lda (ZPPtr1),y tax @@ -169,7 +169,7 @@ MENU.GetData lda ZPMENUPtr txa sta (ZPMENUPtr),y lda #3 skip 3 bytes - + .4 jsr SkipAPtr1 ldy #1 @@ -179,29 +179,29 @@ MENU.GetData lda ZPMENUPtr dey lda (ZPPtr1) sta (ZPMENUPtr),y - + lda #2 skip pICON jsr SkipAPtr1 - + ldy #S.MITEM.pTEXT lda ZPPtr1 sta (ZPMENUPtr),y iny lda ZPPtr1+1 sta (ZPMENUPtr),y - + jsr SkipStrZPtr1 skip "TEXT\0" ldy #S.MITEM.S lda #0 sta (ZPMENUPtr),y - + .5 lda ZPMENUPtr clc adc #S.MITEM sta ZPMENUPtr bcc .1 - + inc ZPMENUPtr+1 bra .1 @@ -418,7 +418,21 @@ MENU.FindMItemByID .9 sec rts *-------------------------------------- -MENU.Enter jsr MENU.GetDXDYW +MENU.Enter jsr MENU.GetDXDY + + stz D + stz D+1 + + ldy #S.OBJ.X2 + lda DX X1 + clc + adc (ZPMENUPtr),y + sta IE IE = X2 + + iny + lda DX+1 + adc (ZPMENUPtr),y + sta IE+1 jsr MENU.GetMItems @@ -429,8 +443,8 @@ MENU.Enter jsr MENU.GetDXDYW beq .2 lda DY Y1 - sec - adc SYSFON.H + clc + adc SYSFON.Hp2 sta INE INE = Y2 lda DY+1 adc #0 @@ -443,192 +457,129 @@ MENU.Enter jsr MENU.GetDXDYW ldy #S.MITEM.S lda (ZPPtr1),y bpl .2 - + eor #S.MITEM.S.SELECTED sta (ZPPtr1),y was selected before... jsr CB.GetBuf bcs .9 - - jsr MENU.ResetX1Y1X2 + jsr MENU.DrawMItem .2 jsr MENU.NextMItemDY bra .1 - +*-------------------------------------- .3 ldy #S.MITEM.S lda (ZPPtr1),y - bmi .8 already selected, nothing to do - >DEBUG + bmi .5 already selected, nothing to do + eor #S.MITEM.S.SELECTED sta (ZPPtr1),y - + jsr CB.GetBuf bcs .9 - jsr MENU.ResetX1Y1X2 jsr MENU.DrawMItem - lda (ZPPtr1) +.30 ldx MENU.Stack.Idx + inx + cpx MENU.Stack.Cnt + beq .31 + + jsr MENU.Destroy + bra .30 + +.31 lda (ZPPtr1) cmp #S.MITEM.T.SUBMENU - bne .1 + bne .2 -* >LDYA L.WND.Screen -* jsr CB.FlushBufToYA + ldy #S.MITEM.pMENU + lda (ZPPtr1),y + sta D + iny + lda (ZPPtr1),y + sta D+1 -* jsr MENU.NewSubMenu -* bcs .9 - - bra .1 + lda DY + sta Counter + lda DY+1 + sta Counter+1 + bra .2 +*-------------------------------------- +.8 clc +.9 rts +*-------------------------------------- .4 >LDYA L.WND.Screen - jmp CB.FlushBufToYA + jsr CB.FlushBufToYA - lda MSG+S.MSG.S + lda D + ora D+1 + beq .5 + + >PUSHW D pMENU + + ldy #S.OBJ.X2+1 + lda (ZPMENUPtr),y + >PUSHA + dey + lda (ZPMENUPtr),y + >PUSHA + + >PUSHW Counter + + jsr MENU.New + bcs .9 + + jmp MENU.Draw +*-------------------------------------- +.5 lda MSG+S.MSG.S bit #S.MSG.S.CLK beq .8 lda #S.MSG.T.ID sta MSG+S.MSG.T - + ldy #S.MITEM.ID lda (ZPPtr1),y sta MSG+S.MSG.ID jmp MENU.DestroyAll - -.8 clc -.9 rts -*-------------------------------------- -MENU.NewSubMenu lda DX - clc - adc Counter W - sta DX - - lda DX+1 - adc Counter+1 - sta DX+1 - - ldy #S.MITEM.pMENU+1 - lda (ZPPtr1),y - >PUSHA - dey - lda (ZPPtr1),y - >PUSHA - - >PUSHW DX X1 - >PUSHW DY Y1 - - jsr MENU.New - bcs .9 - - pha hMENU - - jsr MENU.Draw - plx - bcs .9 - - txa - -.9 rts *-------------------------------------- * DrawMenu(hMENU) *-------------------------------------- MENU.Draw >SYSCALL2 GetMemPtr >STYA ZPMENUPtr - + jsr MENU.Save bcs .9 jsr CB.GetBuf bcs .9 - jsr MENU.DrawBorders + >LDYA ZPMENUPtr + ldx #0 + jsr OBJ.DrawBorders - jsr MENU.GetDXDYW + jsr MENU.GetDXDY jsr MENU.GetMItems .1 lda (ZPPtr1) beq .8 - jsr MENU.ResetX1Y1X2 jsr MENU.DrawMItem jsr MENU.NextMItemDY bra .1 .8 >LDYA L.WND.Screen - jsr CB.FlushBufToYA + jmp CB.FlushBufToYA .9 rts *-------------------------------------- -MENU.DrawBorders - lda #S.CB.CMD.HLINE - jsr CB.InitCacheA +MENU.DrawMItem jsr MENU.ResetX1Y1X2 - lda #S.CB.OP.SET - sta CB.Cache+S.CB.OP - lda #S.CB.M.MONO - sta CB.Cache+S.CB.M - lda PREFS.BORDERCOLOR - sta CB.Cache+S.CB.COLOR - - ldy #S.OBJ.X2+1 - ldx #5 - -.1 lda (ZPMENUPtr),y - sta CB.Cache+S.CB.X1,x - dey - dex - bpl .1 - - lda CB.Cache+S.CB.Y1 - sta CB.Cache+S.CB.Y2 - lda CB.Cache+S.CB.Y1+1 - sta CB.Cache+S.CB.Y2+1 top X1,Y1,X2,Y1 - - jsr CB.Cache2CBBuf - - ldy #S.OBJ.Y2 - lda (ZPMENUPtr),y - sta CB.Cache+S.CB.Y1 - sta CB.Cache+S.CB.Y2 - iny - lda (ZPMENUPtr),y - sta CB.Cache+S.CB.Y1+1 - sta CB.Cache+S.CB.Y2+1 bottom X1,Y2,X2,Y2 - - jsr CB.Cache2CBBuf - - lda #S.CB.CMD.VLINE - sta CB.Cache+S.CB.CMD - - ldy #S.OBJ.Y1 - lda (ZPMENUPtr),y - sta CB.Cache+S.CB.Y1 - iny - lda (ZPMENUPtr),y - sta CB.Cache+S.CB.Y1+1 - - lda CB.Cache+S.CB.X1 - sta CB.Cache+S.CB.X2 - lda CB.Cache+S.CB.X1+1 - sta CB.Cache+S.CB.X2+1 left X1,Y1,X1,Y2 - - jsr CB.Cache2CBBuf - - ldy #S.OBJ.X2 - lda (ZPMENUPtr),y - sta CB.Cache+S.CB.X1 - sta CB.Cache+S.CB.X2 - iny - lda (ZPMENUPtr),y - sta CB.Cache+S.CB.X1+1 - sta CB.Cache+S.CB.X2+1 right X2,Y1,X2,Y2 - - jmp CB.Cache2CBBuf -*-------------------------------------- -MENU.DrawMItem lda (ZPPtr1) + lda (ZPPtr1) cmp #S.MITEM.T.SEP bne MENU.DrawMItem1 @@ -639,7 +590,7 @@ MENU.DrawMItem lda (ZPPtr1) lda #S.CB.M.MONO sta CB.Cache+S.CB.M - lda PREFS.BORDERCOLOR + lda PREFS.BorderColor sta CB.Cache+S.CB.COLOR jmp CB.Cache2CBBuf @@ -651,7 +602,7 @@ MENU.DrawMItem1 lda #S.CB.CMD.FILLRECT lda #S.CB.M.MONO sta CB.Cache+S.CB.M - ldx PREFS.MENUCOLOR + ldx PREFS.MenuColor jsr MENU.IsSelected bcc .15 @@ -661,13 +612,12 @@ MENU.DrawMItem1 lda #S.CB.CMD.FILLRECT .15 stx CB.Cache+S.CB.COLOR - lda DY - sta CB.Cache+S.CB.Y1 + lda CB.Cache+S.CB.Y1 sec adc SYSFON.H sta CB.Cache+S.CB.Y2 - lda DY+1 - sta CB.Cache+S.CB.Y1+1 + + lda CB.Cache+S.CB.Y1+1 adc #0 sta CB.Cache+S.CB.Y2+1 jsr CB.Cache2CBBuf @@ -695,7 +645,6 @@ MENU.DrawMItem1 lda #S.CB.CMD.FILLRECT ldy #S.MENU.iW adc (ZPMENUPtr),y sta CB.Cache+S.CB.X1 - bcc .21 inc CB.Cache+S.CB.X1+1 @@ -719,7 +668,7 @@ MENU.DrawMItem1 lda #S.CB.CMD.FILLRECT lda (ZPPtr1) cmp #S.MITEM.T.ITEM bne .3 - + jsr MENU.GetKeyString bcs .3 @@ -781,7 +730,7 @@ MENU.IsSelected phy rts *-------------------------------------- MENU.GetText ldy #S.MITEM.pTEXT - + lda (ZPPtr1),y pha iny @@ -802,10 +751,10 @@ MENU.GetKeyString lda (ZPPtr1),y beq .3 - + bit #KEYMOD.CTRL beq .1 - + ldy #KEYMOD.S.CTRL jsr .4 @@ -817,7 +766,7 @@ MENU.GetKeyString .2 bit #KEYMOD.CA beq .3 - + ldy #KEYMOD.S.CA jsr .4 @@ -835,7 +784,7 @@ MENU.GetKeyString .5 lda KEYMOD.S,y sta TEXTBUF,x beq .6 - + inx iny bra .5 @@ -893,83 +842,7 @@ MENU.Save lda #S.CB.CMD.GETRECTBUFSIZE .9 rts *-------------------------------------- -MENU.DestroyAll sec - .HS 90 BCC -MENU.Destroy clc - - ldx MENU.Stack.Cnt - beq .8 - - php - - bit PTR.bVisible - bpl .1 - - jsr PTR.Hide.I - -.1 lda #S.CB.CMD.BITBLT - jsr CB.InitCacheA - - lda #S.CB.OP.RESTORE - sta CB.Cache+S.CB.OP - - plp - -.2 php - - ldx MENU.Stack.Cnt - lda MENU.Stack-1,x - >SYSCALL2 GetMemPtr - >STYA ZPMENUPtr - - ldy #S.OBJ.X1 - ldx #0 - -.3 lda (ZPMENUPtr),y - sta CB.Cache+S.CB.X1,x - iny - inx - cpx #8 X1,Y1,X2,Y2 - bne .3 - - ldy #S.OBJ.W - ldx #0 - -.4 lda (ZPMENUPtr),y - sta CB.Cache+S.CB.SrcW,x - iny - inx - cpx #4 W,H - bne .4 - - ldy #S.MENU.hSAVEBUF - lda (ZPMENUPtr),y - sta CB.Cache+S.CB.DstPtr - - jsr CB.GFXWrite - - lda CB.Cache+S.CB.DstPtr - >SYSCALL2 FreeStkObj - - ldx MENU.Stack.Cnt - lda MENU.Stack-1,x - >SYSCALL2 FreeMem - - plp - dec MENU.Stack.Cnt - bcc .7 - - bne .2 - -.7 bit PTR.bVisible - bpl .8 - - jmp PTR.Show.I - -.8 clc - rts -*-------------------------------------- -MENU.GetDXDYW ldy #S.OBJ.X1 +MENU.GetDXDY ldy #S.OBJ.X1 lda (ZPMENUPtr),y clc adc #1 @@ -979,16 +852,6 @@ MENU.GetDXDYW ldy #S.OBJ.X1 adc #0 sta DX+1 - ldy #S.OBJ.W - lda (ZPMENUPtr),y - sec - sbc #3 2Px border + correction from W - sta Counter W - iny - lda (ZPMENUPtr),y - sbc #0 - sta Counter+1 - ldy #S.OBJ.Y1 lda (ZPMENUPtr),y clc @@ -1002,21 +865,31 @@ MENU.GetDXDYW ldy #S.OBJ.X1 rts *-------------------------------------- MENU.ResetX1Y1X2 - lda DX - sta CB.Cache+S.CB.X1 + ldy #S.OBJ.X1 + lda (ZPMENUPtr),y clc - adc Counter - sta CB.Cache+S.CB.X2 - lda DX+1 + adc #1 + sta CB.Cache+S.CB.X1 + iny + lda (ZPMENUPtr),y + adc #0 sta CB.Cache+S.CB.X1+1 - adc Counter+1 - sta CB.Cache+S.CB.X2+1 - + lda DY sta CB.Cache+S.CB.Y1 lda DY+1 sta CB.Cache+S.CB.Y1+1 + ldy #S.OBJ.X2 + lda (ZPMENUPtr),y + sec + sbc #1 + sta CB.Cache+S.CB.X2 + iny + lda (ZPMENUPtr),y + sbc #0 + sta CB.Cache+S.CB.X2+1 + rts *-------------------------------------- MENU.FindSelected @@ -1024,7 +897,7 @@ MENU.FindSelected >STYA D jsr MENU.GetMItems - + .1 lda (ZPPtr1) beq .9 @@ -1040,12 +913,12 @@ MENU.FindSelected .8 clc rts - + .9 >LDYA D >STYA ZPPtr1 - + sec - rts + rts *-------------------------------------- MENU.GetMItems lda ZPMENUPtr clc @@ -1075,6 +948,83 @@ MENU.NextMItemDY MENU.NextMItem lda #S.MITEM jmp SkipAPtr1 *-------------------------------------- +MENU.DestroyAll sec + .HS 90 BCC +MENU.Destroy clc + + ldx MENU.Stack.Cnt + beq .8 + + php + + bit PTR.bVisible + bpl .1 + + jsr PTR.Hide.I + +.1 lda #S.CB.CMD.BITBLT + jsr CB.InitCacheA + + lda #S.CB.OP.RESTORE + sta CB.Cache+S.CB.OP + + plp + +.2 php + + ldx MENU.Stack.Cnt + lda MENU.Stack-1,x + >SYSCALL2 GetMemPtr + >STYA ZPObjPtr + + ldy #S.OBJ.X1 + ldx #0 + +.3 lda (ZPObjPtr),y + sta CB.Cache+S.CB.X1,x + iny + inx + cpx #8 X1,Y1,X2,Y2 + bne .3 + + ldy #S.OBJ.W + ldx #0 + +.4 lda (ZPObjPtr),y + sta CB.Cache+S.CB.SrcW,x + iny + inx + cpx #4 W,H + bne .4 + + ldy #S.MENU.hSAVEBUF + lda (ZPObjPtr),y + sta CB.Cache+S.CB.DstPtr + + jsr CB.GFXWrite + + lda CB.Cache+S.CB.DstPtr + >SYSCALL2 FreeStkObj + + ldx MENU.Stack.Cnt + lda MENU.Stack-1,x + >SYSCALL2 FreeMem + + plp Destroy all ? + dec MENU.Stack.Cnt + + bcc .7 no + + bne .2 + +.7 bit PTR.bVisible + bpl .8 + + jmp PTR.Show.I + +.8 clc + rts +*-------------------------------------- MAN SAVE usr/src/lib/libgui.s.menu LOAD usr/src/lib/libgui.s diff --git a/LIB/LIBGUI.S.MOU.txt b/LIB/LIBGUI.S.MOU.txt index 47fe2e9b..7b28c48e 100644 --- a/LIB/LIBGUI.S.MOU.txt +++ b/LIB/LIBGUI.S.MOU.txt @@ -91,10 +91,10 @@ MOU.CheckOverMenu .1 ldx MENU.Stack.Cnt beq .9 - lda MENU.Stack-1,x +.2 dex + stx MENU.Stack.Idx + lda MENU.Stack,x -.2 phx - >SYSCALL2 GetMemPtr >STYA ZPMENUPtr pha @@ -105,32 +105,18 @@ MOU.CheckOverMenu pla adc /S.OBJ.X1 jsr MOU.InRectYA - bcc .3 + bcs .3 - plx + jsr MENU.Enter + + clc + rts - dex +.3 ldx MENU.Stack.Idx bne .2 .9 sec rts - -.3 plx - cpx MENU.Stack.Cnt - beq .7 - -* TODO:destroy from TOP to current, then enter current - -* inx -* phx - -* jsr MENU.Destroy -* bra .3 - -.7 jmp MENU.Enter - -.8 clc - rts *-------------------------------------- MOU.CheckOverSysBut >LDYA L.RECT.SysBut @@ -156,8 +142,7 @@ MOU.CheckOverWND ldy #S.OBJ.F lda (ZPWNDPtr),y - - bit #S.WND.F.BORDER + and #S.WND.F.BORDER beq .2 jsr MOU.ChkWNDBorders @@ -190,7 +175,7 @@ MOU.CheckOverWND bra .5 -.3 iny #S.WND.MBarY2 +.3 ldy #S.WND.MBarY2 lda (ZPWNDPtr),y cmp MSG+S.MSG.Y1 @@ -203,7 +188,7 @@ MOU.CheckOverWND bra .5 -.4 iny #S.WND.SBarY1 +.4 ldy #S.WND.SBarY1 lda (ZPWNDPtr),y cmp MSG+S.MSG.Y1 diff --git a/LIB/LIBGUI.S.OBJ.txt b/LIB/LIBGUI.S.OBJ.txt index 0feb6b02..e8a83787 100644 --- a/LIB/LIBGUI.S.OBJ.txt +++ b/LIB/LIBGUI.S.OBJ.txt @@ -43,37 +43,6 @@ OBJ.Init sta (ZPObjPtr) rts *-------------------------------------- -OBJ.AddWord pha - - tya - jsr OBJ.AddByte - pla - -OBJ.AddByte sta (ZPObjPtr) - inc ZPObjPtr - bne .8 - - inc ZPObjPtr+1 - -.8 rts -*-------------------------------------- -OBJ.PullY1X1.BAD - - >PULLA - ldy #S.OBJ.Y1 - sta (ZPMENUPtr),y - >PULLA - iny - sta (ZPMENUPtr),y - - >PULLA - ldy #S.OBJ.X1 - sta (ZPMENUPtr),y - >PULLA - iny - sta (ZPMENUPtr),y - rts -*-------------------------------------- * hOBJ, Prop8, Value16 *-------------------------------------- OBJ.SetProp ldy #3 @@ -169,9 +138,10 @@ OBJ.SetX2Y2 >STYA ZPPtr1 adc (ZPPtr1),y ldy #S.OBJ.Y2+1 sta (ZPPtr1),y + tax dey pla - sta (ZPPtr1),y + sta (ZPPtr1),y A,X = Y2 rts *-------------------------------------- @@ -185,6 +155,106 @@ OBJ.GetInCache >STYA .1+1 bpl .1 rts +*-------------------------------------- +OBJ.DrawBorders >STYA ZPObjPtr + stx IY + + lda #S.CB.CMD.HLINE + jsr CB.InitCacheA + + lda #S.CB.OP.SET + sta CB.Cache+S.CB.OP + lda #S.CB.M.MONO + sta CB.Cache+S.CB.M + lda PREFS.BorderColor + sta CB.Cache+S.CB.COLOR + + ldy #S.OBJ.X1 + + lda (ZPObjPtr),y + sec + sbc IY + sta CB.Cache+S.CB.X1 + iny + lda (ZPObjPtr),y + sbc #0 + sta CB.Cache+S.CB.X1+1 + + iny #S.OBJ.Y1 + + lda (ZPObjPtr),y + sec + sbc IY + sta CB.Cache+S.CB.Y1 + sta CB.Cache+S.CB.Y2 + iny + lda (ZPObjPtr),y + sbc #0 + sta CB.Cache+S.CB.Y1+1 + sta CB.Cache+S.CB.Y2+1 top X1-1,Y1-1,X2+1,Y1-1 + + iny #S.OBJ.X2 + + lda (ZPObjPtr),y + clc + adc IY + sta CB.Cache+S.CB.X2 + iny + lda (ZPObjPtr),y + adc #0 + sta CB.Cache+S.CB.X2+1 + + jsr CB.Cache2CBBuf + + ldy #S.OBJ.Y2 + lda (ZPObjPtr),y + clc + adc IY + sta CB.Cache+S.CB.Y1 + sta CB.Cache+S.CB.Y2 + iny + lda (ZPObjPtr),y + adc #0 + sta CB.Cache+S.CB.Y1+1 + sta CB.Cache+S.CB.Y2+1 bottom X1-1,Y2+1,X2+1,Y2+1 + + jsr CB.Cache2CBBuf + + lda #S.CB.CMD.VLINE + sta CB.Cache+S.CB.CMD + + ldy #S.OBJ.Y1 + lda (ZPObjPtr),y + sec + sbc IY + sta CB.Cache+S.CB.Y1 + iny + lda (ZPObjPtr),y + sbc #0 + sta CB.Cache+S.CB.Y1+1 + + lda CB.Cache+S.CB.X1 + sta CB.Cache+S.CB.X2 + lda CB.Cache+S.CB.X1+1 + sta CB.Cache+S.CB.X2+1 left X1-1,Y1-1,X1-1,Y2+1 + + jsr CB.Cache2CBBuf + + ldy #S.OBJ.X2 + lda (ZPObjPtr),y + clc + adc IY + sta CB.Cache+S.CB.X1 + sta CB.Cache+S.CB.X2 + iny + lda (ZPObjPtr),y + adc #0 + sta CB.Cache+S.CB.X1+1 + sta CB.Cache+S.CB.X2+1 right X2+1,Y1-1,X2+1,Y2+1 + + jmp CB.Cache2CBBuf +*------------------------------------- + *-------------------------------------- MAN SAVE usr/src/lib/libgui.s.obj diff --git a/LIB/LIBGUI.S.SYSBAR.txt b/LIB/LIBGUI.S.SYSBAR.txt index 90307ae7..4a98aa78 100644 --- a/LIB/LIBGUI.S.SYSBAR.txt +++ b/LIB/LIBGUI.S.SYSBAR.txt @@ -1,7 +1,10 @@ NEW AUTO 3,1 *-------------------------------------- -SYSBUT.Enter sec +SYSBUT.Enter bit WND.SYSBAR.bSysBut + bmi .8 + + sec ror WND.SYSBAR.bSysBut jsr CB.GetBuf @@ -18,10 +21,9 @@ SYSBUT.Enter sec jsr MENU.New bcs .9 - sta hSysMenu - jmp MENU.Draw +.8 clc .9 rts *-------------------------------------- SYSBUT.Leave bit WND.SYSBAR.bSysBut diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index 65ca9076..4ece8a6d 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -114,7 +114,7 @@ WND.Quit lda WND.Screen+S.OBJ.hPARENT .8 clc WND.Quit.RTS rts *-------------------------------------- -* F8, X116, Y116, W16, H16 +* guiNewWnd(sFlags, iX1, iY1, iW, iH) *-------------------------------------- WND.New ldy WND.Stack.Top cpy #WND.MAX @@ -174,7 +174,7 @@ WND.New ldy WND.Stack.Top >PULLA ldy #S.OBJ.X1 - and PREFS.BESTVIEWEDX + and PREFS.BestViewedX sta (ZPWNDPtr),y >PULLA iny @@ -235,12 +235,12 @@ WND.Bring2Front ldx WND.Stack.Idx .2 pla *-------------------------------------- -* A = hWND +* guiShowWnd( hWND ) *-------------------------------------- WND.Show sta WND.hWND ldx WND.Stack.Top - beq WND.Show1 + beq WND.Show2 lda WND.Stack-1,x >SYSCALL2 GetMemPtr @@ -252,11 +252,15 @@ WND.Show sta WND.hWND jsr CB.GetBuf bcs WND.Activate.RTS - jsr WND.PaintTopBar + jsr WND.DrawTitleBar + + >LDYA L.WND.Desktop + jsr CB.FlushBufToYA -WND.Show1 lda WND.hWND - ldy WND.Stack.Top - sta WND.Stack,y + lda WND.hWND + ldx WND.Stack.Top +*-------------------------------------- +WND.Show2 sta WND.Stack,x inc WND.Stack.Top >SYSCALL2 GetMemPtr @@ -264,36 +268,35 @@ WND.Show1 lda WND.hWND jsr OBJ.SetX2Y2 -WND.Show2 jsr CB.GetBuf + ldy #S.WND.InnerY2 + sta (ZPWNDPtr),y + txa + iny + sta (ZPWNDPtr),y + + jsr CB.GetBuf bcs WND.Activate.RTS lda #S.WND.S.ACTIVE jsr WND.SetStatus - ldy #S.OBJ.Y1 - lda (ZPWNDPtr),y - tax - iny - lda (ZPWNDPtr),y - - ldy #S.WND.TBarY2+1 - sta (ZPWNDPtr),y - txa - dey - sta (ZPWNDPtr),y - - stz Counter X - stz Counter+1 Y - ldy #S.OBJ.F lda (ZPWNDPtr),y and #S.WND.F.BORDER beq .1 - lda #1 - jsr WND.ShowBorders - -.1 ldy #S.WND.pTITLE+1 + >LDYA ZPWNDPtr + ldx #1 + jsr OBJ.DrawBorders +*-------------------------------------- +.1 ldy #S.OBJ.Y1 + lda (ZPWNDPtr),y + sta Counter + iny + lda (ZPWNDPtr),y + sta Counter+1 + + ldy #S.WND.pTITLE+1 lda (ZPWNDPtr),y bne .2 @@ -302,98 +305,82 @@ WND.Show2 jsr CB.GetBuf and #S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MIN+S.WND.F.MAX beq .3 -.2 lda Counter+1 - clc - adc SYSFON.Hp2 - sta Counter+1 +.2 lda SYSFON.Hp2 + jsr WND.Add2Counter ldy #S.WND.TBarY2 - lda (ZPWNDPtr),y - clc - adc SYSFON.Hp2 sta (ZPWNDPtr),y iny - lda (ZPWNDPtr),y - adc #0 + txa sta (ZPWNDPtr),y lda #S.WND.S.HASTBAR jsr WND.SetStatus - jsr WND.PaintTopBar + jsr WND.DrawTitleBar bcs .9 *-------------------------------------- -.3 ldy #S.WND.pMBAR+1 +.3 ldy #S.WND.pMBAR lda (ZPWNDPtr),y - beq .7 + beq .4 - lda Counter+1 - clc - adc SYSFON.Hp2 - sta Counter+1 + lda SYSFON.Hp1 + jsr WND.Add2Counter - ldy #S.WND.TBarY2 - lda (ZPWNDPtr),y - clc - adc SYSFON.H - tax - - iny - lda (ZPWNDPtr),y - adc #0 - ldy #S.WND.MBarY2+1 + ldy #S.WND.MBarY2 sta (ZPWNDPtr),y + iny txa - dey sta (ZPWNDPtr),y lda #S.WND.S.HASMBAR jsr WND.SetStatus - jsr MBAR.Paint + ldy #S.WND.pMBAR + lda (ZPWNDPtr),y + jsr MBAR.Draw *-------------------------------------- -.7 ldy #S.WND.pSTATUS+1 +.4 lda Counter + ldy #S.WND.InnerY1 + sta (ZPWNDPtr),y + iny + lda Counter+1 + sta (ZPWNDPtr),y + + ldy #S.WND.pSTATUS+1 lda (ZPWNDPtr),y beq .8 - lda Counter+1 - clc - adc SYSFON.Hp2 - sta Counter+1 + lda SYSFON.Hp1 + jsr WND.Add2Counter - ldy #S.OBJ.Y2 + ldy #S.WND.InnerY2 lda (ZPWNDPtr),y sec - sbc SYSFON.H - tax - + sbc SYSFON.Hp1 + sta (ZPWNDPtr),y iny lda (ZPWNDPtr),y sbc #0 - ldy #S.WND.SBarY1+1 - sta (ZPWNDPtr),y - txa - dey sta (ZPWNDPtr),y lda #S.WND.S.HASSBAR jsr WND.SetStatus - jsr WND.PaintSBar + jsr WND.DrawStatusBar *-------------------------------------- .8 ldy #S.WND.InnerH lda (ZPWNDPtr),y sec - sbc Counter+1 + sbc Counter sta (ZPWNDPtr),y iny lda (ZPWNDPtr),y - sbc #0 + sbc Counter+1 sta (ZPWNDPtr),y >LDYA L.WND.Desktop - jsr CB.FlushBufToYA lda WND.hWND @@ -489,10 +476,10 @@ WND.fPaint >SYSCALL2 GetMemPtr stz S.CB.SrcY stz S.CB.SrcY+1 - + ldy #S.WND.InnerW+3 ldx #3 - + .1 lda (ZPWNDPtr),y sta CB.Cache+S.CB.SrcW,x dey @@ -501,110 +488,15 @@ WND.fPaint >SYSCALL2 GetMemPtr lda #S.CB.CMD.BITBLT sta CB.Cache+S.CB.CMD - + jsr CB.Cache2CBBuf .8 >LDYA L.WND.Desktop + jmp CB.FlushBufToYA *-------------------------------------- -WND.ShowBorders sta IY - - lda #S.CB.CMD.HLINE - jsr CB.InitCacheA - - lda #S.CB.OP.SET - sta CB.Cache+S.CB.OP - lda #S.CB.M.MONO - sta CB.Cache+S.CB.M - lda PREFS.BORDERCOLOR - sta CB.Cache+S.CB.COLOR - - ldy #S.OBJ.X1 - - lda (ZPWNDPtr),y - sec - sbc IY - sta CB.Cache+S.CB.X1 - iny - lda (ZPWNDPtr),y - sbc #0 - sta CB.Cache+S.CB.X1+1 - - iny #S.OBJ.Y1 - - lda (ZPWNDPtr),y - sec - sbc IY - sta CB.Cache+S.CB.Y1 - sta CB.Cache+S.CB.Y2 - iny - lda (ZPWNDPtr),y - sbc #0 - sta CB.Cache+S.CB.Y1+1 - sta CB.Cache+S.CB.Y2+1 top X1-1,Y1-1,X2+1,Y1-1 - - iny #S.OBJ.X2 - - lda (ZPWNDPtr),y - clc - adc IY - sta CB.Cache+S.CB.X2 - iny - lda (ZPWNDPtr),y - adc #0 - sta CB.Cache+S.CB.X2+1 - - jsr CB.Cache2CBBuf - - ldy #S.OBJ.Y2 - lda (ZPWNDPtr),y - clc - adc IY - sta CB.Cache+S.CB.Y1 - sta CB.Cache+S.CB.Y2 - iny - lda (ZPWNDPtr),y - adc #0 - sta CB.Cache+S.CB.Y1+1 - sta CB.Cache+S.CB.Y2+1 bottom X1-1,Y2+1,X2+1,Y2+1 - - jsr CB.Cache2CBBuf - - lda #S.CB.CMD.VLINE - sta CB.Cache+S.CB.CMD - - ldy #S.OBJ.Y1 - lda (ZPWNDPtr),y - sec - sbc IY - sta CB.Cache+S.CB.Y1 - iny - lda (ZPWNDPtr),y - sbc #0 - sta CB.Cache+S.CB.Y1+1 - - lda CB.Cache+S.CB.X1 - sta CB.Cache+S.CB.X2 - lda CB.Cache+S.CB.X1+1 - sta CB.Cache+S.CB.X2+1 left X1-1,Y1-1,X1-1,Y2+1 - - jsr CB.Cache2CBBuf - - ldy #S.OBJ.X2 - lda (ZPWNDPtr),y - clc - adc IY - sta CB.Cache+S.CB.X1 - sta CB.Cache+S.CB.X2 - iny - lda (ZPWNDPtr),y - adc #0 - sta CB.Cache+S.CB.X1+1 - sta CB.Cache+S.CB.X2+1 right X2+1,Y1-1,X2+1,Y2+1 - - jmp CB.Cache2CBBuf -*-------------------------------------- -WND.PaintTopBar lda #S.CB.CMD.FILLRECT +WND.DrawTitleBar + lda #S.CB.CMD.FILLRECT jsr CB.InitCacheA lda #S.CB.OP.SET @@ -650,6 +542,7 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT inc DY bne .12 + inc DY+1 * TOP LEFT ICON @@ -669,7 +562,7 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT .2 jsr DRAW.yaBMAtDXDY - jsr WND.PaintTopBarTitle + jsr WND.DrawTitleBarText bcs .9 * TOP RIGHT ICONS @@ -712,6 +605,7 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT adc #16 sta DX bcc .41 + inc DX+1 .41 ldy #S.OBJ.F @@ -726,7 +620,7 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT .9 rts *-------------------------------------- -WND.PaintTopBarTitle +WND.DrawTitleBarText ldy #S.WND.pTITLE lda (ZPWNDPtr),y pha @@ -734,7 +628,7 @@ WND.PaintTopBarTitle lda (ZPWNDPtr),y ply - ldx hSYSFONB + ldx hSYSFON jsr FON.GetTextSize ldy #S.OBJ.W @@ -756,7 +650,7 @@ WND.PaintTopBarTitle lda (ZPWNDPtr),y clc adc DX - and PREFS.BESTVIEWEDX + and PREFS.BestViewedX sta DX iny @@ -771,18 +665,19 @@ WND.PaintTopBarTitle lda (ZPWNDPtr),y ply - ldx hSYSFONB + ldx hSYSFON clc jmp DRAW.YATextAtDXDY *-------------------------------------- -WND.PaintSBar lda #S.CB.CMD.HLINE +WND.DrawStatusBar + lda #S.CB.CMD.HLINE jsr CB.InitCacheA lda #S.CB.OP.SET sta CB.Cache+S.CB.OP lda #S.CB.M.MONO sta CB.Cache+S.CB.M - lda PREFS.BORDERCOLOR + lda PREFS.BorderColor sta CB.Cache+S.CB.COLOR ldy #S.OBJ.X1 @@ -854,12 +749,17 @@ WND.SetMBar >PULLW ZPPtr1 >PULLA >SYSCALL2 GetMemPtr >STYA ZPWNDPtr + + >LDYA ZPPtr1 + jsr MBAR.New + bcs .9 - - - - -.9 rts + ldy #S.WND.pMBAR + sta (ZPWNDPtr),y + +* clc + +.9 rts *-------------------------------------- WND.ClrStatus ldy #S.OBJ.S eor #$ff @@ -872,6 +772,16 @@ WND.SetStatus ldy #S.OBJ.S sta (ZPWNDPtr),y rts *-------------------------------------- +WND.Add2Counter clc + adc Counter + sta Counter + bcc .8 + + inc Counter+1 + +.8 ldx Counter+1 + rts +*-------------------------------------- MAN SAVE usr/src/lib/libgui.s.wnd LOAD usr/src/lib/libgui.s diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index 1efbb76a..04ed7620 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -79,15 +79,16 @@ MENU.RMargin .EQ 8 *-------------------------------------- .DUMMY .OR ZPLIB -ZPCBPtr .BS 2 ZPObjPtr .BS 2 +ZPRECTPtr .BS 2 ZPWNDPtr .BS 2 ZPMENUPtr .BS 2 ZPBMPtr .BS 2 -ZPRECTPtr .BS 2 ZPPtr1 .BS 2 + .BS 2 + DX .BS 2 DY .BS 2 IE .BS 2 @@ -227,6 +228,11 @@ LIB.LOAD lda LibCount jsr PTR.Set jsr PTR.Show + >LDYA L.MENU.Sys.Programs + >STYA MENU.Sys.1 + >LDYA L.MENU.Sys.Settings + >STYA MENU.Sys.2 + inc LibCount .8 clc @@ -244,26 +250,26 @@ SkipAPtr1 clc adc ZPPtr1 sta ZPPtr1 bcc .8 - + inc ZPPtr1+1 - -.8 rts + +.8 rts *-------------------------------------- SkipStrZPtr1 ldy #$ff .1 iny lda (ZPPtr1),y bne .1 - + tya sec \0 adc ZPPtr1 sta ZPPtr1 bcc .8 - + inc ZPPtr1+1 - -.8 rts + +.8 rts *-------------------------------------- .INB usr/src/lib/libgui.s.bm .INB usr/src/lib/libgui.s.but @@ -273,6 +279,7 @@ SkipStrZPtr1 ldy #$ff .INB usr/src/lib/libgui.s.draw .INB usr/src/lib/libgui.s.fon .INB usr/src/lib/libgui.s.mbar + .INB usr/src/lib/libgui.s.mbox .INB usr/src/lib/libgui.s.menu .INB usr/src/lib/libgui.s.mou .INB usr/src/lib/libgui.s.msg @@ -293,8 +300,8 @@ CS.END DEVNAME.GFX .AZ "/dev/gfx" DEVNAME.MOUSE .AZ "/dev/mou1" *-------------------------------------- -SYSX7 .AZ "${ROOT}sbin/sysx7" -SYSX7B .AZ "${ROOT}sbin/sysx7b" +SYSX7 .AZ "${ROOT}opt/gui/fonts/sysx7" +SYSX7B .AZ "${ROOT}opt/gui/fonts/sysx7b" *-------------------------------------- LibCount .BS 1 hDevMouse .BS 1 @@ -336,6 +343,7 @@ CB.PTR .DA #S.CB.CMD.BITBLT CB.Cache .BS S.CB OBJ.Cache .BS S.OBJ *-------------------------------------- +MENU.Stack.Idx .BS 1 MENU.Stack.Cnt .BS 1 MENU.Stack .BS MENU.MAX *-------------------------------------- @@ -352,6 +360,7 @@ WND.Desktop .DA #S.OBJ.T.WND *-------------------------------------- WND.SysBar .DA #S.OBJ.T.WND .BS S.WND-1 +*-------------------------------------- WND.SysBar.2osX .AZ "2osX" WND.SysBar.Clk .AZ "00:00" WND.SysBar.bSysBut .BS 1 @@ -362,8 +371,6 @@ RECT.SysWNDs .BS S.RECT *-------------------------------------- RECT.SysClk .BS S.RECT *-------------------------------------- -hSysMenu .BS 1 -*-------------------------------------- MENU.Sys .DA #S.MITEM.T.ITEM .DA #2 ID .DA #KEYMOD.CTRL+KEYMOD.OA+KEYMOD.CA,#'A' @@ -373,12 +380,12 @@ MENU.Sys .DA #S.MITEM.T.ITEM .DA #S.MITEM.T.SEP .DA #S.MITEM.T.SUBMENU - .DA MENU.Sys.Programs +MENU.Sys.1 .DA MENU.Sys.Programs .DA 0 pICON .AZ "Programs" .DA #S.MITEM.T.SUBMENU - .DA MENU.Sys.Settings +MENU.Sys.2 .DA MENU.Sys.Settings .DA 0 pICON .AZ "Settings" @@ -431,21 +438,22 @@ MENU.Sys.Settings KEYMOD.S.CTRL .EQ 0 KEYMOD.S .AZ "Ctrl-" KEYMOD.S.OA .EQ *-KEYMOD.S - .DA #01,#'-',#0 + .DA #01,#'-',#0 KEYMOD.S.CA .EQ *-KEYMOD.S .DA #02,#'-',#0 *-------------------------------------- TEXTBUF .BS 16 for composing HotKey strings *-------------------------------------- -PREFS.BESTVIEWEDX .DA #$FC +PREFS.BestViewedX .DA #$FC +PREFS.MBarXMargin .DA #5 +* PREFS.bSYSBARTOP .DA #0 -PREFS.MBARXMARGIN .DA #5 -PREFS.MENUCOLOR .DA #C.WHITE +PREFS.MenuColor .DA #C.WHITE PREFS.SYSBARCOLOR .DA #C.WHITE -PREFS.BORDERCOLOR .DA #C.BLACK +PREFS.BorderColor .DA #C.BLACK PREFS.TBARCOLORA .DA #C16.D.BLUE PREFS.TBARCOLORI .DA #C16.L.BLUE -PREFS.MBARCOLOR .DA #C.WHITE +PREFS.MBarColor .DA #C.WHITE PREFS.SBARCOLOR .DA #C.WHITE PREFS.DESKTOPCOLOR .DA #C16.D.BLUE *-------------------------------------- diff --git a/BIN/GUITEST1.S.txt b/ROOT/asmtest/TESTGUI.S.txt similarity index 91% rename from BIN/GUITEST1.S.txt rename to ROOT/asmtest/TESTGUI.S.txt index 5ff45d5a..fefa8e8b 100644 --- a/BIN/GUITEST1.S.txt +++ b/ROOT/asmtest/TESTGUI.S.txt @@ -3,7 +3,7 @@ NEW .LIST OFF .OP 65C02 .OR $2000 - .TF bin/guitest1 + .TF root/asmtest/testgui *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i @@ -87,8 +87,8 @@ CS.QUIT.RTS rts *-------------------------------------- WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F.MIN - >PUSHWI 40 >PUSHWI 80 + >PUSHWI 40 >PUSHWI 360 >PUSHWI 96 >LIBCALL hLIBGUI,LIBGUI.WND.New @@ -112,11 +112,11 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F. >PUSHB hWND >PUSHW L.WND.MBAR - >LIBCALL hLIBGUI,LIBGUI.MBAR.New - sta hMBAR +* >LIBCALL hLIBGUI,LIBGUI.MBAR.New +* sta hMBAR - >PUSHB hWND - >PUSHB hMBAR +* >PUSHB hWND +* >PUSHB hMBAR >LIBCALL hLIBGUI,LIBGUI.WND.SetMBar >PUSHB hWND @@ -156,7 +156,7 @@ LIBGUI .AZ "libgui" hLIBGUI .BS 1 *-------------------------------------- LOGOFILE .AZ "${ROOT}A2osX.logo" -WND.TITLE .AZ "Window Title" +WND.TITLE .AZ "Libgui ASM API test" WND.STATUS .AZ "Window status bar message" *-------------------------------------- WND.MBAR .AZ "File" @@ -271,5 +271,5 @@ DS.START DS.END .ED *-------------------------------------- MAN -SAVE usr/src/bin/guitest1.s +SAVE root/asmtest/testgui.s ASM diff --git a/ROOT/ctest/testgui.c..txt b/ROOT/ctest/testgui.c..txt index 9c3b2e5c..b5915f87 100644 --- a/ROOT/ctest/testgui.c..txt +++ b/ROOT/ctest/testgui.c..txt @@ -8,20 +8,21 @@ int bQuit=0; int main(int argc, char *argv[]) { short int hWND = guiNewWnd(WND_F_RESIZE+WND_F_MOVE+WND_F_CLOSE+WND_F_MAX+WND_F_MIN, - 20,40,200,140); - guiSetProp(hWND, WND_P_pTITLE, "Window title"); + 20,20,200,100); + guiSetProp(hWND, WND_P_pTITLE, "Libgui C API"); guiSetProp(hWND, WND_P_pSTATUS, "Status bar"); -// guiSetProp(hWND, WND_P_BGCOLOR, C.WHITE); + guiSetProp(hWND, WND_P_BGCOLOR, pC_WHITE); guiShowWnd(hWND); do { if (guiGetMsg(&msg)) { - switch msg.type { - case MSG_T_WND: - break; - } +// switch msg.type { +// case MSG_T_WND: +// break; +// } + } } while (!bQuit) guiDestroyWnd(hWND); diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 18ed6c46..844d058c 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -61,12 +61,16 @@ CS.RUN >SLEEP >LIBCALL hLIBGUI,LIBGUI.MSG.Get bcs CS.RUN -.1 lda MSG+S.MSG.T + lda MSG+S.MSG.T cmp #S.MSG.T.ID bne CS.RUN lda MSG+S.MSG.ID - cmp #42 + cmp #2 + bne .1 + + +.1 cmp #42 bne .2 >PUSHW L.GUITEST1 @@ -81,6 +85,7 @@ CS.RUN >SLEEP >PUSHBI 0 >SYSCALL ExecL bra CS.RUN + clc rts *-------------------------------------- @@ -98,7 +103,7 @@ CS.QUIT.RTS rts CS.END LIBGUI .AZ "libgui" hLIBGUI .BS 1 -GUITEST1 .AZ "${ROOT}root/asmtest/guitest1" +GUITEST1 .AZ "${ROOT}root/asmtest/testgui" GUITEST2 .AZ "${ROOT}root/ctest/testgui" *-------------------------------------- MSG .BS S.MSG