Autor Wątek: Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?  (Przeczytany 10589 razy)

UIMP

  • *
  • Wiadomości: 35
  • Miejsce pobytu:
    Ustroń
Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?
« dnia: 2014.05.17, 13:17:03 »
Panowie!
Siedzę dzisiaj nad klawiaturą mojego Juniora i myślę. Myślę, bo mam 2 problemy, których ie potrafię rozwiązać.

1/ Używamy w tym edytorze tekstu, który piszemy razem z Raster'em (Rastrem?) programu 64columnus, czy coś takiego. Mniejsza. Potrzebuję dorzucić do tego polskie znaki. wiem, że da się je wrzucić do UDG i to potrafię zrobić. Tylko, czy da się zrobić to tak, żeby te polskie znaki wyświetlały się jakoś tak, "po ludzku"? Chodzi mi o to, czy da się zrobić tak, żeby polskie znaki wychodziły spod ALT+znak (ALT+a=ą, a ALT+A=Ą). Bo jak nie, to chyba zostanę przy UDG.

2/ Odczytywanie znaków zrobiliśmy przez CODE INKEY$. W takim wypadku wciśnięcie Caps Shift wyświetlało na ekranie jakiś dziwny znaczek, zamiast przełączyć tryb wprowadzania. Rozwiązałem ten problem przez wpisanie do komórki 23658 (FLAGS) ósemki po wciśnięciu Caps Shift i po ponownym jego wciśnięciu - zera. W ten sam sposób chciałbym zrobić z trybem G potrzebnym do wprowadzania polskich znaków z UDG (patrz pkt.1.), ale zmienna za to odpowiedzialne (23617 - MODE) nie reaguje. Jak mam to zrobić?

Proszę o pomoc, bo zwariuję!

Co do EDKA - Raster ma dziś ponoć zrobić coś z CR (Enterem), ja męczę się nad tym, co w pkt. 1/ i 2/

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?
« Odpowiedź #1 dnia: 2014.05.17, 14:08:25 »
Moim zdaniem najprostszym rozwiązaniem kwestii 2 byłoby napisanie kawałka kodu czytającego i dekodującego klawiaturę z assemblera - wtedy nie ma problemu z przekodowaniem w zasadzie dowolnej kombinacji klawiszy w dowolną stronę a cała procedura będzie nieporównywalnie szybsza niż kombinowanie z rozpoznawaniem shiftów itp. w samym BASICu.

trojacek

  • *****
  • Wiadomości: 6840
  • Miejsce pobytu:
    Warszawa
Odp: Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?
« Odpowiedź #2 dnia: 2014.05.17, 14:13:57 »
Słuszne podejście. Zwłaszcza,że można wtedy zaimplementować bufor klawiatury, co się bardzo przydaje w tego typu zastosowaniach - gdy odświeżanie obrazu może zajmować na tyle dużo czasu, że pisanie bez buforowania staje się praktycznie niemożliwe.
Tylko że chłopaki chyba nie chcą zbytnio dotykać asemblera ;)
Tak czy siak, nie wiem czym na juniorowej klawiaturze jest Alt, ale trzymałbym się raczej rozwiązań uniwersalnych - symbol shift, albo caps+symbol (E mode).

UIMP

  • *
  • Wiadomości: 35
  • Miejsce pobytu:
    Ustroń
Odp: Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?
« Odpowiedź #3 dnia: 2014.05.17, 14:35:32 »
Tak, tak, Junior ma alt (przecie to jest Spectrum tylko z ULĄ rozbitą na pojedyncze układy).
Symbol Shift (tryb G) jest OK, tylko:
a/ czy będzie można zrobić tak, że Symbol Shift+a=ą i Symbol Shift+A=Ą? Czy polskie znaki będą rozsiane pod klawiszami od a do u.
b/ jaka zmienna odpowiada za to, w jakim trybie są wprowadzane znaki? Bo przy czytaniu znaków przez INKEY$ wciśnięcie Symbol Shift daje nam na ekranie jakiś dziwny znaczek, a nie zmienia trybu wprowadzania na G.

Program, mimo tego, że jest cały w Basicu (0 - słownie zero - assemblera, śmiga jak marzenie).

trojacek

  • *****
  • Wiadomości: 6840
  • Miejsce pobytu:
    Warszawa
Odp: Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?
« Odpowiedź #4 dnia: 2014.05.17, 15:08:25 »
Skoro czytanie klawiatury jest przez INKEY$, to można wszystko, co się chce - bez oglądania się na E-mode, G-mode - po co w ogóle się nimi przejmować? Można sobie wymyślić dowolny, własny tryb, zakodować polskie znaki jak się chce i tyle.

UIMP

  • *
  • Wiadomości: 35
  • Miejsce pobytu:
    Ustroń
Odp: Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?
« Odpowiedź #5 dnia: 2014.05.17, 16:48:12 »
Faktycznie :) Dzisiaj jakiś nieogarnięty jestem.
Natomiast interesuje mnie, jaką zmienną należy zmienić, żeby zmienić tryb wprowadzania na tryb G.

UIMP

  • *
  • Wiadomości: 35
  • Miejsce pobytu:
    Ustroń
Odp: Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?
« Odpowiedź #6 dnia: 2014.05.17, 21:41:32 »
No, polskie znaki napisane. Nawet tabulator mi się udało dodać :)

raster

  • *
  • Wiadomości: 23
  • Miejsce pobytu:
    Polny Śląsk
Odp: Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?
« Odpowiedź #7 dnia: 2014.05.18, 12:12:29 »
Moim zdaniem najprostszym rozwiązaniem kwestii 2 byłoby napisanie kawałka kodu czytającego i dekodującego klawiaturę z assemblera - wtedy nie ma problemu z przekodowaniem w zasadzie dowolnej kombinacji klawiszy w dowolną stronę a cała procedura będzie nieporównywalnie szybsza niż kombinowanie z rozpoznawaniem shiftów itp. w samym BASICu.

Słuszne podejście. Zwłaszcza,że można wtedy zaimplementować bufor klawiatury, co się bardzo przydaje w tego typu zastosowaniach- gdy odświeżanie obrazu może zajmować na tyle dużo czasu, że pisanie bez buforowania staje się praktycznie niemożliwe.
Tylko że chłopaki chyba nie chcą zbytnio dotykać asemblera ;)
Tak czy siak, nie wiem czym na juniorowej klawiaturze jest Alt, ale trzymałbym się raczej rozwiązań uniwersalnych - symbol shift, albo caps+symbol (E mode).

ASM nikt nie rusza, bo nikt nie umie ;) Mógłbym się nauczyć, ale osobiście on jakiś taki dziwny mi się wydaje, tak jak cały spectrum-taki zamknięty (nie to, co C64, gdzie można sobie śmigać kursorem po całym ekranie, swobodnie pisać asm i basic czy zrobić reset bez kasowania pamięci ;))

Program, mimo tego, że jest cały w Basicu (0 - słownie zero - assemblera, śmiga jak marzenie).

A 64 znaki w linii? Przecież to assembler tylko napisany przez kogoś innego :)

Ja jestem za zastosowaniem ASM, bo program wcale nie śmiga jak marzenie :P Można wiele powolnych procesów przyspieszyć (jest kilka), czy zrobić tryb wstawiania bo bez tego pisze się średnio :)

Pozdrawiam !
mam 2x c64, juniora, amigę 600 i ps2... tyle wystarczy ;)

UIMP

  • *
  • Wiadomości: 35
  • Miejsce pobytu:
    Ustroń
Odp: Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?
« Odpowiedź #8 dnia: 2014.05.18, 16:14:27 »
Największą bolączką jest aktualnie wyświetlanie tekstu po załadowaniu go do pamięci (z dyskietki, czy też z taśmy). Trwa to trochę długo i na to przydała by się jakaś assemblerowa procedura.
A 64 znaki w linii - o tym nie pomyślałem :)
Swoją drogą - dzisiaj dokończyłem pisanie obsługi polskich znaków dostępnych spod TAB+klawisz. Na ekranie wyświetlają się polskie znaki, a podczas drukowania na drukarce są one zastępowane odpowiednikami bez ogonków :D Proste rozwiązanie, ale jakże skuteczne.

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?
« Odpowiedź #9 dnia: 2014.05.18, 17:20:17 »
Myślałem że współczesne drukarki mają polskie znaki w Latin2 a te starsze w CP852. Choć nie wiem czy takie lubią się ze Speccy i Juniorem.
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

UIMP

  • *
  • Wiadomości: 35
  • Miejsce pobytu:
    Ustroń
Odp: Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?
« Odpowiedź #10 dnia: 2014.05.18, 17:45:21 »
Wydrukowałem na swojej igłówce z Panasonica po kolei wszystkie znaki, jakie ona ma w pamięci i nie ma zakodowanych żadnych polskich znaków. Dlatego zamiast nich drukują się ich odpowiedniki bez ogonków. Proste, ale sprawdzona - lepiej jest mieć tekst bez polskich znaków, niż z chaszczami zamiast nich.

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?
« Odpowiedź #11 dnia: 2014.05.18, 19:05:08 »
No tak. Czasem do przełączenia na inne kodowanie są zworki, czasem opcja w menu a czasem sekwencja kodów, podana w instrukcji lub w sterowniku.
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

UIMP

  • *
  • Wiadomości: 35
  • Miejsce pobytu:
    Ustroń
Odp: Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?
« Odpowiedź #12 dnia: 2014.05.24, 20:49:51 »
Na filmie wpisywanie krótkiego tekstu (wolno pisałem, bo mi statyw przeszkadzał) i wczytywanie dokumentu testowego do pamięci.
W momencie, kiedy na ekranie pojawia się napis "czekaj..." obliczana jest długość dokumentu. Działa to dosyć wolno, ale właśnie wymyśliłem sposób, jak to przyspieszyć (oczywiście bez Assemblera, bo boję się go, jak diabeł święconej wody - mam nadzieję, że jak pojawi się Tutor po polsku, to coś podłapię :D)
Usunąłem dźwięk, chyba, że ktoś chce słuchać dzikich jęków i wrzasków, to mogę podrzucić film z dźwiękiem - w sąsiednim pokoju trwa impreza :D

https://www.youtube.com/watch?v=ZDwaWz84te4&feature=youtu.be

Filmik zgrywany kartoflem. Ale w kolorze.

sect0r

  • *****
  • Wiadomości: 698
  • Miejsce pobytu:
    Oltedal/NO
  • speccyholic
Odp: Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?
« Odpowiedź #13 dnia: 2014.05.24, 21:51:00 »
Póki niema Tutora, polecam jedyną dokumentacje (elektroniczną) w naszym ojczystym języku http://edu.i-lo.tarnow.pl/inf/retro/004_z80_inst/index.php
Szarak # DivIDE+ # MasakratorFM DeluXe by Zaxon

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Brak pomysłu na rozwiązanie problemu. Ktoś? Coś?
« Odpowiedź #14 dnia: 2014.06.02, 15:49:58 »
Póki niema Tutora, polecam jedyną dokumentacje (elektroniczną) w naszym ojczystym języku http://edu.i-lo.tarnow.pl/inf/retro/004_z80_inst/index.php

O w mordę... Dopiero teraz w to zajrzałem... Że też się gościom chciało - to jest tłumaczenie oryginalnego ZiLOGowskiego manuala do Z80. Ma tę zaletę, że jest oficjalnym stanowiskiem producenta. Ma też dwie wady - nie jest podręcznikiem do nauki programowania w assemblerze a raczej manualem dla osób programujących w assemblerach innych procesorów. No i jest oficjalny w związku z czym nie będzie w nim opisu "nieudokumentowanych" rozkazów (połówki rejestrów indeksowanych, dodatkowe przesunięcia itp.). Ale poza tym to prawdopodobnie najlepszy opis tego jak działają oficjalne rozkazy.