mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-30 15:57:29 +00:00
Kernel 0.94
This commit is contained in:
parent
8dd8dda5bd
commit
60a70cc84b
Binary file not shown.
@ -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
|
||||
|
||||
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user