Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-07-02 16:14:30 +02:00
parent 8dd8dda5bd
commit 60a70cc84b
6 changed files with 96 additions and 51 deletions

Binary file not shown.

View File

@ -41,10 +41,12 @@ L.DEVNAME.GFX .DA DEVNAME.GFX
L.FONTFILE .DA FONTFILE
L.FONTFILEB .DA FONTFILEB
L.PIXFILE .DA PIXFILE
L.LOGOFILE .DA LOGOFILE
L.CB.RECT .DA CB.RECT
L.CB.TEXTB .DA CB.TEXTB
L.CB.TEXT .DA CB.TEXT
L.CB.PIX .DA CB.PIX
L.CB.LOGO .DA CB.LOGO
L.CB.Apple .DA CB.Apple
L.BM.Apple .DA BM.Apple
L.MESSAGEB .DA MESSAGEB
@ -53,23 +55,26 @@ L.MESSAGE .DA MESSAGE
.DA 0
*--------------------------------------
CS.INIT clc
rts
CS.INIT.RTS rts
*--------------------------------------
CS.RUN jsr GFX.Open
bcs .9
bcs CS.INIT.RTS
jsr LoadResources
bcs .9
bcs CS.INIT.RTS
>LDYA L.CB.RECT
jsr GFX.Write.YA
>LDYA L.BM.Apple
>STYA CB.Apple+S.CB.SrcPtr
>LDYA L.CB.PIX
jsr GFX.Write.YA
>LDYA L.CB.LOGO
jsr GFX.Write.YA
>LDYA L.BM.Apple
>STYA CB.Apple+S.CB.SrcPtr
>LDYA L.CB.Apple
jsr GFX.Write.YA
@ -77,7 +82,7 @@ CS.RUN jsr GFX.Open
sta CB.TEXTB+S.CB.hFont
>LDYA L.MESSAGEB
>STYA CB.TEXTB+S.CB.TxtPtr
>LDYA L.CB.TEXTB
jsr GFX.Write.YA
bcs .9
@ -108,15 +113,28 @@ CS.DOEVENT clc
CS.QUIT lda hFont
beq .1
>SYSCALL FreeStkObj
.1 lda hFontB
beq .2
>SYSCALL FreeStkObj
.2 lda CB.PIX+S.CB.SrcPtr
beq .3
>SYSCALL FreeStkObj
.3
.3 lda CB.LOGO+S.CB.SrcPtr
beq .4
>SYSCALL FreeStkObj
.4 lda CB.TEXTB+S.CB.SrcPtr
beq .5
>SYSCALL FreeStkObj
.5 lda CB.TEXT+S.CB.SrcPtr
beq .6
>SYSCALL FreeStkObj
.6
lda hDevGFX
beq .8
* >DEBUG
@ -131,7 +149,7 @@ LoadResources >PUSHW L.FONTFILE
>PUSHBI $CC Type
>PUSHWZ Aux type
>SYSCALL LoadStkObj
bcs .9
bcs .99
stx hFont
>PUSHW L.FONTFILEB
@ -147,9 +165,17 @@ LoadResources >PUSHW L.FONTFILE
>PUSHBI $CB Type
>PUSHWZ Aux type
>SYSCALL LoadStkObj
bcs .9
.99 bcs .9
stx CB.PIX+S.CB.SrcPtr
>PUSHW L.LOGOFILE
>PUSHBI O.RDONLY
>PUSHBI $CB Type
>PUSHWZ Aux type
>SYSCALL LoadStkObj
bcs .9
stx CB.LOGO+S.CB.SrcPtr
.9 rts
*--------------------------------------
GFX.Open >PUSHBI 0
@ -172,8 +198,9 @@ DEVNAME.GFX .AZ "/dev/gfx"
FONTFILE .AZ "${ROOT}sbin/sysx7"
FONTFILEB .AZ "${ROOT}sbin/sysx7b"
PIXFILE .AZ "${ROOT}root/guitest/marilyn"
LOGOFILE .AZ "${ROOT}A2osX.logo"
MESSAGEB .AZ " DHGR Driver & OSD 'Off-Screen Driver' Test (SYSX7B Font, Inverse) "
MESSAGE .AZ " 1234567890 abcdefghijklmnopqrstuvwxyz { + - * / } (SYSX7B Font, Normal) "
MESSAGE .AZ " 1234567890 abcdefghijklmnopqrstuvwxyz { + - * / } (SYSX7 Font, Normal) "
CB.RECT .DA #S.CB.CMD.FILLRECT
.DA #S.CB.OP.SET
@ -210,6 +237,19 @@ CB.PIX .DA #S.CB.CMD.BITBLT
.BS 2 SrcPtr
.DA 0 DSTPTR
CB.LOGO .DA #S.CB.CMD.BITBLT
.DA #S.CB.OP.SET+S.CB.OP.COLOR
.DA #S.CB.M.C16
.DA #0
.DA 0 X1
.DA 0 Y1
.DA 320 SrcW
.DA 40 SrcH
.DA 200 DstX
.DA 50 DstY
.BS 2 SrcPtr
.DA 0 DSTPTR
CB.TEXTB .DA #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
.DA #S.CB.OP.SET+S.CB.OP.INVERSE
.DA #S.CB.M.MONO

View File

@ -197,7 +197,8 @@ BITBLT.LOOP0 lda CB.Cache+S.CB.OP
inc BLT.BMDataPtr+1
.5 jmp BITBLT.LOOP0
.8 rts
.8 clc
rts
*------------ Shift 1->6 Comment : SCRBitOfs=X=3
BITBLT.LOOPx lda CB.Cache+S.CB.OP X = BLT.SCRBitOfs
@ -281,7 +282,8 @@ BITBLT.LOOPx.7 and #$ff SELF MODIFIED : #%01110000 get only col2 bites
inc BLT.BMDataPtr+1
.2 jmp BITBLT.LOOPx
.8 rts
.8 clc
rts
*--------------------------------------
* BM Data/Mask bits :
* 76543210 76543210

View File

@ -14,7 +14,8 @@ GBYTE .EQ ZPDRV+17
GBYTE2 .EQ ZPDRV+18
GWORD .EQ ZPDRV+20
TXTPTR .EQ ZPDRV+22
*--------------------------------------
TXTPTR .EQ $B8
*--------------------------------------
* Y,A = Ptr to S.CB in MAIN
*--------------------------------------
@ -59,7 +60,7 @@ X.OSD ldy CBX.Cache+S.CB.DstPtr
*--------------------------------------
OSD.SETPIXEL >LDYA CBX.Cache+S.CB.Y1
ldx DstBM.Cache+S.BM.RowBytes
jsr YAMultX
jsr OSD.YAMultX
pha
tya
clc
@ -174,11 +175,14 @@ OSD.GETTEXTSIZE clc
lda CBX.Cache+S.CB.hFONT
>SYSCALL2 GetMemPtr
>STYA ZPFontPtr
ldy #S.FON-1
.1 lda (ZPFontPtr),y
sta FON.Cache,y
dey
bpl .1
lda ZPFontPtr
clc
adc #S.FON
@ -186,6 +190,7 @@ OSD.GETTEXTSIZE clc
lda ZPFontPtr+1
adc /S.FON
sta ZPTablePtr+1
.2 >LDYA CBX.Cache+S.CB.TxtPtr
>STYA TXTPTR
stz CBX.Cache+S.CB.SrcW
@ -194,13 +199,10 @@ OSD.GETTEXTSIZE clc
lda FON.Cache+S.FON.PixH
sta CBX.Cache+S.CB.SrcH
stz CBX.Cache+S.CB.SrcH+1
.3 jsr OSD.TXTPTR.GetNext
beq .4
inc TXTPTR
bne .31
inc TXTPTR+1
.31
jsr OSD.FON.GetChar
lda (ZPCharPtr) Get Char PixelW
sec
@ -215,14 +217,18 @@ OSD.GETTEXTSIZE clc
ldx CBX.Cache+S.CB.SrcW+1
ldy CBX.Cache+S.CB.SrcH
bcc OSD.DRAWTEXT.RTS
sta DstBM.Cache+S.BM.W
stx DstBM.Cache+S.BM.W+1
sty DstBM.Cache+S.BM.H
stz DstBM.Cache+S.BM.H+1
lda #S.BM.F.BBP1
sta DstBM.Cache+S.BM.F
jsr OSD.BM.Create
bcs OSD.DRAWTEXT.RTS
sta OSD.DRAWTEXT.END+1 save hBM, ZPDstBMPtr=BMData
>LDYA CBX.Cache+S.CB.TxtPtr
>STYA TXTPTR
@ -234,11 +240,6 @@ OSD.DRAWTEXT.LOOP
jsr OSD.TXTPTR.GetNext
beq OSD.DRAWTEXT.END
inc TXTPTR
bne .31
inc TXTPTR+1
.31
jsr OSD.FON.GetChar
lda (ZPCharPtr) Char PixW
sta GBYTE
@ -493,7 +494,7 @@ OSD.BM.Create lda DstBM.Cache+S.BM.W
ror DstBM.Cache+S.BM.RowBytes
>LDYA DstBM.Cache+S.BM.H
ldx DstBM.Cache+S.BM.RowBytes
jsr YAMultX Compute BM total bytes
jsr OSD.YAMultX Compute BM total bytes
pha
eor #$ff
sta ZPTmpPtr+1
@ -573,7 +574,7 @@ OSD.YAMultX stx GBYTE
CB.Update sta CLRWRITEAUX
ldx CBX.Cache
ldy CB.CmdLen,x
ldy CBX.CmdLen,x
.1 lda CBX.Cache,y
sta (ZPCmdPtr),y
@ -585,6 +586,20 @@ CB.Update sta CLRWRITEAUX
clc
rts
*--------------------------------------
OSD.TXTPTR.GetNext
jmp ($a000)
*--------------------------------------
CBX.CmdLen .DA #S.CB.Y1+1 SETPIXEL
.DA #S.CB.Y1+1 GETPIXEL
.DA #S.CB.X2+1 HLINE
.DA #S.CB.Y2+1 VLINE
.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
*--------------------------------------
CBX.Cache .BS S.CB
FON.Cache .BS S.FON
SrcBM.Cache .BS S.BM

View File

@ -81,6 +81,7 @@ Dev.Detect >LDYA L.MSG.DETECT
bit DCB+S.DCB.GFX.S
bmi .3
>LDYA L.MSG.DETECT.80C
.3 >SYSCALL PutS
@ -107,6 +108,7 @@ Dev.Detect >LDYA L.MSG.DETECT
sta SETWRITEAUX
>STYA $800
sta CLRWRITEAUX
sta SETHIRES
sta SET80STORE
@ -231,31 +233,23 @@ OSD.install >LDYA L.OSD
inc ZPPtr2+1
bra .1
.3 ldy #OSD.TXTPTR.GetNext.LEN-1
.4 lda OSD.TXTPTR.GetNext,y
sta SETPAGE2
sta $2000+240,y
sta CLRPAGE2
sta $2000+240,y
dey
bpl .4
.8 sta CLRWRITEAUX
.3 sta CLRWRITEAUX
rts
*--------------------------------------
ClrScr ldx #0
txa lda #0
.1 ldy BASEL,x
sty ZPPtr1
ldy BASEH,x
sty ZPPtr1+1
sta SETPAGE2
jsr .2
sta CLRPAGE2
jsr .2
inx
cpx #192
bne .1
@ -263,9 +257,11 @@ ClrScr ldx #0
rts
.2 ldy #39
.3 sta (ZPPtr1),y
dey
bpl .3
rts
*--------------------------------------
CS.END
@ -475,7 +471,6 @@ WRITE >STYA ZPIOCTL NON STANDARD
bpl .3
sta SETREADAUX
jsr X.OSD
sta CLRREADAUX
sta CLRWRITEAUX
@ -636,15 +631,6 @@ DRV.END
OSD .PH $1000
.INB usr/src/drv/dhgr.drv.s.osd
.EP
*--------------------------------------
.PH $2000+240
OSD.TXTPTR.GetNext
sta CLRREADAUX
lda (TXTPTR)
sta SETREADAUX
rts
OSD.TXTPTR.GetNext.LEN .EQ *-OSD.TXTPTR.GetNext
.EP
*--------------------------------------
.LIST ON
DRV.CS.SIZE .EQ DRV.CS.END-DRV.CS.START

View File

@ -14,7 +14,6 @@ NEW
.INB inc/mli.e.i
.INB inc/net.telnet.i
.INB inc/xy.mouse.i
* .INB inc/gfx.i
.INB inc/kernel.i
.INB usr/src/sys/kernel.s.def
@ -48,6 +47,9 @@ A2osX.AUX .DA #0
.DA A2osX.AUX.S
A2osX.AUX.B .PH Mem.XHiMem
.DA SHARED.TXTPTR.GetNext
.INB usr/src/sys/kernel.s.termx
.INB usr/src/sys/kernel.s.strvx
.INB usr/src/sys/kernel.s.envx