51

(13 odpowiedzi, napisanych Programowanie - 8 bit)

czy "docyklowanie" musi być idealne ?
tzn. czy możliwa jest sytuacja, że pętla opóźniająca wykona się PRAWIE tyle ile wynikałoby to z obliczeń (powiedzmy w granicach błędu określonego marginesem 8 cykli) ?

http://tajemnice.atari8.info/5_92/5_92_6502.html

(TA copy)
"Jeżeli użytkownik trzyma wciśnięty klawisz SHIFT, to w IO_AUX umieszczane jest 0 (oznacza to długie przerwy dla urządzenia "C:")"

"Warto tylko zmienić adres w rozkazie ORG, by poszerzyć bufor. Ambitnym proponuję połączyć kopier z RELOCATOR-em z TA 8/91."

http://tajemnice.atari8.info/5_92/5_92_listingi.zip

Dorze myślę, że ten kopier pomoże w sprawie?

NCopy jest trudno dostępny w sieci (nie znalazłem), ale wydaje mi się, że jak większość produkcji JBW jest relokowalny, stąd chyba problem ze zbyt małym buforem może być pozorny.

53

(5 odpowiedzi, napisanych Fabryka - 8bit)

asemblowanie na dysk (po zmianie argumentu OPT) daje plik wynikowy torżsamy z GILP.XEX

"firmowy" dysk dosu XDOS24D (jest na stronie KAZ'a) zawiera użyteczny programik do wyświetlania nagłówków pliku, nazywa się MAP

potraktowanie nim pliku wynikowego uzyskanego z Twojego programu oddaje następujące wiersze informacyjne:
7000-73ef
c385-0099
ERROR 136

ewidentnie więc już drugi blok nie zawiera prawidłowych nagłówków i chyba jakaś cząstka kodu "robi" za ten nagłówek:

85C3  STA $c3
9900 STA $??00,Y

nie wiem tylko z jakiego miejca programu jest ten kod, bo ten z drugiego bloku zaczyna się inaczej (może w ogóle nie jest to wygenerowywane z Twojego kodu?!)

W instrukcji QA jest taka adnotacja dotycząca instrukcji ICL:
"Możliwe jest łańcuchowanie plików poprzez użycie w pliku dołączonym kolejnej instrukcji ICL. Powinna to być ostatnia instrukcja, ponieważ po napotkaniu instrukcji END lub końca pliku dołączanego, asembler powraca zawsze do programu w edytorze."

Może jest tu zawarta sugestia, że inna metoda posiłkowania się instrukcją ICL pod QA nie działa w każdej formule OPT (np. generowania do postaci pliku).
Dla mnie wygląda to tak jakby możliwe było użycie w kodzie źródłowym tylko jednej instrukcji ICL, kiedy asemblujemy do pliku wynikowego.
Oczywiście mogę się mylić. Nie sprawdziłem stanu rzeczy zbyt dokładnie, trochę zgaduję.

Kiedyś na forum była możliwość dołączania do postów załączników. Czy jest możliwość dotarcia do takiego załącznika z archiwalnego posta (z roku 2005), czy gdzieś się niechybnie zagubił i niestety nie ma szans dotarcia do niego?

55

(14 odpowiedzi, napisanych Scena - 8bit)

Moze dobrze byloby wiec stworzyc liste, ewentualnie zbior plikow, z ktorych muzyczki nie zostaly jeszcze wyciagniete. To by znacznie moglo przyspieszyc rozrost ASMY. Potrzebny bylaby tylko osoba, ktora odpowiadalaby za wprowadzanie zmian na tej liscie, zaraz po nadeslaniu muzyczki z danej produkcji. Wiem, ze ASMA ma swoja podobna "liste zyczen", ale podejrzewam, ze moglaby ona byc bardziej obszerna i szczegolowa.

56

(14 odpowiedzi, napisanych Scena - 8bit)

Obawiam sie, ze nazbyt optymistycznie oceniasz liczbe mozliwych do zripowania, a nie znajdujacych sie w ASMA, muzyczek. To, ze zbior w ASMA jest tak stosunkowo skromny w porownaniu z innymi kolekcjami muzyczek z 8-bitow, jest konsekwencja zwyczajnie mniejszego zbioru produkcji na atari.
Poza tym, Twoj apel w stosunku do muzykow o dzielenie sie swoja tworczoscia jest, co prawda, zawsze aktualny, ale w okresie od poczatku istnienia ASMA do teraz, podobne apele, czesto bezposrednio kierowane, byly juz podejmowane i znow, obawiam sie, ze nie za wielu jest juz muzykow majacych jeszcze w swoich prywatnych zbiorach muzyczki nieuwzglednione w ASMA.

57

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

W "Energy #2" znajdziesz pakiet z TMC ver. 1.11, o ile spakowane to ARC'em, ale chyba nie. Dokumentacja do programu jest w dwu plikach. W drugim (raczej) z nich znajduje sie opis formatu.

58

(33 odpowiedzi, napisanych Programowanie - 8 bit)

Metoda z zastosowaniem tablic fixup'ow, rozumiem, ze rozwiazuje problem niemozliwosci korzystania z konstrukcji typu:

lda <adres
sta addr
lda >adres
sta addr

Fajnie, tylko dzieje sie to kosztem raczej sporego nakladu dodatkowych danych stanowiacych zawartosc tych tablic. Interesowaloby mnie na ile statystycznie mozna ocenic procentowy udzial tej tablicy w stosunku do calosci ladowanego pliku.
Na szczescie, obszar pamieci zajmowany przez te tablice po ich wykorzystaniu zostaje zwolniony, wiec jest to "problem" tylko dla pamieci zewnetrzenej.

Ale nie o tym zamierzalem pisac.
Jest jeszcze inna kwestia mocno mnie zastanawiajaca.
Wyobrazam sobie ze programy rezydentne mozna podzielic na dwa ich typy. Pierwszy to taki, ktorego zaleta jest to, ze maksymalnie powieksza bufor dla uzytkownika, ale nie ulatwia wpolistnienia innych rezydentrow w pamieci. Drugi natomiast spelnia ten dodatkowy warunek. Kryterium podzialu jest, wedlug mnie, sposob uzywania pamieci na stronie zerowej. Jesli program przywraca zawartosc zastana obszaru strony zerowej jaka dotyka, do stranu sprzed, to znaczy, ze mozna zakwalifikowac go do tej drugiej kategorii.
Tak mysle, ale sa to tylko moje teoretyczne dywagacje, a ciekaw jestem, czy istotnie programy rezydentne pisane dla SDX postepuja w wyzej opisany sposob, czy tez gospodarowanie strona zerowa jest jakos inaczej rozwiazane. A jesli program rezydentny dziala w tle na przerwaniach i korzysta ze strony zerowej, to czy zawsze powinien co ramke przywracac zawartosc uzywanych komorek?

Zastanawiam sie nad zastosowaniem relokacji w programie. W TA byl publikowany kod relokatora, ktory tez w nieco bardziej rozbudowanej formie, znalazl sie wewnatrz programow rezydentnych z pakietu QA.
Wydaje mi sie, z uwagi na jego uniwersalnosc (moze zostac uzyty zarowno pod SDX jak i kazdy inny system operacyjny), ze jest to rozwiazanie najlepsze, ale chcialbym sie upewnic w tym swoim wyborze i zapytac kolegow, czy istanieja jakies istotne przeslanki do wyboru relokacji pod SDX?
Mnie przychodzi na mysl jedynie skrocenie programu o kod relokatora, ktory jest obecny w systemie SDX (nawiasem mowiac, ciekawe na ile jest on zblizony do tego z TA i czy autor QA wzorowal sie w jakims stopniu na tym z SDX).
Natomiast co do oganiczen w tworzeniu kodu relokowanego sadze, ze sprawa ma sie podobnie (jestem swiezo po lekturze artykulu Qcyka z Seriousa na ten temat). Tzn. nie mozna korzystac z wartosci bezwzglednych adresow z obszaru relokowanego w trybie natychmiastowym, bo nie sposob by je relokator wlasciwie przeliczyl na wartosci prawidlowe po relokacji. Stosuje sie wiec w relokatorze z TA w zastepstwie, ale mysle, ze podobnie jest w SDX, z odwolan do tablic adresow przeliczanych przez relokator oddzielnie od kodu programu oraz danych stalych nie podlegajacych relokacji.
Jakie sa inne oganiczenia kodu relokacyjnego i czy sa one identyczne dla obu relokatorow?
To tyle, dziekuje z gory za wszelkie odpowiedzi.

ps. w tej chwili nie mam stalego dostepu do netu, stad bede odzywal sie znacznie rzadziej.

60

(36 odpowiedzi, napisanych Programowanie - 8 bit)

deflater Fox'a jest wydajniejszy jednak kod jego depackera i bufory zajmuja prawie $500 bajtów, tak że RLE jest ponad 50% bardziej opłacalny w moim przypadku

Zapomniales TeBe o Flashpackerze Fox'a. Packer ten potrafi pakowac takze bardzo wydajnie ciagi bajtow powtarzajace sie, a poza tym pakuje wg. powtorzen ciagow (chyba nazywa sie to fachowo slownikowo) rozpatrujac poprzednie 127 bajtow. Ale przyznaje, ze w tej chwili nie pamietam dokladnie jego cech.
W kazdym razie wydaje mi sie, ze moze sie okazac nawet znaczaco wydajniejszy niz ten, a kod procki rozpakowujacej jest tez bardzo krotki. Warto sprawdzic.

61

(36 odpowiedzi, napisanych Programowanie - 8 bit)

umieszcze go w creditsach do Getris'a, albo inna osobe ktora zwyciezy ten mini konkurs

Bardzo sympatyczna perspektywa, ale z drugiej strony moj wklad w ostateczna postac tej procedury, ktora zamiescilem w swoim poscie, jest jednak znikomy. W sumie wykorzystalem tylko walor znacznika C w przechowywaniu istotnej informacji. Nie jest to doprawdy osiagniecie godne szczegolnego podkreslania. Byloby to nawet przesada wg. mnie. Tak wiec mimo milej propozycji, wolalbym poczekac z umieszczenia swojej ksywy pod jakas produkcja do sytuacji wiekszego wkladu wen. Poza tym kazdy dorzucal cos od siebie, a wiadomo, ze osoba ostatnia jest w sytuacji szczegolnie uprzywulowanej, znajac tresc kodu poprzednikow. Ten konkurs z zalozenia nie byl fair. ;) Ale ciesze sie, ze sie paru osobom "pokazalem".

Dodane. TeBe:

 mwa #source-1 adr+1
 mwa #destination q1+1
 jsr depacker
 rts
...
adr     lda $ffff,x

mam jeszcze taka uwage, ze mozna to skrocic zastepujac te czesci kodu tym:

 lda >source-1
 sta adr+2
 ldx <source-1

 mwa #destination q1+1
 jmp depacker
...
adr     lda $ff00,x:

No i bez LDA #0 na poczatku procedury jeszcze.

62

(36 odpowiedzi, napisanych Programowanie - 8 bit)

Punktem wyjscia jest dla mnie procka Pr0be. Nie wiem, czy to dziala, ale mysle, ze powinno.
Dodatkowo zmodyfikowalem zalozenia odnosnie sposobu pakowania (o ile to dozwolone):
teraz najmlodszy bit (0) sygnalizuje, czy nastepujace bajty sa spakowane;
teraz tez zgaszeny bit "sygnalizacyjny" oznacza spakowane, zapalony nie.

loop    jsr get
        beq stop
    lsr @

    tay
q0      jsr get
q1      sta $dead
        inc q1+1
        bne *+5
        inc q1+2

        dey
_bpl    bmi loop
    bcs q0
    bcc q1 !


get     inx
        bne *+5
        inc adr+2

adr   lda $cafe,x

stop    rts

63

(32 odpowiedzi, napisanych Programowanie - 8 bit)

Ja w tej sprawie offtopicznej sie wypowiem.

Mianowicie przyszlo mi na mysl, ze teoretycznie jest mozliwe aby maszyna wyposazona w procesor 65816 wykonywala rozkazy "nielegalne" z repertuaru 6502, oczywiscie za posrednictwem odpowiedniego programu.

Trudnosc polegalaby na wydzieleniu czesci stanowiacej kod rozpatrywanego programu z nielegalami od czesci z pozostalymi danymi. To mozna byloby teoretycznie zrobic automatycznie, co nie jest niemozliwe, ale za to niezmiernie trudne, albo poprzez wskazanie programowi w jakims dodatkowym pliku, czy w innej formie.

Dalej wystarczyloby "przeleciec" kod programu z nielegalami w ich poszukiwaniu i zapamietac wszystkie adresy ich wystapienia wraz z kodem nielegalnego rozkazu, a w to miejsce wstawic instrukcje BRK wywolujaca przerwanie.
Podczas przerwania BRK sprawdzany bylby kod nielegala i wywolywana odpowiednia z procedur symulujacych dzialanie stosownego typu nielegala. Ewentualne argument(y) dla tej symulowanej instrukcji znajdowalyby sie zaraz za instrukcja BRK. Po tym dzialaniu nastepowalby juz tylko powrot do programu z symulowanymi instrukcjami zaraz za ta instrukcja i jej argumentami.
Teoretycznie wiec kazdy niemal program z uzyciem nielegali pozostawiajacy w spokoju przerwanie BRK i odpowiedni skrawek przeznaczonego na ten cel obszaru pamieci programu symulujacego nielegalne instrukcje, mozna byloby wykonywac na maszynie z procesorem 65816, oczywiscie zaznaczajac tutaj ta okolicznosc, ze czas wykonywania niektorych fragmentow kodu bylby znaczaco wolniejszy niz wczesniej.

Oczywiscie zgadzam sie z opiniami, ze nie jest to pomysl wart realizacji. Skadinad wiadomo, ze nielegale 6502 (dowiedzialem sie o nich po przeczytaniu artykulu w "Atari Magazynie", pt. "Nielegalne rozkazy procesora 6502", Draco), sa praktycznie malo uzyteczne i z tego co powszechnie wiadomo, nie sa praktycznie uzywane. To tylka taka teoretyczna proba zmiezenia sie z problemem, ktorego faktycznie nie ma.

64

(14 odpowiedzi, napisanych Zloty)

To chyba jednak nie mnie mial na mysli Mac...
Post zauwazylem dopiero dzis, a byl chyba redagowany zanim odbyla sie wspominana rozmowa na IRC'u (data napisania postu/odpowiedzi pokazuje sie, jak mi sie wydaje, dopiero przy pisaniu odpowiedzi).
Przepraszam... znow mi glupio.

65

(14 odpowiedzi, napisanych Zloty)

"Ja na razie wiem o jednej takiej osobie i jestem gotów opłacić wstęp na party tej osobie. Kolega jest z południa"

Wypada mi skomentowac, poniewaz wszelkie okolicznosci zdaja sie wskazywac, ze wzmiankowanym "kolega z poludnia" jestem wlasnie ja (jesli sie myle goraco przepraszam).

Przede wszystkim serdeczne dzieki za dobre checi. Mysle, ze teoretycznie mogloby sie zdarzyc wlasnie tak, jak to opisuje Mac, ze sa wielkie checi i brak funduszy. Wowczas oczywiscie wyjscie na przeciw takim trudnosciom jest ze wszech miar wielce stosowne i godne polecenia. Mniemam, ze ktos moze z takiej pomocy w wypadku najblizszego zlotu w Ornecie chciec skorzystac, choc moze dosc pozno zostalo to zakomunikowane na forum i ta wiadomosc moze nie dotrzec odpowiednio wczesnie do potencjalnie reflektujacych na taka pomoc.

Niemniej ten przypadek nie do konca odpowiada mojej sytuacji. Tzn. fudnuszy istatnie nie posiadam i wlasnie ten powod wymienilem w rozmowie na kanale IRC'a jako podstawowy, dla ktorego sie na nim nie pojawie. Natomiast istnieje jeszcze sporo innych okolicznosci, ktore w sumie stanowia o fakcie, ze konkretnie moj przyjazd na zlot jest wlasciwie niemozliwy. Przepraszam, ze nie pisze o zadnych konkretach, ale z uwagi na specyfike tych innych okolicznosci, wolalbym przemilczec to w dyskusji publicznej.

Przy okazji pozdrawiam wszystkich wybierajacych sie na party.

66

(18 odpowiedzi, napisanych Programowanie - 8 bit)

Prawdopodobnie (wydaje mi sie, ze gdzies kiedys o tym czytalem) nie jest mozliwe wogole uzyskanie duszkow w tych trybach graficznych.

Proponuje poeksperymentowac z G2F.

67

(7 odpowiedzi, napisanych Fabryka - 8bit)

Wczoraj poprawilem dwa bledy, ktore mogly przyczyniac sie do niedzialania programu w pewnych okolicznosciach. Poprawiona wersje umieszczam w ATR'ce z dosem, plikiem konfiguracyjnym i przykladowa muzyczka.
Postepowanie jest maksymalnie proste:
1. Bootujemy dolaczona ATR'ke.
2. Wpisujemy nazwe programu.
3. Po uruchomieniu programu pojawia sie napis, teraz wpisujemy nazwe muzyczki.

Podsumujmy klawiszologie:
ad.2. "*" <ret>
ad.3. "D:*.TMC" <ret>

Licze, ze komus sie w koncu uda to uruchomic (bo z komentarzy wnosze, ze nikomu sie to jeszcze nie udalo).

68

(20 odpowiedzi, napisanych Scena - 8bit)

Do jednego zdjecia dotrzesz stad: http://atariarea.krap.pl/forum/viewtopic.php?t=2394

69

(7 odpowiedzi, napisanych Fabryka - 8bit)

po prostu pakowanie w moim przypadku (i nie tylko) znacznie spowalnia ładowanie, a przy HDD taki oszczędności "miejsca" nie mają najmniejszego znaczenia - plus do tego; jeśli dobrze zrozumiałem - "specjalna" metoda przygotowania plików....

Nie wiem, czy dobrze sie rozumiemy...
Pakowanie robi sie przygotowujac zbior muzyczek tylko raz. Program tylko rozpakowywuje, co nie jest wcale tak czasochlonne.
Z punktu widzenia posiadacza HDD to rozwiazanie moze jest calkowicie zbedne, ale jest to rozwiazanie mysle interesujace dla posiadaczy jedynie stacji dyskietek i dodatkowej pamieci w kompie.
Metoda przygotowania muzyczek polega dokladnie na tym, ze relokuje sie muzyczki pod adres $8000, pozbawia naglowka, pakuje i nadaje rozszerzenie DEF. To wszystko, co robi sie z muzyczka. Niemal rownie proste jest sporzadzenie pliku opisujacego zbior muzyczek, wiec jest to calkiem "do przejscia" zadanie. Poza tym mozna odsluchiwac normalne "nieprzygotowane" muzyczki, tyle tylko, ze nie w playliscie.

Pin, dzieki, ze jako jedyna osoba z forum cokolwiek interesujesz sie tym, skromnym co prawda, projektem. Przyznam, ze liczylem na wiekszy odzew. Na jakies glosy krytyczne, sugestie. A mam wrazenie, ze albo jest to zupelnie nietrafiony w gusta odbiorcow program, albo nie bardzo udaje sie go z pozytywnym skutkiem uruchomic tym, ktorzy to sciagneli (obsluga nie nalezy do specjalnie wygodnych, ale tez nie powinna byc az tak trudna do opanowania).

70

(7 odpowiedzi, napisanych Fabryka - 8bit)

czy to koniecznośc ??

W tej wersji tak.
Jesli bedzie zainteresowanie opisze format pliku "LISTING.TMP". Packer Foxa (deflater.exe) na pc uzyty do spakowania muzyczek i tego pliku mozna znalezc w syzygy #8.

fajnie, że powstaje nowy soft, tylko dlaczego dwie osoby piszą to samo..

Zainteresowalem sie tematem przewijania muzyczek TMC pod wplywem dyskusji na tym forum przeszlo dwa lata temu. Niedlugo potem powstal poszerzony o funkcje przewijania player, ktory zaczalem bardzo powoli poprawiac z bledow wraz z opracowywaniem tego programu.
Epi zreszta pisze cos znacznie bardziej zlozonego z tego co slychac.

[ Dodano: Pią Maj 27, 2005 8:53 pm ]
Zapomnialem dopisac, ze pod SDX trzeba uruchamiac z komenda X.
W ATR'ce VOS znajduje sie starsza wersja programu, ktora znalazla sie tam niepotrzebnie i lepiej z niej nie korzystac (a najlepiej ja usunac).

71

(7 odpowiedzi, napisanych Fabryka - 8bit)

Kolejny program odtwarzajacy moduly TMC w wersji 1.11. Jest dosc specyficzny, poniewaz posiada mozliwosc przewijania muzyczek w dowolne miejsce utworu. Pozwala takze "pracowac" na "zbiorach muzyczek", ktore to stanowia grupe do 63 muzyczek w jednym katalogu lub na dysku. Opisane sa one w specjalnym pliku "LISTING.TMP", ktory zawiera informacje na temat ich pelnych nazw, dat, autorow, a takze moze on zawierac "domyslna" playliste i tytul zbioru. Muzyczki w zbiorze wystepuja w postaci spakowanych plikow.
Program korzysta takze z pamieci dodatkowej, o ile uzytkownik nie zabroni mu tego odpowiednio preparujac plik konfiguracyjny.

W zalaczniku zawarty jest program i plik konfiguracyjny (ktory wylacza wszystkie mozliwe banki pamieci dodatkowej z mozliwosci uzycia ich przez program), ktore nalezy umiescic w jednym miejscu, oraz ATR'ki ze zbiorami muzyczek (GSL i VOS), ktorych lokalizacja jest niezalezna od programu. Ich zawartosc mozna sprobowac przeniesc (najlepiej w calosci) na twardy dysk, powinno dzialac z programem pod kontrola odpowiedniego dosu. SDX pomija plik konfiguracyjny, poniewaz wolne banki pamieci pod tym dosem moga byc znane w inny sposob programowi, z czego ten korzysta.
Poza tym w zalaczniku znajduje sie jeszcze opis klawiszologii programu.

Wyglad programu pozostawia sporo do zyczenia. Wszystko wepchane jest pod ekran systemowy (brak wlasnej dlisty), muzyczki musza byc krotkie na tyle by zajmowaly nie wiecej niz $3c20 ($bc20-$8000).

Player jest Jaskiera, depaker do spakowanych muzyczek, Foxa. Przysluzyli sie takze udzielajac porad: Lizard i Draco.

najprawdopodobniej całość będzie wyglądać tak, że zostaną napisane przez autora najbardziej podstawowe plugi, a reszte będzie mógł dopasać każdy wg. szczegółowo opracowanych wskazówek

To jesli juz bedzie dokladnie wiadomo na temat tych szczegolowych wskazowek, to niech Epi poda to moze gdzies na forum (wraz z formatami, ktorych nie ma i ktore chcialby zeby ktos dorobil).

czy nie lepiej np. kosztem supportu dla SAP'a zrezygnować z przebudowy podstawy programu (o ile w tym formacie tkwił problem), tym samym publikując sposób pisania plug'ins.

Mysle, ze to bardzo rozsadny pomysl, jesli tylko SAPy stanowia problem. Na SAPy zlokalizowane w obszarze np. ROMu i rejestrow sprzetowych niewiele bedzie mozna i tak poradzic. Przeciez nie ma to wiekszego znaczenia, czy wszystkie SAPy bedzie mozna odtworzyc na NEOPlayerze.

73

(47 odpowiedzi, napisanych Fabryka - 8bit)

Nie znalazlem w wykaznie zmian informacji o przerobce umozliwiajacej zawsze poprawne rozpoznanie dostepnej pamieci pod SDX. Slyszalem, ze Lizard dokonal jakis zmian w kodzie SDX, ktore to zapewniaja. Polegac to ma na tworzeniu czesci tablicy T_ w obszarze grup bankow w zaleznosci od typu rozszerzenia.
Obecnie, z tego co sie orientuje, tablica T_ w tej czesci, ma na stale powstawiane wartosci.
Problemem jest np. rozpoznanie wszystkich bankow w rozszerzeniu 320 kb typu Compy.

Można wykorzystać nieużywany skok pod adresem $7EB dla procedury fsymbol, która będzie zwracała adres podanego symbolu.

Dotyczy to takze tablicy T_? Moze przydalby sie jeszcze spis symboli, ktorych adresy procedura jest w stanie oddac.

74

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

6. Kazdy procek ma swoja skladnie czy sa jakies standardy?

Zdecydowanie jest standard, jesli masz na mysli skladnie rozkazow wewnetrzych procesora (z drobnymi odchyleniami w obrebie glownie pseudorozkazow oraz adresowania na akumulatorze - glownym rejestrze procesora: @ lub A - w zaleznosci od asemblera jakiego chcesz uzywac; chociaz obecne crosasemblery na pc, akceptuja raczej wszystkie mozliwe skladnie).
Jednym slowem, na atari xe to zdecydowanie nie jest problem.

Wspominales tez o atarkach taktowanych 14Mhz. W chwili obecnej takich atarek praktycznie jeszcze nie ma w obiegu (sa to poki co dzialajace prototypy). Niezaleznie od tego faktu, siedzi w takich rozbudowanych kompach inny procesor niz w kazdej "normalnej" atarce (takze tej, ktora posiadasz). Jest to procesor 65c816 zgodny z 6502, co oznacza, ze wszystkie rozkazy dostepne w 6502 sa takze tutaj (skladnia w asemblerach jemu dedykowanych nie ulega zmianie), dodatkowo jednak dochodza nowe rozkazy i tryby adresowania, ktore oczywiscie maja takze ustalona skladnie.

75

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

Wyszlo mi cos takiego:

 org $2000
byte equ $fd
addr equ $fe

 lda $344
 sta addr
 lda $345
 sta addr+1
 ldx #0
 ldy #0

 lda (addr),y
 cmp #'D'
 bne *+5
 iny
 lda (addr),y
 cmp #'1'
 bcc bb1
 cmp #'9'+1
 bcs bb1
 sta byte
 iny
 lda (addr),y
 cmp #':'
 beq bb2
 dey
bb1 lda $301
 ora #$30
 sta byte
 tya
* beq bb2    ;MyDos 
 bne *+11    ;MyDos
 lda $700    ;MyDos
 cmp #'M'    ;MyDos
 bne bb2    ;MyDos
 beq bb3-2 !    ;MyDos
 lda (addr),y
 cmp #':'
 beq bb3    ;'D:'
 dey        ;=0
bb2 lda byte    ;'Dn:'
 sta nazwa,x
 inx
 lda #':'

bb3 sta nazwa,x
 cmp #':'
 beq bb4
 cmp #'>'
 beq bb4
 cmp #'<'
; beq bb4
; cmp #'/'
 bne *+4
bb4 stx byte
 inx
 iny
 lda (addr),y
 bmi *+4
 bne bb3 * MyDos zamienia znak konca linii na 0 (chyba)

 ldy #$ff
 sty $2fc * wiersz pomocniczy
 ldx byte

bb5 inx
 iny
 lda npliku,y
 sta nazwa,x
 bpl bb5

* koniec linii wlasciwego kodu procedury
* dalej - przyklad wykorzystania
pokaz sta $349
 ldx #0
 lda <nazwa-1
 sta $344
 lda >nazwa-1
 sta $345
 lda #9
 sta $342
 jsr $e456
 lda $2fc
 bmi *-3
 jmp (10)

npliku dta c'xxxx.cfg',b($9b)
 dta c'D'
nazwa equ *
 org $2e0
 dta a($2000)

Listing nadaje sie do skopiowania do pliku tekstowego i asemblacji pod xasm.
Wiersze zaznaczone 'MyDos' mozna ewentualnie usunac (w jednym wypadku trzeba odremwac). Jednak ich obecnosc zapewnia, ze plik konfiguracyjny bedzie szukany we wlasciwym katalogu, jesli wczytujac program posluzylismy sie sama tylko nazwa pliku bez identyfikatora 'D:'.
Inne dosy nie maja zapewnionej takiej odrebnej sciezki postepowania, stad zawsze podajac tylko sama nazwe pliku (ewentualnie podajac jeszcze wczesniej podkatalogi), dodawane jest domyslnie 'Dn:', gdzie n jest pobierane z $301.
Z 'n:', czy 'Dn:' na poczatku wprowadzonej sciezki, uzyskujemy 'Dn'. Podkatalogi sa oczywiscie kopiowane.

Nie przetestowalem tego zbyt dobrze (takze dlatego, ze nie znam  wyczerpujaco wszelkich mozliwosci wczytywania plikow pod roznymi dosami). Jesli ktos zauwazylby bledne dzialanie procedury, prosze o sygnal.

Lizard, zasadniczo jest to zgodne z Twoimi wytycznymi poza pewnym szczeglem technicznym (latwiej mi bylo "czytac" sciezke od przodu, niz poslugujac sie $348 robic to odwrotnie).