OldComp.cz

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


Právě je 28.03.2024, 17:53

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 7 ] 
Autor Zpráva
 Předmět příspěvku: Převod programů z TRD/SCL do TAP
PříspěvekNapsal: 06.03.2020, 14:02 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 08.07.2013, 00:28
Příspěvky: 1554
Has thanked: 485 times
Been thanked: 634 times
Z jiného vlákna:
SCjoe píše:
tommik píše:
Nejaka vyhoda tohoto programu oproti ZX Modules? (http://zx-modules.de/)
zx-modules toho jeste neumi mraky, prostor tady je, treba nejak rozumne zvladat FRAGMENT data z ruskych TRDu...
tomascz píše:
SCjoe píše:
FRAGMENT data z ruskych TRDu
To se docela i rád poučím :-)

Přes SZ jsme vykoumali toto (stručný přepis SCjoeova problému): Ve většině demíček, ať už TRD či SCL, na ruském ZXAAA (...) jsou Basic, stroják, grafika atd. zamydleny v jednom souboru, který ještě navíc typicky o sobě v adresáři uvádí jinou délku než ve skutečnosti má. Zde např. demo WD Gift 2020, kde oficiální délka (41 bajtů) nesedí se skutečnou délkou (169 sektorů).

Obrázek

Cílem je takový soubor převést do TAPky, aby si ho mohli spustit i spectráčtí puritání na gumákovi.
SCjoe píše:
Kdyz je to pro 48K, tak v prohrabu zacatek a preskocim basic a zavadec a najdu spusteni... (vlastne jen tu binarku zkratim).
U 128K je tam jeste prepinani stranek a zavadece, musi se to rozkouskovat.
Vlastne jsem si rikal, ze na to urcite maji nejaky program, ktery jim to automaticky slinkuje, ale nemel jsem cas to pohledat.

Takže jak takový soubor převést do TAPky? Nějaké nápady?

Mě napadlo toto: Z WD_gift.B vytvořit dva soubory: (1) vyseparovat Basic do samostatného programu WD_gift s délkou 41 bajtů a s ním provádět úpravy podle potřeby, a (2) headerless nebo code s doplňkem skutečné délky, tj. 169*256-41 bajtů, se kterým by šlo si hrát samostatně.
SCjoe píše:
nevím, zda právě v případě tohoto dema je to ta správná metoda, jak obejít zavaděč

SCjoe i já chápeme NP-úplnost tohoto problému :(

SCjoe píše:
bohužel reakce nemusí být žádná, protože lidí, co převádějí soft, moc není...
Holt NMI menu v esxdosu nahradilo FATWARE a lidem spouštění z TAPek a TRDů stačí ke konzumnímu retroživotu.
Mimochodem, před dobou ruského softu byla ukázkovým příkladem nestandardního nahrávání hra Aquaplane. Tapka má kód hry rozkouskovaný, přehrávají se nejdříve systémové proměnné i basic. Porovnáním stopnuté hry a největšího databloku bylo vidět, že stačí vzít a spustit tu část kódu, která je od adresy 25000 tuším...

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


Nahoru
 Profil  
 
PříspěvekNapsal: 06.03.2020, 15:30 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Jiiira píše:
tomascz píše:
Ve většině demíček, ať už TRD či SCL (...) jsou Basic, stroják, grafika atd. zamydleny v jednom souboru, který ještě navíc typicky o sobě v adresáři uvádí jinou délku než ve skutečnosti má.
A důvod, proč to autoři dělají, je jaký? Zastydlá puberta? Snaha něco si furt dokazovat? :hammer:
Dovody su hned dva:

1. Vobec netusia, ze okrem klasickeho kazetaku a betadisku existuje aj nejake ine zariadenie na nahravanie programov. No a kedze kazetak nepouzivaju, tak si myslia ze vsetci na svete maju betadisk a nic ine. A nemaju motivaciu robit nejake portable loadery.

2. Dlhsie a zlozito nahravane programy (napr. stranky 128) su lenivi nahravat nejak poctivo (hladat subory, osetrovat rozne chybove stavy...), tak si vytvoria na disku nejaku oblast z ktorej potom natvrdo nahraju do pameti pevne urcene sektory.

Aj ked dnes ta situacia nastastie nie je ani zdaleka tak kriticka ako bola roky dozadu.


Nahoru
 Profil  
 
PříspěvekNapsal: 06.03.2020, 16:10 
Offline
Pan Generální
Uživatelský avatar

Registrován: 11.06.2013, 15:27
Příspěvky: 3025
Has thanked: 2192 times
Been thanked: 894 times
Busy píše:
Aj ked dnes ta situacia nastastie nie je ani zdaleka tak kriticka ako bola roky dozadu.


jj, a někteří slušňáci alespoň nabídnou zdrojáky k překladu,
viz např. Mick a zdrojáky jeho demíček, připravené a naservírované spolu s sjasm, na stránce (dole) na http://micklab.ru/My%20Soundcard/ZXMSoundCard.htm

P.S. to téma jsem nakousl i tady, ale nedotáhnul... viewtopic.php?f=41&t=7718
(asi je mám sloučit?)

_________________
// na co myslím, když sedím u oldkompů: Blood Products from Genetic Vaccine Recipients


Nahoru
 Profil  
 
PříspěvekNapsal: 06.03.2020, 17:28 
Offline
Pan Generální

Registrován: 01.12.2017, 21:01
Příspěvky: 2062
Bydliště: BA-Petržalka :(
Has thanked: 18 times
Been thanked: 323 times
TRD... Keby to bolo D80, tak by som vedel na to spraviť program, ale o TRD nemám potuchy ako funguje.

Pokiaľ to TRD je obraz disku, a všetky ich demá používajú rovnaký systém kódovania, na to by sa v assembleri dal spraviť program ktorý to prevedie. Teda pokiaľ to nieje dohrávkové, alebo to nepristupuje priamo k sektorom diskety, to už by bolo ťažšie. To čo vidím v prvom príspevku, skrátená dĺžka, to by sa ešte dalo. Program by preskúmal loader, vyčítal skutočnú dĺžku, odkiaľ sa to má nahrať, a odkiaľ spustiť, a vytvoril by normálny loader v TAPke, a súbor skopíroval do nej už normálne.

Vidím vidím výzvu. :D Emulátor... vlastný program... TRD vstup, TAP výstup.... :mrgreen: ...až bude čas, možno ...

_________________
Oznamy o novom príspevku mi na mail chodia iba sporadicky, takže keď sa nehlásim v diskusii, tak je to tým. V 80% nepríde mail vôbec.


Nahoru
 Profil  
 
PříspěvekNapsal: 06.03.2020, 23:23 
Offline
Radil

Registrován: 27.09.2013, 22:59
Příspěvky: 425
Has thanked: 102 times
Been thanked: 44 times
Mám dojem, že o toto se tak nějak zajímal už CSS při stavbě Betadisku v jiném vlákně a byl docela rozladěn, když zjistil, že se skutečně přistupuje přímo na předem vybrané sektory diskety. Jako hlavní fejl uvedl, že se tím pádem musí použít jedna disketa na jeden každý program. Brrr.


Nahoru
 Profil  
 
PříspěvekNapsal: 07.03.2020, 16:22 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 08.07.2013, 00:28
Příspěvky: 1554
Has thanked: 485 times
Been thanked: 634 times
PotPalo píše:
Čo som pozeral image tej diskety, tak je zaplnená iba od začiatku, ďalej je prázdna. Takže teoreticky by sa dali nakopírovať aj viaceré tie programy na jednu disketu, a pridať offset k rutine ktorá nahráva priamo sektory.

Ona situace je ještě malinko komplikovanější. Třeba hra Mirror, kde boot.B má formálně všechno vpořádku.

Obrázek

Jenže při zobrazení statusů sektorů je disketa oficiálně naprosto prázdná! boot.B je totiž uložen v systémové části diskety a není proto viditelný. RIDE ho samozřejmě dokáže vyextrahovat a přenést na TAPku (umí to i obráceně), ale to je tak všechno co se s touhle disketou dá dělat.

Obrázek

Že hra nezabírá 707 bajtů je zřejmé až při přepnutí na zobrazení dat sektorů - to se pak člověk začne divit kolik toho tam je, data jsou vpodstatě úplně všude.

Obrázek

Tohle je ale zrovna asi případ, kterej je nepřeveditelnej do TAPky (pokud se člověk z toho nebude chtít zbláznit).



Do RIDE jsem každopádně přidělal větvení co se má stát, když oficiální a skutečná délka dat nesedí a testnul jsem to na nejjednodušším možném případě, Dark Castle (nenašel jsem na WoS, nevím už odkud jsem to tahal) - všechno pěkně v jednom souboru, nikde žádná skrytá data.

Obrázek

Při pokusu importovat DC.B na pásku vyskočí dialog, kde
- je doporučeno ponechat informace nezměněné (pro případ kopírování z pásky na pásku - netřeba přemýšlet co zmáčknout),
- možno oficiální délku sjednotit se skutečnou,
- data rozdělit na program (nebo code, chars, numbers) a doplňkový headerless (tato možnost se samozřejmě zobrazí pouze pokud oficiálních dat je méně než skutečných),
- klasicky stornovat import.

Obrázek

Jednotlivé tři importní případy zde:

Obrázek

Poslední případ je očividně převeden správně - žádná chyba "Error in Basic structure" se nekoná (je nutné si zakázat barvení výpisu a případně povolit zobrazení skutečných číselných hodnot, aby bylo vidět že Clear 0 je ve skutečnosti Clear 24575).

Obrázek



Zkrátím to - výsledek bez dalších úprav nefunguje. Úpravy se zřejmě budou týkat vyházení věcí specifických pouze pro TR-DOS, jinak Basic z posledního příkladu uvízne.

Obrázek

Ale aspoň je tu ta možnost TR-DOS data roseknout na dva kusy a s každým pracovat samostatně. Při té příležitosti mi ještě napadlo data druhého kusu rozsekat po sektorech, ale to by asi ničemu nepomohlo - stroják určitě není zarovnanej do jednotlivých sektorů. Plánuju do RIDE ještě přidělat výpis assembleru (a konečně tak uzavřít úvodní Issue 1), nicméně na úpravy Basicu, strojáku atd. bude nutné použít jiné tooly.

Tyto úpravy společně s pár fixy plánuju vydat v dubnu. Pokud by SCjoea napadlo ještě něco co tam chce mít, můžu to tam dodělat taky.

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


Nahoru
 Profil  
 
PříspěvekNapsal: 07.03.2020, 19:34 
Offline
Radil
Uživatelský avatar

Registrován: 02.08.2015, 15:23
Příspěvky: 259
Bydliště: Skalica
Has thanked: 52 times
Been thanked: 141 times
PotPalo píše:
Sú dve možnosti ako to asi pracuje: zaplnená disketa, ale zmazaná FAT a zmazaná DIRECTORY, takže nevieme nič. Loader použije (podstrčí) vlastnú FAT aj DIRECTORY. Samotný loader je uložený v systémovej časti diskety (FAT alebo DIRECTORY). Druhá možnosť je že na prázdnu disketu sú uložené priamo sektory, a loader ich nahráva priamo. Inu, zaujímavé hranie, na D80 by sa to tiež dalo spraviť. :D
TR-DOS nema FATku, ma len DIREKTORY (Adresar)

_________________
ZX Spectrum, ZX Spectrum +, DIDAKTIK GAMA, DIDAKTIK M, DIDAKTIK KOMPAKT, D40, D80, Interface M/P, MELODIK, UR-4, BEST, KP 311, BT100, SP210T, GAMACENTRUM 01 (cierna), ROBOTRON K6304, divIDE, K-Mouse, PMD 85-2, Amiga 500, Amiga 500+, Amiga 1200


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ů: 7 ] 

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 2 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