Coś mi idzie jak po grudzie, dlatego wykresy 3D kiedy indziej. Póki co uznałem że nie dam wam dłużej czekać i zaprezentuję to co już mam.
GRUBE.BAS - to pchełka zza granicy drukowana też w Bajtku dająca nową funkcję pozwalającą jednym znaczkiem zmieniać grubość standardowej czcionki. Przykład w programie, podejrzyjcie listing.

Niestety każde użycie tego znaczka przywraca standardowy wygląd wszystkim znakom jakie ewentualnie w międzyczasie zdefiniowaliśmy (np polskich). Co może być nieco kłopotliwe, ale można sobie z tym poradzić. Dajcie znać jak komuś by na tym zależało.
RD.BAS - to nowe RSX-y z francuskiej gazety (także były w Bajtku). Pozwala używać 64KB ramdysku jako dysk o nazwie |M, a dodatkowo daje komendy |COPY, |TYPE i |FORMAT. Zdaje się że ZX+3 ma takie coś już w ROMie. Zawartość Ramdysku potrafi przetrwać reset, trzeba tylko potem ponownie wczytać i aktywować te RSXy. Niestety zdaje się że nie obsługują większych rozszerzeń pamięci ani gęstych stacji.
Chodzi mi po głowie by kożystając z nich napisać na nowo takie coś co będzie puszczadłem wyświetladłem i uruchamiadłem do pliczków, by nie wklepywać rozkazów i parametrów na piechotę. Zrobiłem przed laty coś takiego, co prócz porządkowania plików (kopiowanie (zaznaczając wiele plików), zmiana nazw, kasowanie i odkasowywanie), wyświetlało też pliki tekstowe, czcionki, i obrazki z Art Studia (scr+pal), samorozkompresowujące się (csi) oraz obrazki nieskompresowane (17KB). Pozwalał też tworzyć i edytować krótkie pliki tekstowe i uruchamiać programy, a w rogu ekranu chodził sobie zegarek. To był najlepszy użytek jaki w życiu napisałem, który niestety zaginął. Ale jak jeszcze znajdę Bajtka w którym była procedura wyświetlająca obrazki z Art Studia to będę miał wszystko by to napisać ponownie.

80OK.BAS - Już znacie. Teraz dodałem zmodyfikowaną wersję z czcionką w paski 80WPASKI.BAS, oraz 80W3KOL.BAS, to ta dziwna czcionka z obrazka z poprzedniego wpisu. Która w innym kolorze wyświetla cyfry, w innym duże litery a w innym resztę. Mam nadzieję że was to zaintrygowało.

Gdy przed laty odkryłem że można tworzyć taką kolorową czcionkę zacząłem pisać nakładkę ze strzałką i okienkami, bo łatwo z tego zrobić małe sprajty i gadżety jakie są na krawędziach okienek. Jednak przydały by się do tego RSXy do zachowywania i odtwarzania z pamięci zawartości okienek. A były dwie wersje, jedna zapisywała okienko o podanych współrzędnych jako ciąg znaków jakie zawierała, (takie okienko zajmowało mało miejsca w pamięci) a druga wersja pamiętała cały fragment ekranu co do piksela. Mam nadzieję że odkryje te RSXy w jakiejś gazecie ponownie i dokończę to co przed laty nie skończyłem bo przesiadłem się na Amigę.

40OK.BAS - To coś podobnego jak 80OK tyle że tu mamy w MODE 0 (szerokie kolorowe piksele) wąską czcionkę z 40 znaków w wierszu w 16 kolorach. POKE 47043 zmienia szerokość czcionki na taką jaka jest w trybie którego wartość tam wpiszemy. POKE 46892 to parametr ile znaków ma się mieścić na ekranie, czyli 79 dla 80 lub 39 dla 40. Komenda PEN zmienia tu tylko 3 kolory jak w MODE 1, a inne są dostępne wpisując POKE &bf2f odpowiada komendzie pen a POKE &bf30 odpowiada komendzie PAPER. Tyle że wartość jaką trzeba podać jest strasznie dziwna wpisałem w tabelkę k(). Wartości 0,192,12,204,48,240,60,252,3,195,15,207,51,243,63,255 które odpowiadają kolorom pisaka od 0 do 15. Przy okazji we wcześniejszym 80OK, w ten sam POKE wartości 0,240,15,255 odpowiadają pisakom 0 do 3. A podanie innych wartości sprawia że literki mają tam pionowe (a nie poziome) kolorowe paski.
80.BAS - To wersja 80OK.BAS ale tu z czcionką która nie ma dwóch kopii znaku 4x8 w matrycy 8x8 co daje ciekawy efekt kursora w innym kolorze niż tekst w jakim piszemy, dość rzadkie i to nie tylko w CPC. Przy okazji ta czcionka ma polskie znaki.

40WPASKI.BAS - To modyfikacja tej czcionki tak by komenda PEN (1-3) dawała czcionkę w 3ech odcieniach. Inne kombinacje dostępne dzięki POKE.
Czcionka do obu trybów wygląda nieco inaczej. By się o tym przekonać wystarczy wpisać MODE 1 i sobie na nią popatrzeć. Ta do 80 znaków w 3 kolorach wygląda jakby w każdym znaku 8x8 pikseli zwężona czcionka występowała po 2 znaki 4x8 w jednym znaku. A ta do 40 znaków w 16 kolorach jest nieco bardziej skomplikowana (zwłaszcza gdy robimy wersję czcionki w paski), bo jedna kopia czcionki 4x8 musi się mieścić w bitach 11001100 a druga kopia w tej samej matrycy 8x8 ale na bitach 00110011, a różnice między jedną a drugą kopią dają inne kolorki. 2bity na piksel daje 4 kolory. Tak więc jak się komuś nie podoba moja czcionka np to że uparłem się by literki M i W były szerokie na 4 a nie na 3 piksele. Może się pobawić jakimś edytorem znaków np tym w Art Studio i Przygotować sobie inną czcionkę. W grach nie raz widziałem taką co inny bledszy kolorek miała w pikselach na rogach by udawać antyaliasing i by czcionka wydawała się mniej kanciasta.

POL7.BAS - To wersja moich polskich znaków które już prezentowałem, nie mając za bardzo pojęcia w jakim standardzie je zrobić. Bo nie mam dostępu do polskiego Tasworda ani żadnych polskich tekstów pod CPC, a zdaje się że jego standard był najpopularniejszy wśród polskich Amstradowców/Schneiderowców. Choć może dla tych co korzystali ze CPM a w pracy z PC, woleli jakiś standard z ChiWritera czy coś. W necie polskiej wersji nie widać, ani nie znam nikogo komu by się zachowały na dyskietkach. Jak ktoś ma, to proszę niech się odezwie.

Tym razem użyłem oficjalnego polskiego standardu kodowania w 7bitach (stąd nazwa), czyli polskie znaki zastępują znaki `~@|]}^{[\$# choć te dwa ostatnie to moja modyfikacja standardu dodająca duże litery Ś i Ż bo oficjalnie standard posiada prócz wszystkich 9 małych tylko jedną dużą Ł. Podobno niektóre drukarki z epoki miały tak zmienionego ROMa z czcionkami by wyświetlać polskie znaki nawet jak komputer miał tylko 7 bitowe kodowanie znaków. A także ponoć niektóre firmy używały go w telefonach do SMSów, a inne definiowały jeden polski znak w aż 3ech bajtach.
POL.BAS - To dopiero majstersztyk, jednocześnie mamy tu do dyspozycji polskie ąćęłńóśźżŁŚŻ, niemieckie AOU z dwoma kropkami nad znakiem plus to dziwne B czytane jako SS, oraz francuskie AEEU z kreseczkami nad i C z ogonkiem. Ponoć francuski język ma kilkanaście narodowych znaków ale klawiatury posiadają tylko te 5 znaków, bo inne są potrzebne tylko do starofrancuskich tekstów lub lokalnych dialektów.
Nieźle co? - 3 alfabety narodowe dostępne jednocześnie.

A wszystko w standardzie "prawie" takim jak Windows 1250 do PL i 1252 do zachodnich. Prawie - to przez to że Amstrad znaki od 240 do 251 i 224 używa do sterowania kursorem. A niestety w tym zakresie mieści się kilka ze znaków narodowych. Dlatego nieco zmodyfikowałem standard a mianowicie duże i małe litery zamieniłem miejscami w tych przypadkach które kolidowały z kodami do kursora. (polskie Ó i Ń, niemieckie A i O więc dla uproszczenia U zrobiłem też, i francuskie U) Tzn dużych znaków jeszcze w tej wersji nie dorobiłem ale jak zrobię to wprawdzie nie da się ich umieścić na klawiaturze jednak będzie je można wyświetlać a małymi także pisać.

Trzy znaczki kolidowały też z kodami do klawiszy funkcyjnych, ale dopisując drugą pętlę FOR NEXT w lini 30 ominąłem problem.
Po co to zrobiłem? Bo jak mi odbije to zrobię przeglądarkę tekstów, a niemieckim i francuskim posługuje się najwięcej wciąż aktywnych Amstradowców. Choć jak się dowiem że Amstradowcy używają innego standardu narodowych znaków to go zmodyfikuję. Ponoć w Hiszpanii też nie brak aktywnych fanów CPC ale jakoś trzymają się w swoim gronie i niewiele kontaktują z zagranicą. A propo do ich alfabetu potrzeba jedynie litery N z falką ponad znakiem o kodzie dokładnie takim samym jak polskie Ń oraz znaku zapytania odwróconego do góry nogami. (ich gramatyka wymaga by takim znakiem zaczynać zdanie pytające). Więc umieściłem go na klawiaturze w miejscu w jakim zwykle jest w Hiszpańskich choć kod dałem inny by nie kolidował z literką "ż". Niemieckie znaki są na tych klawiszach co normalnie w tym języku ma miejsce (nie zmieniałem jednak Z i Y niech się dostosują do reszty świata). A francuskie jedynie U przeniosłem na 8 bo zwykle jest na klawiszu co niemieckie U, reszta jest na typowo francuskich miejscach, tyle że tym razem znaki dostępne są z Ctrl a nie bezpośrednio.

W edytorze Basica można komendą "KEY DEF nr klaw,kod ascii,kod ze shiftem,kod z ctrl" każdemu klawiszowi przypisać 3 znaczenia. Niestety trzymając CONTROL nie ważne czy SHIFT wciśniemy też czy nie. Jedynie pod SYMBOSem widziałem że w taki sposób klawisze mogą mieć 4te znaczenie.

Klawisze zdefiniowałem POKE-ami w pętli bo uznałem że tak będzie krócej i szybciej. Pamiętacie jak pisałem do czego można użyć znaczków sterujących wpisywanych z Ctrl? Parę z nich jest na tyle użyteczna że aby ich nie tracić wraz z dodaniem polskich znaków przeniosłem je pod inne klawisze. Można sobie obejrzeć aktualną czcionkę oraz fragment pamięci gdzie są zdefiniowane klawisze - uruchamiając pchełkę ALFABET.BAS.
PALETY.BAS - Uruchom najpierw CONTIKI.BAS i nie kasując ekranu zaraz po tym run"palety i wciskaj dowolny klawisz.

A dla tych co doczytali aż do tego miejsca mam nadzieję że miła niespodzianka. W tym samym pliczku POL.BAS wzbogaciłem klawiaturę o kilka użytecznych funkcji, wszystkie dostępne po wciśnięciu pewnych klawiszy wraz z Controlem:
TAB - uruchamia program Basica jaki mamy w pamięci.
Ctrl + TAB - wyświetla listing Basica w MODE 2.
Shift + TAB - save" - dopisz nazwę i zapisz Basic na dysku.
Ctrl + COPY - wyświetla katalog dyskietki.
A strzałki prawo i lewo z Ctrl - przeskakują na sąsiednią kolumnę w tak wyświetlanym katalogu.
Strzałki góra i dół - robią to co zawsze.

Ctrl + ENTER (nie mylić z RETURN) - uruchomi plik na początek którego najedziemy kursorem.
i "." (kropka w bloku klawiszy funkcyjnych) - niespodzianka.

Podobne klawisze są w pliku 0.BAS i od niego polecam zacząć przeglądanie dyskietki. Takie same funkcje dodałem w nim do Joysticka Fire2 wczytuje katalog, przechylanie go przeskakuje po nazwach plików a Fire1 uruchamia plik na którym jest kursor. Fajnie byłoby tak zmodyfikować ROM by takie funkcje działały zawsze prawda?

I jeszcze wyjaśnienie dla tych co nie mają instrukcji obsługi do CPC. Edytor Basica w CPC dysponuje prócz normalnego kursora także drugim tzw. kopiującym. Zwykłym poruszamy się po ekranie strzałkami a ten drugi przesuwamy strzałki przytrzymując SHIFT, najeżdżamy nim na fragment tekstu który chcemy skopiować do miejsca gdzie mamy standardowy kursor i wciskamy klawisz COPY tyle razy aż skopiujemy co chcemy. Prawda że fajne? - można sobie zapożyczać fragmenty z innych linijek Basica niż ta którą właśnie edytujemy. Jak ktoś nie lubi wpisywać nazw plików do uruchomienia z wyświetlanego na ekranie katalogu można nawet bez takich dodanych funkcji w klawiaturze, najechać na początek nazwy pliku i kliknąć kilka razy klawisz COPY, kursor kopiujący jest w tym samym miejscu co normalny, więc nic się na ekranie nie zmienia prócz przesuwania kursora, ale to tak jakbyśmy wklepywali tą nazwę. Gdy dotrzemy do spacji lub kropki wystarczy przytrzymać CONTROL i wcisnąć po kolei strzałkę w lewo i nadal trzymając CONTROL wcisnąć ENTER, to wtedy nawet run" nie trzeba pisać bo samo się dopisze i uruchomi plik. I to by było na tyle. Jak dorobię jakieś istotne nowe funkcje do pokazanych tu rzeczy albo zabiorę się za zabawę z wykresami funkcji o których wspomniałem wcześniej. Dam znać.

Trzeba by w końcu kiedyś zaprezentować coś ruchomego, albo nawet reagującego na klawisze prawda?

PS.: Obrazek poniżej prezentuje ładną wąską czcionkę, może kogoś to zainspiruje.

I niech się ktoś odezwie, napiszcie chociaż że lamerskie głupoty prezentuję.

Komplementy mogłyby mnie zachęcić do częstszego dłubania w CPC.
