576

(294 odpowiedzi, napisanych Bałagan)

Nie jestem przecież żadną wyrocznią i wszędzie zastrzegam, że to jest kwestia osobistych odczuć, ale w moim odczuciu nierozróżnianie oryginalnego Atari wyciągniętego ze styropianów od Atari z przylutowaną elektroniką, która zwiększa jego możliwości jest błędne. Dlatego np. dzieli się dema na kategorie na podstawie wykorzystywanych rozszerzeń.
Jedyne przed czym (osobiście) oponuję, to nazywanie Atari rozszerzonego o Rapidusa komputerem 16-bitowym, który emuluje Atari XL/XE, bo uważam to za krzywdzącą grę słowną, bo sugeruje, że Rapidus jest jakimś komputerem, dla którego Atari służy za terminal.

577

(294 odpowiedzi, napisanych Bałagan)

@xxl: Na pytanie odpowiedziałem wielokrotnie, tylko nie po Twojej myśli i drążysz dalej. Jeżeli rozszerzenie wykonuje program, to program działa na rozszerzonym Atari. Rozszerzone Atari != Stock Atari i kwestią osobistej oceny jest jakie rozszerzenia się nam podobają i chcemy mieć z nimi coś do czynienia:
- Tomek przylutowany na stałe byłby rozszerzeniem, które w osobistej ocenie nie za bardzo by mi się podobało.
- VBXE ma fajne praktyczne zastosowania (80-kolumnowa konsola tekstowa itd), ale pokazywanie laikowi 256-cio kolorowych fruwających sprajtów twierdząc, że tak rysuje Atari byłoby pewnym nadużyciem.
- Rapidus ma całą masę fajnych praktycznych zastosowań - szybsze wykonywanie istniejących programów oraz możliwość pisania nowszych programów korzystających z dobrodziejstw 65c816, ale znów wmawianie komuś, że jakieś wyczesane efekty liczone na 65c816 są efektami na Atari też byłoby mijaniem się z prawdą. Byłyby to efekty na rozszerzone Atari.

To są kwestie filozoficzne, a kwestie praktyczne jak np demo compo też są jasne: demo na Rapidusa nie będzie konkurowało w jednej kategorii z demami na 6502.

578

(294 odpowiedzi, napisanych Bałagan)

@xxl: To bardzo prosta kwestia i wiesz, że wiem, że to rozumiesz tylko chcesz trochę poflejmować ;)
Tomek nie jest rozszerzeniem. To zewnętrzne urządzenie, którego sposób działania jest obojętny dla Atari. Podobnie jak w LDW 2000 jest z80, czy w SIO2SD jest AVR, tak w Tomku jest PIC. Oba urządzenia współpracują w celu uzyskania zamierzonego efektu.
Manipulujesz, ale niezbyt skutecznie, bo ze zdania "Tomek to nie Atari" wcale nie wynika "Rapidus to Atari". Można by rzec, że oba pojęcia są w rozdzielnych klasach abstrakcji, bo urządzenia są całkowicie ortogonalne.
Odpowiadając na ostatnie pytanie: nic nie sprawia, że Rapidus to Atari. Nie wiem kto Ci to naopowiadał, albo jak do tego doszedłeś, na pewno nie na podstawie moich wypowiedzi. Jedyne co można twierdzić, to że Atari + Rapidus, to rozszerzone Atari.

579

(294 odpowiedzi, napisanych Bałagan)

swinkamor12 napisał/a:

65816 obsługuje JSR/JMP w 24 bitach, bez kombinacji, bez przełączania banków pamięci, bez żadnych tego typu cudów. Po prostu kod może być w każdym miejscu w tych liniowych 16 MB .
Jest to w 6809,Z80 - nie.
Już to jest rewolucją względem 8 bit - exe może mieć kilkaset kb czy nawet parę MB.
Oprócz tego stos jest 16bit, dane mogą być w innym segmencie, a kod jeszcze w innym.
Czyli w sumie jest do wykorzystania ile - naraz ponad 180 kB, bez kombinacji z bankami pamięci
Jeszcze można do tego dorzucić tryby adresowania indeksowego gdzie podaje się segment i mamy coś co jest daleko poza możliwościami 8 bitowców.

A poczytaj sobie o Zilog eZ80 i wytłumacz mi, dlaczego można nazwać go 8-bitowcem (i nazywa się go 8-bitowcem nawet w oficjalnym podręczniku), a 65c816 już nie można.
Dziękuję.

580

(294 odpowiedzi, napisanych Bałagan)

xxl napisał/a:

to nie bylo pytanie o to czy "Rapidus" jest rozszerzeniem, "new device" czy czymkolwiek innym, pytanie brzmialo, czy jesli rozszerzenie Atari wykonuje program to mozna powiedziec ze program dziala na Atari? dalem przklad "Tomka", czy program ktory wykonuje "Tomek" jest programem na Atari?

Widzę, że naszło Cię na filozofowanie ;)
Więc filozoficznie rzecz ujmując, Ty naprawiłeś domniemany wg Ciebie błąd konstruktorów Atari nieudostępniania schowanej pamięci tworząc mapram, a Pasiu naprawił domniemany wg mnie błąd konstruktorów Atari niewstawienia w pewnym momencie 65c816 tworząc Rapidusa. Żadne z tych podejść nie zachowuje stock-Atari, bo wymaga zabiegów lutowniczych. Rapidus rozszerza jeden z komponentów komputera. To, że jest to akurat procesor niewiele wnosi, ponieważ gdyby nie spadek zainteresowania 8-bitowcami w końcu ten procesor wylądowałby oficjalnie w Atarce (czego nie można powiedzieć o mapramie).

Z Tomkiem jest trochę inaczej, gdyż jest to cartridge. Dla Atari jest to obojętne co dzieje się w jego środku. Tomek to nie Atari, więc program wykonywany przez Tomka nie jest programem na Atari. Oba komputery współpracują jednak tworząc wspólną zawartość.

581

(294 odpowiedzi, napisanych Bałagan)

Sikor napisał/a:
laoo/ng napisał/a:

Pamięć: 6502 też ma dostęp do większej pamięci od 130XE. 65c816 jest tylko trochę "cwańszy" i potrafi adresować tę pamięć sam w ramach 8-bitowej architektury.

Hmm, taki rozmiar pamięci w ramach 8-bitowej architektury... Ciekawe...

A jakie to ma znaczenie? Za pomocą PORTB można zaadresować 4 MB. Dodając teoretycznie drugi rejestr zwiększa się to do 1 GB. Co ma tu do czynienia 8-bitowość czy nie architektury.

Sikor napisał/a:
laoo/ng napisał/a:

..Ale Rapidus (przynajmniej ze standardowym rdzeniem) w żaden sposób nie przekracza tej granicy, gdyż jest wyposażony w procesor, który jest oficjalnym i naturalnym następnikiem 6502 zaprojektowanym przez jednego z jego twórców.

Jest następnikiem, który zmienia jego działanie - staje się procesorem 16-to bitowym. Co więcej - tryb emulacji należy ustawić odpowiednią flagą...

Wciąż nie podałeś żadnego niezbitego dowodu, że 65c816 jest procesorem 16-to bitowym. Zadaj sobie trudu i porównaj jego możliwości do 6809 (było już wiele nawiązań do niego w tym wątku), który producenci nazwali 8-bitowym, bo był kontynuacją 8-bitowego 6800. Taką nazwę zapewne zastosowali żeby móc 68000 nazwać 16-bitowym, bo oba procesory pojawiły się mniej więcej w tym samym czasie.
Więcej: 6809 nie jest binarnie kompatybilny ze swoim poprzednikiem 6800 - jest kompatybilny na poziomie kodu źródłowego i kod należy przekompilować aby ruszył na nowym procesorze. Czyż zatem 16-to bitowe rejestry, mnożenie, cała masa trybów adresowania i to takich, że 65c816 może mu jeść z ręki nie pretenduje do nazwania go 16-to bitowym? Najwidoczniej nie, skoro producenci tak nie postanowili.
65c816 został nazwany 16-bitowym marketingowo, bo nie jest bardziej 16-to bitowy niż 6809. A nawet więcej. Jest zamiennikiem 6502 - wyciągasz stary procesor, wkładasz nowy rzekomo 16-bitowy i wszystko śmiga. Jak to możliwe pytam się? skoro jeden jest 8 a drugi 16-bitowy...
Inny przykład z drugiej strony barykady to 8086, który jest kompatybilny na poziomie kodu źródłowego z 8080 (tak jak 6809 kontra 6800). A jednak Intel zadecydował, że nazwie go procesorem 16-to bitowym, ponieważ konkurował z 68000.

Mieszasz w tym poście i pozostałych z trybem emulacji. Tłumaczę i objaśniam. 65c816 został zaprojektowany jako zastępnik 6502 na poziomie wymiany czipu i wszytko miało działać. Żeby to osiągnąć procesor musiał budzić się w trybie zgodnym z 6502 (tzw. "emulacji"). Nie zapala się światełko, że skoro można wyjąć procesor i w tę samą podstawkę wsadzić inny i wszytko będzie działało, to to może i nie oznacza przejścia o rząd wielkości w architekturze i wszystkim co tam sobie wymyślasz? Intel i Motorola wyprodukowały nowe 16-to bitowce i tak je nazwali. WDC chciał przyszpanować i nazwał swojego 65c816 (o funkcjonalności zbliżonej do 6809) 16-to bitowcem i za bardzo wziąłeś sobie to niestety do serca.

Sikor napisał/a:

laoo/ng napisał/a:

z programistycznego punktu widzenia ma to tylko takie znaczenie, że oszczędzamy cykl na niektórych operacjach

Czyli emulacja nie jest nawet 100% - gubimy cykle... A jak gubimy cykle na nieoficjalnych rozkazach 6502, ale stabilnych (według nomenklatury XXL-a) - to jest be? Dlaczego?

Nigdzie niczego takiego nie napisałem. Po prostu gdyby ALU był 8-bitowy, niektóre operacje 16-bitowe trwałyby cykl dłużej, a nie trwają. Trwają tyle samo co odpowiadające operacje 8-bitowe na 6502. Czasy trwania wszystkich legalnych instrukcji 6502 są takie same jak 65c816.

Sikor napisał/a:
laoo/ng napisał/a:

Skok o rząd wielkości, o jakim mówi Sikor, miałby miejsce wtedy, gdyby procesor nie potrafił pracować w środowisku 8-bitowym, czyli gdyby naturalne dla niego było połykanie w jednym cyklu 16-bitów danych. Wówczas programy 8-bitowe musiałyby być emulowane. 65c816 pracuje na danych 8-bitowych i nie należy traktować go jako w pełni procesora 16-bitowego.

Porównajmy na szybko:

56 rozkazów, 13 trybów adresowania

24 tryby adresowania w tym 13 pochodzących z 6502
Instrukcja wspierająca stosowanie koprocesora
Zdolność przesunięcia bloku


Do tego 16 bitowe rejestry indeksowe, 16 bitowy wskaźnik stosu... Tak, niewątpliwie jest w 100% kompatybilny z 6502 i jest jak on 8 bitowy. Zbyt duża różnica.

Poczytaj o 8-mio bitowym 6809. 65c816 może mu czyścić berło jeśli chodzi o 16-bitowość, tryby adresowania i rozkazy. 65c816 nie jest taki potężny właśnie dlatego, że jest zamiennikiem 6502 i projektanci mogli wprowadzić tylko takie zmiany, które nie zepsują binarnej kompatybilności, której 8-bitowy 6809 nie ma.

Sikor napisał/a:

I jak piszę - karta OK.
Jeżeli piszecie "6502 kody nieudokumentowane  są niedozwolone" - to czemu nie uznać wszelkich rozszerzeń 65816 także jako nielegalne? Z punktu widzenia 6502 są nielegalne i 6502 nie może ich wykorzystać?
Z drugiej strony - mając taki procesor czemu się ograniczać do kodu 6502? Po prostu nazwijmy to po imieniu: kod na 16-to bitowy komputer emulujący 8 bitowe Atari.

Rozkazy 65c816 są oczywiście nielegalne na 6502, bo nie potrafi ich wykonać. Zamontowanie 65c816 rozszerza Atari o możliwości nowszego kompatybilnego procesora. 16-to bitowa linia Atari to ST bo została tak zaprojektowana. Atari XL/XE jest 8-bitowe i trochę mocniejszy kompatybilny procesor tego nie zmieni.

582

(294 odpowiedzi, napisanych Bałagan)

xxl napisał/a:

szerokosc szyny danych nie decyduje. zreszta tu masz inny przyklad: 68008


ustosunkujesz sie:
http://www.atari.org.pl/forum/viewtopic … 87#p180687

?

Tej dyskusji nie będzie końca, bo klasyfikacja jest czysto uznaniowa: vide 65c816 vs 6809 vs 6309. Przykładając różne miarki wychodzi albo 8, albo 16 albo 32 bity. Gdy tak na prawdę nie wiadomo, to ja bym poszukał najbliższego krewnego. Krewnym 68008 jest 68000, stąd można przypuszczać, że ma więcej bitów niż 8, ale ile - nie wiem ;) Podobnie 8088 jako krewny 8086.
Najbliższym krewnym 65c816 jest 6502. 816-tka nie zrywa specjalnie z funkcjonalnością, wprowadza fajne dodatki, ale nie robi rewolucji. Mi to pachnie 8-ma bitami.

Co do ustosunkowania się... Rozszerzamy Atari XL/XE o procesor wykonujący jakieś nowe instrukcje, będący kontynuacją oryginału. Poprawny stary kod działa, można napisać nowy wykorzystujący nowy procesor... Mi to wygląda na rozszerzone Atari XL/XE.

583

(294 odpowiedzi, napisanych Bałagan)

Gwoli ścisłości. Ja rozumiem jakie obawy ma Sikor. Tak samo jak Rapidusa w gniazdo CPU można włożyć jakiegokolwiek współczesnego potwora, który będzie naprawdę emulował 6502 a do pamięci Atari widocznej przez ANTIC wrzucał tylko strumień danych tworzących obraz itd... To byłaby emulacja i Atari byłby tu terminalem. Ale Rapidus (przynajmniej ze standardowym rdzeniem) w żaden sposób nie przekracza tej granicy, gdyż jest wyposażony w procesor, który jest oficjalnym i naturalnym następnikiem 6502 zaprojektowanym przez jednego z jego twórców. Żeby się lepiej sprzedawał nazwano go 16-bitowym (do czego przesłanki są w długości ALU, ale z programistycznego punktu widzenia ma to tylko takie znaczenie, że oszczędzamy cykl na niektórych operacjach.), ale jest (ew. powinien być) pod wszelkimi względami kompatybilny z poprzednikiem. Wybrano ten procesor, gdyż jest przystosowany do szybszego taktowania. Potrafi wewnętrznie zaadresować więcej RAM, to czemu mu go nie dać? Ale ten RAM nie wpływa na istniejące programy (modulo brak zapętlania się pamięci przez rozkazy indeksowe, co jest błędem i jest naprawiane przez samego Rapidusa).
Skok o rząd wielkości, o jakim mówi Sikor, miałby miejsce wtedy, gdyby procesor nie potrafił pracować w środowisku 8-bitowym, czyli gdyby naturalne dla niego było połykanie w jednym cyklu 16-bitów danych. Wówczas programy 8-bitowe musiałyby być emulowane. 65c816 pracuje na danych 8-bitowych i nie należy traktować go jako w pełni procesora 16-bitowego.

584

(294 odpowiedzi, napisanych Bałagan)

Sikor napisał/a:

Oczywiście - bo działa w trybie 16-bit, więc ma dostęp do większej przestrzeni. Działa też z niektórymi rozkazami odmiennie, więc to tylko potwierdza fakt, że 65816 tylko udaje (więc emuluje) 6502.

Nie rozumiesz w żaden sposób pojęcia emulacji. Tak naprawdę Atari zostało zaprojektowane na bazie procesora 6502. Tak się złożyło, że w niektórych Atarkach jest MOS, w innych Rockwell, a w jeszcze innych Synertek. No i jak się okazuje nie są one 100% między sobą kompatybilne, bo wspólny mają tylko modelowy zestaw funkcjonalności 6502, a reszta to co przypadkiem wyjdzie. Większość wychodzi tak samo, ale nie wszystko. Czy to znaczy, że każdy z tych procesorów emuluje 6502? Czym zatem jest prawdziwe Atari XL/XE? Te z MOSem, Rockwellem, czy Synertekiem, a może obojętnie, oby tylko kod 6502 działał?

Pamięć: 6502 też ma dostęp do większej pamięci od 130XE. 65c816 jest tylko trochę "cwańszy" i potrafi adresować tę pamięć sam w ramach 8-bitowej architektury.

585

(294 odpowiedzi, napisanych Bałagan)

xxl napisał/a:
laoo/ng napisał/a:

Reasumując dla mnie 65c816 to procesor 8-bitowy

zaczyna sie :D , chwile temu pisalem:

xxl napisał/a:

zle bedzie jesli zaczna nam wmawiac ze programy na te nowe sprzety to programy na 8bitowe Atari XL/XE podczas gdy na takim sprzecie nigdy sie nie uruchomia

Oczywiście, że to nie są programy na stockowe 8-bitowe atari. Taka jest definicja rozszerzenia, że modyfikujesz coś w komputerze i program korzystający z modyfikacji nie działa na oryginale. Nie ma zgody tylko co do miejsca postawienia kreski. Dla mnie i wielu zamontowanie 65c816 robi z Atari XL/XE rozszerzone Atari XL/XE, a dla Sikora i popleczników, to już za dużo i żądają kwalifikacji jako 16-bitowa pochodna linii Atari XL/XE co jest absurdem, bo komputer nie jest bardziej 16-bitowy. Nie musi emulować serii XL/XE tylko działa tak samo + trochę więcej. Komputer 16-bitowy adresuje pamięć 16-bitową i nie potrafi w prosty sposób wykonywać tego samego kodu co komputer 8-bitowy i żeby tego dokonać musi stosować emulację. W naszym przypadku to nie występuje.

586

(294 odpowiedzi, napisanych Bałagan)

Sikor napisał/a:
laoo/ng napisał/a:

Sikorze. Ilu bitowy jest wg Ciebie 68000? 32? czy 16?

Póki nie wkłada się PowerPC jako główny procesor w ST - nie ma to znaczenia.

To skoro wewnętrzna architektura procesora nie ma znaczenia w linii ST, to dlaczego ma znaczenie w linii XL/XE?

Sikor napisał/a:

Skoro - jak piszesz - wykonuje te same operacje, tylko wolniej - poprosze o wersję emulatora by Drac030 chodzącą na 6502C. Wolniej, ale chodzącą. Czekam.

Tzw. NAPISZ SE.
Skoro autor emulatora ZX Spectrum działającego na Atari XL/XE stwierdził, że z dodatkowej pamięci, która potrzebna jest do emulacji, woli użyć poprzez adresowanie liniowe oferowane przez procesor 65c816, zamiast przez adresowanie bankowane dostępne dla 6502 w Atari z niezbędną dodatkową ilością pamięci, to takie jest jego święte prawo. Nie masz takiej konfiguracji, to sobie emulatora nie uruchomisz, ale nic nie stoi na przeszkodzie (poza czasem) aby taki emulator działający na stock 6502 powstał, tylko napisanie go byłoby trudniejsze i wynik byłby mizerny ze względu na mniejszą moc obliczeniową procesora i narzut wynikły z bankowania. Nie mówiąc o tym, że też biłbyś pianę, bo pewnie taki emulator wymagał by z 1 MB RAMu, a jak wiemy nie istnieją stockowe Atarki z takim rozmiarem pamięci.

587

(294 odpowiedzi, napisanych Bałagan)

Sikorze. Ilu bitowy jest wg Ciebie 68000? 32? czy 16? Dlaczego ST jest 16-bitowe a nie 32?
Nie za bardzo rozumiem, dlaczego spośród wszystkich parametrów komputera wybrałeś sobie akurat wewnętrzną architekturę procesora jako czynnik zmieniający wszystko. Obudowa jest ta sama. Jak włączysz, pojawi Ci się ten sam niebieski ekran generowany przez tego samego ANTICa pospołu z tym samym GTIA. Muzyczkę gra ten sam POKEY. Elektrony zapierniczają po tych samych liniach (płyta główna jest ta sama). Architektura wciąż jest 8-bitowa. Procesor (nazwany 16-bitowym) porozumiewa się z resztą Atari tak samo ośmiobitowo jak oryginalny 6502. Co więcej działają te same programy, (chyba, że ktoś napisze je nie tak jak podręczniki uczą), tylko że - jak przystało na kartę turbo - uwaga, uwaga - szybciej! Atarka z Rapidusem zachowuje się całkiem jak zwykła Atarka. Sam procesor nie określa rodziny komputerów. Atari to co innego niż Commodore i co innego niż Apple II, mimo że mają (praktycznie) taki sam procesor. A ta szesnastobitowość, na której się opierasz, jest bardzo przejaskrawiana. Zewnętrznie 65c816 jest 8-bitowy (dlatego można użyć go jako zastępnika 6502) i został użyty w Rapidusie dlatego, że bez problemu działa przy wyższym taktowaniu. To że ma kilka 16-to bitowych rejestrów? Co z tego. 6502 też ma 16-to bitowy licznik rozkazów. Z80 ma całą masę rejestrów 16-bitowych. To nic nie znaczy. Jedyne co potrafi istotnie więcej niż 6502, to adresowanie 24-bitowej pamięci, ale to także z jego rzekomą 16-bitowością nie ma nic wspólnego. Wg Twojej logiki powinno się go w takim razie nazwać procesorem 24-bitowym, bo istnieją w środku logiczne twory, które są 24-bitowe - adres komórki jako para rejestru banku i rejestru adresu. Ale tak jak 16-bitowość PC nie robi z 6502 procesora 16-bitowego, tak samo 24-bity adresu nie robi z 65c816 procesora 24-bitowego. A co do pamięci nic nie stoi na przeszkodzie, żeby w "prawdziwym" Atari napędzanym 6502 zamontować 16 MB, albo i 1 GB RAMu. Odpowiednio dużo rejestrów wybierających bank i masz. 65c816 ułatwia po prostu sprawę w ten sposób, że potrafi adresować tę pamięć sam, bez dodatkowej elektroniki, która będzie pamiętała resztę adresu, tak jak się dzieje w przypadku bankowania.
Reasumując dla mnie 65c816 to procesor 8-bitowy, bo zachowuje się jak procesor 8-bitowy, który wewnętrznie został zoptymalizowany do operacji 16-bitowych i radzi sobie z nimi lepiej (przypominam, że 6502 też wykonuje te operacje, przecież ma 16-bitową przestrzeń adresową, tylko robi to kulawo i wolniej) stąd jego nazwa 65 (rodzina) C (CMOS) 8 (że 8-bitowy) 16 (że dobrze radzi sobie z operacjami 16-bitowymi).

588

(27 odpowiedzi, napisanych Emulacja - 8bit)

VI TYLKO I NA ZAWSZE!!11


A tak na poważnie, to jak pisał wieczor, Eclipse + WUSDN daje radę.

589

(294 odpowiedzi, napisanych Bałagan)

Tekst z datasheeta to papka marketingowa. Zwróćcie uwagę, jaki to 65c816 jest enhanced, extended i advanced. Użycie słowa emulation bardzo ładnie się w to wpisuje - procesor jest taki zajefajny, że jest w stanie emulować 6502!!11

590

(124 odpowiedzi, napisanych Fabryka - 8bit)

Pajero: Sprytne. Aczkolwiek nawet do pracy samodzielnej radziłbym skorzystać z jakiegoś systemu kontroli wersji. Taki git nie wymaga serwera i wszystko jest trzymane lokalnie. Twój skrypt zamiast robić kopię pliku mógłby robić automatycznego commita do repozytorium. Plus tego jest taki,  że historia zmian pliku/plików jest z dokładnością do wiersza i za pomocą dostępnych narzędzi bardzo wygodnie można przeglądać, porównywać kolejne wersje. Oczywiście cofnięcie się do konkretnej wersji też jest trywialne :)

591

(124 odpowiedzi, napisanych Fabryka - 8bit)

Proszę nie używać liczby mnogiej, bo propozycja jest tylko moja i dziękuję za krytykę :)
Propozycję pseudorozkazu "sys" uzasadniam domniemaną trywialnością implementacji i prostotą użycia, ale po argumencie Foxa uświadomiłem sobie, że w takim rozwiązaniu zewnętrzny program wołany byłby przy każdej asemblacji, podczas gdy rozwiązanie z plikami pośrednimi sterowane make lub odpowiednikiem minimalizuje liczbę wywołań, co jest oczywistym plusem w przypadku skomplikowanych generatorów. Ostatecznie zły pomysł.

A pseudorozkaz "gen"? Ideą jest minimalizowanie liczby zastrzeżonych słów kluczowych będących nośnikami jakichś wartości, które można w przeciwnym razie mnożyć w nieskończoność, a za jego pomocą niejako rezerwujemy na nie osobną niekolidującą przestrzeń nazw.

Wciąż także nie wydaje mi się, aby podstawowe makra (data, itd) nie mogły być realizowane automatycznie np za pomocą takiego generatora. Konieczność instalowania środowiska dlatego, że autor kodu źródłowego napisał sobie linuksowego wsada generującego coś, co może być w samym asemblerze wydaje mi się nadużyciem.

592

(124 odpowiedzi, napisanych Fabryka - 8bit)

Miałem odpisać na maila, ale widzę wątek, to napiszę tutaj. Może ktoś będzie miał lepszy pomysł.

Zastanowiłem się nad tym i jest w tym trochę racji, żeby udostępnić taką wbudowaną funkcjonalność.
Narzędzia, z którymi się spotkałem zawierają takie makra. Przykłady

- C/C++: http://gcc.gnu.org/onlinedocs/cpp/Stand … acros.html
- NASM: http://www.nasm.us/xdoc/2.11/html/nasmd … ction-4.12
- Coś podobnego ma nawet Free Pascal: http://www.freepascal.org/docs-html/prog/progap7.html

Pewnie wiele innych też.

Zaproponowane przez Ciebie rozwiązanie ma taki problem, że nie jest przenośne: nie jestem w stanie zrobić projektu, w którym będę wstawiał np. datę assemblacji tak, aby każdy mógł to skompilować na dowolnym systemie. Musiałbym pisać osobny zestaw skryptów dla Windowsa i dla Linuksa.

Nie wiem ile w tym jest sensu, ale przyszło mi do głowy pewne generyczne rozwiązanie: pseudorozkaz GEN("description"), który pełniłby rolę uniwersalnego generatora zastępującego swoje ciało wygenerowanym napisem na podstawie podanego opisu. Można byłoby dla pełności zaimplementować w nim część istniejących pseudorozkazów:

gen("rnd(0,33,256)")  ;losowa liczba
gen('date("F j, Y, g:i a")')           ;data, np. formatowana jak w PHP: March 10, 2001, 5:16 pm
gen("line")           ;aktualny numer assemblowanego wiersza
gen("count")          ;kolejna liczba zwiększana o jeden przy następnym wywołaniu

Idąc za ciosem można byłoby dodać drugi pseudorozkaz, który nawet przydałby się mi:  SYS("command", [args...]), który odpalałby nowy proces o podanej nazwie i wstawiał w miejsce swojego ciała zawartość zwróconego standardowego wyjścia:

.he sys("SuperTableGenerator", 42)

Rezultat: wynik jakiegoś programu generującego super tablice ("SuperTableGenerator.exe") jako ciąg wartości szesnastkowych przyjmującego jeden argument.

Oczywiście "sys" byłby zależny od systemu, ale stanowiłby niezłą furtkę dla prostego generowanie zawartości. Ja często piszę skrypty w ruby, które generują mi jakieś dane, tylko teraz generuję plik binarny, któremu robię "ins", a tu można byłoby generować dane wprost.

W przypadku wielu przebiegów można byłoby cachować wartości wygenerowane przy pierwszym przebiegu.

Z tymi 16 bitami z pełnymi konsekwencjami to trochę przesada. Mimo szczerych chęci nie nazwałbym 65c816 w pełni 16 bitowym. To taki 8/16. Nie ma 16 bitowego "feelu". Programując go ma się raczej poczucie takiego Z80 (też ma 16 bitowe rejestry) albo 6809 (który ma bardzo zbliżony "layout"). Porównaj to sobie do takiego 8086, którego 16 bitowość jest już inherentna.
Jasne, że 816-tka ma 24-bity przestrzeni adresowej, ale to jest raczej danie 8-bitowcowi okienka na 16-to bitowy świat, przez które zagląda do większej pamięci...

594

(279 odpowiedzi, napisanych Fabryka - 8bit)

Sikor: Nie pierdziel z tą mikropłytą. To, że z różnych względów tak się nie stało, nie znaczy, że w Atari nie mógł oficjalnie wylądować 65c816. O serii komputerów Apple II słyszałeś? Ostatni z serii Apple IIGS miał na pokładzie 65c816. Miał standardowo 256 kB RAM (z oficjaną możliwością rozbudowy do 8MB). Wydaje mi się, że Applowcy raczej sikali po nogach zamiast krzyczeć, że to już nie jest Apple.
Uważam, że w czasach oryginalnej świetności sprzęt o działaniu Rapidusa mógł powstać i powstałby jakby było to opłacalne biznesowo. Rapidus wg mnie jest rozszerzeniem modelowym: komputer startuje jako zwykłe (w praktyce 100% kompatybilne) Atari, a turbo włącza się odpowiednią kombinacją klawiszy przy resecie (chyba, że z konfiguracji wybierzesz, żeby startował od razu jako turbo). W trybie turbo dobrze napisane programy dla oryginalnego Atari działają szybciej, a programy dedykowane potrafią więcej. To jest coś, czego można spodziewać się po nowszym modelu sprzętu w danej linii i tak możemy Rapidusa traktować.

595

(124 odpowiedzi, napisanych Fabryka - 8bit)

syscall: Tak się składa, że każdy koder pisze w którymś momencie swojej kariery jakiegoś asemblera. 90% nie kończy, a z tych ukończonych tylko dwa używa ktoś poza autorem.
Wiem, bo sam teraz piszę swojego trzeciego z rzędu asemblera, ale się z tym nie obnoszę, bo pewnie znowu trafi do tych 90% :)
Zalecam więc trochę pokory, bo jaki mads jest każdy widzi, ale jest ukończony i działający na tyle, że używa go większość atarowskiego światka.

596

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

Zdaje się, że to akurat można dość łatwo sprawdzić: http://visual6502.org/JSSim/index.html

597

(22 odpowiedzi, napisanych Zloty)

21. Rozbijanie płyty, ale na QuST 98. Dwóch od lewej to Solo i Tiger.
58. Rozbijania ciąg dalszy. Tleniony blondynek w środku to Solo. Z prawej jest Tiger i ja chwytający się za głowę :)
90. Po rozbiciu. Od lewej Roland, Tiger, Solo
73. Blondynek w pasiastej koszuli to oczywiście Solo
41. A tu trochę starszy, więc to na pewno jakiś późniejszy zlot.
76. Pet koduje tu Sheola :)

598

(8 odpowiedzi, napisanych Bałagan)

Można spróbować na jana. vcproj jest XMLem. Zerkając do niego można wyczaić jakie ścieżki includów były ustawione przy kompilowaniu (a więc jakie biblioteki były użyte) oraz jakie liby były potrzebne. Spróbuj skompilować wszystkie *.cpp ustawiając te includy i liby. Jak to nie przejdzie, to pewnie program ma jakieś nietrywialne windowsowe zależności i ogólnie będzie ciężko.

599

(8 odpowiedzi, napisanych Bałagan)

W robocie utrzymuję konfigurację windowsową (visual) i linuksową (gcc makefile) sporego projektu i dorobiłem się kilku automatów, ale w ogólności nie każdy projekt visuala da się trywialnie przerobić na coś strawnego na linuksie. Jeżeli to nic tajnego, to mógłbym na to zerknąć ( laoo ( at ) icomp . pl )

600

(23 odpowiedzi, napisanych Bałagan)

No faktycznie żyleta. Kuszące, szczególnie, że będę niedługo potrzebował, a z mojego easycapa specjalnie zadowolony nie jestem.