mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-24 14:31:05 +00:00
6adfe9fdda
- NEW A2OSX.BUILD media, old one corrupted by ProDOS.FX bug - most of BIN/SBIN/LIBS reASMed with .95 API
801 lines
24 KiB
Plaintext
801 lines
24 KiB
Plaintext
NEW
|
||
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
|
||
|
||
ColIndex .EQ ZPDRV+16
|
||
GBYTE .EQ ZPDRV+17
|
||
GBYTE2 .EQ ZPDRV+18
|
||
|
||
GWORD .EQ ZPDRV+20
|
||
*--------------------------------------
|
||
TXTPTR .EQ $B8
|
||
*--------------------------------------
|
||
* Y,A = Ptr to S.CB in MAIN
|
||
*--------------------------------------
|
||
X.OSD ldy CBX.Cache+S.CB.DstPtr
|
||
lda CBX.Cache+S.CB.DstPtr+1
|
||
bne .1 Ptr To Aux
|
||
|
||
tya hBM in Aux
|
||
beq .4 no Src BM
|
||
|
||
>SYSCALL2 GetMemPtr
|
||
|
||
.1 >STYA ZPDstBMPtr
|
||
|
||
ldx #0
|
||
|
||
.2 lda (ZPDstBMPtr)
|
||
sta DstBM.Cache,x
|
||
inc ZPDstBMPtr
|
||
bne .3
|
||
inc ZPDstBMPtr+1
|
||
|
||
.3 inx
|
||
cpx #S.BM
|
||
bne .2
|
||
|
||
.4 ldx CBX.Cache+S.CB.CMD
|
||
jmp (.8-2,x)
|
||
*--------------------------------------
|
||
.8 .DA OSD.SETPIXEL
|
||
.DA OSD.GETPIXEL
|
||
.DA OSD.HLINE
|
||
.DA OSD.VLINE
|
||
.DA OSD.FILLRECT
|
||
.DA OSD.BITBLT
|
||
.DA OSD.GETRECTBUFSIZE
|
||
.DA OSD.DRAWTEXT
|
||
.DA OSD.GETTEXTSIZE
|
||
*--------------------------------------
|
||
OSD.SETPIXEL >LDYA CBX.Cache+S.CB.Y1
|
||
ldx DstBM.Cache+S.BM.RowBytes
|
||
jsr OSD.YAMultX
|
||
pha
|
||
tya
|
||
clc
|
||
adc ZPDstBMPtr
|
||
sta ZPDstBMPtr
|
||
pla
|
||
adc ZPDstBMPtr+1
|
||
sta ZPDstBMPtr+1
|
||
lda CBX.Cache+S.CB.M
|
||
bit #S.CB.M.C16
|
||
bne OSD.SETPIXEL.C16
|
||
|
||
OSD.SETPIXEL.M lda CBX.Cache+S.CB.X1
|
||
pha
|
||
and #$7 MOD 7
|
||
tax
|
||
pla
|
||
lsr CBX.Cache+S.CB.X1
|
||
ror
|
||
lsr CBX.Cache+S.CB.X1
|
||
ror
|
||
lsr CBX.Cache+S.CB.X1
|
||
ror
|
||
clc
|
||
adc ZPDstBMPtr
|
||
sta ZPDstBMPtr
|
||
lda CBX.Cache+S.CB.X1
|
||
adc ZPDstBMPtr+1
|
||
sta ZPDstBMPtr+1
|
||
|
||
lda CBX.Cache+S.CB.OP
|
||
* cmp #S.CB.OP.XOR
|
||
beq .2
|
||
lda CBX.Cache+S.CB.COLOR
|
||
bne .1
|
||
lda (ZPDstBMPtr)
|
||
and Mono8.NMasks,x
|
||
sta (ZPDstBMPtr)
|
||
rts
|
||
|
||
.1 lda (ZPDstBMPtr)
|
||
ora Mono8.Masks,x
|
||
sta (ZPDstBMPtr)
|
||
rts
|
||
.2 lda (ZPDstBMPtr)
|
||
eor Mono8.Masks,x
|
||
sta (ZPDstBMPtr)
|
||
rts
|
||
OSD.SETPIXEL.C16
|
||
*--------------------------------------
|
||
OSD.GETPIXEL
|
||
*--------------------------------------
|
||
OSD.HLINE
|
||
*--------------------------------------
|
||
OSD.VLINE
|
||
*--------------------------------------
|
||
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
|
||
* S.CB.SrcPtr+1 = 0, hMem in S.CB.SrcPtr
|
||
* S.CB.DstPtr : pointer to Save Buffer
|
||
*--------------------------------------
|
||
OSD.BITBLT >LDYA CBX.Cache+S.CB.SrcPtr
|
||
bne OSD.BITBLT.1
|
||
tya
|
||
>SYSCALL2 GetMemPtr
|
||
OSD.BITBLT.1 >STYA ZPSrcBMPtr
|
||
|
||
|
||
*--------------------------------------
|
||
* GETRECTBUFSIZE
|
||
* In:
|
||
* S.CB.SrcW
|
||
* S.CB.SrcH
|
||
* Out:
|
||
* S.CB.DstPtr : Buffer Size (in bytes)
|
||
*--------------------------------------
|
||
OSD.GETRECTBUFSIZE
|
||
|
||
OSD.GETRECTBUFSIZE.RTS
|
||
rts
|
||
*--------------------------------------
|
||
* DRAWTEXT
|
||
* In:
|
||
* S.CB.S.CB.FONT : hFont
|
||
* S.CB.SrcPtr : Ptr to Text
|
||
* Out:
|
||
* A=hBM
|
||
*--------------------------------------
|
||
OSD.DRAWTEXT sec
|
||
.HS 90 BCC
|
||
*--------------------------------------
|
||
* GETTEXTSIZE
|
||
* In:
|
||
* S.CB.S.CB.FONT : hFont
|
||
* S.CB.SrcPtr : Ptr to Text
|
||
* Out:
|
||
* S.CB.SrcW = Width
|
||
* S.CB.SrcH = Height
|
||
*--------------------------------------
|
||
OSD.GETTEXTSIZE clc
|
||
php
|
||
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
|
||
sta ZPTablePtr
|
||
lda ZPFontPtr+1
|
||
adc /S.FON
|
||
sta ZPTablePtr+1
|
||
|
||
.2 >LDYA CBX.Cache+S.CB.TxtPtr
|
||
>STYA TXTPTR
|
||
stz CBX.Cache+S.CB.SrcW
|
||
stz CBX.Cache+S.CB.SrcW+1
|
||
|
||
lda FON.Cache+S.FON.PixH
|
||
sta CBX.Cache+S.CB.SrcH
|
||
stz CBX.Cache+S.CB.SrcH+1
|
||
|
||
.3 jsr OSD.TXTPTRgn
|
||
beq .4
|
||
|
||
jsr OSD.FON.GetChar
|
||
lda (ZPCharPtr) Get Char PixelW
|
||
sec
|
||
adc CBX.Cache+S.CB.SrcW
|
||
sta CBX.Cache+S.CB.SrcW
|
||
bcc .3
|
||
inc CBX.Cache+S.CB.SrcW+1
|
||
bra .3
|
||
|
||
.4 plp
|
||
bcs .5
|
||
|
||
jmp CB.Update
|
||
|
||
.5 lda CBX.Cache+S.CB.SrcW
|
||
ldx CBX.Cache+S.CB.SrcW+1
|
||
ldy CBX.Cache+S.CB.SrcH
|
||
|
||
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.GETRECTBUFSIZE.RTS
|
||
|
||
sta OSD.DRAWTEXT.END+1 save hBM, ZPDstBMPtr=BMData
|
||
>LDYA CBX.Cache+S.CB.TxtPtr
|
||
>STYA TXTPTR
|
||
|
||
stz GWORD reset Col index in BM
|
||
stz GWORD+1 reset Bit index in Col
|
||
|
||
OSD.DRAWTEXT.LOOP
|
||
jsr OSD.TXTPTRgn
|
||
beq OSD.DRAWTEXT.END
|
||
|
||
jsr OSD.FON.GetChar
|
||
lda (ZPCharPtr) Char PixW
|
||
sta GBYTE
|
||
|
||
jsr OSD.CHAR.GetNext Char ByteW
|
||
sta GBYTE2
|
||
>LDYA ZPDstBMPtr
|
||
>STYA ZPTmpPtr
|
||
|
||
lda GWORD+1 Get Bit Index for shifting
|
||
jsr OSD.DRAWTEXT.JMP
|
||
|
||
lda GBYTE Get Char PixW
|
||
sec +1 for char spacing
|
||
adc GWORD+1 Add Bit index in Col
|
||
pha
|
||
and #7 mod 8
|
||
sta GWORD+1 Update Bit index in Col
|
||
pla
|
||
lsr
|
||
lsr
|
||
lsr div 8
|
||
clc
|
||
adc GWORD Update Col Index in BM
|
||
sta GWORD
|
||
bra OSD.DRAWTEXT.LOOP
|
||
|
||
OSD.DRAWTEXT.END
|
||
lda #$FF SELF MODIFIED
|
||
sta CBX.Cache+S.CB.SrcPtr Save hBM in Src CB
|
||
stz CBX.Cache+S.CB.SrcPtr+1
|
||
|
||
lda #S.CB.CMD.BITBLT
|
||
sta CBX.Cache+S.CB.CMD
|
||
jmp CB.Update
|
||
*--------------------------------------
|
||
OSD.DRAWTEXT.JMP
|
||
asl
|
||
tax
|
||
jmp (.1,x)
|
||
.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
|
||
.7 jsr OSD.CHAR.GetNext
|
||
|
||
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
|
||
|
||
rts
|
||
*--------------------------------------
|
||
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
|
||
.2 jsr OSD.CHAR.GetNext
|
||
asl 8th bit in ->carry
|
||
eor (ZPTmpPtr),y
|
||
sta (ZPTmpPtr),y
|
||
iny
|
||
|
||
bcc .3
|
||
lda #1
|
||
eor (ZPTmpPtr),y
|
||
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
|
||
bne .1
|
||
rts
|
||
*--------------------------------------
|
||
* X = ShiftL x2 (Range 4..10)
|
||
*--------------------------------------
|
||
OSD.DRAWTEXT.SHIFT26
|
||
lda SHIFT8.L-4,x
|
||
sta .3+1
|
||
lda SHIFT8.L-3,x
|
||
sta .3+2
|
||
|
||
lda SHIFT8.L-2,x
|
||
sta .4+1
|
||
lda SHIFT8.L-1,x
|
||
sta .4+2
|
||
|
||
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
|
||
jsr OSD.CHAR.GetNext
|
||
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
|
||
eor (ZPTmpPtr),y
|
||
sta (ZPTmpPtr),y
|
||
inc ColIndex
|
||
|
||
pla
|
||
and Last.Masks,x x = 2->6, for X=3 : A=xxx00000
|
||
lsr Range 0..127 !! A=0xxx0000
|
||
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
|
||
*--------------------------------------
|
||
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
|
||
.2 jsr OSD.CHAR.GetNext
|
||
lsr 1st bit in carry, for COL 1
|
||
bcc .3
|
||
pha Other 7 bits for COL 2
|
||
lda #$80
|
||
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
|
||
bne .1
|
||
rts
|
||
*--------------------------------------
|
||
OSD.CHAR.GetNext
|
||
inc ZPCharPtr
|
||
bne .8
|
||
inc ZPCharPtr+1
|
||
.8 lda (ZPCharPtr)
|
||
rts
|
||
*--------------------------------------
|
||
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
|
||
*--------------------------------------
|
||
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
|
||
|
||
.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
|
||
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
|
||
>SYSCALL2 GetMem
|
||
bcs .9
|
||
|
||
>STYA ZPDstBMPtr
|
||
|
||
ldy #S.BM-1
|
||
|
||
.2 lda DstBM.Cache,y
|
||
sta (ZPDstBMPtr),y
|
||
dey
|
||
bpl .2
|
||
|
||
lda ZPDstBMPtr
|
||
* clc
|
||
adc #S.BM
|
||
sta ZPDstBMPtr
|
||
sta .4+1
|
||
lda ZPDstBMPtr+1
|
||
adc /S.BM
|
||
sta ZPDstBMPtr+1
|
||
sta .4+2
|
||
|
||
ldy #0
|
||
|
||
lda CBX.Cache+S.CB.OP
|
||
and #S.CB.OP.INVERSE
|
||
beq .3
|
||
|
||
lda #$ff
|
||
|
||
.3 inc ZPTmpPtr
|
||
bne .4
|
||
|
||
inc ZPTmpPtr+1
|
||
beq .8
|
||
|
||
.4 sta $ffff,y
|
||
iny
|
||
bne .3
|
||
|
||
inc .4+2
|
||
bra .3
|
||
|
||
.8 txa hBM
|
||
|
||
clc
|
||
.9 rts
|
||
*--------------------------------------
|
||
* IN:
|
||
* Y,A = num1 (16)
|
||
* X = num2 (8)
|
||
* OUT:
|
||
* Y,A = (Y,A) * X
|
||
*--------------------------------------
|
||
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
|
||
*--------------------------------------
|
||
CB.Update sta IO.CLRWRITEAUX
|
||
|
||
lda CBX.Cache
|
||
lsr
|
||
tax
|
||
ldy CBX.CmdLen-1,x
|
||
|
||
.1 lda CBX.Cache,y
|
||
sta (ZPCmdPtr),y
|
||
dey
|
||
bpl .1
|
||
|
||
sta IO.SETWRITEAUX
|
||
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
OSD.TXTPTRgn 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.TxtPtr+1 DRAWTEXT
|
||
.DA #S.CB.TxtPtr+1 GETTEXTSIZE
|
||
*--------------------------------------
|
||
CBX.Cache .BS S.CB
|
||
FON.Cache .BS S.FON
|
||
SrcBM.Cache .BS S.BM
|
||
DstBM.Cache .BS S.BM
|
||
*--------------------------------------
|
||
Mono8.NMasks .DA #%11111110
|
||
.DA #%11111101
|
||
.DA #%11111011
|
||
.DA #%11110111
|
||
.DA #%11101111
|
||
.DA #%11011111
|
||
.DA #%10111111
|
||
.DA #%01111111
|
||
*--------------------------------------
|
||
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
|
||
*--------------------------------------
|
||
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
|
||
*--------------------------------------
|
||
.LIST ON
|
||
X.OSD.LEN .EQ *-X.OSD
|
||
.LIST OFF
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE usr/src/drv/dhgr.drv.s.osd
|
||
LOAD usr/src/drv/dhgr.drv.s
|
||
ASM
|