Jestem za nową dziurą. Koniecznie z gustownym opisem, proponuję żeby zajął się tym STRYKER. Robi miodzio napisy np. dla SIO2IDE takie:
http://atariarea.histeria.pl/sio2ide/img/th_s1.jpg 8)

Czy nikt jeszcze nie napisał takiego Alt-TABa dla 65816?
Nowy procek daje tu spore możliwości. Kiedyś powstał system wielozadaniowy na Atari dla zwykłego 6502 i to z podziałem czasu (MTOS), to pewnie zwykłe przełączanie zadań byłoby proste do zrobienia, biorąc pod uwagę architekturę 65816, a nawet dla 6502.
Można by mieć odpalonych np. kilka konsoli SDX (jak w linuchu) i tylko się między nimi przełączać.
Tylko że Atari nie ma klawisza Alt i pewnie nie da się tego zrobić ;)

478

(30 odpowiedzi, napisanych Bałagan)

Wydawało mie się, że firmowy sterownik Sparty nie działa w rzeczywistości z XEPem?

Działa, ale tylko w NTSC. Luknij na moją stronkę.

Analiza zwykłego kodu maszynowego i na tej podstawie relokacja nie wydaje mi się najlepszym rozwiązaniem. Daje stosunkowo ubogie możliwości w porównaniu do sytuacji, gdy asembler wie, że ma utworzyć kod relokowalny i sprawdza ew. konflikty oraz dostarcza dodatkowych możliwości programiście.

Poza tym problem relokowalności wydaje mi się tylko jednym z elementów więszej całości jakim byłby pewnie system operacyjny, który mógłby obsługiwać programy relokowalne, np. umożliwiał komunikację pomiędzy nimi. W tej chwili tylko SDX potrafi to zrobić (za pomocą symboli).
Może lepiej więc byłoby się zastanowić PO CO chcemy nowy format i czy napiszemy nowego OSa (oczywiście wielozadaniowego), asemblera a wtedy zastanówmy się jaki format binarki. Jeżeli tylko chcemy relokować, to wystarczy do tego i "Relokator" z Tajemnic Atari (też analizuje kod binarny) :D

Jakoś nie widzę, żeby Laoo miał jakieś wątpliwości - przynajmniej ze mną się nimi nie podzielił

Chodzi mi o "wątpliwości" laoo z końca pierwszej strony. Dopiero niedawno je przeczytałem...

No na SpartaDOS-ie świat się nie kończy.

Nie mówię o pisaniu pod Spartę, tylko użycie formatu tego DOSa (a raczej koncepcji relokowania) także dla innych systemów.
Wydaje się, że załatwia on w tej chwili większość problemów.

Ładujesz go do pamięci, a przy wyjściu mówisz systemowi, że część zajętą przez procedurę instalacyjną należy zwolnić.

Nie rozumiem, tzn. programista ma o to zadbać?

W SDX natomiast masz dwa segmenty w jednym pliku, z tego jeden relokowalny, a drugi nie.

Zgadza się, tak się w tej chwili najczęściej robi, ale można też użyć obu relokowalnych, np. nie używając flagi INSTALL tylko ustawiając samemu MEMLO. Wtedy odpada problem szóstej strony, o którym piszesz.

Laoo: podzielam Twoje wątpliwości.
Draco, cały czas wydaje mi się, że próbujesz dostosować format do możliwości jakie daje MAE, czyli narzędzia produkującego format pliku na podstawie kodu binarnego. To znacznie ogranicza.
Chyba najlepszym rozwiązaniem byłoby napisanie nowego asemblera, który wiedziałby o relokacji. Wtedy można byłoby uwzględnić wiele nowych rzeczy. Tylko kto go napisze?

jedyny asembler jaki znam, ktory generuje prawdziwy kod relokowalny to wspomniany przeze mnie wyzej ca65, ale jest to cross-assembler, a na prawdziwym atari niczego takiego nie znam.

Takim asemblerem na Atari jest chyba w tej chwili Fast Assembler, produkuje kod relokowalny w formacie Sparty X.

A ty, jak instalujesz sobie w Atari rozszerzenie RAM-u, to odpowiadasz najpierw na pytania, na co zamierzasz tę pamięć wykorzystać?

Myślałem że masz jakiś ciekawy pomysł, stąd te 16MB  :rolleyes:

Segment TEXT jest przeznaczony na kod (modyfikowany czy nie)

Ale przecież czytam w artykule: "This doesn't allow self-modifying code in this segment." Gościu co wymyślił ten format chciał aby można było współdzielić kod, dlatego zabrania się jego modyfikacji.
Zgadzam się z Lizardem, że podział na kod/dane/puste miejsce można zastosować na poziomie asemblera. W binarce na razie wystarczyłoby umieszczenie segmentów w oddzielnych blokach.

Przecież nikt ci nie zabrania korzystania z binariów Sparty X

Powtarzam, mi chodzi o rozszerzenie rozwiązań ze Sparty, a nie o istnienie dwóch równoległych formatów.

Relokacja jest transparentna dla programu, on nic o niej nie wie.  A poza tym relokacji podlegają jedynie adresy wewnętrzne programu (bo tylko to ma sens)

Program nic o niej nie wie, ale inny program może będzie musiał wiedzieć. Przykład: procedury obsługi urządzenia (rezydentne). Jakiś inny program będzie musiał je zainstalować, np. wpisać adresy do HATABS. On nie musi być rezydentem. Dlatego poprawić należy dwa programy względem siebie. Nie wiem jak to załatwić w Twojej propozycji (chyba że scalić w jeden, ale wtedy niepotrzebnie zajmujemy pamięć).

Nie, w  tej chwili oczywiście max. 64kB, ale przecież można to rozbudować, dodając jeden bit (w tej chwili nieużywany przez Spartę) i podawać większe rozmiary. A swoją drogą na co zamierzasz przeznaczyć te zaalokowane megabajty? 8)

Według mnie segmenty opisane w artykule są trochę na wyrost. Dopóki ktoś nie napisze systemu wielozadaniowego do Atarki to będą używane niezgodnie z przeznaczeniem.
Bo np. segment TEXT ma mieścić kod niemodyfikowany. Tymczasem przecież często wykorzystuje się samomodyfikowację w programach. To oznacza że taki kod trzeba byłoby umieszczać w segmencie DATA ??
Bardziej jednak podoba mi się podejście jakie jest w Sparcie: łączenie kodu relokowalnego i zwykłego, rezerwacja pamięci dają duże możliwości.

Trzeba też pamiętać, że często istnieje konieczność aktualizacji adresów znajdujących się poza kodem relokowalnym. Np. przy definiowaniu nowego urządzenia w tablicy handlerów OSa lub w innych stałych miejscach trzeba umieścić adresy PO relokacji kodu. Sparta załatwia bez problemu tę sprawę.

Chodzi o to, że pisząc nowy loader można wykorzystać kod Sparty dla bloków $FFFA-FE i dopisać tylko obsługę nowych rzeczy.
Pod SDX możnaby nawet napisać nowy loader np. Y.COM, który wołałby funkcje Sparty a obsługiwał tylko rozszerzenia, np. obsługę dzielonych adresów.
Sparta ma też fajną funkcję umieszczania bloku w bankach pamięci rozszerzonej - to by się też przydało w nowym formacie (dla zwykłego 6502).
Wydaje mi się też, że format fixupów w Sparcie jest bardziej kompaktowy niż Twoja propozycja. Są tam ofsety względem ostatniej poprawki, co daje zwykle 1 bajt.
Nie zauważyłem też nigdzie adresu bazowego programu, czyli tego którego używa programista. Czy to znaczy że zawsze asembluje się od $0000?

484

(23 odpowiedzi, napisanych Sprzęt - 8bit)

Jurgi2 dobrześ przeczytał, niestety  :cry:
Może teraz załapiesz ostatnie zdanie Lizarda. Zostało chyba 9 dni...

Mam wątpliwość, czy ma sens wymyślanie od nowa formatu pliku relokowalnego, gdy od dawna funkcjonuje format relokowalny SpartaDos X z fixupami.
Czemu nie chciałeś bazować na tamtym i np. uzupełnić go o obsługę 65816 :?: Przynajmniej miałbyś gotową część kodu.

Zgadzam się, że AVR mógłby robić znacznie więcej.
Ale zwróć uwagę, że w tej chwili mikrokontroler robi całkiem sporo, bo obsługuje on-line FAT16, FAT32 i ISO9660 - niestety tylko dla swoich wewnętrznych celów. Gdyby jednak Marek udostępnił odpowiednie funkcje, to w Atarce można byłoby w prosty sposób obsługiwać te filesystemy bez pisania dodatkowego softu.

sterownik do fata - zgrywarka fat16->dos juz dziala.

Kto pisze sterownik do FATa?
Można by go napisać w uniwersalny sposób, by działał na wszystkim: KMK, SIO2IDE (też ma native mode) i dyskietce z pieca.

487

(23 odpowiedzi, napisanych Sprzęt - 8bit)

Chroma jest ale w środku, nie na wtyczce. 5 minut roboty i już masz. Schemacik tu:
http://atariarea.histeria.pl/forum/viewtopic.php?t=1509

A w pięknej niepozółkniętej obudowie zaraz ktoś zacznie wiercić dziury, montować wystające wajchy, guziki, ledy i inne ohydne rzeczy :twisted:
Zobacz (jak Dely poprawi link) co np. taki STRYKER potrafi zrobić z kaseciakiem:
http://atariarea.histeria.pl/sio2ide/
Pewnie jego kiedyś też był kolekcjonerski  :lol:

489

(18 odpowiedzi, napisanych Software, Gry - 8bit)

Kiedyś napisałem coś takiego:
http://trub.sys.net.pl/xldisk.htm
Może Ci się przyda. Uwaga: najlepiej działa w DOSie.

490

(1 odpowiedzi, napisanych Sprzęt - 8bit)

ZTCW to ni mo  :(

491

(28 odpowiedzi, napisanych Sprzęt - 8bit)

Miałem tak samo jak Jacques: LDW + SIO2IDE ok., ale SIO2PC nie chciało działać nawet z diodami.
Pomógł układzik z tranzystorkami o którym piszę wyżej.

492

(28 odpowiedzi, napisanych Sprzęt - 8bit)

Popieram Kierownika w sprawie diody w wersji 3.x (i pewnie 1.7).
Miałem ten sam problem co darpajdp i dioda załatwiła sprawę.

Ale...
W wersji 4.x była kicha, diody nie pomagały :(
Dobudowałem więc do SIO2IDE prosty układzik dopasowujący
zerżnięty z tej wersji SIO2PC (ze scalakiem CA3086 albo UL1111) i teraz działają bez problemu wszystkie prędkości w SIO2IDE i SIO2PC bez żadnych wyłączników itp.

493

(13 odpowiedzi, napisanych Sprzęt - 8bit)

Nie mam po polsku, ale chodzi o proste dolutowanie kabelka (z rezystorkiem) od spodu płyty.
Zdjęcie1
Zdjęcie2
Schemacik
Kabelek idzie do pinu 5 gniazda monitorowego DIN

494

(13 odpowiedzi, napisanych Sprzęt - 8bit)

Pewnie brakuje sygnału chrominacji. Wystarczy lutownica i kawałek drutu, a opis jak zrobić tu: http://groups.google.pl/groups?q=Koantz … amp;rnum=1

495

(75 odpowiedzi, napisanych Software, Gry - 8bit)

reaguje tez na identyfikator specjalnie dla niego przeznaczony (nie pamietam juz - chyba $E1)

Chodzi oczywiście o $71 (SIO2IDE)

Jak rozpoznac obecnosc kontrolera SIO2IDE

Dla SIO2IDE można użyć standardowej komendy $4E (odczyt statusu), w bajcie 1 mamy wersję SIO2IDE, a w 9-11 identyfikator "IDE".
Więcej info - patrz TECH_MANUAL w zipie z softem od autora SIO2IDE.

496

(17 odpowiedzi, napisanych Sprzęt - 8bit)

Spróbuj dopisać do AUTOEXECa:
POKE $3F5,1
POKE $3F6,1
POKE $3F7,1

497

(41 odpowiedzi, napisanych Sprzęt - 8bit)

Plik s2ijbox.atr na stronce aarea/sio2ide ma błędny rozmiar.
Nowa wersja jest tutaj:
http://trub.sys.net.pl/download/sdx/s2ijbox2.zip
Opis w zipie.

Dely: Nagraj poprawiony plik na stronę sio2ide, pliz.

498

(5 odpowiedzi, napisanych Sprzęt - 8bit)

Sprawdź z innym dyskiem.

Ten dodatkowy pin RESET_OUT możesz ewentualnie podłączyć kabelkiem do płyty głównej Atarki, żeby poczekała z bootowaniem, aż się SIO2IDE nie zainicjuje.
Ale nie trzeba tego robić. Najwyżej komp wyląduje w BASICU, w Self Teście, ew. QMEG MENU. Trzeba wtedy poczekać, aż SIO2IDE się zainicjuje (wszystkie diody oprócz POWER zgasną), a wtedy jeszcze raz zbootować, tylko bez wyłączania kompa (np. klawiszem RESET, z BASICA BYE).
Ja mam zewnętrzne SIO2IDE bez RESET_OUT, bo kłopot byłby z dodatkowym kabelkiem. Dla HDD i SIO2IDE najlepiej mieć oddzielny zasilacz, bo firmowy może nie wyrabiać, szczególnie jeżeli komp ma jakieś sprzętowe upgrejdy.

499

(5 odpowiedzi, napisanych Sprzęt - 8bit)

Spróbuj tych rzeczy:
1. Zrób tylko jedną partycję dla SIO2IDE na dysku. Najlepiej pod DOSem.
2. Pamiętaj o pliku SIO2IDE.CFG w katalogu głównym i defragmentacji.
3. Spróbuj zmienić ustawienia zworki w HDD (Master/Slave/CS itp.)
4. Jak nic nie pomaga, spróbuj z innym dyskiem. Niektóre są... jakby to powiedzieć... niekompatybilne z SIO2IDE :( Jak tak miałem z Caviarem
5. Jak masz dysk 2,5" to pewnie używasz przelotki. Uważaj - ja mam 2 sztuki, które od początku były do dupy (z allegro). W końcu kupiłem za 20 zł w sklepie i zaczęło działać. Najepiej przetestować SIO2IDE z dyskiem 3,5", a potem dopiero podłączyć mały dysk.
6. Możesz też spróbować podłączyć się terminalem do płytki (tryb TEST, jest o tym mowa w docu SIO2IDE), może wyświetli więcej info.

Powodzenia
trub

500

(18 odpowiedzi, napisanych Software, Gry - 8bit)

Należy się wyjaśnionko i poprawka:
Sparta żeby załadować SIO2A.SYS z dysku musi mieć najpierw załadowany sterownik z kartridża :!: .

Czyli robimy tak:
1. Pobieramy stąd nową wersję SIO2A.SYS i przegrywamy do Atarki.
2. W CONFIG.SYS piszemy:
   DEVICE SIO
   DEVICE A:SIO2A.SYS
3. SIO.SYS z pierwszej linii służy tylko do załadowania drugiego sterownika. Potem zajmuje niepotrzebnie  pamięć, ale na to nic nie poradzimy  :(
Na pocieszenie: drugi sterownik najmuje tylko ok. 40 bajtów.
4. Od tego momentu obsługą SIO zajmuje się QMEG OS.

Uwaga: Dotyczy to SDX 4.20 i starszych. Dla 4.22 zamiast DEVICE SIO napisz DEVICE SIO2.
Uwaga: SIO2A.SYS i oryginalny SIO2.SYS z SDX 4.22 obsługują wszystkie napędy 1-8. Dlatego np. ramdyskowi należy przypisać następną literkę (I).