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.
`~@|]{^[} \ $#
ąćęłńóśźż Ł ŚŻ
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-1250To 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?

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