Apparently I will end up as tailender.
I just continue shaving my script
738
Code:

Function s($)
Dim $j, $k, $b, $v
Dim $a[$+$]
For $j = 0 to $+$
$a[$j] = $j-$
Next

$s = d($s,$a)

For $k = 1 to $
For $j = 1 to $k
$a = c($j,$a)
$s = d($s,$a)
Next
If $ > $k
$k=$k+1
EndIf
For $j = -1 to -$k step -1
$a = c($j,$a)
$s = d($s,$a)
Next
Next
If NOT $ MOD 2
For $j = 1 to $
$a = c($j,$a)
$s = d($s,$a)
Next
EndIf
If $ MOD 2
For $k = -1 to -$ step -1
For $j = -$k to $
$a = c($j,$a)
$s = d($s,$a)
Next
If -$ < $k
$k=$k-1
EndIf
If NOT $k = -$
For $j = $k to -$ step -1
$a = c($j,$a)
$s = d($s,$a)
Next
EndIf
Next
Else
For $k = -1 to -$ step -1
For $j = $k to -$ step -1
$a = c($j,$a)
$s = d($s,$a)
Next
If -$ < $k
$k=$k-1
EndIf
For $j = -$k to $
$a = c($j,$a)
$s = d($s,$a)
Next
Next
EndIf
$s=Split($s,a)
EndFunction

Function c($j,$a)
Dim $b,$v
$b = AScan($a,0)
$v = AScan($a,$j)
$a[$b]=$j
$a[$v]=0
$c = $a
EndFunction

Function d($s,$a)
Dim $j
If $s
$d = $s + a
EndIf

For Each $j In $a
Select
Case $j < 0
$d = $d + W
Case $j = 0
$d = $d + " "
Case 1;$j > 0
$d = $d + B
;EndSelect
;Next
EndFunction