diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 7be6bada..dc5f8b6c 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 6162ea64..d35de2c7 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/.Tools/ShiftTables.cmd b/.Tools/ShiftTables.cmd index ca245917..b3518092 100644 --- a/.Tools/ShiftTables.cmd +++ b/.Tools/ShiftTables.cmd @@ -9,34 +9,80 @@ mode con:cols=80 lines=24 cls echo Apple //e -(echo.)>SHIFT.L1.TXT +(echo.)>SHIFT.TXT + +SET S=1 + +:LOOP0 set /a B=0 -set SHIFT= .DA +set SHIFTL= +echo Creating SHIFT.L%S%... :LOOP1 call :ToBin %B% -set SHIFT=%SHIFT% #%Output:~2,6%%Output:~0,1% - +if "%S%" EQU "1" set SHIFT=#%%0%Output:~1,6%%Output:~0,1% +if "%S%" EQU "2" set SHIFT=#%%0%Output:~2,5%%Output:~0,2% +if "%S%" EQU "3" set SHIFT=#%%0%Output:~3,4%%Output:~0,3% +if "%S%" EQU "4" set SHIFT=#%%0%Output:~4,3%%Output:~0,4% +if "%S%" EQU "5" set SHIFT=#%%0%Output:~5,2%%Output:~0,5% +if "%S%" EQU "6" set SHIFT=#%%0%Output:~6,1%%Output:~0,6% +if not defined SHIFTL ( + if "%B%" EQU "0" ( + set SHIFTL=SHIFT.L%S% .DA %SHIFT% + ) ELSE ( + set SHIFTL= .DA %SHIFT% + ) +) ELSE ( + set SHIFTL=%SHIFTL%,%SHIFT% + ) set /a B+=1 -set /a MOD=B%%4 +set /a MOD=B%%8 if "%MOD%" EQU "0" ( - echo %SHIFT% - set SHIFT= .DA + (echo %SHIFTL%)>>SHIFT.TXT + set SHIFTL= ) if "%B%" NEQ "128" goto LOOP1 +set /a S+=1 +if "%S%" NEQ "7" goto LOOP0 +(echo.)>TWIST.TXT +set /a B=0 +set TWISTL= +echo Creating TWIST... +:LOOP2 +call :ToBin2 %B% + +if not defined TWISTL ( + if "%B%" EQU "0" ( + set TWISTL=TWIST .DA #%%%Output% + ) ELSE ( + set TWISTL= .DA #%%%Output% + ) +) ELSE ( + set TWISTL=%TWISTL%,#%%%Output% + ) + +set /a B+=1 +set /a MOD=B%%8 + +if "%MOD%" EQU "0" ( + (echo %TWISTL%)>>TWIST.TXT + set TWISTL= + ) + + if "%B%" NEQ "256" goto LOOP2 echo. -echo (I know, this batch is stupid ;-) +echo (I know, this other batch is also stupid ;-) echo. pause exit 0 @@ -50,14 +96,32 @@ SET InputValue=%1 :TopLoop IF !CurrentValue! LEQ !InputValue! ( -SET Output=!Output!1 -SET /A InputValue=!InputValue!-!CurrentValue! + SET Output=!Output!1 + SET /A InputValue=!InputValue!-!CurrentValue! ) ELSE ( -SET Output=!Output!0 -) + SET Output=!Output!0 + ) If !CurrentValue! EQU 1 GOTO :EOF SET /A CurrentValue=!CurrentValue!/2 Goto TopLoop +:ToBin2 + +SET Output= +SET CurrentValue=128 +SET InputValue=%1 + +:TopLoop2 +IF !CurrentValue! LEQ !InputValue! ( + SET Output=1!Output! + SET /A InputValue=!InputValue!-!CurrentValue! +) ELSE ( + SET Output=0!Output! + ) + +If !CurrentValue! EQU 1 GOTO :EOF +SET /A CurrentValue=!CurrentValue!/2 + +Goto TopLoop2 diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index b432aab5..2927a74c 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -509,13 +509,14 @@ MSG.DIREXT >CSTR "\e[32m%16s\e[0m %s %s %s\r\n" MSG.FILE >CSTR "%19s" MSG.FILEEXT >CSTR "%15s %S $%H %s %10u %s %s\r\n" *-------------------------------------- -PRODOS.FT.HEX .HS 0406FAFCFDE2FF +PRODOS.FT.HEX .HS 0406FAFCFDE2CBFF PRODOS.FT.TXT >PSTR "TXT" >PSTR "BIN" >PSTR "ASM" >PSTR "BAS" >PSTR "VAR" >PSTR "ATK" + >PSTR "PIX" >PSTR "SYS" PRODOS.FT.DFLT >PSTR "$ " MSG.NODATE >CSTR " " diff --git a/BMP2PIX.S.txt b/BMP2PIX.S.txt new file mode 100644 index 00000000..152157ff --- /dev/null +++ b/BMP2PIX.S.txt @@ -0,0 +1,381 @@ +PR#3 +PREFIX /A2OSX.BUILD +NEW +INC 1 +AUTO 6 + .LIST OFF + .OP 65C02 + .OR $2000 + .TF /A2OSX.BUILD/BMP2PIX +*-------------------------------------- + .INB /A2OSX.BUILD/INC/MACROS.I + .INB /A2OSX.BUILD/INC/A2OSX.I + .INB /A2OSX.BUILD/INC/LIBGUI.I +*-------------------------------------- +ZPPTR1 .EQ ZPBIN +ZPInputBufPtr .EQ ZPBIN+2 +ZPInputBufLen .EQ ZPBIN+4 +ZPInputDataPtr .EQ ZPBIN+6 +ZPBMPRowBytes .EQ ZPBIN+8 +ZPPIXRowBytes .EQ ZPBIN+10 +ZPBufPtr .EQ ZPBIN+12 +ZPLineCount .EQ ZPBIN+14 +*-------------------------------------- +* File Header (16 Bytes) +*-------------------------------------- +CS.START cld + jmp (.1,x) + .DA #$61 6502,Level 1 (65c02) + .DA #1 BIN Layout Version 1 + .DA 0 + .DA CS.END-CS.START CS + .DA DS.END-DS.START DS + .DA #64 SS + .DA #16 ZP + .DA 0 +*-------------------------------------- +* Relocation Table +*-------------------------------------- +.1 .DA CS.INIT + .DA CS.RUN + .DA CS.DOEVENT + .DA CS.QUIT +L.MSG.USAGE .DA MSG.USAGE +L.MSG.FILE.OK .DA MSG.FILE.OK +L.MSG.HEADER.OK .DA MSG.HEADER.OK +L.MSG.HEADER.KO .DA MSG.HEADER.KO +L.MSG.DONE .DA MSG.DONE + .DA 0 +*-------------------------------------- +CS.INIT +.1 >INC.G ArgCount + >SYSCALL GetArg.A + bcs .7 + + >STYA ZPPtr1 + + lda (ZPPtr1) + cmp #'-' + bne .4 + + ldy #1 + lda (ZPPtr1),y + + ldx OptionList + +.2 cmp OptionList,x + beq .3 + dex + bne .2 + +.99 >LDYA L.MSG.USAGE + >SYSCALL PrintF.YA + lda #K.E.SYN + sec + rts + +.3 ldy OptionVars-1,x + lda #$80 + sta (pData),y + bra .1 + +.4 >LDA.G hInputBuf + bne .5 + jsr CS.INIT.OPENINPUT + bcc .1 scan for any other args + rts + +.5 >LDA.G hOutputFile + bne .99 + jsr CS.INIT.CREATEOUTPUT + bcc .1 scan for any other args + rts + +.7 >LDA.G hOutputFile + beq .99 + + >LDYAI 256 + >SYSCALL GetMem.YA + bcs CS.INIT.RTS + + >STYA ZPBufPtr + txa + >STA.G hBuf + +.8 clc +CS.INIT.RTS rts +*-------------------------------------- +CS.INIT.OPENINPUT + >PUSHWI 0 Aux type + >PUSHBI 0 Type + >PUSHBI SYS.FOpen.R + >PUSHW ZPPtr1 + >SYSCALL LoadFile + bcs CS.INIT.RTS + + >STYA ZPInputBufLen + >PUSHYA + + txa + >STA.G hInputBuf + >SYSCALL GetMemPtr.A + >STYA ZPInputBufPtr + + >LDYA L.MSG.FILE.OK + >SYSCALL PrintF.YA + + lda (ZPInputBufPtr) + cmp #'B' + bne .99 + + ldy #1 + lda (ZPInputBufPtr),y + cmp #'M' + bne .99 + + ldy #$1C BBP LO + lda (ZPInputBufPtr),y + cmp #1 + bne .99 + iny BBP HI + lda (ZPInputBufPtr),y + bne .99 + + ldy #$16 H LO + lda (ZPInputBufPtr),y + >STA.G PIX.Header+S.BM.H + pha + eor #$ff + sta ZPLineCount + + ldy #$17 H HI + lda (ZPInputBufPtr),y + >STA.G PIX.Header+S.BM.H+1 + >PUSHA + eor #$ff + sta ZPLineCount+1 + + pla + >PUSHA + + ldy #$12 W LO + lda (ZPInputBufPtr),y + >STA.G PIX.Header+S.BM.W + pha + + ldy #$13 W HI + lda (ZPInputBufPtr),y + >STA.G PIX.Header+S.BM.W+1 + >PUSHA + pla + >PUSHA + + >LDYA L.MSG.HEADER.OK + >SYSCALL PrintF.YA + clc + rts + +.99 >LDYA L.MSG.HEADER.KO + >SYSCALL PrintF.YA + lda #K.E.IBIN + sec + rts +*-------------------------------------- +CS.INIT.CREATEOUTPUT + >PUSHWI 0 Aux type + >PUSHBI $CB PIX Type + >PUSHBI SYS.FOpen.W+SYS.FOpen.X + >PUSHW ZPPtr1 + >SYSCALL FOpen + bcs .9 + >STA.G hOutputFile +.9 rts +*-------------------------------------- +CS.RUN lda #S.BM.F.BBP1 + >STA.G PIX.Header+S.BM.F + + >LDA.G PIX.Header+S.BM.W + sta ZPBMPRowBytes + sta ZPPIXRowBytes + + iny + lda (pData),y + sta ZPBMPRowBytes+1 + sta ZPPIXRowBytes+1 + + lda ZPBMPRowBytes + and #%00011111 + beq .1 + lda ZPBMPRowBytes + and #%11100000 + clc + adc #%00100000 + bcc .1 + + inc ZPBMPRowBytes+1 + +.1 lsr ZPBMPRowBytes+1 + ror + lsr ZPBMPRowBytes+1 + ror + lsr ZPBMPRowBytes+1 + ror + sta ZPBMPRowBytes + + lda ZPPIXRowBytes + and #%00000111 + beq .2 + lda ZPPIXRowBytes + and #%11111000 + clc + adc #%00001000 + bcc .2 + + inc ZPPIXRowBytes+1 + +.2 lsr ZPPIXRowBytes+1 + ror + lsr ZPPIXRowBytes+1 + ror + lsr ZPPIXRowBytes+1 + ror + sta ZPPIXRowBytes + >STA.G PIX.Header+S.BM.RowBytes + + lda ZPInputBufPtr + clc + adc ZPInputBufLen + sta ZPInputDataPtr + lda ZPInputBufPtr+1 + adc ZPInputBufLen+1 + sta ZPInputDataPtr+1 + + >PUSHEA.G PIX.Header + >PUSHWI S.BM + >LDA.G hOutputFile + >PUSHA + >SYSCALL FWrite + bcs CS.RUN.RTS + +CS.RUN.LOOP inc ZPLineCount + bne .1 + inc ZPLineCount+1 + beq .8 + +.1 lda ZPInputDataPtr + sec + sbc ZPBMPRowBytes + sta ZPInputDataPtr + lda ZPInputDataPtr+1 + sbc ZPBMPRowBytes+1 + sta ZPInputDataPtr+1 + + >LDYA ZPBufPtr + >STYA ZPPTR1 + + ldy #0 + +.2 lda (ZPInputDataPtr),y + tax + lda TWIST,x + sta (ZPPTR1) + inc ZPPTR1 + bne .3 + + inc ZPPTR1+1 + +.3 iny + cpy ZPPIXRowBytes + bne .2 + + >PUSHW ZPBufPtr + >PUSHW ZPPIXRowBytes + >LDA.G hOutputFile + >PUSHA + >SYSCALL FWrite + bcs CS.RUN.RTS + + + + bra CS.RUN.LOOP + + +.8 >LDYA L.MSG.DONE + >SYSCALL PrintF.YA + + lda #0 + sec +CS.RUN.RTS rts +*-------------------------------------- +CS.DOEVENT sec + rts +*-------------------------------------- +CS.QUIT >LDA.G hBuf + beq .1 + >SYSCALL FreeMem.A + +.1 >LDA.G hOutputFile + beq .8 + + >SYSCALL FClose.A + +.8 clc + rts +*-------------------------------------- +CS.END +TWIST .DA #%00000000,#%10000000,#%01000000,#%11000000,#%00100000,#%10100000,#%01100000,#%11100000 + .DA #%00010000,#%10010000,#%01010000,#%11010000,#%00110000,#%10110000,#%01110000,#%11110000 + .DA #%00001000,#%10001000,#%01001000,#%11001000,#%00101000,#%10101000,#%01101000,#%11101000 + .DA #%00011000,#%10011000,#%01011000,#%11011000,#%00111000,#%10111000,#%01111000,#%11111000 + .DA #%00000100,#%10000100,#%01000100,#%11000100,#%00100100,#%10100100,#%01100100,#%11100100 + .DA #%00010100,#%10010100,#%01010100,#%11010100,#%00110100,#%10110100,#%01110100,#%11110100 + .DA #%00001100,#%10001100,#%01001100,#%11001100,#%00101100,#%10101100,#%01101100,#%11101100 + .DA #%00011100,#%10011100,#%01011100,#%11011100,#%00111100,#%10111100,#%01111100,#%11111100 + .DA #%00000010,#%10000010,#%01000010,#%11000010,#%00100010,#%10100010,#%01100010,#%11100010 + .DA #%00010010,#%10010010,#%01010010,#%11010010,#%00110010,#%10110010,#%01110010,#%11110010 + .DA #%00001010,#%10001010,#%01001010,#%11001010,#%00101010,#%10101010,#%01101010,#%11101010 + .DA #%00011010,#%10011010,#%01011010,#%11011010,#%00111010,#%10111010,#%01111010,#%11111010 + .DA #%00000110,#%10000110,#%01000110,#%11000110,#%00100110,#%10100110,#%01100110,#%11100110 + .DA #%00010110,#%10010110,#%01010110,#%11010110,#%00110110,#%10110110,#%01110110,#%11110110 + .DA #%00001110,#%10001110,#%01001110,#%11001110,#%00101110,#%10101110,#%01101110,#%11101110 + .DA #%00011110,#%10011110,#%01011110,#%11011110,#%00111110,#%10111110,#%01111110,#%11111110 + .DA #%00000001,#%10000001,#%01000001,#%11000001,#%00100001,#%10100001,#%01100001,#%11100001 + .DA #%00010001,#%10010001,#%01010001,#%11010001,#%00110001,#%10110001,#%01110001,#%11110001 + .DA #%00001001,#%10001001,#%01001001,#%11001001,#%00101001,#%10101001,#%01101001,#%11101001 + .DA #%00011001,#%10011001,#%01011001,#%11011001,#%00111001,#%10111001,#%01111001,#%11111001 + .DA #%00000101,#%10000101,#%01000101,#%11000101,#%00100101,#%10100101,#%01100101,#%11100101 + .DA #%00010101,#%10010101,#%01010101,#%11010101,#%00110101,#%10110101,#%01110101,#%11110101 + .DA #%00001101,#%10001101,#%01001101,#%11001101,#%00101101,#%10101101,#%01101101,#%11101101 + .DA #%00011101,#%10011101,#%01011101,#%11011101,#%00111101,#%10111101,#%01111101,#%11111101 + .DA #%00000011,#%10000011,#%01000011,#%11000011,#%00100011,#%10100011,#%01100011,#%11100011 + .DA #%00010011,#%10010011,#%01010011,#%11010011,#%00110011,#%10110011,#%01110011,#%11110011 + .DA #%00001011,#%10001011,#%01001011,#%11001011,#%00101011,#%10101011,#%01101011,#%11101011 + .DA #%00011011,#%10011011,#%01011011,#%11011011,#%00111011,#%10111011,#%01111011,#%11111011 + .DA #%00000111,#%10000111,#%01000111,#%11000111,#%00100111,#%10100111,#%01100111,#%11100111 + .DA #%00010111,#%10010111,#%01010111,#%11010111,#%00110111,#%10110111,#%01110111,#%11110111 + .DA #%00001111,#%10001111,#%01001111,#%11001111,#%00101111,#%10101111,#%01101111,#%11101111 + .DA #%00011111,#%10011111,#%01011111,#%11011111,#%00111111,#%10111111,#%01111111,#%11111111 +*-------------------------------------- +OptionList >PSTR "Vv" +OptionVars .DA #bVerbose,#bVerbose +MSG.USAGE >CSTR "Usage : BMP2PIX BMP-File \r\n -V : Verbose Mode\r\n" +MSG.FILE.OK >CSTR "BMP Loaded, %D Bytes Read\r\n" +MSG.HEADER.OK >CSTR "BMP Size : %D x %D pixels\r\n" +MSG.HEADER.KO >CSTR "Invalid Input File Format\r\n" +MSG.DONE >CSTR "All Done!!!\r\n" +*-------------------------------------- + .DUMMY + .OR 0 +DS.START +PIX.Header .BS S.BM +ArgCount .BS 1 +hInputBuf .BS 1 +hOutputFile .BS 1 +bVerbose .BS 1 +hBuf .BS 1 +DS.END + .ED +*-------------------------------------- +MAN +SAVE /A2OSX.BUILD/BMP2PIX.S +ASM diff --git a/DRV/DHGR.DRV.T.txt b/DRV/DHGR.DRV.T.txt index ad5d8eee..b43ab504 100644 --- a/DRV/DHGR.DRV.T.txt +++ b/DRV/DHGR.DRV.T.txt @@ -171,12 +171,102 @@ MOD7.256 .HS 040506 .HS 00010203040506 .HS 00 *-------------------------------------- -SHIFT.L1 .BS 128 -SHIFT.L2 .BS 128 -SHIFT.L3 .BS 128 -SHIFT.L4 .BS 128 -SHIFT.L5 .BS 128 -SHIFT.L6 .BS 128 +SHIFT.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 #%00000001,#%00000011,#%00000101,#%00000111,#%00001001,#%00001011,#%00001101,#%00001111 + .DA #%00010001,#%00010011,#%00010101,#%00010111,#%00011001,#%00011011,#%00011101,#%00011111 + .DA #%00100001,#%00100011,#%00100101,#%00100111,#%00101001,#%00101011,#%00101101,#%00101111 + .DA #%00110001,#%00110011,#%00110101,#%00110111,#%00111001,#%00111011,#%00111101,#%00111111 + .DA #%01000001,#%01000011,#%01000101,#%01000111,#%01001001,#%01001011,#%01001101,#%01001111 + .DA #%01010001,#%01010011,#%01010101,#%01010111,#%01011001,#%01011011,#%01011101,#%01011111 + .DA #%01100001,#%01100011,#%01100101,#%01100111,#%01101001,#%01101011,#%01101101,#%01101111 + .DA #%01110001,#%01110011,#%01110101,#%01110111,#%01111001,#%01111011,#%01111101,#%01111111 +SHIFT.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 #%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 #%00000010,#%00000110,#%00001010,#%00001110,#%00010010,#%00010110,#%00011010,#%00011110 + .DA #%00100010,#%00100110,#%00101010,#%00101110,#%00110010,#%00110110,#%00111010,#%00111110 + .DA #%01000010,#%01000110,#%01001010,#%01001110,#%01010010,#%01010110,#%01011010,#%01011110 + .DA #%01100010,#%01100110,#%01101010,#%01101110,#%01110010,#%01110110,#%01111010,#%01111110 + .DA #%00000011,#%00000111,#%00001011,#%00001111,#%00010011,#%00010111,#%00011011,#%00011111 + .DA #%00100011,#%00100111,#%00101011,#%00101111,#%00110011,#%00110111,#%00111011,#%00111111 + .DA #%01000011,#%01000111,#%01001011,#%01001111,#%01010011,#%01010111,#%01011011,#%01011111 + .DA #%01100011,#%01100111,#%01101011,#%01101111,#%01110011,#%01110111,#%01111011,#%01111111 +SHIFT.L3 .DA #%00000000,#%00001000,#%00010000,#%00011000,#%00100000,#%00101000,#%00110000,#%00111000 + .DA #%01000000,#%01001000,#%01010000,#%01011000,#%01100000,#%01101000,#%01110000,#%01111000 + .DA #%00000001,#%00001001,#%00010001,#%00011001,#%00100001,#%00101001,#%00110001,#%00111001 + .DA #%01000001,#%01001001,#%01010001,#%01011001,#%01100001,#%01101001,#%01110001,#%01111001 + .DA #%00000010,#%00001010,#%00010010,#%00011010,#%00100010,#%00101010,#%00110010,#%00111010 + .DA #%01000010,#%01001010,#%01010010,#%01011010,#%01100010,#%01101010,#%01110010,#%01111010 + .DA #%00000011,#%00001011,#%00010011,#%00011011,#%00100011,#%00101011,#%00110011,#%00111011 + .DA #%01000011,#%01001011,#%01010011,#%01011011,#%01100011,#%01101011,#%01110011,#%01111011 + .DA #%00000100,#%00001100,#%00010100,#%00011100,#%00100100,#%00101100,#%00110100,#%00111100 + .DA #%01000100,#%01001100,#%01010100,#%01011100,#%01100100,#%01101100,#%01110100,#%01111100 + .DA #%00000101,#%00001101,#%00010101,#%00011101,#%00100101,#%00101101,#%00110101,#%00111101 + .DA #%01000101,#%01001101,#%01010101,#%01011101,#%01100101,#%01101101,#%01110101,#%01111101 + .DA #%00000110,#%00001110,#%00010110,#%00011110,#%00100110,#%00101110,#%00110110,#%00111110 + .DA #%01000110,#%01001110,#%01010110,#%01011110,#%01100110,#%01101110,#%01110110,#%01111110 + .DA #%00000111,#%00001111,#%00010111,#%00011111,#%00100111,#%00101111,#%00110111,#%00111111 + .DA #%01000111,#%01001111,#%01010111,#%01011111,#%01100111,#%01101111,#%01110111,#%01111111 +SHIFT.L4 .DA #%00000000,#%00010000,#%00100000,#%00110000,#%01000000,#%01010000,#%01100000,#%01110000 + .DA #%00000001,#%00010001,#%00100001,#%00110001,#%01000001,#%01010001,#%01100001,#%01110001 + .DA #%00000010,#%00010010,#%00100010,#%00110010,#%01000010,#%01010010,#%01100010,#%01110010 + .DA #%00000011,#%00010011,#%00100011,#%00110011,#%01000011,#%01010011,#%01100011,#%01110011 + .DA #%00000100,#%00010100,#%00100100,#%00110100,#%01000100,#%01010100,#%01100100,#%01110100 + .DA #%00000101,#%00010101,#%00100101,#%00110101,#%01000101,#%01010101,#%01100101,#%01110101 + .DA #%00000110,#%00010110,#%00100110,#%00110110,#%01000110,#%01010110,#%01100110,#%01110110 + .DA #%00000111,#%00010111,#%00100111,#%00110111,#%01000111,#%01010111,#%01100111,#%01110111 + .DA #%00001000,#%00011000,#%00101000,#%00111000,#%01001000,#%01011000,#%01101000,#%01111000 + .DA #%00001001,#%00011001,#%00101001,#%00111001,#%01001001,#%01011001,#%01101001,#%01111001 + .DA #%00001010,#%00011010,#%00101010,#%00111010,#%01001010,#%01011010,#%01101010,#%01111010 + .DA #%00001011,#%00011011,#%00101011,#%00111011,#%01001011,#%01011011,#%01101011,#%01111011 + .DA #%00001100,#%00011100,#%00101100,#%00111100,#%01001100,#%01011100,#%01101100,#%01111100 + .DA #%00001101,#%00011101,#%00101101,#%00111101,#%01001101,#%01011101,#%01101101,#%01111101 + .DA #%00001110,#%00011110,#%00101110,#%00111110,#%01001110,#%01011110,#%01101110,#%01111110 + .DA #%00001111,#%00011111,#%00101111,#%00111111,#%01001111,#%01011111,#%01101111,#%01111111 +SHIFT.L5 .DA #%00000000,#%00100000,#%01000000,#%01100000,#%00000001,#%00100001,#%01000001,#%01100001 + .DA #%00000010,#%00100010,#%01000010,#%01100010,#%00000011,#%00100011,#%01000011,#%01100011 + .DA #%00000100,#%00100100,#%01000100,#%01100100,#%00000101,#%00100101,#%01000101,#%01100101 + .DA #%00000110,#%00100110,#%01000110,#%01100110,#%00000111,#%00100111,#%01000111,#%01100111 + .DA #%00001000,#%00101000,#%01001000,#%01101000,#%00001001,#%00101001,#%01001001,#%01101001 + .DA #%00001010,#%00101010,#%01001010,#%01101010,#%00001011,#%00101011,#%01001011,#%01101011 + .DA #%00001100,#%00101100,#%01001100,#%01101100,#%00001101,#%00101101,#%01001101,#%01101101 + .DA #%00001110,#%00101110,#%01001110,#%01101110,#%00001111,#%00101111,#%01001111,#%01101111 + .DA #%00010000,#%00110000,#%01010000,#%01110000,#%00010001,#%00110001,#%01010001,#%01110001 + .DA #%00010010,#%00110010,#%01010010,#%01110010,#%00010011,#%00110011,#%01010011,#%01110011 + .DA #%00010100,#%00110100,#%01010100,#%01110100,#%00010101,#%00110101,#%01010101,#%01110101 + .DA #%00010110,#%00110110,#%01010110,#%01110110,#%00010111,#%00110111,#%01010111,#%01110111 + .DA #%00011000,#%00111000,#%01011000,#%01111000,#%00011001,#%00111001,#%01011001,#%01111001 + .DA #%00011010,#%00111010,#%01011010,#%01111010,#%00011011,#%00111011,#%01011011,#%01111011 + .DA #%00011100,#%00111100,#%01011100,#%01111100,#%00011101,#%00111101,#%01011101,#%01111101 + .DA #%00011110,#%00111110,#%01011110,#%01111110,#%00011111,#%00111111,#%01011111,#%01111111 +SHIFT.L6 .DA #%00000000,#%01000000,#%00000001,#%01000001,#%00000010,#%01000010,#%00000011,#%01000011 + .DA #%00000100,#%01000100,#%00000101,#%01000101,#%00000110,#%01000110,#%00000111,#%01000111 + .DA #%00001000,#%01001000,#%00001001,#%01001001,#%00001010,#%01001010,#%00001011,#%01001011 + .DA #%00001100,#%01001100,#%00001101,#%01001101,#%00001110,#%01001110,#%00001111,#%01001111 + .DA #%00010000,#%01010000,#%00010001,#%01010001,#%00010010,#%01010010,#%00010011,#%01010011 + .DA #%00010100,#%01010100,#%00010101,#%01010101,#%00010110,#%01010110,#%00010111,#%01010111 + .DA #%00011000,#%01011000,#%00011001,#%01011001,#%00011010,#%01011010,#%00011011,#%01011011 + .DA #%00011100,#%01011100,#%00011101,#%01011101,#%00011110,#%01011110,#%00011111,#%01011111 + .DA #%00100000,#%01100000,#%00100001,#%01100001,#%00100010,#%01100010,#%00100011,#%01100011 + .DA #%00100100,#%01100100,#%00100101,#%01100101,#%00100110,#%01100110,#%00100111,#%01100111 + .DA #%00101000,#%01101000,#%00101001,#%01101001,#%00101010,#%01101010,#%00101011,#%01101011 + .DA #%00101100,#%01101100,#%00101101,#%01101101,#%00101110,#%01101110,#%00101111,#%01101111 + .DA #%00110000,#%01110000,#%00110001,#%01110001,#%00110010,#%01110010,#%00110011,#%01110011 + .DA #%00110100,#%01110100,#%00110101,#%01110101,#%00110110,#%01110110,#%00110111,#%01110111 + .DA #%00111000,#%01111000,#%00111001,#%01111001,#%00111010,#%01111010,#%00111011,#%01111011 + .DA #%00111100,#%01111100,#%00111101,#%01111101,#%00111110,#%01111110,#%00111111,#%01111111 *-------------------------------------- BASEL .HS 00.00.00.00.00.00.00.00 .HS 80.80.80.80.80.80.80.80