UP2RS ––––––––– Wersja 1, zawsze może ulec zmianie. Ostrzeżenie!!! Wszystkie podłączenia należy wykonywać na wyłączonym C64. Autor nie odpowiada za lekkomyślne, nieprawidłowe podłączenie, brak zdolności manualnych, oraz wszystkie uszkodzenia, do których doszło w wyniku braku zdrowego rozsądku. Podczas tworzenia tego artykułu nie ucierpiał żaden Commodore C64. Do wykonania interfejsu będą potrzebne: 1. Niezbędnie: ––––––––– a) Konwenter USB-UART PL2303HX do nabycia na znanym portalu aukcyjnym polskim, lub chińskim. U nas w kraju z przesyłką wychodzi ok 15 zł; b) Złącze krawędziowe user port; c) Sprawny c64 ze sprawnym User Portem; 2. Mogą być, ale bez nich też interfejs będzie działał. ––––––––– a) pistolet na klej termo lub lutownica. b) taśma izolacyjna c) obudowa do user portu. d) płyn wzmacniający, w przypadku osób pełnoletnich może być z zawartością alkoholu, ale w ilościach mniej, niż hurtowych. 1. Wstęp Jak sięgam pamięcia wstecz, zawsze poszukiwałem jakiegoś sensownego rozwiązania, pozwalającego przenosić szybko i skutecznie programy i dane pomiędzy C64 <--> PC. Począwszy poprzez własnie rozwiązania programowe pod DOS-em, up2sd, po rozwiązania typu PC64, 1541emu, sd2iec, a skończywszy na najnowszych 1541u. Wszystkie te interfejsy pozwalają przenosić dane, lecz nie rozwiązują problemu szybkiego transferu w momencie, kiedy chcemy korzystać z dobrodziejstwa programowania na komputerze PC, a efekty sprawdzać na C64 (jak np. w programowaniu stm32). Niestety, nie jestem genialnym programistą, który napisze program, bo mapę c64, rozkazy procesora 6502, w tym te niepublikowane, ma w pamięci, potem go przeniesie za pomocą karty SD do C64, uruchomi i będzie mu działał. Ew. do poprawki zostanie kolor ramki, albo liter. U mnie niestety proces programowania polega na wyłuskiwaniu robali z co drugiej linijki kodu. Co za tym idzie, często muszę kompilować i sprawdzać efekty w praktyce. Z pomocą na te bolączki przychodzi interfejs RS232, który pragnę Wam zaprezentować. Rozwiązanie to jest przeznaczone do wykonania dla każdego. Nawet dla tych, którzy słysząc słowo lutownica, z okrzykiem przerażenia wyskakują przez okno, uprzednio upewniwszy się, że znajdują się na parterze. Nawet dla tych, którzy nie mają juz złącz RS232 w swoim PeCecie, za to na pewno posiadają USB. 2. Wykonanie interfejsu jest banalnie proste.
Najpierw musimy zdobyć potrzebne komponenty. W przypadku konwentera USB-UART zanabywamy go na znanym polskim portalu aukcyjnym. W przypadku złącza krawędziowego user portu, jest już trochę trudniej. Ja swoje złącza zakupiłem na aliexpress.com, zapłaciłem 12$ za 5 sztuk. Cena nie zwala z nóg. Należy zwrócic uwagę, żeby złącze user portu posiadało piny, a nie pady do przyczepiania przewodów. Mając na uwadze, że złącza user portu będa szły z Chin jakiś czas, można też w Chinach zamówić sobie konwenter PL2303HX. Cenowo wyjdzie tyle, co w Polsce, ale jak dobrze poszukać, to przesłyka będzie darmowa.
Na aliexpress.com można się zarejestrować, płatność odbywa się poprzez np. mTransfer (!!!), ochrona klienta działa lepiej niż na alledrogo (przetestowałem), sprzedawca pieniądze od nas otrzymuje dopiero, po potwierdzeniu, że odebraliśmy towar zgodny z zamówieniem. C. Łączymy wyprowadzenia konwentera PL2303HX z końcówkami user portu tak, jak na załączonym zdjęciu.
UWAGA! ––––––––– Czerwonego przewodu Vcc nie łączymy!!! ––––––––– Złącza pasują z bolcami, jednak dla pewności połączenia można użyc kleju. Rodzaj kleju i technika klejenia dowolna, należy jedynie zwórcic uwagę, że końcówki konwentera USB-UART nie do końca wchodzą na bolce złącza user portu. Ja użyłem termokleju (potrzebny pistolet). Kiedyś, na jakiejś aukcji, kupiłem obudowę do złącza user portu, więc mam w dostateczny sposób zabezpieczone pozostałe piny.
Jeśli chcecie zaizolować resztę nie podłączonych wyprowadzeń (warto, bo zabezpieczymy w ten sposób układ CIA przed przypadkowym spaleniem), a nie macie obudowy (jest to towar bardzo deficytowy i jeżeli ktokolwiek widział, ktokolwiek wie, niech da znać, gdzie takie obudowy są) to można do tego wykorzystać też zwykłą taśmę izolacyjną.
Tak wygląda podłączony interfejs do C64. A tak wygląda podłączony interfejs z obudową. 3. Oprogramowanie, czyli ale po co.
Wiadomo, że najlepszy i najprostszy interfejs jest do niczego, gdy nie ma do niego oprogramowania. Ja znalazłem doskonałe do moich celów, a nazywa się Over5. Właściwie od tego powinienem zacząć, bo dzięki temu oprogramowaniu ma sens wykonanie interfejsu i wykorzystywanie go w procesie kompilowania programu na PC a testowania bezpośrednio na C64.
Następnie w pliku Over5.cfg ustawiamy parametry: Opis polecenia: over5.exe SIMPLEWRITE monsters.prg over5.exe - program uruchamiany po stronie PC; SIMPLEWRITE - parametr, z którym uruchamiamy program Over5; monsters.prg - nazwa programu do przesłania do c64. Słowo informacji, dla tych, którzy do tej pory nic nie słyszeli o Over5. Można oczywiście przesyłać pliki w drugą stronę, czyli z C64 do PC. Najpierw uruchamiamy over5 na komputerze PC poleceniem: over5.exe SIMPLEREAD C64data.prg gdzie: over5.exe - program uruchamiany po stronie PC; SIMPLEREAD - parametr, z którym uruchamiamy program Over5; C64data.prg - nazwa na dysku, pod jaką zapisze się przesłany program z c64. Na Commodore C64, po uprzednim wywołaniu FastRS, wpisujemy SYS703 i gotowe. Istnieje jeszcze jeden sposób wywołania programu over5: over5.exe server. Zaciekawionych tym tematem odsyłam do instrukcji zawartych w pliku over5-20021117.tar.gz 4. PL2303HX, Over5, Final 3 - czyli 3 naciśnięcia klawiszy.
To wszystko powyżej możemy traktować jako ciekawostkę i nie do końca wygodny sposób na przesyłanie danych. No bo co się stanie, gdy program FastRS zostanie przypadkowo skasowany? Trzeba wgrywać jeszcze raz, pół biedy, gdy ze stacji dyskietek, albo z 1541u, albo z sd2iec, ale bieda cała, jak z magnetofonu (ktoś go jeszcze używa?!). Szczególnie, gdy mamy 1541ultimate cała powyższa zabawa wydaje się zupełnie pozbawiona sensu, ale... czy aby na pewno?
Skwapliwie skorzystałem z tej mozliwości i przerobiłem w kilku miejscach oryginalny ROM Finala tak, aby w pełni współpracował z interfejsem RS232, programem Over5, a przy okazji nie tracił nic ze swej funkcjonalności. Plik z ROM do wypalenia uzyskasz klikając TU. Na koniec. U mnie na komputerze PC aktualnie skrypt kompilacji wygląda tak: set assfile=master.txt - definiujemy plik do kompilacji, tutaj jest to akurat kod źródłowy MasterMon'a Polonusa; set outfile=program.prg - nazwa programu po kompilacji; del %outfile% - kasujemy poprzednią wersję skompilowanego programu; 64tass.exe %assfile% -o %outfile% -L program_listing.txt - wywołujemy kompilację z parametrami; if not exist %outfile% goto i - jeżeli wystąpiły błędy, to nic nie wysyłamy do c64; over5.exe SIMPLEWRITE program.prg - przesyłamy skompilowany program do pamięci C64 pamiętając o uprzednim uruchomieniu FastRS na C64 (Mając TFC++ ze zmodyfikowanym ROM naciskamy kolejno: Reset -> F1 -> Return). :i O programowaniu Commodore C64 przy użyciu komputera PC więcej w tym numerze C&A w artykule, który napisał Skull/Samar: "Współczesne środowisko programowania na Commodore 64". Paczka z oprogramowaniem dołączonym do tego numeru tutaj. Pozdrawiam, Tomasz "Moneo" K. PS. Zmiany w stosunku do oryginalnego ROM Finala 3: $94c0 (offset $14c0 w ROM TFC++) jest: .byte $A0,$8D,$53,$79,$35,$37,$32,$33 .byte $38,$3A,$0D,$00,$8D,$52,$75,$3A .byte $0D,$00,$44,$4C,$6F,$3A,$0D,$00 .byte $8D,$44,$6F,$22,$24,$3A,$0D,$00 było: .byte $A0,$8D,$4C,$49,$53,$54,$3A,$0D .byte $00,$8D,$52,$55,$4E,$3A,$0D,$00 .byte $44,$4C,$4F,$41,$44,$0D,$00,$8D .byte $93,$44,$4F,$53,$22,$24,$0D,$00 dopisane: $01F96 .byte $78,$A9,$44,$8D,$FF,$DF,$58,$60 .$10000 do $10650 program Over5 FastRS wraz z procedura instalującą go w pamięci ram C64. $11F99 .byte $8D,$FF,$DF,$4C,$00,$80 Tutaj można pobrać źródło procedury instalacyjnej w ram C64 programu FastRS umieszczone w zmodyfikowanym ROM TFC++. Zawartość tego artykułu może ulec zmianie. Tutaj na FORUM można podyskutować na temat interfejsu. |
|
|
15.11.2015 | Publikacja pierwszej wersji dokumentu. |