OldComp.cz

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


Právě je 20.04.2024, 01:32

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 6 ] 
Autor Zpráva
 Předmět příspěvku: Převod 128k kopíráků na 512k
PříspěvekNapsal: 23.08.2019, 14:47 
Offline
Radil
Uživatelský avatar

Registrován: 15.05.2014, 15:24
Příspěvky: 460
Bydliště: Karlovy Vary
Has thanked: 1 time
Been thanked: 258 times
Měl bych dotaz pro Busyho:

Prosím tě, jak velký problém by byl (časový, programátorský, psychický :D ...) s úpravou a rozšířením tvého kopíráku BS COPY 128# (zbožňuju tenhle kopírák!) pro 512KB RAM kompatibilní s Pentagon 512KB? Přece jen občas kopíruju i kazety, chystám teď ZX Nucleon 512KB kompatibilní s Pentagonem 512K a mít tenhle tvůj kopírák s využitím celé RAM, to by bylo neskutečné blaho! :like:

Díky moc za odpověď.

_________________

CSS Electronics

ZX Nucleon 512KB: hlavní počítač
ZX Spectrum, Didaktik Gama 80KB/192KB: další počítače
Beta Disk 128X, mini: hlavní úložiště
Delta Disk: bývalé úložiště
DivMMC EnJOY! PRO MINI *lite*: nepoužívané úložiště
Multiface 128C (Debugged): Nabourávač her
Externí ROM 64KB a 128KB: Externí test. ROMky
Advanced Parallel Interface ADPI8255A: Top paralelní IFC
Kempston Interface: IFC pro joystick
Multishots Interface: IFC pro 2 joysticky
Orpheus Interface: Top AY+joystick IFC

http://css-electronics.8u.cz/


Nahoru
 Profil  
 
PříspěvekNapsal: 24.08.2019, 11:29 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3663
Bydliště: Bratislava
Has thanked: 373 times
Been thanked: 797 times
Obavam sa ze to nebude az tak jednoduche a priamociare. Prepinacie rutinky pre pamet su optimalizovane na sposob prace kde cislo OUTtnute na port #7FFD priamo zodpoveda cislu banky. 128k toto splna - cisla 0 az 7 priamo zodpovedaju bankam 0 az 7. U Pentagona toto zial neplati, bity cisla banky su rozne porozhadzovane v udaji posielanom na port a cislovanie uz nie je linearne. Samozrejme je v principe mozne na toto napisat obsluzne rutinky, len problem je v tom ze by uz trvali dlhsie (niektore bity by sa museli presuvat na ine pozicie alebo by sa musela pridat nova tabulka na prevod cisla stranky) co by sposobilo ze by sa muselo prerabat cele casovanie komprimacnych a dekomprimacnych rutin. Niektore zlozitejsie casti su uz teraz "na doraz", je mozne ze potom by sa to proste nestihalo a bolo by treba vymyslat uplne novu koncepcu pre komprimaciu a dekomprimaciu.

Takze, z matematickeho hladiska - riesenie existuje, ale z praktickeho hladiska - nie je trivialne a neviem ci ma vyznam tomu venovat cas a energiu, hlavne ked sa jedna iba o "kvantitativny" posun (t.j. iba ciselne zlepsenie parametra) a nie o "kvalitativne" (principialne nieco noveho).


Nahoru
 Profil  
 
PříspěvekNapsal: 26.08.2019, 10:37 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3663
Bydliště: Bratislava
Has thanked: 373 times
Been thanked: 797 times
css píše:
Jeste me napadlo, spousta taktu by se urcite dala usetrit vyhozenim funkce zobrazovani hodnoty cteneho/ukladaneho byte
To je podobne ako urychlit unix alebo windows tym ze killneme idle proces :)
Aby som to vysvetlil. Pri nahravani je po kazdej zmene urovne signalu k dispozicii kratky casovy interval (cca 350 taktov). Normalne sa pocas tohto casu vypisuju pocitadla, avsak ked sa pri loade nahra novy bajt (alebo je treba z pameti vyzvihnut bajt pre save), tak sa namiesto vypisovania cisel zavola (de)komprimacna rutinka, ktora za tychto 350 taktov vykona vsetko potrebne. V nasledujucom intervale sa zase vola vypis pocitadiel. Problem je v tom ze hlavne komprimacia je obcas dost zlozita (hodne vetvenia a rozhodovania) a niektore vetvy zaberaju cely casovy interval. Predlzenie casu komprimacnej rutinky by si uz vyziadalo ju rozdelit na viac samostatnych casti plus samostatne vycasovanie kazdej casti, co nie je az tak trivialna vec.
Vypis pocitadiel na to nema ziadny vplyv, pretoze to je ako keby proces s nizsou prioritou, ktory sa dostane k slovu (t.j. je zavolany v tomto casovom intervale) az potom, ako hlavny proces (komprimacia) vykonal vsetko co mal a caka na dalsi bajt.
css píše:
popravde nikdy jsem ji nevyuzil a nikdy jsem ani nepochopil jeji prakticky vyznam ;-)
Tak ono je niekedy uzitocne vidiet ake bajty sa nahravaju. Hlavne pri blokoch pozostavajucich z vela rovnakych bajtov. Vypis hodnoty bajtu program moc neskomplikoval, pretoze samotny vypis desiatkoveho cisla tam byt musi kvoli dlzke bloku a zobrazit desiatkove cislo s inou hodnotou a na inom mieste je uz v podstate trivialna vec. Tak ma napadlo, ze by bola skoda to tam nedat :)


Nahoru
 Profil  
 
PříspěvekNapsal: 26.08.2019, 11:07 
Offline
Radil
Uživatelský avatar

Registrován: 15.05.2014, 15:24
Příspěvky: 460
Bydliště: Karlovy Vary
Has thanked: 1 time
Been thanked: 258 times
OK, uz to chapu. Je to skoda, ze by to byl tak velky problem, protoze me by se tech 512KB opravdu hodilo.

Totiz kdyz delam zalohy kazet, naplnim nejdriv cely 128KB kopirak, co pamet dovoli, pak si oznacim vsechny soubory, ktere budu sejvovat, na zacatku kazdeho uceleneho bloku (u hry napr. zavadeci basic) nastavim cekani cca 6 sekund, a pak spustim sejvovani a na 12 minut muzu odejit od pocitace delat co chci a vsechno se mi krasne nahraje i s cekacimi mezerami 6 sekund mezi programy. Neni treba u pocitace furt hlidat, kdy skonci sejvovani jednoho programu. S 512KB by to byl luxus, vsechno si nastavit, pustit save, a na 50 minut (nebo i dele diky kompresi) odejit od pocitace a nemuset si ho vsimat.

Ale chapu, ze diky nelinearnimu strankovani by to nebyla sranda program upravit. Ale fakt me to hodne hodne mrzi :-/

Diky Busy aspon za nahlednuti dovnitr programu ;-)

_________________

CSS Electronics

ZX Nucleon 512KB: hlavní počítač
ZX Spectrum, Didaktik Gama 80KB/192KB: další počítače
Beta Disk 128X, mini: hlavní úložiště
Delta Disk: bývalé úložiště
DivMMC EnJOY! PRO MINI *lite*: nepoužívané úložiště
Multiface 128C (Debugged): Nabourávač her
Externí ROM 64KB a 128KB: Externí test. ROMky
Advanced Parallel Interface ADPI8255A: Top paralelní IFC
Kempston Interface: IFC pro joystick
Multishots Interface: IFC pro 2 joysticky
Orpheus Interface: Top AY+joystick IFC

http://css-electronics.8u.cz/


Nahoru
 Profil  
 
PříspěvekNapsal: 26.08.2019, 13:15 
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
Pořád je tu možnost vydumpovat data do PC jako TAPku (jakákoli RS232) a případně zpět (se SIFem). Přinejmenším by to ušetřilo čas potřebný k naplnění kopíráku připravenými TAPkami z PC, nebo usnadnilo zálohování TAPek rovnou do PC.

Mám od Busyho zdroják Tapemanageru (což je prakticky Busy Copy #128 s kouskem BASICu) - pokud Busy dovolí, pošlu. Něco jsem dokázal pochopit a okomentovat, něco ne... ale především, to nepotřebuju tak moc, abych se k tomu v dohledné době vracel.

Ad tabulka stránek - teď jsem nakoukl do zdrojáku, je tvořená tak, že ntý byte odpovídá nté stránce číslované. Tabulka obsahuje horní byte adresy, kde data začínají - většinou 192 pro 49152, nebo víc, pokud je začátek stránky zaplněný (část VRAM + BASIC, část 32768 - 36096 pro běh programu v rychlé RAM).

Kdyby v tabulce byla čísla, která se zapisují do stránkovacího portu, jako to mají třeba hudební rutiny, tak by to asi bylo ok, ale byl bys omezen na celé 16k stránky, vše, nebo nic, nebo by tabulka musela být dvojnásobná (adresa v RAM + hodnota na portu).

Otázka tedy je, jestli by nešlo jít cestou "celá stránka nebo nic" snadněji... S 512kB by se to vyplatilo. Ale pořád by to znamenalo zásah do kritických částí kódu a jeho časování.

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


Nahoru
 Profil  
 
PříspěvekNapsal: 27.08.2019, 08:51 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3663
Bydliště: Bratislava
Has thanked: 373 times
Been thanked: 797 times
PotPalo píše:
Ja si myslím, že pri 512kB pamäti by to už snáď ani nepotrebovalo kompresiu.
To sme si kedysi mysleli aj pri 128kB :scratched:


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

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