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

View File

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

View File

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

View File

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

View File

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

View File

@ -11,7 +11,11 @@ NEW
*-------------------------------------- *--------------------------------------
CLIP.YA jsr CB.Get CLIP.YA jsr CB.Get
ldx CB.Cache+S.CB.CMD 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.Point
CLIP.HLine CLIP.HLine
@ -25,6 +29,7 @@ CLIP.Text
CLIP.BitBlt.9 pla CLIP.BitBlt.9 pla
CLIP.BitBlt.99 sec CLIP.BitBlt.99 sec
rts rts
CLIP.BitBlt lda CB.Cache+S.CB.DstX CLIP.BitBlt lda CB.Cache+S.CB.DstX
ldx CB.Cache+S.CB.DstX+1 ldx CB.Cache+S.CB.DstX+1
pha pha

View File

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

View File

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

View File

@ -1,11 +1,8 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*-------------------------------------- *--------------------------------------
FON.Init >PUSHWZ Aux type FON.Init >LDYA L.SYSX7
>PUSHBI $CC Type jsr FON.Load
>PUSHBI O.RDONLY
>LDYA L.SYSX7
>SYSCALL2 LoadStkObj
bcs .9 bcs .9
sta hSYSFON sta hSYSFON
@ -14,17 +11,19 @@ FON.Init >PUSHWZ Aux type
lda #7 lda #7
sta SYSFON.H sta SYSFON.H
>PUSHWZ Aux type
>PUSHBI $CC Type
>PUSHBI O.RDONLY
>LDYA L.SYSX7B >LDYA L.SYSX7B
>SYSCALL2 LoadStkObj jsr FON.Load
bcs .9 bcs .9
sta hSYSFONB sta hSYSFONB
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
FON.Load >PUSHYA
>PUSHBI O.RDONLY
>PUSHBI $CC Type
>PUSHWZ Aux type
>SYSCALL2 LoadStkObj
rts
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE usr/src/lib/libgui.s.fon 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 sta MouseClamp+6
ror ror
sta CUR.Pos+S.POINT.Y sta CUR.Pos+S.POINT.Y
>PUSHW L.MouseClamp
>PUSHB hDevMouse
>PUSHBI IOCTL.CONTROL >PUSHBI IOCTL.CONTROL
lda hDevMouse >PUSHW L.MouseClamp
>SYSCALL2 IOCTL >SYSCALL2 IOCTL
bcs .9 bcs .9
>LDYA L.CUR.SaveBuf >LDYA L.CUR.SaveBuf
>STYA CUR.CB+S.CB.DstPtr >STYA CUR.CB+S.CB.DstPtr
lda #CUR.T.ARROW lda #CUR.T.ARROW
jsr SetCursor jsr SetCursor
jsr ShowCursor jsr ShowCursor
@ -48,30 +51,36 @@ MOU.Setup lda DCB.GFX+S.DCB.GFX.W+1
*-------------------------------------- *--------------------------------------
MOU.Quit lda hDevMouse MOU.Quit lda hDevMouse
beq .8 beq .8
pha
>PUSHA
>PUSHBI IOCTL.CLOSE >PUSHBI IOCTL.CLOSE
>PUSHWZ >PUSHWZ
pla
>SYSCALL2 IOCTL >SYSCALL2 IOCTL
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
MOU.ReadMouse lda A2osX.ASCREEN GUI screen active ? MOU.ReadMouse >PULLYA
cmp DCB.GFX+S.DCB.GFX.DEVID
ldx A2osX.ASCREEN GUI screen active ?
cpx DCB.GFX+S.DCB.GFX.DEVID
bne .9 no, exit.... bne .9 no, exit....
lda hDevMouse
ldx hDevMouse
beq .9 beq .9
pha pha
* >PUSHW ZPPtr1 txa
>PUSHA
>PUSHBI IOCTL.READ >PUSHBI IOCTL.READ
pla pla
>PUSHYA
>SYSCALL2 IOCTL >SYSCALL2 IOCTL
rts rts
.9 sec .9 sec
>RET 2 Discard PTR rts
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE usr/src/lib/libgui.s.mou SAVE usr/src/lib/libgui.s.mou

View File

@ -5,14 +5,17 @@ WND.Init >PUSHBI 0
>LDYA L.DEVNAME.GFX >LDYA L.DEVNAME.GFX
>SYSCALL2 open >SYSCALL2 open
bcs .9 bcs .9
sta SCR+S.SCREEN.hDEV sta SCR+S.SCREEN.hDEV
>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
>PUSHW L.IOCTL
>PUSHB SCR+S.SCREEN.hDEV
>PUSHBI IOCTL.STATUS >PUSHBI IOCTL.STATUS
lda SCR+S.SCREEN.hDEV >PUSHW L.IOCTL
>SYSCALL2 IOCTL >SYSCALL2 IOCTL
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
@ -35,18 +38,24 @@ WND.Setup >LDYA DCB.GFX+S.DCB.GFX.W
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.SCR
jsr OBJ.SetX2Y2 jsr OBJ.SetX2Y2
>LDYA L.WND.Desktop >LDYA L.WND.Desktop
>STYA SCR.Childs >STYA SCR.Childs
jsr OBJ.SetX2Y2 jsr OBJ.SetX2Y2
>LDYA L.WND.SysBar >LDYA L.WND.SysBar
jsr OBJ.SetX2Y2 jsr OBJ.SetX2Y2
>STYA SCR.Childs+2 >STYA SCR.Childs+2
>LDYA L.WND.Desktop >LDYA L.WND.Desktop
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 SCR+S.SCREEN.hDEV

View File

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

View File

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