A2osX/DRV/DHGR.DRV.S.OSD.txt

784 lines
24 KiB
Plaintext
Raw Normal View History

NEW
2019-04-10 15:51:47 +00:00
AUTO 3,1
*--------------------------------------
ZPCmdPtr .EQ ZPDRV
ZPDstBMPtr .EQ ZPDRV+2
ZPFontPtr .EQ ZPDRV+4
ZPTablePtr .EQ ZPDRV+6
ZPCharPtr .EQ ZPDRV+8
ZPSrcBMPtr .EQ ZPDRV+10
ZPTmpPtr .EQ ZPDRV+14
2019-08-06 15:58:01 +00:00
ColIndex .EQ ZPDRV+16
GBYTE .EQ ZPDRV+17
GBYTE2 .EQ ZPDRV+18
GWORD .EQ ZPDRV+20
2020-07-02 14:14:30 +00:00
*--------------------------------------
TXTPTR .EQ $B8
*--------------------------------------
2019-07-30 15:35:42 +00:00
* Y,A = Ptr to S.CB in MAIN
*--------------------------------------
2020-07-02 06:11:15 +00:00
X.OSD ldy CBX.Cache+S.CB.DstPtr
lda CBX.Cache+S.CB.DstPtr+1
bne .1 Ptr To Aux
2019-07-30 15:35:42 +00:00
tya hBM in Aux
2020-07-02 06:11:15 +00:00
beq .4 no Src BM
2020-07-01 15:40:32 +00:00
>SYSCALL2 GetMemPtr
2020-07-02 06:11:15 +00:00
.1 >STYA ZPDstBMPtr
ldx #0
2020-07-02 06:11:15 +00:00
.2 lda (ZPDstBMPtr)
sta DstBM.Cache,x
inc ZPDstBMPtr
2020-07-02 06:11:15 +00:00
bne .3
inc ZPDstBMPtr+1
2019-07-30 15:35:42 +00:00
2020-07-02 06:11:15 +00:00
.3 inx
cpx #S.BM
2020-07-02 06:11:15 +00:00
bne .2
2020-07-01 15:40:32 +00:00
2020-07-02 06:11:15 +00:00
.4 lda CBX.Cache+S.CB.CMD
asl
tax
2020-07-01 15:40:32 +00:00
jmp (.8,x)
*--------------------------------------
.8 .DA OSD.SETPIXEL
.DA OSD.GETPIXEL
.DA OSD.HLINE
.DA OSD.VLINE
.DA OSD.FILLRECT
.DA OSD.BITBLT
.DA OSD.GETRECTBUFSIZE
.DA $ffff DRAWLINE
2020-07-01 15:40:32 +00:00
.DA OSD.DRAWTEXT
.DA OSD.GETTEXTSIZE
*--------------------------------------
2020-07-02 06:11:15 +00:00
OSD.SETPIXEL >LDYA CBX.Cache+S.CB.Y1
ldx DstBM.Cache+S.BM.RowBytes
2020-07-02 14:14:30 +00:00
jsr OSD.YAMultX
pha
tya
clc
adc ZPDstBMPtr
sta ZPDstBMPtr
pla
adc ZPDstBMPtr+1
sta ZPDstBMPtr+1
2020-07-02 06:11:15 +00:00
lda CBX.Cache+S.CB.M
bit #S.CB.M.C16
2020-07-01 15:40:32 +00:00
bne OSD.SETPIXEL.C16
2020-07-02 06:11:15 +00:00
OSD.SETPIXEL.M lda CBX.Cache+S.CB.X1
pha
and #$7 MOD 7
tax
pla
2020-07-02 06:11:15 +00:00
lsr CBX.Cache+S.CB.X1
ror
2020-07-02 06:11:15 +00:00
lsr CBX.Cache+S.CB.X1
ror
2020-07-02 06:11:15 +00:00
lsr CBX.Cache+S.CB.X1
ror
clc
adc ZPDstBMPtr
sta ZPDstBMPtr
2020-07-02 06:11:15 +00:00
lda CBX.Cache+S.CB.X1
adc ZPDstBMPtr+1
sta ZPDstBMPtr+1
2020-07-02 06:11:15 +00:00
lda CBX.Cache+S.CB.OP
* cmp #S.CB.OP.XOR
beq .2
2020-07-02 06:11:15 +00:00
lda CBX.Cache+S.CB.COLOR
bne .1
lda (ZPDstBMPtr)
2020-07-01 15:40:32 +00:00
and Mono8.NMasks,x
sta (ZPDstBMPtr)
rts
.1 lda (ZPDstBMPtr)
2020-07-01 15:40:32 +00:00
ora Mono8.Masks,x
sta (ZPDstBMPtr)
rts
.2 lda (ZPDstBMPtr)
2020-07-01 15:40:32 +00:00
eor Mono8.Masks,x
sta (ZPDstBMPtr)
2019-10-03 06:25:27 +00:00
rts
2020-07-01 15:40:32 +00:00
OSD.SETPIXEL.C16
*--------------------------------------
2020-07-01 15:40:32 +00:00
OSD.GETPIXEL
*--------------------------------------
2020-07-01 15:40:32 +00:00
OSD.HLINE
*--------------------------------------
2020-07-01 15:40:32 +00:00
OSD.VLINE
*--------------------------------------
2020-07-01 15:40:32 +00:00
OSD.FILLRECT
*--------------------------------------
* BitBlt
* S.CB.X1 : SrcX1 in bitmap/mask
* S.CB.Y1 : SrcY1
* S.CB.SrcW : width
* S.CB.SrcH : height
* S.CB.DstX : Destination X (screen)
* S.CB.DstY : Destination Y (screen)
* S.CB.SrcPtr : pointer to S.BM
2020-07-01 15:40:32 +00:00
* S.CB.SrcPtr+1 = 0, hMem in S.CB.SrcPtr
* S.CB.DstPtr : pointer to Save Buffer
*--------------------------------------
2020-07-02 06:11:15 +00:00
OSD.BITBLT >LDYA CBX.Cache+S.CB.SrcPtr
2020-07-01 15:40:32 +00:00
bne OSD.BITBLT.1
tya
2020-07-01 15:40:32 +00:00
>SYSCALL2 GetMemPtr
OSD.BITBLT.1 >STYA ZPSrcBMPtr
*--------------------------------------
* GETRECTBUFSIZE
* In:
* S.CB.SrcW
* S.CB.SrcH
* Out:
* S.CB.DstPtr : Buffer Size (in bytes)
*--------------------------------------
2020-07-01 15:40:32 +00:00
OSD.GETRECTBUFSIZE
2020-07-01 15:40:32 +00:00
OSD.GETRECTBUFSIZE.RTS
rts
*--------------------------------------
* DRAWTEXT
* In:
* S.CB.S.CB.FONT : hFont
* S.CB.SrcPtr : Ptr to Text
* Out:
* A=hBM
*--------------------------------------
2020-07-01 15:40:32 +00:00
OSD.DRAWTEXT sec
.HS 90 BCC
*--------------------------------------
* GETTEXTSIZE
* In:
* S.CB.S.CB.FONT : hFont
* S.CB.SrcPtr : Ptr to Text
* Out:
* A,X = Width
* Y = Height
*--------------------------------------
2020-07-01 15:40:32 +00:00
OSD.GETTEXTSIZE clc
php
2020-08-25 14:54:30 +00:00
lda CBX.Cache+S.CB.hFont
2020-07-01 15:40:32 +00:00
>SYSCALL2 GetMemPtr
>STYA ZPFontPtr
2020-07-02 14:14:30 +00:00
ldy #S.FON-1
2020-07-02 14:14:30 +00:00
.1 lda (ZPFontPtr),y
sta FON.Cache,y
dey
bpl .1
2020-07-02 14:14:30 +00:00
lda ZPFontPtr
clc
adc #S.FON
sta ZPTablePtr
lda ZPFontPtr+1
adc /S.FON
sta ZPTablePtr+1
2020-07-02 14:14:30 +00:00
2020-07-02 06:11:15 +00:00
.2 >LDYA CBX.Cache+S.CB.TxtPtr
>STYA TXTPTR
2020-07-02 06:11:15 +00:00
stz CBX.Cache+S.CB.SrcW
stz CBX.Cache+S.CB.SrcW+1
lda FON.Cache+S.FON.PixH
2020-07-02 06:11:15 +00:00
sta CBX.Cache+S.CB.SrcH
stz CBX.Cache+S.CB.SrcH+1
2020-07-02 14:14:30 +00:00
2020-07-01 15:40:32 +00:00
.3 jsr OSD.TXTPTR.GetNext
beq .4
2020-07-02 06:11:15 +00:00
2020-07-01 15:40:32 +00:00
jsr OSD.FON.GetChar
lda (ZPCharPtr) Get Char PixelW
sec
2020-07-02 06:11:15 +00:00
adc CBX.Cache+S.CB.SrcW
sta CBX.Cache+S.CB.SrcW
bcc .3
2020-07-02 06:11:15 +00:00
inc CBX.Cache+S.CB.SrcW+1
bra .3
.4 plp
2020-07-02 06:11:15 +00:00
lda CBX.Cache+S.CB.SrcW
ldx CBX.Cache+S.CB.SrcW+1
ldy CBX.Cache+S.CB.SrcH
bcc OSD.DRAWTEXT.RTS
2020-07-02 14:14:30 +00:00
2018-05-09 06:02:05 +00:00
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
2020-07-02 14:14:30 +00:00
lda #S.BM.F.BBP1
sta DstBM.Cache+S.BM.F
2020-07-02 14:14:30 +00:00
2020-07-01 15:40:32 +00:00
jsr OSD.BM.Create
2020-07-02 06:11:15 +00:00
bcs OSD.DRAWTEXT.RTS
2020-07-02 14:14:30 +00:00
2020-07-01 15:40:32 +00:00
sta OSD.DRAWTEXT.END+1 save hBM, ZPDstBMPtr=BMData
2020-07-02 06:11:15 +00:00
>LDYA CBX.Cache+S.CB.TxtPtr
>STYA TXTPTR
2020-07-01 15:40:32 +00:00
stz GWORD reset Col index in BM
stz GWORD+1 reset Bit index in Col
2020-07-01 15:40:32 +00:00
OSD.DRAWTEXT.LOOP
jsr OSD.TXTPTR.GetNext
beq OSD.DRAWTEXT.END
2020-07-02 06:11:15 +00:00
2020-07-01 15:40:32 +00:00
jsr OSD.FON.GetChar
lda (ZPCharPtr) Char PixW
sta GBYTE
2020-07-01 15:40:32 +00:00
jsr OSD.CHAR.GetNext Char ByteW
sta GBYTE2
>LDYA ZPDstBMPtr
>STYA ZPTmpPtr
lda GWORD+1 Get Bit Index for shifting
2020-07-01 15:40:32 +00:00
jsr OSD.DRAWTEXT.JMP
lda GBYTE Get Char PixW
sec +1 for char spacing
adc GWORD+1 Add Bit index in Col
pha
2019-08-06 15:58:01 +00:00
and #7 mod 8
sta GWORD+1 Update Bit index in Col
pla
lsr
lsr
2019-08-06 15:58:01 +00:00
lsr div 8
clc
adc GWORD Update Col Index in BM
sta GWORD
2020-07-01 15:40:32 +00:00
bra OSD.DRAWTEXT.LOOP
2020-07-02 06:11:15 +00:00
OSD.DRAWTEXT.RTS
2020-07-01 15:40:32 +00:00
OSD.DRAWTEXT.END
lda #$FF SELF MODIFIED
2020-07-02 06:11:15 +00:00
sta CBX.Cache+S.CB.SrcPtr Save hBM in Src CB
stz CBX.Cache+S.CB.SrcPtr+1
lda #S.CB.CMD.BITBLT
2020-07-02 06:11:15 +00:00
sta CBX.Cache+S.CB.CMD
2019-07-30 15:35:42 +00:00
jmp CB.Update
*--------------------------------------
2020-07-01 15:40:32 +00:00
OSD.DRAWTEXT.JMP
asl
tax
jmp (.1,x)
2020-07-01 15:40:32 +00:00
.1 .DA OSD.DRAWTEXT.SHIFT0
.DA OSD.DRAWTEXT.SHIFT1
.DA OSD.DRAWTEXT.SHIFT26
.DA OSD.DRAWTEXT.SHIFT26
.DA OSD.DRAWTEXT.SHIFT26
.DA OSD.DRAWTEXT.SHIFT26
.DA OSD.DRAWTEXT.SHIFT26
.DA OSD.DRAWTEXT.SHIFT7
*--------------------------------------
OSD.DRAWTEXT.SHIFT0
lda FON.Cache+S.FON.PixH
.6 pha save Height counter
ldx GBYTE2 init Width counter
ldy GWORD get col index in BM
2020-07-01 15:40:32 +00:00
.7 jsr OSD.CHAR.GetNext
2020-07-01 15:40:32 +00:00
eor (ZPTmpPtr),y
sta (ZPTmpPtr),y
iny
dex
bne .7
lda ZPTmpPtr
clc
adc DstBM.Cache+S.BM.RowBytes
sta ZPTmpPtr
bcc .10
inc ZPTmpPtr+1
.10 pla get back Height counter
dec
bne .6
2019-08-06 15:58:01 +00:00
rts
2019-10-03 06:25:27 +00:00
*--------------------------------------
2020-07-01 15:40:32 +00:00
OSD.DRAWTEXT.SHIFT1
lda FON.Cache+S.FON.PixH
.1 pha save Height counter
ldx GBYTE2 init Width counter
ldy GWORD get col index in BM
2020-07-01 15:40:32 +00:00
.2 jsr OSD.CHAR.GetNext
2018-05-09 06:02:05 +00:00
asl 8th bit in ->carry
eor (ZPTmpPtr),y
sta (ZPTmpPtr),y
iny
bcc .3
lda #1
eor (ZPTmpPtr),y
2018-05-09 06:02:05 +00:00
sta (ZPTmpPtr),y
.3 dex
bne .2
lda ZPTmpPtr Next line...
clc
adc DstBM.Cache+S.BM.RowBytes
sta ZPTmpPtr
bcc .4
inc ZPTmpPtr+1
.4 pla get back Height counter
dec
2019-08-06 15:58:01 +00:00
bne .1
rts
2019-10-03 06:25:27 +00:00
*--------------------------------------
2019-08-06 15:58:01 +00:00
* X = ShiftL x2 (Range 4..10)
2019-10-03 06:25:27 +00:00
*--------------------------------------
2020-07-01 15:40:32 +00:00
OSD.DRAWTEXT.SHIFT26
2019-08-06 15:58:01 +00:00
lda SHIFT8.L-4,x
sta .3+1
2019-08-06 15:58:01 +00:00
lda SHIFT8.L-3,x
sta .3+2
2019-08-06 15:58:01 +00:00
lda SHIFT8.L-2,x
sta .4+1
2019-08-06 15:58:01 +00:00
lda SHIFT8.L-1,x
sta .4+2
2019-08-06 15:58:01 +00:00
ldx GWORD+1 ShiftL Index
lda FON.Cache+S.FON.PixH
.1 pha save Height counter
lda GWORD
sta ColIndex
lda GBYTE2
.2 pha save Width counter
2020-07-01 15:40:32 +00:00
jsr OSD.CHAR.GetNext
2018-05-09 06:02:05 +00:00
pha
and First.Masks,x x = 2->6, for X=3 : A=000xxxxx
tay Range 0..127
.3 lda $FFFF,y SELF MODIFIED ShiftL3 A=xxxxx000
ldy ColIndex get col index in BM
2018-05-09 06:02:05 +00:00
eor (ZPTmpPtr),y
sta (ZPTmpPtr),y
inc ColIndex
2018-05-09 06:02:05 +00:00
pla
and Last.Masks,x x = 2->6, for X=3 : A=xxx00000
lsr Range 0..127 !! A=0xxx0000
2019-08-06 15:58:01 +00:00
tay but SHIFTL(X+1) A=00000xxx
.4 lda $FFFF,y SELF MODIFIED
ldy ColIndex get col index in BM
eor (ZPTmpPtr),y
sta (ZPTmpPtr),y
pla get back Witdh counter
dec
bne .2
lda ZPTmpPtr
clc
adc DstBM.Cache+S.BM.RowBytes
sta ZPTmpPtr
bcc .5
inc ZPTmpPtr+1
.5 pla get back Height counter
dec
bne .1
rts
*--------------------------------------
2020-07-01 15:40:32 +00:00
OSD.DRAWTEXT.SHIFT7
lda FON.Cache+S.FON.PixH
.1 pha save Height counter
ldx GBYTE2 init Width counter
ldy GWORD get col index in BM
2020-07-01 15:40:32 +00:00
.2 jsr OSD.CHAR.GetNext
lsr 1st bit in carry, for COL 1
bcc .3
pha Other 7 bits for COL 2
lda #$80
2018-05-09 06:02:05 +00:00
eor (ZPTmpPtr),y
sta (ZPTmpPtr),y
pla get back bit 1->8 already shifted Left 7 (= Shift right 1)
.3 iny
eor (ZPTmpPtr),y
sta (ZPTmpPtr),y
dex
bne .2
lda ZPTmpPtr
clc
adc DstBM.Cache+S.BM.RowBytes
sta ZPTmpPtr
bcc .4
inc ZPTmpPtr+1
.4 pla get back Height counter
dec
2019-10-03 06:25:27 +00:00
bne .1
rts
*--------------------------------------
2020-07-01 15:40:32 +00:00
OSD.CHAR.GetNext
inc ZPCharPtr
bne .8
inc ZPCharPtr+1
.8 lda (ZPCharPtr)
2019-10-03 06:25:27 +00:00
rts
*--------------------------------------
2020-07-01 15:40:32 +00:00
OSD.FON.GetChar cmp FON.Cache+S.FON.Last
bcc .1
bne .2
.1 sec
sbc FON.Cache+S.FON.First
bcs .3
.2 lda FON.Cache+S.FON.Default
.3 asl
php
clc
adc ZPTablePtr
sta ZPCharPtr
lda #0
adc ZPTablePtr+1
sta ZPCharPtr+1
plp
bcc .4
inc ZPCharPtr+1
.4 lda (ZPCharPtr)
clc
adc ZPFontPtr
pha
ldy #1
lda (ZPCharPtr),y
adc ZPFontPtr+1
sta ZPCharPtr+1
pla
sta ZPCharPtr
rts
*--------------------------------------
2020-07-01 15:40:32 +00:00
OSD.BM.Create lda DstBM.Cache+S.BM.W
ldx DstBM.Cache+S.BM.W+1
bit #7
beq .1
and #$F8
clc
adc #8
bcc .1
inx
2020-07-01 15:40:32 +00:00
.1 sta DstBM.Cache+S.BM.RowBytes
txa
lsr
ror DstBM.Cache+S.BM.RowBytes
lsr
ror DstBM.Cache+S.BM.RowBytes
lsr
ror DstBM.Cache+S.BM.RowBytes
>LDYA DstBM.Cache+S.BM.H
ldx DstBM.Cache+S.BM.RowBytes
2020-07-02 14:14:30 +00:00
jsr OSD.YAMultX Compute BM total bytes
pha
eor #$ff
sta ZPTmpPtr+1
tya
eor #$ff
sta ZPTmpPtr
tya
clc
adc #S.BM
tay
pla
adc /S.BM
2020-07-01 15:40:32 +00:00
>SYSCALL2 GetMem
bcs .9
>STYA ZPDstBMPtr
ldy #S.BM-1
.2 lda DstBM.Cache,y
sta (ZPDstBMPtr),y
dey
bpl .2
lda ZPDstBMPtr
2020-07-01 15:40:32 +00:00
* clc
adc #S.BM
sta ZPDstBMPtr
sta .4+1
lda ZPDstBMPtr+1
adc /S.BM
sta ZPDstBMPtr+1
sta .4+2
ldy #0
2019-08-06 15:58:01 +00:00
2020-07-02 06:11:15 +00:00
lda CBX.Cache+S.CB.OP
2019-08-06 15:58:01 +00:00
and #S.CB.OP.INVERSE
beq .3
lda #$ff
.3 inc ZPTmpPtr
bne .4
inc ZPTmpPtr+1
beq .8
2019-10-03 06:25:27 +00:00
.4 sta $ffff,y
iny
bne .3
inc .4+2
bra .3
.8 txa hBM
clc
2019-10-03 06:25:27 +00:00
.9 rts
*--------------------------------------
* IN:
* Y,A = num1 (16)
* X = num2 (8)
* OUT:
* Y,A = (Y,A) * X
*--------------------------------------
2020-07-01 15:40:32 +00:00
OSD.YAMultX stx GBYTE
sty GWORD
sta GWORD+1
ldy #0 Result LO
tya Result HI
bra .3
.1 pha
tya
clc
adc GWORD
tay
pla
adc GWORD+1
.2 asl GWORD
rol GWORD+1
.3 lsr GBYTE
bcs .1
bne .2
rts
*--------------------------------------
2020-07-02 06:11:15 +00:00
CB.Update sta CLRWRITEAUX
2020-07-01 15:40:32 +00:00
2020-07-02 06:11:15 +00:00
ldx CBX.Cache
2020-07-02 14:14:30 +00:00
ldy CBX.CmdLen,x
2020-07-02 06:11:15 +00:00
.1 lda CBX.Cache,y
2020-07-01 15:40:32 +00:00
sta (ZPCmdPtr),y
dey
bpl .1
2020-07-02 06:11:15 +00:00
sta SETWRITEAUX
2020-07-01 15:40:32 +00:00
2019-07-30 15:35:42 +00:00
clc
rts
*--------------------------------------
2020-07-02 14:14:30 +00:00
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
*--------------------------------------
2020-07-02 06:11:15 +00:00
CBX.Cache .BS S.CB
FON.Cache .BS S.FON
SrcBM.Cache .BS S.BM
DstBM.Cache .BS S.BM
*--------------------------------------
2020-07-01 15:40:32 +00:00
Mono8.NMasks .DA #%11111110
.DA #%11111101
.DA #%11111011
.DA #%11110111
.DA #%11101111
.DA #%11011111
.DA #%10111111
.DA #%01111111
*--------------------------------------
2020-07-01 15:40:32 +00:00
Mono8.Masks .DA #%00000001
.DA #%00000010
.DA #%00000100
.DA #%00001000
.DA #%00010000
.DA #%00100000
.DA #%01000000
.DA #%10000000
*--------------------------------------
First.Masks .DA #%11111111 Useless
.DA #%01111111
.DA #%00111111
.DA #%00011111
.DA #%00001111
.DA #%00000111
.DA #%00000011
.DA #%00000001
*--------------------------------------
Last.Masks .DA #%00000000 Useless
.DA #%10000000
.DA #%11000000
.DA #%11100000
.DA #%11110000
.DA #%11111000
.DA #%11111100
.DA #%11111110
*--------------------------------------
2019-08-06 15:58:01 +00:00
SHIFT8.L .DA SHIFT8.L2
.DA SHIFT8.L3
.DA SHIFT8.L4
.DA SHIFT8.L5
.DA SHIFT8.L6
.DA SHIFT8.L7
*--------------------------------------
*SHIFT8.LL .DA #SHIFT8.L1
* .DA #SHIFT8.L2
* .DA #SHIFT8.L3
* .DA #SHIFT8.L4
* .DA #SHIFT8.L5
* .DA #SHIFT8.L6
* .DA #SHIFT8.L7
*SHIFT8.LH .DA /SHIFT8.L1
* .DA /SHIFT8.L2
* .DA /SHIFT8.L3
* .DA /SHIFT8.L4
* .DA /SHIFT8.L5
* .DA /SHIFT8.L6
* .DA /SHIFT8.L7
*--------------------------------------
*SHIFT8.L1 .DA #%00000000,#%00000010,#%00000100,#%00000110,#%00001000,#%00001010,#%00001100,#%00001110
* .DA #%00010000,#%00010010,#%00010100,#%00010110,#%00011000,#%00011010,#%00011100,#%00011110
* .DA #%00100000,#%00100010,#%00100100,#%00100110,#%00101000,#%00101010,#%00101100,#%00101110
* .DA #%00110000,#%00110010,#%00110100,#%00110110,#%00111000,#%00111010,#%00111100,#%00111110
* .DA #%01000000,#%01000010,#%01000100,#%01000110,#%01001000,#%01001010,#%01001100,#%01001110
* .DA #%01010000,#%01010010,#%01010100,#%01010110,#%01011000,#%01011010,#%01011100,#%01011110
* .DA #%01100000,#%01100010,#%01100100,#%01100110,#%01101000,#%01101010,#%01101100,#%01101110
* .DA #%01110000,#%01110010,#%01110100,#%01110110,#%01111000,#%01111010,#%01111100,#%01111110
* .DA #%10000000,#%10000010,#%10000100,#%10000110,#%10001000,#%10001010,#%10001100,#%10001110
* .DA #%10010000,#%10010010,#%10010100,#%10010110,#%10011000,#%10011010,#%10011100,#%10011110
* .DA #%10100000,#%10100010,#%10100100,#%10100110,#%10101000,#%10101010,#%10101100,#%10101110
* .DA #%10110000,#%10110010,#%10110100,#%10110110,#%10111000,#%10111010,#%10111100,#%10111110
* .DA #%11000000,#%11000010,#%11000100,#%11000110,#%11001000,#%11001010,#%11001100,#%11001110
* .DA #%11010000,#%11010010,#%11010100,#%11010110,#%11011000,#%11011010,#%11011100,#%11011110
* .DA #%11100000,#%11100010,#%11100100,#%11100110,#%11101000,#%11101010,#%11101100,#%11101110
* .DA #%11110000,#%11110010,#%11110100,#%11110110,#%11111000,#%11111010,#%11111100,#%11111110
SHIFT8.L2 .DA #%00000000,#%00000100,#%00001000,#%00001100,#%00010000,#%00010100,#%00011000,#%00011100
.DA #%00100000,#%00100100,#%00101000,#%00101100,#%00110000,#%00110100,#%00111000,#%00111100
.DA #%01000000,#%01000100,#%01001000,#%01001100,#%01010000,#%01010100,#%01011000,#%01011100
.DA #%01100000,#%01100100,#%01101000,#%01101100,#%01110000,#%01110100,#%01111000,#%01111100
.DA #%10000000,#%10000100,#%10001000,#%10001100,#%10010000,#%10010100,#%10011000,#%10011100
.DA #%10100000,#%10100100,#%10101000,#%10101100,#%10110000,#%10110100,#%10111000,#%10111100
.DA #%11000000,#%11000100,#%11001000,#%11001100,#%11010000,#%11010100,#%11011000,#%11011100
.DA #%11100000,#%11100100,#%11101000,#%11101100,#%11110000,#%11110100,#%11111000,#%11111100
.DA #%00000001,#%00000101,#%00001001,#%00001101,#%00010001,#%00010101,#%00011001,#%00011101
.DA #%00100001,#%00100101,#%00101001,#%00101101,#%00110001,#%00110101,#%00111001,#%00111101
.DA #%01000001,#%01000101,#%01001001,#%01001101,#%01010001,#%01010101,#%01011001,#%01011101
.DA #%01100001,#%01100101,#%01101001,#%01101101,#%01110001,#%01110101,#%01111001,#%01111101
.DA #%10000001,#%10000101,#%10001001,#%10001101,#%10010001,#%10010101,#%10011001,#%10011101
.DA #%10100001,#%10100101,#%10101001,#%10101101,#%10110001,#%10110101,#%10111001,#%10111101
.DA #%11000001,#%11000101,#%11001001,#%11001101,#%11010001,#%11010101,#%11011001,#%11011101
.DA #%11100001,#%11100101,#%11101001,#%11101101,#%11110001,#%11110101,#%11111001,#%11111101
SHIFT8.L3 .DA #%00000000,#%00001000,#%00010000,#%00011000,#%00100000,#%00101000,#%00110000,#%00111000
.DA #%01000000,#%01001000,#%01010000,#%01011000,#%01100000,#%01101000,#%01110000,#%01111000
.DA #%10000000,#%10001000,#%10010000,#%10011000,#%10100000,#%10101000,#%10110000,#%10111000
.DA #%11000000,#%11001000,#%11010000,#%11011000,#%11100000,#%11101000,#%11110000,#%11111000
.DA #%00000001,#%00001001,#%00010001,#%00011001,#%00100001,#%00101001,#%00110001,#%00111001
.DA #%01000001,#%01001001,#%01010001,#%01011001,#%01100001,#%01101001,#%01110001,#%01111001
.DA #%10000001,#%10001001,#%10010001,#%10011001,#%10100001,#%10101001,#%10110001,#%10111001
.DA #%11000001,#%11001001,#%11010001,#%11011001,#%11100001,#%11101001,#%11110001,#%11111001
.DA #%00000010,#%00001010,#%00010010,#%00011010,#%00100010,#%00101010,#%00110010,#%00111010
.DA #%01000010,#%01001010,#%01010010,#%01011010,#%01100010,#%01101010,#%01110010,#%01111010
.DA #%10000010,#%10001010,#%10010010,#%10011010,#%10100010,#%10101010,#%10110010,#%10111010
.DA #%11000010,#%11001010,#%11010010,#%11011010,#%11100010,#%11101010,#%11110010,#%11111010
.DA #%00000011,#%00001011,#%00010011,#%00011011,#%00100011,#%00101011,#%00110011,#%00111011
.DA #%01000011,#%01001011,#%01010011,#%01011011,#%01100011,#%01101011,#%01110011,#%01111011
.DA #%10000011,#%10001011,#%10010011,#%10011011,#%10100011,#%10101011,#%10110011,#%10111011
.DA #%11000011,#%11001011,#%11010011,#%11011011,#%11100011,#%11101011,#%11110011,#%11111011
SHIFT8.L4 .DA #%00000000,#%00010000,#%00100000,#%00110000,#%01000000,#%01010000,#%01100000,#%01110000
.DA #%10000000,#%10010000,#%10100000,#%10110000,#%11000000,#%11010000,#%11100000,#%11110000
.DA #%00000001,#%00010001,#%00100001,#%00110001,#%01000001,#%01010001,#%01100001,#%01110001
.DA #%10000001,#%10010001,#%10100001,#%10110001,#%11000001,#%11010001,#%11100001,#%11110001
.DA #%00000010,#%00010010,#%00100010,#%00110010,#%01000010,#%01010010,#%01100010,#%01110010
.DA #%10000010,#%10010010,#%10100010,#%10110010,#%11000010,#%11010010,#%11100010,#%11110010
.DA #%00000011,#%00010011,#%00100011,#%00110011,#%01000011,#%01010011,#%01100011,#%01110011
.DA #%10000011,#%10010011,#%10100011,#%10110011,#%11000011,#%11010011,#%11100011,#%11110011
.DA #%00000100,#%00010100,#%00100100,#%00110100,#%01000100,#%01010100,#%01100100,#%01110100
.DA #%10000100,#%10010100,#%10100100,#%10110100,#%11000100,#%11010100,#%11100100,#%11110100
.DA #%00000101,#%00010101,#%00100101,#%00110101,#%01000101,#%01010101,#%01100101,#%01110101
.DA #%10000101,#%10010101,#%10100101,#%10110101,#%11000101,#%11010101,#%11100101,#%11110101
.DA #%00000110,#%00010110,#%00100110,#%00110110,#%01000110,#%01010110,#%01100110,#%01110110
.DA #%10000110,#%10010110,#%10100110,#%10110110,#%11000110,#%11010110,#%11100110,#%11110110
.DA #%00000111,#%00010111,#%00100111,#%00110111,#%01000111,#%01010111,#%01100111,#%01110111
.DA #%10000111,#%10010111,#%10100111,#%10110111,#%11000111,#%11010111,#%11100111,#%11110111
SHIFT8.L5 .DA #%00000000,#%00100000,#%01000000,#%01100000,#%10000000,#%10100000,#%11000000,#%11100000
.DA #%00000001,#%00100001,#%01000001,#%01100001,#%10000001,#%10100001,#%11000001,#%11100001
.DA #%00000010,#%00100010,#%01000010,#%01100010,#%10000010,#%10100010,#%11000010,#%11100010
.DA #%00000011,#%00100011,#%01000011,#%01100011,#%10000011,#%10100011,#%11000011,#%11100011
.DA #%00000100,#%00100100,#%01000100,#%01100100,#%10000100,#%10100100,#%11000100,#%11100100
.DA #%00000101,#%00100101,#%01000101,#%01100101,#%10000101,#%10100101,#%11000101,#%11100101
.DA #%00000110,#%00100110,#%01000110,#%01100110,#%10000110,#%10100110,#%11000110,#%11100110
.DA #%00000111,#%00100111,#%01000111,#%01100111,#%10000111,#%10100111,#%11000111,#%11100111
.DA #%00001000,#%00101000,#%01001000,#%01101000,#%10001000,#%10101000,#%11001000,#%11101000
.DA #%00001001,#%00101001,#%01001001,#%01101001,#%10001001,#%10101001,#%11001001,#%11101001
.DA #%00001010,#%00101010,#%01001010,#%01101010,#%10001010,#%10101010,#%11001010,#%11101010
.DA #%00001011,#%00101011,#%01001011,#%01101011,#%10001011,#%10101011,#%11001011,#%11101011
.DA #%00001100,#%00101100,#%01001100,#%01101100,#%10001100,#%10101100,#%11001100,#%11101100
.DA #%00001101,#%00101101,#%01001101,#%01101101,#%10001101,#%10101101,#%11001101,#%11101101
.DA #%00001110,#%00101110,#%01001110,#%01101110,#%10001110,#%10101110,#%11001110,#%11101110
.DA #%00001111,#%00101111,#%01001111,#%01101111,#%10001111,#%10101111,#%11001111,#%11101111
SHIFT8.L6 .DA #%00000000,#%01000000,#%10000000,#%11000000,#%00000001,#%01000001,#%10000001,#%11000001
.DA #%00000010,#%01000010,#%10000010,#%11000010,#%00000011,#%01000011,#%10000011,#%11000011
.DA #%00000100,#%01000100,#%10000100,#%11000100,#%00000101,#%01000101,#%10000101,#%11000101
.DA #%00000110,#%01000110,#%10000110,#%11000110,#%00000111,#%01000111,#%10000111,#%11000111
.DA #%00001000,#%01001000,#%10001000,#%11001000,#%00001001,#%01001001,#%10001001,#%11001001
.DA #%00001010,#%01001010,#%10001010,#%11001010,#%00001011,#%01001011,#%10001011,#%11001011
.DA #%00001100,#%01001100,#%10001100,#%11001100,#%00001101,#%01001101,#%10001101,#%11001101
.DA #%00001110,#%01001110,#%10001110,#%11001110,#%00001111,#%01001111,#%10001111,#%11001111
.DA #%00010000,#%01010000,#%10010000,#%11010000,#%00010001,#%01010001,#%10010001,#%11010001
.DA #%00010010,#%01010010,#%10010010,#%11010010,#%00010011,#%01010011,#%10010011,#%11010011
.DA #%00010100,#%01010100,#%10010100,#%11010100,#%00010101,#%01010101,#%10010101,#%11010101
.DA #%00010110,#%01010110,#%10010110,#%11010110,#%00010111,#%01010111,#%10010111,#%11010111
.DA #%00011000,#%01011000,#%10011000,#%11011000,#%00011001,#%01011001,#%10011001,#%11011001
.DA #%00011010,#%01011010,#%10011010,#%11011010,#%00011011,#%01011011,#%10011011,#%11011011
.DA #%00011100,#%01011100,#%10011100,#%11011100,#%00011101,#%01011101,#%10011101,#%11011101
.DA #%00011110,#%01011110,#%10011110,#%11011110,#%00011111,#%01011111,#%10011111,#%11011111
SHIFT8.L7 .DA #%00000000,#%10000000,#%00000001,#%10000001,#%00000010,#%10000010,#%00000011,#%10000011
.DA #%00000100,#%10000100,#%00000101,#%10000101,#%00000110,#%10000110,#%00000111,#%10000111
.DA #%00001000,#%10001000,#%00001001,#%10001001,#%00001010,#%10001010,#%00001011,#%10001011
.DA #%00001100,#%10001100,#%00001101,#%10001101,#%00001110,#%10001110,#%00001111,#%10001111
.DA #%00010000,#%10010000,#%00010001,#%10010001,#%00010010,#%10010010,#%00010011,#%10010011
.DA #%00010100,#%10010100,#%00010101,#%10010101,#%00010110,#%10010110,#%00010111,#%10010111
.DA #%00011000,#%10011000,#%00011001,#%10011001,#%00011010,#%10011010,#%00011011,#%10011011
.DA #%00011100,#%10011100,#%00011101,#%10011101,#%00011110,#%10011110,#%00011111,#%10011111
.DA #%00100000,#%10100000,#%00100001,#%10100001,#%00100010,#%10100010,#%00100011,#%10100011
.DA #%00100100,#%10100100,#%00100101,#%10100101,#%00100110,#%10100110,#%00100111,#%10100111
.DA #%00101000,#%10101000,#%00101001,#%10101001,#%00101010,#%10101010,#%00101011,#%10101011
.DA #%00101100,#%10101100,#%00101101,#%10101101,#%00101110,#%10101110,#%00101111,#%10101111
.DA #%00110000,#%10110000,#%00110001,#%10110001,#%00110010,#%10110010,#%00110011,#%10110011
.DA #%00110100,#%10110100,#%00110101,#%10110101,#%00110110,#%10110110,#%00110111,#%10110111
.DA #%00111000,#%10111000,#%00111001,#%10111001,#%00111010,#%10111010,#%00111011,#%10111011
.DA #%00111100,#%10111100,#%00111101,#%10111101,#%00111110,#%10111110,#%00111111,#%10111111
2020-07-01 15:40:32 +00:00
X.OSD.LEN .EQ *-X.OSD
*--------------------------------------
MAN
2020-07-01 15:40:32 +00:00
SAVE usr/src/drv/dhgr.drv.s.osd
LOAD usr/src/drv/dhgr.drv.s
ASM