A2osX/LIB/LIBGUI.S.WND.txt

813 lines
13 KiB
Plaintext
Raw Normal View History

NEW
2019-07-30 08:57:25 +00:00
AUTO 3,1
*--------------------------------------
2019-01-08 16:29:26 +00:00
WND.Init >PUSHBI 0
>LDYA L.DEVNAME.GFX
2019-05-05 17:15:37 +00:00
>SYSCALL2 open
2018-05-16 06:02:57 +00:00
bcs .9
2020-09-02 15:47:23 +00:00
2020-09-06 12:24:04 +00:00
sta WND.Screen+S.OBJ.hPARENT
2020-09-02 15:47:23 +00:00
2019-01-09 16:42:20 +00:00
>LDYA L.DCB.GFX
>STYA IOCTL+S.IOCTL.BUFPTR
lda #S.IOCTL.STATCODE.GETDCB
sta IOCTL+S.IOCTL.STATCODE
2020-09-13 19:05:38 +00:00
2020-09-06 12:24:04 +00:00
>PUSHB WND.Screen+S.OBJ.hPARENT
2019-01-09 16:42:20 +00:00
>PUSHBI IOCTL.STATUS
2020-09-02 15:47:23 +00:00
>PUSHW L.IOCTL
2019-05-05 17:15:37 +00:00
>SYSCALL2 IOCTL
2020-09-06 12:24:04 +00:00
2019-10-03 06:25:27 +00:00
.9 rts
2019-01-10 16:26:58 +00:00
*--------------------------------------
WND.Setup >LDYA DCB.GFX+S.DCB.GFX.W
2020-09-06 12:24:04 +00:00
>STYA WND.Screen+S.OBJ.W
2019-01-10 16:26:58 +00:00
>STYA WND.Desktop+S.OBJ.W
>STYA WND.SysBar+S.OBJ.W
2020-09-06 12:24:04 +00:00
2019-01-08 16:29:26 +00:00
lda SYSFON.H
2018-05-16 06:02:57 +00:00
clc
2019-01-14 07:11:50 +00:00
adc #6
2019-01-10 16:26:58 +00:00
sta WND.SysBar+S.OBJ.H
2020-09-06 12:24:04 +00:00
2019-01-09 06:58:19 +00:00
lda DCB.GFX+S.DCB.GFX.H
2020-09-06 12:24:04 +00:00
sta WND.Screen+S.OBJ.H
2018-05-16 06:02:57 +00:00
sec
2019-01-10 16:26:58 +00:00
sbc WND.SysBar+S.OBJ.H
sta WND.Desktop+S.OBJ.H
sta WND.SysBar+S.OBJ.X1
2020-09-06 12:24:04 +00:00
2019-01-10 16:26:58 +00:00
lda DCB.GFX+S.DCB.GFX.H+1
sta WND.SysBar+S.OBJ.H+1
2018-05-16 06:02:57 +00:00
sbc #0
2019-01-10 16:26:58 +00:00
sta WND.Desktop+S.OBJ.H+1
sta WND.SysBar+S.OBJ.X1+1
2020-09-02 15:47:23 +00:00
2020-09-06 12:24:04 +00:00
>LDYA L.WND.Screen
2019-01-10 16:26:58 +00:00
jsr OBJ.SetX2Y2
2020-09-02 15:47:23 +00:00
2019-01-10 16:26:58 +00:00
>LDYA L.WND.Desktop
2020-09-06 12:24:04 +00:00
>STYA WND.Screen.Childs
2019-01-10 16:26:58 +00:00
jsr OBJ.SetX2Y2
2020-09-02 15:47:23 +00:00
2019-01-10 16:26:58 +00:00
>LDYA L.WND.SysBar
2020-09-06 12:24:04 +00:00
>STYA WND.Screen.Childs+2
2020-09-05 13:38:04 +00:00
jsr OBJ.SetX2Y2
2020-09-02 15:47:23 +00:00
2018-05-16 06:02:57 +00:00
lda #CUR.T.ARROW
2019-01-10 16:26:58 +00:00
sta WND.Desktop+S.WND.hCUR
sta WND.SysBar+S.WND.hCUR
2020-09-13 19:05:38 +00:00
2020-09-10 15:28:59 +00:00
stz WND.Stack.Top
2020-09-13 19:05:38 +00:00
2019-01-10 16:26:58 +00:00
rts
2018-05-16 06:02:57 +00:00
*--------------------------------------
2020-09-06 12:24:04 +00:00
WND.Quit lda WND.Screen+S.OBJ.hPARENT
2019-01-08 16:29:26 +00:00
beq .8
2020-09-06 12:24:04 +00:00
2019-01-08 16:29:26 +00:00
pha
>PUSHBI IOCTL.CLOSE
2019-06-07 15:02:51 +00:00
>PUSHWZ
2019-01-08 16:29:26 +00:00
pla
2019-05-05 17:15:37 +00:00
>SYSCALL2 IOCTL
2019-01-08 16:29:26 +00:00
2019-10-03 06:25:27 +00:00
.8 clc
rts
*--------------------------------------
2020-09-08 15:31:41 +00:00
* F8, X116, Y116, W16, H16
*--------------------------------------
2020-09-10 15:28:59 +00:00
WND.Create ldy WND.Stack.Top
cpy #WND.MAX
bcs .90
>LDYAI S.WND
2019-05-05 17:15:37 +00:00
>SYSCALL2 getmem
2018-05-16 06:02:57 +00:00
bcs .9
2020-09-06 12:24:04 +00:00
2020-09-15 14:48:35 +00:00
>STYA ZPWNDPtr
2020-09-08 15:31:41 +00:00
lda #S.OBJ.T.WND
2020-09-15 14:48:35 +00:00
sta (ZPWNDPtr) S.OBJ.T
2020-09-06 12:24:04 +00:00
2018-05-16 06:02:57 +00:00
ldy #S.WND-1
2020-09-08 15:31:41 +00:00
lda #0
2020-09-06 12:24:04 +00:00
2020-09-15 14:48:35 +00:00
.1 sta (ZPWNDPtr),y
2018-05-16 06:02:57 +00:00
dey
2020-09-08 15:31:41 +00:00
bne .1
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
>PULLA
ldy #S.OBJ.H
2020-09-15 14:48:35 +00:00
sta (ZPWNDPtr),y
2020-09-08 15:31:41 +00:00
>PULLA
iny
2020-09-15 14:48:35 +00:00
sta (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
>PULLA
ldy #S.OBJ.W
2020-09-15 14:48:35 +00:00
sta (ZPWNDPtr),y
2020-09-08 15:31:41 +00:00
>PULLA
iny
2020-09-15 14:48:35 +00:00
sta (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
>PULLA
ldy #S.OBJ.Y1
2020-09-15 14:48:35 +00:00
sta (ZPWNDPtr),y
2020-09-08 15:31:41 +00:00
>PULLA
iny
2020-09-15 14:48:35 +00:00
sta (ZPWNDPtr),y
2020-09-08 15:31:41 +00:00
>PULLA
ldy #S.OBJ.X1
2020-09-14 14:31:41 +00:00
and PREFS.BESTVIEWEDX
2020-09-15 14:48:35 +00:00
sta (ZPWNDPtr),y
2020-09-08 15:31:41 +00:00
>PULLA
iny
2020-09-15 14:48:35 +00:00
sta (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
>PULLA
ldy #S.OBJ.F
2020-09-15 14:48:35 +00:00
sta (ZPWNDPtr),y
2020-09-08 15:31:41 +00:00
ldy #S.PS.PID
lda (pPs),y
ldy #S.OBJ.hOWNER
2020-09-15 14:48:35 +00:00
sta (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
txa ID
2020-09-10 15:28:59 +00:00
ldy WND.Stack.Top
sta WND.Stack
inc WND.Stack.Top
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
* clc
rts
2020-09-10 15:28:59 +00:00
.90 lda #E.OOH
2020-09-08 15:31:41 +00:00
.9 >RET 9
*--------------------------------------
* hWND8, Prop8, Value16
*--------------------------------------
WND.SetProp ldy #3
lda (pStack),y hWND
>SYSCALL2 GetMemPtr
2020-09-15 14:48:35 +00:00
>STYA ZPWNDPtr
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
ldy #2
lda (pStack),y
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
tay
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
>PULLA
2020-09-15 14:48:35 +00:00
sta (ZPWNDPtr),y
2020-09-08 15:31:41 +00:00
iny
>PULLA
2020-09-15 14:48:35 +00:00
sta (ZPWNDPtr),y
2020-09-08 15:31:41 +00:00
>RET 2
*--------------------------------------
* hWND8, Prop8
*--------------------------------------
WND.GetProp >PULLA
pha
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
>PULLA
>SYSCALL2 GetMemPtr
2020-09-15 14:48:35 +00:00
>STYA ZPWNDPtr
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
ply
2020-09-13 19:05:38 +00:00
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-08 15:31:41 +00:00
pha
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-08 15:31:41 +00:00
ply
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
rts
*--------------------------------------
* A = hWND
*--------------------------------------
WND.Show >SYSCALL2 GetMemPtr
2020-09-15 14:48:35 +00:00
>STYA ZPWNDPtr
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
jsr OBJ.SetX2Y2
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
jsr GetCBBuf
bcs .9
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
stz Counter X
stz Counter+1 Y
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
ldy #S.OBJ.F
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-08 15:31:41 +00:00
and #S.WND.F.RESIZE+S.WND.F.BORDER
2020-09-10 15:28:59 +00:00
beq .1
2020-09-13 19:05:38 +00:00
2020-09-10 15:28:59 +00:00
jsr WND.PaintBorders
2020-09-13 19:05:38 +00:00
2020-09-10 15:28:59 +00:00
.1 ldy #S.WND.TITLE+1
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
bne .2
ldy #S.OBJ.S
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
and #S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MIN+S.WND.F.MAX
beq .3
2020-09-08 15:31:41 +00:00
2020-09-13 19:05:38 +00:00
.2 lda Counter+1
2020-09-10 15:28:59 +00:00
clc
2020-09-15 14:48:35 +00:00
adc SYSFON.Hp2
2020-09-10 15:28:59 +00:00
sta Counter+1
2020-09-08 15:31:41 +00:00
2020-09-13 19:05:38 +00:00
lda #S.WND.S.HASTOPBAR
jsr WND.SetStatus
jsr WND.PaintTopBar
2020-09-10 15:28:59 +00:00
bcs .9
2020-09-08 15:31:41 +00:00
2020-09-15 14:48:35 +00:00
.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
2020-09-06 12:24:04 +00:00
2020-09-15 06:12:52 +00:00
.7 ldy #S.WND.STATUS+1
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-15 06:12:52 +00:00
beq .8
lda Counter+1
clc
2020-09-15 14:48:35 +00:00
adc SYSFON.Hp2
2020-09-15 06:12:52 +00:00
sta Counter+1
2020-09-15 14:48:35 +00:00
lda #S.WND.S.HASSTATUSBAR
jsr WND.SetStatus
2020-09-15 06:12:52 +00:00
jsr WND.PaintStatusBar
.8 lda #0
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
>LDYA L.WND.Screen
jsr DrawToYA
2020-09-13 19:05:38 +00:00
2020-09-08 15:31:41 +00:00
lda hCBBuf
>SYSCALL FreeMem
clc
2019-10-03 06:25:27 +00:00
.9 rts
2018-05-16 06:02:57 +00:00
*--------------------------------------
2020-09-08 15:31:41 +00:00
WND.New clc
rts
*--------------------------------------
2020-09-15 14:48:35 +00:00
WND.Paint >STYA ZPWNDPtr
2018-05-16 06:02:57 +00:00
clc
rts
*--------------------------------------
2020-09-10 15:28:59 +00:00
WND.PaintBorders
lda #S.CB.CMD.HLINE TOP
jsr WND.PaintBorders.H
2020-09-13 19:05:38 +00:00
2020-09-10 15:28:59 +00:00
ldy #S.OBJ.X1
2020-09-14 14:31:41 +00:00
jsr WND.PaintPushWYm1
2020-09-13 19:05:38 +00:00
2020-09-14 14:31:41 +00:00
ldy #S.OBJ.Y1
jsr WND.PaintPushWYm1
ldy #S.OBJ.X2
jsr WND.PaintPushWYp1
ldy #S.OBJ.Y1
jsr WND.PaintPushWYm1
2020-09-10 15:28:59 +00:00
lda #S.CB.CMD.VLINE LEFT
jsr WND.PaintBorders.H
2020-09-13 19:05:38 +00:00
2020-09-10 15:28:59 +00:00
ldy #S.OBJ.X1
2020-09-14 14:31:41 +00:00
jsr WND.PaintPushWYm1
2020-09-13 19:05:38 +00:00
2020-09-14 14:31:41 +00:00
ldy #S.OBJ.Y1
jsr WND.PaintPushWYm1
ldy #S.OBJ.X1
jsr WND.PaintPushWYm1
ldy #S.OBJ.Y2
jsr WND.PaintPushWYp1
2020-09-10 15:28:59 +00:00
lda #S.CB.CMD.VLINE RIGHT
jsr WND.PaintBorders.H
ldy #S.OBJ.X2
2020-09-14 14:31:41 +00:00
jsr WND.PaintPushWYp1
2020-09-13 19:05:38 +00:00
2020-09-10 15:28:59 +00:00
ldy #S.OBJ.Y1
2020-09-14 14:31:41 +00:00
jsr WND.PaintPushWYm1
2020-09-13 19:05:38 +00:00
2020-09-10 15:28:59 +00:00
ldy #S.OBJ.X2
2020-09-14 14:31:41 +00:00
jsr WND.PaintPushWYp1
2020-09-13 19:05:38 +00:00
2020-09-10 15:28:59 +00:00
ldy #S.OBJ.Y2
2020-09-14 14:31:41 +00:00
jsr WND.PaintPushWYp1
2020-09-13 19:05:38 +00:00
2020-09-10 15:28:59 +00:00
lda #S.CB.CMD.HLINE BOTTOM
jsr WND.PaintBorders.H
ldy #S.OBJ.X1
2020-09-14 14:31:41 +00:00
jsr WND.PaintPushWYm1
2020-09-13 19:05:38 +00:00
2020-09-10 15:28:59 +00:00
ldy #S.OBJ.Y2
2020-09-14 14:31:41 +00:00
jsr WND.PaintPushWYp1
2020-09-13 19:05:38 +00:00
2020-09-10 15:28:59 +00:00
ldy #S.OBJ.X2
2020-09-14 14:31:41 +00:00
jsr WND.PaintPushWYp1
2020-09-13 19:05:38 +00:00
2020-09-10 15:28:59 +00:00
ldy #S.OBJ.Y2
2020-09-14 14:31:41 +00:00
jsr WND.PaintPushWYp1
2020-09-10 15:28:59 +00:00
rts
WND.PaintBorders.H
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-10 15:28:59 +00:00
lda #S.CB.OP.SET
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-10 15:28:59 +00:00
lda #S.CB.M.MONO
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-10 15:28:59 +00:00
lda PREFS.BORDERCOLOR
2020-09-15 14:48:35 +00:00
jmp PutA2CBBuf
2020-09-10 15:28:59 +00:00
2020-09-14 14:31:41 +00:00
WND.PaintPushWYm1
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-14 14:31:41 +00:00
sec
sbc #1
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-14 14:31:41 +00:00
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-14 14:31:41 +00:00
sbc #0
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-14 14:31:41 +00:00
rts
WND.PaintPushWYp1
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-14 14:31:41 +00:00
clc
adc #1
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-10 15:28:59 +00:00
iny
2020-09-14 14:31:41 +00:00
adc #0
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
jsr PutA2CBBuf
2020-09-10 15:28:59 +00:00
rts
*--------------------------------------
2020-09-13 19:05:38 +00:00
WND.PaintTopBar lda #S.CB.CMD.FILLRECT
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
lda #S.CB.OP.SET
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
lda #S.CB.M.C16
2020-09-15 14:48:35 +00:00
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
2020-09-13 19:05:38 +00:00
2020-09-14 14:31:41 +00:00
ldy #S.OBJ.X1
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
jsr PutA2CBBuf
2020-09-14 14:31:41 +00:00
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
jsr PutA2CBBuf
2020-09-14 14:31:41 +00:00
iny ldy #S.OBJ.Y1
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
jsr PutA2CBBuf
2020-09-14 14:31:41 +00:00
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
jsr PutA2CBBuf
2020-09-14 14:31:41 +00:00
iny ldy #S.OBJ.X2
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
jsr PutA2CBBuf
2020-09-14 14:31:41 +00:00
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
jsr PutA2CBBuf
2020-09-14 14:31:41 +00:00
ldy #S.OBJ.Y1
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-14 14:31:41 +00:00
sec
adc SYSFON.H
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-14 14:31:41 +00:00
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-14 14:31:41 +00:00
adc #0
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-14 14:31:41 +00:00
* TOP LEFT ICON
2020-09-13 19:05:38 +00:00
ldy #S.WND.ICON+1
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
tax
dey
2020-09-15 14:48:35 +00:00
ora (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
bne .1
lda L.BM.Apple
ldx L.BM.Apple+1
bra .2
2020-09-15 14:48:35 +00:00
.1 lda (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
.2 sta ZPObjPtr
stx ZPObjPtr+1
2020-09-14 14:31:41 +00:00
lda #0
2020-09-13 19:05:38 +00:00
ldx #0
jsr WND.PaintTopBarBMAtAX
2020-09-14 14:31:41 +00:00
jsr WND.PaintTopBarTitle
bcs .9
* TOP RIGHT ICONS
ldy #S.OBJ.F
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-14 14:31:41 +00:00
bit #S.WND.F.CLOSE
beq .3
pha
lda L.BM.Close
ldx L.BM.Close+1
sta ZPObjPtr
stx ZPObjPtr+1
2020-09-13 19:05:38 +00:00
2020-09-14 14:31:41 +00:00
ldy #S.OBJ.W
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-14 14:31:41 +00:00
sec
sbc #16
pha
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-14 14:31:41 +00:00
sbc #0
tax
pla
2020-09-13 19:05:38 +00:00
2020-09-14 14:31:41 +00:00
jsr WND.PaintTopBarBMAtAX
pla
.3 bit #S.WND.F.MIN
beq .4
pha
lda L.BM.Min
ldx L.BM.Min+1
sta ZPObjPtr
stx ZPObjPtr+1
ldy #S.OBJ.W
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-14 14:31:41 +00:00
sec
sbc #32
pha
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-14 14:31:41 +00:00
sbc #0
tax
pla
jsr WND.PaintTopBarBMAtAX
pla
.4 bit #S.WND.F.MAX
beq .8
lda L.BM.Max
ldx L.BM.Max+1
sta ZPObjPtr
stx ZPObjPtr+1
ldy #S.OBJ.W
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-14 14:31:41 +00:00
sec
sbc #48
pha
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-14 14:31:41 +00:00
sbc #0
tax
pla
jsr WND.PaintTopBarBMAtAX
.8 clc
2020-09-13 19:05:38 +00:00
.9 rts
*--------------------------------------
WND.PaintTopBarBMAtAX
clc
ldy #S.OBJ.X1
2020-09-15 14:48:35 +00:00
adc (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
pha
iny
txa
2020-09-15 14:48:35 +00:00
adc (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
tax
lda #S.CB.CMD.BITBLT
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
lda #S.CB.OP.MASK+S.CB.OP.ORA+S.CB.OP.COLOR
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
lda #S.CB.M.C16
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
lda #0
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
2020-09-14 14:31:41 +00:00
pla S.CB.X1
2020-09-15 14:48:35 +00:00
jsr PutAX2CBBuf
2020-09-13 19:05:38 +00:00
2020-09-14 14:31:41 +00:00
ldy #S.OBJ.Y1 S.CB.Y1
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
clc
adc #1
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
adc #0
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
lda #0 S.CB.X2
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf S.CB.Y2
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf S.CB.SrcX
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf S.CB.SrcY
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
ldx #4
ldy #S.BM.W
2020-09-14 14:31:41 +00:00
.1 lda (ZPObjPtr),y S.CB.SrcW,S.CB.SrcH
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
iny
2020-09-10 15:28:59 +00:00
dex
2020-09-13 19:05:38 +00:00
bne .1
lda ZPObjPtr S.CB.SrcPtr
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
lda ZPObjPtr+1
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
lda #0 S.CB.DstPtr
2020-09-15 14:48:35 +00:00
jsr PutA2CBBuf
jsr PutA2CBBuf
2020-09-13 19:05:38 +00:00
rts
*--------------------------------------
WND.PaintTopBarTitle
jsr CB.Clear
2020-09-10 15:28:59 +00:00
lda #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
sta CB.Cache+S.CB.CMD
2020-09-13 19:05:38 +00:00
lda #S.CB.OP.SET+S.CB.OP.INVERSE
2020-09-10 15:28:59 +00:00
sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO
sta CB.Cache+S.CB.M
2020-09-15 14:48:35 +00:00
lda hSYSFONB
2020-09-10 15:28:59 +00:00
sta CB.Cache+S.CB.hFont
2020-09-13 19:05:38 +00:00
ldy #S.WND.TITLE
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
sta CB.Cache+S.CB.TxtPtr
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
sta CB.Cache+S.CB.TxtPtr+1
jsr GFXWrite.CB
bcs .9
2020-09-14 14:31:41 +00:00
ldy #S.OBJ.W
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-14 14:31:41 +00:00
sec
sbc CB.Cache+S.CB.SrcW
sta DX
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-14 14:31:41 +00:00
sbc CB.Cache+S.CB.SrcW+1
lsr
ror DX
sta DX+1
ldy #S.OBJ.X1
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-11 20:54:15 +00:00
clc
2020-09-14 14:31:41 +00:00
adc DX
2020-09-15 06:12:52 +00:00
and PREFS.BESTVIEWEDX
2020-09-11 20:54:15 +00:00
sta CB.Cache+S.CB.X1
2020-09-14 14:31:41 +00:00
2020-09-11 20:54:15 +00:00
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-14 14:31:41 +00:00
adc DX+1
2020-09-11 20:54:15 +00:00
sta CB.Cache+S.CB.X1+1
2020-09-14 14:31:41 +00:00
2020-09-13 19:05:38 +00:00
ldy #S.OBJ.Y1
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-11 20:54:15 +00:00
clc
2020-09-14 14:31:41 +00:00
adc #1
2020-09-11 20:54:15 +00:00
sta CB.Cache+S.CB.Y1
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-11 20:54:15 +00:00
adc #0
sta CB.Cache+S.CB.Y1+1
2020-09-11 15:01:48 +00:00
2020-09-15 14:48:35 +00:00
jsr PutCBCache2CBBuf
2020-09-13 19:05:38 +00:00
2020-09-10 15:28:59 +00:00
clc
2020-09-13 19:05:38 +00:00
2020-09-15 06:12:52 +00:00
.9 rts
*--------------------------------------
2020-09-15 14:48:35 +00:00
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
*--------------------------------------
2020-09-15 06:12:52 +00:00
WND.PaintStatusBar
2020-09-15 14:48:35 +00:00
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
2020-09-15 06:12:52 +00:00
lda #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
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.WND.STATUS
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-15 06:12:52 +00:00
sta CB.Cache+S.CB.TxtPtr
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-15 06:12:52 +00:00
sta CB.Cache+S.CB.TxtPtr+1
jsr GFXWrite.CB
bcs .9
ldy #S.OBJ.X1
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-15 06:12:52 +00:00
sta CB.Cache+S.CB.X1
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-15 06:12:52 +00:00
sta CB.Cache+S.CB.X1+1
ldy #S.OBJ.Y2
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-15 06:12:52 +00:00
sec
2020-09-15 14:48:35 +00:00
sbc SYSFON.Hm1
2020-09-15 06:12:52 +00:00
sta CB.Cache+S.CB.Y1
iny
2020-09-15 14:48:35 +00:00
lda (ZPWNDPtr),y
2020-09-15 06:12:52 +00:00
sbc #0
sta CB.Cache+S.CB.Y1+1
2020-09-15 14:48:35 +00:00
jsr PutCBCache2CBBuf
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
2020-09-15 06:12:52 +00:00
2020-09-15 14:48:35 +00:00
jsr PutCBCache2CBBuf
2020-09-15 06:12:52 +00:00
clc
2020-09-13 19:05:38 +00:00
.9 rts
*--------------------------------------
WND.ClrStatus ldy #S.OBJ.S
eor #$ff
2020-09-15 14:48:35 +00:00
and (ZPWNDPtr),y
sta (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
rts
*--------------------------------------
WND.SetStatus ldy #S.OBJ.S
2020-09-15 14:48:35 +00:00
ora (ZPWNDPtr),y
sta (ZPWNDPtr),y
2020-09-13 19:05:38 +00:00
rts
2020-09-10 15:28:59 +00:00
*--------------------------------------
2019-01-10 16:26:58 +00:00
WND.Close clc
rts
*--------------------------------------
MAN
2020-06-30 15:32:23 +00:00
SAVE usr/src/lib/libgui.s.wnd
LOAD usr/src/lib/libgui.s
ASM