NEW PREFIX /A2OSX.BUILD AUTO 4,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 *-------------------------------------- * YA =Ptr to S.CB in MAIN * X = DstBM hMem *-------------------------------------- X.GUIOSD >STYA ZPCmdPtr >STYA A1L Src Start Address (MAIN) pha tya clc adc #S.CB-1 sta A2L Src End Address (MAIN) pla adc /S.CB-1 sta A2L+1 >LDYAI CB.Cache >STYA A4L Dst Address (AUX) sec Main To Aux jsr AuxMove txa beq .3 jsr GO.GetMemPtr.A >STYA ZPDstBMPtr ldx #0 .1 lda (ZPDstBMPtr) sta DstBM.Cache,x inc ZPDstBMPtr bne .2 inc ZPDstBMPtr+1 .2 inx cpx #S.BM bne .1 .3 ldx CB.Cache+S.CB.CMD jmp (J.Cmds,x) *-------------------------------------- J.Cmds .DA SETPIXEL .DA GETPIXEL .DA HLINE .DA VLINE .DA FILLRECT .DA BITBLT .DA GETRECTBUFSIZE .DA $ffff DRAWLINE .DA DRAWTEXT *-------------------------------------- SETPIXEL >LDYA CB.Cache+S.CB.Y1 ldx DstBM.Cache+S.BM.RowBytes jsr YAMultX pha tya clc adc ZPDstBMPtr sta ZPDstBMPtr pla adc ZPDstBMPtr+1 sta ZPDstBMPtr+1 lda CB.Cache+S.CB.M bit #S.CB.M.C16 bne SETPIXEL.C16 SETPIXEL.MONO lda CB.Cache+S.CB.X1 pha and #$7 MOD 7 tax pla lsr CB.Cache+S.CB.X1 ror lsr CB.Cache+S.CB.X1 ror lsr CB.Cache+S.CB.X1 ror clc adc ZPDstBMPtr sta ZPDstBMPtr lda CB.Cache+S.CB.X1 adc ZPDstBMPtr+1 sta ZPDstBMPtr+1 lda CB.Cache+S.CB.OP * cmp #S.CB.OP.XOR beq .2 lda CB.Cache+S.CB.COLOR bne .1 lda (ZPDstBMPtr) and Mono.NMasks,x sta (ZPDstBMPtr) rts .1 lda (ZPDstBMPtr) ora Mono.Masks,x sta (ZPDstBMPtr) rts .2 lda (ZPDstBMPtr) eor Mono.Masks,x sta (ZPDstBMPtr) rts SETPIXEL.C16 *-------------------------------------- GETPIXEL *-------------------------------------- HLINE *-------------------------------------- VLINE *-------------------------------------- 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 *-------------------------------------- BITBLT >LDYA CB.CACHE+S.CB.SrcPtr bne BITBLT.1 tya jsr GO.GetMemPtr.A BITBLT.1 >STYA ZPSrcBMPtr *-------------------------------------- * In: * S.CB.SrcW * S.CB.SrcH * Out: * S.CB.DstPtr : Buffer Size (in bytes) *-------------------------------------- GETRECTBUFSIZE GETRECTBUFSIZE.RTS rts *-------------------------------------- * In: * S.CB.S.CB.FONT : hFont * S.CB.SrcPtr : Ptr to Text * S.CB.DstPtr : Buffer Size (in bytes) * Out: * A=hBM *-------------------------------------- DRAWTEXT lda CB.Cache+S.CB.hFONT jsr GO.GetMemPtr.A >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 CB.Cache+S.CB.TxtPtr >STYA TXTPTR lda #S.BM.F.BBP1 sta DstBM.Cache+S.BM.F stz DstBM.Cache+S.BM.W stz DstBM.Cache+S.BM.W+1 lda FON.Cache+S.FON.PixH sta DstBM.Cache+S.BM.H stz DstBM.Cache+S.BM.H+1 sta CB.Cache+S.CB.SrcH stz CB.Cache+S.CB.SrcH+1 .3 jsr TXTPTR.GetNext beq .4 jsr FON.GetChar lda (ZPCharPtr) Get Char PixelW sec adc DstBM.Cache+S.BM.W sta DstBM.Cache+S.BM.W bcc .3 inc DstBM.Cache+S.BM.W+1 bra .3 .4 >LDYA DstBM.Cache+S.BM.W >STYA CB.Cache+S.CB.SrcW jsr BM.Create bcs GETRECTBUFSIZE.RTS sta DRAWTEXT.END+1 save hBM, ZPDstBMPtr=BMData >LDYA CB.Cache+S.CB.TxtPtr >STYA TXTPTR stz GWORD reset Col index in BM stz GWORD+1 reset Bit index in Col DRAWTEXT.LOOP jsr TXTPTR.GetNext beq DRAWTEXT.END jsr FON.GetChar lda (ZPCharPtr) Char PixW sta GBYTE jsr CHAR.GetNext Char ByteW sta GBYTE2 >LDYA ZPDstBMPtr >STYA ZPTmpPtr lda GWORD+1 Get Bit Index for shifting jsr DRAWTEXT.JMP lda GBYTE Get Char PixW sec +1 for char spacing adc GWORD+1 Add Bit index in Col pha and #7 mod 7 sta GWORD+1 Update Bit index in Col pla lsr lsr lsr clc adc GWORD Update Col Index in BM sta GWORD bra DRAWTEXT.LOOP DRAWTEXT.END lda #$FF SELF MODIFIED sta CB.Cache+S.CB.SrcPtr Save hBM in Src CB stz CB.Cache+S.CB.SrcPtr+1 lda #S.CB.CMD.BITBLT sta CB.Cache+S.CB.CMD jsr CB.Update clc rts *-------------------------------------- DRAWTEXT.JMP asl tax jmp (.1,x) .1 .DA DRAWTEXT.SHIFT0 .DA DRAWTEXT.SHIFT1 .DA DRAWTEXT.SHIFT26 .DA DRAWTEXT.SHIFT26 .DA DRAWTEXT.SHIFT26 .DA DRAWTEXT.SHIFT26 .DA DRAWTEXT.SHIFT26 .DA DRAWTEXT.SHIFT7 *-------------------------------------- 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 CHAR.GetNext 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 *-------------------------------------- DRAWTEXT.SHIFT1 lda FON.Cache+S.FON.PixH .1 pha save Height counter clc make sure reset first bit in line for initial ORA ldx GBYTE2 init Width counter ldy GWORD get col index in BM .2 jsr CHAR.GetNext rol 8th bit in ->carry, 1st bit from carry sta (ZPTmpPtr),y iny dex bne .2 lda ZPTmpPtr Next line... clc adc DstBM.Cache+S.BM.RowBytes sta ZPTmpPtr bcc .3 inc ZPTmpPtr+1 .3 pla get back Height counter dec bne .1 rts *-------------------------------------- DRAWTEXT.SHIFT26 ldx GWORD+1 Get Bit Index for shifting lda SHIFT8.LL-1,x sta .3+1 lda SHIFT8.LH-1,x sta .3+2 lda SHIFT8.LL,x sta .4+1 lda SHIFT8.LH,x sta .4+2 lda FON.Cache+S.FON.PixH .1 pha save Height counter lda GWORD sta ColIndex lda GBYTE2 .2 pha save Width counter jsr CHAR.GetNext 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 ora (ZPTmpPtr),y sta (ZPTmpPtr),y inc ColIndex lda (ZPCharPtr) 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 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 *-------------------------------------- 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 CHAR.GetNext lsr 1st bit in carry, for COL 1 pha Other 7 bits for COL 2 lda #0 ror get back 1st bit, -> for bit 8 ora (ZPTmpPtr),y sta (ZPTmpPtr),y iny pla get back bit 1->8 already shifted Left 7 (= Shift right 1) sta (ZPTmpPtr),y dex bne .2 lda ZPTmpPtr clc adc DstBM.Cache+S.BM.RowBytes sta ZPTmpPtr bcc .3 inc ZPTmpPtr+1 .3 pla get back Height counter dec bne .1 rts *-------------------------------------- CHAR.GetNext inc ZPCharPtr bne .8 inc ZPCharPtr+1 .8 lda (ZPCharPtr) rts *-------------------------------------- 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 *-------------------------------------- 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 YAMultX pha tya clc adc #S.BM tay pla adc /S.BM jsr GO.GetMem.YA 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 bcc .8 inc ZPDstBMPtr+1 .8 txa hBM clc .9 rts *-------------------------------------- * IN: * Y,A = num1 (16) * X = num2 (8) * OUT: * Y,A = (Y,A) * X *-------------------------------------- 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 >LDYA ZPCmdPtr >STYA A4L Dst Start Address (MAIN) >LDYAI CB.Cache >STYA A1L Src Start Address (AUX) >LDYAI CB.Cache+S.CB-1 >STYA A2L Src End Address (AUX) clc Aux To Main jmp AuxMove *-------------------------------------- GO.GetMem.YA ldx #SYS.GetMem.YA .HS 2C BIT ABS GO.GetMemPtr.A ldx #SYS.GetMemPtr.A jmp (K.SYSCALL.JMP,x) *-------------------------------------- CB.Cache .BS S.CB FON.Cache .BS S.FON SrcBM.Cache .BS S.BM DstBM.Cache .BS S.BM ColIndex .BS 1 GBYTE .BS 1 GBYTE2 .BS 1 GWORD .BS 2 *-------------------------------------- Mono.NMasks .DA #%11111110 .DA #%11111101 .DA #%11111011 .DA #%11110111 .DA #%11101111 .DA #%11011111 .DA #%10111111 .DA #%01111111 *-------------------------------------- Mono.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.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 *-------------------------------------- MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.OSD LOAD /A2OSX.SRC/SYS/KERNEL.S ASM