ostatnia wersja franny z poprawkami mono ma w opcjach konwersje asci<>atasci ale mi cos to nie działa, w którymś wątku było, że  prog jest niedokończony albo może to ja źle wpisuje parametry ?

tj. wsadza mi plik do obrazu atr ale go nie konwertuje.

Chodzi ogólnie o batch pod eclipse co wszystkie źródła projektu przekonwertuje do atasci i wsadzi do ATRa a dalej to już po stronie emulca obsłuży kompilator, od razu mówię, że cross-assemblery odpadają. Odpada też MemoPad.

Wprawdzie Atari800Win ma w opcjach menu konwerter i jest też drateks, ale mi zależy by to zautomatyzować bowiem projekt wymaga sporo testów, a ręczne wachlowanie tak co chwilę to ja dziękuję. BAT może być również po stronie emulca np. jakiś parser w SDX,  czemu nie ? widzę że realdos ma dodatkowo w pakiecie taki tool,

@Jakub.H. na Twojej stronie - speedmaza (wyciągane z urządzenia H: w A800win za pomocą SDX i emupacka - tez w sumie by mogło być)

AspeQt, edytory z podglądem hex i funkcjami search/replace też raczej odpadają

ogólnie chodzi o to by było robione z automatu

najbardziej bliskie jest rozwiązanie by B.Kendrick tylko tam konwersji dokonuje skrypt na php

http://www.newbreedsoftware.com/atari/linux2tbasicxl/

czy ktoś zna inne patenty na takiego toolchaina ?

dziekuję i pozdrawiam serdecznie

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

2

Na mojej stronie znajduje się patch na program GNU libiconv. A tu http://www.atari.org.pl/forum/viewtopic.php?id=9281 jest wątek na aa. Używam go w makefileach do automatycznej konwersji plików tekstowych podczas budowania projektu.
Ma niestety swoje ograniczenia w zakresie inverse i znaków kontrolnych - nie wszystkie kombinacje są konwertowane poprawnie, ponieważ nie znalazłem w unicode odpowiedników. Z podstawowym zestawem ASCII nie ma problemów.
iconv -l poda ci listę wszystkich enkodingów; patrz na te z prefiksem ATARI8.

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

3 Ostatnio edytowany przez Spencer (2014-10-23 16:18:11)

dzięki, Twój tool jest za dobry na moje potrzeby :) podstawowy zestaw wystarczyłby, zresztą dla controli i inverse trzebaby taką czcionkę zaadoptować po stronie Eclipsa, po prawdzie to szukałem czegoś pod windozą z lini komend i franny idealnie by się do tego nadał, ale u mnie nie działa, pogrzebie jeszcze w jego źródłach albo może jeszcze szybciej po stronie emulca i sdx potokami się da, nie jestem pewien czy tylko wystarczy konwersja EOLi, LFy, TABy czy np zawsze { to [ bo zależy co po stronie Atari parsuje źródło. Jeśli skrypt po stronie SDX to przydałby się do tego dodatkowo config gdzie użytkownik definuje jaki znak na jaki kod zamienić coś ala config do Sparta Commandera gdzie user decyduje o wyglądzie okienek czyli np kod znaku do podmiany górnej/dolnej-prawej/lewej belki i narożniki to byłoby to coś na podobę :) Poszukam jeszcze w necie. Dzięki wielkie. Pozdrawiam

edit: czyli wersja windows też jest ? nie mogłem w pośpiechu znaleźć rano w paczce :) dzięki Temat załatwiony, po stronie PC będzie znacznie szybciej, pozdr

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

4 Ostatnio edytowany przez greblus (2014-10-25 12:58:50)

Mono, dzięki za twojego patcha do libiconv! Oby kiedyś został wciągnięty do oficjalnej paczki. Pod linuksem używam z powodzeniem, ale nie mam jak pod Windows skompilować więc wykorzystałem twoją tablicę atascii<->utf8 w skrypcie w Pythonie (w załączniku, może się komuś przyda).

Post's attachments

aconv.py 3.28 kb, liczba pobrań: 2 (od 2014-10-25) 

Tylko zalogowani mogą pobierać załączniki.

5

Nie ma za co. I to mi się podoba! Bieżcie i jedźcie ;)

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

6

@greblus mi się przyda :) dzięki wielkie, choć rzuciłem szybko okiem w google i są implementacje libconv pod windows a na ile są one zgodne z oryginałem ? hmm przydało by się by ktoś oblatany w gcc pod windą przeniósł to bowiem to potężny tool. Kendricka rozwiązanie w php też się sprawdza ale libconv to rasowy koń

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

7

Kompilacja na Windows nie będzie problemem, tylko w tym momencie szkoda mi było czasu na zabawę z mingw :) o wiele chętniej sprawdzam "co tam Panie nowego w Pythonie", bo od jakiegoś czasu stałem się niekompatybilny z wersją 3.

8 Ostatnio edytowany przez mono (2014-10-25 15:03:38)

W razie gdyby ktoś chciał się zabawić w kompilację służę plikami mapowań. Procedura jest taka, że plik .TXT z mapowaniem przetwarza się na .c za pomocą tools/8bit_tab_to_h dostępnego w źródłach libiconv, włącza się to w źródło (kopiuje pliki .c + modyfikuje Makefile i parę innych - odsyłam do przejrzenia patcha) i kompiluje potem razem. Zdecydowałem się na włączenie tych mapowań jako dodatkowych - dostępnych z --enable-extra-encodings podczas configure. Pliki załączam w celach poglądowych, bo do kompilacji wystarczy źródło i plik patch z mojej strony. Nagłówki i copyrighty unicode.org w załączonych plikach mogą być tam niepopoprawiane więc nie zwracajcie na to uwagi - wszystkie sam przygotowałem. W przygotowaniu są jeszcze kodowania arabskie, czeskie (tcheko i cp895 czyli standard kamenickych), Z80/Z81, ZX Spectrum (standard i PL) oraz PETSCII (lowercase i uppercase - jeśli ktoś ma informacje o standardach kodowania pliter na C= to poproszę o info).

Post's attachments

ATARI8-AWP.TXT 14.21 kb, liczba pobrań: 1 (od 2014-10-25) 

ATARI8-CAPEK.TXT 14.47 kb, nikt jeszcze nie pobierał tego pliku. 

ATARI8-GRAPH.TXT 14.39 kb, liczba pobrań: 2 (od 2014-10-25) 

ATARI8-INT.TXT 14.27 kb, nikt jeszcze nie pobierał tego pliku. 

ATARI8-KAREN.TXT 14.56 kb, liczba pobrań: 1 (od 2014-10-25) 

ATARI8-PANTHER.TXT 14.21 kb, liczba pobrań: 1 (od 2014-10-25) 

ATARI8-PE.TXT 14.24 kb, nikt jeszcze nie pobierał tego pliku. 

ATARI8-XLENT.TXT 14.27 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

9 Ostatnio edytowany przez greblus (2014-10-25 18:41:48)

Się skompilowało. W załącznikach iconv.exe z libiconv-2.dll i screen z Windows XP (testowałem też na W7).

Post's attachments

iconv.png 140.19 kb, nikt jeszcze nie pobierał tego pliku. 

iconv.zip 887.99 kb, liczba pobrań: 7 (od 2014-10-25) 

Tylko zalogowani mogą pobierać załączniki.

10

Dziękuję.

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

11

mono napisał/a:

Dziękuję.

To ja dziękuje! Bez tabeli mapowań (nad którymi musiałeś się sporo nasiedzieć) nie mielibyśmy takiego fajnego narzędzia :)

12

to ja w takim razie dziękuje x2 ! bowiem to ja prosiłem ! U mnie tak: eclipse + zestaw znaków z inversami i controlami, batch i po drugiej stronie atari800win z SDX + emupatch i batch który z powrotem poprzez H: zwraca xex-a. Z tym mapowaniem jeszcze potrzebuje ustawić tak by { } zamieniał na $( $) ale do tego już sam dojdę. Dzięki raz jeszcze. Pozdrawiam !

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

13

Nowy patch na libiconv.

Post's attachments

ATARI8-CAPEK.TXT 14.56 kb, liczba pobrań: 1 (od 2014-10-28) 

ATARI8-TCHEKO.TXT 14.44 kb, nikt jeszcze nie pobierał tego pliku. 

CP895_CP867.TXT 9.86 kb, nikt jeszcze nie pobierał tego pliku. 

PETSCII_LC.TXT 9.14 kb, nikt jeszcze nie pobierał tego pliku. 

PETSCII_UC.TXT 9.97 kb, nikt jeszcze nie pobierał tego pliku. 

ZX80.TXT 9.13 kb, nikt jeszcze nie pobierał tego pliku. 

ZX82-PL.TXT 7.02 kb, nikt jeszcze nie pobierał tego pliku. 

ZX82.TXT 6.68 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

14

dzięki wielkie!, u mnie wywala błąd podczas kompilacji tej łatki, w załączniku wersja windows standalone ze zlinkowaną biblioteka( ostatni patch nb3 ). Trzeba pamietać by w edytorach eclipse, notepad++ pod windą ustawić w opcjach konwersje EOL na Unix bez względu na kodowanie ale pomimo tego i tak wywala błąd jak napotka TAB. czy nie lepiej opracować patent na konwersje linux>win a potem win>atasci ? Chciałbym opracować nowy zestaw zgodny z archaicznym MAC/65 "saved" który jak wiadomo nie jest zgodny z atasci(nie chcę crosskompilatora zgodnego z MAC/65 z kilku powodów), ponadto chciałbym wrzucić konwersje znaków {} do $( i $) na atari z tym że tablice atari8_xxxxxx_page00_x są unsigned char, wygląda na to że funkcje atari8_xxxxxx_wctomb od nowa trzeba napisać.

@mono: czy dałoby radę w skrócie opisać jak bezboleśnie się do tego zabrać by nie wyważać już otwartych drzwi?

pozdrawiam serdecznie

Post's attachments

iconv.7z 669.72 kb, liczba pobrań: 2 (od 2014-10-28) 

Tylko zalogowani mogą pobierać załączniki.
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 Ostatnio edytowany przez greblus (2014-10-28 10:17:30)

Hej. W załączniku exe (static, stripped) z ostatnim patchem mono z obsługą:

ATARI ATARIST
RISCOS-LATIN1
ATARI8 ATARI8-ATASCII ATARI8-GRAPH ATASCII
ATARI8-ATASCII2 ATARI8-INT ATASCII2
ATARI8-KAREN ATARI8-PL
ATARI8-AWP
ATARI8-XLENT
ATARI8-PANTHER
ATARI8-PE
ATARI8-CAPEK ATARI8-CZ
ATARI8-TCHEKO
ZX80 ZX81
ZX82 ZXSPECTRUM
ZX82-PL ZXSPECTRUM-PL
PETSCII PETSCII-UC
PETSCII-LC
CP867 CP895 KAMENICKY KEYBCS2

Post's attachments

iconv.zip 726.33 kb, liczba pobrań: 3 (od 2014-10-28) 

Tylko zalogowani mogą pobierać załączniki.

16 Ostatnio edytowany przez Spencer (2014-10-28 10:34:28)

u mnie z tymi parametrami kompiluje ale z błędem: sh ./configure --prefix=/mingw --disable-shared --disable-nls --enable-extra-encodings

@greblus: mała prośba, czy mógłbyś sprawdzić u siebie czy konwertuje Ci tabulacje ?

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

17 Ostatnio edytowany przez greblus (2014-10-28 11:12:17)

Ten błąd z makrem w stdio.h:

#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ > (2, 16)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif

Brakuje mu operatora binarnego, bo pewnie makro się zmieniło w międzyczasie :)

Tabulatory konwertuje chyba ok (screen).

Post's attachments

tab.png 67.15 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.

18 Ostatnio edytowany przez mono (2014-10-28 11:35:34)

Procedura włączania własnego mapowania:

1. Ściągam i rozpakowuję wersję oryginalną:

$ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
$ tar zxf libiconv-1.14.tar.gz
$ cd libiconv-1.14
$ export ICV=$(pwd)

2. W $ICV/tests/ opracowuję sobie pliki z mapowaniem np. ATARI8-GRAPH.TXT.

3. Kompiluję sobie narzędzie do przetwarzania mapowań:

$ cd $ICV/tools
$ make 8bit_tab_to_h

4. Mapowanie przetwarzam za pomocą

$ cd $ICV/lib
$ $ICV/tools/8bit_tab_to_h "Atari 8-bit Semi-graphic ATASCII" atari8_graph <$ICV/tests/ATARI8-GRAPH.TXT

Jeśli trzeba wprowadzić jakieś poprawki do wygenerowanego pliku, to należy to zrobić dopiero teraz. Można oczywiście (i gorąco to polecam) też modyfikować $ICV/tools/8bit_tab_to_h.c żeby uniknąć modyfikowania generowanego kodu.

5. Uzupełniam pliki:
- $ICV/lib/aliases_extra.h

  S(extra_12, "ATARI8", ei_atari8_graph )
  S(extra_13, "ATARI8-GRAPH", ei_atari8_graph )
  S(extra_14, "ATARI8-ATASCII", ei_atari8_graph )
  S(extra_15, "ATASCII", ei_atari8_graph )

- $ICV/lib/converters.h

#include "atari8_graph.h"

- $ICV/lib/encodings_extra.def

DEFENCODING(( "ATARI8",
              "ATARI8-GRAPH", "ATARI8-ATASCII", "ATASCII",
            ),
            atari8_graph,
            { atari8_graph_mbtowc, NULL },     { atari8_graph_wctomb, NULL })

- $ICV/lib/flags.h

#define ei_atari8_graph_oflags (HAVE_ACCENTS)

Tu wydaje mi się wystarczy 0 - HAVE_ACCENTS prawdopodobnie stosuje się dla kodowań ze znakami diakrytycznymi (nie wnikałem w kod - trzeba by się w to zagłębić).

5. Kompiluję całość:

$ cd $ICV
$ ./configure --enable-extra-encodings
$ make

6. Instaluję:

$ sudo make install
$ sudo ldconfig

Edit: Nie wiem zupełnie czy i jak definiować mapowania wielobajtowe. Pewnie się da, bo wystarczy spojrzeć na kodowanie arabskie gdzie znaki pisze się od prawej do lewej.

Edit 2: Załączam jeszcze moją wersję narzędzia 8bit_tab_to_h.c bo oryginalna się nie kompiluje (poprawiłem to ze 3 lata temu i nie pamiętam ocb).

Post's attachments

8bit_tab_to_h.c 18.74 kb, nikt jeszcze nie pobierał tego pliku. 

ARABIC.TXT 24.25 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

19 Ostatnio edytowany przez mono (2014-10-28 11:42:32)

greblus napisał/a:

Ten błąd z makrem w stdio.h:

#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ > (2, 16)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif

Brakuje mu operatora binarnego, bo pewnie makro się zmieniło w międzyczasie :)

Tabulatory konwertuje chyba ok (screen).

Spróbujcie usunąć wrapper i wstawić tam tylko:

_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");

Kiedyś taka konstrukcja mi się kompilowała, ale po upgradach ubuntu przestało - w necie znalazłem tą poprawkę, wstawiłem i zaczęło się kompilować.

Edit: Poprawka oczywiście aplikowana jest na plik srclib/stdio.in.h

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

20

Spróbujcie usunąć wrapper i wstawić tam tylko:

_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");

Kiedyś taka konstrukcja mi się kompilowała, ale po upgradach ubuntu przestało - w necie znalazłem tą poprawkę, wstawiłem i zaczęło się kompilować.

Edit: Poprawka oczywiście aplikowana jest na plik srclib/stdio.in.h

Mono, błąd (w Mingw) jest dokładnie taki:

./stdio.h:1010:66: error: missing binary operator before token "("
#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)

Wystarczy dodać operator binarny: czyli np.  !__GLIBC_PREREQ > (2, 16)

i jest ok. Wywalenie tego makra oczywiście również załatwia sprawę :)

21 Ostatnio edytowany przez mono (2014-10-28 13:00:32)

@greblus: Jasne. Dzięki.

@Spencer: To załatwi sprawę kiedy zostanie odpalone przed iconv:

$ awk '{ gsub(/{/,"$("); gsub(/}/,"$)"); print }' <text.input >text.output

Tylko pewnie musisz najpierw http://gnuwin32.sourceforge.net/packages/gawk.htm

Edit: Aaaa zapomniałem. W moich paczach na libiconv EOL z ATASCII (155/$9B) jest mapowany na unixowe LF (10/$0A).

Edit 2: Możesz oczywiście strumieniem:

$ awk .. <input.txt | iconv -t atari8 > output.txt
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

22

@mono super ! awk działa jak należy ! jest on w pakiecie mingw nic nie trzeba sciągać

niestety u mnie wciąż wiesza się przy konwersji tabulacji utf-8 na atascii - w odwrotną stronę jest wszystko ok.

@geblus: próbowałem zarówno na swojej jak i Twojej kompilacji i za .. nie idzie, czy mógłbyś sprawdzić u siebie

iconv -f utf-8 -t atascii test_in.txt >> test_out.txt

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

23

Spencer napisał/a:

@greblus: mała prośba, czy mógłbyś sprawdzić u siebie czy konwertuje Ci tabulacje ?

Hej Spencer. Sprawdzilem jeszcze raz i masz rację, tabulatorów z utf-8 nie konwertuje. Nie zauważyłem tego, bo edytor w Action! konwertuje taby na spacje przy zapisie.  Są opcje podmiany niekonwertowalnych znaków, np. --unicode-subst= ale na to pewnie już wpadłeś.

24

Greblus dokładnie :) nie tylko action, robi to każdy inny edytor np. ED pod SDX, Panther TABY na spacje zamienia ale czy nie powinno to znaleźć się w tablicy ?

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

25

No jasne. Mapowanie zachodzi między ZNAKAMI a nie funkcjami znaków (choć nie do końca, bo EOL jest mapowany wg funkcji jaką sprawuje na NL). TAB w ATASCII ma kod $7F co jest mapowane na znak unicode $25B6 czyli "BLACK RIGHT-POINTING TRIANGLE" czyli "▶". Mapa jest dwukierunkowa więc z UTF8 na ATASCII szukany jest kod ASCII 9 (TAB) a takiego nigdzie nie ma - stąd konwersja zawodzi. Na szybko trzeba by pewnie zrobić tablicę mapującą funkcje i zostawiającą resztę znaków w spokoju. Albo zamienić 9 na sekwencję UTF8 dla kodu $25B6.

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