Autor Wątek: Tricki na Amstradzie  (Przeczytany 24815 razy)

matofesi

  • *****
  • Wiadomości: 1708
  • Miejsce pobytu:
    Toruń/Poland
Odp: Tricki na Amstradzie
« Odpowiedź #15 dnia: 2013.02.07, 14:45:09 »
Przy DMA to ciężko liczyć bajty na takt, bo ono zdaje się zatrzymuje procesor dając mu któreś -REQ. Ale tak - jeśli ktoś potrzebuje tak szybkich transferów i nie przejmuje się, że będzie jedynym użytkownikiem programów dla tego hardware'u to dodanie DMA jest niezłym rozwiązaniem ;)

ZbyniuR

  • *****
  • Wiadomości: 2653
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Tricki na Amstradzie
« Odpowiedź #16 dnia: 2013.02.13, 18:36:04 »
Zmiana tematu. Dodaję dziś .dsk z kilkoma pchełkami w Basicu jako przykłady zastosowania pomysłów, które wcześniej tu opisywałem. Ale spokojnie nie podniecajcie się to nic szałowego. Oraz genialnie zrobiony przez francuzów mrugający fullscreen który sprawia wrażenie 16 kolorów w trybie który normalnie ma 4.
   Po kolei: 80OK.BAS - To mój patent na używanie wąskiej czcionki 4x8 pikseli, po to by w 4kolorowym trybie mieć 80 znaków w wierszu. Jakby ktoś chciał 40 znaków w 16 kolorach to trzeba inaczej przygotować fonta. Może do tego wrócę jakby ktoś był zainteresowany.
FAST.BAS - To zaczerpnięte z Bajtka nowe komendy pozwalające przyspieszyć stacje dysków o ok 20% oraz wyświetlanie na ekranie o jakieś 40%. Upchane przeze mnie do paru linijek. ;)
EKRANY.BAS - To przykładowe użycie kilku opisanych wcześniej w tym wątku pomysłów, oraz jak w Basicu narysować kółko oraz schować w ramdysku ekran kodem LDIR. ;)
KOLORY.BAS - To efekt nudy, jak drobna szachownica z pikseli daje złudzenie że mamy więcej niż 4kolory. Każda linijka to tam osobny programik. A propo świetnie ten trick wykorzystywała Jill Lawson która swojego czasu tworzyła na CPC obrazy i genialnie dobierała paletę. Zresztą sami spójrzcie co można zrobić w 4 kolorach. http://www.google.com/search?tbm=isch&q=Jill+Lawson+Amstrad+CPC
OVER2.BAS - Pozwala regulować rozmiar overscana strzałkami i podaje parametry do komend OUT oraz ile KB zajmuje taki ekran.
POL.BAS - To polskie znaki wg mojego pomysłu, wszystkie małe plus 3 najczęściej używane duże. Całość upchana w 2 linijki Basica. Niestety w żadnym sensownym standardzie, gdyż Latin2 oraz WindowsPL korzystają z kodów które CPC używa do sterowania strzałkami oraz definiowania klawiszy funkcyjnych. Reszta pliczków to jakieś bzdurki. ;)
   Ale największą gwiazdą jest na osobnej dyskietce obrazek KVETY zakoszony z Photoshopa. Rozbity na 2 obrazki jeden 16 kol a drugi 4, ale w lepszej rozdzielczości a całość wygląda jak 384x272 w 16 kol, co zajmuje w pamięci 51KB. Wygląda jak na STku. Emulator Caprice32 ustawiony na 100% prędkości mruga najmniej, a na 200% mruga tak że co parę sekund widać tylko jeden z tych obrazków. Gdzieś widziałem podobnie zrobionego Trola z Warcrafta, jak go znowu znajdę dam linka. :)
« Ostatnia zmiana: 2013.02.21, 07:20:52 wysłana przez ZbyniuR »
TREK is better than WARS.. ;)

Pyza^Illusion

  • ****
  • Wiadomości: 496
  • Miejsce pobytu:
    Lubań
Odp: Tricki na Amstradzie
« Odpowiedź #17 dnia: 2013.02.13, 19:28:38 »
Zresztą sami spójrzcie co można zrobić w 4 kolorach. http://www.google.com/search?tbm=isch&q=Jill+Lawson+Amstrad+CPC

Google po przeskalowaniu obrazków nieco przekłamuje ;)
Tutaj właściwy link: http://cpcrulez.fr/games_GFX-artist-jill_lawson.htm
ZX Spectrum+ (128kB), FDD3000 disk system with 2x3,5' drives, ZXVGS, Masterface2b, MacFace II...

Abrimaal

  • *****
  • Wiadomości: 944
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Tricki na Amstradzie
« Odpowiedź #18 dnia: 2013.02.13, 20:34:05 »
Overscan - super, Ekrany - nie lepiej byłoby to rysować w MODE 1? Można by użyć kolorów i koła byłyby dokładniejsze (i szybszy LDIR).
Contiki - bardzo ciekawy dithering,
80W1 - font jest trochę nieczytelny, na Spectrum od dawna używa się pisma 3x6px (definiowane w kratce 4x8 lub 4x7) i wydaje mi się, że pismo jest czytelniejsze.

Najlepsze są Organy, czegoś takiego szukałem, aby zgrać sobie sample, choć nie wiem czym zmieniać obwiednię tonu.
Oktavy i Vibrato zmienia się kursorami, "Obwiednię Głośn." klawiszami numerycznymi, a czym Obwiednię Tonu?
Szukałem czegoś takiego od dawna na AY (choć szkoda, że nia ma arpeggio) i nadal poszukuję dla ZX 48 (beeper), C64 i Atari 8bit.
Choć absolutnie nie potrafię grać muzyki na klawiaturze PC, wrzuciłem to, śmiejcie się do woli :P
http://www.youtube.com/watch?v=-ocd9jW41MQ
AY Music, ULA plus.

ZbyniuR

  • *****
  • Wiadomości: 2653
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Tricki na Amstradzie
« Odpowiedź #19 dnia: 2013.02.13, 20:49:29 »
Mój błąd, podałem złą nazwę pliku, przez co ta koszmarna czcionka którą pokazałeś to wersja beta, którą komp tworzy przerabiając standardową, używałem to do testowania POKEów w takim mieszanym trybie zanim przygotowałem właściwą czcionkę. :)

Powinno się to włączać plikiem  80ok.BAS  Wtedy wygląda przyzwoicie, choć poszczególne literki pewnie niejeden by poprawił.

Nie ja pierwszy wpadłem na pomysł że węższa czcionka da więcej znaków w wierszu, widziałem też podobne rzeczy na C64 a na Atari ładną 6x8. W CPC zdarza się taka na obrazkach, ale w działającym programie zobaczyłem to dopiero po latach. Za to często widać w grach taką wąską czcionkę w trybie z szerokimi pikselami, by mimo to mieścić 40 znaków w wierszu, podobnie na C64.

Te organy były w Bajtku ale ta wersja z reduksa miała błędy, nie jestem pewien czy wszystkie poprawiłem bo pamiętam że niektóre dźwięki były inne. Obwiednię tonu zmieniają cyfry w górnym rzędzie a szum znak = i Ł.

Są podobne organy na PC np TPIANO.EXE 24KB w jednym pliku a ma 100 instrumentów i nagrywa co grasz. ;)
« Ostatnia zmiana: 2013.02.13, 23:47:54 wysłana przez ZbyniuR »
TREK is better than WARS.. ;)

faustxxx

  • ***
  • Wiadomości: 100
  • Miejsce pobytu:
    Kraków/Busko-Zdrój
    • Try2emu
Odp: Tricki na Amstradzie
« Odpowiedź #20 dnia: 2013.02.14, 23:37:13 »
Te organy były w Bajtku ale ta wersja z reduksa miała błędy, nie jestem pewien czy wszystkie poprawiłem bo pamiętam że niektóre dźwięki były inne. Obwiednię tonu zmieniają cyfry w górnym rzędzie a szum znak = i Ł.

Grrrr... a dać znać niełaska;)? Wrzuciłbym poprawkę:P
Pzdrw.
Faust
http://www.t2e.pl

Po wysmażeniu 3 spektrusiów przeszedłem na emulatory:P

Abrimaal

  • *****
  • Wiadomości: 944
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Tricki na Amstradzie
« Odpowiedź #21 dnia: 2013.02.15, 00:25:12 »
Przydałaby się jeszcze jedna mała poprawka w organach - klawisz "n" jest podpisany 2 razy zamiast "n" i "m".

ZbyniuR, czy mógłbyś podrzucić TPiano w zip? Ja znalazłem z roku 2002 i ma tylko 9 instrumentów bez nagrywania.
« Ostatnia zmiana: 2013.02.15, 02:50:16 wysłana przez Abrimaal »
AY Music, ULA plus.

ZbyniuR

  • *****
  • Wiadomości: 2653
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Tricki na Amstradzie
« Odpowiedź #22 dnia: 2013.02.17, 23:02:20 »
Okazuje się że mi nie nagrywa, pomyliłem z inną pchełką jaką kiedyś miałem i mi wcięło. "mini piano download" w googlach namierza sporo podobnych, i niektóre nagrywają. Ta robi to z pewnością ale nie jest aż taka malutka.
http://www.dobreprogramy.pl/Little-Piano,Program,Windows,38282.html
TREK is better than WARS.. ;)

ZbyniuR

  • *****
  • Wiadomości: 2653
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Tricki na Amstradzie
« Odpowiedź #23 dnia: 2013.03.02, 15:11:21 »

W CPC Basic zaczyna się od 368 do HIMEM który domyślnie jest na 42619 ale można go przestawiać a czasem nawet trzeba. Max w górę to 42747, by to zrobić trzeba wyłączyć możliwość zmieniania wyglądu znaków komendą SYMBOL AFTER 256. Zmiana parametru na niższy pozwala zmieniać wygląd od tego kodu ASCII w górę i obniża HIMEM o tyle by się te znaki tam zmieściły. Poniżej tego HIMEM jest równe 2KB na katalog dyskietki, a pod nimi jest już obszar Basica który od dołu zapełniają linijki programu a od góry używane w danej chwili zmienne. Więc można go obniżyć o tyle by te 3 rzeczy tam weszły. Inaczej zgłasza błąd. System nie pozwala wczytywać binarek poniżej HIMEM. poniżej adresu 368 jest część tablicy skoków do ROMu, podobnie jak gdzieś tam powyżej standardowego HIMEM gdzie jest dłuższa ta lista i tam też jest obszar ze znaczeniem klawiatury i paletą kolorów i kupa zmiennych systemowych dotycząca np trybu wyświetlania albo pozycji okien. Gdzieś powyżej &af00 jest jakieś ćwierć KB wolne gdzie można małe binarki wcisnąć a ten obszar nie jest kasowany po resecie, zresztą podobnie jak ramdysk. Jest tam też bufor edytowanej aktualnie linijki i inne cuda których adresów i tak nie pamiętam. :(
Standardowa pamięć ekranu w CPC zaczyna się od &C000 czyli 49151 i ma 16KB, nooo prawie. ;) Jednak w linijce Basica poniżej nie można tego wpisać w hexach bo Basic CPC ma błąd i liczby w Hex większe niż &7fff zamienione na decymalne widzi jako ujemne. Często używanym obszarem do tricków z 2im ekranem jest ten od &4000,
opisywałem to tu >> http://speccy.pl/forum/index.php/topic,844.msg9932.html#msg9932
Czyli jest to obszar na który wejdzie Basic jeśli ma więcej niż bodajże ok 12KB. Jak ktoś ma więcej niż 64KB pamięci to może mimo tego pisać nawet ze 30KB Basica i korzystać z drugiego ekranu, wystarczy przed wczytaniem tam długiego basica wpisać OUT &7F00,204 by basic się mieścił w bloku ramdysku, podczas gdy drugi ekran może być wyświetlany spod &4000 ze standardowych 64KB.

Jakby ktoś chciał się przyjrzeć obszarowi pomiędzy HIMEM a pamięcią ekranu, może wklepać:
10 MODE 2:INK 0,0:SYMBOL AFTER 256:FOR a=HIMEM TO 49151:PRINT CHR$(1);CHR$(PEEK(a));:NEXT
Uwaga dla tych co nie wiedzą: Oczywiście nie trzeba tego wpisywać dużymi literami. Ten CHR$(1) jest po to by nie wykonywał znaków sterujących jeśli na taki trafi tylko je wyświetlał. Można pauzować program klawiszem ESC a puszczać pauze dowolnym innym, ponowne wciśnięcie ESC w trakcie pauzy przerywa działanie programu które można wznowić rozkazem CONT. Najłatwiej zauważyć obszar gdzie są zdefiniowane klawisze, oraz tablicę skoków bo w tym co 3ci bajt to znak szachownicy 8x8. Najczęściej używaną funkcją z KERNELA jest chyba CALL &bb18 - to pauza czeka na wciśnięcie dowolnego klawisza. Ze zlokalizowaniem i skapnięciem reszty adresów jest więcej roboty można by np. znaleźć miejsce palety kolorów, np. pozmieniać kolory od 2 do 15 na takie same komendą INK a potem szukać w tym obszarze nastu takich samych bajtów, jednak by łatwo nie było nie są to te same wartości jak w tabelce z kolorami. Albo skopiować cały ten obszar gdzieś niżej, a potem np. zmienić tryb graficzny i porównać które komórki zmieniły wartość po czymś takim. Jest ich kilkanaście, choć część się zmieni z innego powodu niż zmiana trybu. Piszę to na wypadek gdyby ktoś nie miał co robić. ;)

TREK is better than WARS.. ;)

ZbyniuR

  • *****
  • Wiadomości: 2653
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Tricki na Amstradzie
« Odpowiedź #24 dnia: 2013.10.22, 21:48:05 »
Niedawno Phonex wspominał o kolorowaniu Listingów w Spectrum, a jak się wam podoba coś takiego jak w obrazku poniżej? Niedługo wkleję tu dyskietkę z kilkoma wariacjami z kolorowymi czcionkami do użycia w Basicu CPC, oraz kolorowymi wykresami 3D.
TREK is better than WARS.. ;)

ZbyniuR

  • *****
  • Wiadomości: 2653
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Tricki na Amstradzie
« Odpowiedź #25 dnia: 2013.10.30, 07:11:02 »

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 `[email protected]|]}^{[\$# 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. :)

TREK is better than WARS.. ;)

ZbyniuR

  • *****
  • Wiadomości: 2653
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Tricki na Amstradzie
« Odpowiedź #26 dnia: 2013.10.30, 10:41:58 »
Wykryłem kilka drobnych błędów w pliczkach na dsk jaki dołączyłem, więc po poprawkach dodaję go znowu. :)

Dodałem też pliczek 00.BAS jest to MENU dysku, w którym należy zmodyfikować nazwy w DATA w linii 30, tak by zawierały właściwe nazwy dla konkretnego dysku. I nagrać go na nim pod nazwą 0.BAS To naprawdę ułatwia życie z Amstradem. :)

PS.: Jaki edytor mi polecacie na PC by zmodyfikować zawartość pliku binarnego. Mam zamiar tak zmodyfikować ROM do CPC aby zaraz po włączeniu emulatora jego klawiatura zawierała kilka użytecznych funkcji. :)
TREK is better than WARS.. ;)

pear

  • Administrator
  • *****
  • Wiadomości: 5068
  • Miejsce pobytu:
    Będzin
  • Z80 only
Odp: Tricki na Amstradzie
« Odpowiedź #27 dnia: 2013.10.30, 18:22:26 »
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. :)
Znalazłem tylko takie coś w swoich szpargałach
ą , ć , ę , ł , ń , ó , ś , ź , ż
Ą , Ć , Ę , Ł , Ń , Ó , Ś , Ź , Ż , zł
{Latin II - Code Page 852}
165,134,169,136,228,162,152,171,190
164,143,168,157,227,224,151,141,189,158
{Mazovia}
134,141,145,146,164,162,158,166,167
143,149,144,156,165,163,152,160,161,155
{Windows - Code Page 1250}
185,230,234,179,241,243,156,159,191
165,198,202,163,209,211,140,143,175,158
{DHN}
137,138,139,140,141,142,143,145,144
128,129,130,131,132,133,134,136,135,158
{Cyfromat}
144,145,146,147,148,149,150,152,151
128,129,130,131,132,133,134,136,135,158
{Microvex}
160,155,130,159,164,162,135,168,145
143,128,144,156,165,147,152,157,146,158
{CSK}
160,161,162,163,164,165,166,168,167
128,129,130,131,132,133,134,136,135,158
{ISOLatin - ISO-8859-2}
177,230,234,179,241,243,182,188,191
161,198,202,163,209,211,166,172,175,158
{IEA}
160,155,130,159,164,162,135,168,145
143,128,144,156,165,153,235,157,146,158
{Logic}
137,138,139,140,141,142,143,144,145
128,129,130,131,132,133,134,135,136,158
{KWK}
133,155,138,157,164,162,135,145,168
143,128,144,156,165,153,159,146,158,237
{XXX}
155,157,159,166,167,162,158,169,170
239,171,227,156,228,248,251,252,254,128
{Amiga PL}
226,234,235,238,239,243,244,250,251
194,202,203,206,207,211,212,218,214,142
ZX/Enterprise/CPC/Robotron/C128D

ZbyniuR

  • *****
  • Wiadomości: 2653
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Tricki na Amstradzie
« Odpowiedź #28 dnia: 2013.10.30, 21:40:20 »
Część nazw tych standardów co podałeś z niczym mi się nie kojarzą. Wiki podaje spory zestaw też:
http://pl.wikipedia.org/wiki/Kodowanie_polskich_znak%C3%B3w
Większość dałoby się zaimplementować w CPC bez problemu, a do innych trzeba by pisać własny program obsługi klawiatury i powyłączać przerwania by po naszemu a nie po swojemu reagował na odpowiedni zestaw znaków kontrolnych. Tylko że po co reanimować trupa z obcej platformy? Moim zdaniem albo użyć takiego standardu w jakim ludzie mieli/mają teksty na CPC, albo użyć współcześnie najpowszechniej używanego. Wprawdzie światek Amigowy czy Makówkowy mają swoje standardy (nie wiem jak w Linuksie), ale w PC używa się dwa. Windows 1250, oraz Latin 2. Ten drugi różni się od pierwszego tylko 6ma innymi kodami z 18 polskich liter, a powszechnie jest używany na stronach internetowych, a Winda tak sprytnie tym operuje że jak kopiujemy fragment tekstu ze strony do edytora to w locie są konwertowane i laicy nawet nie zdają sobie z tego sprawy. :) W obu też małe literki ó i ń mają kody które przypisane w CPC do klawisza będą po wciśnięciu przesuwać kursor a nie wyświetlać literę. :-|

Znalazłem w Bajtku z roku 89 listingi dodające polskie znaki pod CPM, ale nie podano jak się nazywają ani do jakiego są programu. Choć możliwe że Protekst i Tasword bo te dwa edytory były popularne, tylko nie wiem który jest który. Zresztą jeśli nie znajdę ich polskich wersji na CPC ani jakiś zachowanych tekstów, to myślę że lepiej skorzystać ze współczesnego. :) Bez problemu mogę zdefiniować taki zestaw znaków by Amstrad wyświetlał teksty w obu bez konwersji. :) Bo Win50 i Latin2 nie gryzą się wzajemnie, tzn nie ma przypadku by któryś z kodów w jednym był jedną literą a w drugim ten sam kod inną. :)

Jestem ciekaw jaki standard był/jest używany w ZXach, i jakie edytory się używało w czasach gdy się jeszcze pisywało na 8bit. I jakie było ograniczenie długości pliku. W CPC Tasword wieszał się po wczytaniu dłuższego niż ok 76KB. A Protekst buforował na dysku i był ograniczony jej pojemnością (178KB). Nie wiem czy potrafił korzystać też z gęstej stacji (800KB). A dziś mam na twardym kilka kilkuset kilobajtowych plików txt, wszystko wklepane przeze mnie. :)
TREK is better than WARS.. ;)

ZbyniuR

  • *****
  • Wiadomości: 2653
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Tricki na Amstradzie
« Odpowiedź #29 dnia: 2013.11.05, 04:30:49 »
Dziś krótko, pytano mnie o to jak zmienić nazwę pliku, jak go skasować i czy da się potem odkasować?

Da się, ale po kolei na przykładach.  |ren,"nowy.bas","stary.bas"  - zmieni nazwę stary.bas na nowy.bas

|era,"*.bak" - skasuje wszystkie pliki typu bak.  |era,"g*.*"  - skasuje wszystkie zaczynające się na literę G.
Oczywiście zamiast gwiazdek można podać nazwę pojedynczego pliku. :)

Teraz odkasowanie. Wklepcie sobie i zapiszcie takiego jednolinijkowca, np jako ODKASUJ.BAS

10 MODE 2:POKE &A701,229:CAT:INPUT"Nazwa pliku do odkasowania: ",n$:|REN,"0:"+n$,n$:|USER,0:CAT:PRINT"Gotowe :)"

To działa i nie będę tłumaczył jak. :)
TREK is better than WARS.. ;)