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: * A,X = Width * Y = 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.TXTPTR.GetNext 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 lda CBX.Cache+S.CB.SrcW 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 stz GWORD reset Col index in BM stz GWORD+1 reset Bit index in Col OSD.DRAWTEXT.LOOP jsr OSD.TXTPTR.GetNext 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.RTS 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 CLRWRITEAUX lda CBX.Cache lsr tax ldy CBX.CmdLen-1,x .1 lda CBX.Cache,y sta (ZPCmdPtr),y dey bpl .1 sta SETWRITEAUX 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.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 X.OSD.LEN .EQ *-X.OSD *-------------------------------------- MAN SAVE usr/src/drv/dhgr.drv.s.osd LOAD usr/src/drv/dhgr.drv.s ASM