UP2SD Transfer Czyli jak przenieść dane z PC na C64. Czyli "alepoco" budować interfejs UP2SD. Wersja 1 dokumentu. 1. Wstęp
W przenoszeniu kodu i danych pomiędzy PC a C64 wykorzystuję specyfikę systemu plików FAT. Tuż po skasowaniu danego programu z karty SD, a następnie wgraniu kolejnego, plik zapisywany jest w tym samym miejscu! Czyli nie musimy teraz przechodzić żmudnej procedury odczytu adresu położenia pliku na karcie (patrz punkt 3). Po prostu po kompilacji programu (za pomoca skryptu) przekładamy kartę w czytnik UP2SD, z poziomu C64 z monitora wpisujemy GCC00, albo z basic sys52224. I po chwili już mamy program w pamięci ram C64.Oczywiście w międzyczasie nie dogrywamy kolejnych programów na kartę SD, ani ich nie kasujemy, bo będziemy wtedy musieli przejść przez całą procedurtę odczytu adresu od nowa. .:CC04 00 04 7E 00 adres położenia pliku na karcie SD, czyli $00047e00. Odczytamy go za pomocą programu WinHEX. Patrz punkt 3. .:CC09 08 0E (adres ładowania-2) programu w pamięci c64, czyli $0810=$080e+2. Słowo wyjaśnienia. 64Tass Turbo Assembler Macro po kompilacji w kodzie wynikowym wstawia, zgodnie z formatem zapisu c64, dwa pierwsze bajty adresu ładowania do pamięci c64. Aby uprościć procedurę, a jednocześnie skrócić czas jej wpisywania część przeliczeń przeczuciłem na użytkownika. Przykłady: Jeżeli kompilujemy nasz program pod $c000, to adres do wpisania wynosi $bffe. Jeżeli nasz program musimy załadować pod $1250, to adres do wpisania wynosi $124e. Przy używanej procedurze wartość ta powinna przyjmować max. $20. 3. WinHEX A. Formatujemy kartę SD. JEST TO WAŻNY ETAP. NIE ZALECAM POMIJANIA. Aby formatować kartę SD należy ustalić literę napędu, pod którym system widzi naszą kartę SD. Następnie z linii poleceń wpisujemy: format x: /FS:FAT /V:up2sd /Q /X /A:512 (for a 32MB Card) format x: /FS:FAT /V:up2sd /Q /X /A:8192 (for a 512MB Card) format x: /FS:FAT /V:up2sd /Q /X (Cards bigger than 512MB) Gdzie x to litera pod którš jest widoczna karta SD. Powyższy sposób przygotowania karty znalazłem w instrukcji do MMC Replay, konkretnie w tym dokumencie. B. Ściągamy wersję demonstracyjną programu WinHEX ze strony: http://winhex.com/winhex/.Do naszych celów w zupełności wystarczy taka wersja. C. Instalujemy i uruchamiamy WinHEX'a. D. Z górnego menu programu wybieramy: Tools -> Open Disk. Wybieramy oczywiście ten czytnik, w krórym znajduje się nasza karta do odczytania/zapisania. Koniecznie wybieramy opcję: Physical Media i zatwierdzamy przyciskiem OK. Otworzy nam się taki oto widok. Następnie kilkamy dwukrotnie w Partition 1. Otworzy nam się zakładka z zawartością katalogu głównego karty. Klikamy w nazwę programu, który ma być przeniesiony na C64. Klikamy w pierwszy bajt zawartości programu w centralnym oknie (4). Odczytujemy zawartość (5)Physical sector No.:575. E. Teraz pozostaje nam pomnożyć wartość odczytaną z (1) z wartością odczytaną z (5). W moim przypadku to: 512x575=294400. Otrzymany wynik zamieniamy na zapis hex: $47E00. Wygląda znajomo? Uzupełniamy otrzymany wynik w hex o brakujące 3 zera i mamy szesnastkowo podany adres położenia pliku na karcie SD. Ten właśnie adres $00047E000 wpisujemy w punkcie 2B, jako dane dla procedury wczytania z karty pamięci. 4. Zakończenie Opisany tu przeze mnie sposób transferu może się wydawać na pierwszy rzut oka zbyt pracochłonny, aby był przydatny. Lecz po kilkukrotnym przećwiczeniu procedury jest doskonałym sposobem na przenoszenie kodu wynikowego z PieCa na naszego Commodorka. Opiszę, jak w praktyce, wykorzystać powyższe informacje, oraz interfejs UP2SD do programowania "skośnego". Przygotowanie sobie środowiska programistycznego to temat na oddzielny artykuł. Na szczęście zostało to już opisane w C&A Fan nr 6(str. 82). Ja kod piszę w EditPad-zie. Aby go skompilować Turbo Assemblerem wywołuję z linii poleceń skrypt o treści:
Gdzie: del program.prg - kasujemy ew. poprzednią wersję skompilowanego programu tass.exe prg.txt -o program.prg -L prglist.txt tass.exe - Wywołanie 64Tass Turbo Assembler Macro z parametrami: prg.txt - kod do kompilacji -o program.prg - nazwa pliku wynikowego -L prglist.txt - listnig programu do pliku, pomocny przy szukaniu adresów etykiet i błędów. del x:\program.prg - kasuje z karty SD poprzednią wersję programu. copy program.prg x:\program.prg - kopiuje aktualną wersję programu na kartę SD. Czego sobie i Wam, drodzy czytelnicy, życzę. Tutaj -> FORUM można podyskutować na temat tego dokumentu, interfejsu, oraz możliwości rozwoju projektu. |
|
|
5.02.2013 | Zmiana kolejności niektórych fragmentów tekstu. Dodanie linka do wątku na forum. Merytorycznie bez zmian. |
1.02.2013 | Publikacja dokumentu. |