26

Robi się atmosfera jak przy DOBRYM SERZE, chyba nie opuszczę żadnego odcinka....
A z wykształcenie informatycznym jest jak z inteligencją... Każdy ją ma, a człowiek inteligentny o to nie pyta.

27

Zenon/Dial: Nie wiem jak inni, ale ja muszę Cię rozczarować: nie zwykłem uczestniczyć w przepychankach.

28

jellonek napisał/a:

nie pisalem jak masz cokolwiek robic - pisalem jak to jest gdzie indziej realizowane i dlaczego...
tak, czy inaczej - fantazje jak widac masz - pytanie czy cos poza nia...

Różnica między fantazją, a wiedzą jest jak pomiędzy rosnącą kapustą, a przepisem na bigos.

Rzeczywiście problem czy mam wystarczająco dużo chęci.

Powiedzmy, że byłby to projekt największy z tych, które robiłem do tej pory (większe nie robiłem w assemblerze więc brak porównania jakiegokolwiek).
Dla 6502 wręcz gigantyczny (tych kilkanaście lat temu raczej sprawdzałem możliwości realizacyjne,
a nie tworzyłem programy).

Moje podejście: trzymać się standardów chyba, że łatwiej/korzystniej jest utworzyć nowe w oparciu o istniejącą wiedzę.

W przypadku Atari i aktualnie istniejących dla niego OS-ów według mnie korzystniej jest utworzyć coś nowego od 0 z opcją kompatybilności niż próbować binarnie patchować stare rzeczy, a źródeł jak widać do większości co lepszych rzeczy na Atari brak.

--
1985? - DA'Fuzz, 1987? - Meritum, 1989? - Atari 130XE, 1992 - PC/AT, 2008 - Atari 130XE + Meritum

29 Ostatnio edytowany przez jellonek (2008-04-16 13:12:28)

ArchieIl napisał/a:

Prosiłbym jednak o odzywanie się ludzi mających jakąś wiedzę i rozumiejących temat, a nie chcących się douczać.

hahaha.
mam mala propozycje na starcie. przejdzmy na ty...

ArchieIl napisał/a:

część kompilatorów końcową optymalizację robi w assemblerze lub oddzielnym narzędziu optymalizującym kod maszynowy

mozesz podac przyklady kompilatorow robiacych gdzie "optymalizacje robi assembler"? mozesz podac przyklad "oddzielnego narzedzia optymalizujacego kod maszynowy"? moze podasz swoja definicje kodu maszynowego - ktory najwyrazniej mylisz z kodem mnemonicznym...

rzeczywiscie wyglada ze masz wyksztalcenie informatyczne (nie wiem, nie sprawdzalem) - czysto teoretyczne. ciekawi mnie rowniez, co rozumiesz przez "wyksztalcenie informatyczne" - ukierunkowanie na programowanie, na projektowanie oprogramowania, na przetwarzanie danych, na systemy skladowania danych, na transmisje danych, a moze na nauczanie informatyki w szkole :) ? kazde z tych zagadnien jest "informatycznym" - lezy w tym samym worku bardzo glupiego okreslenia "ynformatyk" - okreslenia nic nie mowiacego o tym czym sie zajmujesz, poza tym, ze ma to cos wspolnego z szeroko pojeta informatyka.

zenon: tez mi sie zaczyna podobac - prawie jak dyskusja niegdys z tdc :]

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

30

jellonek napisał/a:
ArchieIl napisał/a:

Prosiłbym jednak o odzywanie się ludzi mających jakąś wiedzę i rozumiejących temat, a nie chcących się douczać.

hahaha.
mam mala propozycje na starcie. przejdzmy na ty...

nie ma sprawy ty. ;-)

jellonek napisał/a:
ArchieIl napisał/a:

część kompilatorów końcową optymalizację robi w assemblerze lub oddzielnym narzędziu optymalizującym kod maszynowy

mozesz podac przyklady kompilatorow robiacych gdzie "optymalizacje robi assembler"? mozesz podac przyklad "oddzielnego narzedzia optymalizujacego kod maszynowy"? moze podasz swoja definicje kodu maszynowego - ktory najwyrazniej mylisz z kodem mnemonicznym...

Z maszynowym przesadziłem.
Maszynowy optymalizują sobie same procesory ;-) i emulatory co niektóre ;-).

Przykład zmiany kodu w zależności od opcji podałem.
Szukać optymalizującego w kompilatorach nie planuję bo mi to nie potrzebne (as86 wystarcza jako przykład), a u siebie mam gcc, w którym as chyba nic w tym względzie nie robi (kompilator tworząc kod wynikowy wyręcza assembler w tej sprawie).

Jeśli ktoś tutaj jest zainteresowany to w googlach pewnikiem coś znajdzie.

--
1985? - DA'Fuzz, 1987? - Meritum, 1989? - Atari 130XE, 1992 - PC/AT, 2008 - Atari 130XE + Meritum

31

to "przejdzmy na ty" bylo swoistego rodzaju przenosnia - przegooglaj to forum (tak, uzywajac googli, a nie wbudowanej wyszukiwarki), a byc moze zrozumiesz o co w tym zwrocie chodzi ;)

co do optymalizacji - nie znam kompilatora ktory by "proces optymalizacji" przenosil na assembler - jesli jest ten kompilator na tyle prosty, ze sam tego nie wykonuje - przekazuje to do odrebnego programu bedacego zazwyczaj bardzo prostym i bardzo ograniczonym optymalizerem. zazwyczaj - ale nie zawsze.

zachowales sie poprostu bardzo nieladnie proszac o przytoczenie przykladu assemblera optymalizujacego, po czym, na zart osoby o duzej wiedzy praktycznej w tej kwestii, jak i cieszacej sie tu sporym zasluzonym szacunkiem - zarzuciles mu brak wiedzy (ktory sam prezentujesz).
btw. x86 i "optymalizacja kodu skokow" to calkiem odrebne zagadnienie ;)

tebe: inna mozliwosc optymalizacji skokow - wyszukiwanie ewentualnego pewnego warunku, po czym zastepowanie jmp skokiem warunkowym (przy tym spelnionym warunku), jesli ten skok ma sie odbywac w obrebie zasiegu skoku warunkowego. inna sprawa ze w/g mnie taka optymalizacja powinna sie odbywac nie automatycznie, a conajwyzej tego typu propozycja mogla by byc programiscie sugerowana...

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

32 Ostatnio edytowany przez mikey (2008-04-16 14:10:41)

Nie no, podstawowa optymalizacje moglby asembler robic, nie widze przeciwskazan.
Dajesz opcje -inline-orphaned-subroutines na przyklad, i kazda podprocka, ktora jest wywolywana tylko raz przez jsr jest inlinowana w to miejsce. Przykladow takich drobnych optymalizacji mozna by jeszcze kilka wymyslic. oczywiscie nie dzialo by sie to 'samo' tylko na wyrazne zyczenie programisty.
No i oczywiscie asembler sie troche komplikuje. Zeby bylo na temat to nie znam na atari takiego asemblera ;)

33

ok.

Niech będzie. Większość sytuacji optymalizacji kodu assemblera działa na poziomie odrębnego programu pracującego z listingiem, a nie assemblera.

Przykład z as86 w nasm wygląda następująco:

 -O number
     optimize branch offsets (-O0 disables, default).

optimize po polsku to optymalizacja

Naprawdę śmieszą mnie teksty assembler musi zachowywać się tak jak programista tego oczekuje w odniesieniu do mojego pytania o optymalizację podprocedur chociażby dlatego, że tego -O dla assemblera z zaświatów nikt nie ześle, a po to są dyrektywy assemblera decydujące jak ma tworzyć kod żeby wręcz do konkretnych procedur można było takie "optymalizacje" odnosić.

Doświadczenie tu obecnych jest dosyć specyficzne i nie mam zamiaru go negować. Mimo wszystko nie rozmawiamy jednak tutaj o ilości cykli dla DLI interrupt tylko o dosyć zaawansowanym i teoretycznie silnie w wielu miejscach opracowanym temacie jakim jest OS i mechanizmy, które dobry OS powinien wspierać i realizować. Rozmawiamy o praktycznych możliwościach realizacyjnych takiego "nowoczesnego" OS dla Atari w sposób, który pozwoli go wykorzystać praktycznie, a nie jako pokaz, że niby na 8bit się da. Win XP na Pentium I pewnikiem też się da uruchomić ;-) (akurat tego nie sprawdzałem).

Wiele "optymalizacji" może być przerzuconych na assembler (np. wyrównywanie bajtów dla silniejszych procesorów). W sztuczkach z atariki widziałem np. nop 2 bajtowy, którego wstawianie można przerzucić na assembler w zależności od użytej opcji co uogólnia i upraszcza kod. Akurat ten przykład z nop 2 bajtowym do makra wrzucić można łatwo.
Moja propozycja z inline procedur tak prosta w przypadku modyfikowanego kodu w realizacji nie jest i nie widze przeciwskazań zrobienie jej jako automatycznie realizowalnej przez assembler.

Sens jest podwójny takiego assemblera. Mógłby np. tworzyć przenośny kod pomiędzy różnymi wersjami 6502, a nawet nie wszystkie Atarki mają owego 2 bajtowego "NOP-a" (dokładniej 3 bajtowego, 2 bajty argumentu).

--
1985? - DA'Fuzz, 1987? - Meritum, 1989? - Atari 130XE, 1992 - PC/AT, 2008 - Atari 130XE + Meritum

34

Jellonek: właśnie o to chodzi. Asembler jeśli już, to powinien udostępniać przełącznik, po użyciu którego drukowane byłyby sugestie zmian w kodzie w miejscach, gdzie uważą, że można zrobić coś lepiej. Nic nie powinno być robione z automatu, bo asembler nie wie, czy czegoś nie zrobiłem celowo (ot chociażby, aby wyrównać coś do bajtu, dodać parę cykli, albo aby później zastosować automodyfikację). Takie automaty tylko generują trudne do wykrycia błędy i promują uwstecznianie się ("nie musisz się starać, ja wszystko poprawię za Ciebie").

35 Ostatnio edytowany przez drac030 (2008-04-16 14:42:26)

Co do optymalizacji na poziomie asemblera, to zwykły dwuprzebiegowy asembler będzie umiał optymalizowac backward references, np. skoki, bez większego trudu. Robi to np. asembler Hisoftu na ST zatytułowany GenST (oczywiście tylko na wyraźne życzenie programisty). Robi to też mój (dotąd nieopublikowany) asemblerek dla 65C816 (też na życzenie). Dla 6502 może byłoby np. optymalizować w ten sposób pseudorozkazy w rodzaju JEQ, tzn. jeśli zasięg skoku na to pozwala, podmieniać to na BEQ. O ile się nie mylę, dla takiej optymalizacji skoków w przód trzeba zrobić co najmniej trzeci przebieg.

ArchieIl napisał/a:

* SpartaDOS nie posiada komunikacji międzyprocesowej

Nie dziwne, bo to jest system JEDNOZADANIOWY, nie ma w nim w ogóle niczego takiego, jak "procesy", więc i komunikacji międzyprocesowej również nie ma, gdyż nie ma się komunikowac co z czym.

Jeśli zaś chodzi o proste "pipki" typu DIR | MORE z poziomu command.com, to owszem, są w planach, aczkolwiek pewnie jeszcze nie w wersji 4.42.

* brak jest zarządzania pamięcią nie licząc podstawowej relokacji programów i tego co jest od zawsze w ROM/MEMLO/MEMHI

Rozdział "Gospodarka pamięcią" przeczytałeś nieuważnie lub bez zrozumienia - bo i od kiedy to "od zawsze w ROM" są mechanizmy przydziału pamięci rozszerzenia?

* relokacja jest pełna/2bajty, a według mnie w zupełności wystarczy połowiczna, a co za tym idzie łatwiej, prościej, kompatybilniej.

Co to jest "połowiczna relokacja" i jak ona polepsza kompatybilność?

* rzeczywiście biblioteki są dynamicznie ładowane

Nie są, tylko teoretycznie mogą być. Co do "ograniczeń w użyciu JMP", doprawdy, chciałbym wiedzieć, w którym miejscu tego manuala jest napisane coś, co sugeruje, że biblioteka SDX nie może się posługiwać akurat tym rozkazem, i dlaczego...

KMK
? HEX$(6670358)

36

drac030 napisał/a:

* brak jest zarządzania pamięcią nie licząc podstawowej relokacji programów i tego co jest od zawsze w ROM/MEMLO/MEMHI

Rozdział "Gospodarka pamięcią" przeczytałeś nieuważnie lub bez zrozumienia - bo i od kiedy to "od zawsze w ROM" są mechanizmy przydziału pamięci rozszerzenia?

Przeczytałem uważniej ale zarządzanie na zasadzie przydziału pełnych 16K potraktowałem jako brak zarządzania.
Tak jest to już coś, a w systemie jednozadaniowym nawet wystarczające coś.
Tylko, że to trochę nie ten poziom zarządzania pamięcią. Może się mylę ale nie pamiętam np. przełączania banków przez SDX-a w zależności od potrzeb programu.

drac030 napisał/a:

* relokacja jest pełna/2bajty, a według mnie w zupełności wystarczy połowiczna, a co za tym idzie łatwiej, prościej, kompatybilniej.

Co to jest "połowiczna relokacja" i jak ona polepsza kompatybilność?

Jest o tym w przykładach.
Połowiczna zmienia tylko bardziej znaczący bajt i pozwala na rzeczy typu:

  LDA #<MEM
  ....
  LDA #>MEM
drac030 napisał/a:

* rzeczywiście biblioteki są dynamicznie ładowane

Nie są, tylko teoretycznie mogą być. Co do "ograniczeń w użyciu JMP", doprawdy, chciałbym wiedzieć, w którym miejscu tego manuala jest napisane coś, co sugeruje, że biblioteka SDX nie może się posługiwać akurat tym rozkazem, i dlaczego...

Jeśli dobrze zrozumiałem biblioteka jest linkowana z programem i JMP relokowane względem miejsca dołączenia czyli albo wewnątrz biblioteki można JMP używać albo do adresów ogólnie znanych. Nie można zrobić JMP do innej biblioteki, programu itp.
Mogę się tutaj mylić bo bazuję na zgrubnym opisie z PDF-a, a nie źródłach.

--
1985? - DA'Fuzz, 1987? - Meritum, 1989? - Atari 130XE, 1992 - PC/AT, 2008 - Atari 130XE + Meritum

37

ArchieIl napisał/a:

Przeczytałem uważniej ale zarządzanie na zasadzie przydziału pełnych 16K potraktowałem jako brak zarządzania.

A to duży błąd. Jeśli mechanizm pozwala na uniknięcie przydziału tego samego banku dwóm programom, oraz pozwala na uzyskane informacji, które banki są aktualnie wolne, a które nie, to jest to już o niebo więcej niż "brak".

Tylko, że to trochę nie ten poziom zarządzania pamięcią.

A jaki poziom byś chciał?

Może się mylę ale nie pamiętam np. przełączania banków przez SDX-a w zależności od potrzeb programu.

To zbędna komplikacja. Program najlepiej sam sobie będzie przełączał banki w zależności od własnych potrzeb, natomiast system wystarczy, jeśli się w tym nie pogubi i nie pokaszani układu banków ustawionego przez program.

Co to jest "połowiczna relokacja" i jak ona polepsza kompatybilność?

Jest o tym w przykładach.
Połowiczna zmienia tylko bardziej znaczący bajt i pozwala na rzeczy typu:

  LDA #<MEM
  ....
  LDA #>MEM

Aha. To pod hasłem "kompatybilność" masz na myśli możliwość użycia takiej konstrukcji w źródle. Jednak żeby to uzyskać, niekoniecznie trzeba relokować z dokładnością do strony (aczkolwiek tak jest najłatwiej): http://atariki.krap.pl/index.php/ACX

Jeśli dobrze zrozumiałem biblioteka jest linkowana z programem i JMP relokowane względem miejsca dołączenia czyli albo wewnątrz biblioteki można JMP używać albo do adresów ogólnie znanych. Nie można zrobić JMP do innej biblioteki, programu itp.
Mogę się tutaj mylić bo bazuję na zgrubnym opisie z PDF-a, a nie źródłach.

Mylisz się, bo, jak nadmieniłem nieuważnie przeczytałeś manual. Gdybyś go przeczytał uważnie, to byś zauważył, że na str. 12 jest napisane "System dla własnych potrzeb zajmuje pamięć jak nastepuje: ... 3) biblioteka systemowa w module ROM".

KMK
? HEX$(6670358)

38

drac030 napisał/a:
ArchieIl napisał/a:

Tylko, że to trochę nie ten poziom zarządzania pamięcią

A jaki poziom byś chciał?

Od SDX? Nic bym nie chciał.
Jako system jednozadaniowy wystarczy mu aktualny sposób działania i planowane rozszerzenia.

drac030 napisał/a:

Co to jest "połowiczna relokacja" i jak ona polepsza kompatybilność?

Jest o tym w przykładach.
Połowiczna zmienia tylko bardziej znaczący bajt i pozwala na rzeczy typu:

  LDA #<MEM
  ....
  LDA #>MEM

Aha. To pod hasłem "kompatybilność" masz na myśli możliwość użycia takiej konstrukcji w źródle. Jednak żeby to uzyskać, niekoniecznie trzeba relokować z dokładnością do strony (aczkolwiek tak jest najłatwiej): http://atariki.krap.pl/index.php/ACX

Myślisz, że nie wiem, że teoretycznie można to zrobić i dla pełnego? ;-)
Ja mówię jak zostało zrobione i jak dla mojego projektu jest prościej i lepiej zrobić.

JMP pominę bo mówiąc szczerze nie zrozumiałem wyjaśnienia.

Za to zadam pytanie do fachowca, które od strony praktycznej słabo znam.
Jak wygląda możliwość wykonywania niezależnego kodu podczas odczytu/zapisu na dysk, dyskietkę?

Wiem, że po SIO transfery idą bez przerwań z pollingiem standardowo, a chciałbym jak najwięcej zrównoleglić, a wręcz zakładam relokację programów w trakcie ich ładowania, a nie po załadowaniu.

--
1985? - DA'Fuzz, 1987? - Meritum, 1989? - Atari 130XE, 1992 - PC/AT, 2008 - Atari 130XE + Meritum

39

Myślisz, że nie wiem, że teoretycznie można to zrobić i dla pełnego? ;-)
Ja mówię jak zostało zrobione i jak dla mojego projektu jest prościej i lepiej zrobić.

Twój główny problem chyba polega na nieuważnym czytaniu.[1]

JMP pominę bo mówiąc szczerze nie zrozumiałem wyjaśnienia.

Zadam dodatkowe pytanie pomocnicze: czy student widział kiedykolwiek SpartaDOS X w działaniu, albo nawet może miał możliwość interakcji z tym DOS-em przez minimum pół godziny?

Wiem, że po SIO transfery idą bez przerwań z pollingiem standardowo

Twój drugi problem polega na tym, że używasz wyrazu "wiem" w sensie "nie mam o tym pojęcia, ale wydaje mi się".

[1] Odnoszę się w ten sposób do wyrażenia "teoretycznie można" oraz "ja mówię, jak to zostało zrobione", które świadczą, że nie doczytałeś hasła "ACX" nawet do trzeciego zdania.

KMK
? HEX$(6670358)

40

ArchieIl napisał/a:

optimize po polsku to optymalizacja

Dzięki, ale jesteś wykształcony! Pozazdrościć! :)

What can be asserted without proof can be dismissed without proof.

41 Ostatnio edytowany przez ArchieIl (2008-04-16 17:27:57)

drac030 napisał/a:

Wiem, że po SIO transfery idą bez przerwań z pollingiem standardowo

Twój drugi problem polega na tym, że używasz wyrazu "wiem" w sensie "nie mam o tym pojęcia, ale wydaje mi się".

a) Opieram się na zdaniu: brak było urządzeń korzystających z linii interrupt w SIO (mowa o oryginalnych produkowanych przez Atari). W tej chwili nie znalazłem źródła tej informacji.
b) Znalazłem to: http://tajemnice.atari8.info/ksiazki/pw … egowa.html i z tego wynika, że oryginalne procedury I/O używały polling.
c) Z opisu tutaj: http://atariki.krap.pl/index.php/SIO również nic nie wskazuje na to żeby linia interrupt w SIO była używana. Nie pamiętam czy w schemacie SIO2PC interrupt jest do czegoś używany.

Dodatkowo znalazłem informacje, że w ROM istniały procedury SERIN, SEROUT czy jakoś tak, które miały obsługiwać przerwania od urządzeń ale nie znalazłem dokładniejszych informacji o tym jakie urządzenia z tego korzystały.

Nie znalazłem również źródeł szybkich I/O, które są używane w nowych "OS-ach" Atarowskich. Nie wiem jak w nich jest to zorganizowane. Trudno mi też powiedzieć jak wygląda sytuacja po instalacji turbo w stacjach i czy stacje nie produkowane przez Atari również nie obsługiwały linii interrupt w SIO.

Oczywiście pamięć bywa zawodna, a ja informację o interrupt w SIO znalazłem w opisie sprzętu, a nie opisu procedur SIO w ROM.

--
1985? - DA'Fuzz, 1987? - Meritum, 1989? - Atari 130XE, 1992 - PC/AT, 2008 - Atari 130XE + Meritum

42

draco napisał/a:

Dla 6502 może byłoby np. optymalizować w ten sposób pseudorozkazy w rodzaju JEQ, tzn. jeśli zasięg skoku na to pozwala, podmieniać to na BEQ.

ZTCP to MADS zamienia JEQ -> BEQ (i podobne) jeśli się okaże, że skok BEQ wystarczy.

ArchieIl napisał/a:

Doświadczenie tu obecnych jest dosyć specyficzne i nie mam zamiaru go negować.

A przepraszam, że ośmielę się zapytać - jakie Szanowny Kolega ma doświadczenie, że od razu zabiera się za pisanie tak niebagatelnej rzeczy, jaką z pewnością jest nowy system operacyjny?

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

43

dely napisał/a:

A przepraszam, że ośmielę się zapytać - jakie Szanowny Kolega ma doświadczenie, że od razu zabiera się za pisanie tak niebagatelnej rzeczy, jaką z pewnością jest nowy system operacyjny?

Wytknij mi jakiś błąd merytoryczny, a zacznę się tłumaczyć z doświadczenia jakie posiadam. :-)

Zabieram się na dziś za pisanie loadera, a nie OS-u.
OS ledwie projektuję, a od projektu do pisania może być bardzo daleka droga.

--
1985? - DA'Fuzz, 1987? - Meritum, 1989? - Atari 130XE, 1992 - PC/AT, 2008 - Atari 130XE + Meritum

44

Hmmm..... bardzo pewny jesteś siebie i swoich możliwości. A nie lepiej okazać trochę pokory i nie mądrzyć? Tu na forum uzyskasz pomoc ale nie na zasadach które chcesz narzucić.

45 Ostatnio edytowany przez ArchieIl (2008-04-16 19:13:22)

A zaboli kogoś jeśli mi nie wyjdzie? Lub raczej jeśli mi chęci nie stanie?

Wiesz... dla was guru to np. Drac030 ale on mi już wielokrotnie udowodnił, że nie rozumie nomenklatury jaka powstała przez te X lat od momentu gdy Atari 8bit przestało być produkowane.

Tak było kiedyś z DMA/bus masteringiem.

Tak jest teraz z WE/WY sterowanym przerwaniami, a nie z użyciem polling.

Może rzeczywiście czegoś nie wiem, zapomniałem. Informację zbieram po kawałeczku przez całkiem długi okres czasu więc coś mogło mi się zatrzeć w pamięci...
Stawiam jednak, że dla Drac030 WE/WY po przerwaniach to polling z opóźnieniami odczytu portów sterowanym przerwaniami zegarowymi.

Przynajmniej z procedur SIO jakie znalazłem wynika, że timeouty i opóźnienia są z użyciem przerwań timerów POKEY ustalane ale to nie jest WE/WY sterowane przerwaniami. Urządzenia w Atari według wszelkich szans nawet linii interrupt w SIO nie mają podłączonej do czegokolwiek.

Pomijając. Zbaczamy z tematu.
To co znalazłem potwierdziło jednak, że powinno udać się asynchroniczne WE/WY zrobić nawet jeśli mam rację, że "normalne" urządzenia w Atari korzystają wyłącznie z polling.

MM: Proszę przeczytać regulamin, szczególnie w punktach dot. poprawnego cytowania. Timer: 24h. Dziękuję za uwagę.

--
1985? - DA'Fuzz, 1987? - Meritum, 1989? - Atari 130XE, 1992 - PC/AT, 2008 - Atari 130XE + Meritum

46

dely napisał/a:

ZTCP to MADS zamienia JEQ -> BEQ (i podobne) jeśli się okaże, że skok BEQ wystarczy.

realizuje to także HardCore Assembler Epi-ego

taki osobnik jak Drac030 napisał OS-a dla 65816 (DracOS) i zanim go napisał na pewno nie zadawał pytania na jakimkolwiek forum pt. "OS dla Atari. Czy jest sens?" po prostu go napisał, więc jeśli Ty ArchieIl chcesz napisać nowy OS, czujesz się na siłach, masz taką potrzebę wykazania się nie tylko w gębie to PROSZĘ PISZ TEGO OS-a
albo zmień z powrotem ksywkę na Casper (Casper też pisał super noweczesnego OS-a i też rozpisywał się jak Ty, tak że wybacz że jesteś do niego podobny w swoich działaniach)

wybacz ArchieIl że nie przyjęliśmy Cię z otwartymi ramionami, nie mieliśmy świadomości jak wielką osobą świata projektów papierowych jesteś, z Twoimi 20 postami na koncie objawiłeś się Nam jak Mesjasz, długo oczekiwany wybawiciel który wyprowadzi nas z doliny ciemności którą kroczymy nieświadomi Twego blasku chwały :8

ArchieIl nawet gdybyś był autorem Windows-ów, OS-ów na Amige, GEMDOS-ów na ST, Mac Os-ów i OS-a na statku Battlestar Galactica i statkach Cylonów czyli gdybyś był samą hybrydą, super organicznym mózgiem to i tak nie napisałeś żadnego OS-a na Atari XE/XL bo nie umiesz, bo jest za trudny, bo narzuca zbyt duże ograniczenia, bo ogranicza Twoje JA, bo jest za dużym wyzwaniem, bo nie starczy Ci sił, bo jesteś sam, bo chcesz zdobyć "podkładkę" - już pisałem OS-a ale na aarea obrazili mnie i dlatego nic więcej nie napisze, JA taki i owaki oni tacy sracy i owacy, ja tu pierdu pierdu oni sru tu tu

czy Bill Gates albo Linus Torvalds pytali się czy warto pisać OS-a, jedni pisali dla kasy inni mieli takie hobby i gówno ich obchodziło zdanie innych, napisz najpierw a program sam się obroni jeśli będzie wystarczająco dobry, a Twoje pytanie ArchieIl można odbierać jak pytanie czy nie zmarnujesz aby czasu na pisanie OS-a dla XE/XL bo może nie warto, z takim podejściem to możesz zacząć już brylować na innym forum, jest jeszcze forum C64, potem SPECTRUM, CPC AMSTRAD, jeśli upadniesz wystarczająco nisko "napiszesz" OS-a dla konsoli A2600 a może nawet Coleco Vision (chciałbym uprzedzić że na Coleco Vision już taki powstał, przynajmniej na fotkach wygląda ciekawie)

nikt kto zadaje takie pytania na forum nigdy nic nie napisał ani nie stworzył, to pewnie ma na celu zwiększenie motywacji czy chęci działania, jednak zawsze odnosi odwrotny skutek, czas przyjąć to do wiadomości i nie zadawać więcej takich pytań

można Cię już chłodno pożegnać ArchieIl, wróć jak nabierzesz empirycznego doświadczenia i złagodzisz swoje Ego, masz swoją "podkładkę"

p.s.
nowocześniejszy kod relokowalny udostępnia cc65, w jego oparciu powstał też już jakiś system, mads także udostępnia swój kod relokowalny niekompatybilny z cc65, m.in. relokowanie połówek adresu, taki kod można umieszczać od dowolnego adresu w pamięci, z optymalizacji w mads to możliwość pomijania podczas asemblacji procedur do których nie było odwołań

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

47 Ostatnio edytowany przez Pecus (2008-04-16 19:03:50)

Konczac odpowiadam.
Nie ma!

P.-S. Co do braku przerwani w standardowym SIO, poczytaj moze troche i nie pisz glupot. To ze linia Interrupt nie jest uzywana przez urzadzenia nie znaczy ze nie jest to transmisja oparta o przerwania. Generuje je POKEY po odebraniu bajtu do bufora - teoretycznie w tym czasie (zanim bajt bedzie w buforze w calosci) komputer robic moze dowolne rzeczy. A ze czeka sobie tylko NA PRZERWANIE to inna sprawa i kwestia napisania procedur innych niz systemowe.
Tak samo jest przy nadawaniu na lacze szeregowe, tez jest generowane przerwanie.

No ale Ty wiesz lepiej, na pewno oprogramowales wiele procedur komunikacji na Atari i masz na to papier :P
A ja - biedny mis klepalem sobie rozne procedury transmisji przez lata - na przerwaniach, a szybkie bez (bo i tak sie nic w miedzyczasie zrobic nie dawalo). A teraz widze, ze zawsze robilem to zle i nie wiedzialem, ze oprogramujac obsluge przerwan pisze procedury nie oparte na przerwaniach - o ja glupiec ide sobie glowe rozbic o mur, i pokasuje z dysku te wszystkie programy, a moze poprosze wielu uzytkownikow by tez to zrobili, bo to nie ma prawa dzialac wg fachofcoof.

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

48 Ostatnio edytowany przez jellonek (2008-04-16 19:19:05)

pecus: dojedz jeszcze dracowi przy okazji, bo takie biadolenie na temat wlasnej niewiedzy nie daje takiego fajnego efektu...

tebe: contiki wlasnie pod cc65 powstalo i tam nie tyle relokacje masz, ile ustalanie adresow w trakcie linkowania plikow objektowych (tak jak w kompilatorach na "nieco wieksze" procki). ztcp lunix uzywal format plikow objektowych cc65 jako swoj natywny format plikow wykonywalnych, ale wiazalo sie to z wyliczaniem wszystkich wartosci relokowalnych przez OS po zaladowaniu binarki, a przed jej uruchomieniem...

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

49 Ostatnio edytowany przez Pecus (2008-04-16 19:21:35)

Ale po o mam pisac, widac z daleka, ze draco na atari sie nie zna absolutnie, pisze jakies nedzne wprawki programistyczne tylko, a i tak wiekszosc nie dziala. Jeszcze wiele sie musi nauczyc, nim papier na to dostanie, oj wiele!!! :)
A poza tym z terminologia lezy, nie stosuje nowoczesnego slownictwa informatycznego - pewnie go nie zna. To czlowiek z epoki, kiedy Mysz nazywalo sie "Manipulator stołokulotoczny". To skansenu z z takimi a nie programy pisac, dzis sie pisze wielkie systemy kompilatorami, ktore same optymalizuja kod (ciekawe kto optymalizuje kod kompilatorow), a nie jakies dlubaniny na piechote w assemblerze!!!

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

50

no wlasnie - napisal taki multibej, ktorego za cholere nie moge na swojej atarce odpalic, a i ten dracos wystartowac nie chce. 6502 mam pewnie z jakas zbyt duza iloscia przerwan, a skoro wiadomo juz ze drac816 nie umie ich uzywac to...

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep