Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-10-26 17:32:51 +01:00
parent fec70d8a4b
commit b973119f04
7 changed files with 291 additions and 269 deletions

Binary file not shown.

View File

@ -82,15 +82,12 @@ BITBLT >LDYA CB.Cache+S.CB.X1
bne .2
sta CLRREADAUX
rts
BITBLT.RTS rts
*--------------------------------------
BITBLT.0 bit #S.CB.OP.SAVE
beq BITBLT.1
and #$f
bne .66
.66 ldy CB.Cache+S.CB.DstPtr
ldy CB.Cache+S.CB.DstPtr
lda CB.Cache+S.CB.DstPtr+1
bne .1
@ -139,7 +136,7 @@ BITBLT.0 bit #S.CB.OP.SAVE
lda CB.Cache+S.CB.OP
*--------------------------------------
BITBLT.1 and #$0F
beq .8
beq BITBLT.RTS
ldy CB.Cache+S.CB.SrcPtr
lda CB.Cache+S.CB.SrcPtr+1
@ -151,12 +148,6 @@ BITBLT.1 and #$0F
>SYSCALL2 GetMemPtr
.4 >STYA ZPBMDataPtr
jsr BITBLT.2
.8 sta CLRREADAUX
rts
*--------------------------------------
BITBLT.2 ldy #S.BM-1
@ -181,6 +172,7 @@ BITBLT.2 ldy #S.BM-1
lda ZPBMDataPtr+1
adc BM.Cache+S.BM.MASK.OFS+1
sta ZPBMMaskPtr+1
lda ZPBMDataPtr
clc
adc #S.BM
@ -233,7 +225,13 @@ BITBLT.2 ldy #S.BM-1
inc BLT.BMMaskPtr+1
.4 ldx BLT.ScrBitOfs
.4 lda BM.Cache+S.BM.H
cmp CB.Cache+S.CB.SrcH
bcs .5
sta CB.Cache+S.CB.SrcH
.5 ldx BLT.ScrBitOfs
bne BITBLT.LOOPx
*------------ Shift 0
@ -277,6 +275,7 @@ BITBLT.LOOP0 lda CB.Cache+S.CB.OP
ldy CB.Cache+S.CB.Y1
jsr LBUF.DrawAtY
inc CB.Cache+S.CB.Y1
dec CB.Cache+S.CB.SrcH
beq .8
@ -297,13 +296,13 @@ BITBLT.LOOP0 lda CB.Cache+S.CB.OP
clc
adc BM.Cache+S.BM.RowBytes
sta BLT.BMDataPtr
bcc .5
bcc BITBLT.LOOP0
inc BLT.BMDataPtr+1
.5 bra BITBLT.LOOP0
bra BITBLT.LOOP0
.8 clc
.8 sta CLRREADAUX
rts
*--------------------------------------
BITBLT.LOOPx ldy Shift.L.LO-1,x X = 1->6
@ -380,6 +379,7 @@ BITBLT.LOOPx.7 and #$ff SELF MODIFIED : #%01110000 get only col2 bites
ldy CB.Cache+S.CB.Y1
jsr LBUF.DrawAtY
inc CB.Cache+S.CB.Y1
dec CB.Cache+S.CB.SrcH
beq .8
@ -406,7 +406,7 @@ BITBLT.LOOPx.7 and #$ff SELF MODIFIED : #%01110000 get only col2 bites
.2 jmp BITBLT.LOOPx.0
.8 clc
.8 sta CLRREADAUX
rts
*--------------------------------------
* BM Data/Mask bits :

View File

@ -1,13 +1,13 @@
NEW
AUTO 3,1
*--------------------------------------
* drawline(short int hWND, short int OP, short int COLOR, int X1, int Y1, int X2, int X2)
* drawline(short int hWND, short int OP, short int COLOR, int X1, int Y1, int X2, int X2)
*--------------------------------------
DrawLine >PULLW CB.Cache+S.CB.Y2
>PULLW CB.Cache+S.CB.X2
>PULLW CB.Cache+S.CB.Y1
>PULLW CB.Cache+S.CB.X1
>PULLB CB.Cache+S.CB.COLOR
>PULLB CB.Cache+S.CB.OP
>PULLA hWND
@ -17,7 +17,7 @@ DrawLine >PULLW CB.Cache+S.CB.Y2
jsr DRAW.ToGlobal
jsr DRAW.GetInnerWND for clipping
lda CB.Cache+S.CB.X2
sec
sbc CB.Cache+S.CB.X1
@ -47,7 +47,7 @@ DrawLine >PULLW CB.Cache+S.CB.Y2
sta DY
lda CB.Cache+S.CB.Y2+1
sbc CB.Cache+S.CB.Y1+1
sta DY+1 DY = Y2 - Y1
sta DY+1 DY = Y2 - Y1
bmi .3 DY < 0 ...
@ -60,9 +60,9 @@ DrawLine >PULLW CB.Cache+S.CB.Y2
jsr CLIP.CB.Cache
bcs .8
jmp GFXWrite.CB
.8 rts
.8 rts
*--------------------------------------
.3 >NOT16 DY set DY=-DY
lda #$ff
@ -194,7 +194,7 @@ DrawLine.IncX lda DX
sta Counter
lda DX+1
eor #$ff
sta Counter+1
sta Counter+1
lda DY IE=2*DY
asl
sta IE
@ -263,7 +263,7 @@ DrawLine.IncX lda DX
.6 jsr GFXWrite.CB
bra .1
.8 rts
*--------------------------------------
* drawrectangle (short int OP, short int M, int X1, int Y1, int X2, int Y2)
@ -280,7 +280,7 @@ DRAW.yaBMAtDXDY >STYA ZPBMPtr Src BM
lda #S.CB.CMD.BITBLT
jsr CB.InitCacheA
lda #S.CB.OP.MASK+S.CB.OP.ORA+S.CB.OP.COLOR
sta CB.Cache+S.CB.OP
@ -295,7 +295,7 @@ DRAW.yaBMAtDXDY >STYA ZPBMPtr Src BM
bpl .1
ldx #3
ldy #S.BM.W+3
.2 lda (ZPBMPtr),y
@ -317,7 +317,7 @@ DRAW.yaBMAtDXDY >STYA ZPBMPtr Src BM
DrawText clc
rts
*--------------------------------------
DRAW.YATextAtDXDY
DRAW.YATextAtDXDY
phx
jsr CB.ClearCache
>STYA CB.Cache+S.CB.TxtPtr
@ -326,7 +326,7 @@ DRAW.YATextAtDXDY
lda #S.CB.CMD.DRAWTEXT2
sta CB.Cache+S.CB.CMD
lda #0
ror
eor #S.CB.OP.INVERSE
@ -344,7 +344,7 @@ DRAW.YATextAtDXDY
sta CB.Cache+S.CB.X1,x
dex
bpl .1
jmp PutCBCache2CBBuf
*--------------------------------------
DRAW.ToGlobal >LDYA ZPWNDPtr
@ -353,7 +353,7 @@ DRAW.ToGlobal >LDYA ZPWNDPtr
.1 ldy #S.OBJ.X1
ldx #S.CB.X1
jsr DRAW.AddP1YtoCBX
ldy #S.WND.InnerY1
ldx #S.CB.Y1
jsr DRAW.AddP1YtoCBX
@ -365,19 +365,19 @@ DRAW.ToGlobal >LDYA ZPWNDPtr
ldy #S.WND.InnerY1
ldx #S.CB.Y2
jsr DRAW.AddP1YtoCBX
ldy #S.OBJ.hPARENT+1
lda (ZPPtr1),y
beq .8 00xx = hDev
tax
dey
lda (ZPPtr1),y
sta ZPPtr1
stx ZPPtr1+1
bra .1
.8 clc
rts
*--------------------------------------
@ -400,7 +400,7 @@ DRAW.GetInnerWND
iny
lda (ZPWNDPtr),y
sta OBJ.Cache+S.OBJ.X1+1
ldy #S.WND.InnerY1
lda (ZPWNDPtr),y
@ -416,62 +416,53 @@ DRAW.GetInnerWND
iny
lda (ZPWNDPtr),y
sta OBJ.Cache+S.OBJ.W+1
iny #S.WND.InnerH
lda (ZPWNDPtr),y
sta OBJ.Cache+S.OBJ.H
iny
lda (ZPWNDPtr),y
sta OBJ.Cache+S.OBJ.H+1
>LDYA L.OBJ.Cache
jmp OBJ.SetX2Y2
*--------------------------------------
DrawCBPtrToYA1 pha
DrawCBBufToYA pha
phy
lda #0
bit CUR.bVisible
bpl .1
jsr HideCursor.I
.1 lda #0
sta (ZPCBBufPtr)
pla
jsr DrawCBPtrToYA
lda hCBBuf
stz hCBBuf
>SYSCALL FreeMem
rts
*--------------------------------------
DrawCBPtrToYA bit CUR.bVisible
bpl .10
pha
phy
jsr HideCursor.I
ply
pla
.10 jsr OBJ.GetInCache
.1 lda (ZPCBPtr)
jsr OBJ.GetInCache
.2 lda (ZPCBPtr)
beq .8
>LDYA ZPCBPtr
jsr CB.GetInCache A = CB.CMD
cmp #S.CB.CMD.DRAWTEXT2
bne .6
lda #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
sta CB.Cache+S.CB.CMD
jsr GFXWrite.CB
bcs .9
jsr CLIP.CB.Cache
bcs .2
bcs .3
jsr GFXWrite.CB
.2 lda CB.Cache+S.CB.SrcPtr
.3 lda CB.Cache+S.CB.SrcPtr
>SYSCALL2 FreeStkObj
bra .7
@ -487,23 +478,23 @@ DrawCBPtrToYA bit CUR.bVisible
sec +1
adc ZPCBPtr
sta ZPCBPtr
bcc .1
bcc .2
inc ZPCBPtr+1
bra .1
bra .2
.8 clc
.8 lda hCBBuf
stz hCBBuf
>SYSCALL FreeMem
.9 bit CUR.bVisible
bpl .99
php
pha
jsr ShowCursor.I
pla
plp
clc
.99 rts
bit CUR.bVisible
bpl .9
jmp ShowCursor.I
.9 rts
*--------------------------------------
MAN
SAVE usr/src/lib/libgui.s.draw

View File

@ -28,16 +28,16 @@ MENU.New ldy MENU.Stack.Top
.1 sta (ZPMENUPtr),y
dey
bne .1
>PULLA
ldy #S.MENU.MITEMS
sta (ZPMENUPtr),y
>PULLA
iny
sta (ZPMENUPtr),y
>PULLW ZPRECTPtr Parent RECT
>PULLA
ldy #S.OBJ.Y1
sta (ZPMENUPtr),y
@ -51,16 +51,16 @@ MENU.New ldy MENU.Stack.Top
>PULLA
iny
sta (ZPMENUPtr),y
lda ZPMENUPtr
clc
adc #S.MENU.pX1
sta ZPPtr1
lda ZPMENUPtr+1
adc /S.MENU.pX1
sta ZPPtr1+1
ldy #S.RECT-1
.3 lda (ZPRECTPtr),y
@ -95,14 +95,14 @@ MENU.SetMItemProp
lda (pStack),y
tax
jsr MENU.FindMItemByID
jsr MENU.FindMItemByID
bcs .9
ldy #2 Prop8
lda (pStack),y
tay
>PULLA Value16
sta (ZPPtr1),y
@ -117,18 +117,18 @@ MENU.SetMItemProp
*--------------------------------------
MENU.Show >SYSCALL2 GetMemPtr
>STYA ZPMENUPtr
jsr MENU.Save
bcs .9
jsr GetCBBuf
bcs .9
jsr MENU.ShowBorders
jsr MENU.GetMItems
jsr MENU.GetDYW
.6 lda (ZPPtr1)
beq .8
@ -137,10 +137,10 @@ MENU.Show >SYSCALL2 GetMemPtr
jsr MENU.ShowMItem
jsr MENU.NextMItem
bra .6
.8 >LDYA L.WND.Screen
jmp DrawCBPtrToYA1
jmp DrawCBBufToYA
.9 rts
*--------------------------------------
MENU.Enter jsr MENU.GetDX
@ -154,9 +154,9 @@ MENU.Enter jsr MENU.GetDX
lda Counter+1
adc DX+1
sta IE+1
jsr MENU.GetMItems
.1 lda (ZPPtr1)
beq .8
@ -164,7 +164,7 @@ MENU.Enter jsr MENU.GetDX
lda (ZPPtr1),y
cmp #S.MITEM.F.SEP
beq .2
lda DY
sec
adc SYSFON.H
@ -173,16 +173,16 @@ MENU.Enter jsr MENU.GetDX
adc #0
sta INE+1
>LDYAI DX
>LDYAI DX
jsr MOU.InRectYA
bcc .3
.2 jsr MENU.NextMItem
bra .1
.3 ldy #S.MENU.Selected
lda (ZPMENUPtr),y
ldy #S.MITEM.ID
cmp (ZPPtr1),y
beq .9 same a s before, nothing to do
@ -192,30 +192,30 @@ MENU.Enter jsr MENU.GetDX
lda (ZPPtr1),y new one
ldy #S.MENU.Selected
sta (ZPMENUPtr),y
jsr GetCBBuf
plx
beq .4 no previous selection
jsr MENU.ShowMItemByID deselect previous...
.4 ldy #S.MENU.Selected select new one
lda (ZPMENUPtr),y
tax
jsr MENU.ShowMItemByID
ldy #S.MITEM.F
lda (ZPPtr1),y
cmp #S.MITEM.F.SUBMENU
bne .80
>LDYA L.WND.Screen
jsr DrawCBPtrToYA1
jsr DrawCBBufToYA
jmp MENU.NewSubMenu
.8 ldy #S.MENU.Selected nothing to select....
lda (ZPMENUPtr),y
beq .9 ....and nothing to deselect
@ -225,15 +225,22 @@ MENU.Enter jsr MENU.GetDX
sta (ZPMENUPtr),y
jsr GetCBBuf
plx
jsr MENU.ShowMItemByID
.80 >LDYA L.WND.Screen
jmp DrawCBPtrToYA1
.9 rts
jmp DrawCBBufToYA
.9 lda MouseData+S.MOUSE.S
bit #S.MOUSE.S.CLK
beq .90
>DEBUG
.90 clc
rts
*--------------------------------------
MENU.NewSubMenu ldy #S.MENU.Selected
lda (ZPMENUPtr),y
@ -241,34 +248,34 @@ MENU.NewSubMenu ldy #S.MENU.Selected
jsr MENU.FindMItemByID
jsr MENU.GetDX
lda DX
clc
adc Counter
tay
lda DX+1
adc Counter+1
>PUSHYA X1
>PUSHW DY Y1
>PUSHWI DX Parent RECT
ldy #S.MITEM.pMENU+1
lda (ZPPtr1),y
>PUSHA
dey
lda (ZPPtr1),y
>PUSHA
jsr MENU.New
jmp MENU.Show
*--------------------------------------
MENU.SetMenuSizePos
stz IY Icon Margin W
stz IE Max Text W
stz IE+1
stz INE Max Mod-Key W
lda #2 2px Borders
@ -276,7 +283,7 @@ MENU.SetMenuSizePos
stz DY+1
jsr MENU.GetMItems
.1 lda (ZPPtr1)
beq .3
@ -294,19 +301,19 @@ MENU.SetMenuSizePos
sec 1px sep
adc IE Max Text W
sta DX
lda DX+1
adc IE+1
sta DX+1
lda DX
sec 1px sep
adc INE Max Mod-Key W
sta DX
bcc .4
inc DX+1
.4 ldy #S.OBJ.W
sta (ZPMENUPtr),y
iny
@ -320,7 +327,7 @@ MENU.SetMenuSizePos
iny
lda DY+1
sta (ZPMENUPtr),y
ldy #S.MENU.iW
lda IY
sta (ZPMENUPtr),y
@ -344,24 +351,24 @@ MENU.SetMenuSizePos
clc
adc (ZPMENUPtr),y
tax
iny
lda DY+1
adc (ZPMENUPtr),y
cpx WND.Screen+S.OBJ.H
sbc WND.Screen+S.OBJ.H+1
bcc .5
ldy #S.OBJ.Y1
lda (ZPMENUPtr),y
* sec
sbc DY
sta (ZPMENUPtr),y
iny
lda (ZPMENUPtr),y
sbc DY+1
sta (ZPMENUPtr),y
@ -381,10 +388,10 @@ MENU.GetMItemW ldy #S.MITEM.F
iny
ora (ZPPtr1),y
beq .1
lda #17 Reserve space for Icon W + 1px SEP
sta IY
.1 jsr MENU.GetText
ldx hSYSFON
jsr FON.GetTextSize
@ -394,24 +401,24 @@ MENU.GetMItemW ldy #S.MITEM.F
lda CB.Cache+S.CB.SrcW+1
sbc IE+1
bcc .2
stx IE Set Max text W
lda CB.Cache+S.CB.SrcW+1
sta IE+1
.2 jsr MENU.GetKeyString
beq .8
ldx hSYSFON
jsr FON.GetTextSize
lda CB.Cache+S.CB.SrcW
cmp INE
bcc .8
sta INE set Max Mod-key W
.8 rts
.8 rts
*--------------------------------------
MENU.ShowBorders
lda #S.CB.CMD.HLINE
@ -423,21 +430,21 @@ MENU.ShowBorders
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
sta CB.Cache+S.CB.Y2+1 top X1,Y1,X2,Y1
jsr PutCBCache2CBBuf
ldy #S.OBJ.Y2
@ -448,24 +455,24 @@ MENU.ShowBorders
lda (ZPMENUPtr),y
sta CB.Cache+S.CB.Y1+1
sta CB.Cache+S.CB.Y2+1 bottom X1,Y2,X2,Y2
jsr PutCBCache2CBBuf
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
sta CB.Cache+S.CB.X2+1 left X1,Y1,X1,Y2
jsr PutCBCache2CBBuf
ldy #S.OBJ.X2
@ -476,7 +483,7 @@ MENU.ShowBorders
lda (ZPMENUPtr),y
sta CB.Cache+S.CB.X1+1
sta CB.Cache+S.CB.X2+1 right X2,Y1,X2,Y2
jmp PutCBCache2CBBuf
*--------------------------------------
MENU.ShowMItemByID
@ -487,8 +494,8 @@ MENU.ShowMItem ldy #S.MITEM.F
lda (ZPPtr1),y
cmp #S.MITEM.F.SEP
bne MENU.ShowMItem1
lda #S.CB.CMD.HLINE
lda #S.CB.CMD.HLINE
jsr CB.InitCacheA
lda #S.CB.OP.SET
@ -497,14 +504,14 @@ MENU.ShowMItem ldy #S.MITEM.F
sta CB.Cache+S.CB.M
lda PREFS.BORDERCOLOR
sta CB.Cache+S.CB.COLOR
ldx #3
.1 lda DX,x
sta CB.Cache+S.CB.X1,x
dex
bpl .1
lda DX
clc
adc Counter
@ -521,24 +528,24 @@ MENU.ShowMItem1 lda #S.CB.CMD.FILLRECT
sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO
sta CB.Cache+S.CB.M
ldx PREFS.MENUCOLOR
jsr MENU.IsSelected
bcc .15
txa
eor #C.WHITE
tax
.15 stx CB.Cache+S.CB.COLOR
ldx #3
.10 lda DX,x
sta CB.Cache+S.CB.X1,x
dex
bpl .10
lda DX
clc
adc Counter
@ -546,7 +553,7 @@ MENU.ShowMItem1 lda #S.CB.CMD.FILLRECT
lda DX+1
adc Counter+1
sta CB.Cache+S.CB.X2+1
lda DY
sec
adc SYSFON.H
@ -555,7 +562,7 @@ MENU.ShowMItem1 lda #S.CB.CMD.FILLRECT
adc #0
sta CB.Cache+S.CB.Y2+1
jsr PutCBCache2CBBuf
inc DY
bne .12
inc DY+1
@ -563,17 +570,17 @@ MENU.ShowMItem1 lda #S.CB.CMD.FILLRECT
.12 lda DX
clc
adc #MENU.LMargin TODO : Checked
sta DX
bcc .11
sta DX+1
.11 jsr MENU.GetIcon
beq .2
jsr DRAW.yaBMAtDXDY
.2 lda DX
clc
ldy #S.MENU.iW
@ -583,7 +590,7 @@ MENU.ShowMItem1 lda #S.CB.CMD.FILLRECT
bcc .21
inc DX+1
.21 jsr MENU.GetText
jsr MENU.IsSelected
@ -606,7 +613,7 @@ MENU.ShowMItem1 lda #S.CB.CMD.FILLRECT
jsr MENU.IsSelected
ldx hSYSFON
jsr DRAW.YATextAtDXDY
.3 ldy #S.MITEM.F
lda (ZPPtr1),y
cmp #S.MITEM.F.SUBMENU
@ -620,23 +627,23 @@ MENU.ShowMItem1 lda #S.CB.CMD.FILLRECT
lda DX+1
iny
adc (ZPMENUPtr),y
sta DX+1
sta DX+1
ldx #BM.ID.RIGHT
jsr DRAW.xBMAtDXDY
.8 lda DY
bne .80
dec DY+1
.80 dec DY
.80 dec DY
clc
rts
*--------------------------------------
MENU.GetIcon ldy #S.MITEM.pICON+1
lda (ZPPtr1),y
bne .1
dey
lda (ZPPtr1),y
beq .8
@ -645,27 +652,27 @@ MENU.GetIcon ldy #S.MITEM.pICON+1
ldy L.BMs,x
lda L.BMs+1,x NON ZERO
.8 rts
.1 pha
dey
lda (ZPPtr1),y
tay
pla NON ZERO
rts
rts
*--------------------------------------
MENU.IsSelected phy
pha
ldy #S.MENU.Selected
lda (ZPMENUPtr),y
ldy #S.MITEM.ID
cmp (ZPPtr1),y
beq .9
clc
.9 pla
ply
rts
@ -689,7 +696,7 @@ MENU.GetKeyString
lda ZPPtr1+1
adc #0 !0
.8 rts
.8 rts
*--------------------------------------
MENU.Save lda #S.CB.CMD.GETRECTBUFSIZE
jsr CB.InitCacheA
@ -708,16 +715,16 @@ MENU.Save lda #S.CB.CMD.GETRECTBUFSIZE
>SYSCALL NewStkObj
bcs .9
stx CB.Cache+S.CB.DstPtr
txa
ldy #S.MENU.hSAVEBUF
sta (ZPMENUPtr),y
lda #S.CB.CMD.BITBLT
sta CB.Cache+S.CB.CMD
lda #S.CB.OP.SAVE
sta CB.Cache+S.CB.OP
@ -735,25 +742,25 @@ MENU.Save lda #S.CB.CMD.GETRECTBUFSIZE
clc
.9 rts
.9 rts
*--------------------------------------
MENU.Destroy ldx MENU.Stack.Top
beq .8
lda MENU.Stack-1,x
>SYSCALL GetMemPtr
>STYA ZPMENUPtr
bit CUR.bVisible
bpl .3
jsr HideCursor.I
.3 jsr CB.ClearCache
lda #S.CB.CMD.BITBLT
sta CB.Cache+S.CB.CMD
lda #S.CB.OP.RESTORE
sta CB.Cache+S.CB.OP
@ -780,7 +787,7 @@ MENU.Destroy ldx MENU.Stack.Top
ldy #S.MENU.hSAVEBUF
lda (ZPMENUPtr),y
sta CB.Cache+S.CB.DstPtr
jsr GFXWrite.CB
lda CB.Cache+S.CB.DstPtr
@ -790,10 +797,10 @@ MENU.Destroy ldx MENU.Stack.Top
lda MENU.Stack-1,x
>SYSCALL2 FreeMem
dec MENU.Stack.Top
bit CUR.bVisible
bpl .8
jsr ShowCursor.I
.8 clc
@ -835,26 +842,26 @@ MENU.GetDYW ldy #S.OBJ.Y1
MENU.FindMItemByID
jsr MENU.GetMItems
jsr MENU.GetDYW
.1 lda (ZPPtr1)
beq .9
ldy #S.MITEM.F
lda (ZPPtr1),y
cmp #S.MITEM.F.SEP
beq .7
txa
ldy #S.MITEM.ID
cmp (ZPPtr1),y
beq .8
.7 jsr MENU.NextMItem
bra .1
.8 clc
rts
.9 sec
rts
*--------------------------------------
@ -871,16 +878,16 @@ MENU.NextMItem ldy #S.MITEM.F
sec
eor #S.MITEM.F.SEP
beq .1
lda SYSFON.Hp2
clc
.1 adc DY
sta DY
bcc .2
inc DY+1
.2 lda (ZPPtr1)
clc
adc ZPPtr1

View File

@ -6,11 +6,11 @@ SYSBUT.Enter sec
jsr GetCBBuf
bcs .99
jsr SYSBAR.ShowSysBut
>LDYA L.WND.SysBar
jsr DrawCBPtrToYA1
jsr DrawCBBufToYA
>PUSHW WND.SysBar+S.OBJ.X1
>PUSHW WND.SysBar+S.OBJ.Y1
@ -41,46 +41,46 @@ SYSBUT.Enter sec
*--------------------------------------
SYSBUT.Leave bit WND.SYSBAR.bSysBut
bpl .8
stz WND.SYSBAR.bSysBut
jsr GetCBBuf
bcs .9
jsr SYSBAR.ShowSysBut
>LDYA L.WND.SysBar
jmp DrawCBPtrToYA1
jmp DrawCBBufToYA
.8 clc
.9 rts
.9 rts
*--------------------------------------
SYSBAR.Show jsr GetCBBuf
bcs .9
jsr SYSBAR.ShowSysBut
jsr SYSBAR.ShowSysWNDs
jsr SYSBAR.ShowSysClk
>LDYA L.WND.SysBar
jmp DrawCBPtrToYA1
jmp DrawCBBufToYA
.9 rts
*--------------------------------------
SYSBAR.ShowSysBut
lda #S.CB.CMD.FILLRECT
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.SYSBARCOLOR
bit WND.SysBar.bSysBut
bpl .1
@ -88,16 +88,16 @@ SYSBAR.ShowSysBut
eor #$ff
.1 sta CB.Cache+S.CB.COLOR
ldx #S.RECT-1
.2 lda RECT.SysBut,x
.2 lda RECT.SysBut,x
sta CB.Cache+S.CB.X1,x
dex
bpl .2
jsr PutCBCache2CBBuf
lda RECT.SysBut+S.RECT.X1
clc
adc #4
@ -105,7 +105,7 @@ SYSBAR.ShowSysBut
lda RECT.SysBut+S.RECT.X1+1
adc #0
sta DX+1
lda RECT.SysBut+S.RECT.Y1
clc
adc #1
@ -116,7 +116,7 @@ SYSBAR.ShowSysBut
ldx #BM.ID.APPLE
jsr DRAW.xBMAtDXDY
lda RECT.SysBut+S.RECT.X1
clc
adc #21
@ -124,15 +124,15 @@ SYSBAR.ShowSysBut
lda RECT.SysBut+S.RECT.X1+1
adc #0
sta DX+1
inc DY
bne .3
inc DY+1
.3 lda WND.SysBar.bSysBut
asl
>LDYA L.WND.SysBar.2osX
ldx hSYSFON
jmp DRAW.YATextAtDXDY
@ -140,45 +140,45 @@ SYSBAR.ShowSysBut
SYSBAR.ShowSysWNDs
lda #S.CB.CMD.FILLRECT
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.SYSBARCOLOR
sta CB.Cache+S.CB.COLOR
ldx #S.RECT-1
.1 lda RECT.SysWNDs,x
.1 lda RECT.SysWNDs,x
sta CB.Cache+S.CB.X1,x
dex
bpl .1
jmp PutCBCache2CBBuf
*--------------------------------------
SYSBAR.ShowSysClk
lda #S.CB.CMD.FILLRECT
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.SYSBARCOLOR
sta CB.Cache+S.CB.COLOR
ldx #S.RECT-1
.1 lda RECT.SysClk,x
.1 lda RECT.SysClk,x
sta CB.Cache+S.CB.X1,x
dex
bpl .1
jmp PutCBCache2CBBuf
*--------------------------------------
MAN

View File

@ -161,7 +161,7 @@ WND.New >LDYAI S.WND
pla
dey
sta (ZPWNDPtr),y
>PULLA
ldy #S.OBJ.W
sta (ZPWNDPtr),y
@ -404,13 +404,14 @@ WND.Show2 jsr GetCBBuf
>LDYA L.WND.Desktop
jsr DrawCBPtrToYA1
jsr DrawCBBufToYA
lda WND.hWND
pha
bra WND.Paint1
.9 rts
.9
WND.Show.RTS rts
*--------------------------------------
WND.Paint pha hWND
@ -432,12 +433,12 @@ WND.fPaint >SYSCALL2 GetMemPtr
>STYA ZPWNDPtr
jsr GetCBBuf
bcs .9
bcs WND.Show.RTS
lda #S.CB.CMD.FILLRECT
sta CB.Cache+S.CB.CMD
lda #S.CB.OP.SET
lda #S.CB.OP.SET+S.CB.OP.COLOR
sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO
@ -483,18 +484,38 @@ WND.fPaint >SYSCALL2 GetMemPtr
jsr PutCBCache2CBBuf
ldy #S.WND.BGBM+1
ldy #S.WND.BGBM
lda (ZPWNDPtr),y
beq .1
sta CB.Cache+S.CB.SrcPtr
iny
ora (ZPWNDPtr),y
beq .8
.1 >LDYA L.WND.Desktop
jmp DrawCBPtrToYA1
lda (ZPWNDPtr),y
sta CB.Cache+S.CB.SrcPtr+1
.9 rts
stz S.CB.SrcX
stz S.CB.SrcX+1
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
dex
bpl .1
lda #S.CB.CMD.BITBLT
sta CB.Cache+S.CB.CMD
jsr PutCBCache2CBBuf
.8 >LDYA L.WND.Desktop
jmp DrawCBBufToYA
*--------------------------------------
WND.ShowBorders sta IY

View File

@ -59,9 +59,7 @@ CS.INIT >LDYA L.LIBGUI
.9
CS.INIT.RTS rts
*--------------------------------------
CS.RUN >LIBCALL hLIBGUI,LIBGUI.ShowCursor
>PUSHW L.LOGOFILE
CS.RUN >PUSHW L.LOGOFILE
>PUSHBI O.RDONLY
>PUSHBI $CB Type
>PUSHWZ Aux type
@ -116,7 +114,7 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F.
>PUSHW MouseData+S.MOUSE.X1
>PUSHW MouseData+S.MOUSE.Y1
>PUSHWI 280
>PUSHWI 360
>PUSHWI 96
>LIBCALL hLIBGUI,LIBGUI.WND.New
bcs CS.QUIT.RTS
@ -127,6 +125,11 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F.
>PUSHWI C.WHITE
>LIBCALL hLIBGUI,LIBGUI.OBJ.SetProp
>PUSHB hWND
>PUSHBI S.WND.BGBM
>PUSHW hLogo
>LIBCALL hLIBGUI,LIBGUI.OBJ.SetProp
>PUSHB hWND
>PUSHBI S.WND.TITLE
>PUSHW L.WND.TITLE
@ -156,16 +159,16 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F.
WND.Test.fPaint sta hWND
WND.Test.fPaint1
jsr $ffff
jsr $ffff Default WND.fPaint
>PUSHB hWND
>PUSHBI S.CB.OP.SET
>PUSHBI C.BLACK
>PUSHWI 10
>PUSHWI 10
>PUSHWI 200
>PUSHWI 60
>LIBCALL hLIBGUI,LIBGUI.DrawLine
* >PUSHB hWND
* >PUSHBI S.CB.OP.SET
* >PUSHBI C.BLACK
* >PUSHWI 10
* >PUSHWI 10
* >PUSHWI 200
* >PUSHWI 60
* >LIBCALL hLIBGUI,LIBGUI.DrawLine
rts
*--------------------------------------
@ -175,7 +178,7 @@ hLIBGUI .BS 1
*--------------------------------------
MouseData .BS S.MOUSE
*--------------------------------------
hLogo .BS 1
hLogo .BS 2 00xx
LOGOFILE .AZ "${ROOT}root/bmp/A2OSX.LOGO"
hWND .BS 1
WND.TITLE .AZ "Window Title"
@ -267,7 +270,7 @@ WND.MENU.HELP .DA #20 ID
.DUMMY
.OR 0
DS.START
CUR.T .BS 1
DS.END .ED
MAN
SAVE usr/src/sbin/gui.s