OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 19.04.2024, 23:47

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 5 ] 
Autor Zpráva
 Předmět příspěvku: SAMdisk a práce s .TRD soubory
PříspěvekNapsal: 05.08.2016, 12:22 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.06.2013, 20:26
Příspěvky: 2487
Has thanked: 115 times
Been thanked: 424 times
Zkoušel jsem použít SAMdisk pro zápis .TRD souboru na fyzickou disketu, a funguje to jak víno - ale opačně, z fyzické diskety udělat .TRD mi nejde...

Není potřeba mu nějakým parametrem vnutit, že půjde o TR-DOSovou disketu, nebo tak něco? A pokud ano, tak jakým?

_________________
"Je lepší rozsvítit byť jen malou svíčku, než jen proklínat temnotu." (Konfucius)

www.zxsparrow.com


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SAMdisk a práce s .TRD soubory
PříspěvekNapsal: 05.08.2016, 17:20 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 08.07.2013, 00:28
Příspěvky: 1563
Has thanked: 487 times
Been thanked: 642 times
Tam je problém v číslování stran - obě mají podle mě číslo 0, o čemž budeš muset SamDisk nějak přesvědčit.

_________________
より良い競争相手からソフトウェアを購入する (。◕‿‿◕。)
Ďábel se skrývá v detailu (staré technické rčení)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SAMdisk a práce s .TRD soubory
PříspěvekNapsal: 05.08.2016, 19:17 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2344
Has thanked: 303 times
Been thanked: 640 times
tomascz píše:
Tam je problém v číslování stran - obě mají podle mě číslo 0, o čemž budeš muset SamDisk nějak přesvědčit.
Přesně tak.

Kdykoli jsem chtěl pracovat s Betadiskovými disketami na PC, tak bylo nejprve nutné na PC disketu formátovat, čímž bylo zajištěno správné očíslování stran a možná i nějaké další detaily. Používal jsem v DOSu utilitu HOFRMT.EXE, která je přibalená k programu HOBETA.EXE. Na takovou disketu zapíše PC (asi všemi utilitami, nejenom Hobetou) i Betadisk a soubory na ní lze přenášet tam i zpět.

Ale pro přenos celých TRD imagů doporučuju svůj http://cygnus.speccy.cz/popis_siftrd.php , je to mnohem praktičtější, data se dají posílat i z Linuxového PC s USB-RS232 redukcí, není potřeba disketová mechanika v PC atd... (na druhou stranu, je potřeba SIF u ZXS).

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SAMdisk a práce s .TRD soubory
PříspěvekNapsal: 08.08.2016, 23:23 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.06.2013, 20:26
Příspěvky: 2487
Has thanked: 115 times
Been thanked: 424 times
tomascz píše:
Tam je problém v číslování stran - obě mají podle mě číslo 0, o čemž budeš muset SamDisk nějak přesvědčit.

Tedy, mně se to sice nezdálo, protože SAMdisk hlásil chybu už při stopě 0 na straně 0, ale asi je to opravdu tím - když jsem SAMdiskem zapsal na disketu TRD image staženou od Rusů, tak tu disketu potom bez problémů přečetl zpátky do (jiného) .TRD souboru...

zxcygnus píše:
Kdykoli jsem chtěl pracovat s Betadiskovými disketami na PC, tak bylo nejprve nutné na PC disketu formátovat, čímž bylo zajištěno správné očíslování stran a možná i nějaké další detaily. Používal jsem v DOSu utilitu HOFRMT.EXE, která je přibalená k programu HOBETA.EXE. Na takovou disketu zapíše PC (asi všemi utilitami, nejenom Hobetou) i Betadisk a soubory na ní lze přenášet tam i zpět.

No, zatím jsem nenašel formátovací program, který by mi tu uspokojivě fungoval... Ten z Hobety taky nefunguje, teď už si nevzpomínám proč, ale mně tu nefunguje ani Hobeta, tak se asi není čemu divit...

Asi to vyřeším primitivně, ale účinně, jak by řekl baron von Kratzmar - zapíšu na disketu nějakou TRD image, ve které je jen jeden soubor, a ten pak smažu... 8-)

zxcygnus píše:
Ale pro přenos celých TRD imagů doporučuju svůj http://cygnus.speccy.cz/popis_siftrd.php , je to mnohem praktičtější, data se dají posílat i z Linuxového PC s USB-RS232 redukcí, není potřeba disketová mechanika v PC atd... (na druhou stranu, je potřeba SIF u ZXS).

Ten program vypadá pěkně :thumbup: rozhodně mě zaujal, tak příležitostně můžu ten SIF vytáhnout a zkusit... ale co na straně PC, musí tam být Linux?

Mimochodem, ještě by to chtělo (další) program na přenos těch souborů .$B, .$C - jak jsem říkal, Hobeta mi pod XP nefunguje, jen nakreslí screen, ukáže správně soubory v adresáři (levý panel), v pravém ukáže, že našla mechaniku A:, zdá se, že čeká na její potvrzení, ale na tom končí, dál se nic neděje, ať mačkám co mačkám... :(

A ještě úplně mimochodem - je někde popsaný formát těch souborů .$B, .$C ...?

_________________
"Je lepší rozsvítit byť jen malou svíčku, než jen proklínat temnotu." (Konfucius)

www.zxsparrow.com


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SAMdisk a práce s .TRD soubory
PříspěvekNapsal: 09.08.2016, 10:59 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2344
Has thanked: 303 times
Been thanked: 640 times
Jiiira píše:
No, zatím jsem nenašel formátovací program, který by mi tu uspokojivě fungoval... Ten z Hobety taky nefunguje, teď už si nevzpomínám proč, ale mně tu nefunguje ani Hobeta, tak se asi není čemu divit...
Používal jsem ho v DOSu na PC se 150MHz Pentiem, pokud to zkoušíš v novějších Windows než 9x, tak opravdu fungovat nemusí.

Jiiira píše:
zxcygnus píše:
Ale pro přenos celých TRD imagů doporučuju svůj http://cygnus.speccy.cz/popis_siftrd.php , je to mnohem praktičtější, data se dají posílat i z Linuxového PC s USB-RS232 redukcí, není potřeba disketová mechanika v PC atd... (na druhou stranu, je potřeba SIF u ZXS).
Ten program vypadá pěkně :thumbup: rozhodně mě zaujal, tak příležitostně můžu ten SIF vytáhnout a zkusit... ale co na straně PC, musí tam být Linux?
:-) Na straně PC může být cokoli, co dokáže přes správně nastavenou RS232 poslat syrová data. V Linuxu to je extrémně snadné, ve Windows by to mělo jít taky snadno, ale nepoužívám, nemám vyzkoušené.
Jiiira píše:
Mimochodem, ještě by to chtělo (další) program na přenos těch souborů .$B, .$C - jak jsem říkal, Hobeta mi pod XP nefunguje, jen nakreslí screen, ukáže správně soubory v adresáři (levý panel), v pravém ukáže, že našla mechaniku A:, zdá se, že čeká na její potvrzení, ale na tom končí, dál se nic neděje, ať mačkám co mačkám... :(
Aha WXP ... zkus MS DOS, nebo FreeDOS, nebo W9x s DOSem, nejspíš bude problém s přístupem k hardwaru přes NT vrstvu.

Udělat program, který bude přijímat Hobetí soubory, je maličko složitější, počínaje tím, že musí data zpracovávat a ne je jen přijímat a ukládat. Taky je potřeba řešit víc věcí při práci s disketou, tedy pracovat se soubory, ne jen ukládat sektory jeden po druhém. Ale možné. A asi by to bylo užitečné, protože lepší způsob, jak z TRDOSu dostat jednotlivé soubory neznám.

Tady (http://cygnus.speccy.cz/download/utilit ... 27.tar.bz2) mám utilitku, která dělá totéž na Linuxu, ale jen s TRD imagem. Snad funkční, už to je nějaký čas, co jsem to používal naposledy.
Jiiira píše:
A ještě úplně mimochodem - je někde popsaný formát těch souborů .$B, .$C ...?
Ano je. V souboru HOBETA.ZIP je HOBETA.TXT

Stahoval jsem odsud http://worldofspectrum.org/hackersanon/ ... vg-h03.htm
Kód:
Структура 17-байтного заголовка, добавляемого к TR-DOSным
файлам программой HoBeta.exe:

00-07 - имя файла
08    - тип файла
09-0A - Start
0B-0C - Length
0D-0E - Length в 256-байтных записях (байт 0E - pазмеp в сектоpах)
0F-10 - Контрольная сумма

Таким образом, первые 14 байт копируются из TR-DOSовского каталога.

Вычиление контрольной суммы: S=S+257*Di+i, где

S начальное=0
Di - значение байта
i - порядковый номер байта (если не ошибаюсь, начиная с 0, а не с 1)


C src:

union {
        struct {
          unsigned char tr_filename[8];
          unsigned char tr_filetype;
          unsigned int  tr_address;
          unsigned int  tr_length;
          unsigned int  tr_tr;
          unsigned int  tr_crc;
        } tr_head;
        unsigned char head[17];
} header;

unsigned int CheckSum;
int i;

CheckSum=0;
for (i=0; i<=14; CheckSum = CheckSum + (header.head[i] * 257) + i, i++);
header.tr_head.tr_crc = CheckSum;




Вот в одной из своих программок нашел такой забавный способ подсчета
контрольной суммы заголовка:

  checksum=0;
  for (i=0; i<=14; checksum+=(unsigned char)*(bufptr+i), i++);
  checksum*=257;
  checksum+=105;

bufptr, очевидно, поинтер на начало заголовка.

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 5 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 4 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz