Skompilowałem sobie pewien program przy użyciu Kyan Pascal. Jak teraz zrobić żeby automatycznie się ładował i uruchamiał z kasety po włączeniu Atari z wciśniętym Start i Option?
Informacje o Kyan Pascal znajdziesz: - w Bajtku (jest w Bibliotece, ale numeru nie pamietam) - w ksiazce Zientary "Jezyki Atari XL/XE cz.2" (jest w Bibliotece) - w IKS - byl kurs programowania (w Bibliotece), - w tutorialach towarzyszacych temu jezykowi na dyskietce (jest w Katalogu Uzytkow).
Na zdrowy rozum oprocz kompilacji potrzebujesz dolaczyc biblioteke procedur. Zientara pisze o tym tak:
"Kyan Pascal odczytywany jest automatycznie z dyskietki znajdującej się w stacji dysków numer 1 w chwili włączenia komputera. Sposób uruchomienia edytora i kompilatora jest podany w rozdziałach opisujących te części systemu. Programy napisane w Kyan Pascalu mogą być uruchamiane samodzielnie pod warunkiem, że biblioteka zawarta w pliku LIB znajduje się na tej samej dyskietce lub została dołączona do programu. Dotyczy to również programów zapisanych pod nazwą AUTORUN.SYS, które samoczynnie wczytują się i uruchamiają po włączeniu komputera. Sposób wykorzystania pamięci komputera przez edytor i kompilator Kyan Pascala jest dla użytkownika zupełnie nieistotny.
Ważne jest jedynie położenie w pamięci gotowego, skompilowanego programu. Obszar od adresu 37888 ($9400) do 48127 ($BBFF) zajmuje biblioteka (LIB). Powyżej znajduje się pamięć obrazu w trybie 0. Dla programu oraz jego danych i stosu pozostaje miejsce od szczytu DOS—u do początku biblioteki. Obszar ten rozciąga się od adresu 8192 ($2000) do 37B87 ($93FF). Skompilowany program wczytywany jest normalnie od adresu 8192, co można zmienić poprzez dyrektywę ORG. Dostępny obszar pamięci zmniejsza się znacznie przy stosowaniu trybów graficznych, które wymagają więcej miejsca niż tryb 0, ze względu na konieczność przeniesienia pamięci obrazu poniżej biblioteki. Do dyspozycji użytkownika pozostaje ponadto szósta strona pamięci RAM (1536— 1791 = $0600-$06FF)."
Wiecej we wspomnianej wyzej ksiazce i innych materialach.
kyan pascal to tylko przykład. chodziło mi o zapisanie pliku binarnego programu na kasecie. Jaki loader mogę do tego wykorzystać? Czy do zapisania samego pliku com wystarczy mi DOS? Stawiając sprawę prosto: jaki loader kasetowy automatycznie mi załaduje program COM? btw tak w ogóle to chcę odpalić program swojego autorstwa na prawdziwym atari który niestety nie ma stacji dyskietek.
Generalnie zasada jest prosta. Przed swoim programem (*.COM) należy na taśmie nagrać odpowiedni loader, np. słynny "!". Skopiuj go z innej gry, którą masz na taśmie. Powyższy link wskazuje bardziej eleganackie rozwiązanie.
@adiblob: tak w ogóle to chcę odpalić program swojego autorstwa na prawdziwym atari który niestety nie ma stacji dyskietek. Hmm, a ja bym Ci zaproponował wykonanie kabelka SIO2PC (jeśli masz port COM w komputerze) - koszt rzędu 10-20 złotych (jeśli nie chcesz ucinać wtyczki z magnetofonu - można wykonać dodatkowe gniazdo w samym magnetofonie, plus-minus 2 złote plus troszkę cięcia). A docelowo - zainwestowanie w SIO2SD - chyba najwygodniejsze urządzenie do pracy z obrazami atarowskich dysków. Ale tu już zabawa jest znacznie droższa...
SIO2SD dziala nie tylko z obrazami dyskow, z plikami rowniez. cena tez nie zabija - chyba 100zl a karda SD na ktorej zmiescisz wszystko co pojawilo sie na atari to pewnie z 20zl ;-) no ale jesli to jednorazowy zryw do atari to loader (wykrzyknik) zalatwi sprawe.
próbowałem wykorzystać loader z gry Cavelord (ze zgranej taśmy a nie naszego katalogu). Na emulatorze świetnie działał, na prawdziwym Atari nie wykrywal końca programu :( czy możecie podać z jakiej gry mogę wziąć wykrzyknika? Lub podać nazwę jakiegoś dobrego, krótkiego i uniwersalnego loadera (który jest w katalogu użytków)?
Prawdopodobnie podczas wczytywania wystąpił jakiś błąd. Tak na wszelki wypadek zapytam: przy włączaniu Atari trzymałeś wciśnięty klawisz Option (oprócz oczywiście Start)? Może był włączony Basic? Emulator ma Basic standardowo odłączony (odwrotnie niż Atari). Skoro na emulatorze się wgrywało, to ja bym raczej stawiał na błąd odczytu z taśmy.
sam loader się wgrywał. włączałem z wcisnietym start i option. loader nie wykrywa końca programu. podejrzewam że w tym loaderze jest na stałe zakodowana liczba rekordów ...
Na, ale gdyby tak bylo, to program by tez nie uruchamial sie na emulatorze... Obstawiam to co Larek - blad odczytu (stara tasma albo zle dopasowanie ustawienia glowicy).
Prawdę mówiąc, to się pogubiłem... Cavelord wczytuje się z tym loaderem, Twój program nie - tak? Jeśli tak, to nadal przyczyną może być błąd odczytu. Jeśli nie, to może wina leży po stronie tego Twojego programu, a nie loadera. Może wczytuje się w obszar pamięci zajmowany przez loader? Może... no właśnie, pozostaje tylko "może". Rozumiem, że pod DOS-em program się uruchamia. Jeśli tak, to powinien (wręcz musi) uruchomić się pod COS-em ->link<- ! Jeśli nie, to nadal wracam do twierdzenia, że program źle się nagrał/źle się odczytuje.
"Cavelord wczytuje się z tym loaderem, Twój program nie - tak?" - tak. Bo loader jest wzięty z Cavelorda więc musi z nim działać
"Jeśli tak, to nadal przyczyną może być błąd odczytu." - inne gry i programy (z własnymi loaderami, a także programy w Atari Basicu) odczytują się bez problemów, a loader z Cavelorda wyraźnie oczekuje dodatkowych rekordów. Kiedyś, gdy program się skończył ładować, dotknąłem palcem wtyczki mini-jack na którą szedł sygnał do magnetofonu. Zaindukowany w moim ciele przydźwięk sieci spowodował błąd (chyba 143) - czyli Cassete Read Error, a nie jak zwykle przy używaniu tego loadera - cośtam Timeout (nie pamiętam dokładnie).
"powinien (wręcz musi) uruchomić się pod COS-em" - jeśli się nie pomyliłem w obliczeniach to COS zajmuje ok. 10 rekordów. Nie podoba mi się to...
Co do wykrzyknika to nie ma róży bez kolców. Po załadowaniu programu nie działa w nim funkcja printf (robię pod CC65) :( Pewnie dlatego że wykrzyknik "cudem tylko działa na komputerach serii XL/XE" (źródło: Atariki)
Czy możecie dać nazwę, a jeśli nie ma w naszym katalogu to także linka jakiegoś dobrego loadera na kasetę?
Oj, trudno Ci dogodzić ;-) Piszesz program z nagłówkiem dosowym (bo taki jest plik COM), czyli z przeznaczeniem do uruchamiania pod DOS (lub COS), a chcesz koniecznie uruchamiać go z magnetofonu bez systemu. Skoro już piszesz coś w asemblerze, to od razu stwórz plik bootowalny. Bardzo ładnie jest to opisane tu ->link<- . Kwestia innego nagłówka. Nie bedziesz potrzebował żadnego loadera.
Ten loader od Cavelorda był idealny... niestety miał stałą liczbę rekordów (nie wykrywał końca)
Chyba prościej będzie kupić/zrobić interfejs SIO2PC niż bawić się z tymi loaderami :)
dodane: Ten układ jest rzeczywiście bardzo prosty! godzina roboty albo mniej tak myślę... Tylko czy jak podepnę się pod kable magnetofonu to magnetofon będzie nadal działał? (tzn. jak zdejmę izolację i podepnę SIO2PC NIE odłączając kabli od magnetofonu)
Adiblol, rozumiem ze szukasz taniego wgrywadelka, zrob sobie moze sdrive rastra?Atmege ci moge zaprogamowac,plytke na upartego tez wytrawie jak nie potrafisz. Proste w budowie i naprawde skuteczne. A kable jak chcesz podpinac rownolegle to na lini command ma byc dioda zaporowo.
Tak mi chodzi po głowie... A nie próbowałeś zastosować kopiera do plików kasetowych. Nie pamiętam, ale chyba CASDUP lub CACKO pozwalał na dodanie loadera (w tym któryś pozwalał wygenerować wykrzyknik). Co do niewgrywania - przyczyna może być zupełnie inna i prozaoiczna, o czym wielu zapomina. Jeśli masz w środku programu blok INIT (bodajże) - może wymagać dłuższej przerwy między blokami. Jak jej nie dostaje - za wcześnie pojawia się kolejny blok danych i program się nie wgra, bez względu na to, jakiego loadera użyjesz. Po prostu jest "za gęsto" nagrany. Albo tu, albo na atariarea była kiedyś o tym dyskusja - poszukaj, proszę. Należy użyć kopiera, który dodaje odpowiednie przerwy (hmm, chyba CACKO to potrafił, ale głowy nie dam).
znam się trochę na elektronice więc nie musisz mi pomagać :) co do tej diody to jak? tak (bebechy magnetofonu --|>|--- wtyczka do kompa) czy odwrotnie?