atarionline.pl Hello World w Asemblerze dla Atari - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1: CommentAuthorDJ Gruby
    • CommentTime9 Oct 2014
     
    Witam wszystkich!

    Czy ktos z Was posiada moze *dzialajacy* program Hello World w Assemblerze dla Atari? Od dwoch dni poszukuje. Przekopalem juz chyba caly Internet i nic. Mnostwo przeroznych informacji do Atari mozna znalezc, ale tej najbardziej podstawowej nie ma nigdzie. :(

    Z gory dzieki za pomoc!
    • 2: CommentAuthordarque
    • CommentTime9 Oct 2014
     
    koderem nie jestem ale po wpisaniu do googla "hello world assembler atari" w 2-gim linku jest przykład ...

    ->link<-
    • 3: CommentAuthorbob_er
    • CommentTime9 Oct 2014
     
    Ewentualnie - przejrzyj sobie kurs assemblera 6502 w Tajemniach Atari. Albo to: ->link<-
    • 4: CommentAuthorDJ Gruby
    • CommentTime9 Oct 2014
     
    Dziekuje za dotychczasowe odpowiedzi. Chyba jednak nie wyrazilem sie wystarczajaco jasno. Nie potrzebuje kursu assemblera 6502, bo tego znam az za dobrze. ;) Potrzebuje dzialajacego programu Hello World na Atari, z naciskiem na *dzialajacego*. Tak, tez potrafie korzystac z Googla, jednak takie przyklady kodu niewiele mi daja, bo owszem mozna je sobie przeczytac, ale co mi po takim przeczytaniu. Chcialbym je uruchomic. :) Moze zatem sprobuje sformulowac precyzyjniej moje pytanie... Jak majac kod zrodlowy, uruchomic go na emulatorze Atari? Do tej pory probowalem w nastepujacy sposob:

    $ xasm -q -l -o hello.exe hello.asm
    $ atari800 hello.exe

    Niestety, po uruchomieniu emulatora wypisuje mi w nieskonczonosc linijki z tekstem "BOOT ERROR", ktore kompletnie nie wiem, co moglyby mi sugerowac. Ze program sie nie wczytal? Ze zle sie wczytal? Ze wczytal sie nie tam, gdzie powinien? Ze sie zle skompilowal? Kompletnie nie mam pojecia... Dlatego z gory dziekuje za wszelka pomoc!
    • 5: CommentAuthorXaVeR
    • CommentTime9 Oct 2014
     
    Ja się nie znam na asemblerze.
    Ale spytam tylko z ciekawości, czy nie ma znaczenia rozszerzenie pliku: hello.exe, czy nie powinno byc: hello.xex ?
    Pewnie nie i się tylko czepiam, ale to zauważyłem. ;-)
    • 6: CommentAuthormono
    • CommentTime9 Oct 2014 zmieniony
     
    Oto:
    $ mads -o hello.xex hello.asm
    $ atari800 hello.xex

    hello.asm:
    opt o+ h+ ?+

    EOL = 155

    ICCMD = $342
    ICBUFA = $344
    ICBUFL = $348

    PUTBT = %1011
    JCIOMAIN = $E456

    org $600

    ldx #0
    lda #PUTBT
    sta ICCMD,x
    lda #<hw
    sta ICBUFA,x
    lda #>hw
    sta ICBUFA+1,x
    lda #<hw.?len
    sta ICBUFL,x
    lda #>hw.?len
    sta ICBUFL+1,x
    jsr JCIOMAIN

    jmp *

    hw .db 'Hello World!',EOL
    ?len = *-hw

    end

    Ogólnie to Atariki Twoją pomocą i ostoją.

    Edit: Apostrofy bez backslashów - to engine forum dodaje.

    Edit 2: Możliwe, że xasm też to skompiluje - pewnie trzeba będzie przerobić dyrektywy opt, zmienne lokalne ?cośtam i .db

    Edit 3: Xxl uświadomił mi, że przed end zapomniałem dodać jeszcze
    run $600

    Dzięki xxl.
    • 7: CommentAuthorxxl
    • CommentTime9 Oct 2014
     
    prawdziwie dobry program binarny na atari musi miec adres uruchomienia:

    putline equ $c642

    org $2000
    ldy >napis
    ldx <napis
    jsr putline

    koniec jmp koniec

    napis .byte c'Hello world!',155

    run $2000
    • 8: CommentAuthormono
    • CommentTime9 Oct 2014 zmieniony
     
    $c642 to nielegalne odwołanie do osa - może nie działać w qmegu, dracos i w osie atari 400/800. Na 100% zadziała w XL/XE. Atari ma kilka rodzajów OSa wiec korzysta się z tablic skoków a nie odwołań do ROMu bezpośrednio, bo zależnie od wersji systemu możesz się bardzo zdziwić.

    Edit: Tablic skoków, wektorów oraz infrastruktury CIO i SIO.
    • 9: CommentAuthorxxl
    • CommentTime9 Oct 2014
     
    raczej nieudokumentowany.

    nielegalny - ->link<-
    • 10: CommentAuthormono
    • CommentTime9 Oct 2014
     
    Atariki Twoim przyjacielem xxlu.

    Wszystkie ROMy OSów Atari są udokumentowane. Książki mówią o poprawnym pisaniu programów tak, żeby działały na każdym modelu 8-bit komputerów Atari (konsola 5200 ma ROM gdzie indziej - on zresztą też jest udokumentowany).
    • 11: CommentAuthorxxl
    • CommentTime9 Oct 2014
     
    skoro OSy sa udokumentowane to udokumentowane odwolanie do PUTLINE :) dlaczego piszesz o nielegalnym odwolaniu? drukowanie wspomnianego napisu "BOOT ERROR" na atari realizowane jest ta procedura. tworcy atari os nie wiedzieli ze nielegalne i korzystali?
    • 12: CommentAuthorbob_er
    • CommentTime9 Oct 2014
     
    Aż się wtrącę bo trochę z tym printem jestem zamieszany :).
    Z tego co wiem, to ten print nie działa tylko na nie-atarowych ROMach (DracOS, domyślny w Alitirze).
    O innych dolegliwościach nikt mi nie doniósł, a każde moje un*demo z tego korzysta.
    • 13:
       
      CommentAuthorpabloz1974
    • CommentTime9 Oct 2014 zmieniony
     
    a mi tak działa :
    $ mads -o:hello.xex hello.asm
    • 14: CommentAuthorDJ Gruby
    • CommentTime9 Oct 2014
     
    Ha! Wielkie dzieki, Mono! Dokladnie, dokladnie o to chodzilo! No to teraz moge sie zaczac zaglebic w powazniejsze rzeczy. :)
    • 15: CommentAuthormono
    • CommentTime9 Oct 2014 zmieniony
     
    @xxl: Jeśli z $c642 korzysta procedura drukująca BOOT ERROR (a jest to wewnętrzna procedura OSa), to chyba nie jest dziwne że odwołuje się ona do wewnętrznej procedury OSa czyli PUTLINE, bo sama będąc wewnętrzną procedurą OSa wie gdzie tamta jest w OSie w którym działają ulokowana. Program użytkownika nie ma zielonego pojęcia na jakiej maszynie działa i nawet nie powinien. Po to są publiczne interfejsy wystawione, żeby z nich korzystać i pisać kod działający na wszystkim co te interfejsy implementuje. Dzięki temu procedura odwołująca się przez CIO wypisze "Hello World" na standardowym Atari, lub na S2: w VBXE czy też na XEP80. Albo na 80-kolumnowym S: zrealizowanym w graficznym trybie hires. Nie korzystająca z CIO pokaże tam śmieci (jako przykład proszę włączyć sobie 80-kolumnowy tryb S2: na VBXE po czym odpalić program ED w SDX), albo nie zadziała w ogóle. Dlaczego? Bo skacze do wewnętrznej procedury OSa - a nie wiesz co to za OS. I nie powinieneś wiedzieć, bo nawet jeśli sobie sprawdzisz na czym działasz (a możesz sprawdzić tylko to, o czym _dzisiaj_ wiesz) to jeśli za 5 lub 50 lat ktoś napisze nowy OS, to siłą rzeczy bez zmiany swojego kodu Twój stary program na tym nie zadziała. Zaletą korzystania z publicznych interfejsów jest przenośność. I gwarancja poprawnego działania. A to jest raczej miłe uchu każdego użytkownika, bo raczej ludzie lubią programy działające, a nikt nie lubi programów które nie działają (jestem w stanie założyć, że istnieje pewien rodzaj masochizmu polegający na uruchamianiu programów niedziałających).
    Podziwiam Twoje dokonania i szanuję ogrom Twojej wiedzy bo znajdujesz fajne zastosowania niestandardowych technik, ale trudno mi się zgodzić z promowaniem krótkowzrocznych praktyk. Niechże Biały Człowiek użyje sobie tego PUTLINEa, ale niech zrobi to świadomie (a skoro szuka Hello World dla Atari zaznaczając że zna 6502 to znaczy że o Atari wie nic, albo niewiele).

    Edit:
    @bob_er: To nie zmienia faktu, że nie jest to adres publiczny.

    @DJ Gruby: Nie ma sprawy. Bez obrazy :)
    • 16: CommentAuthorxxl
    • CommentTime9 Oct 2014
     
    to prawda, odwolujac sie przez CIO bedzie tez dzialac na urzadzeniach podlaczonych do atari jak VBXE czy 80znakowy interfejs, odwolujac sie przez PUTLINE bedzie dzialac tylko na Atari :-)
    • 17: CommentAuthorwieczor
    • CommentTime9 Oct 2014 zmieniony
     
    @xxl: nie na każdym Atari. Na innym OSie procedura może być w innym miejscu. Dlatego nie skaczesz do niej bezpośrednio a używasz tablicy skoków. O to chodzi, a nie o CIO jako takie.
    • 18: CommentAuthorxxl
    • CommentTime9 Oct 2014 zmieniony
     
    @wieczor, czytales Bobera? przeczytaj.

    ---

    to ma sens: pisz programy pod system, bo jak powstanie w miare kompatybilny system na inna architekture to te programy beda dalej dzialac :-)

    juz to slyszalem fafnascie lat temu... tylko ze chodzilo o amige :-) dzis sa ludzie ktorzy wierza ze Amiga to AmigaOS a sprzet... nie wazne jaki wazne zeby dzialaly programy pod system ;-)

    dokladnie to samo dzieje sie teraz na malym atari :D wkrotce dowiem sie ze 8bitowe atari to komputer z 16 bitowym procem z grafika i muzyka lepsza od amigi :-)

    im mniej ludzie beda wiedziec na temat atari (czyli np. promowana bedzie tylko jedna sluszna metoda programowania) tym szybciej taka degeneracja bedzie postepowac ;-)
    • 19: CommentAuthormono
    • CommentTime9 Oct 2014
     
    A QMEG czy DracOS to pies? A Hiasa patche?
    • 20: CommentAuthorxxl
    • CommentTime9 Oct 2014
     
    pytasz czy dziala na atari z wymienionym na homebrew systemem operacyjnym? szczerze powiem nie wiem :-)

    ---
    sprawdzilem na atari z systemem operacyjnym QMEG i... dziala.
    • 21:
       
      CommentAuthorjhusak
    • CommentTime11 Oct 2014
     
    A na A400? A na A800?
    • 22: CommentAuthorxxl
    • CommentTime11 Oct 2014
     
    modele a400 i a800 sa jak yeti - podobno ktos widzial.
    modele maja 8/16 lub 48 kb ramu, nie maja ramu pod romem, ciezko znalezc program ktory na takiej konfiguracji dziala :-)
    a poza tym jak pisalem - yeti - jesli ktos widzial to okazuje sie ze to przerobiony model w ktorym jest brakujacy ram i nowy os z atari xl/xe.
    problemu tez nie ma.
    • 23: CommentAuthorilmenit
    • CommentTime11 Oct 2014
     
    Zależy od części świata. W Polsce (i ewentualnie na Słowacji) rozszerzenia to standard. Po drugiej stronie oceanu wielu fascynatów "retro Atari" ma maszynki nie będące XL/XE.
    • 24: CommentAuthorbob_er
    • CommentTime11 Oct 2014
     
    Moje rzeczy działają tylko na maszynach PALowskich.
    I nie tylko dlatego, że sprawdzam GTIA na początku, ale dlatego, że czas trwania ramki jest inny.
    Osobiście jestem zdania, że kwestia innego ROMu to jest jakiś 0.1% użytkowników Atari po tej stronie Atlantyku, i są to _BARDZO_ świadomi użytkownicy (klasy Pina czy Draco). Raczej nikt przypadkowy.
    Zatem i sam temat jest marginalny.
    • 25: CommentAuthorilmenit
    • CommentTime11 Oct 2014
     
    Podobnie jak całe retro-Atari ;)
    • 26: CommentAuthorbob_er
    • CommentTime11 Oct 2014
     
    Tak, ale on jest (imho) marginalny nawet w naszej skali :).
    Zapytam inaczej - komu nie działa Chaos Loader?
    Co w ROMie jest legalne, a co nie to raczej filozofowanie jest, bo jak napisał XXL - na Atari to działa. A jak ktoś podmienia sobie istotny komponent sprzętu wg. własnego widzimisię, to niech nie marudzi potem. Mam w domu XE i tam sprawdzam czy działa, czy nie. I to jest dla mnie referencja, a nie czyjaś opinia co jest słuszne, a co nie...
    • 27: CommentAuthorxxl
    • CommentTime11 Oct 2014
     
    albo komu nie dziala Quick Assembler :-)

    problem nie istnieje.

    problem ma lobby ktore chce zmienic definicje malego atari ;-)
    • 28: CommentAuthormono
    • CommentTime11 Oct 2014 zmieniony
     
    Panowie. Każdy może sobie pisać jak chce i na jaki sprzęt chce i nikt mu tego oczywiście nie zabroni. Każdy może obrać sobie również dowolny punkt referencyjny i choćby stado autorytetów (za takiego się nie uważam) grzmiało, to nic tu nie wskórają - wolni jesteśmy.

    Osobiście preferuję wykorzystanie publicznych interfejsów (pomimo ich oczywistych ograniczeń) i mechanizmów pozwalających na rozszerzanie możliwości systemu (a Atari takie mechanizmy właśnie ma i dzięki nim np. urządzenia o których się konstruktorom Atari nie śniło a skonstruowane wiele lat później mogą działać z programami, które nie przewidywały współpracy z nimi). Dzięki temu cieszy mnie kiedy mój kod działa na nowym rozszerzeniu o którym nigdy dotąd nie słyszałem, lub nie mogłem słyszeć. To jest moje podejście inspirowane artykułami w TA, przeczytaną literaturą i lenistwem.

    bob_er:

    Moje rzeczy działają tylko na maszynach PALowskich.
    I nie tylko dlatego, że sprawdzam GTIA na początku, ale dlatego, że czas trwania ramki jest inny.

    I to rozumiem, bo to jest świadomy i uzasadniony wybór - konstrukcyjny kompromis. Tak, jak i kod xxla używający niepublicznych rozkazów 6502 a pozwalający osiągnąć efekt ładniej/wydajniej/etc.
    Ale wtedy na liście wymagań pisze się: Atari XL/XE z 6502C, XL OS rev.B, 64K RAM, GTIA PAL, MapRAM, COVOX, POKEY stereo itd.

    Wolę jednak o ile się da znaleźć rozwiazanie uniwersalne, bo to osobiście mnie po prostu cieszy. Poza tym nie chcę wracać przez całe życie do raz napisanego programu i ciągle go poprawiać. Może to jest dobry model zarobkowy w korporacjach, ale ja po prostu wolę podejmować następne wyzwania zamiast stać przy taśmie i całe życie dokręcać śrubki.
    Dlatego nowemu człowiekowi pytającemu o HelloWorld zawsze polecę PUTBT@E: przez CIO a nie jakieś haki.

    Edit: Aaa xxl próbuje sprowadzić problem do krucjaty SDX vs reszta świata (choć nawet jego xBIOS nie jest kompatybilny z AtariOS). Otóż nie mam takiej ambicji żeby zmieniać definicje lub nawracać każdego na SDX - mnie się podoba ten system, bo ma ogromne możliwości i jest wygodny. A przykład z CIO w żaden sposób SDXem nie jest spaczony (chyba, że ktoś za takie uzna brak run na końcu pliku :D).
    • 29: CommentAuthorxxl
    • CommentTime11 Oct 2014
     
    > Aaa xxl próbuje sprowadzić problem do krucjaty SDX vs reszta świata

    bez przesady. cokolwiek xxl napisze to zawsze musi byc krucjata :D ubralem dzis czerwona koszulke - krucjata SDX vs reszta swiata.


    > Ale wtedy na liście wymagań pisze się: Atari XL/XE z 6502C,

    liste wymagan wyczerpuje: Atari XL/XE :-)
    to jest to o czym pisalem... przykladowo nie istnieje takie atari z innym procesorem :)


    > choć nawet jego xBIOS nie jest kompatybilny z AtariOS

    temat kompatybilnosci xBIOS z Atari OS to porownanie takie jak czy automatyczna skrzynia biegow jest kompatybilna z manualna :-) to nie xxl a programista decyduje o tym czy korzysta z funkcji xBIOS poprzez interfejs Atari OS, jesli sobie tego nie zyczy to moze uzywac interfejsu xBIOS :-) a jak chce to moze nawet wylaczyc Atari OS i zrobic tak, zeby na dzialanie xBIOSA to nie wplywalo :)
    • 30: CommentAuthorwieczor
    • CommentTime11 Oct 2014
     
    > liste wymagan wyczerpuje: Atari XL/XE :-)
    > to jest to o czym pisalem... przykladowo nie istnieje
    > takie atari z innym procesorem :)

    Ale przykładowo istnieje takie atari z inną wersją OSa i niektóre procedury są w innych miejscach. Po to jest tablica skoków.
    • 31: CommentAuthormono
    • CommentTime11 Oct 2014 zmieniony
     

    xxl:

    liste wymagan wyczerpuje: Atari XL/XE :-)
    to jest to o czym pisalem... przykladowo nie istnieje takie atari z innym procesorem :)

    Mógłbym się z tym zgodzić jednak wymagałoby to założenia, że świat zatrzymał się w miejscu.
    Problem jest taki, że _dzisiaj_ mamy:
    - oryginalne fabryczne Atari XL/XE z 6502C Sally,
    - zmodyfikowane Atari XL/XE z 65C02,
    - zmodyfikowane Atari XL/XE z 65C816.
    Wspólnym mianownikiem jest publiczna lista rokazów 6502. Modele Atari 400 i 800 miały trochę inny model CPU, który inaczej współpracował z ANTICem. Nie jestem pewny czy kody niepublikowane w oficjalnej dokumentacji działały tam identycznie, jak w Sally - a to by stawiało fabrycznie montowane maszyny na równi ze zmodyfikowanymi zawierającymi inne wymienione CPU.

    Jeśli przyjmiemy za standard wspólny mianownik (czyli publiczną listę rozkazów), to specyfikacja wymagań "Atari XL/XE" a nawet "8-bit Atari personal computer" mówi, że program zadziała na każdej maszynie (i 400/800, i XL/XE i tych zmodyfikowanych z 65C02 i 65C816).
    Jeśli program wymaga konkrentego CPU, wtedy 6502C mówi że tylko na takim CPU będzie rzecz działać. Jeśli 65C02 czy 65C816 to wiadomo, że na 6502C nie zadziała (bo używa rozkazów spoza wspólnej listy - specyficznych dla 65C02 czy 65C816 być może nawet publicznych wymienianych w oficjalnej dokumentacji).

    Jeśli przyjmiemy, że "Atari XL/XE" wystarcza do identyfikacji wymagań (czyli z 6502C Sally na pokładzie), to występuje problem p.t. jak opisać program który działa również na 65C02 i 65C816? "Atari XL/XE z 65C02" jest złe bo sugeruje, że zadziała tylko z 65C02 co jest nieprawdą. Pisać "Atari XL/XE (również z 65C02 i 65C816)"?

    Cytując klasyka: "prosto - byle nie prościej".

    Edit: Pomijam już fakt, że 600XL miał 16KB RAM, memopad zamiast SELF-TESTu a dopiero 800XL miał RAM pod ROMem zarządzany za pomocą PORTB i 64K RAM. 1200XL z kolei nie miał nowych urządzeń ale miał diody sterowane też z PORTB. A 1400XL/1450XLD? Miały dodatkowe zintegrowane nowe urządzenia na płycie komputera. XEGS z kolei miał Missile Command też włączany przez PORTB i zewnętrzną klawiaturę identyfikowaną przez TRIG2. Więc "Atari XL/XE" nie specyfikuje niczego precyzyjnie.
    • 32: CommentAuthorxxl
    • CommentTime11 Oct 2014
     
    @wieczor: zacznij od posta 24

    @mono: niestety ale dla atari swiat zatrzymal sie w miejscu :-)

    > Jeśli przyjmiemy za standard wspólny mianownik

    problem jest taki, ze probujesz mi wmowic, ze standardem jest wspolny mianownik komputera atari xl/xe z komputerami modyfikowanymi (patrz post.18 dokladnie to samo bylo z amiga pare lat temu). nie moze byc o tym mowy - mozemy ewentualnie mowic o wspolnym mianowniku atari 800 xl i atari 130 xe itp. ale nie miedzy atari xl/xe a komputerami z dowolnymi modyfikacjami uzytkownika - w kontekscie standardu - to na pewno nie jest standard.

    jesli program dziala na atari to nie ma sensu podawac wymagan bo wiadomo co to jest atari :-)
    oczywiscie lobby zawsze bedzie pytalo co to jest atari aby moc rozpoczac dyskusje na temat zmiany definicji komputera atari xl/xe - tak jak z amiga;)

    jesli Twoj program nie dziala na standardowym atari lub dziala tez na innym komputerze to powinienes/mozesz to zaznaczyc.

    odnosnie Twojego edita - i na ktorym z tych komputerow nie dziala PUTLINE ?
    • 33: CommentAuthormono
    • CommentTime11 Oct 2014
     

    xxl:

    niestety ale dla atari swiat zatrzymal sie w miejscu :-)

    Dla Atari tak, dla mnie nie :)

    xxl:

    problem jest taki, ze probujesz mi wmowic, ze standardem jest wspolny mianownik komputera atari xl/xe z komputerami modyfikowanymi (patrz post.18 dokladnie to samo bylo z amiga pare lat temu). nie moze byc o tym mowy - mozemy ewentualnie mowic o wspolnym mianowniku atari 800 xl i atari 130 xe itp.

    Z tym się mogę zgodzić, ale to nie jest "Atari XL/XE". To jest "Atari 800 XL compatible" (800 XL jako pierwszy model wyznaczający przyjęty przez Ciebie standard).

    xxl:

    ...ale nie miedzy atari xl/xe a komputerami z dowolnymi modyfikacjami uzytkownika - w kontekscie standardu - to na pewno nie jest standard.

    Ano nie jest. Moje wątpliwości wynikły z przyjęcia 6502C Sally jako CPU występującego we wszystkich komputerach Atari 8-bit i związanego z tym użycia a) niepublicznych odwołań do ROMu, b) użycia rozkazów niepublikowanych 6502C.


    xxl:

    ]jesli program dziala na atari to nie ma sensu podawac wymagan bo wiadomo co to jest atari :-)

    Tak - o ile myślimy o "Atari 8-bit", "Atari 800 XL compatible" czy też "Atari XL/XE" i rozróżniamy między poszczególnymi standardami :)

    xxl:

    oczywiscie lobby zawsze bedzie pytalo co to jest atari aby moc rozpoczac dyskusje na temat zmiany definicji komputera atari xl/xe - tak jak z amiga;)

    Ano nie. Nie ma tu lobby, co najwyżej prywatne rozważania.

    xxl:

    jesli Twoj program nie dziala na standardowym atari lub dziala tez na innym komputerze to powinienes/mozesz to zaznaczyc.

    Oczywiście. Nawet ostatnio napisałem w wymaganiach "Atari XL/XE compatible with 64K RAM" (długo jeszcze zanim nasza dyskusja tu się zaczęła).

    xxl:

    odnosnie Twojego edita - i na ktorym z tych komputerow nie dziala PUTLINE ?

    A tego nie wiem. Na modelach z XL OS rev. B pewnie będzie działać. A używając PUTLINE sprawdzasz przypadkiem rodzaj OSa? :D
    • 34: CommentAuthorxxl
    • CommentTime11 Oct 2014
     
    > Z tym się mogę zgodzić, ale to nie jest "Atari XL/XE". To jest "Atari 800 XL compatible"

    na jakiej podstawie usuwasz Atari 800 XL z rodziny Atari XL/XE ?


    > Moje wątpliwości wynikły z przyjęcia 6502C Sally jako CPU występującego we wszystkich komputerach Atari 8-bit i związanego z tym użycia a) niepublicznych odwołań do ROMu, b) użycia rozkazów niepublikowanych 6502C.

    pisalem o atari xl/xe a nie o calej rodzinie 8bitowych atari do ktorych zalicza sie tez np. atari 800 czy atari 5200 - obydwa konstrukcyjnie czy programowo jednak odbiegaja od standardu xl/xe. w przypadku atari xl/xe problem A. i B. nie wystepuje.


    > Tak - o ile myślimy o "Atari 8-bit", "Atari 800 XL compatible" czy też "Atari XL/XE" i rozróżniamy między poszczególnymi standardami :)

    nadal nie wiem dlaczego wyrozniasz Atari 800 XL. jesli mowimy ogolnie o atari 8-bit to w switle tego co wczesniej bylo pisane raczej pokrywa sie on z atari xl/xe (bo tylko takie sa dostepne) ale jesli kogos to w oczy kole to oczywiscie w rodzinie 8-bitowych atari komputery bardzo roznia sie miedzy soba, przyklad - atari 800 / atari 5200 / atari 130 xe. dlatego bezpieczniej jest mowic atari xl/xe - wtedy sprawa jest jednoznaczna.


    > Nawet ostatnio napisałem w wymaganiach "Atari XL/XE compatible with 64K RAM"

    ok. ale ja bym tak nie napisal, jesli cos dziala na standardzie to nie masensu umieszczac wymagan.
    zawsze w takim momencie przypomina mi sie ostrzezenie: jesli pojazd znajduje sie w ruchu nie wysiadaj zza kierownicy ;-)


    > A używając PUTLINE sprawdzasz przypadkiem rodzaj OSa?

    niema sensu tego robic. pisalem juz wczesniej dlaczego. problem nie ma.
    • 35: CommentAuthorpin
    • CommentTime12 Oct 2014
     

    XXL:

    albo komu nie dziala Quick Assembler :-)


    Mi. Bo jakiś geniusz intelektu rozwiązał temat komunikacji z klawiaturą na swój własny sobie znany sposób :P

    I to jest owa krótkowzroczność o której mówi Mono. Jeśli można pomyśleć i napisać program tak, by działał zawsze - to należy skorzystać z takiej możliwości. Jeśli piszemy coś, czego nie da się w ten sposób napisać - to trudno, może są ku temu jakieś /RACJONALNE/ powody. W przeciwnym zaś przypadku jednak nie utrudniał bym sobie życia na siłę, bo mimo wszystko nawet tak stary sprzęt w pewnym sensie się rozwija i dzieje się tak nie dlatego, by komuś zrobić na złość tylko po to by mieć dalszą motywację szczególnie do zobaczenia czegoś nowego, ciekawego, czy wprost komfortowego korzystania z dobrodziejstw /retro/ sprzętu, że tak się nieładnie wyrażę ;)
    • 36: CommentAuthorxxl
    • CommentTime13 Oct 2014
     
    u Ciebie nie dziala bo nie masz atari :-)

    kpiac z tuzow pokroju JBW czy Pelca (ktorych historia pamieta jako autorow najlepszych programow na atari) tylko sie osmieszasz.
    • 37: CommentAuthormono
    • CommentTime13 Oct 2014
     

    Lew Tołstoj:

    Wiara w Autorytety powoduje, że błędy Autorytetów uznawane są za wzorce.
    • 38: CommentAuthorxxl
    • CommentTime13 Oct 2014
     
    na jednej szali wzorce skutecznych programistow na drugiej rady czlowieka ktoremu nic nie dziala na kompomachine. co przewaza?
    to nie kwestia autorytetow tylko racjonalnego myslenia ;-)
    • 39: CommentAuthormono
    • CommentTime13 Oct 2014 zmieniony
     

    xxl:

    na jakiej podstawie usuwasz Atari 800 XL z rodziny Atari XL/XE ?

    Nie usuwam, lecz precyzuję. 600XL może nie spełniać niektórych wymogów.

    xxl:

    pisalem o atari xl/xe a nie o calej rodzinie 8bitowych atari do ktorych zalicza sie tez np. atari 800 czy atari 5200 - obydwa konstrukcyjnie czy programowo jednak odbiegaja od standardu xl/xe. w przypadku atari xl/xe problem A. i B. nie wystepuje.

    To prawda, choć jak mówię - nie jestem przekonany czy punkty wejścia do procedur niepublicznych są nadal w tych samych miejscach w różnych wersjach ROMu. Na stronie Freddyego Offengi masz wszystkie wersje wyliczone. Jest to XL OS rev B, ale jednak w każdym są zmiany. Nie można zatem napisać "Atari XL/XE" i oczekiwać, że skok w ROM nie poprzez CIO/SIO/wektory/tablicę skoków zrobi Ci zawsze to, czego oczekujesz.

    xxl:

    nadal nie wiem dlaczego wyrozniasz Atari 800 XL. jesli mowimy ogolnie o atari 8-bit to w switle tego co wczesniej bylo pisane raczej pokrywa sie on z atari xl/xe (bo tylko takie sa dostepne) ale jesli kogos to w oczy kole to oczywiscie w rodzinie 8-bitowych atari komputery bardzo roznia sie miedzy soba, przyklad - atari 800 / atari 5200 / atari 130 xe. dlatego bezpieczniej jest mowic atari xl/xe - wtedy sprawa jest jednoznaczna.

    No właśnie nie jest. Bo Atari XL/XE sugeruje wspólny mianownik - czyli 16KB RAM (600XL), brak nowych urządzeń (1200XL), brak RAM pod ROM (600XL), bez wbudowanego BASICa (1200XL). Dopiero "Atari 800XL compatible" definiuje to, co w większości serii występuje, czyli 62KB RAM (z HighRAM), obsługę nowych urządzeń, wbudowany BASIC.
    "Atari 130XE compatible" definiuje dodatkowo obsługę dodatkowego RAMu 64KB. O konsolach już pisałem.


    mono:

    Nawet ostatnio napisałem w wymaganiach "Atari XL/XE compatible with 64K RAM"

    xxl:

    ok. ale ja bym tak nie napisal, jesli cos dziala na standardzie to nie masensu umieszczac wymagan.
    zawsze w takim momencie przypomina mi sie ostrzezenie: jesli pojazd znajduje sie w ruchu nie wysiadaj zza kierownicy ;-)

    Twoje prawo. Ja napisałem ze względu na powyższe.

    mono:

    A używając PUTLINE sprawdzasz przypadkiem rodzaj OSa?

    xxl:

    niema sensu tego robic. pisalem juz wczesniej dlaczego. problem nie ma.

    Możliwe - ja nie jestem przekonany. Może i PUTLINE zadziała, ale rozszerzanie takich praktyk na kolejne niepubliczne procedury OSa spowoduje niechybnie kiedyś niespodziankę.

    Edit: link do FO, quoty
    • 40: CommentAuthornosty
    • CommentTime13 Oct 2014 zmieniony
     
    @XXL: "modele a400 i a800 sa jak yeti - podobno ktos widzial."

    Teraz ostro pojechałeś. Wejdź na ebay.com i sprawdź ile w USA jest ofert sprzedaży Atari 400 + 800, a ile Atari XL/XE. Będziesz miał mniej więcej stosunek popularności tych linii w tamtej części świata.

    Generalnie: nie masz racji i bez sensu się upierasz :P

    Tzn owszem, Ty, tak jak każdy inny programista, możesz sobie kodować jak chcesz, np tak, aby Twoje programy działały tylko na oryginalnym Atari XL/XE, a nie działały na qmegu, 400/800 czy emulatorze. Wolno Ci.

    Ale ten temat dotyczy porady dla POCZĄTKUJĄCEGO programisty asm. I nie uchodzi podpowiadanie mu metody, która jest sprzeczna z "dobrymi praktykami" programowania na Atari i po prostu nieelegancka.
    Szczególnie, że nie jesteś byle anonimowym trolem, tylko doświadczonym koderem Atari, który powinien być autorytetem dla początkujących. To zobowiązuje. Nie każdy wie, że jesteś czarną owcą i buntownikiem, którego rady sprowadzają niewinnych programistów na manowce :)
    • 41: CommentAuthorxxl
    • CommentTime13 Oct 2014
     
    > I nie uchodzi podpowiadanie mu metody, która jest sprzeczna z "dobrymi praktykami" programowania na Atari i po prostu nieelegancka.

    "dobre praktyki" - dobrze ze w cudzyslowie :-)

    nie wiem czy DJG jest poczatkujacy, ale wiem ze kazdy kogo interesuje programowania na atari powinno zainteresowac cos wiecej niz jest napisane w "poradniku poczatkujacego kodera". tym bardziej ze stosowanie metod o ktorych pisalem maja uzasadnienie... jakie? trzeba sie zainteresowac. doswiadczeni koderzy jak w przykladzie nie zatrzymali sie na etapie rozwarzan czy program bedzie dzial na atari 400 z 16 kb ramem i kto wie... moze dzieki temu maja taki dorobek :-)
    • 42: CommentAuthornosty
    • CommentTime13 Oct 2014
     
    Ale jak mówi przysłowie: aby łamać zasady trzeba je najpierw poznać ;)
    • 43: CommentAuthorxxl
    • CommentTime13 Oct 2014
     
    ale to nie sa zasady tylko jak piszesz "dobre praktyki" :D - nadal w cudzyslowie.

    > Teraz ostro pojechałeś. Wejdź na ebay.com i sprawdź ile w USA jest ofert sprzedaży Atari 400 + 800, a ile Atari XL/XE.

    sprawdzilem pierwszych 100 (bo dalej mi sie nie chcialo) - znalazlem 3 dotyczace 400/800 reszta to modele XL/XE :-)
    • 44: CommentAuthorbob_er
    • CommentTime13 Oct 2014
     
    Wy to gadu-gadu, a ja mam już 5 sekund więcej dema na SV :P.
    I (po raz kolejny (znaczy się recydywa)) użyję PUTLINE, bo jak to mówią 'mamy wolność i demokrację' :).
    • 45: CommentAuthorpin
    • CommentTime13 Oct 2014
     

    XXL:

    na jednej szali wzorce skutecznych programistow


    Którzy potrafili popełnić taki błąd ;) Sądzę, że fakt ten w latach świetności QA zadowolił każdego szczęśliwca posiadającego Qmeg'a

    XXL:

    rady czlowieka ktoremu nic nie dziala na kompomachine.


    Czyli co takiego nie działa? 0.001% najczęściej byle jak napisanych programów?

    Co do reszty spornych kwestii, to już mi się pisać nic nie chce, bo łatwiej jest przebić głową betonowy mur ;)
    • 46: CommentAuthorbob_er
    • CommentTime13 Oct 2014
     
    @Pin - teraz całkiem serio.

    Możesz (na podobieństwo JAC!-a i jego listy) zebrać w punkty co znaczy 'PIN Ready'?. To, co Ci w duszy gra...
    • 47: CommentAuthorxxl
    • CommentTime13 Oct 2014
     
    Pin, a sprawdziles chociaz to co mowisz? podobnie jak Nosty sugerujesz cos bez sprawdzenia stanu faktycznego...

    oczywiscie z QMEG dziala :-)
    • 48: CommentAuthorpin
    • CommentTime13 Oct 2014
     
    chodzi o samą ideę. Jeśli da się zrobić odwołanie przez np. tablicę, to racjonalnie uzasadnione rozwiązanie tej kwestii brzmi: tak trzeba zrobić ;) To, że w Qmeg'u akurat owy kawałek kodu jest w tym samym miejscu nie oznacza, że w każdym innym osie tam będzie.

    Bober - wolę tutaj tego nie robić, bo będą zamieszki i poleje się jucha ;)
    • 49: CommentAuthornosty
    • CommentTime13 Oct 2014
     
    "Pin, a sprawdziles chociaz to co mowisz? podobnie jak Nosty sugerujesz cos bez sprawdzenia stanu faktycznego..."

    O przepraszam, mogę nie znać się na assemblerze w stopniu pozwalającym na dyskusję z Tobą, ale jeśli chodzi o Atari na ebayu to inna sprawa. Nie wiem jak szukałeś ale Twoje wyniki są do kitu.
    Generalnie, zostawiając eBaya: trudno znaleźć wyniki sprzedaży komuterów Atari w USA z podziałem na linie 400/800/XL/XE, ale maszyny 400/800 były sprzedawane od 79 do 84, czyli prawie 6 lat. W 84r. weszła linia XL a w 85r. XE. Ale w 85r. pojawia się już Amiga i Atari ST, więc 8-bitowce zaczynają odchodzić.
    Idę o zakład, że linia 400/800 była liczniejsza w USA, a i w tej chwili cieszy się tam większym sentymentem niż XL/XE.

    Sorki za offtop.
    • 50: CommentAuthorxxl
    • CommentTime14 Oct 2014 zmieniony
     
    ale wiesz, ze inny rom atari 400 i 800 to ich najmniejszy problem? :D

    probowales na tym uruchomic COKOLWIEK procz dosa ;-) ?

    utrzymywanie na sile kompatybilnosci programowej z maszyna na ktorej z powodow jej roznych ograniczen nic nie uruchomisz to marnotrastwo.