From 2545da06f0982bbf69bda06357fc80978414a33f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 15 Sep 2020 16:48:35 +0200 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes INC/LIBGUI.I.txt | 6 +- LIB/LIBGUI.G.BM.txt | 34 ++-- LIB/LIBGUI.G.FON.txt | 3 +- LIB/LIBGUI.S.FON.txt | 5 +- LIB/LIBGUI.S.MENU.txt | 9 + LIB/LIBGUI.S.WND.txt | 359 +++++++++++++++++++++++++-------------- LIB/LIBGUI.S.txt | 31 +++- SBIN/GUI.S.txt | 16 +- 9 files changed, 300 insertions(+), 163 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index daf25714515ec52b8478db40c036bfd95e6b85bb..7dfee22bc4fbe780d8411171d1f6233a12f853a3 100644 GIT binary patch delta 22187 zcmb7sc|a6L_J8%jU^Bxt7xyuM7aqev6Ge^6Fav^e38+9W5Ku_u5HMor7*Q#WI>eKf zc%e}u#z9b{IW+5LlWgvgYqLi-n`|~FCed|s-+o_J^$f%D`{O5mX1d>1ud1u7tKO@g z^}pT>To35KL+PEEFgsv(g>r&I8MJ$gG9J#S2JSwsY=!f)2|oTR1sZoYHR#40T0eAH zk2X&74nn_wf{cj?z@PoEm${%x3iRP*l?L6Q)Tx1Ibsx`B677O3{rl|&EltR|K-h^j2kG)rn~X-0fDH|6rg=}5njD_GNFO}AE5)>J1`L8Mv4b*-wZ zXtSo9C>ilNKxl44d@k43QqhWn^N7GYDo|IIQ(ZqjX<92%=5t+0UBGo^uBvKni#H=f zA!kaGJS~Bgu88ZpySb?iO0~%4@x@$MZG9`^mvCKG)$5RYDc7~Uah0^V-K@7qmk|do zB}}$sr0VV9QELT?xsysUp{>m=6>XD;s-1vzcaah*J)1&Z4u#ZLx0zCrp<*O=Y7$Z{ z=S-uOw8f&A`<%TTbSD67uPG5(|zRVqsKlR zKjCeOTQ&E4b%28W8|Uk5jNQ%oeRm#nX>mdRfv7${IB5OvpL|nAI?#oJ6P!vpNuxnl zQ+kfYx@fm4V{w}q>9xq3G{a;A;*yMq2`vd3bW)>})8C_~tlS}%fOG~*OE1h{mbZgQ zryyN0B`qk-C{3oMTaYfqMap1OGmtivk}QjtSauSoVCaZK;gD3~3GwBV?h_gN$Hi61kS5MW+1B zBBVJ4bg-D(KDnx*r6K|Ghgpe+ZjN4%hY7dH#4b+Q5h?G0cc}d+mz%$&D8ptcwrpd3 zdXD%<<(udjm)o$Wx!Ss_qONf(wU7AYvf&=ibsueKy4G|Q@)(z&zL4ErvPC#Y{0XKL z)5|T(vzdx2o2skpx0<9+4|r>ACzh{Zk&YCTmUYs;Xub>}0~p?Zl3) zy7``#hDK!Qlai8J=U- ze75frI(7@E&I!&ZfYB*jlPDv|XM3m6Aqk=7spY433C`WZYv+V(PcUBQsZPNu39t1F z*9Kgc&j`-5U|^4MZLe(EzI~6-u~#^CUT|Ij&OYHeT4c zMi*uuQ5va=@sshS$RC{jLh7|$Li<8!4rq$@MYMfxaqbdAs~0+GeXAEab_>o&DB%&o zxnBUne!+Q2Nd0u7<;}K72^Q4&Ec=!Q=XLB zC?mT(EA?8xu+`Ohl>2E7r|2bl?L28<(nEsuqwXo% zxX%A1z8tV)Re1Qz;e(3a0LOn4ou4M!gS?FTiGBY`ytKjS2sO8tUD{}LgqhoK>sAbu zIrQexI^LZ15*!-Lb-rfVZ9j8|znKt&fv;lx5ObZ{#Sbud1e(FP*;0PygDW4jm(kDL zfI>^__8KVbx{|mh=tt+L_C#}3IbryK8wWm3B*$hSW9Y;;;JDYgewssR2Jf6#5>tQs zBGJK{ou4IMMGjxH^K+nlndnfNomUA(ZSIW(*;9>1=W3(zKgLrJ8l85d@t?8%UO78r znICD?4-5G`K|VmtekSe4^kZqqEym1P<43XmfqfmqNBSK~s0^)JUqTI_0yb_#}{2i=A^ARymGEiI=(RbX8V%ki{NwVl_i7TSC-xg zzP?Ks^tujX1-Xm!9D9i7`hS-nm&!Ag`LV#%0&~6p@x`Il`R$937giUv7kbD_gBi-= za+mH1IhSo>^0{*O>{r8w^Qdt2cO&|D`Kc7i(dR-*9WJT8=aNL zqrqT!hx+;?!8u8IId$-paz{Q4)y{Q-;~`<8 zUn#tjweMi1Q1eRAH@%$WHYnNcUb)d(!QAUlaXc@ay4&cy$GE*taMTMR+8{We7o?9D zC}Zrc0(iUq4Z-oIu-z}k;h(bImg2}ralV}#TI=J;Od;M5!r+;i;s{7_+?qn_u^n^!+KrDcnvQ-2QKO+r4+%wnCYXza(D==XxK^>h-yh?p3DTTtD?CQ=Km9rJQ* z($bBbM$E>uP;m)D`VCUWGnd`%0AZzhN1Dp%DuqPP}Hu3XcE;@7}o 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 L=laB(+@}8njDuvM delta 20351 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 L.SYSX7 * ldy #S.FON.PixH * >SYSCALL2 GetStkObjProp lda #7 + dec + sta SYSFON.Hm1 + inc sta SYSFON.H inc inc - sta SYSFON.H2 + sta SYSFON.Hp2 .9 rts *-------------------------------------- diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt index 04cf2bc6..64aad8ad 100644 --- a/LIB/LIBGUI.S.MENU.txt +++ b/LIB/LIBGUI.S.MENU.txt @@ -16,6 +16,15 @@ MENU.New >STYA ZPPtr1 MENU.Paint MENU.Close *-------------------------------------- +MENU.MenubarInit + >STYA ZPPtr1 + + + + + clc + rts +*-------------------------------------- MENUBAR.New MENUBAR.Paint MENUBAR.Close diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index 243d5935..d4ee1141 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -84,56 +84,56 @@ WND.Create ldy WND.Stack.Top >SYSCALL2 getmem bcs .9 - >STYA ZPPtr1 + >STYA ZPWNDPtr lda #S.OBJ.T.WND - sta (ZPPtr1) S.OBJ.T + sta (ZPWNDPtr) S.OBJ.T ldy #S.WND-1 lda #0 -.1 sta (ZPPtr1),y +.1 sta (ZPWNDPtr),y dey bne .1 >PULLA ldy #S.OBJ.H - sta (ZPPtr1),y + sta (ZPWNDPtr),y >PULLA iny - sta (ZPPtr1),y + sta (ZPWNDPtr),y >PULLA ldy #S.OBJ.W - sta (ZPPtr1),y + sta (ZPWNDPtr),y >PULLA iny - sta (ZPPtr1),y + sta (ZPWNDPtr),y >PULLA ldy #S.OBJ.Y1 - sta (ZPPtr1),y + sta (ZPWNDPtr),y >PULLA iny - sta (ZPPtr1),y + sta (ZPWNDPtr),y >PULLA ldy #S.OBJ.X1 and PREFS.BESTVIEWEDX - sta (ZPPtr1),y + sta (ZPWNDPtr),y >PULLA iny - sta (ZPPtr1),y + sta (ZPWNDPtr),y >PULLA ldy #S.OBJ.F - sta (ZPPtr1),y + sta (ZPWNDPtr),y ldy #S.PS.PID lda (pPs),y ldy #S.OBJ.hOWNER - sta (ZPPtr1),y + sta (ZPWNDPtr),y txa ID ldy WND.Stack.Top @@ -153,7 +153,7 @@ WND.SetProp ldy #3 lda (pStack),y hWND >SYSCALL2 GetMemPtr - >STYA ZPPtr1 + >STYA ZPWNDPtr ldy #2 lda (pStack),y @@ -161,11 +161,11 @@ WND.SetProp ldy #3 tay >PULLA - sta (ZPPtr1),y + sta (ZPWNDPtr),y iny >PULLA - sta (ZPPtr1),y + sta (ZPWNDPtr),y >RET 2 *-------------------------------------- @@ -176,14 +176,14 @@ WND.GetProp >PULLA >PULLA >SYSCALL2 GetMemPtr - >STYA ZPPtr1 + >STYA ZPWNDPtr ply - lda (ZPPtr1),y + lda (ZPWNDPtr),y pha iny - lda (ZPPtr1),y + lda (ZPWNDPtr),y ply rts @@ -191,7 +191,7 @@ WND.GetProp >PULLA * A = hWND *-------------------------------------- WND.Show >SYSCALL2 GetMemPtr - >STYA ZPPtr1 + >STYA ZPWNDPtr jsr OBJ.SetX2Y2 @@ -202,24 +202,24 @@ WND.Show >SYSCALL2 GetMemPtr stz Counter+1 Y ldy #S.OBJ.F - lda (ZPPtr1),y + lda (ZPWNDPtr),y and #S.WND.F.RESIZE+S.WND.F.BORDER beq .1 jsr WND.PaintBorders .1 ldy #S.WND.TITLE+1 - lda (ZPPtr1),y + lda (ZPWNDPtr),y bne .2 ldy #S.OBJ.S - lda (ZPPtr1),y + lda (ZPWNDPtr),y 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.H2 + adc SYSFON.Hp2 sta Counter+1 lda #S.WND.S.HASTOPBAR @@ -228,22 +228,36 @@ WND.Show >SYSCALL2 GetMemPtr jsr WND.PaintTopBar bcs .9 -.3 - +.3 ldy #S.WND.MENUBAR+1 + lda (ZPWNDPtr),y + beq .7 + + lda Counter+1 + clc + adc SYSFON.Hp2 + sta Counter+1 + + lda #S.WND.S.HASMENUBAR + jsr WND.SetStatus + + jsr WND.PaintMenuBar .7 ldy #S.WND.STATUS+1 - lda (ZPPtr1),y + lda (ZPWNDPtr),y beq .8 lda Counter+1 clc - adc SYSFON.H2 + adc SYSFON.Hp2 sta Counter+1 + lda #S.WND.S.HASSTATUSBAR + jsr WND.SetStatus + jsr WND.PaintStatusBar .8 lda #0 - jsr PutCBBuf + jsr PutA2CBBuf >LDYA L.WND.Screen jsr DrawToYA @@ -257,7 +271,7 @@ WND.Show >SYSCALL2 GetMemPtr WND.New clc rts *-------------------------------------- -WND.Paint >STYA ZPPtr1 +WND.Paint >STYA ZPWNDPtr clc rts @@ -326,88 +340,98 @@ WND.PaintBorders rts WND.PaintBorders.H - jsr PutCBBuf + jsr PutA2CBBuf lda #S.CB.OP.SET - jsr PutCBBuf + jsr PutA2CBBuf lda #S.CB.M.MONO - jsr PutCBBuf + jsr PutA2CBBuf lda PREFS.BORDERCOLOR - jmp PutCBBuf + jmp PutA2CBBuf WND.PaintPushWYm1 - lda (ZPPtr1),y + lda (ZPWNDPtr),y sec sbc #1 - jsr PutCBBuf + jsr PutA2CBBuf iny - lda (ZPPtr1),y + lda (ZPWNDPtr),y sbc #0 - jsr PutCBBuf + jsr PutA2CBBuf rts WND.PaintPushWYp1 - lda (ZPPtr1),y + lda (ZPWNDPtr),y clc adc #1 - jsr PutCBBuf + jsr PutA2CBBuf iny adc #0 - lda (ZPPtr1),y - jsr PutCBBuf + lda (ZPWNDPtr),y + jsr PutA2CBBuf rts *-------------------------------------- WND.PaintTopBar lda #S.CB.CMD.FILLRECT - jsr PutCBBuf + jsr PutA2CBBuf lda #S.CB.OP.SET - jsr PutCBBuf + jsr PutA2CBBuf lda #S.CB.M.C16 - jsr PutCBBuf - lda PREFS.TOPBARCOLOR - jsr PutCBBuf + jsr PutA2CBBuf + + ldx PREFS.TOPBARCOLORI + + ldy #S.OBJ.S + lda (ZPWNDPtr),y + and #S.WND.S.ACTIVE + beq .10 + + ldx PREFS.TOPBARCOLORA + +.10 txa + jsr PutA2CBBuf ldy #S.OBJ.X1 - lda (ZPPtr1),y - jsr PutCBBuf + lda (ZPWNDPtr),y + jsr PutA2CBBuf iny - lda (ZPPtr1),y - jsr PutCBBuf + lda (ZPWNDPtr),y + jsr PutA2CBBuf iny ldy #S.OBJ.Y1 - lda (ZPPtr1),y - jsr PutCBBuf + lda (ZPWNDPtr),y + jsr PutA2CBBuf iny - lda (ZPPtr1),y - jsr PutCBBuf + lda (ZPWNDPtr),y + jsr PutA2CBBuf iny ldy #S.OBJ.X2 - lda (ZPPtr1),y - jsr PutCBBuf + lda (ZPWNDPtr),y + jsr PutA2CBBuf iny - lda (ZPPtr1),y - jsr PutCBBuf + lda (ZPWNDPtr),y + jsr PutA2CBBuf ldy #S.OBJ.Y1 - lda (ZPPtr1),y + lda (ZPWNDPtr),y sec adc SYSFON.H - jsr PutCBBuf + jsr PutA2CBBuf iny - lda (ZPPtr1),y + lda (ZPWNDPtr),y adc #0 - jsr PutCBBuf + jsr PutA2CBBuf * TOP LEFT ICON ldy #S.WND.ICON+1 - lda (ZPPtr1),y + lda (ZPWNDPtr),y tax dey - ora (ZPPtr1),y + ora (ZPWNDPtr),y bne .1 lda L.BM.Apple ldx L.BM.Apple+1 bra .2 -.1 lda (ZPPtr1),y +.1 lda (ZPWNDPtr),y .2 sta ZPObjPtr stx ZPObjPtr+1 @@ -421,7 +445,7 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT bcs .9 * TOP RIGHT ICONS ldy #S.OBJ.F - lda (ZPPtr1),y + lda (ZPWNDPtr),y bit #S.WND.F.CLOSE beq .3 @@ -433,12 +457,12 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT stx ZPObjPtr+1 ldy #S.OBJ.W - lda (ZPPtr1),y + lda (ZPWNDPtr),y sec sbc #16 pha iny - lda (ZPPtr1),y + lda (ZPWNDPtr),y sbc #0 tax @@ -459,12 +483,12 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT stx ZPObjPtr+1 ldy #S.OBJ.W - lda (ZPPtr1),y + lda (ZPWNDPtr),y sec sbc #32 pha iny - lda (ZPPtr1),y + lda (ZPWNDPtr),y sbc #0 tax @@ -483,12 +507,12 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT stx ZPObjPtr+1 ldy #S.OBJ.W - lda (ZPPtr1),y + lda (ZPWNDPtr),y sec sbc #48 pha iny - lda (ZPPtr1),y + lda (ZPWNDPtr),y sbc #0 tax @@ -504,71 +528,71 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT WND.PaintTopBarBMAtAX clc ldy #S.OBJ.X1 - adc (ZPPtr1),y + adc (ZPWNDPtr),y pha iny txa - adc (ZPPtr1),y + adc (ZPWNDPtr),y tax lda #S.CB.CMD.BITBLT - jsr PutCBBuf + jsr PutA2CBBuf lda #S.CB.OP.MASK+S.CB.OP.ORA+S.CB.OP.COLOR - jsr PutCBBuf + jsr PutA2CBBuf lda #S.CB.M.C16 - jsr PutCBBuf + jsr PutA2CBBuf lda #0 - jsr PutCBBuf + jsr PutA2CBBuf pla S.CB.X1 - jsr PutCBBufAX + jsr PutAX2CBBuf ldy #S.OBJ.Y1 S.CB.Y1 - lda (ZPPtr1),y + lda (ZPWNDPtr),y clc adc #1 - jsr PutCBBuf + jsr PutA2CBBuf iny - lda (ZPPtr1),y + lda (ZPWNDPtr),y adc #0 - jsr PutCBBuf + jsr PutA2CBBuf lda #0 S.CB.X2 - jsr PutCBBuf - jsr PutCBBuf + jsr PutA2CBBuf + jsr PutA2CBBuf - jsr PutCBBuf S.CB.Y2 - jsr PutCBBuf + jsr PutA2CBBuf S.CB.Y2 + jsr PutA2CBBuf - jsr PutCBBuf S.CB.SrcX - jsr PutCBBuf + jsr PutA2CBBuf S.CB.SrcX + jsr PutA2CBBuf - jsr PutCBBuf S.CB.SrcY - jsr PutCBBuf + jsr PutA2CBBuf S.CB.SrcY + jsr PutA2CBBuf ldx #4 ldy #S.BM.W .1 lda (ZPObjPtr),y S.CB.SrcW,S.CB.SrcH - jsr PutCBBuf + jsr PutA2CBBuf iny dex bne .1 lda ZPObjPtr S.CB.SrcPtr - jsr PutCBBuf + jsr PutA2CBBuf lda ZPObjPtr+1 - jsr PutCBBuf + jsr PutA2CBBuf lda #0 S.CB.DstPtr - jsr PutCBBuf - jsr PutCBBuf + jsr PutA2CBBuf + jsr PutA2CBBuf rts *-------------------------------------- @@ -581,28 +605,28 @@ WND.PaintTopBarTitle sta CB.Cache+S.CB.OP lda #S.CB.M.MONO sta CB.Cache+S.CB.M - lda hSYSFON + lda hSYSFONB sta CB.Cache+S.CB.hFont ldy #S.WND.TITLE - lda (ZPPtr1),y + lda (ZPWNDPtr),y sta CB.Cache+S.CB.TxtPtr iny - lda (ZPPtr1),y + lda (ZPWNDPtr),y sta CB.Cache+S.CB.TxtPtr+1 jsr GFXWrite.CB bcs .9 ldy #S.OBJ.W - lda (ZPPtr1),y + lda (ZPWNDPtr),y sec sbc CB.Cache+S.CB.SrcW sta DX iny - lda (ZPPtr1),y + lda (ZPWNDPtr),y sbc CB.Cache+S.CB.SrcW+1 lsr @@ -610,41 +634,86 @@ WND.PaintTopBarTitle sta DX+1 ldy #S.OBJ.X1 - lda (ZPPtr1),y + lda (ZPWNDPtr),y clc adc DX and PREFS.BESTVIEWEDX sta CB.Cache+S.CB.X1 iny - lda (ZPPtr1),y + lda (ZPWNDPtr),y adc DX+1 sta CB.Cache+S.CB.X1+1 ldy #S.OBJ.Y1 - lda (ZPPtr1),y + lda (ZPWNDPtr),y clc adc #1 sta CB.Cache+S.CB.Y1 iny - lda (ZPPtr1),y + lda (ZPWNDPtr),y adc #0 sta CB.Cache+S.CB.Y1+1 - ldx #0 - -.8 lda CB.Cache,x - jsr PutCBBuf - inx - cpx #S.CB.DstPtr+2 - bne .8 + jsr PutCBCache2CBBuf clc .9 rts *-------------------------------------- +WND.PaintMenuBar + ldy #S.WND.MENUBAR + lda (ZPWNDPtr),y + sta ZPMENUPtr + iny + lda (ZPWNDPtr),y + sta ZPMENUPtr+1 + + lda (ZPMENUPtr) + bne .1 + + >LDYA ZPMENUPtr + jsr MENU.MenubarInit + + +.1 + clc + +.9 rts +*-------------------------------------- WND.PaintStatusBar - jsr CB.Clear + lda #S.CB.CMD.HLINE + jsr WND.PaintBorders.H + + ldy #S.OBJ.X1 + lda (ZPWNDPtr),y + jsr PutA2CBBuf + iny + lda (ZPWNDPtr),y + jsr PutA2CBBuf + + ldy #S.OBJ.Y2 + lda (ZPWNDPtr),y + sec + sbc SYSFON.H + jsr PutA2CBBuf + iny + lda (ZPWNDPtr),y + sbc #0 + jsr PutA2CBBuf + + ldy #S.OBJ.X2 + lda (ZPWNDPtr),y + jsr PutA2CBBuf + iny + lda (ZPWNDPtr),y + jsr PutA2CBBuf + + lda #0 + jsr PutA2CBBuf + jsr PutA2CBBuf + + jsr CB.Clear S.CB.Y2 lda #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD sta CB.Cache+S.CB.CMD @@ -656,40 +725,68 @@ WND.PaintStatusBar sta CB.Cache+S.CB.hFont ldy #S.WND.STATUS - lda (ZPPtr1),y + lda (ZPWNDPtr),y sta CB.Cache+S.CB.TxtPtr iny - lda (ZPPtr1),y + lda (ZPWNDPtr),y sta CB.Cache+S.CB.TxtPtr+1 jsr GFXWrite.CB bcs .9 ldy #S.OBJ.X1 - lda (ZPPtr1),y + lda (ZPWNDPtr),y sta CB.Cache+S.CB.X1 iny - lda (ZPPtr1),y + lda (ZPWNDPtr),y sta CB.Cache+S.CB.X1+1 ldy #S.OBJ.Y2 - lda (ZPPtr1),y + lda (ZPWNDPtr),y sec - sbc SYSFON.H + sbc SYSFON.Hm1 sta CB.Cache+S.CB.Y1 iny - lda (ZPPtr1),y + lda (ZPWNDPtr),y sbc #0 sta CB.Cache+S.CB.Y1+1 - ldx #0 + jsr PutCBCache2CBBuf -.8 lda CB.Cache,x - jsr PutCBBuf - inx - cpx #S.CB.DstPtr+2 - bne .8 + lda #S.CB.CMD.FILLRECT + sta CB.Cache+S.CB.CMD + lda #S.CB.OP.SET + sta CB.Cache+S.CB.OP + lda #S.CB.M.MONO + sta CB.Cache+S.CB.M + lda #C.WHITE + sta CB.Cache+S.CB.OP.COLOR + + lda CB.Cache+S.CB.X1 + clc + adc CB.Cache+S.CB.SrcW + sta CB.Cache+S.CB.X1 + + lda CB.Cache+S.CB.X1+1 + adc CB.Cache+S.CB.SrcW+1 + sta CB.Cache+S.CB.X1+1 + + ldy #S.OBJ.X2 + lda (ZPWNDPtr),y + sta CB.Cache+S.CB.X2 + iny + lda (ZPWNDPtr),y + sta CB.Cache+S.CB.X2+1 + + ldy #S.OBJ.Y2 + lda (ZPWNDPtr),y + sta CB.Cache+S.CB.Y2 + iny + lda (ZPWNDPtr),y + sta CB.Cache+S.CB.Y2+1 + + jsr PutCBCache2CBBuf clc @@ -697,13 +794,13 @@ WND.PaintStatusBar *-------------------------------------- WND.ClrStatus ldy #S.OBJ.S eor #$ff - and (ZPPtr1),y - sta (ZPPtr1),y + and (ZPWNDPtr),y + sta (ZPWNDPtr),y rts *-------------------------------------- WND.SetStatus ldy #S.OBJ.S - ora (ZPPtr1),y - sta (ZPPtr1),y + ora (ZPWNDPtr),y + sta (ZPWNDPtr),y rts *-------------------------------------- WND.Close clc diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index a5653e2d..7d7adaa9 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -74,10 +74,10 @@ WND.MAX .EQ 64 *-------------------------------------- .DUMMY .OR ZPLIB -ZPPtr1 .BS 2 -ZPObjPtr .BS 2 ZPCBPtr .BS 2 +ZPObjPtr .BS 2 ZPWNDPtr .BS 2 +ZPMENUPtr .BS 2 CLIP.Line.P1 .BS 1 CLIP.Line.P2 .BS 1 @@ -93,6 +93,8 @@ Counter .BS 2 hCBBuf .BS 1 ZPCBBufPtr .BS 2 +ZPPtr1 .BS 2 + .ED *-------------------------------------- * File Header (16 Bytes) @@ -325,11 +327,27 @@ GetCBBuf >LDYAI 256 >STYA ZPCBBufPtr .9 rts *-------------------------------------- -PutCBBufAX jsr PutCBBuf +PutCBCache2CBBuf + lda CB.Cache + lsr + tax + ldy CB.CmdLen-1,x + + ldx #0 + +.1 lda CB.Cache,x + jsr PutA2CBBuf + inx + dey + bpl .1 + + rts +*-------------------------------------- +PutAX2CBBuf jsr PutA2CBBuf txa -PutCBBuf sta (ZPCBBufPtr) +PutA2CBBuf sta (ZPCBBufPtr) inc ZPCBBufPtr bne .8 inc ZPCBBufPtr+1 @@ -439,8 +457,9 @@ MENU.Sys .DA #2 ID .DA #0 *-------------------------------------- PREFS.BESTVIEWEDX .DA #$FC -PREFS.BORDERCOLOR .DA #0 BLACK -PREFS.TOPBARCOLOR .DA #C16.D.BLUE +PREFS.BORDERCOLOR .DA #C.BLACK +PREFS.TOPBARCOLORA .DA #C16.D.BLUE +PREFS.TOPBARCOLORI .DA #C16.L.BLUE *-------------------------------------- MAN SAVE usr/src/lib/libgui.s diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index e172e69e..d7b3d806 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -44,7 +44,7 @@ CS.START cld L.LIBGUI .DA LIBGUI L.MouseData .DA MouseData L.WND.TITLE .DA WND.TITLE -L.WND.MBAR .DA WND.MBAR +L.WND.MENUBAR .DA WND.MENUBAR L.WND.STATUS .DA WND.STATUS .DA 0 *-------------------------------------- @@ -128,8 +128,8 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F. lda hWND >PUSHA - >PUSHBI S.WND.MBAR - >PUSHW L.WND.MBAR + >PUSHBI S.WND.MENUBAR + >PUSHW L.WND.MENUBAR >LIBCALL hLIBGUI,LIBGUI.WND.SetProp lda hWND @@ -155,7 +155,10 @@ MouseData .BS S.MOUSE hWND .BS 1 WND.TITLE .AZ "Window Title" *-------------------------------------- -WND.MBAR .AZ "File" +WND.MENUBAR .DA #0 + .DA #0 + .DA #.1-* + .AZ "File" .DA #02 ID .DA #S.MITEM.KEYMOD.CTRL .DA #'N' @@ -177,6 +180,7 @@ WND.MBAR .AZ "File" .DA #'Q' .AZ "Quit" .DA #0 +.1 .DA #.2-* .AZ "Edit" .DA #12 ID .DA #S.MITEM.KEYMOD.OA @@ -191,19 +195,21 @@ WND.MBAR .AZ "File" .DA #'V' .AZ "Paste" .DA #0 +.2 .DA #.3-* .AZ "Options" .DA #18 ID .DA #0 .DA #0 .AZ "Check Me" .DA #0 +.3 .DA #.4-* .AZ "?" .DA #20 ID .DA #0 .DA #0 .AZ "About..." .DA #0 - .DA #0 +.4 .DA #0 *-------------------------------------- WND.STATUS .AZ "Window status bar message" *--------------------------------------