podstawy MSXDOSa (część 1)

MSXDOS czy Nextor

Nextor powstał na bazie MSX-DOS 2.31, jest wstecznie kompatybilny z MSXDOS, natomiast jest dużo nowocześniejszym systemem więc polecam się nim pobawić, szczególnie jeżeli macie przed sobą MSX2 mające 128k pamięci RAM.

Repozytorium Nextora znajduje się na Githubie tutaj, natomiast same pliki gotowych binarek do pobrania tutaj.

start

Nasz dysk albo dyskietka startowa powinna zawierać przynajmniej dwa pliki: MSXDOS2.SYS oraz COMMAND2.COM. Jeżeli chcemy pracować w systemie Nextor to odpowiednio będą to pliki NEXTOR.SYS i COMMAND2.COM plus niezbędny do prawidłowego działania odpowiedni kernel Nextora w pamięci ROM. Pewnym trickiem jest podmiana nazwy pliku NEXTOR.SYS na MSXDOS2.SYS, co pozwala na używanie podstawowej zawartości i funkcjonalności systemu Nextor na komputerze, który posiada ROM/Kernel MSXDOS2. Oczywiście – problemy zaczną się, gdy programy zaczną się odwoływać do komend albo zawartości ROMu, którego… nie mamy. Także jest to rozwiązanie bardzo “na sznurek” i wyłącznie do podstawowego zakresu używania – pytanie tylko na ile ma to sens.

pomoc

aby uzyskać pomoc dotyczącą danego programu czy komendy należy poprzedzić jego/jej nazwę komendą TYPE.

TYPE MAPDRV.COM

tworzenie plików wsadowych .BAT

Zarówno MSXDOS jak i Nextor wspierają pliki wsadowe czyli pliki tekstowe zawierające polecenia konsoli, wykonywane linijka po linijce – zastępują one czynność użytkownika w postaci ich wpisywania i zatwierdzania klawiszem RETURN.

COPY CON C:TEST.BAT

polecenie to utworzy na dysku C plik TEST.BAT, którego zawartość możemy w tym momencie wpisać z klawiatury (CON to konsola czyli klawiatura) aż do momentu, gdy naciśniemy CTRL-Z.

wpisanie komendy

C:TEST

uruchomi ten plik. Nie musimy wpisywać rozszerzenia .BAT, chyba, że na dysku mamy np. też program TEST.COM.

podglądanie plików .BAT

A co jeżeli chcemy obejrzeć zawartość pliku .BAT?

TYPE C:TEST.BAT

wyświetli na ekranie zawartość pliku TEST.BAT.

kopiowanie plików

Załóżmy, że mamy komputer z dwoma stacjami dysków (A: i B:) i chcemy po prostu przekopiować sobie pliki – np. systemowe, aby móc startować z innej dyskietki. Zakładając, że konsola wskazuje dysk A: (albo inny dysk systemowy):

COPY NEXTOR.SYS B:
COPY COMMAND2.COM B:

przełączanie do BASICa

Do przełączenia się do MSX BASIC służy komenda

BASIC

powrót z BASICa do MSX DOS

Natomiast jeżeli przełączyliśmy się do MSX BASIC i chcemy wrócić do MSX DOSa – wpisujemy:

CALL SYSTEM

zmiana aktualnej stacji dysków

System wskazuje nam w linii poleceń aktualnie aktywny dysk (i katalog w jakim jesteśmy). Zmianę dysku wykonujemy dość podobnie jak na innych systemach dyskowych wpisując literowe oznaczenie nowej stacji oraz dwukropek.

A:>B:
B:>

komendy MSXDOS

Komendy w MSXDOS mogą być:

  • wewnętrzne czyli zawarte w pliku COMMAND.COM albo COMMAND2.COM (dla MSXDOS2) np. DIR. Poleceń wewnętrznych w MSXDOS2 (a w zasadzie w COMMAND2.COM) jest trzynaście.
  • zewnętrzne w postaci programów typu .COM
  • wsadowe czyli będące plikiem tekstowym zawierającym serię komend zakończonych klawiszem przejścia do nowej linii

trzynastka z COMMAND2.COM

COMMAND2.COM zawiera trzynaście podstawowych poleceń – to oznacza, że mając na dysku tylko pliki MSXDOS2.SYS i COMMAND2.COM możemy korzystać tylko z tych 13 poleceń wbudowanych w system. A są to:

BASIC 

przełącza do MSX DISK-BASIC

COPY

kopiuje pliki.

DATE

Wyświetla aktualną datę albo pozwala ją ustawić/zmodyfikować.

DEL

Kasuje pliki.

DIR

Wyświetla listę plików w danym katalogu.

FORMAT

formatuje dysk albo dyskietkę.

MODE

Przełącza/ustawia tryb wyświetlania danej liczby kolumn tekstowych na ekranie.

PAUSE

Zatrzymuje wykonywanie pliku wsadowego.

REM

Polecenie to służy do wprowadzania komentarzy np. w plikach wsadowych. Za jego pomocą można też w pliku wsadowym wyłączyć daną linię polecenia – wszystko po REM jest traktowane jako tekst komentarza a nie polecenie do wykonania.

REN

Pozwala zmienić nazwę pliku.

TIME

Wyświetla aktualny czas albo pozwala go zmienić.

TYPE

Komenda ta wyświetla zawartość pliku (tekstowego albo wsadowego typu .BAT).

VERIFY

włącza albo wyłącza tryb weryfikacji operacji dyskowych zapisywania.

wildcards czyli zastępowanie znaków

W systemie MSXDOS są dwa znaki specjalne pomagające odnieść się do więcej niż jednego pliku. Wyobraźcie sobie sytuację, gdy chcemy wyświetlić wszystkie pliki zaczynające się na literę B.

DIR B*.*

Polecenie to wyświetli wszystkie pliki na literę B, o dowolnej długości nazwy i dowolnym rozszerzeniu.

Czyli * (asteriks) jest symbolem zastępowania dowolnego ciągu – nie oznacza jednego znaku a dowolną ilość.

Drugi znak specjalny to to “?” czyli znak zapytania. Zastępuje on jeden znak w danym miejscu ciągu nazw plików.

DIR B?.BA?

Polecenie wyświetli nam pliki, których nazwa jest dwuliterowa i zaczyna się na literę B, oraz których rozszerzenie zawiera w pierwszych dwóch znakach ciąg BA. Czyli taki warunek będą spełniać np. takie pliki:

B1.BAS
BA.BAT

formatowanie dyskietki

No dobrze, żeby się pobawić powyższymi rzeczami, trzeba sobie przygotować najpierw nośnik do tego. Zakładam, że może być taka sytuacja, w której nie będziecie mieli nic poza dyskietką do sformatowania.

Na szczęście do sformatowania dyskietki nie musimy ładować systemu z dyskietki (jak np. w 8bitowym Atari). Jeżeli nie włożymy dyskietki na starcie komputera albo dyskietka ta nie zawiera plików MSXDOS.SYS albo MSXDOS2.SYS oraz COMMAND.COM albo COMMAND2.COM to po prostu – włączy nam się MSX BASIC.

W MSXBASIC do formatowania dyskietek służy polecenie

CALL FORMAT

Jeżeli kernel (ROM dyskowy) zawiera obsługę dyskietek DD (720k) oraz mamy aktywne dwie stacje dyskietek to będziemy mieli do wyboru:

CALL FORMAT
Drive name? (A,B) A

1 - 1 side, double track
2 - 2 sides,double track

? 2
Strike a key when ready
Format complete
Ok

Niestety w składni MSX BASIC jest pewna niekonsekwencja – polecenie DIR z MSX DOS’a ma odpowiednik w postaci

FILES

FILES “B:”

FILES “\GAMES\*.BAS”

FILES bez parametrów odpowiada komendzie FILES “*.*” czyli wyświetleniu wszystkich plików w aktywnej stacji dysków, możemy też jak w powyższych przykładach wskazywać, konkretną stację (B) czy podkatalog z którego wyświetlamy pliki z rozszerzeniem .BAS