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