Autor Wątek: Czcionki i polskie znaki w CPC  (Przeczytany 11165 razy)

ZbyniuR

  • *****
  • Wiadomości: 2364
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Czcionki i polskie znaki w CPC
« dnia: 2014.03.01, 03:14:30 »
Każdy wie że w CPC wygląd znaków definiuje komenda SYMBOL a znaczenie klawiszy KEY DEF.  Jest to tak łatwe że wiele osób porobiło sobie polskie znaki po swojemu. Kilka razy poruszano ten temat w Bajtku. I nie tylko w nim. I niemal za każdym razem proponowano inny standard.

Bajtek 5/6-86 s13  -  11-86 s8  -  8-87 s12 (CPM)  -  5-88 s14 (PCW)  -  3-89 s20 (Hisoft Pascal)  -  8-89 s20 (w druku z cofaniem karetki)  - 
11-89 s17 (niestandardowe 7bitowe i przerabianie Tasworda na PL)  -  6-91 s27 (komunikator przez RS i PL-Mazowia)  -  10-93 s17 (prosty edytor)

Pomieszanie z poplątaniem, a i wygląd proponowanych znaczków też nie raz budzi zastrzeżenia. Z okazji że moda na retro komputery, chip-tune i 8bitowe kanciaste grafiki zatacza coraz szersze kręgi, a wiekowe komputery w tym i Amstrady/Schneidery wracają do łask. Dylemat który standard użyć wraca pod strzechy. ;)

Chciałbym wam przedstawić dwa standardy które jak dotąd nie były popularne w Amstradach, ale mają poważne zalety.

Pierwszym jest oficjalna polska norma kodowania polskich znaków w 7bitach zastępująca 12 zbędnych znaków ASCII o numerach poniżej 127.

`[email protected]|]{^[} \ $#
ąćęłńóśźż Ł ŚŻ

Właściwie jest to polskie uzupełnienie międzynarodowego standardu ISO/IEC646 który stosowano dość powszechnie w latach 70ych i 80ych w czasach gdy w biurach były tylko 8bitowe kompy na systemie CP/M. W niemal każdym kraju który używa łacińskiego alfabetu utworzono miejscowe normy jak uzyskać narodowe znaki na tych 12 dostępnych do modyfikacji kodach. I wiele drukarek miało w ROM-ach takie narodowe znaki. A te przerabiane nad Wisłą także te nasze. A w latach 90ych jedna z sieci komórkowych stosowała go w SMS-ach. Te same 12 znaków modyfikowały po swojemu inne narody które korzystały z Łacińskiego alfabetu w CP/M. http://pl.wikipedia.org/wiki/ISO/IEC_646
Zachodnie publikacje nie wspominają o polskiej normie w tym temacie, a rodzime różnią się w szczegółach. Np Wiki podaje tu późniejszą wersję w której znak dolara ma być znaczkiem zł a jedyna duża litera Ł znika, bo gdy PC wyparły z biur 8bitowce to znak \ zaczęto używać do podawania ścieżki dostępu do plików.

A jak to wygląda w Amstradzie? - Francuskie i skandynawskie wersje do dziś używają tego kodowania swoich literek w ROMie, a także w niemieckich programach choć tu muszą sobie same modyfikować wygląd znaków i mapę klawiatury. Art-Studio pozwala tworzyć fonty o kodach od 32 do 126, więc i PL w 7bit się w nich mieści. Takie pliczki zajmują 768 bajtów i sporo czcionek w takiej postaci krążyło na 3 calowych dyskach. Także tych dodawanych do Art-Studia. Jeśli masz (wiekową) drukarkę z odpowiednim ROMem możesz drukować w tym standardzie polskie znaki nawet bez dorabiania w CPC 8-go bitu. Co jest bardzo wygodne. A jeśli drukarka ci niepotrzebna to możesz wykorzystać na maksa te 12 znaków i dopisać prócz Ł także Ś na dolarku i Ż na heszu, co w domowych zastosowaniach wystarcza. Bo reszta dużych polskich znaków jest dość rzadko spotykana. Na ąęń nie zaczyna się żadne słowo a na ćóź jest ich zaledwie po kilka. :)

Żeby ich użyć w swoich programach wystarczą 2 linijki Basica. Tyle że komendę SYMBOL trzeba zastąpić jej odpowiednikiem w postaci znaku sterującego CHR$(25) uzyskiwanego przez Ctrl+Y i wstawić ją w PRINT a po nim znak który chcemy zmienić, a wtedy 8 następnych znaków które "wyświetlimy" PRINTem nie ukażą się tylko utworzą nowy wygląd tego znaku. Czyli w zaledwie w 10 bajtach na każdy znak. Więc 12 znaków zmieści się w jednej linijce Basica. Jedynie znaku CHR$(0) nie można użyć bezpośrednio a jako zmienną. Byle na początku ustawić SYMBOL AFTER 32 aby zezwolić na modyfikowanie znaków powyżej tego kodu. Po czymś takim można korzystać z czcionek z Art-Studia wystarczy LOAD"nazwa.fnt",HIMEM+1 i już mamy nową czcionkę. :) A jeśli nie ma w niej polskich znaków, to w pliczku POL.BAS w liniach 190-200 jest procedurka co kopiuje wygląd podstawowych znaków pod właściwe adresy a potem dodaje kreski i ogonki. W takiej wersji zadziała to na czcionkach o normalnej szerokości 8 pikseli. :) Wszystkie te znaki są dostępne z klawiatury choć w dziwnych miejscach np ć jest na Ctrl+2, ale KEY DEF pozwala je podstawić gdzie tylko chcemy, jednak prościej jest dzięki POKE. Od adresu 46230 zaczyna się mapa klawiatury. 80 klawiszy razy 3 ich znaczenia (same, ze shiftem i controlem, w sumie to 240 bajtów) czyli od początkowego adresu tej mapy dodajesz nr klawisza + (ewentualnie) 80, jeśli chodzi ci o znaczenie ze shiftem lub + 160 z Ctrl i masz komórkę gdzie musisz wpisać POKE z kodem który chcesz na tym klawiszu. W pętli FOR NEXT wystarczy linijka Basica by zdefiniować dziesiątki takich klawiszy.

Z okazji że CPC ma tylko 3 znaczenia każdego klawisza* a edytory tekstu z Controlem mają jakieś tam swoje funkcje, to polskie znaki w CPC zwykle podstawiano na klawiszach funkcyjnych/numerycznych, ale w naszych własnych produkcjach możemy na literowych tak jak w PC. O ile nie korzystamy ze znaczków sterujących. ;) W POL.BAS w lini 170 komentarz wyjaśnia jak to wybrać w razie potrzeby. :)
*Tylko 3 znaczenia klawisza, tzn tak to definiuje OS, ale np w SymbOS-ie są 4 znaczenia bo tam Ctrl+Shift daje 4-te znaczenie.



Jeśli jeszcze nie przestałeś tego czytać, to dowiesz się jaki drugi standard uważam za warty uwagi. ;)

A jest nim http://pl.wikipedia.org/wiki/Windows-1250
To oficjalna nazwa standardu który używamy w PeCetach.  PL znaki mają w nim kody powyżej 127, a pliki tekstowe które je zawierają bez problemu wyświetlają się na CPC, (co widać choćby na tej dyskietce z listingami i artykułami z Bajtka) i to bez potrzeby konwertowania. Co uważam za jego ogromną zaletę, gdyż cały zasób plików z których korzysta bez mała cały mówiący po polsku świat, staje przed nami otworem. A czego nam nie da ŻADEN INNY standard. :)
Oki, wyświetla się bez problemu a jak z pisaniem na CPC i przenoszeniu tego do PC? - Kody o numerach mniejszych niż 160 gryzą się troszkę z definicjami dla klawiszy funkcyjnych. Co poprawiamy kilkoma poleceniami  KEY i KEY DEF. A znaki o kodach większych niż 239 w CPC sterują kursorami i nie da się nimi pisać, a w tym standardzie są takie dwa, małe litery ń i ó...  Dlatego proponuję by na CPC zdefiniować te literki dwa razy, raz pod 241 i 243 by dobrze się wyświetlały teksty z PC, i jeszcze na 210 i 212 by nimi pisać w CPC, a na PC te kody widać jako duże Ň i Ô z daszkami wziętymi bodajże od naszych południowych sąsiadów. A w razie potrzeby można łatwo je zmienić w całym tekście dzięki Ctrl+H na zwyczajne ń i ó. :)  Kilka poniższych linijek wystarczy by CPC wyświetlał 18 polskich znaków + myślniki, wielokropek, dolny i górny cudzysłów oraz znak Euro na F0 i Ctrl+U. A są to znaczki które się zdarzają w netowych i reduxowych tekstach. W sumie modyfikujemy wygląd następujących znaków:

ąćęłńóśźż ĄĆĘŁŃÓŚŹŻ ŇÔ €…—„”    - wygląd w PC
ąćęłńóśźż ĄĆĘŁŃÓŚŹŻ ńó €…—„”    - wygląd w CPC

Procedura które definiuje i podkłada pod klawisze te znaczki jest w liniach 280-310 w POL.BAS :)
A procedura która dorabia wszystkie te polskie znaki do dowolnej czcionki jest w liniach 340-350.

Znaki są na funkcyjnych, małe z Ctrl a duże ze shiftem, oraz małe z ctrl i literą podstawową jak na PC (źnaX), a duże też między klawiszami literowymi a Returnem i prawym shiftem (też z Ctrl). A czemu akurat na takich? bo w tych samych linijkach są ich małe wersje. :)
               _
QWęRTY€IóP  ĘÓ| |ąćę
ąśDFGHJKł  ĄŚŁ|_|łńó
żźćVBńM   ŻŹĆŃ|_|śźż
|__|_|_______|__|€-F0

Teraz tylko pozostaje mi przerobić TASWORDa na oba standardy, który może nie jest najlepszym ale był najpopularniejszym edytorem i łatwo się go przerabia, więc kiedyś się wezmę, słowo. ;)  Można też napisać programik do konwersji między nimi i ewentualnie innymi jak ktoś zgłosi taką potrzebę. Lub do drukowania plików na drukarce bez polskich znaków, albo w Latin2 bo chyba w takim standardzie są te z lat 90ych. Bo teraz to już chyba tylko w trybie graficznym się drukuje. Ale w sumie to chętnie się dowiem na ten temat więcej bo jestem zielony. :)

SYMBOL AFTER 32:CALL &BB00    <- Jakby co, to to przywraca czcionkę i mapę klawiszy z ROM-u.


A tu dokładniejszy opis co gdzie jest w POL.BAS

RUN - tryb, kolory, włącza PL-7bit i opis standardu w LIST 90-150
GOSUB 160 - PL-7bit - kończy się RETURN-em w lini 170
RUN 190  - to przerabia czcionkę z ArtStudia dorabiając znaki PL-7bit
LIST 210-270  - opis standardu Windows 1250 (najpierw RUN by były znaczki)
RUN 280  - tworzy znaki Win-1250 i wstawia je na F0-F9 oraz na klawiszach A-Z i obok
RUN 340  - dorabia do dowolnej czcionki w pamięci znaki PL w Win-1250
RUN 360  - wyświetla aktualną mapę klawiatury i wszystkie znaki od 32 - 255

I jeszcze ciekawostka dawać znać która czcionka się podoba to zakosimy Atarowcom do CPC, a co? ;) :P :D
I dorobi się programik co konwertuje je do takiej postaci jaki ma Art-Studio.
http://atarionline.pl/v01/index.php?subaction=showfull&id=1236639234&archive=&start_from=&ucat=7&ct=poczatki

TREK is better than WARS.. ;)

Waldow

  • *
  • Wiadomości: 14
Odp: Czcionki i polskie znaki w CPC
« Odpowiedź #1 dnia: 2014.03.01, 11:26:43 »
Gratulacje za posta, wprawdzie "Amstradowiec" ze mnie żaden lecz pomysł ciekawy także dla reszty retro sprzętu, gdzie z polonizacją krucho.
Mam tylko dwie uwagi:
1.
Cytuj
Pierwszym jest oficjalna polska norma kodowania polskich znaków w 7bitach zastępująca 12 zbędnych znaków ASCII o numerach poniżej 127.
`[email protected]|]{^[} \ $#
ąćęłńóśźż Ł ŚŻ
...
Zachodnie publikacje nie wspominają o polskiej normie w tym temacie, a rodzime różnią się w szczegółach. Np Wiki podaje tu późniejszą wersję w której znak dolara ma być znaczkiem zł a jedyna duża litera Ł znika, bo gdy PC wyparły z biur 8bitowce to znak \ zaczęto używać do podawania ścieżki dostępu do plików.

Jesteś pewny, że Wiki podaje późniejszą wersje? cokolwiek by to nie miało znaczyć, podajesz Ł Ś Ż których w polskiej normie BN-74/3101-01 brak.
W normie brak jakichkolwiek dużych polskich znaków.
# $  @ [ \ ]  ^  ` { |  } ~     ISO/IEC 646
# zł  ę  ź \ ń ś ą ó ł  ż ć     BN-74/3101-01

2. Czy nie lepiej jako standard kodowania wybrać standard czyli ISO8859-2 a nie CP-1250 który standardem nie jest.

ZbyniuR

  • *****
  • Wiadomości: 2364
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Czcionki i polskie znaki w CPC
« Odpowiedź #2 dnia: 2014.03.01, 15:15:49 »
Odp.1 - Po pierwsze wiki nie zawsze ma rację. Trochę poszperałem w necie zanim sobie te znaczki tak zrobiłem. I niektóre opisy tego standardu jakie znalazłem zostawiają dolarka jaki jest, czyli nie wciskają tam zł, za to na \ jest w nich jako jedyna duża litera Ł. I było to raczej na stronach bez tzw hiperłączy i reklam (które są wynalazkiem stosowanym w AmigaGuide i potem w HTML z drugiej połowy lat 80ych) stąd moje wrażenie że wersje z Ł były starsze. Jednak głowy za to nie dam, a dat w nich nie szukałem. Jeden z tych tekstów był napisany w tym 7bitPL. A nawet na jakiejś stronce kody do ź i ż były podane odwrotnie. I nie każ mi teraz tego znowu szukać. Te backsleshe w ścieżkach dostępu to jedyne sensowne uzasadnienie zniknięcia tej litery jakie przyszło mi do głowy. Uznajmy to za moją nadinterpretację. :)

A dodanie znaków Ś i Ż na $ i # to moja inicjatywa zmodyfikowania/poszerzenia tego standardu. I może nie podkreśliłem tego dostatecznie wyraźnie w poprzednim poście. A czemu proponuję akurat te litery i czemu tam?
Przed laty gdy CPC był moim jedynym kompem, przez kilka lat posługiwałem się spolszczonym Taswordem który z dużych liter miał tylko Ł i Ż. Sprzedałem to dawno temu i nie pamiętam na jakich kodach były te znaki. Ale jestem pewien że angielskie znaki których nie używamy w polskim jak QXV były w nim nie zmienione, a w Bajtku 11-89 s17 artykuł o tym jak dorobić do angielskiego Tasworda polskie znaki. Proponują by ć  było zamiast X. Więc nie miałem identycznej wersji, zwłaszcza że moja była w pełni spolszczona a nie tylko z dodanymi znaczkami. Nawiasem mówiąc resztę kodów które modyfikują w tym artykule wzięto z tych 12 znaków z ISO/IEC646 ale tylko ź i Ż są na tym samym znaku a reszta jest zupełnie inaczej. W każdym bądź razie mając tylko Ł i Ż, jedynym dużym polskim znakiem jakiego czasem mi brakowało było Ś. Stąd moja propozycja takich akurat dużych znaków, a czemu na $ i # ? - Cóż, dolar w Basicu jest używany do zmiennych tekstowych a gdy wygląda jak Ś to listing nadal jest czytelny. A więcej znaków  ISO/IEC646 modyfikować nie pozwala. Wydaje mi się to najrozsądniejszym rozwiązaniem. I kto wie czy już ktoś wcześniej na to nie wpadł, ale widać nie zdołał przekonać i programistów i polonistów do takiego rozwiązania. :)

Odp.2 - ISO8859-2 od CP-1250 (czyli Latin2 od WindowsPL) różni się tylko sześcioma innymi kodami z pośród 18 wszystkich polskich znaków, (ĄŚŹąśź), pozostałe znaczki typu €, myślniki i cudzysłowy też są identyczne. Latin2 powszechnie jest używany na stronkach internetowych, a system operacyjny Windows tak sprytnie konwertuje teksty między tymi dwoma "sposobami kodowania" (skoro słowo standard ci się nie podoba) ;) np. przy przenoszeniu fragmentów tekstu z przeglądarki do edytora lub z edytora do okienka na stronce w której wpisujemy posty na forum. I to w locie w sposób niezauważalny dla użytkownika, że większość ludzi nie jest świadoma że to są dwa różne "sposoby kodowania". Tak na marginesie dzięki temu że akurat te dwa sposoby się ze sobą nie gryzą, tzn nie ma przypadków by jakiś kod miał jedno znaczenie w jednym z nich a inne w drugim, można zrobić (także na CPC) czcionkę która wyświetla prawidłowe ogonki w TXT z Windy jak i w HTML. Jak dojdziemy do tego że będziemy tworzyć na CPC przeglądarkę internetową lub choćby pokazywałkę HTM to mam już gotowe rozwiązanie. ;) Moim celem jest zaproponować/rozpropagować taki standard który będzie najprostszy, najbardziej użyteczny i najmniej kłopotliwy dla użytkowników przy pisaniu i przenoszeniu tekstów między platformami. :) Jestem leniwy i wygodnicki, świata nie zmienię a Winda jest wszechobecna, stąd pomysł na WinPL i moja modyfikacja dla literek ń i ó.

Nie wiem czy na innych platformach takie rozwiązanie nie napotkałoby na jakieś przeszkody. Dlatego moja propozycja jest kierowana do Amstradowców. Choć nie widzę przeszkód by rozmowa o standardach polskich znaków, czy też o czcionkach i ich konwersji między platformami nie mogła się toczyć w tym wątku. A nawet mam na to nadzieję. :)
TREK is better than WARS.. ;)

Waldow

  • *
  • Wiadomości: 14
Odp: Czcionki i polskie znaki w CPC
« Odpowiedź #3 dnia: 2014.03.01, 16:14:32 »
Odp.1 Po pierwsze wiki nie zawsze ma rację.

Jestem za a nawet przeciw, ale tu nie chodzi o Wiki tylko twoje stwierdzenie, "Pierwszym jest oficjalna polska norma kodowania polskich znaków" podczas gdy nie opisujesz normy, lecz implementacje niezgodne z nią, ISO 646 zatwierdzono w 1972 nasza norma BN-74/3101-01 to bodajże 1974.
Późniejsza zmiana normy ISO w 1991 roku, to zamienienie uniwersalnego znaku waluty dolarem.
Co do kodowania 7-bit, nie lepiej użyć dwóch podmian
# zł ę ź \ ń ś ą ó ł ż ć          pl
# ZŁ Ę Ź \ Ń Ś Ą Ó Ł Ż Ć          PL
jest to o tyle funkcjonalne, że można WRZESZCZEĆ ILE WLEZIE ;) jak i normalnie pisać, a sama podmiana, by była jak najbardziej uniwersalna nie tylko dla nas, lecz dla innych odmian narodowych Niemcy, Francja.

Odp.2 Nie mogę się z tym zgodzić, najlepiej widać to w poniższym pliku str. 16, 17 i 18.

http://we.pb.edu.pl/~jforenc/2008_2009_02/INF1-2009-Wykl-03-Dzienne.pdf

W obszarze nieużywanym w ISO, CP przechowuje masę fontów.

Cytuj
Moim celem jest zaproponować/rozpropagować taki standard który będzie najprostszy, najbardziej użyteczny i najmniej kłopotliwy dla użytkowników przy pisaniu i przenoszeniu tekstów między platformami.

No i tu CP1250 nie specialnie się sprawdza, bo zawiera fonty których gdzie indziej nie ma, dopiero UTF8 może to pogodzić. A to już całkiem inna bajka.
« Ostatnia zmiana: 2014.03.01, 17:29:22 wysłana przez Waldow »

ZbyniuR

  • *****
  • Wiadomości: 2364
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Czcionki i polskie znaki w CPC
« Odpowiedź #4 dnia: 2014.03.01, 17:28:35 »
Testy nie wykazały bym miał małą inteligencję, a jednak cie nie rozumiem. Jakoś tak niejasno, bez ładu i składu napisałeś.
Proponowane przeze mnie rozwiązania działają, a zajmują tylko po 2-3 linijki Basica. Jeśli zajdzie taka potrzeba mogę zrobić podobnymi metodami wersje dla innych języków i to nie tylko tych co korzystają z łacińskiego alfabetu. Faktem jest że nie przywiązuję przy tym wagi do ścisłych definicji, bo liczę na inteligencję i aplauz otoczenia, a nie na czepialstwo tych co nawet nie zamierzają używać tego o czym tu piszę.

"nie lepiej użyć dwóch podmian" - cokolwiek masz na myśli - Możesz napisać program który to realizuje na dowolnej platformie i podać pod ocenę forumowiczów, bo ja nie widzę w tym sensu.

Po co tego PDF-a wysłałeś, nie mam bladego pojęcia. Nie widzę związku z tematem wątku.

A jeśli uważasz że UTF-8 jest tu pomocny w czymkolwiek to wg. mnie raczej nie zrozumiałeś moich intencji. Przecież Unicode zawiera tysiące znaków co tylko by skomplikowało sprawę. Co w ogóle nie jest tu potrzebne i na pewno nie zmieściłoby się w trzech linijkach. ;) A moje rozwiązanie się sprawdza i to bardzo dobrze. Po to je stworzyłem i po to nadałem mu taką a nie inną postać. :)

Jeśli twoje dalsze wypowiedzi będą równie konstruktywne, to będę ignorował twoje wpisy.
TREK is better than WARS.. ;)

Waldow

  • *
  • Wiadomości: 14
Odp: Czcionki i polskie znaki w CPC
« Odpowiedź #5 dnia: 2014.03.01, 17:35:39 »
Sorki za błędny link, już jest poprawiony.

Problemem jest konwersja
ISO8859-2 -> CP1250  sześć znaków różnicy to jest ok
CP1250 -> ISO8859-2 trzydzieści trzy znaki różnicy, 27 których nie ma i sześć z polskimi znakami.

Czy teraz widzisz problem? Bo to co piszesz to czysty syndrom użytkownika Windows, czyli "U mnie ładnie konwertuje". Dlatego pisze o UTF8, bo konwersja CP1250 -> UTF8 u mnie też ładnie konwertuje. ;)
Cytuj
Latin2 powszechnie jest używany na stronkach internetowych, a system operacyjny Windows tak sprytnie konwertuje teksty między tymi dwoma "sposobami kodowania" (skoro słowo standard ci się nie podoba)
Internet to ISO nie twój Latin2

W przypadku 7-bit jak masz zamiar pisać "DRUKOWANYMI" tekst? Lepszy już brak dużych polskich liter, tak jak proponuje norma, niż taka prowizorka.


« Ostatnia zmiana: 2014.03.01, 18:29:25 wysłana przez Waldow »

ZbyniuR

  • *****
  • Wiadomości: 2364
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Czcionki i polskie znaki w CPC
« Odpowiedź #6 dnia: 2014.03.01, 20:33:18 »
Ech zapomniałem wspomnieć o jeszcze jednej prostej i często spotykanej w Amstradowych programach metodzie uzyskiwania na ekranie, yyy tym razem takich pseudo-polskich znaków. :) Znanej także z drukowania na drukarkach które nie mają w sobie polskich czcionek. Mówię o cofaniu karetki (lub kursora w przypadku ekranu) i wydrukowaniu na znaku litery drugiego który doda kreseczkę lub ogonek, by uzyskać coś co każdy Polak odczyta jako polski znak, nawet jeśli wygląda niezbyt ładnie.

W obu przypadkach do cofnięcia, stosuje się ten sam kod ASCII nr 8. Tyle że na ekranie CPC trzeba wpierw włączyć przezroczyste tło, aby wydrukowanie znaku z ogonkiem na literze nie skasowało tej litery. Aby to zrobić, trzeba wyświetlić komendą PRINT znak CHR$(22) a po nim dowolną nieparzystą cyfrę, (parzysta wyłącza przeźroczyste tło). Przerwanie programu i wyświetlenie się Ready także wyłącza przeźroczystość.

Znak 22 można też uzyskać przez Ctrl+V a znak cofnięcia 8 przez Ctrl+H. I taką metodą można uzyskać praktycznie wszystkie polskie znaki. np. o+'=ó, e+,=ę, a Z+-=Ż itd. itp.  Co stosuje się dość powszechnie w programach które są tak krótkie że definiowanie w nich polskich znaków zajęłoby ich połowę, a wyświetlenie jakiegoś komunikatu bez ogonków mogłoby się okazać zbyt nieczytelne. :)  Przykładem zastosowania tego triku jest program ANIMACJA.BAS z dysku jaki dodałem do pierwszego wpisu w tym wątku.

Dopiero gdy ilość takich komunikatów w programie jest dość duża, ma sens definiowanie w nim polskich znaków, (wszak każdy taki znak zajmuje 3 bajty zamiast jednego i jest mało wygodny we wpisywaniu), np. samych małych w 7bit które są dostępne z klawiatury od razu, (by sobie odpuścić konieczność definiowania klawiszy) lub dowolnie pełniejszą wersję, zależnie od potrzeb. :)

A tak w sumie to jestem ciekaw czy na innych platformach podobny trik też działa. :)
TREK is better than WARS.. ;)

pear

  • Administrator
  • *****
  • Wiadomości: 4915
  • Miejsce pobytu:
    Będzin
  • Z80 only
Odp: Czcionki i polskie znaki w CPC
« Odpowiedź #7 dnia: 2014.03.01, 20:50:14 »
(...)I taką metodą można uzyskać praktycznie wszystkie polskie znaki. np. o+'=ó, e+,=ę, a Z+-=Ż itd. itp.  (...)
A tak w sumie to jestem ciekaw czy na innych platformach podobny trik też działa. :)
Mam współczesną drukarkę etykiet Casio, która potrafi drukować tą metodą.
ZX/Enterprise/CPC/Robotron/C128D

Waldow

  • *
  • Wiadomości: 14
Odp: Czcionki i polskie znaki w CPC
« Odpowiedź #8 dnia: 2014.03.03, 12:47:11 »
Moje dwie uwagi dotyczą prośby byś nie proponował rozwiązań sprzecznych z obowiązującą normą.
Dotyczy to podanego przez ciebie "ąćęłńóśźż Ł ŚŻ" jak i użycia CP1250 do kodowania 8-bit. I tylko tyle.

Co do proponowanej "podwójnej podmiany", jest podobna do opisanego przez ciebie "cofania karetki".

Przyjmijmy, że tworzysz procedurę wyświetlającą tekst z pliku na ekran komputera.
Pierwsza podmiana to zadeklarowanie w jakiej odmianie narodowej normy ISO 646 ma być interpretowany kod znaku, druga to w naszym przypadku "trik" by na 12 dostępnych kodów znaków przypadało 18 polskich fontów.

Jak to powinno działać:
Procedura po napotkaniu określonego kodu sterującego interpretuje następny w kolejce znak w określony sposób np. jeżeli następnym kodem jest "0x4C" czyli "L" procedura "interpretuje" jego kod jako "0x7C", lecz wyświetla nie font normowany "ł" lecz zamienny "Ł".

Pozostawiasz wtedy nietknięty standard, a masz dostępne wszystkie potrzebne nam znaki.
« Ostatnia zmiana: 2014.03.03, 14:34:52 wysłana przez Waldow »

ZbyniuR

  • *****
  • Wiadomości: 2364
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Czcionki i polskie znaki w CPC
« Odpowiedź #9 dnia: 2014.08.26, 14:26:07 »
Zrobiłem sobie ruską czcionkę. I naprawdę zabawnie wyglądają listingi Basica wyświetlane ruskimi literami. :)
Ale mam problem z przeniesieniem rosyjskiego tekstu z PC do CPC tak by go wyświetlił.

Podstawiłem je pod takie kody jak tu:  http://en.wikipedia.org/wiki/ISO/IEC_8859-5
Ale gdy zapisuję plik jako tekst tak by przypadało po jednym bajcie na znak to wszystkie się zamieniają w pytajniki. :(
Jedyny sposób jaki znalazłem by zapisał tekst bez dodatkowych informacji o krojach liter (co bardzo zwiększa i komplikuje plik) to np. w WordPadzie "Unicode Text". Oczywiście zapisuje każdy znak jako dwa bajty. Pierwszy to kod jak w tabelce z linka, ale zmniejszony o 160, a drugi to zawsze kod 4. Niby proste, tylko że coś się pierdzieli z kodami kontrolnymi mimo że nie powinno i po parę znaków wyświetli, a parę nie, w jakimś chaotycznym porządku. :(

Co zrobić by zapisać ruskie litery na PC jako jednobajtowe?
TREK is better than WARS.. ;)

ZbyniuR

  • *****
  • Wiadomości: 2364
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Czcionki i polskie znaki w CPC
« Odpowiedź #10 dnia: 2014.08.26, 20:49:59 »
Problem rozwiązany. Importuję plik jako Binarny a nie ASCII i przestaje grymasić tzn pomijać całe słowa i widzieć kod końca pliku już w pierwszych linijkach. Działa - wyświetla ruskie teksty, ale nie jestem zadowolony z prędkości bo nim wyświetli każdą "bukwę" musi analizować w kilku IF-ach dwa sąsiednie bajty. Więc myślę by jednak przerobić to na konwerter, wtedy plik wynikowy będzie zajmował połowę tego miejsca i jednym PRINT-em będzie wyświetlał całe linijki. :)
Póki co upchałem to w 9 linijek Basica, razem z wyglądem 66 znaków i mapą klawiatury w standardzie zbliżonym do jaWERTY - Russian Phonetic.
Na razie zajmę się się czymś podobnym, ale dla kilkunastu zachodnioeuropejskich języków w jednym. Będzie prościej bo nie będzie już Unicode, czcionkę mam wydłubaną ze CPM-a, tylko trzeba poukładać kolejność liter by pasowała do Win-1252, no i stworzyć albo znaleźć jakąś uniwersalną mapę klawiatury, lub kilka dla popularniejszych języków. ;)

Nie pytajcie dlaczego - dla jaj. ;) A prace nad Bajtkami leżą.
TREK is better than WARS.. ;)

ZbyniuR

  • *****
  • Wiadomości: 2364
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Czcionki i polskie znaki w CPC
« Odpowiedź #11 dnia: 2014.09.02, 08:07:21 »
Ostatnio jakbym obsesji dostał na punkcie robienia czcionek. Zrobiłem zestaw zachodnich i środkowo europejskich ogonków, oraz alfabety ...., A nie, nie powiem - może ktoś rozpozna z drugiego obrazka wszystkie 5. :D

W planach jeszcze hinduskie i arabskie. I na tym zakończę obce alfabety. Choć może jeszcze parę ładnych czcionek zrobię każdy z innej beczki, ale już tylko angielskie i polskie. W tym przynajmniej jedną 16x16 pikseli i przynajmniej jedną ze zmienną szerokością każdej z liter. No i programik do wyświetlania plików txt z Unicode. W tym także alfabety pisane od prawej do lewej.

Z Arabskim będzie kłopot ma 28 liter i większość z nich występuje w 4ech formach, (czasem bardzo różnych), zależnie czy są na początku wyrazu, w środku, na końcu lub samotnie. A do tego część kodów to nie litera a jakieś ogonki czy akcenty które się nakładają na litery. Brrrr. Będzie ciężko to zgrać. W Atarkach kiedyś zastosowano uproszczoną postać z dwoma zestawami znaków plus zawijasek udający koniec wyrazu. Może się zainspiruję. ;)

W Devanagari (bo tak się nazywa alfabet do Hindi, Sanskrytu i jeszcze paru języków) jest sporo dwuznaków i wszystkie muszą się ładnie stykać gdy są obok siebie. Na deser w obu językach są inne cyfry niż u nas.
Nad mapami klawiatur się nawet nie męczę tylko podstawiam pod takie znaki które są odpowiednikami tych samych liter w Łacińskim. Choć w jednym z alfabetów się tak nie dało. Ciekawe czy ktoś zgadnie w którym i czemu? ;)

Oczywiście jeśli ktoś jest zainteresowany to niech da znać. Łatwo przenieść na inne 8bit jakby co. :)
TREK is better than WARS.. ;)

pear

  • Administrator
  • *****
  • Wiadomości: 4915
  • Miejsce pobytu:
    Będzin
  • Z80 only
Odp: Czcionki i polskie znaki w CPC
« Odpowiedź #12 dnia: 2014.09.02, 08:21:12 »
chiński, cyrylica, grecki, hebrajski i celtyckie runy :)
ZX/Enterprise/CPC/Robotron/C128D

ZbyniuR

  • *****
  • Wiadomości: 2364
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Czcionki i polskie znaki w CPC
« Odpowiedź #13 dnia: 2014.09.02, 08:41:00 »
No ciepło, ale jeszcze troszkę poczekam, może ktoś sprecyzuje. ;)
TREK is better than WARS.. ;)

ikci

  • *****
  • Wiadomości: 1216
  • Miejsce pobytu:
    Kraków
Odp: Czcionki i polskie znaki w CPC
« Odpowiedź #14 dnia: 2014.09.02, 08:53:47 »
W Cyrylicy !
ZX Spectrum 48K, ZX Spectrum +, ZX Spectrum 128K, ZX Spectrum +2, ZX Spectrum +2B, ZX Spectrum +3, TIMEX TC2048, UNIPOLBRIT Komputer 2068, Didaktik Gama 80kB, 
Amstrad/Schneider CPC6128, Schneider CPC464, Commodore C64, Atari 800XL, 65XE 130XE, A500+, A600, A1200, ATARI 1040 STF