Sequence hexDump := method( bytesAcross := 16 result := Sequence clone printable := nil self foreach(i, c, if(i isEven, if(i % bytesAcross == 0, if(i > 0, result appendSeq(" ", printable, "\n") ) result appendSeq(i asString toBase(bytesAcross) alignRight(7) asMutable replaceSeq(" ", "0"), ": ") printable = Sequence clone , result appendSeq(" ") ) ) result appendSeq(c asString toBase(bytesAcross) alignRight(2) asMutable replaceSeq(" ", "0")) printable append(if(c isPrint, c, "." at(0))) ) if(i % bytesAcross != bytesAcross - 1, while(i % bytesAcross != bytesAcross - 1, i = i + 1 if(i isEven, result appendSeq(" ") ) result appendSeq(" ") ) result appendSeq(" ", printable, "\n") ) result ) /* 0000000: 5365 7175 656e 6365 2068 6578 4475 6d70 Sequence hexDump 0000010: 203a 3d20 6d65 7468 6f64 280a 0972 6573 := method(..res 0000020: 756c 7420 3a3d 2053 6571 7565 6e63 6520 ult := Sequence 0000030: 636c 6f6e 650a 0970 7269 6e74 6162 6c65 clone..printable 0000040: 203a 3d20 6e69 6c0a 0973 656c 6620 666f := nil..self fo 0000050: 7265 6163 6828 692c 2063 2c0a 0909 6966 reach(i, c,...if 0000060: 2869 2069 7345 7665 6e2c 0a09 0909 6966 (i isEven,....if 0000070: 2869 2025 2031 3620 3d3d 2030 2c0a 0909 (i % 16 == 0,... 0000080: 0909 6966 2869 203e 2030 2c0a 0909 0909 ..if(i > 0,..... 0000090: 0972 6573 756c 7420 6170 7065 6e64 5365 .result appendSe 00000a0: 7128 2220 2022 2c20 7072 696e 7461 626c q(" ", printabl ... */ if(isLaunchScript, args slice(1) foreach(name, File with(name) contents hexDump println ) )