1

Celem projektu jest poprawienie błędów oraz dodanie nowej funkcjonalności do najlepszego DOSa dla Atari. Opracowywana wersja jest oparta na FTe 4.22.

Podsumowuję ten topik z działu Software - co jest zrobione:
Bootowanie systemu:
Odczyt konfiguracji z dowolnego napędu (ustawionego przez OS w rejestrze DUNIT), związany z dodaniem przez Drac030 w systemie operacyjnym dla 65C816 menu wyboru dysku startowego. Uwaga: funkcja wyboru dysku startowego w QMEG OS działa w inny sposób
Nieco przyśpieszone bootowanie SDX w systemach z procesorem '816
Uruchamianie programów:
Sterownik RUNEXT.SYS (skojarzenia rozszerzeń)  umożliwia uruchamianie plików wraz z wybranymi programami; standardowo programy EXE i XEX z X.COM, nazwa.ARC wyświetla zawartość archiwum; możliwość tworzenia własnych skojarzeń (plik konfiguracyjny)
Możliwość uruchomienia BASICa w komputerach z 1MB RAM (do tej pory kończyło się to komunikatem ?Not present?)
Polecenie zewnętrzne RUN na CAR: (Lizard)
Edytor:
Obsługa szybkich procedur edytora QUICKED.SYS (KMK)
Nowy sterownik urządzenia XEP-80 (poprawna praca w systemie PAL)
Polecenie ECHO z opcjami ON/OFF (Lizard/KMK) na CAR:
Urządzenie CAR:
Utworzenie wersji SDX obsługującej kartridże o rozmiarze 16 banków (np. FlashCart Atarimax), możliwość wykorzystania pełnej przestrzeni 128kB dla urządzenia CAR:
Narzędzie pod Windows do przygotowywania obrazów ROMu SDX, umożliwiające umieszczanie dowolnych programów na CAR:
Czas i data:
TD.COM rozszerzony o wyświetlanie statusu Caps i Inverse; poprawiony błąd Y2K (błędny dzień tygodnia)
Data wyświetlana i wprowadzana w formacie DD-MM-YY (polecenia DATE, DIR)
Czas wyświetlany w formacie 24h (HH:SS, polecenie DIR)
Obsługa zegara czasu rzeczywistego ARC by Pasiu (Lizard) na CAR:
Ramdysk:
Usunięcie komunikatu o braku Sweet16 z RAMDISK.SYS
Szybki sterownik ramdysku dla procesora '816
Kompatybilność z poprzednimi wersjami SDX:
Należy używać symboli procedur biblioteki SDX zamiast adresów - w tej wersji są one inne niż w 4.20 i 4.22 i mogą się zmienić.
Zamiast adresów zmiennych SDX z obszaru od 900 do minimalnego memlo należy używać offsetu względem COMTAB, który zmienne te we wszystkich wersjach mają taki sam (a ja postaram się je zachować ;)).
Niektóre programy (UNERASE, RPM) zostały usunięte z CAR: ze względu na niską przydatność i potrzebę miejsca no coś lepszego
Pod adresem $702 jest liczba jedności numeru rewizji SDX (np. wersja 4.31 ma tam umieszczone 1)
Zmienna _816flag (wstępnie COMTAB+$26D) różna od zero oznacza obecność procesora '816
Komentarz w plikach .BAT jest oznaczany średnikiem ; (a nie gwiazdką jak w 4.22)

No i:
- czy coś jest nie tak jak powinno
- czy ktoś napisał lub ma sterownik, który powinien być na CAR: (a nie np. na HDD)
- czy ktoś ma jeszcze jakiś pomysł (i chce mu się go zrealizować;, ew. w wersji 4.4)

[ Dodano: 2005-05-25 12:59:40 ]
I jeszcze najnowsze propozycje:

1. Jak uzyskać adres symbolu w programach nie kompilowanych z nagłówkami SDX
Można wykorzystać nieużywany skok pod adresem $7EB dla procedury fsymbol, która będzie zwracała adres podanego symbolu. Użycie:

jfsymbol  equ $7EB
sz_symbol DTA C'U_SLASH '   ;nazwa symbolu 8 znaków
adr_sym   DTA A($FFFF)

     LDA #<sz_symbol
     LDX #>sz_symbol
     JSR $7EB              ;jfsymbol
     STA adr_sym
     STX adr_sym+1
     ORA adr_sym+1
     BEQ _nie_znaleziono
    
; tu coś robimy z adresem,np. JSR

2. Ładowanie programów
- Ze sterownikiem RUNEXT domyślnie programy z rozszerzeniem EXE ładują się z konsoli zawsze z X.COM (wiadomo). Ale będzie można to pominąć w konsoli poprzedzając nazwę hashem, np. #DUPA.EXE uruchomi program z wlączonym modułem, mimo aktywnego RUNEXTa.
- poprzedzenie nazwy w konsoli wykrzyknikiem, np. !filename wyłącza moduł SDX (programem X.COM) - rozszerzenie EXE można pominąć (ale nie COM)
- Jeżeli w nagłówku typu $FFFF jest adres powyżej $A000, to program nie może zostać załadowany bez X.COM. W takim przypadku w 4.3 zwracany będzie błąd "Out of memory". Oczywiście nie wykryje się w ten sposób sytuacji, gdy kod programu jest poniżej $A000, ale dane są alokowane powyżej. Mimo to warte wprowadzenia.

[ Dodano: 2005-05-25 13:15:48 ]
3. Programy do HDD
Dobrze byłoby wrzucić na CAR: programy umożliwiające konfigurację partycji (S2I i MNT), żeby w razie potrzeby móc je zawsze uruchomić z CAR: (gdy np. nie mamy do nich dostępu bo za bardzo machaliśmy partycjami)

2

W takim przypadku w 4.3 zwracany będzie błąd "Out of memory"

Ja bym proponowal zmienic komunikat na 'Memory conflict' albo cos w podobie. 'Out of memory' moze byc nieco mylace, bo w sumie pamieci nie brakuje...

ad.3
Popieram w calej rozciaglosci. MNT.COM musi byc!

3

Błąd "Out of memory" już jest w kernelu SDX, dlatego nie musiałem go dorabiać.
Ale można dodać "Memory conflict" o ile znajdzie się wolny numer błędu. Może np. $B2 = 178 ?)

4

Polecenie ECHO z opcjami ON/OFF (KMK) na CAR:

Które to jest ECHO? Draco napisał kiedyś wersję nierelokowalą (v.1.1), którą potem poprawiłem na relokowalną, dodając chyba jeszcze jakąś featurę (v.2.0).

Jak uzyskać adres symbolu w programach nie kompilowanych z nagłówkami SDX
Można wykorzystać nieużywany skok pod adresem $7EB dla procedury fsymbol

Czy ten skok jest tylko w Twojej wersji, czy istnieje od dawie dawna, tylko ja o czymś nie wiem? :?

Zawsze mam rację, tylko nikt mnie nie słucha.

5

Nie znalazlem w wykaznie zmian informacji o przerobce umozliwiajacej zawsze poprawne rozpoznanie dostepnej pamieci pod SDX. Slyszalem, ze Lizard dokonal jakis zmian w kodzie SDX, ktore to zapewniaja. Polegac to ma na tworzeniu czesci tablicy T_ w obszarze grup bankow w zaleznosci od typu rozszerzenia.
Obecnie, z tego co sie orientuje, tablica T_ w tej czesci, ma na stale powstawiane wartosci.
Problemem jest np. rozpoznanie wszystkich bankow w rozszerzeniu 320 kb typu Compy.

Można wykorzystać nieużywany skok pod adresem $7EB dla procedury fsymbol, która będzie zwracała adres podanego symbolu.

Dotyczy to takze tablicy T_? Moze przydalby sie jeszcze spis symboli, ktorych adresy procedura jest w stanie oddac.

6

Do listy symboli możesz użyć programu SL.COM, który wypisuje wszystko nt danego symbolu (adres symbolu, adres obiektu wskazywanego przez symbol, rodzaj pamięci zajmowanej przez obiekt).

Zawsze mam rację, tylko nikt mnie nie słucha.

7

Które to jest ECHO? Draco napisał kiedyś wersję nierelokowalą (v.1.1), którą potem poprawiłem na relokowalną, dodając chyba jeszcze jakąś featurę (v.2.0).

Faktycznie to wersja 2.0, czyli pewnie Twoja.

Czy ten skok jest tylko w Twojej wersji, czy istnieje od dawie dawna, tylko ja o czymś nie wiem? :?

W dotychczasowych wersjach jest tam JMP $0000, to chyba się da go użyc?

Dotyczy to takze tablicy T_? Moze przydalby sie jeszcze spis symboli, ktorych adresy procedura jest w stanie oddac.

Wszystkich symboli w tym T_. Trudno jest je wywołać jeśli się nie używa nagłówków SDX (np. z Turbo Basica ;)). Stąd pomysł na tę procedurę w nowej wersji SDX. Konkretnie chodzi o możliwość dobrania się do S_LOOKUP.

Do listy symboli możesz użyć programu SL.COM, który wypisuje wszystko nt danego symbolu

Tak, ale chodzi o to aby w przyszłości programy mogły dynamicznie znajdować adres symboli. Jak pisałem, ich adresy są inne w 4.20, 4.22 i 4.3 a pewnie się zmienią w przyszłych wersjach. Dotyczy to oczywiście także symboli definiowanych przez programy.

[ Dodano: 2005-05-25 17:00:00 ]

Slyszalem, ze Lizard dokonal jakis zmian w kodzie SDX, ktore to zapewniaja. Polegac to ma na tworzeniu czesci tablicy T_ w obszarze grup bankow w zaleznosci od typu rozszerzenia.

Lizard, jeżeli możesz zapodać mi ową zmianę, to włączę do 4.3 :D

8

Trub - to kiedy romik / soft do testów ??

Kontakt: pin@usdk.pl

9

a kiedy wersja finalna (lub w miare) SDX i DracOS ? bo nie mam zamiaru co chwila wymieniac epromki w atarce ;/ jakas przyblizona data  ? :>

"wszystko się kiedyś kończy......."

10

Faktycznie to wersja 2.0, czyli pewnie Twoja.

Eee, moje to było tylko przepisanie pod Fast Assemblera i uczynienie tego programem relokowalnym z możliwością załadowania do pamięci. Sama idea działania programu została niezmieniona.

ZTCP, to Echo miąchało coś z adresem pamięci ekranu. Nie jest to zdrowe rozwiązanie. Proponuję utworzyć urządzenie NUL. Wtedy ECHO OFF przekierowywało by wyjście z CON na NUL.

W dotychczasowych wersjach jest tam JMP $0000, to chyba się da go użyc?

A czy SDX nie wstawia tam w najmniej oczekiwanym momencie jakiegoś adresu celem skoku? To jej się zdaża. Jeśli nie, to jest to skok zarezerwowany, więc można go użyć.

Slyszalem, ze Lizard dokonal jakis zmian w kodzie SDX, ktore to zapewniaja. Polegac to ma na tworzeniu czesci tablicy T_ w obszarze grup bankow w zaleznosci od typu rozszerzenia.

Lizard, jeżeli możesz zapodać mi ową zmianę, to włączę do 4.3 :D

Hehe. Zdaje się, że już to masz. Nazywa się toto SSDXBNK. Przypomnij mi, czy dostałeś ode mnie tylko binarki, czy również źródła? Jeśli tylko bin, to src podeślę. Chociaż powinny być gdzieś w "bazie źródeł". ;)

Zawsze mam rację, tylko nikt mnie nie słucha.

11

Błąd "Out of memory" już jest w kernelu SDX, dlatego nie musiałem go dorabiać.
Ale można dodać "Memory conflict" o ile znajdzie się wolny numer błędu. Może np. $B2 = 178 ?)

Proponuję zajrzeć do listy błędów na Atariki:

http://atariki.krap.pl/index.php/Kody_b … 99d%C3%B3w

Błąd 178 jest już zajęty  8)

[ Dodano: 26.05.2005 13:53:00 ]

a kiedy wersja finalna (lub w miare) SDX i DracOS ?

OS jest już w zasadzie skończony. Poprawki będą, jeśli coś wylezie (w sensie błąd).

[ Dodano: 26.05.2005 13:58:46 ]

Echo miąchało coś z adresem pamięci ekranu. Nie jest to zdrowe rozwiązanie. Proponuję utworzyć urządzenie NUL. Wtedy ECHO OFF przekierowywało by wyjście z CON na NUL.

Zdecydowanie byłoby tak lepiej, ale nie jestem do końca pewien, co na to edytor ekranowy. Konkretnie wykonywanie jakichkolwiek poleceń w trybie OFF (w tym plików wsadowych) mogłoby się okazać problematyczne.

W dotychczasowych wersjach jest tam JMP $0000, to chyba się da go użyc?

Bardzo ciekawe w zestawieniu z faktem, że SDX wstawia $60 (RTS) pod adres 0.

KMK
? HEX$(6670358)

12

Zdecydowanie byłoby tak lepiej, ale nie jestem do końca pewien, co na to edytor ekranowy. Konkretnie wykonywanie jakichkolwiek poleceń w trybie OFF (w tym plików wsadowych) mogłoby się okazać problematyczne.

Sugerujesz, że Sparta wypisuje linię z batcha a ekra, sama wciska Return i wykonuje to co sobie wciska? ;) Wg mnie powinno być to tak, że linia wędruje do lbuf i dopiero stamtąd jest kierowana na ekran i do wykonania.

Zawsze mam rację, tylko nikt mnie nie słucha.

13

Może i powinno, ale edytor ekranowy działa tak, że linia jest odczytywana z ekranu, i dopiero potem wędruje do LBUFF. Łatwo sprawdzić - wejdź do BASIC-a, poczekaj na READY, a potem najedź na to słowo kursorem i wciśnij Return. Edytor odczyta z ekranu wyraz READY, zapisze w LBUFF, a BASIC stokenizuje (jako READ Y) i spróbuje wykonać.

KMK
? HEX$(6670358)

14

chwileczke.. - moment - to dlaczego używam ECHO 2.0 (off) w baczu, a po nim jest kikla rzeczy, które jednak się wykonywały (i dalej to robią) ?? :)

Kontakt: pin@usdk.pl

15

Właśnie dlatego, że istniejący echo.com nie przekierowuje niczego na żadne NUL.

KMK
? HEX$(6670358)

16

W takim razie należy Spartę przerobić tak, by odczyt batcha wędrował do lbuff, a stamtąd do interpretera oraz na konsolę. Należy też dorzucić urządzenie NUL. Przy takim rozwiązaniu przekierowanie wyjścia nie miałoby wpływu na wykonywanie plików wsadowych.

Zawsze mam rację, tylko nikt mnie nie słucha.

17

Dobrze byłoby wrzucić na CAR: programy umożliwiające konfigurację partycji (S2I i MNT), żeby w razie potrzeby móc je zawsze uruchomić z CAR: (gdy np. nie mamy do nich dostępu bo za bardzo machaliśmy partycjami)


w kwestii tego typu rozwiązań - a dlaczego by nie wywalić oprócz takiego ERASE np. MENU.COM - wrzucić go na HDD, a w to miejsce ***:)**** np FDISK.COM - o ile ten mieści się w 8kB (nie pamiętam teraz) - zresztą - w sumie - najlepiej zdiełać to w dwóch wersjach - dla SIO2IDE i dla AT-BUS ( :) ); powody są chyba oczywiste.

Kontakt: pin@usdk.pl

18

FDISK-a bym tam nie wrzucał, po pierwsze zajmuje 12k, po drugie przydaje się znacznie rzadziej, niż MENU, a po trzecie i tak niebawem będzie nowa wersja, bo stara ma jednak za mało możliwości a za dużo błędów.

Lizard: masz jakiś konkretny pomysł na to? Bo obecnie batche są robione po prostu przekierowaniem wejścia z klawiatury na plik. Nie bardzo widzę, od którego miejsca trzeba byłoby się za to zabrać, żeby przerobić zgodnie z twoim postulatem.

KMK
? HEX$(6670358)

19

W takim razie należy Spartę przerobić tak, by odczyt batcha wędrował do lbuff, a stamtąd do interpretera oraz na konsolę. Należy też dorzucić urządzenie NUL.

Mi się coś wydaje że można uprościć. Przetestujcie to co dołączam (com430 trzeba ustawić comspecem, dlatego przyda się pbi ide lub ramdysk).  Ta wersja tylko ustawia dla konsoli flagę, żeby nie wyświetlała prompta. Parametry ON/OFF/message. W 4.22 trzeba sobie zmienić nazwę np. echo2, bo na CAR: jest już plik o tej nazwie.

najlepiej zdiełać to w dwóch wersjach - dla SIO2IDE i dla AT-BUS (  ); powody są chyba oczywiste.

Pin ja mam oba, to co mam zrobić ?:D A MENU to zdaje się że używa np. Draco. W ogóle jestem za dołożeniem tych dodatkowych 8 banków, myślę że np. pasiową intSDX  można łatwo dostosować, przeprogramowując GALa, dodając parę kabelków no i większy romik, ale nie jestem specem.

Błąd 178 jest już zajęty

No to będzie 179, jak mi się uda opatentować w Atariki :D

Nazywa się toto SSDXBNK. Przypomnij mi, czy dostałeś ode mnie tylko binarki, czy również źródła? Jeśli tylko bin, to src podeślę. Chociaż powinny być gdzieś w "bazie źródeł".

Mam od Ciebie same binarki, jakbyś mi podał namiary na tę bazę albo podesłał to żródła byłoby git.

kiedy wersja finalna (lub w miare) SDX i DracOS ? bo nie mam zamiaru co chwila wymieniac epromki w atarce ;/ jakas przyblizona data ? :> to kiedy romik / soft do testów ??

Wersja finalna? Zawsze będzie coś do poprawienia i ulepszenia - zarezerwuj kilka epromów ;) A do testów coś przygotuję soon.

20

Przetestujcie to co dołączam (com430 trzeba ustawić comspecem, dlatego przyda się pbi ide lub ramdysk).  Ta wersja tylko ustawia dla konsoli flagę, żeby nie wyświetlała prompta. Parametry ON/OFF/message.

Nie mogę przetestować solidnie (tj. na Atari), ale na emulcu chyba działa dobrze.

BTW. dlaczego com430.com definiuje symbol _COMMAND zamiast @COMMAND?

KMK
? HEX$(6670358)

21

Lizard: masz jakiś konkretny pomysł na to? Bo obecnie batche są robione po prostu przekierowaniem wejścia z klawiatury na plik. Nie bardzo widzę, od którego miejsca trzeba byłoby się za to zabrać, żeby przerobić zgodnie z twoim postulatem.

Zacznijmy od tego, że zapis na ekran, a potem odczyt z niego, tego co wpisał użytkownik jest odwracaniem kota ogonem i należałoby to zmienić na bardziej "współczesne" podejście do problemu. Jak to jest rozwiązane w systemach profesjonalnych, takich jak np. za przeproszeniem DOS, czy shellu? :)

Mam od Ciebie same binarki, jakbyś mi podał namiary na tę bazę albo podesłał to żródła byłoby git.

Ok. Jeszcze dziś podrzuceł na tym wątku swoje źródłówki do SDX. Dałem je jakiś czas temu Stryjkowi, ale tten nie kwapi sie do pochwalenia się swoją stroną ze źródłami, o których mowa w http://atariarea.krap.pl/forum/viewtopic.php?t=2565. ;)

Zawsze mam rację, tylko nikt mnie nie słucha.

22

Dałem je jakiś czas temu Stryjkowi,

no ciekaw jestem kiedy ;] ? :>

"wszystko się kiedyś kończy......."

23

Zacznijmy od tego, że zapis na ekran, a potem odczyt z niego, tego co wpisał użytkownik jest odwracaniem kota ogonem i należałoby to zmienić na bardziej "współczesne" podejście do problemu. Jak to jest rozwiązane w systemach profesjonalnych, takich jak np. za przeproszeniem DOS, czy shellu? :)

Tak, że nie możesz powtórzyć ostatnio wklepanego polecenia najeżdzając po prostu kursorem na coś, co jest linijkę wyżej. Musisz mieć do tego bufor historii.   Odczyt z ekranu jest jedynym sensownym rozwiązaniem, jeśli ten edytor ma się do czegoś nadawać.

W każdym razie trubia wersja echo + command.com robi już bardzo dobre wrażenie, tak więc może nie trzeba będzie niczego bardzo przerabiać.

KMK
? HEX$(6670358)

24

Zacznijmy od tego, że zapis na ekran, a potem odczyt z niego, tego co wpisał użytkownik jest odwracaniem kota ogonem i należałoby to zmienić na bardziej "współczesne" podejście do problemu. Jak to jest rozwiązane w systemach profesjonalnych, takich jak np. za przeproszeniem DOS, czy shellu? :)

Uaaa... :)
Ale zes porownanie przywalil :)
W DOSach to kursory nie dzialaja w ogole, nie mozesz sobie skopiowac polecenia chodzac po ekranie. W czystym DOSie jest TYLKO powtarzanie ostatniego polecenia z mozliwoscia prostych jego modyfikacji (kursor w prawo kopiuje kolejna litere poprzedniego polecenia, sa tez inne kombinacje klawiszy do bardziej wyrafinowanych operacji na OSTATNIM rozkazie, ale kto je pamieta... :) ). Wieksze mozliwosci daja dodatkowe programy, ale to tylko pamietanie i przewijanie historii polecen, talej nie mozna nic pobrac z ekranu.

Edytor ekranowy Atari i kopiowanie z ekranu to naprawde fajne rozwiazanie... :)))

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

25

1. Osobiście wolałbym mieć jakąś historię poleceń niż jeżdżenie kursorem po ekranie. Zwłaszcza, że historię można mieć dłuższą niż 24 linie ekranowe. Kilka osób zresztą się o to pytało.

2. Kopiowanie z ekranu jest jak najbardziej fajną sprawą. Ale... Zmiana linii i wciśnięcie Return powoduje odczyt całościi, a nie tylko tego co wklepał użytkownik (znów trzebaby prowadzić historię). Dlatego SDX przy takich manewrach wywala "File not found".

3. Miałem na myśli odczyt pliku wsadowego bezpośrednio do bufora linii, a nie na ekran i dopiero potem odczyt tejże z ekran.

Zawsze mam rację, tylko nikt mnie nie słucha.