Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!

phanick 16 Maj 2017 13:01 5004 12
  • Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!
    Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!

    Artykuł powstał jako opis zmagań z próbą zrobienia reprodukcji kardridża Keyboard Transformer - rosyjskiego wynalazku, który umożliwia pisanie programów w BASICU. Kardridż udostępnia gniazdo klawiatury i magnetofonu - do pierwszego podłącza się standardową klawiaturę od PC, aby wprowadzać tekst. Do drugiego - magnetofon, który umożliwi zapis i odczyt napisanych programów z taśmy. Tak jak za czasów poczciwego Commodore 64, gdzie programy i gry również zapisywało się na kasetach magnetofonowych w postaci impulsow dźwiękowych.

    Schemat (jak się później okazało - wymagający poprawek) i zdjęcia pochodzą ze strony http://www.nedopc.org/forum/viewtopic.php?t=10219 Gdybym nie był elektronikiem i nie posiadał odpowiednich narzędzi, poddałbym się chyba z kilka razy w różnych etapach próby jego `reprodukcji`, bo w każdym miejscu problem leżał gdzie indziej.
    Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa! Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa! Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!

    Własne PCB
    Kardridż chciałem wykonać w domu, a ta technika nakłada pewne ograniczenia (brak metalizowanych otworów, a zamiast nich - przelotki wykonywane drutem), pierwszym krokiem było odtworzenie schematu i stworzenie własnego PCB. Schemat z powyższej strony był praktycznie zgodny z mozaiką ścieżek. W mojej wersji PCB wszystkie elementy (z wyłączeniem przelotek) lutuje się jedynie po dolnej stronie - ogromnie ułatwia to wykonanie, a zamiast scalaków można nawet wlutować podstawki! W rozmieszczeniu elementów starałem się być zgodny z oryginałem. Duże nieporęczne gniazdo klawiatury DIN5 zastąpiłem małym Mini-DIN6 (klawiatury PS/2). Poniższy mój schemat jest już kompletny, po wszystkich poprawkach.
    Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa! Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!

    Rosyjskie scalaki
    Występujące na oryginalnym schemacie elementy o rosyjskich oznaczeniach mają swoje europejskie odpowiedni. Nie musiałem więc jechać do Rosji w celu ich poszukiwań ;-) Jak się okazało, to zwykłe układy z rodziny 74XX/40XX.
    DD1 К561ЛН2 CD4069AR
    DD2 К561ИР2 CD4015AE
    DD3 КР1533ТМ2 74LS74
    DD4 К555ЛА9 74LS03
    DD5 К555ЛИ3 74LS11
    DD6 КР1533КП11А 74LS257
    VD1-VD3 КД522 1N4148

    ROM
    Linki do ROMU (PRG + CHR) z powyższej strony są już nieaktywne, ale sam ROM można pobrać ze strony CaH4e3. Ten niestety zapisany jest w mało popularnym formacie UNIF (zamiast iNES), co sprawiło drobną trudność w celu wyłuskania z niego części do zaprogramowania EPROMu PRG i CHR.

    Pierwsze uruchomienie - problem z klawiaturą
    Pierwsze uruchomienie (po usunięciu jednego mini zwarcia) i... chyba działa, bo już coś widać na ekranie konsoli! Niestety, żadna z moich trzech klawiatur (dwie Mini-DIN6, jedna DIN5 + adapter DIN5->Mini-DIN6) nie chciała współpracować. Przy okazji odkryłem, że posiadany przeze mnie adapter DIN5->MiniDIN6 miał jakieś niezgodne połączenia (co naprawiłem) oraz wreszcie zmotywowałem się, aby naprawić kilka niedziałających klawiszy w jednej z klawiatur (nie stykał jeden pin na folii). Mimo wszystko, czas chyba przypomnieć sobie, jak wygląda protokół komunikacji klawiatury z PC:
    Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!

    A jest to prosty protokół, w którym informacje o naciśniętych (i puszczonych) klawiszach przesyłane są szeregowo (linia zegarowa + linia danych) w formie pakietów składających się z 11 bitów (bit startu + 8 bitów kodu klawisza + bit parzystości + bit stopu)
    Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!
    Kody klawiszy (keyboard scancodes) to unikalne numery każdego z klawiszy, nie mające nic wspólnego z kodami ASCII. Protokół umożliwia także komunikacje w druga stronę, czyli komputer->klawiatura (np. w celu zapalenia/zgaszenia diod NumLock/ScrollLock/CapsLock).

    Potem przyglądając się na schemat kardridża próbowałem zrozumieć, jak rosjanie rozwiązali sposób odczytu szeregowej transmisji bajtów przez procesor. W kadridżu są dwa rejestry 4 bitowe połączone kaskadowo + przerzutnik (co daję 9 bitowy rejestr). Wszystkie trzy taktowane są sygnałem zegarowym pochodzącym z klawiatury, więc niejako rejestry same napełniają się bitami, gdy klawisz zostanie wciśnięty. Dodatkowy, dziewiąty bit to zapamiętany sygnał startu (bit o wartości 1), który w momencie odebrania wszystkich ośmiu bitów jest podawany zanegowany na linię przerwania procesora, dzięki temu po każdym naciśnietym klawiszu, do procesora przychodzi przerwanie. Sprytne!
    Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!

    No właśnie, ale to 9 bitów, a w powyższym protokole jest ich przecież 11. Zagłębiając się dopiero w szczegóły odkryłem, że do komunikacji z klawiaturą powstały tak naprawdę dwa protokoły:
    * AT (nowy), 11 bitów, używany przez wszystkie dzisiejsze klawiatur,
    * XT (stary), 9 bitów, używany przez oryginalne klawiatury IBM XT chyba do połowy lat 90 (komputery 386 już go chyba nie używały).
    Niestety, kardridż (pochodzący z 94 roku) był przystosowany do obsługi jedynie starych klawiatur XT. Postanowiłem więc stworzyć prosty konwerter AT->XT oparty na procesorze AVR Atmega 8 (wystarczy nawet Attiny 13).

    Różnice między AT a XT:
    * 11 bitów (AT) / 9 bitów (XT),
    * odmienne kody każdego klawisza,
    * inaczej przesyłana informacja o puszczeniu klawisza (XT: kod klawisza z ustawionym bitem nr 7, AT: bajt F0 + kod klawisza, który puszczono),
    * XT umożliwia jedynie komunikacje w jedną stronę (klawiatura->komputer), AT - komunikacja dwustronna
    Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!

    Przy okazji też musiałem rozpracować jak działa mapper tego kardridża (co jak się potem okazało - było opisane na rosyjskiej stronie po rosyjsku ;-)
    Obszary pamięci:
    $6000-$7FFF: dodatkowe 8 kB RAMu (zapewne na potrzeby basica)
    $8000-$ffff: 1 bank PRG 32 kB
    Rejestry:
    $5000 : odczyt tego rejestru powoduje odczytanie młodszych 4 bitów kodu klawisza
    $5001 : odczyt tego rejestru powoduje odczytanie starszych 4 bitów kodu klawisza
    Po wciśnięciu/puszczeniu klawisza zgłaszane jest przerwanie (IRQ) do CPU - patrząc na schemat realizacja techniczna jego także jest pomysłowa - bit startu (1) zapamiętywany jest właśnie w 9 bicie. Zanegowany bit puszczany jest na linię przerwania.
    $5002 : odczyt tego rejestru powoduje potwierdzenie przerwania i wyczyszczenie rejestrów (gotowość do odczytu następnego klawisza)
    $5000 : zapis na taśmę bitu 0
    $5004 : zapis na taśmę bitu 1
    $5000 : odczyt z taśmy bitu

    Jak widać, niektóre rejestry pełnią kilka funkcji. Ale co ciekawe, wszystkie rejestry (nawet te do zapisu) reagują zarówno, gdy procesor odczytuje lub zapisuję spod tego adresu (nie brana jest w ogóle pod uwagę linia CPU_R/!W). To chyba jedyny mi znany przypadek, gdy odczyt jakiejś komórki pamięci powoduje wysłanie rozkazu do mappera!

    BASIC
    Gdy klawiatura już działa, mogłem przetestować możliwości kardridża - sterowanie odbywa się wyłączenie klawiaturą (standardowy joypad w ogóle nie jest używany). Kardridż, oprócz BASICa udostępnia jakiś edytor grafiki i coś, co się nazywa TRANSFORMER (jakaś gra?)
    Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa! Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa! Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa! Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!

    Zapis na magnetofon
    Sygnał zapisu na magnetofon pochodzi z przerzutnika w nastepującym bloku w kardridżu:
    Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!
    $5000 zapis na taśmę bitu 0, $5004 zapis na taśmę bitu 1. C7 powoduje odcięcie składowej stałej, a R3/C4 to filtr dolnoprzepustowy (f3DB = 1/(2*pi*R*C) = 723 kHz). W oryginale na schemacie C7 był 100 pF, co w ogóle nie pozwalało na przenoszenie jakiegokolwiek sygnału.

    Jednak i tak próba zapisu czegokolwiek na taśmę (polecenie `SAVE` w BASICu) nie powodował generowania jakiegokolwiek sygnału na wyjściu. Jak się później okazało, sygnał CLK do przerzutnika przychodził zbyt późno, a więc wysyłana na wyjście była zła wartość (zawsze 1). Ale dlaczego?
    Obecne na wyjściach bramki rezystory początkowo mnie zastanawiały (myślałem, że może autorzy się pomylili i zamiast nich powinny być kondensatory, aby zewrzeć krótkie stany przejściowe). Potem dopiero zauważyłem, że to bramki z otwartym kolektorem, a więc rezystory utrzymują stan wysoki. A dlaczego nie zastosowano zwykłych bramek? Z oszczędności - bo sygnał odczytywany z magnetofonu, przekazywany na linię danych wymagałby bufora + dekodera. Zastosowana bramka pełni obie funkcje. Niestety w oryginalnym schemacie na wyjściach bramek były rezystory 11 k. Takie duże rezystory powodują wolny czas ładowania pojemności. Dodatkowo sygnał przechodzi przez trzy bramki, więc sie nie wyrabiał. Zamiana rezystorów na 1 k rozwiązała problem.
    Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!

    Sygnał cyfrowy zapisu na taśmę prostego programu - to prosta modulacja częstotliwościowa (1 kHz / 2 kHz):
    Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!

    Załączam także próbkę dźwięku wysyłanego na tasmę

    Odczyt z magnetofonu
    Odczyt z magnetofonu także nie działał początkowo poprawnie. Za jego realizację odpowiada następujący blok na schemacie:
    Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!
    Układ złożony z inwerterów to wzmacniacz sygnału, którego zadaniem jest konwersja analogowego sygnału z magnetofonu na postać cyfrową dla procesora. Postać cyfrowa powinna:
    * mieć odpowiednie poziomy logiczne (0 / + 5V), niezależnie od głośności dźwięku magnetofonu (karta dźwiękowa PC generuje sygnał 0-1V),
    * mieć odpowiednio strome zbocza,
    * być wolna od szumów
    Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!

    Tutaj także, kondensatory C6/C5 mylnie oznaczono jako 100 pF. Zamiana na 100 nF pozwoliła przywrócić działanie układu. Ponadto, sygnał z wyjścia bramki U4A wymaga także podciągnięcia rezystorem do VCC!

    Podsumowanie
    Po spędzeniu ok. 3 dni nad projektem udało się osiągnąć sukces - zapis i odczyt programu napisanego w BASICu działa poprawnie! Jedyny kłopot którego jeszcze nie rozwiązałem, to jak przerwać działanie np. takiego programu w BASICu:

    Code:

    10 PRINT "HELLO WORLD"
    20 GOTO 10

    A może autorzy tego kardridża nie przewidzieli takiej ewentualności?

    Moje stanowisko pracy i efekt końcowy:
    Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa! Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa! Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa! Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa! Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa! Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa! Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!


    Link

    Fajne!
  • #2 16 Maj 2017 19:59
    kosa59
    Poziom 8  

    Witaj!
    Jak zwykle jestem zaskoczony twoim kolejnym pomysłem na urozmaicenie tematu konsoli Pegazus/NES.
    Sam kiedyś interesowałem się tematem tworzenia kartridży lub sprzętowych przeróbek wyżej wymienionej konsoli, ale brakowało mi tej software'owej wiedzy, która ty posiadasz i bardzo cię za to podziwiam.

    Ten program graficzny widoczny na twoich zdjęciach coś mi przypomniał.
    Nie wiem czy ktoś z forumowiczów pamięta jak sprzedawane na bazarkach były pegazusy z klawiaturą pod różnymi nazwami, lecz sama forma urządzenia raczej nie ulegała zmianom. Do tych konsol dołączano kartridż, który miał wiele dodatkowych programów i nigdzie indziej nie można było ich dostać. Obsługa MENU odbywała się tylko za pomocą klawiatury. Pad niestety nie był obsługiwany, chyba że odpaliliśmy grę która go wymagała.
    Był tam tez między innymi taki sam program graficzny jak na twoich zdjęciach.
    Sądzę iż ten kartridż ma wiele wspólnego z wspomnianymi przeze mnie "klawiaturami" pegazusa.
    Gdzieś nawet mam dwie sztuki takich klawiatur. Jedna nawet powinna być jeszcze sprawna.
    Gorzej z kartridżem do obsługi.

    Jeszcze raz pełen podziw i czekam na następne ciekawostki, bo naprawdę jest to ciekawa konsola.

  • #3 17 Maj 2017 16:59
    Trzyzet
    Poziom 18  

    Zapytam na szybkości - istnieje jakakolwiek szansa że odpalisz na tym grę z C64? Wiem że istnieje różnica procesora itd. ale basic to basic, powinno coś tam działać!

    Szanuję, sam dłubię przy konsoli ale playstation i coś niedługo naskrobię w tym dziale.

  • #4 17 Maj 2017 21:01
    phanick
    Poziom 28  

    I C64 i Pegasusa napędza ten sam procesor (6502). No prawie, bo w C64 jest trochę nowsza wersja z większa liczbą rozkazów (co akurat dla języka wyższego poziomu - Basica - nie ma większego znaczenia). Proste programy, które coś liczą czy wyświetlają na ekranie (print) zapewne będą działać i tu i tu.

    Proszę jednak pamiętać np. w C64 jest układ graficzny (VIC) i wiele komórek pamięci jest zmapowana na rejestry specjalnego przeznaczenia, np. kolor tła ekranu czy inne cuda. W Pegasusie tego nie ma, a są za to inne specjalne adresy. Zatem programy wykorzystujące ten podzbiór Basica, który różni obie konsole nie będą działa.

    Jako ciekawostkę powiem, że lubię zbierać różne stare książki. Np. taka książka do matematyki dla 6 klasy szkoły podstawowej, a tam.. programy w BASICU ;) Chyba naprawdę kiedyś poziom nauki był wyższy. Takie programy zapewne będą działać na kazdym BASICu.
    Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa! Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa! Dendy Keyboard Transformer - podłącz klawiaturę i magnetofon do Pegasusa!

    Dodano po 3 [minuty]:

    Cytat:
    Ten program graficzny widoczny na twoich zdjęciach coś mi przypomniał.
    Nie wiem czy ktoś z forumowiczów pamięta jak sprzedawane na bazarkach były pegazusy z klawiaturą pod różnymi nazwami, lecz sama forma urządzenia raczej nie ulegała zmianom

    Pegasusy marki GLK (Gold Leopard King). Niektóre z tych dyskietek to miały edytor tekstu czy nawet pseudo-Windows 98, a jeszcze rzadsze - port DB25 z możliwością podłaczenia drukarki od PC!

  • #5 17 Maj 2017 22:29
    Tremolo
    Poziom 43  

    Jestem zaskoczony jak jakiś kucharz Amaro cudownym smakiem starego wina :) Im starsze tym lepsze. Powiem szczerze zawsze brakowało mi czasu na robienie takich wynalazków. Takie przeróbki robiłem zazwyczaj bazując na przerabianiu gotowych patentów. Zamiast klawiatury używałem pilota do komputera na bazie IRdy, znajdowałem piny odpowiedzialne za kierunki i jeden z przycisków np control. Nastepnie na drucikach wyprowadzałem na zewnątrz sygnał do przekaźników naprawionego wczesniej odbiornika do sterowania suwnicą. Nastepnie tylko program, żeby nie pomylić kierunków działania Joysticka, i zrobiłem tester dżojstików w oparciu o grę Boulder Dash. Szło w zasadzie podpiąć dowolny dżojstik, manipulator sterowniczy za cene 20 komputerów :D i sterować grą z emulatora commodore 64 z odległości nawet kilometra :D

    Co do Pegazusa

    1 FOR I = 1 TO 10 : PRINT I: NEXT będzie działał
    ale

    POKE 53280,1:POKE 53281,1: nie da białego ekranu

    W commodore byłoby łatwiej są cyfrowe wejścia :) nawet analogowe, nawet udalo mi się tam mikrofon wpiąć i coś nagrać, jedno DEMO, po resecie i uruchomieniu z
    Problem edukacji: kiedyś kupiłeś komputer i miałeś instrukcję po niemiecku albo angielsku; ale były tam przykłady programów w Basicu. I to było dla 8-latka bardziej przejrzyste niż moment w którym teraz kupuje telefon na Androidzie w 2017 i nie ma nic o programowaniu. W PC trzeba było odpalić QBASICa żeby się nacieszyć robieniem programów.

    Fajne by było postawienie takiej wirtualnej stacji, gdzie z przeglądarki mogliby się zalogować do Twojej konsoli i na ekranie Streamingowym oglądać co się stanie :po wpisaniu programu itp.

  • #6 22 Maj 2017 17:01
    R-MIK
    Poziom 35  

    phanick napisał:
    I C64 i Pegasusa napędza ten sam procesor (6502). No prawie, bo w C64 jest trochę nowsza wersja z większa liczbą rozkazów

    Tu się mylisz. W C-64 jest 6510 (w nowszych wersja C-MOS 8510 albo 8500 - nie pamiętam). 6510 w stosunku do 6502 ma:
    - dodatkowy port PIO (6-bitów)
    - 3-stanową magistralę adresową
    - możliwość zatrzymywania CPU w celu przejęcia kontroli nad magistralą a nie jak 6502 tylko wstawianie taktów oczekiwania
    Więcej szczegółów już nie pamiętam, za co serdecznie żałuję.
    Podsumowując, 6502 od C-64 poza PIO ma możliwość bezpośredniej pracy w systemie wieloprocesorowym. W C-64 czasem VIC zatrzymywał CPU (tzw podkradanie cykli, robił to co 8 linię w widocznej części obrazu) bo zasadniczo VIC pracował w przeciwfazie z CPU.

    Dodano po 6 [minuty]:

    Tremolo napisał:
    nawet analogowe, nawet udalo mi się tam mikrofon wpiąć i coś nagrać,

    Możesz opisać to dokładniej?

    C-64 zasadniczo nie miał przetworników AC. Były dwa CA na zasadzie ładowania RC wbudowane w SID (a może VIC, nie pamiętam). Przełączane kluczami 4066, co dawało możliwość podłączenia czterech potencjometrów. Przetwarzanie "trochę" trwało, więc o konwersji AC sygnału audio nie było mowy. Co do wejścia audio na SID-a to można go było miksować z sygnałem generowanym przez niego. Można więc było też go filtrować.
    Czyli bez dodatkowych układów CA (najczęściej ADC0808/9 (bo taki był gdzieś tam opisany) rzadziej ADC0800/01 (ja go stosowałem bo był tańszy i miał układ generatora taktującego RC) nie dało się samplować sygnału audio.

  • #7 24 Maj 2017 15:19
    AoT_Hunter_PL
    Poziom 21  

    W c64 pętle można było chyba zakończyć klawiszem RUN STOP , z tego co pamiętam ? poprawcie mnie

    Mam pytanie co z programem demonstracyjnym Krzysio PCB w tej chwili nie działa poprzez błąd serwera elektrody ?

    Pozdrawiam

  • #8 24 Maj 2017 15:33
    R-MIK
    Poziom 35  

    AoT_Hunter_PL napisał:
    W c64 pętle można było chyba zakończyć klawiszem RUN STOP , z tego co pamiętam ? poprawcie mnie

    Basic tak o ile przez POKE nie zostało to zablokowane. W maszynowym tak o ile był badany stan tego klawisza.

  • #9 24 Maj 2017 15:38
    phanick
    Poziom 28  

    Przetestowałem reakcje na każdy z kodów klawiszy 00-7F i programu nie dało się przerwać. Keyboard Transformer to przeróbka wersji famicomowej, która wykorzystywała klawiaturę podłączaną do portu rozszerzeń konsoli. Być może autorzy przeróbki przeoczyli modyfikację części programu odpowiedzialną za przerywanie.

    Poleć jakiś darmowy serwer z PHP bez reklam to program wróci ;)

  • #10 26 Maj 2017 15:51
    Tommy82
    Poziom 39  

    Co do klawiatur to XT były tylko do XT 286 wykorzystywały już klawiatury AT. Były natomiast klawiatury z przełącznikiem trybu pracy XT/AT. Klawatury XT te które widziałem miały blok klawiszy F z lewej strony.
    Te klawiatury to rzadkość i może sam konwerter był by ciekawym produktem bo o ile płyty XT to się może jeszcze gdzieś zachowały to po co komu klawiatura XT i tych może być relatywnie mniej.
    IBM w modelach ps2 stosował złacze ps2 natomiast jakim protokołem rpzesyłał dane to juz nie wiem. Kiedyś nasze liceum dostało jakieś kompy z jakiegoś banku i były to 386 ps/2 i tam już były klawiatury ps -we gdzie pierwsze złącze na śledziu ps/2 u mnie pojawiło się chyba dopiero w pentium 100.

    Co do tej książki z matematyki miałem ją tylko że już w mojej młodości była to książka stara i nieużywana natomiast pracowni komputerowej w podstawówce jeszcze długo nie było.

    Co do kompatybilności basiców. Basic w commodore 64 był w wersji 2.0 był licencjonowany przez m$ natomiast ciekawostka jest to że został kupiony za niewielkie pieniądze tzn microsoft chciał licencji per maszyna natomiast Jacek Trzmiel cwaniak co z miasta Łodzi pochodził powiedział ze zapłaci max 30 tyś dolarów za licencje i to przeszło. W ten sposób miał licencje na jeden z lepiej sprzedajacych się komputerów na świecie za 30 tyś kiedy microsoft jak by miał choć dolara z każdego commodore to były by z tego miliony a tak commodore miał licencje za stałą kwotę. Dlatego mimo późniejszych modyfikacji komodorynki wersja Basica była niezmienna.
    Oczywiście pojawiły się różne rozszerzenia Basica.
    Natomiast co jest istotne z punktu widzenia przenośności w commodore nie było instrukcji do obsługi grafiki (DRAW PLOT CIRCLE) czy dźwięku jak widzimy na górze w listingu tam pojawiają się polecenia takie jak PRINT AT czy BEEP. W commodore tego nie było żeby wyświetlić coś w określonej kolumnie ekranu commodore trzeba było pisać bezpośrednio do pamięci ekranu albo bawić się w stringu strzałkami. Czyli na przykład POKE 1024+numer kolumny +(numer wiersza * ilość znaków w kolumnie), wartość lub
    10 Print "strzałka strzałka strzałka tekst" Commodore przechodził po otwarciu cudzysłowu w taki dziwny tryb i nie interpretował strzałek i innych klawiszy. Interpretował je potem wyświetlając  strring. Było jeszcze jedno tzn PRINT TAB() i tako można było formatować kolumny.

    Dla tego nawet ten listing nie jest commodore kompatybilny w standardowej wersji.
    Ten listing powyżej to chyba dla ZX Spectrum chyba w tej książce był program do wyrysowania w basicu "trójwymiarowego" wykresu funkcji która wyglądała jak takie "plum" co powstaje jak się kamień w wodę wrzuci. Ale dopiero mogłem to zrobić jak dorwałem się do emulatora spectrum na commodore. Co ja się nakląłem z trybami wprowadzania komend bez opisu na klawiszach, jak wróciłem ze szkoły jeszcze rysował potem mi było kompa szkoda wyłączyć jak skończył bo to było takie "wow".
    Tak że wszystko zależy od zaaplikowanej wersji Basica to raz a dwa od pewnych konkretnych rozwiązań sprzętowych które mają swoje reperkusje w programowaniu ich. Na przykład obsługa tak zwanych spriteów w commodore.

    Co do zatrzymywania to jest też kombinacja runstop+restore i ona działała jak by lepiej od samego runstop.

    Z ciekawostek kiedyś grałem w qbasicowe niblesy na kompie XT.

  • #11 26 Maj 2017 16:09
    R-MIK
    Poziom 35  

    Tommy82 napisał:
    Basic w commodore 64 był w wersji 2.0 był licencjonowany przez m$ natomiast ciekawostka jest to że został kupiony za niewielkie pieniądze tzn microsoft

    Za ten Basic do m$ powinien dopłacać.

    Tommy82 napisał:

    W commodore tego nie było żeby wyświetlić coś w określonej kolumnie ekranu commodore trzeba było pisać bezpośrednio do pamięci ekranu albo bawić się w stringu strzałkami. Czyli na przykład POKE 1024+numer kolumny +(numer wiersza * ilość znaków w kolumnie), wartość lub

    Beznadziejny Basic miał jedną wielka zaletę. Po miesiący przesiadłem się na język maszynowy.

    Tommy82 napisał:

    Co do zatrzymywania to jest też kombinacja runstop+restore i ona działała jak by lepiej od samego runstop.

    W ten sposób wyło wywoływane przerwanie NMI. Jeśli nie zostało zablokowane/zmienione wektory) to (jak pamiętam) następował powrót do Basic.

  • #13 26 Maj 2017 21:45
    R-MIK
    Poziom 35  

    Tremolo napisał:
    no ale tym poke 1024 itp człowiek już wiedział z czym się je maszynowy i te tryby graficzne.

    I do czego służy słynny $D011. Do dziś pamiętam ten adres. Tam to dopiero otwierały się możliwości jak likwidowanie ramek dolnej i górnej a jak się postarać to i bocznych. Z 8-bit domowych (bez dedykowanego monitora jak Amstrad ale tego domowym kompem bym nie nazwał) to zdaje sie tylko C-64 potrafił wyświetlić obraz za całej zawartości monitora/telewizora. Co ciekawe, konstruktorzy układu graficznego VIC nie przewidzieli takiej możliwości, a jednak dało się.

Szybka odpowiedź lub zadaj pytanie
Dziękuję Ci. Ta wiadomość oczekuje na moderatora.
 Szukaj w ofercie
Wyszukaj w ofercie 200 tys. produktów TME