Zrobiłem małą łatkę do programu xxd pozwalającą na nałożenie maski na znaki ASCII pokazywane z prawej strony. Pozwala to na łatwe zorientowanie się w tekstach zapisanych w inverse video w plikach z Atari.
xxd znajduje się w pakiecie vim-common (w ubuntu 8.04); dostarczany jest z vim więc pociągnąłem wersję 7.3 i tąż połatałem.
A co zrobiłem? Dodałem parametr -m mask, którym podaje się maskę na znaki ASCII. Żeby pokazać znaczki zapisane w inverse wystarczy obciąć ostatni bit znaku - maska powinna być 0x7f, więc po:
$ xxd -g 1 -m 0x7f Wizard.cmc | head
naszym oczom powinna pokazać się sygnatura pliku CMC.
0000000: ff ff 00 80 19 89 a0 e3 ed e3 a0 e4 e1 f4 e1 a0 ...... cmc data
0000010: e6 e9 ec e5 a0 8e 95 0d 20 06 48 55 00 c1 67 b0 file ... .HU.Ag0
0000020: 05 f3 eb a9 18 90 6b 00 b7 16 57 9b a5 3c e7 29 .sk)..k.7.W.%<g)
0000030: ce d2 f5 16 75 b6 7f ff 00 00 ff ff ff ff ff ff NRu.u6..........
Poniżej procedura nałożenia łaty i instalacji poprawionego programu u siebie:
$ wget ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
$ tar jxf vim-7.3.tar.bz2
$ cd vim73/src/xxd
$ wget http://mono.i-demo.pl/vim-7.3-xxd-1.10-atari.patch
$ patch -p0 xxd.c vim-7.3-xxd-1.10-atari.patch
$ make
$ sudo install -s xxd $(which xxd || echo /usr/local/bin/)
Edit: Przykładowy out.
Edit 2: Dodałem też konwersję znaków z kodów wewnętrznych ANTICa na ATASCII (parametr -A).
niewiedza buduje, wiedza rujnuje