Jak konwertować z Apple II? by Kaz 2008-10-09 02:11:45

O nie! To nie jest jeszcze informacja o tym, jak łatwo, przyjemnie i bez wysiłku konwertować gry z Apple II. Ale blisko... Kolega Paweł "Sikor" Sikorski wykazując cenne zaangażowanie w temat emulatora Apple II, drążył temat do tego stopnia, że w nagrodę uzyskał dostęp do ściśle tajnych zasobów autora emulatora czyli Piotra "Artaxa" Mejera. Zasobem tym jest pierwsza, robocza wersja konwertera do dyskietek Apple II na format atarowski - atr oraz nowsza wersja emulatora, na razie niedostępna publicznie.

Niesiony falą entuzjamu Sikor zaczął po nocach szukać stron z programami dla jabłuszka, ściągać co ciekawsze programy i konwertować dyski, aby przekonać się, które programy chodzą na już dostępnym emulatorze. Wiele godzin pracy, głównie w rozgryzanie nieznanego mu wcześniej sprzętu i kilka ciekawych odkryć, które przecierają szlaki. Ale oddajmy głos Pawłowi:

Na razie krótki tekst o walce z przenoszeniem i obsługą Apple II - myślę, że to pozwoli ludziom (także tym z AtariAge) na w miarę uważne śledzenie tematu i włączenie się w czynną konwersję programów za jakiś czas. Na moje oko, jeśli się uda przejść pewne bariery "pseudo-technologiczne", można skonwertować około 100-150 tytułów z Apple II, w które da się grać - więc gra jest warta świeczki. Na pewno pomoże w tym wgrywanie zrzutów stanu pamięci z "dużych" emulatorów, co jak wiemy, jest zamierzone przez autora.

Wrażenia z pola walki

Kilka dni temu otrzymałem ciekawą przesyłkę – wersję beta programu do konwersji danych z obrazów dyskietek Apple II na obrazy dyskietek Atari. Ochoczo zająłem się testowaniem (mimo, że praca z tym programikiem odbiega od dzisiejszych standardów, ale spełnia on swoją rolę). Pierwsze, co rzuciło m się w oczy – tylko obrazy „niespakowane” (mające 140KB) dają się dobrze konwertować. Dokopałem się do kilku archiwów z programami na Apple II i ruszyłem do dzieła. Na początek – przeżyłem kilka(naście?) rozczarowań: prawie nic nie chciało zadziałać na Atari. Ale wreszcie pewien sukces: ruszyła „dyskietka” z DOS-em 3.30 (DOS dla Apple). Po przekopaniu się przez sieć, ściągnąłem plik z instrukcją do niego. Wszak nie znam filesystemu Apple, ponieważ nigdy go nie posiadałem. Coś zaczęło działać…



W "praniu" okazało się, że praktycznie z punktu widzenia użytkownika emulatora interesują nas dwie komendy: CATALOG – listująca zawartość dyskietki oraz BRUN – uruchamiająca program binarny. Po dokonaniu tego odkrycia udało mi się zobaczyć, że większa część skonwertowanych dyskietek działa, tylko się nie uruchamia. Zacząłem się wgryzać w temat. Okazało się, że odpowiednie oznaczenia w katalogu dyskietki oznaczają kolejno:




Krótki instruktaż obsługi dla tych, którzy jeszcze nie próbowali zabawy z emulatorem: uruchamiamy emulator, klawiszami SELECT i OPTION ruszamy się po menu i ustawiamy żądaną głośność, ładujemy dyskietkę Apple-a i wciskamy START. Jak nam się po chwili (lub dłuższej chwili na prawdziwym Atari) pokaże napis "Language not available", wpisujemy komendę "CATALOG". Wyświetli nam się katalog dyskietki Apple. Tam, gdzie pliki mają wyróżnik "B" (binary) - istnieje duża szansa, że plik się uruchomi. Wpisujemy komendę "BRUN" i pełną nazwę pliku (ze spacjami i znakami specjalnymi, o ile występują). Czasem, gdy polecenie "CATALOG" nie chce zadziałać, pomaga zamienienie dyskietki na dyskietkę z DOS-em (START, SELECT aż do opcji RESET APPLE, OPTION , START, po wczytaniu DOS-a wymiana dyskietki, komenda CATALOG i voila - mamy katalog dyskietki i wszystko działa. Problem z Apple w tym, że dyskietki z plikami są inicjowane programem w Basicu, a tego nasz emulator (jeszcze?) nie ma. Stąd zabawa z DOS-em, ale sporo rzeczy chodzi.



Zacząłem próbować wczytywać poszczególne pliki. W dużej mierze się to udawało, pod warunkiem, że plik jest typu „B”. Z uzyskanej później od Artaxa informacji dowiedziałem się, że Apple Basic nie jest zaimplementowany w naszym emulatorze, zamiast tego jest Integer Basic. Czyli te pliki z literą "A" można sobie póki co odpuścić (brak pamięci do emulacji – Apple Basic w Apple jest jako dodatkowa karta, która oprócz ROM-u daje dodatkowe 16KB pamięci).

Metodą prób i błędów uzyskałem kilka mniej lub bardziej chodzących programów (w dziale emulacja jest też zbiór „muzyczek” dla Apple II). Zauważyłem też, że niektóre gry lepiej wyglądają z włączonym interlacem – na przykład gra "Shamus". Niestety, część programów się zawiesza (na przykład "Pest Patrol"), nie podając kodu błędu emulatora, a część wywołuje błędy emulatora (częsty jest błąd C042: błąd 09).



Pamiętajmy jednak, że to wciąż jest rozwojowa wersja emulatora, a z dobrze poinformowanych źródeł mam informację, że prace idą pełną parą. Co jeszcze należy dodać? Przy wczytywaniu dyskietek często wyskakuje nam błąd „Language not available” – czyli brak języka. Początkowo mnie to przerażało (zanim nie znalazłem DOS-a), ale okazało się, że dyskietki Apple-a są często zainicjowane plikiem HELLO, który jest w Basicu… Co ciekawe – jest też namiastka DOS-a, czyli znane nam już polecenie „CATALOG” oraz komenda „BRUN nazwa” w dużej mierze zaradza sprawie. Co ciekawe, w nazwie należy podać wszystkie znaki, łącznie ze spacjami i znakami specjalnymi, o ile takie występują.

Na razie życzę miłej zabawy z obecną wersją emulatora i czekam na kolejną, tym razem już oznaczoną cyferkami 1.0.


Tyle od Sikora, a ja zapraszam do katalogu użytków, gdzie swoje miejsce znalazł podkatalog z emulatorami, a tam zaś pierwsze dyskietki przekonwertowane przez Sikora. Dzięki Paweł.
Artax 2008-10-09 12:56:14

No cóż, mylić się jest rzeczą ludzką ...i popełniać błedy też :). Właśnie znalazłem jeden , który był przyczyną przynajmniej części problemów z ładowaniem. Ale jak to z robactwem, co jedno ubijesz, następne przypełza :(. Pliki oznaczone literką I (Integer Basic) powinny się ładowac bez problemu. Z B czyli binarkami może być różnie, ale walczę z tym. Te z A (Apple Basic) mogą się nie uruchamiać, to jednak trochę inna składnia. A dla niedowiarków którzy nie wierzą że to jednak pełen emulator...podczas startu trzeba wyłączyć opcję DISK BOOT a po zgłoszeniu monitora wcisnąć CTRL+B i ENTER. Miłej zabawy!

Kaz 2008-10-09 17:24:03

Chyba sobie rozegram partyjke szachow - na jednym ekranie bedzie gral Sargon z Apple II, a na drugim Sargon z Atari. Ciekawe, ktory jest mocniejszy? :)

sikor 2008-10-09 21:35:19

@Kaz, podaj wynik ;) Prośba o poprawkę w tekście: jest: "Czyli te pliki z literą "B" można sobie póki co odpuścić " - powinno być "pliki z literką "A"..."
@Artax: znowu się na coś przydałem ;) Piszesz, że Integer Basic powinien działać, horyzonty się poszerzają ;)

pin 2008-10-10 00:00:00

BŁAGALNA prośba. Czy istnieje możliwość konwertowania plików z obrazami dyskietek apple'a do PLIKÓW tak, by plik taki był odczytywany spod tego samego katalogu z którego na Atari został uruchomiony plik z emulatorem?? - Zwiększy to zapewne grono użytkowników, bo operowania plikami ATR jest bardzo kłopotliwe i nieekonomiczne a na dodatek bezsensowne w przypadku posiadania /prawdziwego/ dysku twardego do Atari. Więc?? :)-

pin 2008-10-10 00:04:40

jak pod ATARI DOS uruchomić plik:

ATARI][.XEX

który dos na Atari potrafi rozpoznać znaki :) - "]["

:)- tak tylko pytam :)

iak 2008-10-10 00:09:04

Pin: ciechoroba, któryś powinien potrafić. Tak coś mi się jarzy, że któryś pozwalał nawet na znaczki semigraficzne. Ale to było dawno i nie mogę sobie przypomnieć.

pin 2008-10-10 00:11:59

cóż. Z nieznanych mi przyczyn na prawdziwym Atari nie mogę tego uruchomić. Prośba i zarazem pytanie takie - gdzie emulator ładuje się do ramu, petycja numer dwa - j. powyżej, trzy - czy można dodać dodatkowy plik z konfiguracją wykorzystywanych banków ext ram??

pin 2008-10-10 00:13:35

@IAK: chodzi o to, że o dziwo plik APPLE][.xex znajduje się w archiwum z emulatorem komputera Apple :)

tebe 2008-10-10 01:33:42

emulator działa na 130XE lub Compy, potrzebuje dostępu Antic-a do pamięci dodatkowej, przecież wiesz Pin-ek jakie banki ma 130XE

pin 2008-10-10 02:44:39

TeBe - wiem, ale do czegoś innego zmierzam. Zmierzam ku temu, by w całości działało to pod NORMALNYM dosem i by notorycznie nie trzeba było czegoś przekonfigurowywać by uruchomić program.

sikor 2008-10-10 07:15:35

@Pin, marudzisz. Uruchom na Atari 130XE - działa. Póki co Artax ma problemy z pamięcią, ale pracuje nad tym. Poza tynm -Ty masz mutację z 816-ką, więc zapomnij ;) A gwarantuję, że zabawa jest przednia. Aha, Sparta DOS x != normalny DOS ;)

Artax 2008-10-10 08:28:04

@Pin:pisałem już kiedyś Sikorowi, aby uruchomić obsługę plików musiałbym w kodzie zaszyć mikrodosa i jego obsługe. Nie jest to takie trudne, ale cierpie na razie na braki pamięci, gdzie mógłbym to upchnąć. Więc raczej wątpie abym to wsadził do 1.0. Co do konfiguracji pamięci- standartowo ANTIC czyta obraz i DLI z pamięci podstawowej, a CPU szaleje po banku zerowym gdzie siedzi program Apple. Dzięki temu program Apple nie widzi obszaru ekranu. Jak rozszerzenie pamięci tego nie obsługuje... to na ekranie jest kasza. W wolnej chwili wsadze DLI gdzieś w normalną pamięc, może to pomoże. Ale pamięci ekranu nie ruszę ponieważ nie mam gdzie :) A co do tych nieszczesnych applowskich ][ - usuń je po prostu z nazwy pliku wykonywalnego i masz po sprawie :D. Jak by co to przyłacz się do konkursu na nazwę emulatora który ogłosił Kaz, to sprawa się rozwiąże definitywne...

Kaz 2008-10-10 12:43:01

Ja poprawilem Apple ][ na Apple II wszedzie gdzie zauwazylem, ale widocznie gdzies przeoczylem.

pin 2008-10-10 14:38:00

@Sikor: czyli chodzi o rozdzielny dostep antica do ext ram - nie problem po przelaczeniu na 576kB. Jaki problem jest z '816 jesli obsluguje wszystkie legalne rozkazy 6502?? Jaki inny normalny dos masz na mysli?? tip-top dos by Zenek z Dupy Ciemnej?? Sparte przynajmniej dosem nazwac mozna, bo wyglada i dziala jak dos, a nie kupa syfu :)

@Artax: a czy nie da sie skorzystac z dosa i jemu powierzyc obsluge plikow?? Poza tym, co do pamieci to pytalem bardziej o to, gdzie emulator sie laduje a nie z jakich bankow korzysta i gdzie jest pamiec ekranu :) Gdzie sie laduje - czyli np. od $1000, $2000, $0000 :))) - czy jak?

Co do oczywiscie nazwy pliku, to nie problem to zmienic, lecz po prostu zadziwilo mnie to i tyle :)

pin 2008-10-10 14:45:55

.. no i odpaliło na 576kB w trybie zgodnosci ze 130XE. Emu odpalil z HDD, na D1 mam zwolnione SIO i ATR z danymi dla emulatora jest tam wlasnie. Pytanie tylko takie - co oznacza kwestia: 0803 ERROR : 09 ??? :)

Artax 2008-10-10 16:28:21

@pin:właśnie Ci to pisałem. Ładuje się teoretycznie od $1000 wzwyż, a następnie relokuje do banków pamięci i pamięci podstawowej pod bankami. Nie da się użyć dosa ponieważ cała pamięć podstawowa i bank 0 jest udostepniona dla programu Appla. Bład 09 oznacza że debuger wbudowany w emulator był nadgorliwy i podmienił nie to co trzeba. Można próbować zmieniać parametry emulacji np. zmniejszyć MAX LEVEL UPDATE. W jakim momencie Ci to pada?

pin 2008-10-10 19:37:09

:) - teraz dopiero piszesz, że emu laduje sie na $1000, albo to ja cos przegapilem :) .. a co do pytania - emu wykrzacza sie z owym bledem przy probie ladowania ateera z danymi dla emulatora. Pytanie dodatkowe;- bo jesli emu laduje sie od $1000 i cala pamiec jest dostepna dla programu apple'a, to co sie dzieje, jesli program zaladuje cos na $1000??

Artax 2008-10-10 21:52:43

Zaraz po załadowaniu całą pamięć jest zwalniana przez przeniesienie emulatora do banków pamięci. Dlatego program apple spokojnie może się ładować pod $1000. Jaki atr ładujesz?

pin 2008-10-11 00:18:56

Spy vs Spy, jeśli chodzi o ten Error.

sikor 2008-10-11 00:47:18

Pinek, ale na gołej, oryginalnej 130-ce chodzi bezproblemowo... Dziwne...

Artax 2008-10-11 01:24:53

@Pin:Czy ten błąd powtarza się przy każdym ładowaniu? I czy adres 0803 jest zawsze ten sam?

pin 2008-10-11 10:35:09

@Artax: tak, błąd się powtarza.

@Sikor: marudzisz jak stara baba :) - emul się u mnie uruchomił, a podając osobiste przemyślenia, czy wyniki testów autor ma ewentualną możliwość weryfikacji kodu emulatora, jeśli uzna to za konieczne. To nie chodzi o to, kto ma dłuższego - czyt. kto ma bardziej oryginalne Atari. W stosunku do owego oryginału o którym mówisz w zasadzie można powiedzieć, że mam jedynie procek pozbawiony nielegali, a RAM po przełączeniu z 1088 na 576 uzyskuje u mnie sprawność Atari130XE, czyli mam w takim przypadku rozdzielny dostęp CPU/ANTIC->ext ram, czyli to, co akuratnie jest tu bardzo potrzebne.

Artax 2008-10-11 17:32:18

@Pin:To ciekawe że nie chodzi. Prześlij proszę na mój adres stan emulatora w momencie błędu.

pin 2008-10-12 22:51:01

@Artax - ale ja nie użyłem emulatora :)- temat dotyczy real Atari i w wyniku działania emulatora Apple'a błędu, który przedstawił mi się tak, jak wspominałem powyżej postów kilka, czyli: "0803 ERROR : 09"

Artax 2008-10-13 08:47:16

@Pin:Skrót myślowy. Spróbuj powtórzyć na emulatorze te czynności które wykonywałeś w realu. Jęsli powstanie ten sam błąd przeslij do mnie zrzut stanu. Nie stosuje żadnych rozszerzonych (nielegalnych :) ) instrukcji, więc w realu teoretycznie powinno tak samo działać. Problem może być w miejsach w których dla przyspieszenia działania zastosowałem samomodyfikujący kod...to może być czułe na procka. Jeśli Ci dalej nie pójdzie spróbuje zmodyfikowac kod w tych punktach i podeśli Ci nową wersję

pin 2008-10-13 09:30:40

Na emulatorze Atari emu Apple'a działa nie powodując wspomnianego błędu. Może być to w takim razie kwestia o której wspominasz a dotycząca samomodyfikującego się kodu.... no chyba, że z nie wyjaśnionych przyczyn jest jakiś kłopot z rozpoznawaniem dodatkowego ramu, choć na 100% 576k mam w trybie zgodności ze 130XE. W sumie - tylko tak emuApp się uruchamia. Na Atari emulator Apple uruchamiam dla bezpieczeństwa bez jakiegokolwiek dosa, a dane do niego ładuje po SIO z pieca.

Artax 2008-10-13 16:09:35

Zacząłem czyścić kod. Może to pomoże. Niestety nie mam Atarki więc na razie szczelam w ciemno.

miker 2008-10-14 07:02:00

W tekście Sikora jest byk (teraz spostrzegłem): "Czyli te pliki z literą "B" można sobie póki co odpuścić (brak pamięci do emulacji..."

Raczej chodzi o typ "A". Kaz, popraw w wolnej chwili.

Kurczę, przydało by się, żeby programik nie korzystał z tego osobnego dostępu ANTICa do pamięci, to mógłbym zobaczyć to na prawdziwym sprzęcie. Da się to zrobić? :)

Artax 2008-10-14 08:56:45

Przy tym sposobie emulacji ... nie :(. Przeczytaj posty które pisałem do Pin_a

pin 2008-10-14 11:31:09

.. :) - dlatego z premedytacją montowałem rozszerzenie z przełącznikiem 576(+antic rozdzielnie z cpu) / 1088k :))

Kaz 2008-10-14 14:58:47

Miker - poprawilem, Sikor tez raportowal ta pomylke.