UNO2IEC to emulator stacji dysków 1541 na Arduino UNO lub Nano.
Komunikacja odbywa poprzez port serial Commodore 64, a z komputerem poprzez port USB.
Komputer stanowi rodzaj hosta z którego poprzez specjalny program montujemy obrazy programów lub gier i ładujemy do Commodore 64.
Do budowy wystarczy wtyk DIN 6 pin, przewody połączeniowe i Arduino UNO lub Nano z przewodem USB.
Gotowy projekt UNO2IEC
Projekt nie wymaga specjalnych układów, czy elektroniki i jest prosty w wykonaniu, jedyne co musimy zrobić, to przylutować przewody połączeniowe do wtyku DIN 6 pin.
Wtyk DIN 6 pin.
Gniazdo serial ma takie sygnały.
Podłączenie wtyku do Arduino.
Po wykonaniu połączeń należy ściągnąć i zainstalować program Arduino -> Link
Po zainstalowaniu uruchamiamy raz i zamykamy program, w folderze Moje dokumenty zostanie utworzony folder Arduino, a w nim libraries.
Do tego folderu kopiujemy potrzebne biblioteki.
Do działania wymagana jest ta biblioteka -> Link
Po rozpakowaniu folder arduino_max7219-master kopiujemy do libraries.
Program do wgrania do Arduino -> Link
Po rozpakowaniu w folderze uno2iec jest program uno2iec.ino, klikamy w niego 2 razy, uruchomi się program Arduino, wybieramy odpowiedni rodzaj Arduino i odpowiedni port COM w menu Narzędzia.
Teraz wystarczy wgrać program do Arduino klikając w strzałkę u góry po lewej stronie.
Po wgraniu powinien pokazać się nap[is na dole ładowanie zakończone.
Możemy zamknąć program Arduino.
Do ładowania obrazów dyskietek d64 i programów z komputera służy ten program -> Link
Po rozpakowaniu uruchamiamy go klikając 2 razy w uno2iec.exe.
Po uruchomieniu wchodzimy w górne menu Main -> Settings i ustawiamy jak pokazano niżej.
COM port - wybieramy port com na jakim pracuje Arduino.
Serial Speed ustawiamy na 57600
Device number - ustawiany numer stacji
Piny ustawiamy kolejno 6, 5, 4, 3 jak na obrazku wyżej.
Folder D64 wybieramy folder z obrazami d64 lub programami.
Po poprawnym połączeniu powinno być tak.
Teraz wybieramy obraz d64 lub program i klikamy Mount Selected Image.
Teraz mamy emulowaną stację dysków i możemy wpisać w Commodore:
LOAD"$",8
Teraz wpisujemy LIST ,aby wyświetlić listę plików.
Teraz wpisujemy LOAD"nazwa_programu",8
W programie na komputerze zacznie się ładować program.
Teraz wpisujemy RUN , aby uruchomić program.
Program powinien zacząć się uruchamiać.
Aby uruchomić inny program w programie na komputerze wybieramy Unmount i montujemy nowy program.
To tyle, jest to dosyć dobre i proste rozwiązanie, jeżeli nie chcemy ładować gier z magnetofonu lub stacji dyskietek.
Biblioteka arduino_max7219 jest wymagana tylko wtedy jeżeli chcemy korzystać z wyświetlacza MAX7219. Po za tym warto wspomnieć że niestety ale ten emulator nie uruchomi nawet połowy tego co SD2IEC choć nie ukrywam jest dużo tańszy w konstrukcji
OdpowiedzUsuńBez tej biblioteki nie chciało się skompilowac.
Usuńwystarczy zakomentować odpowiednie linijki w pliku global_definies.h
UsuńDzięki.
UsuńTo jest mój pierwszy projekt na Commodore 64, nie mialem nic poza samym C64 i zasilaczem, ale miałem Arduino.
OdpowiedzUsuńWkrótce opis budowy SD2Iec.
Hello, I'm the author uno2iec and want to thank the guy who wrote this guide. I'm surprised every time I see people experiment with it. It was just a summer project I made for fun a few years ago. It's great to see people in Poland to try it out. BTW, I made a port of SD2IEC for the mega2560,it works just fine. I recommend that for the bang and wistles on that project. It's on github as well in my profile. Cheers!
OdpowiedzUsuńNie wiem czy tutaj można ale mam problem zbudowałem wszystko tak jak w poradniku i podłączyłem wgrałem kod do Arduino UNO R3. I wpisuje LOAD"$",8 a Commodore nie ładuje gier, pomógłbyś jako twórca tego poradnika ?
OdpowiedzUsuńA program na komputerze uruchomiony i wszystko ustawione jak na zdjęciu?
OdpowiedzUsuńCzy to działa z Arduino uno z innymi układami
OdpowiedzUsuńBardzo ładne opracowanie. Zastanawiam się czy aplikacja uno2iec.exe została napisana specjalnie pod ten właśnie hardware (Arduino Uno lub Nano) czy może hardware na Artuino było zastąpieniem jakiegoś pierwowzoru? Tak zakładam, z uwagi na domyślnie inną konfigurację numerów pinów oraz prędkości UART-a. Ktoś kojarzy pierwowzór?
OdpowiedzUsuńPróbował ktoś podłączyć wyświetlacz do hardware na Arduino?
Jeśli użyto biblioteki max7219, zgaduję, że będzie to coś takiego:
https://i.imgur.com/QZ8HIm8.png
lub takiego:
https://i.imgur.com/aPStX6B.png
Podłączał ktoś? Jak efekty?
PS. Widzę, że w kodzi mamy coś takiego:
static Max7219* pMax;
// Put ANYTHING cool in here you want to scroll as an initial text on your MAX7219!
static const byte myText[] PROGMEM = " WELCOME TO THE NEW PORT OF MMC2IEC ARDUINO BY LARS WADEFALK IN 2013... ";
// Note: This is the pin configuration for the MAX7219 display, if used (not IEC related).
static const byte PROGMEM MAX_INPIN = 11, MAX_LOADPIN = 13, MAX_CLOCKPIN = 12;
#endif
Sprawdzał ktoś co się wyświetla na wyświetlaczu poza napisem startowym?
Przetestowałem na Arduino Nano. Działa bardzo fajnie, niestety wyłączenie z jednoplikowanym grami czy programami, dogranie czegoś lub uruchmoienie gry całodyskowej nie jest możliwe (a szkoda). Zakładam, że to ograniczenie wyłącznie softwareowe aplikacji Arduino2IEC. Gdyby autor ją rozwinął do pełnej kompatybilności (albo przynajmniej takiej, którą oferuje SD2IEC) byłaby rewelacja - dla mnie rozwiązanie dużo fajniejsze, elastyczne i prostsze niż SD2IEC z kartą SD.
OdpowiedzUsuńTrzeba też dodać, że rozwiązanie nie działa z fast loaderami (testowałem na Final 3 i Action Reply 7.
OdpowiedzUsuńFajne to UNO2IEC wczoraj sobie złożyłem. Pierwsze moje zetknięcie z Arduino. Zamówiłem części i będę niebawem sd2iec składał.
OdpowiedzUsuńPod W10 się kompilowało, pod Windowsem XP coś Arduino zawiodło...
OdpowiedzUsuńprocessing.app.debug.RunnerException
at cc.arduino.Compiler.callArduinoBuilder(Compiler.java:317)
at cc.arduino.Compiler.loadPreferences(Compiler.java:216)
at cc.arduino.Compiler.build(Compiler.java:175)
at processing.app.SketchController.build(SketchController.java:664)
at processing.app.Editor$BuildHandler.run(Editor.java:1624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Cannot run program "C:\Program Files\Arduino\arduino-builder": CreateProcess error=193, %1 nie jest prawidłową aplikacją systemu Win32
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at processing.app.helpers.ProcessUtils.exec(ProcessUtils.java:26)
at cc.arduino.Compiler.callArduinoBuilder(Compiler.java:297)
... 5 more
Caused by: java.io.IOException: CreateProcess error=193, %1 nie jest prawidłową aplikacją systemu Win32
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.(ProcessImpl.java:386)
at java.lang.ProcessImpl.start(ProcessImpl.java:137)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 7 more
Ale na 1.8.3 poszło :-)
OdpowiedzUsuńProponuję zmienić mylący tytuł na emulator interfejsu IEC. Emulator stacji dyskietek to mamy np w VICE, PI1541 albo w Ultimate.
OdpowiedzUsuńCzy w zamontowanym pliku .d64 można zapisywać dane czy tylko odczytywać?
OdpowiedzUsuń