3,876

(36 odpowiedzi, napisanych Programowanie - 8 bit)

W DracOS można wybrać dowolne miejsce dla strony zerowej. W momencie wystąpienia przerwania (w trybie natywnym) albo w chwili wywołania dowolnej funkcji systemu (za wyjątkiem tego cholernego pakietu FP), strona zerowa jest przestawiana pod adres $000000, a potem przywracana.

Co do stosu, nie widzę potrzeby. Cały system "chodzi" na stosie zdefiniowanym przez użytkownika. Poza tym przy tradycyjnych wywołaniach (przez JSR) OS i tak trzeba wywoływać w trybie emulacji. Z trybu natywnego przez JSR może się coś uda zrobić, ale jak już się jest w trybie natywnym, to lepiej skorzystać z przerwania COP #$00, wtedy wszystko powinno gładko działać.

[ Dodano: 07.05.2005 22:52:17 ]

Pamiętajcie, że rozkaz BRK powoduje wywołanie przerwania spod adresu przechowywanego pod $fffe, które w praktyce należałoby filtrować.

Nie bardzo pojmuję, gdzie w tym widzisz problem.

3,877

(36 odpowiedzi, napisanych Programowanie - 8 bit)

Bez przesady, maszyna AŻ TAK wirtualna (czyli emulec) nie jest potrzebna. Do zrobienia tego, o czym prawdpodobnie myślisz, wystarczyłoby "tylko" mieć dodatkowy układ zarządzania adresami (czyli PMMU), za pośrednictwem którego system operacyjny byłby w stanie zablokować (czy też: kontrolować) dostęp programu do dowolnego obszaru przestrzeni adresowej. I tu znowu kłania się 65c816, który ma - szczątkowe, ale jednak - wsparcie dla takiego układu, a 6502 nie.

3,878

(36 odpowiedzi, napisanych Programowanie - 8 bit)

jesli tych aplikacji mialoby byc kilkadziesiat, wowczas opoznienie tez wynosiloby kilkadziesiat ramek,

No właśnie, sam mechanizm przełączania tasków to jeszcze jest najmniejszy problem.

Mimo twojego optymizmu co do szybkości przełączania na 6502, nie sądzę, żeby to było ogólnie takie proste. Przede wszystkim, system z wielozadaniowością nie mógłby być zgodny z systemem dotychczasowym, a to ze względu na deskryptory plików (każdy proces musi mieć oddzielne, podczas gdy obecnie jest osiem globalnych deskryptorów). Rozdzielenie tego wymusza poświęcenie dodatkowych cykli na przekopiowanie bloków IOCB; oczywiście, trzeba byłoby napisać DOS, który brałby to pod uwagę, bo zrobienie takiego numeru któremukolwiek z obecnych DOS-ów spowoduje jego malownicze sypnięcie się.

Druga rzecz, zapobieżenie temu, o czym piszesz powyżej, to znaczy, żeby uruchomienie 50 programów nie spowodowało, ze przełączenia tasków następują co sekundę (zamiast co 1/50 sekundy). Procesy trzeba podzielić według ich statusu, czas dostają tylko te, które "działają" (to znaczy, wykonują swój kod np. w pętli). Proces, który czeka na dane np. z klawiatury albo RS-232, albo SIO, nie dostaje czasu CPU, póki te dane się nie pojawią.

Pociąga to za sobą konieczność przekonstruowania handlerów urządzeń oraz powiązania ich z przerwaniami tak, żeby pojawienie się danych z klawiatury budziło proces, który na nie czeka. Dodatkowy problem: ma to być tylko jeden proces, to znaczy np. edytor tekstu, z któorym pracuje uzytkownik, a nie wszystkie, które wywołały funkcję odczytu danych z klawiatury.

Następna sprawa, która się z tym wiąże: programów mażących po ekranie może być wiele, ale tego, co produkują, nie mogą sobie zamazywać nawzajem. W związku z tym każdemu trzeba przydzielić oddzielny ekran, pomiędzy którymi to ekranami użytkownik będzie mógł się przełączać. Oczywiście, żeby to działało w miarę ładnie, programy muszą mazać na ekranie przez system operacyjny (albo przynajmniej wykorzystując wskaźnik w rodzaju SAVMSC $58), i nie mogą w tym celu odwoływać się bezpośrednio do sprzętu, bo efekt będzie taki, jak w twoim przykładzie (a nie o to chodzi).

dlatego najlepszym zastosowaniem takiego multitaskingu bylaby mozliwosc przelanczania aplikacji, np. mamy zaladowanych kilka programow w pamieci (odpowiednio napisanych, kod relokowalny) odpowiednia kombinacja klawiszy przechodzimy to task managera, wybieramy inna aplikacje i dzialamy w niej, potem mozemy wrocic do poprzedniej i kontynuowac

To jest multitasking bez wywłaszczania. Do tego nie trzeba bardzo ingerować w przerwania ani w nic. Wystarczy przekopiowywać cały obszar pamięci programu. To nie jest trudne i mogłoby być nawet użyteczne. Ale oczywiście program, który jest "w tle", nie działa, stoi.

oczywiscie czesc aplikacji wymagalaby dzialania w tle, ftp'e, zegar czasu (co 50 ramek wywolywac), msx player (wywolywac co 1 ramke), moznaby takie aplikacje podpiac pod koncowke przerwania VBL, ogolnie bylyby rozne typy aplikacji jak i rozne ich piorytety dzialania, z kolei
operacje IO bylyby krytyczne czasowo

Zauważ, że w ogóle scheduler dobrze jest podłączyć pod VBL deferred, wtedy operacje krytyczne czasowo oraz przerwania IRQ automatycznie blokowałyby przełączanie tasków.

kod dla 65816 bylby szybszy jednak narzucalby ograniczenia co do ilosci zaladowanych aplikacji, nie przeznaczymy przeciez calych 64kb na stosy dla kazdej z aplikacji, przechowywanie aplikacji w pamieci dodatkowej jest bardziej uniwersalne i nie narzuca ograniczen dla organizacji pamieci podstawowej

Nie przeznaczymy 64k na strony zerowe i stosy dla wszystkich aplikacji, zgadza się. Dlatego myślałem o tym, żeby w systemie dla 65c816 (z dodatkową pamięcią liniową) wykorzystać na stosy i strony zerowe banki pamięci 130XE. Im więcej banków, tym więcej aplikacji.

Kto chętny ... nie wiem, czy naprawdę jest sens pisania tego pod 6502. Będzie to chodzić, jakby chciało a nie mogło (z powodu kopiowania sporej ilości danych co ramkę), a na 65c816 nie będzie wykorzystywać wsparcia dla multitaskingu, jakie ten procesor ma.

3,879

(16 odpowiedzi, napisanych Miejsca w sieci)

Mam głupie pytanie: jaki jest w ogóle cel tego "paczowania"?

3,880

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

No co Ty!? Nie znasz trybu pośredniego z przesunięciem. ;)

Znam, ale nie na tym procesorze :P  :P

3,881

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

nbnks    = 29

    lda (dosvec),nbnks

Lizard, od kiedy istnieje taki tryb adresowania?  :P

[ Dodano: 06.05.2005 13:12:40 ]
Marok, cytat o wektorach dotyczy cię, jeśli piszesz DOS. Jeśli piszesz zwykły program, to wektorów DOSINI i (zwłaszcza) DOSVEC nie dotykasz. DOSINI możesz ewentualnie zmienić, jeśli twój program ma być odporny na RESET, ale nie polecam tego, bo jak juzer chce naprawdę zrobić RESET, to i tak zrobi, a tylko go niepotrzebnie zdenerwujesz.

3,882

(14 odpowiedzi, napisanych Bałagan)

Fintik, w BASIC-u string typu S$ musisz deklarować przed użyciem przez np. DIM S$(3). Potem porównania typu IF S$="TAK" THEN cośtam powinny już działać. To tak tytułem przypomnienia  ;)

3,883

(20 odpowiedzi, napisanych Kupię / Sprzedam / Zamienię Atari)

Do TOMS-a trzeba przedtem wsadzić napęd 3,5 cala, to chyba jasne?  :P

3,884

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

Patrząc na niektóre programy dochodzi się do wniosku, że nie ma takiej prostej rzeczy, której nie można byłoby spieprzyć.

3,885

(16 odpowiedzi, napisanych Miejsca w sieci)

Lewis, po co ci źrodło fontu w formacie MAE, skoro w MAE można dołączyć plik binarny podczas asemblacji?

3,886

(20 odpowiedzi, napisanych Kupię / Sprzedam / Zamienię Atari)

Macgyver, akurat Lizard ma rację. "Specyfika gęstości" 360k zależy od stacji. XF-551 ma tak, jak napisałeś. TOMS w gęstości 360k ma tak samo, jak XF-551, dla zgodności, ale w gęstości 720k zmienia najpierw strony, a nie najpierw ścieżki, bo tak jest lepiej.

Karinka natomiast wszystkie gęstości dwustronne robi tak samo, jak TOMS robi gęstość 720k. Wniosek: dyskietkę 720k sformatowaną na Karin odczyta się na TOMS-ie, dyskietkę 360k sformatowaną na Karin można odczytać tylko na Karin.

3,887

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

Zawsze myślałem, że filesystem DOS XE obsługuje dyski tylko do 360k. Ale nawet gdyby więcej, to chyba i tak nie da się zapisać struktury katalogu bez uprzedniego formatowania, nie ma żadnej dokumentacji, no i filesystem SpartaDOS-u i tak jest lepszy  ;)

3,888

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

Pod MyDosem uzywa sie separatora ":" dla oddzielenia katalogu i tylko ten znak jest w uzyciu?

Z tego co mi wiadomo, separator ">" jest wspólny dla MyDOS-a i wszystkich wersji SpartaDOS.

3,889

(50 odpowiedzi, napisanych Scena - 8bit)

GCC pod FreeBSD i  Slackwarem ... zwraca 7.

Co nie jest niczym dziwnym, bo w obu przypadkach jest to ten sam kompilator (obie maszyny i386 w dodatku).

3,890

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

ICAX2 określa tryb graficzny dla ekranu (urządzenie "S:") . Ponieważ otwarcie "E:" implikuje tryb 0, to ten rejestr można spokojnie pominąć.

Istotnie, otwarcie "E:" implikuje tryb 0, procedura otwarcia edytora w ciemno ustawia rejestr DINDEX na 0, bez patrzenia do ICAX2. Ale CIO kopiuje wcześniej ICAX1/2 na stronę zerową, a to z niej mają korzystać sterowniki w stylu "E:". Sterownik, który jest w ROM-ie nie zagląda pod ICAX2Z, ale nie można przewidzieć, jaki sterownik kto napisze w przyszłości. Zostawienie w ICAX2 i ICAX2Z wartości losowej (czyli nieustawienie ICAX2Z) zmniejsza ilość bajtów IOCB i ZIOCB, jakie mogłyby być wykorzystane dla przyszłych rozszerzeń systemu.

A ponieważ zrobienie LDA #$00 / STA ICAX2 (albo STZ ICAX2) nie kosztuje dużo, wobec tego proponuję mimo wszystko zerować ICAX2 przy otwieraniu edytora. Taka mała wprawka z eleganckiego programowania  ;)

3,891

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

A Markowi dupy nie będę zawracał jednym dyskiem... takich perełek jest więcej.... (chociażby dysk Ryszarda Seagate 214MB - który również nie działa!!!!)

Załatwienie sprawy Caviara WDC2850 to nie jest sprawa jednego dysku, tylko, podejrzewam, wszystkich, albo prawie wszystkich Caviarów. A przy okazji może ruszyć i ten Seagate (jestem tego prawie pewien). Więc może pozawracaj ...  ;)

3,892

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

Piguła, sprawa nie tyczyła się interfejsu KMK, tylko dysku Caviar WDC2850. Masz tam wyłożone łopatą, co trzeba zrobić (= co musi zrobić soft inicjujący dysk do pracy), żeby ten dysk działał.

Moim zdaniem zasłużyłem na obiecane pół skrzynki browca, ale dodatkowe browary po koleżeńsku też chętnie przyjmę  ;)

3,893

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

Piguła:

http://atariarea.krap.pl/forum/viewtopi … 3280#33280

Poproszę pół skrzynki browca  :P

3,894

(32 odpowiedzi, napisanych Sprzęt - 16/32bit)

Dysk ma fajną wartość dla kolekcjonera, a mniejszą dla użytkownika, i tyle.

Dokładnie. Ktoś, powodowany chęcią bądź potrzebą posiadania twardego dysku, może się skusić na zakup z zamiarem użytkowania. Wtedy powinien sobie zdawać sprawę w pełni, że sprzęt ma kilka mankamentów, które wymieniłem:

1) napęd małej pojemności

2) napęd nie IDE czy SCSI, ale MFM, czyli przedhistoryczny

3) fakt, że napęd ma bardzo wiele wiosen

Punkt 3 wskazuje, że dysk może paść szybko (o ile w ogóle jeszcze nie padł), punkt 2 natomiast, że znalezienie sprawnego zamiennika może graniczyć z nieprawdopodobieństwem, ergo kwota wydana na ten dysk będą to pieniądze wyrzucone w błoto.

3,895

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

No ja nie znam dysku, który nie działałby z KMK/JŻ IDE. Ale mimo tego uważam, że taka informacja ma sens choćby po to, żeby uniknąć ciągłych pytań na ten temat. A w przypadku SIO2IDE ma to sens o tyle większy, że, jak widać, jednak nie wszystkie dyski działają (chociaż "powinny").

3,896

(32 odpowiedzi, napisanych Sprzęt - 16/32bit)

Jeżeli ktoś potrzebuje to jest tu

20 MB. Sorry, to nawet jak na małe Atari jest 5x za mało, a co dopiero ST. Poza tym napęd MFM, ma pewnie dobrze ponad 15 lat. Rzęch, i trudno wymienić na inny.

3,897

(5 odpowiedzi, napisanych Bałagan)

Nie wiadomo, co robił w kącie, kiedy nie filmowali  ;)

3,898

(5 odpowiedzi, napisanych Bałagan)

http://www.putfile.com/media.php?n=escaped_elephant

3,899

(50 odpowiedzi, napisanych Scena - 8bit)

W Atari800Win 4.0 po uruchomieniu takiego programu następuje zawieszenie, pod SpartaDosX i MYDOSem.

Nie ma to jak crossdevelopment :P

3,900

(50 odpowiedzi, napisanych Scena - 8bit)

Faktem jest ze skompilowałem pare trywialnych programów i wyprowadzanie tekstów na ekran przy pomocy stdio.h wywoływało błędy po użyciu znaku sterującego n.

To znaczy konkretnie jakie błędy? Pytam z ciekawości, żeby nie było.

[ Dodano: 28.04.2005 11:37:48 ]

"Język ANSI C" autorstwa Briana W. Kernighana i Dennisa M. Ritchiego

Czy to jest coś innego niż B.W. Kernighan, D.M. Ritchie, "Język C"?