2,426

(40 odpowiedzi, napisanych Fabryka - 8bit)

... albo prawie 32, w każdym razie powyżej 16.

MyDOS łączy pliki w ten sposób, że w każdym sektorze jest 3-bajtowy "link". Z tego dwa bajty (16 bitów) to numer następnego sektora pliku, a 1 bajt - wypełnienie, czyli liczba bajtów danych w sektorze (od 1 do 253).

Wynikałoby z tego, że przeniesienie tego na sektory 512-bajtowe jest niemożliwe, bo wtedy wypełnienie wynosiłoby od 1 do 509 bajtów, i tym samym braknie jednego bitu, żeby je zakodować (zakładam minimalne możliwe zmiany w kodzie istniejącego MyDOS-a).

Otóż myślę, że ten brakujący bit można byłoby zastąpić najmłodszym bitem numeru aktualnego sektora - tzn. tego, w którym znajdują się dane, a nie tego, który jest wskazany linkiem. Wtedy np. sektory o numerach parzystych mogłyby mieć wypełnienie z zakresu od 1 do 255, natomiast sektory o numerach nieparzystych - wypełnienie od 256 do 509, czyli de facto od 1 do 509.

Ergo, na pełne sektory oraz te z wypełnioną pierwszą połówką można byłoby przeznaczyć połowę takiego dysku, czyli 32768 sektorów 512-bajtowych = 16 MB. A ponadto zostałoby jeszcze drugie 16 MB na sektory z niepełną pierwszą połówką. W sumie, krótkich plików o różnym wypełnieniu ostatniego sektora można byłoby nagrać max. ok. 65535 (pomijam miejsce niezbędne na katalogi, bootbloki, bitmapę itd. - to jest tylko "teoretyczny zarys w miarę szczegółowy" :P), zajmując tym samym całem 32 MB. Im dłuższe pliki, tym wypełnienie partycji pogarszałoby się, ale wiadomo, że pliki na Atari nigdy nie są strasznie długie, więc per saldo byłby zysk => przełamana bariera 16 MB.

Worst case, to jeden plik wielkości 32768 sektorów. Gdy taki zaistnieje na dysku, można dogrywać tylko pliki o wielkości nie przekraczającej 255 bajtów, bo gigant zajmie wszystkie sektory, w których możliwe jest całkowite wypełnienie.

Czy jest gdzieś konkurs na najbardziej posraną koncepcję systemu plików? Może bym coś wygrał :D

2,427

(46 odpowiedzi, napisanych Fabryka - 8bit)

Owszem, jest to napisane w FM.

PS. W dodatku w najoczywistszym miejscu z mozliwych: przy opisie błędu nr $A1 (aka 161).

2,428

(46 odpowiedzi, napisanych Fabryka - 8bit)

Od dzisiaj, dzięki kooperacji z niejakim GoodByteXL of ABBUC, na stronie truba dostępna jest kompletna, angielska instrukcja do SpartaDOS X 4.41:

http://trub.atari8.info/index.php?ref=sdx_upgrade_en

2,429

(709 odpowiedzi, napisanych Fabryka - 8bit)

Ok, to dozo w Głuchołazach :)

2,430

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

Ożyć to sama nie ozyła. Schemat zrysował simius przy okazji naprawiania uszkodzenia (RAM był padnięty). Stację zabieram ze sobą do Głuchołazów.

2,431

(709 odpowiedzi, napisanych Fabryka - 8bit)

electron napisał/a:

A przyszły rdzeń będzie inny ...

No właśnie, co z tym "przyszłym rdzeniem"?

Mnie sie osobiście pomysł xxl-a nie podoba, może niech to juz będzie tylko to, co miało być, a koprocesor, jak ma być, to niech będzie w oddzielnym układzie. Bo obawiam się, że od takich rzeczy może w FPGA zabraknąć miejsca na to, co on ma w istocie robić, tzn. na SuperGTIA. No i wiadomo, trochę wolnego musi zostac na ewentualne późniejsze poprawki/rozszerzenia.

2,432

(24 odpowiedzi, napisanych Programowanie - 8 bit)

By o tym kiedyś wątek na AAge - ktoś prześledził oscyloskopem, co się wtedy dzieje. Są jakieś cyrki z sygnałami synchronizacji, oidp, jakby błąd w ANTIC-u. Nie mam teraz czasu poszukać tego wątku, a pamiętam słabo.

2,433

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

mazi napisał/a:

Z drugiej strony zawsze mnie zastanwialo to dlaczego podczas konstruowania, nowych, lepszych oraz szybszych amig to uklad dzwiekowy pozostawal ten sam bez zadnych unowoczesnien. Troche dziwne podejscie.

Odpowiedź pewnie jest taka sama, jak na "dlaczego podczas konstruowania nowych, lepszych 8-bitowych Atari używano ciągle tego samego chipsetu sprzed 7 lat": ze skąpstwa lub pospiechu. Stawiam na to pierwsze, wiadomo że taka firma prędzej kupi jacht dla prezesa albo nowy wieżowiec pełen sekretarek niż przeznaczy kasę na unowocześnianie produktu, który "i tak jest dobry, a userzy są zachwyceni" :)

2,434

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

seban napisał/a:

Amiga miała cztery 8-bitowe przetworniki C/A "karmnione" danymi zupełnie sprzętowo, w dodatku każdy z kanałów mógł mieć niezależną 5-bitową głośność.

W dźwięk na ST (i pokrewnych) to się nie bawiłem[1], więc moge się grubo mylić, ale coś mi się z lektury map pamięci do STE kojarzy, że STE ma sprzętowy mikser.

Poza tym przetworniki w STE oczywiście karmione są "zupełnie sprzętowo", tzn. przez DMA.

@fazior: zdaje się, że mylisz Yamahę z przetwornikami C/A ...

[1] moje jedyne osiągnięcie, to opanowanie techniki kopiowania danych po pamięci Falcona przy użyciu DMA Replay i DMA Record odpowiednio spiętych matrycą audio - oczywiście rzadko do czego jest to komu potrzebne (głównie do wykrycia, czy istnieje external clock). :)

2,435

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

Bo pewnie program, który zapuściłeś, gra na Yamaszce.

Tak ściślej, to SpartaDOS >= 4.0 (czyli SpartaDOS X). Generalnie, po wykryciu SpartaDOS X mozna zakładać, że przynajmniej część rozszerzenia jest zajęta (albo całe). Na stronie truba jest PDF, w którym jest omówione chyba szczegółowo, w jaki sposób sprawdzić pod SpartaDOS X, czy rozszerzenie istnieje, jakiego jest typu, ile jest wolnych banków i które to.

Sposób detekcji SDX to:

TBXL napisał/a:

IF PEEK($0700)=ASC("S") AND PEEK($0701)>=64
  ? "SpartaDOS X"
ENDIF

2,437

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

Nawet 3 sekundy to trzy razy tyle, ile trwa ładowanie. W ogóle to przydałby się jakiś ogólny program do przetwarzania spakowanych file'ówek na niespakowane, ale to pewnie marzenie ściętej głowy.

2,438

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

seban napisał/a:

1) spakowana (Code3 Cruncher + fast depacker)

Seban, a wersję niespakowaną możesz dać? Bo spakowane gierki mają tę nieprzyjemną właściwość, że z twardego dysku wczytują się sekundę, a potem rozpakowują trzy minuty.

2,439

(13 odpowiedzi, napisanych Software, Gry - 16/32bit)

W ROM-ie ST? Po pierwsze nie mogę, po drugie pewnie w każdej wersji TOS-u jest on inny (font i tak jest kopiowany do RAM-u oidp.)

NVDI 4 powinno mieć ten font w postaci pliku. Ale nie posiadam.

2,440

(13 odpowiedzi, napisanych Software, Gry - 16/32bit)

mikey napisał/a:

Moge wyrżnąć z romu od ST, ale nie jestem pewien czy to ten sam font co systemowy.

Ten sam. :)

2,441

(23 odpowiedzi, napisanych Fabryka - 8bit)

IDEa przecież ma na przelotce gniazdo na kartridże - albo przynajmniej miejsce pod takowe gniazdo.

Maxflasz ma dwie wady: po pierwsze niepełne dekodowanie (rejestrami swoimi zaśmieca całą stronę, przez co są problemy ze sterownikiem od R-Time8, zawiesza Spartę zaprogramowaną z Maxflaszu 8Mbit), po drugie nie jest przelotowy. Po trzecie niektóre egzemplarze (te najstarsze) są zdupcone i nie z wszystkimi komputerami chcą współpracować. Tucker je nawet wymieniał swego czasu.

Anyway, może byś, electron, pokusił się o zrobienie swojego kartridża z flaszem, przelotowego i grzecznie się dekodującego.

2,442

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

Pakiet matematyczny nie ma tablicy odwołań i to jest jedna z jego głównych wad (acz jak wiadomo, nawet nie najwazniejsza). A usprawiedliwić to można tylko tym, że tablica skoków się pewnie panom programistom w tych 2k nie zmieściła.

Nielegalne odwołanie do ROM-u to każde, które posługuje się bezpośrednio (jako stałą) adresem wewnątrz ROM-u, oprócz tych, które zostały zdefiniowane jako legalne :) Legalne są:

* sygnatury w XL OS-ie ($C002 i nastepne bajty, szczegóły w Atariki)
* tablica skoków
* adresy wewnątrz pakietu matematycznego (ale w granicach rozsądku)

I to chyba tyle. Te adresy po prostu gwarantowanie się nie zmienią w żadnej wersji OS-u.

Część procedur nie jest legalnie dostępna bezpośrednio, ale jest dostępna przez wektory w pamięci RAM. To są głównie procedury przerwań, ale nie tylko, np. w każdym bloku IOCB jest wektor PUTBYTE, przez który można wywołać ze sterownika urządzenia podprogram wysyłający na to urządzenie bajt.

Teraz, po co to komu. Po to, żeby można było bez problemu ulepszyć system operacyjny, gdy kogo najdzie taka chęć. Dajmy na to, chcesz napisać lepszy pakiet matematyczny dla BASIC-a. Gdyby była tablica skoków, miałbyś na swoje pomysły całe 2k. Jednak konieczność zachowywania adresów wewnątrz utrudnia ci zakodowanie tego, bo jeśli twoja procedura FMUL jest dłuższa niż standardowa, to musisz skokiem JMP ominąć następną. Tracisz przy tym 3 bajty na skok, chociaż miejsca na kod wiele nie masz.

Tak samo z pozostałym OS-em, 16k (a w zasadzie to 10) to nie jest dużo, a konieczność utrzymywania nielegalnych adresów (dla kompatybilności) powoduje dodatkowe zmniejszenie tego obszaru i kosmicznie utrudnia wprowadzanie poprawek - bo np. wyobraź sobie, że jak dodasz jeden bajt do procedury SIO, to o ten jeden bajt się przesuwają wszystkie dalsze i musisz teraz kombinowac, jak je przesunąć z powrotem.

Proponuję poćwiczyć na jakimś własnym programie, tzn. zadać sobie konieczność utrzymania adresów wszystkich podprogramów, a potem, bez przedłużania kodu, wprowadzić jakieś major poprawki.

EDIT: pomysłowo ominięto ten problem w SpartaDOS X - procedury biblioteki mogą być pod dowolnymi adresami i niczgo nie trzeba utrzymywac w nastepnej wersji, bo jest lista symboli, takich wskaźników, które zawsze wskazują aktualny adres, pod jakim znajduje się procedura (ale trochę w inny sposób, niż to robią wektory).

2,443

(23 odpowiedzi, napisanych Fabryka - 8bit)

No i to tyle na ten temat. Poza tym, macgyver, akurat tobie chyba lutownica nie straszna, potrafisz zrobić rozszerzenie pamięci do Atari, więc SDX też byś zmontował. Gdybyś chciał :P

2,444

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

larek napisał/a:

Legalne - nielegalne, ale działa znakomicie :D

Do czasu, kiedy zmienisz OS na taki, który pod tym adresem ma co innego. Albo, nie daj panie Boże, zechcesz do XL OS-u z jakigoś powodu zaaplikować zmodyfikowane procedury przerwań IRQ. Wtedy "znakomite działanie" tej metody się skończy. Nie bój żaby, "legalność" adresów wewnątrz OS-u ma swoje uzasadnienie.

2,445

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

Fox: to użycie nielegalnego adresu wewnątrz ROM-u. :P

2,446

(41 odpowiedzi, napisanych Sprawy atari.area)

Heh :)

Jeszcze co do samych nazw rang, nie mam pomysłu na całość, ale to i owo mozna byłoby poprawić. Na przykład, żeby najniższą rangą nie było "Atarowiec", bo dostają ją dosłownie wszyscy, w tym np. jacyś spamerzy, okazjonalnie zaglądający handlarze z allegro i tym podobni przypadkowi goście. Więc może lepiej, zeby najniższą rangą było "Przechodzień", czy coś w tym stylu. Do jakiejś całkiem wysokiej liczby postów, najlepiej okrągłej, np. 32 postów (na wypadek kolejnego najazdu jakiegoś sera).

Fajną nazwą rangi (nie wnikam, jak wysokiej) jest moim zdaniem wynikły powyżej "Atarowiec Sztabowy" (z aluzją do istnienia sztabów). Można byłoby ją dodać do listy.

Może nie byłoby głupie, gdyby "Atarowiec" (bezprzymiotnikowy) nie był rangą niską, ale odwrotnie, najwyższą?

2,447

(41 odpowiedzi, napisanych Sprawy atari.area)

jell: no ale kto ma tego pacza zrobić tudzież na czym przetestować przed podesłaniem? :)

2,448

(23 odpowiedzi, napisanych Programowanie - 8 bit)

maw napisał/a:

adres 40000 (156,64) to adres pierwszej komórki pamięci wyświetlania przy standardowym odpaleniu komputera w basic-u

Na twoim miejscu na to 40000 bym jednak nie liczył, bo np. pod Turbo BASIC-em XL to jest 48192. Lepiej odczytywac ten adres PEEK(88)+256*PEEK(89)

2,449

(41 odpowiedzi, napisanych Sprawy atari.area)

dely napisał/a:

Propozycja wysunięta przez draco jest słuszna, ale wymaga modyfikacji kodu

No tak. To może zgłosić to autorowi punbb jako propozycję rozszerzenia możliwości forum.

@macgyver: no właśnie, moja propozycja zmierza do tego samego, tylko trochę inaczej :)

2,450

(41 odpowiedzi, napisanych Sprawy atari.area)

@macgyver: okresowej denominacji można byłoby też uniknąc, gdyby poszczególnych rang nie dostawało się za określoną, bezwzględną liczbę postów, ale za określony, bezwzględny procent ogółu postów. Wtedy, przy dłuższym braku aktywności, można byłoby też ulec degradacji - lepiej niż w twoim systemie, bo u ciebie, gdy aktywnośc forum spadnie do zera, to rangi wszystkim zaczną spadac, co byłoby efektem dziwnym :)

@jacques: pewnie 4 to "starszy atarowiec sztabowy" :)