651

(192 odpowiedzi, napisanych Fabryka - 8bit)

No dobra, daje się jeszcze coś zoptymalizować :) Skróciłem loader o 14 bajtów :) Za to po dodaniu 12 bajtów loader nie będzie - na czas uruchomienia bloku z podanym adresem inicjacji - zostawiał żadnych swoich danych na stronie zerowej.
Ewentualne intra będą ją miały dla siebie w całości.
Chyba tak zrobię, choć zmniejszy to zysk pamięci do 2 bajtów :)

No i jest jeszcze jedna rzecz, którą chcę zmienić. W tej chwili loader przed uruchomieniem wczytanego programu odkłada na stos adres powrotu do SelfTest , czyli jak gra po uruchomieniu chce wracać do DOSa, to dostaje SelfTest. Niby fajnie, ale mam taką jedną grę - a lubię ją - nazywa się Jet Boot Jack :)
Otóż ta gra ma na starcie procedurę modyfikującą wektory skoku po reset na start gry wlasnie i kończącą się RTS. W efekcie po wczytaniu jej MSDOSem mamy SelfTest a po naciśnięciu Reset odpala się gra.
Mam taki koncept, na stos zamiast adresu SelfTest odkładam skok do resetu, a wcześniej wektory ciepłego startu ustawiam na SelfTest właśnie.
Czyli jeśli program zakończy się RTS nic to nie zmieni... ale jeśli wcześniej zmieni wektory resetu, to zadziała tak jakby wcisnął się reset.

Do zrobienia proste, kodu nie wydłuży a Jet Boot Jack się ładnie odpali - a może to nie jedyna taka gra :)
Chyba że ktoś ma uwagi do tej koncepcji ....

W mojej atarce wygląda to tak:

SIO2IDE w Atari 1

SIO2IDE w Atari 2

SIO2IDE w Atari 3

Niebieski przycisk (chwilowy) zamienia u mnie miejscami D1: z D9: , a pstryczek miedzy gniazdem SIO a USB przełącza tryb pracy SIO2IDE z SIO na USB oczywiscie.... a gniazdo obok to oczywiscie od AKI :)

Przełączanie w tryb USB jest w dzisiejszych czasach zbędne, bo w każdym grzybie jest czytnik kart CF, ale ja to składałem jak SIO2IDE dopiero powstawało...

653

(192 odpowiedzi, napisanych Fabryka - 8bit)

A czy kineskop zielonego monitora ma czarne tło ??? - oczywiście nie :) Ma zielonkawe.
08 B0 B0 nie jest takie złe.
Wiecie co... nie ma już co kombinować i optymalizować w MSDOSie. Poprawiłem oczywiście te zmiany kolorów, no i z drugiej strony nie bardzo mi się widzi wydłużanie programu, który zasadniczo ma być jak najkrótszy.
Pozostaje MSINI3 przepisać na assembler a MSDOS 4.6 ( cjoć od 4.5 różni się tylko ładniejszą zmianą kolorów - no i jest dzięki temu trochę szybszy, bo nie robi tak często jak poprzedni otwierania ekranu - w zasadzie to robi tylko raz) uznać za definitywanie zakończony.

- Da sie - ja tak mam od lat: mala szczelina na kartę z prawej stony atarki rządzi.
- jeden guzik sie przydaje (ale nie jest konieczny) - jest to guzik na chwilę zamieniajacy D9: z D1: , na D9: zawsze mam programik SIO2IDE Diskdżokej ;), ktorym mozna szybko przemapować dowolnego ATRa z karty na D1: i odpalić z niego ladaowanie. Jesli guzika nie wciskam, to mam moja domyslną partycje Sparty pod D1: a mapowanie moge zmienić jeszcze dwoma innymi programami.
- wydoli bez problemu.

655

(5 odpowiedzi, napisanych Sprawy atari.area)

A cuś trzeba przeładować??? bo ja to ciągle mam...

656

(5 odpowiedzi, napisanych Sprawy atari.area)

Otóż pisze sobie ostatnio często do różnych ludzi odpowiedzi przez PM. Staram sie pisać kurtularnie z polskimi znaczkami i jak się rozpędzę to przy pierwszym "ś" wylatuje z edycji, bo oczywiście ta kombinacja robi zapis wersji roboczej.
No i trzeba wracać do edycji i znowu pamiętać że literka ś wyrzuca z edycji..... no dziś (proszę oto kolejne słowo z ś) miałem tak 4 razy przy jednej odpowiedzi!!!
Sprawdziłem pod różnymi przeglądarkami - nie ich wina.
Proszę o wyłączenie opcji "Save as draft", albo przynajmniej odpięcie od niej skrótu klawiszowego Alt+s - bo nie odróżnia prawego Alt od lewego!!!

657

(15 odpowiedzi, napisanych Fabryka - 8bit)

Ujednolicony fileselektor byłby fajniejszy :). Niech program sobie wygląda dowolnie - wybór plików za to będzie ustandaryzowany.
Mam nawet ciekawszy pomysł, ale dotyczy on tylko Sparty X.
Jakby już był taki fileselektor działający jak FORMAT w SDX (w sensie własnego ekranu i własnej pamięci roboczej), to można by było pokusić się o włożenie go do Sparty na stale!
Wywoływałoby się go robiąc np:
OPEN #1,4+16,0,"D:costam.com"
Do aux1 dodać by trzeba 16 (bo zdaje się wyższe bity już są przez Sparte stosowane.
Otwarcie do odczytu umożliwiałoby wybór istniejącego pliku, a do zapisu - wybór katalogu i wpisanie nazwy.
I to jest słuszna koncepcja!!!
Polecenie Format (czyli XIO 254 z Basica) tak działa czemu by open nie mogło dawać takiej możliwości :)

658

(192 odpowiedzi, napisanych Fabryka - 8bit)

Wiem oczywiscie, ze tak jest... Wynika to trochę z tego, że program napisany jest systemowo.
Na poczatku (także przy zmianie katalogu czy dysku) robi kulturalne GR. 0, co powoduje przywrocenie kolorow systemowych, wiec natychmiast zmienia je na swoje oryginalne. A nie wie wtedy jakie mają być kolory, bo dopiero teraz czyta katalog i jak znajdzie w nim MSDOS.DAT, przechodzi do jego odczytu. Dopiero jak odczyta go w calosci, przechodzi do analizy i wyswietlania i dla oszczędności kodu to tu jest procedura wczytania parametrów.

Metody poprawienia tego widzę, nawet 3.
- zlikwidowanie kolorów domyslnych MSDOSA i pozostawienie systemowych (jakoś mi się to nie podoba)
- bezpośrednio po GR.0 (skoro mamy mignięcie na czarno) wyłączenie ekranu i włączenie go dopiero po wyswietleniu listy plików (też jakoś nie podoba mi się),
- robienie GR. 0 tylko raz na początku programu (bo i tak zawsze przy przerysowaniu jest wysyłany na ekran kod czyszczenia), przy okazji procedurę robiącą GR.0 możnaby przerzucić do bufora na dane - bo potrzebna będzie tylko raz i może potem zostać zamazana - to mi się podoba najbardziej, bo optymalizuje kod, a jak będzie wyglądało??? kto wie. Odpadną mrugnięcia, zmiany kolorów na systemowe, więc i konieczność odtwarzania kolorów MSDOSowych....

Obaczę co się da zrobić :)

659

(15 odpowiedzi, napisanych Fabryka - 8bit)

Moja koncepcja takiego fileselektora jest taka:
- kod calkowicie niezalezny od reszt programu z wlasna pamiecia obrazu i DL.
- jeden parametr (sciezka z nazwa pliku) przekazywany w obie strony
... i to wszystko, w dzialaniu cos jak rozkaz "FORMAT" w Sparcie X.
Przekazujemy tej procedurze adres sciezki zakonczonej bajtem 155 (np. ostatnio wybierany plik...), robimy JSR i w tym samym miejscu dostajemy wybor uzytkownika.

Bylby to niesamowicie uniwersalny modul, no i ile wiecej programow mialoby wygodny wybor pliku jak kazdy moglby ten sam modul wkladac :).
Oczywiscie zakladam, ze ten fileselector dzialalby tak jak na 16-to bitowcach - wyswietlajac liste plikow do wyboru lub umozliwiajac wpisanie nazwy recznie (czyli dodatkowy parametr odczyt/zapis), a moze i maska....

660

(192 odpowiedzi, napisanych Fabryka - 8bit)

Napisz precyzyjniej jak o sie objawia.... bo co jak co, ale edycja tych parametrow powinna dzialac zawsze. Jest poprostu niezalezna od reszty programu. A to pod emulcem czy real Atari?? Bo na real Atari to trzeba Ctrl+szczalka wciskac :) (tak pisze, bo Pirx mial przez chwile ten problem ;) )

A i sciagnij jeszcze raz paczke z poprzedniej strony. Wymienilem tam MSINI3 na wersje widzaca do 256 plikow.
Ze wzgledu na pewne ograniczenia MMG Basic Compilera w trybie Ineger (a tak jest kompilowany MSINI3), w przypadku ilosci plikow wiekszej niz 128 moglo nastapic zamazanie czesci danych i faktycznie dziwne objawy, w poprawce staralem sie to wyeliminowac.

Ale tak naprawde jak bedzie wersja w assemblerze to bedzie najlepiej :)

661

(192 odpowiedzi, napisanych Fabryka - 8bit)

Ech... Msini3 to tak naprawde prosty programik w basicu... Zdaje sie ze jest tam ograniczenie do 128 plikow.. taka zmienna tekstowa.... sorry.
Zobacze ile wolnego RAMu sie da jeszcze wyciagnac.

Ale zasadniczo bede przepisywal MSINI na assembler, bo w BASICu sie dosc trudno pisze (a szczegolnie poprawia jak numerow linii brakuje).

662

(192 odpowiedzi, napisanych Fabryka - 8bit)

Gotowe.
W załączniku zip z atrami zawierającymi nowy Micro SpartaDOS 4.5 , a także nową wersję MSINI3.
Ta wersja umożliwia wybór spośród predefiniowanych schematów kolorów lub ustawienie kolorów własnych (oczywiście kolorystyka zmienia się tylko w tym katalogu, w którym edytujemy plik DAT i może być różna w różnych katalogach) i obsługę znacznika blokady wbudowanych procedur Ultra Speed.
MSINI3 warto umieścić w katalogu wskazywanym przez PATH by mieć możliwość szybkiego uruchomienia w katalogu, w którym chcemy tworzyć/edytować plik MSDOS.DAT.
Plik DAT mimo dodania nowych funkcji jest zgodny w każdą stronę z każdą wersją MSDOS.
Wszystko jest i tak opisane w załączonych plikach tekstowych - przeczytajcie sobie.

Edit: Podmieniłem paczkę, jedyny drobiazg to zwiększenie ze 128 do 256 liczby plików widzianych przez MSINI3.

663

(192 odpowiedzi, napisanych Fabryka - 8bit)

Jesli jest to naped od 1 do 8 to wyswietla sie D1: - D8: a jesli 9 do 15 to oczywiscie I: - O:.
Milosnicy literek chwilowo moga zobaczyc cyferke ;).
Ale jak nie lubisz ogladac D2: zawsze mozesz nacisnac ctrl+B ...

664

(192 odpowiedzi, napisanych Fabryka - 8bit)

Coś cisza jakaś na forum.....
Zabrałem się do roboty, bo Pirx stwierdził, że nie lubimy forków i że powinna być jedna wersja, no i zaimplementowałem ten "dualizm". Jak sie wciska cyfrę 1-8 to wyświetla się D1: - D8:, a jak Ctrl+A-O , to wyświetla się A: - O:
A do tego dołożyłem możliwośc konfigurowania pewnych parametrów w zależności od folderu, który przeglądamy - są te parametry zapisywane w pliku .DAT. Zapisywane są jako jedna z długuch nazw, bez jakichś znaków specjalnych, więc nie zmieniaja struktury pliku DAT. Nowy DAT bedzie doskonale działał z innymi wersjami, a stary DAT z nową wersja... nic nie zmieni.
Na poczatek dodane 4 parametry:
- 3 kolory (literki, tlo, ramka)
- wymuszenie wylaczenia turbo przy wczytywaniu plików z danego katalogu.

Tak więc, można będzie mieć różną kolorystykę w poszczególnych katalogach (wiem ze malo przydatne, ale kodu niewiele, a fajne), a blokowanie tubo moze sie przydać jeśli macie gry, które maja problemy z działaniem z właczonym turbo (wymagaja b. niskiego MEMLO, albo gryza sie z szybką transmisją). Wystarczy wrzucić te gry do odrębnego katalogu i w pliku DAT w tym katalogu włączyć opcję blokady - i nie trzeba pametać o Shift.

Opublikujemy jak tylko powstanie MSINI3 - obsługujący te dodatki :) czyli .... jutro ??? :)

665

(192 odpowiedzi, napisanych Fabryka - 8bit)

Eee po jednym pliku można tylko :)

666

(192 odpowiedzi, napisanych Fabryka - 8bit)

Poprawione wersje 4.3b i 4.4b :)

Przy okazji małe usprawnienie współpracy z urządzeniami PBI (dzięki Drac030).

Prawdopodobnie, jeśli macie dyski z grami nagrane przez skopiowanie wszystkiego na czysty nośnik nigdy by się Wam ten błąd nie objawił. Wczytywanie wywalało się jeśli ładowany plik miał w ciągu zajmowanych przez siebie sektorów "dziurę" o długości większej niż 127 a mniejszej niż 254 sektory. Co mogłoby się przytrafić  w przypadku kasowania i ponownego nagrywania plików na dysku (fragmentacja).

Readme i gotowa paczka później :) , na razie pliki wykonywalne:

667

(192 odpowiedzi, napisanych Fabryka - 8bit)

tebe: Może łatwiej zastosować BW-DOS ?

No chłopaki... mały problem. Otóż w obu opublikowanych wersjach jest błąd. Większości z Was nigdy się zapewne nie objawi, bo może się przytrafić wyłącznie na mocno pofragmentowanym pliku, a i to w specyficznym przypadku. Błąd zidentyfikowany już i łatwy do poprawienia. Poprawki jutro, bo nie mam dostępu do kompa, a pisanie na klawiaturze wirtualnej tabletu nie jest zbyt wygodne.
Ale co z numeracją ? :)

Drac030 ... dzięki za porypaną mapę pliku :)

668

(192 odpowiedzi, napisanych Fabryka - 8bit)

Dely: Sprawdzanie jest i u mnie działa, tak na SIO2IDE jak i na emulcach. Na KMK (jesli używa standardowych procedur i w odpowiednich komórkach jest to, co trzeba) też działać powinno.

Kod jest następujący:

LDA DDEVIC
CLC 
ADC DUNIT
SEC
SBC #$01
AND #$0F
STA BootDrive

Czyli tak jak robi to OS.

drac030: Myślałem nad tym żeby zostawić jeden bufor (dwusektorowy), zapamiętać na stałe adres sektora trzymającego mapę obecnego katalogu i pozwolić tylko na DIR, OPEN, GET i GET BLOCK, CLOSE. Miało by to szansę na działanie w zastanym folderze. Z tym, że albo DIR, albo OPEN i tylko jeden plik jednocześnie. MEMLO by już nie było tak niskie, więc Sparta X w trybie Banked mogłaby mieć zbliżone.
Więc - sensu nie ma. Lepiej jest tak pisać programy, żeby działały z DOSem :)

669

(192 odpowiedzi, napisanych Fabryka - 8bit)

Na naszej wspólnej.
Oczywiście, że możemy źródła przekazać, z tym, że znaczna część kodu pochodzi z dekompilacji oryginalnego MSDOSa, a kawałki odpowiadające za czytanie katalogu i pliku długich nazw nie są pokomentowane (są opisane w stopniu potrzebnym do pracy nad poprawkami, ale zrozumienie ich działania i tak wymaga kolejnego przeanalizowania - ja i Pirx po latach jeszcze raz musieliśmy to sobie przypominać),
Sam MSDOS, z powodu konieczności ograniczenia jego objętości jest napisany dość karkołomnie i często niezrozumiale.
Nie wiem czy nie łatwiej byłoby wyciąć tylko procedurę odczytu pliku i wokół niej napisać taki loader. Tylko po co? Wyjdzie z tego coś co będzie zajmowało tyle RAM co Sparta X .....

670

(100 odpowiedzi, napisanych Fabryka - 8bit)

Nie no ja wiem jak te turba działają :)
Ale np. TopDrive nie da się kulturalnie rozpoznać, trzeba wysłać jakiś rozkaz w tym standardzie i sprawdzić czy zadziała (co stwarza problemy z MyIDE np. - tak na atari age pisali). Dlatego zrezygnowałem z tego badziewnego turba.

671

(100 odpowiedzi, napisanych Fabryka - 8bit)

To ja jeszcze z jedną uwagą :)
Nawet jeśli zmienisz nazwę, to pozostaw na początku ROMu napis QMEG :)
Nie tylko MSDOS używa go do wykrycia że QMEG jest włączony (widziałem już kilka innych programów które to robią), a potrzebne jest to po to by wiedzieć że nie ma sensu samodzielnie obsługiwać turba dyskowego, bo zajmuje się tym QMEG.

Co do przyspieszaczy, to moge przetestować jedynie tryb Ultra Speed, bo mam tylko SIO2IDE pod ręką.
A tak ogólnie to jakie obsługujesz i co najważniejsze jak je rozpoznajesz, bo pisząc MSDOSa z obsługą 4rech przyspieszaczy, pojawił się problem jednoznacznego i szybkiego rozpoznawania ich na starcie. W efekcie pozostał tylko tryb US/Happy - czyli właściwie jedyny, który da się kulturalnie i bez tricków rozpoznać (no dobra jest jeszcze HDI, ale czy u nas ktoś widział coś co działa w tym trybie??).

672

(100 odpowiedzi, napisanych Fabryka - 8bit)

Wiesz, co ... jak tak patrze procedurę zimnego startu Atari OS, to ona sprawdza tylko zawartość 3 magicznych komórek w RAM, a potem od razu sprawdza obecność carta diagnostycznego.

673

(100 odpowiedzi, napisanych Fabryka - 8bit)

Oj tam..... kszanisz :)
W końcu, kto pisze tego OSa ???? :) :)
Myślę, że spokojnie można dać wykrycie i skok do carta diagnostycznego na samym starcie zimnego startu i z bańki.

I to naprawdę będzie fajna sprawa.
Przydałby się cart diagnostyczny z przyzwoitymi testami. Mialem kiedyś ten oryginalny - badziew straszny ;)

674

(192 odpowiedzi, napisanych Fabryka - 8bit)

U mnie Sparta wyświetla literki :) (taki mam ustawiony prompt w konfigu).
Dlatego też proponuje dwie równoległe wersje, ja zostaje przy 4.3 (i Ty tez :) ), a Dely i jeszcze te 3 pozostałe osoby na świecie niech mają 4.4 :)

675

(100 odpowiedzi, napisanych Fabryka - 8bit)

pajero: Cart diagnostyczny to najzwyklejszy cart. Od zwykłego różni się tylko tym, że ma ustawioną odpowiednią flagę w nagłówku. Flagę tę sprawdza OS w czasie procedury zimnego startu (no po co ja to pisze, przerabiasz QMEGa więc to wiesz....) i skacze do programu na tym carcie jeszcze przed testowaniem sprzętu.
Wsad zrobisz w 3 minuty. Skompiluj Twoje procedury testowe pod adres w który wpina sie cart, dodaj odpowiedni nagłówek i masz wsad diagnostyczny z Twoimi testami.
A dostępność.... Taka sama jak Twojego QMEGa :) , jak ktoś sobie wypali to ma :)