Kernel 0.92

This commit is contained in:
Rémy GIBERT 2019-01-08 16:29:26 +00:00
parent 93d07cb043
commit 3533594a9c
17 changed files with 153 additions and 138 deletions

Binary file not shown.

View File

@ -274,7 +274,13 @@ OPEN ldx #0 DEV.ID in A
dey
bne .2
*--------------------------------------
CONTROL ldy #0
CONTROL lda DCB+S.DCB.GFX.DEVID
cmp A2osX.ASCREEN
beq .8
sta A2osX.ASCREEN
ldy #0
bit DCB+S.DCB.GFX.S
bmi .1 //c,EVE mode
@ -288,12 +294,7 @@ CONTROL ldy #0
iny
bra .1
.8 lda DCB+S.DCB.GFX.DEVID
sta A2osX.ASCREEN
clc
rts
.8
*--------------------------------------
CLOSE clc
rts

View File

@ -114,7 +114,7 @@ FD.DEV .DA #S.FD.T.CDEV
.BS 2 DRVPTR
.DA 0 DCBPTR
.DA 0 BUFPTR
FD.DEV.NAME .AZ "MOU7"
FD.DEV.NAME .AZ "MOUx"
*--------------------------------------
* Driver Code
*--------------------------------------
@ -135,7 +135,14 @@ DRV.CS.START cld
.DA A2osX.BADCALL
.DA 0 end or relocation
*--------------------------------------
STATUS jsr GETIOCTL
STATUS >STYA ZPIOCTL
ldy #S.IOCTL.BUFPTR
lda (ZPIOCTL),y
sta ZPBufPtr
iny
lda (ZPIOCTL),y
sta ZPBufPtr+1
ldy #S.IOCTL.STATCODE
lda (ZPIOCTL),y
@ -162,7 +169,7 @@ STATUS.9 lda #MLI.E.BADCTL
sec
rts
*--------------------------------------
CONTROL jsr GETIOCTL
CONTROL >STYA ZPBufPtr NON STANDARD
php
sei
@ -211,7 +218,7 @@ CLOSE php
clc
rts
*--------------------------------------
READ >STYA ZPBufPtr NON STANDARD
READ >STYA ZPBufPtr NON STANDARD
stz READ.S+1 Reset Flags
@ -301,7 +308,7 @@ READ >STYA ZPBufPtr NON STANDARD
tsb READ.S+1
bra .8
.4 lda #S.MOUSE.S.DRAG
.4 lda #S.MOUSE.S.DRAGSTART
tsb READ.S+1
ldy #S.MOUSE.X2+3
@ -327,17 +334,6 @@ READ.S lda #$ff SELF MODIFIED
*--------------------------------------
* PRIVATE
*--------------------------------------
GETIOCTL >STYA ZPIOCTL
ldy #S.IOCTL.BUFPTR
lda (ZPIOCTL),y
sta ZPBufPtr
iny
lda (ZPIOCTL),y
sta ZPBufPtr+1
rts
*--------------------------------------
SETCLAMP lda (ZPBufPtr),y
sta LOCLAMPLO

View File

@ -61,7 +61,7 @@ A2osX.RANDOM16 .EQ $BEEE WORD
*--------------------------------------
A2osX.KCONFIG .EQ $BEF0
A2osX.HZ .EQ $BEF0 5/6 for 50/60Hz
A2osX.TTYDEVS .EQ $BEF1 K.TTY.MAX = 4 !
A2osX.TTYDEVS .EQ $BEF1 K.TTY.MAX = 3 !
A2osX.F .EQ $BEF8
A2osX.F.CHROOT .EQ %10000000 ChRooting to /RAMx
A2osX.F.PMODE .EQ %01000000 Preemptive Mode

View File

@ -113,7 +113,7 @@ S.OBJ.T.SCREEN .EQ 0
S.OBJ.T.WND .EQ 2
S.OBJ.T.MENUBAR .EQ 4
S.OBJ.T.MENU .EQ 6
S.OBJ.T.MENUITEM .EQ 8
S.OBJ.T.MITEM .EQ 8
S.OBJ.T.BUT .EQ 10
S.OBJ.T.TEXT .EQ 12
@ -158,23 +158,23 @@ S.MENUBAR
S.MENU.hSAVEBUF .EQ 2
* ... S.MITEMs...
*--------------------------------------
*S.MENUITEM.F. .EQ %00000001
*S.MENUITEM.F. .EQ %00000010
*S.MENUITEM.F. .EQ %00000100
*S.MENUITEM.F. .EQ %00001000
*S.MENUITEM.F. .EQ %00010000
S.MENUITEM.F.SEP .EQ %00100000
S.MENUITEM.F.CHECKED .EQ %01000000
S.MENUITEM.F.DISABLED .EQ %10000000
S.MENUITEM.ID .EQ 1
S.MENUITEM.hSUBM .EQ 2
S.MENUITEM.hBM .EQ 3
S.MENUITEM.HOTKEY .EQ 4
S.MENUITEM.HOTKEY.CTRL .EQ %10000000
S.MENUITEM.HOTKEY.OA .EQ %01000000
S.MENUITEM.HOTKEY.CA .EQ %00100000
S.MENUITEM.TEXTLEN .EQ 5
S.MENUITEM.TEXT .EQ 6 CSTR
*S.MITEM.F. .EQ %00000001
*S.MITEM.F. .EQ %00000010
*S.MITEM.F. .EQ %00000100
*S.MITEM.F. .EQ %00001000
*S.MITEM.F. .EQ %00010000
S.MITEM.F.SEP .EQ %00100000
S.MITEM.F.CHECKED .EQ %01000000
S.MITEM.F.DISABLED .EQ %10000000
S.MITEM.ID .EQ 1
S.MITEM.hSUBM .EQ 2
S.MITEM.hBM .EQ 3
S.MITEM.HOTKEY .EQ 4
S.MITEM.HOTKEY.CTRL .EQ %10000000
S.MITEM.HOTKEY.OA .EQ %01000000
S.MITEM.HOTKEY.CA .EQ %00100000
S.MITEM.TEXTLEN .EQ 5
S.MITEM.TEXT .EQ 6 CSTR
* ...
*--------------------------------------
S.BUT.T .EQ 0

View File

@ -5,7 +5,7 @@ AUTO 4,1
.OP 65C02
*--------------------------------------
LIBGUI.Draw .EQ 8
LIBGUI.SetCursor.A .EQ 10
LIBGUI.SetCursor .EQ 10
LIBGUI.SetCursorPos .EQ 12
LIBGUI.HideCursor .EQ 14
LIBGUI.ShowCursor .EQ 16

View File

@ -2,7 +2,9 @@ NEW
PREFIX
AUTO 4,1
*--------------------------------------
SYSFONB.H .BS 1
hSYSFON .BS 1
hSYSFONB .BS 1
SYSFON.H .BS 1
*--------------------------------------
MAN
SAVE USR/SRC/LIB/LIBGUI.G.FON

View File

@ -4,27 +4,30 @@ AUTO 4,1
*--------------------------------------
BUT.New >STYA ZPPtr1
ldy #S.CTRL.W
ldy #S.BUT.W
lda (ZPPtr1),y
iny
ora (ZPPtr1),y
bne . W in !NULL, static size
bne .1 W in !NULL, static size
ldy #S.BUT.hBM
lda (ZPPtr1),y
beq .1
ldy #S.BM.W
>SYSCALL GetStkObjProperty.AY
>SYSCALL GetStkObjProp
phy
ldy #S.CTRL.W+1
ldy #S.BUT.W+1
sta (ZPPtr1),y
dey
pla
sta (ZPPtr1),y
.1 ldy
.1
clc
rts
*--------------------------------------
BUT.Draw

View File

@ -4,17 +4,17 @@ AUTO 4,1
*--------------------------------------
UpdateCursor lda CUR.T
cmp #CUR.T.WAIT
bcc SetCursor.A.RTS
bcc SetCursor.RTS
inc
inc
cmp #CUR.T.WAIT+12
bne SetCursor.A
bne SetCursor
lda #CUR.T.WAIT
*--------------------------------------
* Set X2,Y2,SrcPtr
*--------------------------------------
SetCursor.A sta CUR.T
SetCursor sta CUR.T
lda CUR.bVisible
bpl .1
@ -54,7 +54,7 @@ SetCursor.A sta CUR.T
lda CUR.bVisible
bmi ShowCursor.I
SetCursor.A.RTS rts
SetCursor.RTS rts
*--------------------------------------
* Set DestX,DestY
*--------------------------------------

View File

@ -325,7 +325,7 @@ DrawText >LDYA L.CB.Cache
jsr GoDevGfx
lda CB.Cache+S.CB.SrcPtr
>SYSCALL FreeStkObj.A
>SYSCALL FreeStkObj
.9 rts
*--------------------------------------

View File

@ -5,23 +5,23 @@ AUTO 4,1
FON.Init >PUSHWI 0 Aux type
>PUSHBI $CC Type
>PUSHBI O.RDONLY
>PUSHW L.SYSX7
>LDYA L.SYSX7
>SYSCALL LoadStkObj
bcs .9
sta hSYSFON
ldy #S.FON.PixH
>SYSCALL GetStkObjProp
sty SYSFON.H
>PUSHWI 0 Aux type
>PUSHBI $CC Type
>PUSHBI O.RDONLY
>PUSHW L.SYSX7B
>LDYA L.SYSX7B
>SYSCALL LoadStkObj
bcs .9
sta hSYSFONB
ldy #S.FON.PixH
>SYSCALL GetStkObjProperty.AY
sty SYSFONB.H
.9 rts
*--------------------------------------

View File

@ -2,6 +2,8 @@ NEW
PREFIX
AUTO 4,1
*--------------------------------------
* Y,A = ptr to menu definition
*--------------------------------------
MENU.New >STYA ZPPtr1
@ -11,16 +13,8 @@ MENU.New >STYA ZPPtr1
stz DX+1
stz DY+1
lda ZPPtr1
clc
adc #S.MENU
sta ZPPtr2
lda ZPPtr1+1
adc /S.MENU
sta ZPPtr2+1
.1 lda (ZPPtr2)
rts
*--------------------------------------
MENU.SysMenu
*--------------------------------------
@ -65,8 +59,6 @@ MENU.MenuEditor .AZ "File"
.DA #0
.DA #0
.AZ "Check Me"
.DA #0
.DA #0
*--------------------------------------

View File

@ -2,26 +2,22 @@ NEW
PREFIX
AUTO 4,1
*--------------------------------------
MOU.Init
.1 >LDYA L.DEVNAME.MOUSE
>SYSCALL GetDevByName.YA
MOU.Init >DEBUG
.1 >PUSHBI 0
>LDYA L.DEVNAME.MOUSE
>SYSCALL open
bcc .2
inc DEVNAME.MOUSE+3
lda DEVNAME.MOUSE+3
inc DEVNAME.MOUSE+8
lda DEVNAME.MOUSE+8
cmp #'8'
bne .1
clc
rts
.2 stx hDevMouse
txa
>PUSHA
>PUSHBI DEVMGR.OPEN
>PUSHWI 0
>SYSCALL IOCTL
.2 sta hDevMouse
lda GC.Screen+S.GC.X2+1
sta MouseClamp+3
lsr
@ -42,27 +38,27 @@ MOU.Init
ror
sta CUR.Pos+S.POINT.Y
>PUSHB.G hDevMouse
>PUSHBI DEVMGR.CONTROL
>PUSHWI L.MouseClamp
>PUSHBI IOCTL.CONTROL
lda hDevMouse
>SYSCALL IOCTL
>LDYA L.CUR.SaveBuf
>STYA CUR.CB+S.CB.DstPtr
lda #CUR.T.ARROW
jsr SetCursor.A
bra .8
jsr SetCursor
sec
clc
.9 rts
*--------------------------------------
MOU.Quit lda hDevMouse
beq .8
>PUSHA
>PUSHBI DEVMGR.CLOSE
pha
>PUSHBI IOCTL.CLOSE
>PUSHWI 0
pla
>SYSCALL IOCTL
.8 clc
@ -73,9 +69,11 @@ MOU.Read >STYA ZPPtr1
lda hDevMouse
beq .9
>PUSHA
>PUSHBI DEVMGR.READBLOCK
pha
>PUSHW ZPPtr1
>PUSHBI IOCTL.READ
pla
>SYSCALL IOCTL
bcs .9

View File

@ -2,38 +2,34 @@ NEW
PREFIX
AUTO 4,1
*--------------------------------------
WND.Init >LDYA L.DEVNAME.GFX
>SYSCALL GetDevByName.YA
WND.Init >PUSHBI 0
>LDYA L.DEVNAME.GFX
>SYSCALL open
bcs .9
stx hDevScreen
txa
sta hDevGFX
pha
>PUSHW L.DCB.GFX
pla
>SYSCALL GetDevStatus
bcs .9
>STYA ZPPtr1
ldy #S.DIB.GFX.W
lda (ZPPtr1),y
lda DCB.GFX+S.DCB.GFX.W
sta WND.Cache+S.OBJ.W
iny
lda (ZPPtr1),y
lda DCB.GFX+S.DCB.GFX.W+1
sta WND.Cache+S.OBJ.W+1
lda SYSFONB.H
lda SYSFON.H
clc
adc #6
sta WND.TB.H
iny #S.DIB.GFX.H
lda (ZPPtr1),y
lda DCB.GFX+S.DCB.GFX.H
sec
sbc SYSFONB.H
sbc SYSFON.H
sta WND.Cache+S.OBJ.H
iny
lda (ZPPtr1),y
lda DCB.GFX+S.DCB.GFX.H+1
sbc #0
sta WND.Cache+S.OBJ.H+1
@ -50,7 +46,16 @@ WND.Init >LDYA L.DEVNAME.GFX
.9 rts
*--------------------------------------
WND.Quit
WND.Quit lda hDevGFX
beq .8
pha
>PUSHBI IOCTL.CLOSE
>PUSHWI 0
pla
>SYSCALL IOCTL
.8
clc
rts
*--------------------------------------

View File

@ -4,13 +4,14 @@ AUTO 4,1
.LIST OFF
.OP 65C02
.OR $2000
.TF LIB/LIBGUI.O
.TF LIB/GUI/LIBGUI
*--------------------------------------
.INB INC/MACROS.I
.INB INC/A2OSX.I
.INB INC/KERNEL.I
.INB INC/GFX.I
.INB INC/GUI.I
.INB INC/LIBGUI.I
.INB INC/GFX.I
*--------------------------------------
WND.MAX .EQ 64
*--------------------------------------
@ -44,9 +45,10 @@ WND.MAX .EQ 64
.EM
*--------------------------------------
ZPPtr1 .EQ ZPLIB
ZPGCPtr .EQ ZPLIB+2
ZPCBPtr .EQ ZPLIB+4
ZPWNDPtr .EQ ZPLIB+6
ZPPtr2 .EQ ZPLIB+2
ZPGCPtr .EQ ZPLIB+4
ZPCBPtr .EQ ZPLIB+6
ZPWNDPtr .EQ ZPLIB+8
*--------------------------------------
* File Header (16 Bytes)
@ -66,7 +68,7 @@ CS.START cld
.1 .DA LIB.LOAD
.DA LIB.UNLOAD
.DA Draw
.DA SetCursor.A
.DA SetCursor
.DA SetCursorPos
.DA HideCursor
.DA ShowCursor
@ -78,6 +80,7 @@ L.DEVNAME.GFX .DA DEVNAME.GFX
L.DEVNAME.MOUSE .DA DEVNAME.MOUSE
L.SYSX7 .DA SYSX7
L.SYSX7B .DA SYSX7B
L.DCB.GFX .DA DCB.GFX
L.MouseClamp .DA MouseClamp
L.GC.Screen .DA GC.Screen
L.CB.Cache .DA CB.Cache
@ -105,18 +108,22 @@ J.Clip .DA CLIP.Point SETPIXEL
.DA CLIP.Rect GETRECTBUFSIZE
.DA CLIP.Line
.DA CLIP.Text
L.WND.CACHE .DA WND.CACHE
.DA 0
*--------------------------------------
LIB.LOAD lda LibCount
bne .8
jsr FON.Init
bcs .9
jsr WND.Init
bcs .9
jsr MOU.Init
bcs .9
.8 inc LibCount
clc
rts
.9 rts
*--------------------------------------
LIB.UNLOAD dec LibCount
bne .8
@ -154,7 +161,7 @@ GetScreenGC >LDYA L.GC.Screen
rts
*--------------------------------------
GoDevGfx >LDYA L.CB.Cache
ldx #DEVMGR.WRITE
ldx #IOCTL.WRITE
GoDevGfx.Jmp jmp $ffff
*--------------------------------------
.INB USR/SRC/LIB/LIBGUI.S.BM
@ -175,14 +182,14 @@ CS.END
.INB USR/SRC/LIB/LIBGUI.G.FON
.INB USR/SRC/LIB/LIBGUI.G.WND
*--------------------------------------
DEVNAME.GFX .AZ "GFX"
DEVNAME.MOUSE .AZ "MOU1"
DEVNAME.GFX .AZ "/DEV/GFX"
DEVNAME.MOUSE .AZ "/DEV/MOU1"
*--------------------------------------
SYSX7 .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7"
SYSX7B .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7B"
*--------------------------------------
LibCount .BS 1
hDevScreen .BS 1
hDevGFX .BS 1
hDevMouse .BS 1
*--------------------------------------
DX .BS 2
@ -214,6 +221,8 @@ PAT.Buf .BS 1 S.BM.F
.DA 0 S.BM.MASK.OFS
.BS 8 (data)
*--------------------------------------
DCB.GFX .BS S.DCB.GFX
GC.Screen .BS S.GC
GC.Cache .BS S.GC
CB.Cache .BS S.CB
BM.Cache .BS S.BM

View File

@ -12,7 +12,14 @@ AUTO 4,1
.INB INC/GUI.I
.INB INC/LIBGUI.I
*--------------------------------------
ZPPtr1 .EQ ZPBIN
* Zero Page Segment, up to 32 bytes
*--------------------------------------
.DUMMY
.OR ZPBIN
ZS.START
* MyPtr .BS 2
ZS.END
.ED
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
@ -20,11 +27,12 @@ CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA 0
.DA CS.END-CS.START CS
.DA DS.END-DS.START DS
.DA #16 SS
.DA #2 ZP
.DA #S.PS.F.EVENT
.DA #0
.DA CS.END-CS.START Code Size (without Constants)
.DA DS.END-DS.START Data SegmentSize
.DA #64 Stack Size
.DA #ZS.END-ZS.START Zero Page Size
.DA 0
*--------------------------------------
* Relocation Table
@ -42,14 +50,13 @@ CS.INIT >LDYA L.LIBGUI
bcs CS.INIT.RTS
sta hLIBGUI
lda (pPs)
ora #S.PS.F.EVENT Now accept events
sta (pPs)
clc
CS.INIT.RTS rts
*--------------------------------------
CS.RUN lda A2osX.ASCREEN GUI screen active ?
CS.RUN clc
rts
lda A2osX.ASCREEN GUI screen active ?
cmp #3
bne .8 no, exit....
@ -78,7 +85,7 @@ CS.RUN lda A2osX.ASCREEN GUI screen active ?
lda #CUR.T.ARROW
.2 >STA.G CUR.T
>LIBCALL hLIBGUI,LIBGUI.SetCursor.A
>LIBCALL hLIBGUI,LIBGUI.SetCursor
jsr Destop.Paint
@ -120,9 +127,11 @@ Destop.Paint >LIBCALL hLIBGUI,LIBGUI.HideCursor
rts
*--------------------------------------
CS.END
LIBGUI .AZ "libgui.o"
LIBGUI .AZ "libgui"
hLIBGUI .BS 1
*--------------------------------------
SYSMENU
*--------------------------------------
MouseData .BS S.MOUSE
*--------------------------------------
.DUMMY

View File

@ -366,7 +366,7 @@ GP.CodeEnd .BS $BEE0-*
* $BEF0->$BEFF : Kernel Config Block
*--------------------------------------
.DA #6 A2osX.HZ=60hz
.DA #4 A2osX.TTYDEVS=4
.DA #3 A2osX.TTYDEVS=3
.HS 000000000000
.DA #0 ChRoot/Preemptive Disabled
.HS 00000000000000 All Slots marked as "Free"