626

(192 odpowiedzi, napisanych Fabryka - 8bit)

W międzyczasie poprawiłem rozpoznawanie małych i wielkich liter (czyli Caps) oraz trybu Inverse (można sobie wciskać do woli ;) ), oraz - specjalnie dla naszego kerownictwa - dodałem kulturalne wyjście do DOSa (oczywiście jeśli uruchamiamy spod Sparty), za pomocą kombinacji Shift+Esc.
Może być ????

W zasadzie zdecydowana większość gier chodzi nawet jak MSDOS jest uruchomiony ze SpartyX z włączonym modułem - MSDOS odłącza wtedy moduł... A właściwie to znaleźliśmy tylko 2 niedziałąjące jeśli odpala się je w ten sposób. Tak więc można używać MSDOSa jako loadera normalne spod SpartyX :).

Jak się trochę z Pirxem obrobimy, to zasiądziemy i (mam nadzieję, że w dwa dni max) napiszemy MSINI4 w assemblerze i z obsługą parametrów z linii poleceń Sparty (przynajmniej takie jest założenie, że da się jako parametr podać katalog w którym chcemy edytować plik długich nazw).
Będzie wtedy obsługiwał więcej plików niż 256 - ograniczeniem, będzie pamięć - no i powinien być szybszy niż kompilowany BASIC. Co najważniejsze, jakoś łatwiej nam się poprawia programy assemblerowe niż basicowe :) , więc łatwiej będzie potem coś dopisać do MSINI4.

To tyle z frontu :)

627

(192 odpowiedzi, napisanych Fabryka - 8bit)

Dely a mógłbyś sprecyzować.
Przytrzymanie Shift jest sprawdzane przy pomocy sprawdzenia bitu w SKSTAT, więc Caps nie ma na to wpływu.
Faktem za to jest ze obsługiwane są tylko wielkie litery, więc jak masz aktywny Caps to trzeba wybierać gry  z wciśniętym klawiszem Shift. To zaraz zmienię, będą działały tak wielkie jak i małe litery.... w sumie invers też trzeba by wyeliminować :)

628

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

Bo palce szybciej piszą niż głowa pomyśli.... :)
Poprawilem już.

629

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

Robiąc poprawki do Toms MULTI, dawno temu przetestowałem różne prędkości transmisji. Stabilność prędkości wyższych niż 100 kbps była mocno dyskusyjna. Co z tego, że ładnie brzmiało, jak co drugi transmitowany sektor, to była powtórka nieudanego przesłania :)
Pisk był zabójczy, realna prędkość transmisji już nie. przy transferze w okolicach 120 kbps, realnie było około 70-80, tak wiele było wymagających powtórnego przesłania błędów komunikacji. Do tego wymaga zoptymalizowanej procedury transmisji (ja testowałem na Speed Start Inicjalizer, który taką prockę ma. Taka procedura US jest też w Micro Sparta DOS :)

630

(149 odpowiedzi, napisanych Miejsca w sieci)

O jak milo :)
Już się ssa, zaraz będę miał i ja :)

631

(149 odpowiedzi, napisanych Miejsca w sieci)

Kuna no, gdzie tego szukac... ???

632

(149 odpowiedzi, napisanych Miejsca w sieci)

Ale gdzie wrzucila?

633

(192 odpowiedzi, napisanych Fabryka - 8bit)

Dobra. Wszystko zrobione. Przy okazji poprawilem buga powodujacego wylaczanie BASICa mimo, że powinien zostać włączony (i tak był oznaczony na ekranie ;) ).
No i mam ciekawą zagwozdkę. W czasie testów nie odpalila mi sie gra Final Legacy. W poprzednich wersjach sie odpalala, po przelaczniu emulatora na NTSC tez sie odpala, takze w nowej wersji loadera!
Zaczalem analizowac kod tej gry i z pierwszych rozkazow wynika ze odpala sie raczej przypadkiem (dlaczego wiec odpalala sie w poprzednich wersjach MSDOS, a w nowej nie odpala sie wcale??, dlaczego chodzi w NTSC??).
Zastrzegam ze testowalem tylko pod emulatorami....
A oto ten kod z poczatku gry.... a jest to kopia z carta, a ten kawalek kodu odpala sie przed skokiem do obszaru samej gry.

7f86  LDA #$80
7f88  STA $6a  ;RAMTOP
7f8a  LDA #$00
7f8c  TAY
7f8d  TAX
7f8e  STA $0200,X   ; <--- zamazuje wektory przerwan!!!
7f91  INX
7f92  BNE $7f8e
7f94  STA $09  ;BOOT
7f96  STA $244   ;COLDST
7f99  LDA #$3c
7f9b  STA $d302  ;PACTL
7f9e  LDA #$52
7fa0  STA $02fc  ;KBCODES
7fa3  JMP $8000

Jak widać gra na starcie zeruje m.in. wektory przerwań nie blokując przerwań wcześniej!!!
Sprawdziłem, ze wyklada sie wlasnie dlatego ze w miedzyczasie wywoluje sie jakies przerwanie.
Tylko dlaczego w poprzedniej wersji loadera sie nie wywolywalo, i dlaczego nie wywoluje sie w NTSC ???

Tym bardziej ze zmiany w loaderze prawie zadne.

Oczywiście problemy z uruchomieniem tej gry to nie wina loadera (SDLOAD zachowuje sie tak samo jak najnowsza wersja MSDOSa), ale intryguje mnie dlaczego w poprzednich wersjach ta gra sie wczytywała. Troszke sie jedna procedura - uruchamiana po zaladowaniu kolejnego bloku - w loaderze wydluzyla (kosztem innej) i stawiam na to wlasnie + zbieg okoliczności z czasami wykonywania się procedur i wystepowaniem przerwań.

Wlasciwie gra ta chodzi tak samo dobrze (a przy okazji odpala sie zawsze, wiec lepiej) bez wykoniania przedstawionej wyzej procedury - wystarczy po zaladowaniu skok pod $8000 :)


Dodalem w loaderze czekanie az Antic zacznie rysowac ekran (czekanie na linie nr 0) przed skokiem pod adres startu gry i Final Legacy odpala sie zawsze..... wiec byla to kwestia szczescia. Ale zamiast zmieniac loader chyba trzebaby poprawic plik gry :)

634

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

636

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

638

(5 odpowiedzi, napisanych Sprawy atari.area)

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

639

(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!!!

640

(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 :)

641

(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ć :)

642

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

643

(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 :)

644

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

645

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

646

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

647

(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 ??? :)

648

(192 odpowiedzi, napisanych Fabryka - 8bit)

Eee po jednym pliku można tylko :)

649

(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:

650

(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 :)