Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-09-02 17:47:23 +02:00
parent 16a7463e7d
commit 6660b83a2d
14 changed files with 118 additions and 68 deletions

Binary file not shown.

View File

@ -42,10 +42,8 @@ X.OSD ldy CBX.Cache+S.CB.DstPtr
cpx #S.BM
bne .2
.4 lda CBX.Cache+S.CB.CMD
asl
tax
jmp (.8,x)
.4 ldx CBX.Cache+S.CB.CMD
jmp (.8-2,x)
*--------------------------------------
.8 .DA OSD.SETPIXEL
.DA OSD.GETPIXEL
@ -54,7 +52,6 @@ X.OSD ldy CBX.Cache+S.CB.DstPtr
.DA OSD.FILLRECT
.DA OSD.BITBLT
.DA OSD.GETRECTBUFSIZE
.DA $ffff DRAWLINE
.DA OSD.DRAWTEXT
.DA OSD.GETTEXTSIZE
*--------------------------------------
@ -596,7 +593,6 @@ CBX.CmdLen .DA #S.CB.Y1+1 SETPIXEL
.DA #S.CB.Y2+1 FILLRECT
.DA #S.CB.DstPtr+1 BITBLT
.DA #S.CB.DstPtr+1 GETRECTBUFSIZE
.DA #S.CB.Y2+1 DRAWLINE
.DA #S.CB.TxtPtr+1 DRAWTEXT
.DA #S.CB.SrcH+1 GETTEXTSIZE
*--------------------------------------

View File

@ -236,8 +236,9 @@ OSD.install >LDYA L.OSD
.3 sta CLRWRITEAUX
rts
*--------------------------------------
ClrScr ldx #0
txa lda #0
ClrScr lda #$55
ldx #0
.1 ldy BASEL,x
sty ZPPtr1
@ -247,6 +248,8 @@ ClrScr ldx #0
sta SETPAGE2
jsr .2
eor #$7F
sta CLRPAGE2
jsr .2
@ -445,11 +448,11 @@ WRITE >STYA ZPIOCTL NON STANDARD
lda (ZPIOCTL) Get Cmd
bmi .2
tax
ldy CB.CmdLen,x
asl
pha
lsr
tax
ldy CB.CmdLen-1,x
.1 lda (ZPIOCTL),y
sta CB.Cache,y
@ -457,18 +460,21 @@ WRITE >STYA ZPIOCTL NON STANDARD
bpl .1
plx
jmp (J.Cmds,x)
jmp (J.Cmds-2,x)
.2 sta SETWRITEAUX
>DEBUG
and #$7f
sta CBX.Cache
lsr
tax
ldy CB.CmdLen,x
ldy CB.CmdLen-1,x
.3 lda (ZPIOCTL),y
sta CBX.Cache,y
dey
bpl .3
bne .3
sta SETREADAUX
jsr X.OSD
@ -601,7 +607,6 @@ CB.CmdLen .DA #S.CB.Y1+1 SETPIXEL
.DA #S.CB.Y2+1 FILLRECT
.DA #S.CB.DstPtr+1 BITBLT
.DA #S.CB.DstPtr+1 GETRECTBUFSIZE
.DA #S.CB.Y2+1 DRAWLINE
.DA #S.CB.TxtPtr+1 DRAWTEXT
.DA #S.CB.SrcH+1 GETTEXTSIZE
*--------------------------------------

View File

@ -39,16 +39,16 @@ S.FON .EQ 8
* Command Block
*--------------------------------------
S.CB.CMD .EQ 0
S.CB.CMD.SETPIXEL .EQ 0
S.CB.CMD.GETPIXEL .EQ 1
S.CB.CMD.HLINE .EQ 2
S.CB.CMD.VLINE .EQ 3
S.CB.CMD.FILLRECT .EQ 4
S.CB.CMD.BITBLT .EQ 5
S.CB.CMD.GETRECTBUFSIZE .EQ 6
S.CB.CMD.DRAWLINE .EQ 7
S.CB.CMD.DRAWTEXT .EQ 8
S.CB.CMD.GETTEXTSIZE .EQ 9
S.CB.CMD.SETPIXEL .EQ 2
S.CB.CMD.GETPIXEL .EQ 4
S.CB.CMD.HLINE .EQ 6
S.CB.CMD.VLINE .EQ 8
S.CB.CMD.FILLRECT .EQ 10
S.CB.CMD.BITBLT .EQ 12
S.CB.CMD.GETRECTBUFSIZE .EQ 14
S.CB.CMD.DRAWTEXT .EQ 16
S.CB.CMD.GETTEXTSIZE .EQ 18
S.CB.CMD.DRAWLINE .EQ 20
S.CB.CMD.OSD .EQ 128
S.CB.OP .EQ 1
S.CB.OP.XOR .EQ 0 screen EOR bitmap -> Screen

View File

@ -1,6 +1,5 @@
NEW
AUTO 3,1
.LIST OFF
*--------------------------------------
LIBGUI.Draw .EQ 4
LIBGUI.SetCursor .EQ 6

View File

@ -1,7 +1,5 @@
NEW
PREFIX
AUTO 4,1
.LIST OFF
AUTO 3,1
*--------------------------------------
* //c Mouse Port, IIe Mouse Card
*--------------------------------------
@ -37,4 +35,4 @@ MOUSEMODx.INTMOVE .EQ %00000010
MOUSEMODx.ACTIVE .EQ %00000001
*--------------------------------------
MAN
SAVE INC/XY.MOUSE.I
SAVE inc/xy.mouse.i

View File

@ -11,7 +11,11 @@ NEW
*--------------------------------------
CLIP.YA jsr CB.Get
ldx CB.Cache+S.CB.CMD
CLIP.X jmp (J.CLIP,x)
bpl CLIP.X
txa
and #$7F
tax
CLIP.X jmp (J.CLIP-2,x)
*--------------------------------------
CLIP.Point
CLIP.HLine
@ -25,6 +29,7 @@ CLIP.Text
CLIP.BitBlt.9 pla
CLIP.BitBlt.99 sec
rts
CLIP.BitBlt lda CB.Cache+S.CB.DstX
ldx CB.Cache+S.CB.DstX+1
pha

View File

@ -16,7 +16,9 @@ SetCursor sta CUR.T
lda CUR.bVisible
bpl .1
jsr HideCursor.I
.1 ldx CUR.T
lda L.Cursors,x
sta CUR.CB+S.CB.SrcPtr
@ -45,14 +47,17 @@ SetCursor.RTS rts
*--------------------------------------
SetCursorPos >PULLW ZPPtr1
lda CUR.bVisible
bpl .1
jsr HideCursor.I
.1 ldy #S.POINT-1
.2 lda (ZPPtr1),y
sta CUR.Pos,y
dey
bpl .2
lda CUR.bVisible
bmi ShowCursor.I
@ -66,6 +71,7 @@ HideCursor lda CUR.bVisible
*--------------------------------------
ShowCursor lda CUR.bVisible
bmi .9
jsr ShowCursor.I
dec CUR.bVisible
.9 rts
@ -91,13 +97,18 @@ ShowCursor.I lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE
lda CUR.Pos+S.POINT.Y+1
sbc #0
sta CUR.CB+S.CB.DstY+1
DrawCursor.I >LDYA L.SCR
jsr OBJ.Get
>LDYA L.CUR.CB
>DEBUG
jsr CLIP.YA
bcs .9
>LDYA L.CUR.CB
jmp GFXWrite.YA
.9 rts
*--------------------------------------
MAN

View File

@ -4,8 +4,10 @@ NEW
Draw >PULLW ZPCBPtr Get CB
>PULLYA Get GC
jsr OBJ.Get
.1 >LDYA ZPCBPtr
jsr CB.Get
ldx CB.Cache+S.CB.CMD Get Cmd
beq .8
@ -17,16 +19,20 @@ Draw >PULLW ZPCBPtr Get CB
jsr Draw.Jmp
bra .7
.2 jsr GFXWrite.CB
.7 lda (ZPCBPtr) Get Cmd
tax
lda CB.CmdLen,x
lda CB.CmdLen-1,x
sec
adc ZPCBPtr
sta ZPCBPtr
bcc .1
inc ZPCBPtr+1
bra .1
.8 clc
.9 rts

View File

@ -1,11 +1,8 @@
NEW
AUTO 3,1
*--------------------------------------
FON.Init >PUSHWZ Aux type
>PUSHBI $CC Type
>PUSHBI O.RDONLY
>LDYA L.SYSX7
>SYSCALL2 LoadStkObj
FON.Init >LDYA L.SYSX7
jsr FON.Load
bcs .9
sta hSYSFON
@ -14,17 +11,19 @@ FON.Init >PUSHWZ Aux type
lda #7
sta SYSFON.H
>PUSHWZ Aux type
>PUSHBI $CC Type
>PUSHBI O.RDONLY
>LDYA L.SYSX7B
>SYSCALL2 LoadStkObj
jsr FON.Load
bcs .9
sta hSYSFONB
.9 rts
*--------------------------------------
FON.Load >PUSHYA
>PUSHBI O.RDONLY
>PUSHBI $CC Type
>PUSHWZ Aux type
>SYSCALL2 LoadStkObj
rts
*--------------------------------------
MAN
SAVE usr/src/lib/libgui.s.fon

View File

@ -32,13 +32,16 @@ MOU.Setup lda DCB.GFX+S.DCB.GFX.W+1
sta MouseClamp+6
ror
sta CUR.Pos+S.POINT.Y
>PUSHW L.MouseClamp
>PUSHB hDevMouse
>PUSHBI IOCTL.CONTROL
lda hDevMouse
>PUSHW L.MouseClamp
>SYSCALL2 IOCTL
bcs .9
>LDYA L.CUR.SaveBuf
>STYA CUR.CB+S.CB.DstPtr
lda #CUR.T.ARROW
jsr SetCursor
jsr ShowCursor
@ -48,30 +51,36 @@ MOU.Setup lda DCB.GFX+S.DCB.GFX.W+1
*--------------------------------------
MOU.Quit lda hDevMouse
beq .8
pha
>PUSHA
>PUSHBI IOCTL.CLOSE
>PUSHWZ
pla
>SYSCALL2 IOCTL
.8 clc
rts
*--------------------------------------
MOU.ReadMouse lda A2osX.ASCREEN GUI screen active ?
cmp DCB.GFX+S.DCB.GFX.DEVID
MOU.ReadMouse >PULLYA
ldx A2osX.ASCREEN GUI screen active ?
cpx DCB.GFX+S.DCB.GFX.DEVID
bne .9 no, exit....
lda hDevMouse
ldx hDevMouse
beq .9
pha
* >PUSHW ZPPtr1
txa
>PUSHA
>PUSHBI IOCTL.READ
pla
>PUSHYA
>SYSCALL2 IOCTL
rts
.9 sec
>RET 2 Discard PTR
rts
*--------------------------------------
MAN
SAVE usr/src/lib/libgui.s.mou

View File

@ -5,14 +5,17 @@ WND.Init >PUSHBI 0
>LDYA L.DEVNAME.GFX
>SYSCALL2 open
bcs .9
sta SCR+S.SCREEN.hDEV
>LDYA L.DCB.GFX
>STYA IOCTL+S.IOCTL.BUFPTR
lda #S.IOCTL.STATCODE.GETDCB
sta IOCTL+S.IOCTL.STATCODE
>PUSHW L.IOCTL
>PUSHB SCR+S.SCREEN.hDEV
>PUSHBI IOCTL.STATUS
lda SCR+S.SCREEN.hDEV
>PUSHW L.IOCTL
>SYSCALL2 IOCTL
.9 rts
*--------------------------------------
@ -35,18 +38,24 @@ WND.Setup >LDYA DCB.GFX+S.DCB.GFX.W
sbc #0
sta WND.Desktop+S.OBJ.H+1
sta WND.SysBar+S.OBJ.X1+1
>LDYA L.SCR
jsr OBJ.SetX2Y2
>LDYA L.WND.Desktop
>STYA SCR.Childs
jsr OBJ.SetX2Y2
>LDYA L.WND.SysBar
jsr OBJ.SetX2Y2
>STYA SCR.Childs+2
>LDYA L.WND.Desktop
lda #CUR.T.ARROW
sta WND.Desktop+S.WND.hCUR
sta WND.SysBar+S.WND.hCUR
sta $C057
rts
*--------------------------------------
WND.Quit lda SCR+S.SCREEN.hDEV

View File

@ -119,36 +119,44 @@ J.Clip .DA CLIP.Point SETPIXEL
LIB.LOAD lda LibCount
bne .8
jsr FON.Init
bcs .9
jsr MOU.Init
bcs .9
* bcs .9
jsr WND.Init
bcs .9
jsr WND.Setup
lda hDevMouse
beq .8
jsr MOU.Setup
.8 inc LibCount
clc
jsr FON.Init
bcs .9
lda hDevMouse
beq .1
jsr MOU.Setup
.1 jsr WND.Setup
inc LibCount
.8 clc
.9 rts
*--------------------------------------
LIB.UNLOAD dec LibCount
bne .8
jsr MOU.Quit
.8 clc
rts
*--------------------------------------
OBJ.Get >STYA .1+1
ldx #S.OBJ-1
.1 lda $ffff,x SELF MODIFIED
sta OBJ.Cache,x
dex
bpl .1
rts
*--------------------------------------
OBJ.SetX2Y2 >STYA ZPObjPtr
@ -211,9 +219,11 @@ CB.Get >STYA .1+1
*--------------------------------------
GFXWrite.CB >LDYA L.CB.Cache
GFXWrite.YA >PUSHYA
GFXWrite.YA pha
>PUSHB SCR+S.SCREEN.hDEV
>PUSHBI IOCTL.WRITE
lda SCR+S.SCREEN.hDEV
pla
>PUSHYA
>SYSCALL2 IOCTL
rts
*--------------------------------------
@ -273,6 +283,7 @@ PAT.Buf .BS 1 S.BM.F
*--------------------------------------
IOCTL .BS S.IOCTL
DCB.GFX .BS S.DCB.GFX
MOUSEDATA .BS S.MOUSE
*--------------------------------------
MouseClamp .BS 8
*--------------------------------------

View File

@ -55,6 +55,7 @@ CS.INIT >LDYA L.LIBGUI
CS.RUN >PUSHW L.MouseData
>LIBCALL hLIBGUI,LIBGUI.ReadMouse
bcs .4
lda MouseData+S.MOUSE.S
bit #S.MOUSE.S.MOVE
beq .1
@ -62,6 +63,7 @@ CS.RUN >PUSHW L.MouseData
>PUSHW L.MouseData
>LIBCALL hLIBGUI,LIBGUI.SetCursorPos
lda MouseData+S.MOUSE.S
.1 bit #S.MOUSE.S.CLK
beq .4
>LDA.G CUR.T