1 Ostatnio edytowany przez mono (2011-09-22 01:56:22)

Zrobiłem łatę na program iconv i dodałem zestawy znaków i kodowania polskich liter z Atari 8-bit (Atari Club z ST już był pod nazwą kodową ATARI lub ATARIST), dzięki czemu można sobie przekodowywać dokumenty z Atari na PC i odwrotnie. Dostępne są zestawy:
- ATARI8 + aliasy ATASCII, ATARI8-GRAPH, ATARI8-ATASCII - standardowy zestaw znaków z semigrafiką,
- ATARI8-INT + alias ATASCII2 - zestaw międzynarodowy ATASCII2,
- ATARI8-KAREN + alias ATARI8-PL - polski zestaw montowany przez P.Z.Karen (+znaki międzynarodowe, ale niekompatybilne z ATARI8-INT),
- ATARI8-AWP - zestaw Atari Writer +; jest to podzestaw ATARI8-KAREN i zawiera tylko polskie znaki - reszta to semigrafika,
- ATARI8-XLENT - zestaw First XLEnt Word Processor,
- ATARI8-PANTHER - zestaw Panther,
- ATARI8-PE - zestaw Polski Edytor lub Czytaj.
Nie zrobiłem zestawu arabskiego, bo nie mam pewności czy rozróżnię odpowiednio znaki. Poza tym są tam znaki pisane od prawej do lewej - trzeba się na tym znać. Mogę za to udostępnić przykładowe pliki do stworzenia tablicy translacji jeśli ktoś chciałby się podjąć.

Prosta translacja na format Atari Panther:

$ iconv -t ATARI8-PANTHER <dokument_pc.doc >dokument_atari.doc

i w drugą stronę:

$ iconv -f ATARI8-PANTHER <dokument_atari.doc >dokument_pc.doc

Procedura instalacji:

$ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
$ tar zxf libiconv-1.14.tar.gz
$ wget http://mono.i-demo.pl/libiconv-1.14-atari8.patch
$ patch -p0 <libiconv-1.14-atari8.patch
$ cd libiconv-1.14
$ ./configure --enable-extra-encodings
$ make
$ sudo make install

I voila!
Zapraszam do testowania i zgłaszania błędów.

Edit: Przykład z translacją w drugą stronę.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

2

Dzięki, na pewno się przyda!

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

3

Dopisz jeszcze filtry do konwerta. Tam wystarczy skopiować je do odpowiedniego katalogu, nie trzeba przebudowywać pakietu libc dla samego iconva (jeśli ktoś chce mieć ładnie wszystko w paczkach, jak ja :)).

Atari 8-bit: 2600, 2600Jr, 7800, 400, 600XL, 800XL, 65XE, 130XE, 800XE, XEGS
Atari 16-bit: 260ST, 512ST, 512ST+, 512STE, 1040STE, 1040STF, 1040STFM, MEGA1

Puściłeś do upstreama?

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

5

Tak, wysłałem patcha do Bruno Haible <bruno@clisp.org>, a tablice kodowania do Marka Leishera <mleisher@crl.nmsu.edu>.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

6

Amun-Ra napisał/a:

Dopisz jeszcze filtry do konwerta.

Mogę Ci udostępnić tablice mapowania a Ty możesz zrobić odpowiednią łatkę :D. Mnie się też przyda...

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

7

Dostałem odpowiedź od Bruno :D (pozwolę sobie zacytować fragment):

Bruno napisał/a:

You have noticed - in the libiconv/NOTES file - that there has to be a
justification for adding an encoding to the official libiconv. Millions of
users pay with their disk space and RAM for it. "Quite useful in crossworking
on retro 8-bit Atari XL/XE machines" is not an adequate justification, since
probably less than 10 people in the world are interested in doing this.

Ale mogę sobie to redystrybuować w dowolnej postaci.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

8

libiconv != iconv - systemy używające glibc raczej używają tego co glibc dostarcza jako iconv

9

Hrw napisał/a:

libiconv != iconv - systemy używające glibc raczej używają tego co glibc dostarcza jako iconv

Faktycznie, nigdy sprawdzałem rezultatu which `ldd iconv`.

Atari 8-bit: 2600, 2600Jr, 7800, 400, 600XL, 800XL, 65XE, 130XE, 800XE, XEGS
Atari 16-bit: 260ST, 512ST, 512ST+, 512STE, 1040STE, 1040STF, 1040STFM, MEGA1

10

Aktualizacja 2.
Dodane:
- ATARI8-CAPEK alias ATARI8-CZ - czeski (czecho-słowacki?) standard zapisu znaków narodowych,
- semigrafika w inwerse (łącznie ze spacją).
Większość znaków w inverse video niestety nie da się uzyskać - aktualnie konwertuję je do standardowych. Ale większość semigrafiki działa poprawnie.
Procedura nakładania łaty analogiczna, jak wyżej - łatę nakładamy na oryginalny plik ściągnięty z gnu.org.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

11

Drobny dodatek. Skrypt konwertujący z formatu ATASCII na ANTIC i odwrotnie.
Instalacja:

$ wget http://mono.i-demo.pl/iconv/atasciiantic.sh
$ ln -s atasciiantic.sh fromantic
$ ln -s atasciiantic.sh toantic
$ ln -s atasciiantic.sh fromatascii
$ ln -s atasciiantic.sh toatascii

Użycie:

$ toantic <atascii.txt >antic.txt
$ toatascii <antic.txt >atascii.txt
$ fromantic <antic.txt >atascii.txt
$ fromatascii <atascii.txt >antic.txt
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

12

Aktualizacja 3.
Poprawiona konwersja do ATASCII (zdarzało mu się generować teksty w inverse video).
Procedura nakładania łaty j.w.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

13

Aktualizacja 4.
Poprawione:
- ATARI8-CAPEK, ATARI8-CZ - inne mapowanie znaku CLRSCR (125)
Dodane:
- ATARI8-TCHEKO - czeski film
- ZX80, ZX81 - w unicode brakuje dwóch znaków (w sumie 4 bo +inwers) $0D, $0E
- ZX82, ZXSPECTRUM, ZX82-PL, ZXSPECTRUM-PL - standard ZX Spectrum i polskie znaki w standardzie H-PRG
- PETSCII-UC, PETSCII-LC, PETSCII - C=
- CP895, CP867, KAMENICKY, KEYBCS2 - czeskie kodowanie braci Kamienickich
Arabskie ATASCII ciągle czeka na chętnego.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

14

mono napisał/a:

Arabskie ATASCII ciągle czeka na chętnego.

dla chętnego mapa

Atari Falcon 030+Centram14MB,CT63+128 MB,CTPCI,SuperVidel,Super Nova+ATI Mach64,Eclipse+ATI Rage IIC PCI,NetUSB,Steinberg SPDIF+Time-Lock,C-Lab Notator

15

Znam :) Tyle, że tam masz bitmapę, a nie kody. Mapa jest też w Atariki. Natomiast mam już pomysł jak to zrobić posiłkując się trochę Wikipedią i może za parę dni załączę prototypową wersję. Oczywiście i tak musiałby to sprawdzić ktoś, kto się na tym języku zna.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

16

Sztuka dla sztuki. Ciekawe czy ktoś tego użyje :)

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

17

Któż to może wiedzieć... :P

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

18

Aktualizacja 5.
Dodany standard kodowania ATARI8-EUROTEKST.
Procedura nakładania łaty analogiczna, jak wyżej - łatę nakładamy na oryginalny plik ściągnięty z gnu.org.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

19

Chyba zapomniałeś o "make clean" przed użyciem diffa. :-)

diff -Naur libiconv-1.14/tools/8bit_tab_to_h libiconv-1.14-mono/tools/8bit_tab_to_h
--- libiconv-1.14/tools/8bit_tab_to_h    1970-01-01 01:00:00.000000000 +0100
+++ libiconv-1.14-mono/tools/8bit_tab_to_h    2014-10-28 10:36:00.000000000 +0100
@@ -0,0 +1,258 @@
+ELF
Zawsze mam rację, tylko nikt mnie nie słucha.

20

Dziękuję. Zapomniałem że nawet distclean w tym projekcie nie działa do końca poprawnie :( (clean był robiony :D) i trzeba ręcznie edytować plik patcha.
Tak, czy owak - teraz powinno być ok.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

21 Ostatnio edytowany przez mono (2022-07-04 15:52:42)

I zaktualizowałem ostatniego patcha do wersji 1.17.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

22

Może teraz by przyjęli do upstreamu skoro pamięć ciut się rozrosła?

mono napisał/a:

Dostałem odpowiedź od Bruno :D (pozwolę sobie zacytować fragment):

Bruno napisał/a:

You have noticed - in the libiconv/NOTES file - that there has to be a
justification for adding an encoding to the official libiconv. Millions of
users pay with their disk space and RAM for it. "Quite useful in crossworking
on retro 8-bit Atari XL/XE machines" is not an adequate justification, since
probably less than 10 people in the world are interested in doing this.

Ale mogę sobie to redystrybuować w dowolnej postaci.

O kurczę, jesteśmy naprawdę elitarną grupą :)