mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-02 13:41:30 +00:00
Kernel 0.94
This commit is contained in:
parent
875009f09b
commit
efab21a425
Binary file not shown.
Binary file not shown.
|
@ -222,20 +222,31 @@ LBUF.DrawAtY.AND.ORA
|
||||||
|
|
||||||
lda LBUF.MASK,x get MASK bits
|
lda LBUF.MASK,x get MASK bits
|
||||||
ora LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
|
ora LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
|
||||||
and (ZPBasePtr),y Clear screen at C1
|
|
||||||
|
cpx LBUF.C2
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
ora LBUF.C2.MASK special case : C1=C2
|
||||||
|
and (ZPBasePtr),y
|
||||||
|
sta ZPTmpByte
|
||||||
|
|
||||||
|
lda LBUF.DATA,x
|
||||||
|
and LBUF.C1.DATA
|
||||||
|
and LBUF.C2.DATA
|
||||||
|
ora ZPTmpByte
|
||||||
|
sta (ZPBasePtr),y update screen
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 and (ZPBasePtr),y Clear screen at C1
|
||||||
sta ZPTmpByte
|
sta ZPTmpByte
|
||||||
|
|
||||||
lda LBUF.DATA,x get DATA bits
|
lda LBUF.DATA,x get DATA bits
|
||||||
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
|
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
|
||||||
ora ZPTmpByte ora with screen bits
|
ora ZPTmpByte ora with screen bits
|
||||||
sta (ZPBasePtr),y update screen
|
|
||||||
inx
|
bra .3
|
||||||
cpx LBUF.C2
|
|
||||||
beq .2 C1=C2, go setup C2
|
|
||||||
|
|
||||||
bcs .8 C1+1 > C2, we are done...
|
.2 ldy COL.BANK,x
|
||||||
|
|
||||||
.1 ldy COL.BANK,x
|
|
||||||
sta $C000,y
|
sta $C000,y
|
||||||
txa
|
txa
|
||||||
lsr
|
lsr
|
||||||
|
@ -243,14 +254,15 @@ LBUF.DrawAtY.AND.ORA
|
||||||
|
|
||||||
lda (ZPBasePtr),y
|
lda (ZPBasePtr),y
|
||||||
and LBUF.MASK,x
|
and LBUF.MASK,x
|
||||||
ora LBUF.DATA,x set all bytes between C1+1 & C2-1
|
ora LBUF.DATA,x set all bytes between C1+1 & C2-1
|
||||||
sta (ZPBasePtr),y
|
|
||||||
|
.3 sta (ZPBasePtr),y update screen
|
||||||
|
|
||||||
inx
|
inx
|
||||||
cpx LBUF.C2
|
cpx LBUF.C2
|
||||||
bne .1
|
bne .2
|
||||||
|
|
||||||
.2 ldy COL.BANK,x
|
ldy COL.BANK,x
|
||||||
sta $C000,y
|
sta $C000,y
|
||||||
txa
|
txa
|
||||||
lsr
|
lsr
|
||||||
|
@ -262,7 +274,7 @@ LBUF.DrawAtY.AND.ORA
|
||||||
sta ZPTmpByte
|
sta ZPTmpByte
|
||||||
|
|
||||||
lda LBUF.DATA,x get DATA bits
|
lda LBUF.DATA,x get DATA bits
|
||||||
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
|
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
|
||||||
ora ZPTmpByte
|
ora ZPTmpByte
|
||||||
sta (ZPBasePtr),y update screen
|
sta (ZPBasePtr),y update screen
|
||||||
|
|
||||||
|
|
|
@ -554,6 +554,7 @@ DRV.CS.END
|
||||||
CONTROL.80C .DA #SETIOUDIS
|
CONTROL.80C .DA #SETIOUDIS
|
||||||
.DA #CLRTEXT
|
.DA #CLRTEXT
|
||||||
* .DA #SETHIRES
|
* .DA #SETHIRES
|
||||||
|
|
||||||
.DA #CLR80DISP
|
.DA #CLR80DISP
|
||||||
.DA #SETAN3
|
.DA #SETAN3
|
||||||
.DA #CLRAN3
|
.DA #CLRAN3
|
||||||
|
|
|
@ -70,14 +70,9 @@ S.OBJ.X2 .EQ 12
|
||||||
S.OBJ.Y2 .EQ 14
|
S.OBJ.Y2 .EQ 14
|
||||||
S.OBJ.W .EQ 16
|
S.OBJ.W .EQ 16
|
||||||
S.OBJ.H .EQ 18
|
S.OBJ.H .EQ 18
|
||||||
S.OBJ.Parent .EQ 20
|
S.OBJ.Childs .EQ 20
|
||||||
S.OBJ.Childs .EQ 22
|
|
||||||
*
|
*
|
||||||
S.OBJ .EQ 24
|
S.OBJ .EQ 22
|
||||||
*--------------------------------------
|
|
||||||
S.SCREEN.hDEV .EQ S.OBJ.Parent
|
|
||||||
*
|
|
||||||
S.SCREEN .EQ S.OBJ
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.WND.F.RESIZE .EQ %00000001
|
S.WND.F.RESIZE .EQ %00000001
|
||||||
S.WND.F.MOVE .EQ %00000010
|
S.WND.F.MOVE .EQ %00000010
|
||||||
|
|
|
@ -133,7 +133,7 @@ ShowCursor.I sta CUR.CB+S.CB.OP
|
||||||
|
|
||||||
DrawCursor.I sta CUR.CB+S.CB.OP
|
DrawCursor.I sta CUR.CB+S.CB.OP
|
||||||
|
|
||||||
>LDYA L.SCR
|
>LDYA L.WND.Screen
|
||||||
jsr OBJ.Get
|
jsr OBJ.Get
|
||||||
|
|
||||||
>LDYA L.CUR.CB
|
>LDYA L.CUR.CB
|
||||||
|
|
|
@ -6,59 +6,63 @@ WND.Init >PUSHBI 0
|
||||||
>SYSCALL2 open
|
>SYSCALL2 open
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta SCR+S.SCREEN.hDEV
|
sta WND.Screen+S.OBJ.hPARENT
|
||||||
|
|
||||||
>LDYA L.DCB.GFX
|
>LDYA L.DCB.GFX
|
||||||
>STYA IOCTL+S.IOCTL.BUFPTR
|
>STYA IOCTL+S.IOCTL.BUFPTR
|
||||||
lda #S.IOCTL.STATCODE.GETDCB
|
lda #S.IOCTL.STATCODE.GETDCB
|
||||||
sta IOCTL+S.IOCTL.STATCODE
|
sta IOCTL+S.IOCTL.STATCODE
|
||||||
|
|
||||||
>PUSHB SCR+S.SCREEN.hDEV
|
>PUSHB WND.Screen+S.OBJ.hPARENT
|
||||||
>PUSHBI IOCTL.STATUS
|
>PUSHBI IOCTL.STATUS
|
||||||
>PUSHW L.IOCTL
|
>PUSHW L.IOCTL
|
||||||
>SYSCALL2 IOCTL
|
>SYSCALL2 IOCTL
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
WND.Setup >LDYA DCB.GFX+S.DCB.GFX.W
|
WND.Setup >LDYA DCB.GFX+S.DCB.GFX.W
|
||||||
>STYA SCR+S.OBJ.W
|
>STYA WND.Screen+S.OBJ.W
|
||||||
>STYA WND.Desktop+S.OBJ.W
|
>STYA WND.Desktop+S.OBJ.W
|
||||||
>STYA WND.SysBar+S.OBJ.W
|
>STYA WND.SysBar+S.OBJ.W
|
||||||
|
|
||||||
lda SYSFON.H
|
lda SYSFON.H
|
||||||
clc
|
clc
|
||||||
adc #6
|
adc #6
|
||||||
sta WND.SysBar+S.OBJ.H
|
sta WND.SysBar+S.OBJ.H
|
||||||
|
|
||||||
lda DCB.GFX+S.DCB.GFX.H
|
lda DCB.GFX+S.DCB.GFX.H
|
||||||
sta SCR+S.OBJ.H
|
sta WND.Screen+S.OBJ.H
|
||||||
sec
|
sec
|
||||||
sbc WND.SysBar+S.OBJ.H
|
sbc WND.SysBar+S.OBJ.H
|
||||||
sta WND.Desktop+S.OBJ.H
|
sta WND.Desktop+S.OBJ.H
|
||||||
sta WND.SysBar+S.OBJ.X1
|
sta WND.SysBar+S.OBJ.X1
|
||||||
|
|
||||||
lda DCB.GFX+S.DCB.GFX.H+1
|
lda DCB.GFX+S.DCB.GFX.H+1
|
||||||
sta WND.SysBar+S.OBJ.H+1
|
sta WND.SysBar+S.OBJ.H+1
|
||||||
sbc #0
|
sbc #0
|
||||||
sta WND.Desktop+S.OBJ.H+1
|
sta WND.Desktop+S.OBJ.H+1
|
||||||
sta WND.SysBar+S.OBJ.X1+1
|
sta WND.SysBar+S.OBJ.X1+1
|
||||||
|
|
||||||
>LDYA L.SCR
|
>LDYA L.WND.Screen
|
||||||
jsr OBJ.SetX2Y2
|
jsr OBJ.SetX2Y2
|
||||||
|
|
||||||
>LDYA L.WND.Desktop
|
>LDYA L.WND.Desktop
|
||||||
>STYA SCR.Childs
|
>STYA WND.Screen.Childs
|
||||||
jsr OBJ.SetX2Y2
|
jsr OBJ.SetX2Y2
|
||||||
|
|
||||||
>LDYA L.WND.SysBar
|
>LDYA L.WND.SysBar
|
||||||
>STYA SCR.Childs+2
|
>STYA WND.Screen.Childs+2
|
||||||
jsr OBJ.SetX2Y2
|
jsr OBJ.SetX2Y2
|
||||||
|
|
||||||
lda #CUR.T.ARROW
|
lda #CUR.T.ARROW
|
||||||
sta WND.Desktop+S.WND.hCUR
|
sta WND.Desktop+S.WND.hCUR
|
||||||
sta WND.SysBar+S.WND.hCUR
|
sta WND.SysBar+S.WND.hCUR
|
||||||
|
|
||||||
* sta $C057
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
WND.Quit lda SCR+S.SCREEN.hDEV
|
WND.Quit lda WND.Screen+S.OBJ.hPARENT
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
pha
|
pha
|
||||||
>PUSHBI IOCTL.CLOSE
|
>PUSHBI IOCTL.CLOSE
|
||||||
>PUSHWZ
|
>PUSHWZ
|
||||||
|
@ -73,12 +77,16 @@ WND.New >STYA ZPPtr1
|
||||||
>LDYAI S.WND
|
>LDYAI S.WND
|
||||||
>SYSCALL2 getmem
|
>SYSCALL2 getmem
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPWNDPtr
|
>STYA ZPWNDPtr
|
||||||
|
|
||||||
ldy #S.WND-1
|
ldy #S.WND-1
|
||||||
|
|
||||||
.1 lda (ZPPtr1),y
|
.1 lda (ZPPtr1),y
|
||||||
sta (ZPWNDPtr),y
|
sta (ZPWNDPtr),y
|
||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
WND.Paint >STYA ZPPtr1
|
WND.Paint >STYA ZPPtr1
|
||||||
|
|
|
@ -128,7 +128,7 @@ L.IOCTL .DA IOCTL
|
||||||
L.DCB.GFX .DA DCB.GFX
|
L.DCB.GFX .DA DCB.GFX
|
||||||
L.MouseClamp .DA MouseClamp
|
L.MouseClamp .DA MouseClamp
|
||||||
L.CB.Cache .DA CB.Cache
|
L.CB.Cache .DA CB.Cache
|
||||||
L.SCR .DA SCR
|
L.WND.Screen .DA WND.Screen
|
||||||
L.WND.Desktop .DA WND.Desktop
|
L.WND.Desktop .DA WND.Desktop
|
||||||
L.WND.SysBar .DA WND.SysBar
|
L.WND.SysBar .DA WND.SysBar
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -270,14 +270,14 @@ CB.Get >STYA .1+1
|
||||||
GFXWrite.CB >LDYA L.CB.Cache
|
GFXWrite.CB >LDYA L.CB.Cache
|
||||||
|
|
||||||
GFXWrite.YA pha
|
GFXWrite.YA pha
|
||||||
>PUSHB SCR+S.SCREEN.hDEV
|
>PUSHB WND.Screen+S.OBJ.hPARENT
|
||||||
>PUSHBI IOCTL.WRITE
|
>PUSHBI IOCTL.WRITE
|
||||||
pla
|
pla
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>SYSCALL2 IOCTL
|
>SYSCALL2 IOCTL
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GetScreenGC >LDYA L.SCR
|
GetScreenGC >LDYA L.WND.Screen
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB usr/src/lib/libgui.s.bm
|
.INB usr/src/lib/libgui.s.bm
|
||||||
|
@ -335,10 +335,11 @@ MouseClamp .BS 8
|
||||||
CB.Cache .BS S.CB
|
CB.Cache .BS S.CB
|
||||||
OBJ.Cache .BS S.OBJ
|
OBJ.Cache .BS S.OBJ
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SCR .DA #S.OBJ.T.SCREEN
|
WND.Screen .DA #S.OBJ.T.SCREEN
|
||||||
.BS S.SCREEN-1
|
.BS S.WND-1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SCR.Childs .BS 2 WND.Desktop
|
WND.Screen.Childs
|
||||||
|
.BS 2 WND.Desktop
|
||||||
.BS 2 WND.SysBar
|
.BS 2 WND.SysBar
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -445,9 +445,9 @@ MEM.GetMemByID sta ZPMemMgrSPtr
|
||||||
sta ZPMemMgrSPtr+1
|
sta ZPMemMgrSPtr+1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Mem.SetOwnerPS0 lda #0
|
|
||||||
.HS 2C BIT ABS
|
|
||||||
Mem.SetOwner lda CORE.LastPSID
|
Mem.SetOwner lda CORE.LastPSID
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
Mem.SetOwnerPS0 lda #0
|
||||||
ldy #S.MEM.OWNERPID
|
ldy #S.MEM.OWNERPID
|
||||||
sta (ZPMemMgrSPtr),y
|
sta (ZPMemMgrSPtr),y
|
||||||
rts
|
rts
|
||||||
|
|
Loading…
Reference in New Issue
Block a user