mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-12 04:29:31 +00:00
Kernel 0.94
This commit is contained in:
parent
12231d6fec
commit
8dd8dda5bd
Binary file not shown.
|
@ -57,42 +57,34 @@ CS.INIT clc
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN jsr GFX.Open
|
CS.RUN jsr GFX.Open
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr LoadResources
|
jsr LoadResources
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA L.CB.RECT
|
>LDYA L.CB.RECT
|
||||||
jsr GFX.Write.YA
|
jsr GFX.Write.YA
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
>LDYA L.BM.Apple
|
>LDYA L.BM.Apple
|
||||||
>STYA CB.Apple+S.CB.SrcPtr
|
>STYA CB.Apple+S.CB.SrcPtr
|
||||||
|
|
||||||
>LDYA L.CB.PIX
|
>LDYA L.CB.PIX
|
||||||
jsr GFX.Write.YA
|
jsr GFX.Write.YA
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
>LDYA L.CB.Apple
|
>LDYA L.CB.Apple
|
||||||
jsr GFX.Write.YA
|
jsr GFX.Write.YA
|
||||||
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
lda hFontB
|
lda hFontB
|
||||||
sta CB.TEXTB+S.CB.hFont
|
sta CB.TEXTB+S.CB.hFont
|
||||||
>LDYA L.MESSAGEB
|
>LDYA L.MESSAGEB
|
||||||
>STYA CB.TEXTB+S.CB.TxtPtr
|
>STYA CB.TEXTB+S.CB.TxtPtr
|
||||||
|
|
||||||
>LDYA L.CB.TEXTB
|
>LDYA L.CB.TEXTB
|
||||||
* >SYSCALL OSD
|
jsr GFX.Write.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA L.CB.TEXTB
|
>LDYA L.CB.TEXTB
|
||||||
jsr GFX.Write.YA
|
jsr GFX.Write.YA
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
lda hFont
|
lda hFont
|
||||||
sta CB.TEXT+S.CB.hFont
|
sta CB.TEXT+S.CB.hFont
|
||||||
|
|
||||||
|
@ -100,7 +92,7 @@ CS.RUN jsr GFX.Open
|
||||||
>STYA CB.TEXT+S.CB.TxtPtr
|
>STYA CB.TEXT+S.CB.TxtPtr
|
||||||
|
|
||||||
>LDYA L.CB.TEXT
|
>LDYA L.CB.TEXT
|
||||||
* >SYSCALL OSD
|
jsr GFX.Write.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA L.CB.TEXT
|
>LDYA L.CB.TEXT
|
||||||
|
@ -218,7 +210,7 @@ CB.PIX .DA #S.CB.CMD.BITBLT
|
||||||
.BS 2 SrcPtr
|
.BS 2 SrcPtr
|
||||||
.DA 0 DSTPTR
|
.DA 0 DSTPTR
|
||||||
|
|
||||||
CB.TEXTB .DA #S.CB.CMD.DRAWTEXT
|
CB.TEXTB .DA #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
|
||||||
.DA #S.CB.OP.SET+S.CB.OP.INVERSE
|
.DA #S.CB.OP.SET+S.CB.OP.INVERSE
|
||||||
.DA #S.CB.M.MONO
|
.DA #S.CB.M.MONO
|
||||||
.BS 1 hFONT
|
.BS 1 hFONT
|
||||||
|
@ -231,7 +223,7 @@ CB.TEXTB .DA #S.CB.CMD.DRAWTEXT
|
||||||
.BS 2 TXTPTR
|
.BS 2 TXTPTR
|
||||||
.DA 0 DSTPTR
|
.DA 0 DSTPTR
|
||||||
|
|
||||||
CB.TEXT .DA #S.CB.CMD.DRAWTEXT
|
CB.TEXT .DA #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
|
||||||
.DA #S.CB.OP.SET
|
.DA #S.CB.OP.SET
|
||||||
.DA #S.CB.M.MONO
|
.DA #S.CB.M.MONO
|
||||||
.BS 1 hFONT
|
.BS 1 hFONT
|
||||||
|
@ -243,7 +235,6 @@ CB.TEXT .DA #S.CB.CMD.DRAWTEXT
|
||||||
.DA 184 DstY
|
.DA 184 DstY
|
||||||
.BS 2 TXTPTR
|
.BS 2 TXTPTR
|
||||||
.DA 0 DSTPTR
|
.DA 0 DSTPTR
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BM.Apple .DA #S.BM.F.BBP4
|
BM.Apple .DA #S.BM.F.BBP4
|
||||||
.DA #2 RowBytes
|
.DA #2 RowBytes
|
||||||
|
|
|
@ -15,8 +15,8 @@ NEW
|
||||||
* S.CB.SrcPtr+1 = 0, hMem in S.CB.SrcPtr
|
* S.CB.SrcPtr+1 = 0, hMem in S.CB.SrcPtr
|
||||||
* S.CB.DstPtr : pointer to Save Buffer
|
* S.CB.DstPtr : pointer to Save Buffer
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BITBLT ldy CB.CACHE+S.CB.SrcPtr
|
BITBLT ldy CB.Cache+S.CB.SrcPtr
|
||||||
lda CB.CACHE+S.CB.SrcPtr+1
|
lda CB.Cache+S.CB.SrcPtr+1
|
||||||
bne BITBLT.1
|
bne BITBLT.1
|
||||||
|
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
|
|
|
@ -18,27 +18,32 @@ TXTPTR .EQ ZPDRV+22
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Y,A = Ptr to S.CB in MAIN
|
* Y,A = Ptr to S.CB in MAIN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
X.OSD ldy CB.Cache+S.CB.DstPtr
|
X.OSD ldy CBX.Cache+S.CB.DstPtr
|
||||||
lda CB.Cache+S.CB.DstPtr+1
|
lda CBX.Cache+S.CB.DstPtr+1
|
||||||
bne .11 Ptr To Aux
|
bne .1 Ptr To Aux
|
||||||
|
|
||||||
tya hBM in Aux
|
tya hBM in Aux
|
||||||
beq .7 no Src BM
|
beq .4 no Src BM
|
||||||
|
|
||||||
>SYSCALL2 GetMemPtr
|
>SYSCALL2 GetMemPtr
|
||||||
|
|
||||||
.11 >STYA ZPDstBMPtr
|
.1 >STYA ZPDstBMPtr
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
.1 lda (ZPDstBMPtr)
|
|
||||||
|
.2 lda (ZPDstBMPtr)
|
||||||
sta DstBM.Cache,x
|
sta DstBM.Cache,x
|
||||||
inc ZPDstBMPtr
|
inc ZPDstBMPtr
|
||||||
bne .2
|
bne .3
|
||||||
inc ZPDstBMPtr+1
|
inc ZPDstBMPtr+1
|
||||||
|
|
||||||
.2 inx
|
.3 inx
|
||||||
cpx #S.BM
|
cpx #S.BM
|
||||||
bne .1
|
bne .2
|
||||||
|
|
||||||
.7 ldx CB.Cache+S.CB.CMD
|
.4 lda CBX.Cache+S.CB.CMD
|
||||||
|
asl
|
||||||
|
tax
|
||||||
jmp (.8,x)
|
jmp (.8,x)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.8 .DA OSD.SETPIXEL
|
.8 .DA OSD.SETPIXEL
|
||||||
|
@ -52,7 +57,7 @@ X.OSD ldy CB.Cache+S.CB.DstPtr
|
||||||
.DA OSD.DRAWTEXT
|
.DA OSD.DRAWTEXT
|
||||||
.DA OSD.GETTEXTSIZE
|
.DA OSD.GETTEXTSIZE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OSD.SETPIXEL >LDYA CB.Cache+S.CB.Y1
|
OSD.SETPIXEL >LDYA CBX.Cache+S.CB.Y1
|
||||||
ldx DstBM.Cache+S.BM.RowBytes
|
ldx DstBM.Cache+S.BM.RowBytes
|
||||||
jsr YAMultX
|
jsr YAMultX
|
||||||
pha
|
pha
|
||||||
|
@ -63,32 +68,32 @@ OSD.SETPIXEL >LDYA CB.Cache+S.CB.Y1
|
||||||
pla
|
pla
|
||||||
adc ZPDstBMPtr+1
|
adc ZPDstBMPtr+1
|
||||||
sta ZPDstBMPtr+1
|
sta ZPDstBMPtr+1
|
||||||
lda CB.Cache+S.CB.M
|
lda CBX.Cache+S.CB.M
|
||||||
bit #S.CB.M.C16
|
bit #S.CB.M.C16
|
||||||
bne OSD.SETPIXEL.C16
|
bne OSD.SETPIXEL.C16
|
||||||
|
|
||||||
OSD.SETPIXEL.M lda CB.Cache+S.CB.X1
|
OSD.SETPIXEL.M lda CBX.Cache+S.CB.X1
|
||||||
pha
|
pha
|
||||||
and #$7 MOD 7
|
and #$7 MOD 7
|
||||||
tax
|
tax
|
||||||
pla
|
pla
|
||||||
lsr CB.Cache+S.CB.X1
|
lsr CBX.Cache+S.CB.X1
|
||||||
ror
|
ror
|
||||||
lsr CB.Cache+S.CB.X1
|
lsr CBX.Cache+S.CB.X1
|
||||||
ror
|
ror
|
||||||
lsr CB.Cache+S.CB.X1
|
lsr CBX.Cache+S.CB.X1
|
||||||
ror
|
ror
|
||||||
clc
|
clc
|
||||||
adc ZPDstBMPtr
|
adc ZPDstBMPtr
|
||||||
sta ZPDstBMPtr
|
sta ZPDstBMPtr
|
||||||
lda CB.Cache+S.CB.X1
|
lda CBX.Cache+S.CB.X1
|
||||||
adc ZPDstBMPtr+1
|
adc ZPDstBMPtr+1
|
||||||
sta ZPDstBMPtr+1
|
sta ZPDstBMPtr+1
|
||||||
|
|
||||||
lda CB.Cache+S.CB.OP
|
lda CBX.Cache+S.CB.OP
|
||||||
* cmp #S.CB.OP.XOR
|
* cmp #S.CB.OP.XOR
|
||||||
beq .2
|
beq .2
|
||||||
lda CB.Cache+S.CB.COLOR
|
lda CBX.Cache+S.CB.COLOR
|
||||||
bne .1
|
bne .1
|
||||||
lda (ZPDstBMPtr)
|
lda (ZPDstBMPtr)
|
||||||
and Mono8.NMasks,x
|
and Mono8.NMasks,x
|
||||||
|
@ -126,7 +131,7 @@ OSD.FILLRECT
|
||||||
* S.CB.SrcPtr+1 = 0, hMem in S.CB.SrcPtr
|
* S.CB.SrcPtr+1 = 0, hMem in S.CB.SrcPtr
|
||||||
* S.CB.DstPtr : pointer to Save Buffer
|
* S.CB.DstPtr : pointer to Save Buffer
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OSD.BITBLT >LDYA CB.CACHE+S.CB.SrcPtr
|
OSD.BITBLT >LDYA CBX.Cache+S.CB.SrcPtr
|
||||||
bne OSD.BITBLT.1
|
bne OSD.BITBLT.1
|
||||||
tya
|
tya
|
||||||
>SYSCALL2 GetMemPtr
|
>SYSCALL2 GetMemPtr
|
||||||
|
@ -166,7 +171,7 @@ OSD.DRAWTEXT sec
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OSD.GETTEXTSIZE clc
|
OSD.GETTEXTSIZE clc
|
||||||
php
|
php
|
||||||
lda CB.Cache+S.CB.hFONT
|
lda CBX.Cache+S.CB.hFONT
|
||||||
>SYSCALL2 GetMemPtr
|
>SYSCALL2 GetMemPtr
|
||||||
>STYA ZPFontPtr
|
>STYA ZPFontPtr
|
||||||
ldy #S.FON-1
|
ldy #S.FON-1
|
||||||
|
@ -181,30 +186,35 @@ OSD.GETTEXTSIZE clc
|
||||||
lda ZPFontPtr+1
|
lda ZPFontPtr+1
|
||||||
adc /S.FON
|
adc /S.FON
|
||||||
sta ZPTablePtr+1
|
sta ZPTablePtr+1
|
||||||
.2 >LDYA CB.Cache+S.CB.TxtPtr
|
.2 >LDYA CBX.Cache+S.CB.TxtPtr
|
||||||
>STYA TXTPTR
|
>STYA TXTPTR
|
||||||
stz CB.Cache+S.CB.SrcW
|
stz CBX.Cache+S.CB.SrcW
|
||||||
stz CB.Cache+S.CB.SrcW+1
|
stz CBX.Cache+S.CB.SrcW+1
|
||||||
|
|
||||||
lda FON.Cache+S.FON.PixH
|
lda FON.Cache+S.FON.PixH
|
||||||
sta CB.Cache+S.CB.SrcH
|
sta CBX.Cache+S.CB.SrcH
|
||||||
stz CB.Cache+S.CB.SrcH+1
|
stz CBX.Cache+S.CB.SrcH+1
|
||||||
.3 jsr OSD.TXTPTR.GetNext
|
.3 jsr OSD.TXTPTR.GetNext
|
||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
|
inc TXTPTR
|
||||||
|
bne .31
|
||||||
|
inc TXTPTR+1
|
||||||
|
.31
|
||||||
jsr OSD.FON.GetChar
|
jsr OSD.FON.GetChar
|
||||||
lda (ZPCharPtr) Get Char PixelW
|
lda (ZPCharPtr) Get Char PixelW
|
||||||
sec
|
sec
|
||||||
adc CB.Cache+S.CB.SrcW
|
adc CBX.Cache+S.CB.SrcW
|
||||||
sta CB.Cache+S.CB.SrcW
|
sta CBX.Cache+S.CB.SrcW
|
||||||
bcc .3
|
bcc .3
|
||||||
inc CB.Cache+S.CB.SrcW+1
|
inc CBX.Cache+S.CB.SrcW+1
|
||||||
bra .3
|
bra .3
|
||||||
.4 plp
|
.4 plp
|
||||||
|
|
||||||
lda CB.Cache+S.CB.SrcW
|
lda CBX.Cache+S.CB.SrcW
|
||||||
ldx CB.Cache+S.CB.SrcW+1
|
ldx CBX.Cache+S.CB.SrcW+1
|
||||||
ldy CB.Cache+S.CB.SrcH
|
ldy CBX.Cache+S.CB.SrcH
|
||||||
bcc OSD.GETRECTBUFSIZE.RTS
|
bcc OSD.DRAWTEXT.RTS
|
||||||
sta DstBM.Cache+S.BM.W
|
sta DstBM.Cache+S.BM.W
|
||||||
stx DstBM.Cache+S.BM.W+1
|
stx DstBM.Cache+S.BM.W+1
|
||||||
sty DstBM.Cache+S.BM.H
|
sty DstBM.Cache+S.BM.H
|
||||||
|
@ -212,9 +222,9 @@ OSD.GETTEXTSIZE clc
|
||||||
lda #S.BM.F.BBP1
|
lda #S.BM.F.BBP1
|
||||||
sta DstBM.Cache+S.BM.F
|
sta DstBM.Cache+S.BM.F
|
||||||
jsr OSD.BM.Create
|
jsr OSD.BM.Create
|
||||||
bcs OSD.GETRECTBUFSIZE.RTS
|
bcs OSD.DRAWTEXT.RTS
|
||||||
sta OSD.DRAWTEXT.END+1 save hBM, ZPDstBMPtr=BMData
|
sta OSD.DRAWTEXT.END+1 save hBM, ZPDstBMPtr=BMData
|
||||||
>LDYA CB.Cache+S.CB.TxtPtr
|
>LDYA CBX.Cache+S.CB.TxtPtr
|
||||||
>STYA TXTPTR
|
>STYA TXTPTR
|
||||||
|
|
||||||
stz GWORD reset Col index in BM
|
stz GWORD reset Col index in BM
|
||||||
|
@ -223,6 +233,12 @@ OSD.GETTEXTSIZE clc
|
||||||
OSD.DRAWTEXT.LOOP
|
OSD.DRAWTEXT.LOOP
|
||||||
jsr OSD.TXTPTR.GetNext
|
jsr OSD.TXTPTR.GetNext
|
||||||
beq OSD.DRAWTEXT.END
|
beq OSD.DRAWTEXT.END
|
||||||
|
|
||||||
|
inc TXTPTR
|
||||||
|
bne .31
|
||||||
|
inc TXTPTR+1
|
||||||
|
.31
|
||||||
|
|
||||||
jsr OSD.FON.GetChar
|
jsr OSD.FON.GetChar
|
||||||
lda (ZPCharPtr) Char PixW
|
lda (ZPCharPtr) Char PixW
|
||||||
sta GBYTE
|
sta GBYTE
|
||||||
|
@ -249,14 +265,14 @@ OSD.DRAWTEXT.LOOP
|
||||||
adc GWORD Update Col Index in BM
|
adc GWORD Update Col Index in BM
|
||||||
sta GWORD
|
sta GWORD
|
||||||
bra OSD.DRAWTEXT.LOOP
|
bra OSD.DRAWTEXT.LOOP
|
||||||
|
OSD.DRAWTEXT.RTS
|
||||||
OSD.DRAWTEXT.END
|
OSD.DRAWTEXT.END
|
||||||
lda #$FF SELF MODIFIED
|
lda #$FF SELF MODIFIED
|
||||||
sta CB.Cache+S.CB.SrcPtr Save hBM in Src CB
|
sta CBX.Cache+S.CB.SrcPtr Save hBM in Src CB
|
||||||
stz CB.Cache+S.CB.SrcPtr+1
|
stz CBX.Cache+S.CB.SrcPtr+1
|
||||||
|
|
||||||
lda #S.CB.CMD.BITBLT
|
lda #S.CB.CMD.BITBLT
|
||||||
sta CB.Cache+S.CB.CMD
|
sta CBX.Cache+S.CB.CMD
|
||||||
jmp CB.Update
|
jmp CB.Update
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OSD.DRAWTEXT.JMP
|
OSD.DRAWTEXT.JMP
|
||||||
|
@ -509,7 +525,7 @@ OSD.BM.Create lda DstBM.Cache+S.BM.W
|
||||||
sta .4+2
|
sta .4+2
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
lda CB.Cache+S.CB.OP
|
lda CBX.Cache+S.CB.OP
|
||||||
and #S.CB.OP.INVERSE
|
and #S.CB.OP.INVERSE
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
|
@ -554,20 +570,22 @@ OSD.YAMultX stx GBYTE
|
||||||
bne .2
|
bne .2
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CB.Update ldy #S.CB-1
|
CB.Update sta CLRWRITEAUX
|
||||||
sta SETWRITEAUX
|
|
||||||
|
|
||||||
.1 lda CB.Cache,y
|
ldx CBX.Cache
|
||||||
|
ldy CB.CmdLen,x
|
||||||
|
|
||||||
|
.1 lda CBX.Cache,y
|
||||||
sta (ZPCmdPtr),y
|
sta (ZPCmdPtr),y
|
||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
sta CLRWRITEAUX
|
sta SETWRITEAUX
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*CB.Cache .BS S.CB
|
CBX.Cache .BS S.CB
|
||||||
FON.Cache .BS S.FON
|
FON.Cache .BS S.FON
|
||||||
SrcBM.Cache .BS S.BM
|
SrcBM.Cache .BS S.BM
|
||||||
DstBM.Cache .BS S.BM
|
DstBM.Cache .BS S.BM
|
||||||
|
|
|
@ -39,7 +39,7 @@ L.DRV.CS.START .DA DRV.CS.START
|
||||||
L.FD.DEV .DA FD.DEV
|
L.FD.DEV .DA FD.DEV
|
||||||
L.FD.DEV.NAME .DA FD.DEV.NAME
|
L.FD.DEV.NAME .DA FD.DEV.NAME
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
L.X.OSD .DA X.OSD
|
L.OSD .DA OSD
|
||||||
.DA 0 End Of Reloc Table
|
.DA 0 End Of Reloc Table
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Dev.Detect >LDYA L.MSG.DETECT
|
Dev.Detect >LDYA L.MSG.DETECT
|
||||||
|
@ -48,9 +48,11 @@ Dev.Detect >LDYA L.MSG.DETECT
|
||||||
and #MACHID.T
|
and #MACHID.T
|
||||||
cmp #MACHID.T.IIc
|
cmp #MACHID.T.IIc
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
* stz DCB+S.DCB.GFX.S //c : 80c Mode
|
* stz DCB+S.DCB.GFX.S //c : 80c Mode
|
||||||
>LDYA L.MSG.DETECT.IIC
|
>LDYA L.MSG.DETECT.IIC
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.1 php
|
.1 php
|
||||||
sei
|
sei
|
||||||
sta SET80STORE
|
sta SET80STORE
|
||||||
|
@ -192,17 +194,17 @@ DrvReloc lda FD.DEV+S.FD.DEV.DRVPTR
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OSD.install >LDYA L.X.OSD
|
OSD.install >LDYA L.OSD
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
>LDYAI X.OSD
|
>LDYAI X.OSD
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
|
|
||||||
lda /X.OSD.LEN
|
lda /X.OSD.LEN
|
||||||
eor #$ff
|
eor #$ff
|
||||||
pha
|
pha
|
||||||
|
|
||||||
lda /X.OSD.LEN
|
lda #X.OSD.LEN
|
||||||
eor #$ff
|
eor #$ff
|
||||||
tax
|
tax
|
||||||
|
|
||||||
|
@ -215,7 +217,7 @@ OSD.install >LDYA L.X.OSD
|
||||||
|
|
||||||
pla
|
pla
|
||||||
inc
|
inc
|
||||||
beq .8
|
beq .3
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
|
@ -225,10 +227,20 @@ OSD.install >LDYA L.X.OSD
|
||||||
iny
|
iny
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
inc ZPPtr1
|
inc ZPPtr1+1
|
||||||
inc ZPPtr2
|
inc ZPPtr2+1
|
||||||
bra .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
|
.8 sta CLRWRITEAUX
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -435,31 +447,39 @@ CLOSE lda #S.DIB.S.OPENED
|
||||||
WRITE >STYA ZPIOCTL NON STANDARD
|
WRITE >STYA ZPIOCTL NON STANDARD
|
||||||
sta SET80STORE
|
sta SET80STORE
|
||||||
lda (ZPIOCTL) Get Cmd
|
lda (ZPIOCTL) Get Cmd
|
||||||
|
bmi .2
|
||||||
.1 tax
|
|
||||||
|
tax
|
||||||
ldy CB.CmdLen,x
|
ldy CB.CmdLen,x
|
||||||
|
|
||||||
.2 lda (ZPIOCTL),y
|
asl
|
||||||
|
pha
|
||||||
|
|
||||||
|
.1 lda (ZPIOCTL),y
|
||||||
sta CB.Cache,y
|
sta CB.Cache,y
|
||||||
dey
|
dey
|
||||||
bpl .2
|
bpl .1
|
||||||
|
|
||||||
|
|
||||||
|
plx
|
||||||
|
jmp (J.Cmds,x)
|
||||||
|
|
||||||
.10 jmp (J.Cmds,x)
|
.2 sta SETWRITEAUX
|
||||||
|
|
||||||
|
and #$7f
|
||||||
|
tax
|
||||||
|
ldy CB.CmdLen,x
|
||||||
|
|
||||||
|
.3 lda (ZPIOCTL),y
|
||||||
|
sta CBX.Cache,y
|
||||||
|
dey
|
||||||
|
bpl .3
|
||||||
|
|
||||||
*--------------------------------------
|
|
||||||
OSD.TXTPTR.GetNext
|
|
||||||
sta CLRREADAUX
|
|
||||||
lda (TXTPTR)
|
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
beq OSD.TXTPTR.RTS
|
|
||||||
|
|
||||||
OSD.TXTPTR.Next inc TXTPTR
|
jsr X.OSD
|
||||||
bne OSD.TXTPTR.RTS
|
sta CLRREADAUX
|
||||||
inc TXTPTR+1
|
sta CLRWRITEAUX
|
||||||
OSD.TXTPTR.RTS rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* IN:
|
* IN:
|
||||||
* Y = LO
|
* Y = LO
|
||||||
|
@ -579,13 +599,16 @@ Shift.R.HI .DA /SHIFT.L6
|
||||||
.DA /SHIFT.L2
|
.DA /SHIFT.L2
|
||||||
.DA /SHIFT.L1
|
.DA /SHIFT.L1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
|
CB.CmdLen .DA #S.CB.Y1+1 SETPIXEL
|
||||||
.DA S.CB.Y1+1 GETPIXEL
|
.DA #S.CB.Y1+1 GETPIXEL
|
||||||
.DA S.CB.X2+1 HLINE
|
.DA #S.CB.X2+1 HLINE
|
||||||
.DA S.CB.Y2+1 VLINE
|
.DA #S.CB.Y2+1 VLINE
|
||||||
.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.SrcH+1 GETTEXTSIZE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CB.Cache .BS S.CB
|
CB.Cache .BS S.CB
|
||||||
BM.Cache .BS S.BM
|
BM.Cache .BS S.BM
|
||||||
|
@ -610,9 +633,18 @@ DCB .DA #S.DCB.T.GFX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.END
|
DRV.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.PH $1000
|
OSD .PH $1000
|
||||||
.INB usr/src/drv/dhgr.drv.s.osd
|
.INB usr/src/drv/dhgr.drv.s.osd
|
||||||
.EP
|
.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
|
.LIST ON
|
||||||
DRV.CS.SIZE .EQ DRV.CS.END-DRV.CS.START
|
DRV.CS.SIZE .EQ DRV.CS.END-DRV.CS.START
|
||||||
|
|
|
@ -41,15 +41,16 @@ S.FON .EQ 8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.CB.CMD .EQ 0
|
S.CB.CMD .EQ 0
|
||||||
S.CB.CMD.SETPIXEL .EQ 0
|
S.CB.CMD.SETPIXEL .EQ 0
|
||||||
S.CB.CMD.GETPIXEL .EQ 2
|
S.CB.CMD.GETPIXEL .EQ 1
|
||||||
S.CB.CMD.HLINE .EQ 4
|
S.CB.CMD.HLINE .EQ 2
|
||||||
S.CB.CMD.VLINE .EQ 6
|
S.CB.CMD.VLINE .EQ 3
|
||||||
S.CB.CMD.FILLRECT .EQ 8
|
S.CB.CMD.FILLRECT .EQ 4
|
||||||
S.CB.CMD.BITBLT .EQ 10
|
S.CB.CMD.BITBLT .EQ 5
|
||||||
S.CB.CMD.GETRECTBUFSIZE .EQ 12
|
S.CB.CMD.GETRECTBUFSIZE .EQ 6
|
||||||
S.CB.CMD.DRAWLINE .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.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
|
||||||
S.CB.OP.SET .EQ 2 replace screen with bitmap
|
S.CB.OP.SET .EQ 2 replace screen with bitmap
|
||||||
|
|
Loading…
Reference in New Issue
Block a user