forum speccy.pl
ZX Spectrum => SOFTWARE => Wątek zaczęty przez: steev w 2019.01.18, 14:06:12
-
Czyli 'TOs MAnpulating TOol'.
(jak wiadomo najtrudniejszą częścią napisania programu jest znalezienie dla niego nazwy ;) )
Binarka pod win leży na Source Forge (https://sourceforge.net/projects/fdd3000e/files/tomato/), innosystemowcy znajdą tam źródła (wymagane minimum C++11).
Może sporo, błędów wciąż jeszcze trochę jest (nadal wyłapuję i poprawiam, pliki na SF postaram się co jakiś czas aktualizować).
Wszelkie uwagi mile widziane.
A uprzedzając :
- tak, napisane jest paskudnie, miszung i groch z kapustą. Pewnie dlatego że postanowiłem w ten sposób poznać nieco STLa więc źródła to jeden wielki poligon :)
- nie, nie zapisuje (jeszcze) DSK dla dyskietek dwustronnych, choć plany były (jest w ogóle taka potrzeba?) ale je czyta.
Krótki help:
TOs MAnipulation TOol. v0.1
help :
-delete <tosname[.dir]> [<tosname[.dir]> ...]
Delete file(s) or folder(s) from image.
(Subfolders included. No questions asked.)
-dskscan <filename>
Shows internal structure of a dsk image.
-export [<directory>]
Extract all files from image to current or given folder.
-import <directory>
Put all files from folder into root directory of image.
(without creating TOS headers! No subfolders!)
-info
Show short info about image.
-list
List all files and folders.
-mkdir <tosname> [<tosname> ...]
Create new folder(s).
-move <tosname> <tosname>
Rename or move a file.
-new tos140 | tos140ds | tos620 | tos4 | tos4ds>
Create new image.
-open <filename.[img|dsk|edsk]>
Open an image.
-read <tosname> [<filename>]
Save a single tos file to local file.
-rename <dirname>
Change disk name.
-save
Save current image back to file.
-saveas <filename.[img|edsk|dsk|tap]>
Save current image to given file.
-sexport [<directory>]
Strip headers from all files and save them to current or given folder.
(disappointing, isn't it? ;)
-side <0|1>
Change disk side (tos140ds|tos4ds only)
-sread <tosname> [<filename>]
Strip header from a single tos file and save it to local file.
-write <filename> [<tosname>]
Wtite a single local file to image.
Nazwy:
plik/katalog w katalogu głównym - 'plik.ext' lub '0:plik.ext' , 'folder.dir' lub '0:folder.dir'
plik/katalog w folderze o id=4 - '4:plik.ext', '4:folder.dir'
Przykłady:
tomato -new tos140 -saveas empty.dsk
tomato -new tos140 -rename myimages -mkdir images -write ./img/speccy/olli.scr 1:olli -save olli.edsk
(zapisuje do katalogu o id=1, tutaj: nowo utworzony folder 'images', plik olli.scr, a później zapisuje obraz do pliku olli.dsk w formacie edsk)
tomato -open doublesided.dsk -export side_a -side 1 -export side_b
tomato -open mydisk.dsk -saveas mydisk.tap
-
Czy format dsk z FDD3000 jest zgodny z DSK z +3?
-
Ogólnie - nie.
IIRC +3 nie ma jednego ustalonego formatu dyskietki, i o ile potrafi przeczytać fizyczne dane z dyskietki FDD, to sam z siebie nie zna i nie obsługuje struktur TOS.
(Jeśli gadam głupoty to mnie poprawcie :) )
-
Co oznacza, że potrafi przeczytać dane z dyskietki? Nie obsługując "struktur", plików nie zobaczy, więc i nie przeczyta. Spectrum +3 (ale nie goły +3DOS) co najwyżej może przeczytać poszczególne sektory, tak jak przy kopiowaniu. +3DOS owszem ma ustalony format dyskietki, ale oryginalne gry są zabezpieczone na różne sposoby, aby z DOSa nie dało się odczytać zawartości. Dla porównania na FDD3000 chyba za dużo zabezpieczonych oryginałów nie było?
-
Co oznacza, że potrafi przeczytać dane z dyskietki? Nie obsługując "struktur", plików nie zobaczy, więc i nie przeczyta. Spectrum +3 (ale nie goły +3DOS) co najwyżej może przeczytać poszczególne sektory,
Właśnie o to mi chodziło.