51

(108 odpowiedzi, napisanych Programowanie - 8 bit)

Już mówiłem, że załatwiałby to loader (mowa o wersji softwarowej, w przypadku podmienionego ROM problemu nie widzę).

Mam +/- opracowany pomysł jak radzić sobie z takimi "wredotami".
W zasadzie biorę pod uwagę "patchowanie" takich programów w locie zostawiające handler exit na potrzeby OS-a w najgorszym razie. Każdy handler przerwań da się bowiem przejąć, a każdy program przynajmniej kilkaset bajtów wolnej pamięci zostawia.

Ale to tylko pomysł ostateczny. W normalnej sytuacji zostawałaby procedurka realizująca powrót do systemu ze starego oprogramowania.

52

(108 odpowiedzi, napisanych Programowanie - 8 bit)

Pecus napisał/a:

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.

Żebyś nie pożałował, że się tutaj publicznie przyznałeś.

Jeśli coś zrobię i zacznie wyglądać, że nie będzie to tylko papier to z tego wątku powybieram sobie ludzi do męczenia o pomoc w rozwijaniu projektu.

Potrzebuję docelowo oprócz OS-a:
* zmodyfikowany assembler potrafiący tworzyć "exe" pod niego
* zmodyfikowane cc65 potrafiące kompilować pod OS i posiadające zmienione biblioteki związane z komunikacją systemową
* całą masę programów narzędziowych do przeportowania zarówno z SDX jak i z LUnix, contiki jeśli będzie to możliwe.
* BASIC potrafiący działać w nowym OS-ie i będący zgodny z Atari BASIC (tutaj akurat liczę, że uda się Drac030 przekonać do sportowania jego MultiBASIC-a)
* testerów, którzy powieszą albo mnie albo OS-a ;-)

Przy okazji przypomniałem sobie, że w przypadku Atari dobrze by było gdyby OS potrafił zarządzać overlaysami. Wtedy Numen w jednej wersji mógłby działać z dowolną Atarką. Z rozbudowaną całość byłaby w pamięci rozszerzonej, a w biednej starej 65XE zarzynałby stację/dysk/PC-ta (o ile autorzy Numena chcieliby zrobić taki port).

53

(108 odpowiedzi, napisanych Programowanie - 8 bit)

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ę.

54

(108 odpowiedzi, napisanych Programowanie - 8 bit)

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.

55

(108 odpowiedzi, napisanych Programowanie - 8 bit)

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.

56

(108 odpowiedzi, napisanych Programowanie - 8 bit)

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.

57

(108 odpowiedzi, napisanych Programowanie - 8 bit)

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.

58

(108 odpowiedzi, napisanych Programowanie - 8 bit)

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).

59

(108 odpowiedzi, napisanych Programowanie - 8 bit)

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.

60

(108 odpowiedzi, napisanych Programowanie - 8 bit)

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.

61

(108 odpowiedzi, napisanych Programowanie - 8 bit)

laoo/ng napisał/a:
ArchieIl napisał/a:

P.S. Ktoś tutaj ma jakieś wykształcenie informatyczne? Czy same złote rączki?

Nie wiem w czym może pomóc wykształcenie informatyczne przy Twoich problemach. Samo pytanie o optymalizującego asemblera (który z definicji nie powinien robić nic ponad to co każe mu programista) nie motywuje do zabierania udziału w dyskusji :)

google twoim przyjacielem.

Optymalizujące assemblery znam z lat 93-94 (opisy w jakichś gazetach, część kompilatorów końcową optymalizację robi w assemblerze lub oddzielnym narzędziu optymalizującym kod maszynowy np. na potrzeby pipeliningu w procesorach).

Z nie optymalizujących (w moim znaczeniu tego słowa) ale ingerujących w wynikowy kod opcji np. as86 (man as86):

 -j  replace  all  short  jumps  with similar 16 or 32 bit jumps, the 16 bit conditional branches
     are encoded as a short conditional and a long unconditional branch.
 -O  this causes the assembler to add extra passes to try to use forward  references  to  reduce 
     the bytes needed for some instructions.  If the labels move on the last pass the assembler will
     keep adding passes until the labels all stabilise (to a maximum of 30 passes)  It's  probably  not
      a good  idea to use this with hand written assembler use the explicit br bmi bcc style opcodes
     for 8086 code or the jmp near style for conditional i386 instructions and make  sure
     all  variables are defined before they are used.

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

62

(108 odpowiedzi, napisanych Programowanie - 8 bit)

jellonek napisał/a:

znasz co? contiki (mialo kiedys nawet atarowski port)? luniksa? cc65?

Znam contiki i luniksa od dosyć dawna tak jak ELKS-a jeszcze z czasów gdy zaczynał powstawać (zresztą w tej chwili chyba ELKS nie jest dalej rozwijany).
Znajomy pisał o ile dobrze pamiętam pod LUniksa jakieś aplikacje. To było z 4-5 lat temu gdy mi pokazywał swoje wypociny więc nie pomnę dokładniej ale pewnikiem jest ujęty w Copyrightach.

jellonek napisał/a:

edited: taka wymiana w stylu msdosowej "rurki" w przypadku sdx jest mozliwa polowicznie mozliwa, bo umozliwia on przekierowanie stdout (CON:) do pliku.

I?

tzn. mam projektować system wielozadaniowy z "|" po plikach bo w SDX jest tak wygodnie?

W DOS też było w miarę z tym wygodnie co nie zmienia tego, że DOS-a ani SDX-a drugiego na Atari robić nie planuję.

LUniksa obejrzę dokadniej bo ma największe szanse posiadać w kernelu (szczególnie Atarowskim) niektóre interesujące mnie rozwiązania zrobione w sposób akceptowalny.

Z <, > i 2> jeszcze się zastanowię co zrobić. tzn. jako podstawę chciałbym mieć aplikacje pełnoekranowe zmultitaskowane (akurat na Atari powinno to ślicznie hulać) ale na potrzeby "|" jakieś strumienie też będę musieć zrobić acz jeszcze dokładniej nie mam tego fragmentu opracowanego.

63

(108 odpowiedzi, napisanych Programowanie - 8 bit)

Ja nic(*) nie robię a'la UNIX. a'la UNIX robią spece od contiki i LUnixa wraz z C jako podstawą systemu ;-).

W DOS komunikacja międzyprocesowa odbywała się z użyciem plików zewnętrznych, a nie zostawianiem stdout w pamięci.

Jeśli robić system wielozadaniowy nie widzę sensu w bawienie się wymianą danych z użyciem plików.

*) ideowo komunikacja międzyprocesowa... praktycznie zależy mi na szybkości, a nie robieniu czegoś a'la coś działającego na procku z 8 (i więcej) rejestrami

64

(108 odpowiedzi, napisanych Programowanie - 8 bit)

jellonek napisał/a:

ArchieIl: ciekawe kiedy ci przejdzie... jesli jednak nie tylko na checiach sie skonczy, a moze cos i zakodujesz - to polecam przyjrzec sie zrodlom contiki - masz tam i zarzadzanie pamiecia (ztcp z dokladnoscia do strony, albo do 16tu bajtow) i obsluge graficznych aplikacji, multitasking, stos tcp/ip, obsluge SLIP
z podobnych rzeczy - lunix - tez multitasking, tez zarzadzanie pamiecia...

Znam.

Znajomy nawet w tym grzebał tyle, że on jest od c-64, a nie od Atari.

Jak ktoś lubi udowadniać, że łopatą można przeprowadzać operację serca to już jego problem (LUnix z opisu jest rozsądniejszy tyle, że jeśli jest pod C-128 to wątpię w jego sens dla 6502 bez podmiany RAM dla strony 0).

Acz w wolnej chwili spojrzę do źródeł. Możliwe, że opisy nie oddają "sensu" tego projektu.

jellonek napisał/a:

btw. jak chcesz cos co bedzie optymalizowalo kod assemblerowy - jedyne takie narzedzie jakie znam pod 6502 - to opt65 z pakietu cc65.

cc65 mam z page6. Spojrzę do opisu. Może tam jest coś z interesujących mnie rzeczy.
Kiedyś miałem tylko to coś oficjalnego i podobno niezłego tyle, że nie miałem do tego opisu i QuickAssemblera, który podobno jest dla amatorów bo jest zintegrowany z edytorem ;-).

P.S. Ktoś tutaj ma jakieś wykształcenie informatyczne? Czy same złote rączki?

65

(108 odpowiedzi, napisanych Programowanie - 8 bit)

Podsumuję to co przeczytałem o SDX:

* SpartaDOS nie posiada komunikacji międzyprocesowej
* brak jest zarządzania pamięcią nie licząc podstawowej relokacji programów i tego co jest od zawsze w ROM/MEMLO/MEMHI
* 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.
* rzeczywiście biblioteki są dynamicznie ładowane ale jest to dosyć ograniczone i to program bibliotekę dodaje, a nie biblioteka jest ładowana do systemu. mnie interesuje załadowanie biblioteki, a nie sklejenie jej z programem, który ją używa. Nie jestem również pewny czy biblioteka może używać JMP. Wydaje mi się, że może ona jedynie poruszać się w obrębie swoim oraz wywołań systemowych.

W tej chwili tyle wyczytałem z tej dokumentacji SDX. Jeśli się mylę zapraszam.

Jedno pytanie dodam.
Czy pod 6502 istnieje jakiś assembler, który posiada opcje optymalizacyjne?
tzn. kilka rzeczy mam na myśli ale taka dosyć oczywista to automatyczny inline dla JSR-ów jeśli JSR jest wywoływany w programie tylko raz.

66

(108 odpowiedzi, napisanych Programowanie - 8 bit)

Pin napisał/a:

... jestem za, jeśli może być to jedyna modyfikacja OS - tylko z jakiego nośnika i na jakiej zasadzie chcesz to odpalić?

Ja na dziś startuję ze 130XE, magnetofonem na potrzeby testów różnorakich i SIO2PC.

Jeśli coś z tego wyjdzie to moim celem jest wygodny w użyciu system w konfiguracji: Atari ze stacją dysków przy założeniu, że OS jest w ROM lub 800XL (64KB RAM) ze stacją i system w RAM.

Docelowo na dziś za wcześnie żeby teoretyzować do czego coś takiego wkładać i w jaki sposób. Raczej gdybałbym jednak za ROM-em z bankowaniem podmieniającym i zawierającym również standardowy niż za kartem lub pracą całkowicie z dysku.

Wersja podstawowa pewnych rzeczy na pewno mieć nie będzie. np. swapowania pamięci na dysk na potrzeby uruchamiania niektórych "toporniej" pisanych programów ze względu na nikła pojemność dyskietek i wolny transfer.

67

(108 odpowiedzi, napisanych Programowanie - 8 bit)

miker napisał/a:
ArchieIl napisał/a:

Nie znalazłem opisu i tego jak to funkcjonuje.

Lekturę polecam zacząć o stąd.

Znalazłem:
http://trub.atari8.info/sdx_files/4.41/ … amming.pdf.

Co do wgłębiania się w sens mojej realizacji to nie chce mi się.

Z chęcią jednak zobaczę co z tego co chciałbym mieć zostało zrobione. Ja spartę widziałem ostatni raz w wersji 3.x o ile nie wczesniej i bardziej na obrazku niż w rzeczywistym użyciu.

Jeśli do SDX znajdę źródła i dokładną dokumentację, a nie tylko pobieżny opis to możliwe, że włożę do niej tyle ile się da z tego co chciałbym żeby było zrobione ;-) zamiast kombinować z zastąpieniem OS-a w całości.

Tyle powiem, że nie widzę sensu zachowania zgodności z oryginalnym OS Atari w żadnym aspekcie. Wystarczy, że mam pomysł na loader, który pozwoli uruchomić dowolny stary program.

68

(108 odpowiedzi, napisanych Programowanie - 8 bit)

;-)

Programy w BASIC potrafią nie wrócić do tegoż pomimo różnych dobrych chęci.

Właśnie oglądam page6 i atr-y, które były do niego dołączane.

Swoją drogą jest to naprawdę ciekawa lektura. Tylko trzeba pamiętać o braku łatwo dostępnej dokumentacji ponad instrukcja BASIC-a do Atari na początku istnienia tego pisma.

Wracając do tematu. Nie widzę sensu podłączać twardy dysk tylko po to żeby mi szybciej od zera się podnosił komputer po zawieszce.
Mam nadzieję na jakieś konkretniejsze informacje albo źródła tych informacji zarówno względem DracOS jak i owej nakładki. Nakładka wygląda, że ma sens dopiero po dodaniu 16bit procka działającego z co najmniej 4MHz.

69

(108 odpowiedzi, napisanych Programowanie - 8 bit)

Nie znalazłem opisu i tego jak to funkcjonuje.

Z rzeczy "marzeniowych" dla mnie jest komunikacja międzyprocesowa (rzeczy typu: dir | more lub type text.txt | convert pl atascii | more) oraz biblioteki dynamiczne (tyle, że tutaj trzeba też kompilatory modyfikować :-( ).

A jak są zrobione dynamiczne biblioteki w DracOS? Ten OS tylko dla 16bit procesora jest? Czy też mówimy o czym innym?

70

(108 odpowiedzi, napisanych Programowanie - 8 bit)

Co myślicie o OS-ie, który potrafiłby:

* ładować wszystkie programy tak jak do tej pory ale z wracaniem do OS po ich zakończeniu bez konieczności startu z nośnika. (również dla gier)
* posiadałby własny format aplikacji natywnych
* aplikacje te mogłby używać bibliotek zewnętrznych dynamicznie dołączanych
* OS zarządzałby pamięcią, pamięcią ekranową, stroną 0, stosem oraz pamięcią rozszrzoną w tym tą pod ROM
* pozwalał na multitasking z wywłaszczaniem, wielookienkowość i oddzielne procedury obsługi przerwań w poszczególnych aplikacjach oraz zarządzał TRS-ami, a nie tylko je ignorował.
* realizował szybkimi procedurami synchronicznymi oraz asynchronicznymi operacje I/O co odzależniłoby aplikacje od tego z jakiego I/O chciałby korzystać użytkownik.
* posiadał zarządzenie pamięcią blokami po 256bajtów
* pozwalał na komunikację międzyprocesową zarówno buforowaną jak i nie buforowaną

i realizował wiele innych rzeczy, które normalny OS powinien realizować.

Za to najważniejsza cecha:
działałby na gołym Atari z minimum 48K RAM i 16K ROM lub RAM używanym przez ów OS. Oczywiście
pełne możliwości byłyby widoczne dopiero na bardziej rozbudowanej maszynie ;)

Najgorsza cecha:
na dziś mam tylko rozpisane na papierze mechanizmy i nie sprawdzone zarządzanie przerwaniami, reset, nmi itp. tzn. część związaną z przerwaniami z pamięci generowałem i może się okazać trudniejsza do wykonania niż w tej chwili wygląda (m.in. dotyczy to asynchronicznych procedur I/O).

P.S. Nie śmiejcie się za bardzo. Czekam raczej na coś merytorycznego... Po lecie (październik) powinienem z tego zrobić co najmniej jeden fragment związany z zarządzaniem programami bez konieczności ciągłego odczytu systemu z dysku. tzn. najbardziej mnie w Atari wkurzał brak wracania do DOS/BASIC z większości programów i tyle chciałbym zrobić przy braku zainteresowania drugą częścią projektu.

71

(4 odpowiedzi, napisanych Bałagan)

dzięki.

W zasadzie wątek znalazłem szukając postów truba i zdążyłem się w sprawę nieco bardziej wgłębić.
Zostaje mi tylko upolować w dalszej perspektywie odpowiednią stację ;-).

Gdyby ktoś tutaj miał zbędną stacje, może być z niedziałającym flopem ale widoczną na SIO (istnieje pomysł startowania CP/M z SIO z użyciem stosownej funkcji ROM stacji, a nie z dyskietki).
Acz ja raczej przed czerwcem/lipcem raczej większych kwot w Atari inwestować nie będę.

72

(3 odpowiedzi, napisanych Sprawy atari.area)

Wpisuję:

CP/M

w wyniku mam:
Info
Brak wyników dla tego szukania.
Powrót

Wątków o CP/M było przynajmniej kilka bo szukając po autorze dogrzebałem się i do wątku o CP/M.

Domyślam się, że to wynik użycia / w środku ale może jednak dałoby się?

73

(4 odpowiedzi, napisanych Bałagan)

nie nie nie... ;-)

Nie mówię o rozszerzeniach. Akurat te oglądam i w tej chwili jestem w miarę na bieżąco. Zresztą od tego jest inny wątek (w tym moim kupionym 130XE GTIA mam na podstawce więc w zasadzie nie miałbym przeciwskazań dodać "kanapkę", która nie wymagałaby innych przeróbek czy wierceń).

Zastanawiam się raczej nad:
* podłączeniem do inetu i wystawieniem microchessa na Atari jako samodzielnego użytkownika serwera szachowego z preprocessingiem bardziej skomplikowanych requestów na PC (tzn. grałoby Atari, a komunikował się z serwerem PC żeby to Atari nie wymiękło od nadmiaru śmieci).
* zrobieniem łączki Centronics->JOY co pozwoliłoby mi wygodnie grać w gierki Atarowskie... mówiąc szczerze wolę klawiaturę prawie zawsze niż joy stickowy.
* porobieniem trochę rzeczy, których nie mogę nigdzie znaleźć, a które z chęcią bym sprawdził.

Stacji dysków nie mam i jeśli bym kupił to właśnie tylko na potrzeby sprawdzenia owego CP/M. Chyba, że znajomy ma jeszcze swoje Atari i od niego udałoby mi się wydobyć komplet, który z kumplami podczas "szkółki szachowej" czasem u niego obciążaliśmy.

74

(4 odpowiedzi, napisanych Bałagan)

Witam

Na sieci znalazłem informację, że po dodaniu pamięci do stacji dysków od Atari (Indus ale również LDW i bodajże CA) można na niej postawić CP/M.

Czy ktoś tutaj posiada coś takiego? Dysponuje binarkami/źródłami CP/M-a, który na takiej stacji miałby chodzić?

Swoją drogą witam podwójnie bo a) to mój pierwszy post tutaj, b) znów po tylu latach mam Atari ;-) i zastanawiam się co z nim dalej robić ;-).