Autor Wątek: Pomidor.  (Przeczytany 5076 razy)

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Pomidor.
« dnia: 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, 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
Machines should work. People should think.

rzookol

  • ***
  • Wiadomości: 214
  • Miejsce pobytu:
    Lublin/Stasin
Odp: Pomidor.
« Odpowiedź #1 dnia: 2019.01.18, 15:25:37 »
Czy format dsk z FDD3000 jest zgodny z DSK z +3?
+2, +3, CPC128Plus, kilka Amigi, kilkadziesiąt Maków, walające się Commodore

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Pomidor.
« Odpowiedź #2 dnia: 2019.01.18, 17:49:20 »
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 :) )
Machines should work. People should think.

Sir David

  • ****
  • Wiadomości: 391
  • Miejsce pobytu:
    Białystok
Odp: Pomidor.
« Odpowiedź #3 dnia: 2019.01.18, 18:03:47 »
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?

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Pomidor.
« Odpowiedź #4 dnia: 2019.01.18, 18:17:35 »
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.
Machines should work. People should think.