OldComp.cz

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


Právě je 30.03.2024, 04:43

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 45 ]  Přejít na stránku 1, 2, 3  Další
Autor Zpráva
 Předmět příspěvku: ZX ROM bežící v ZX ram
PříspěvekNapsal: 20.07.2017, 23:30 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
Jak moc složité by bylo zkompilovat ZX48 rom tak, aby běžela kompletně v ZX ramce ?

Všechy instrukce RST xx by se musely nahradit za CALL xx. Tím by se protáhl kód romky, takže by se některé relativní skoky JR nahradily za JP, čímž se kód opět protáhne. Adresa znakového fontu se také dá jednoduše změnit. IM1 by muselo být nahrazeno za IM2. Dále nutná oprava rutiny SCROLL, která zapisuje do spodních 16kB a kalkulátor, co přepisuje adresy 0-5 (zde ale může být ramka/allram, takže je ošetření nutnost).

Nezní to moc složitě. Nechtěl by si s tím někdo(BUSY) pohrát ? Taková ZX rom běžící od 32768 nebo 49152 by vůbec nebyla na škodu. V kombinaci s DIVIDE by to otevřelo nové možnosti. Přímo z basicu by se dalo sahat do allram ve spodních 16kB a současně třeba i stránkovat horní ram od 49152 (tedy u rom běžící od 32768).

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX ROM bežící v ZX ram
PříspěvekNapsal: 21.07.2017, 18:21 
Offline
Radil
Uživatelský avatar

Registrován: 12.05.2013, 20:32
Příspěvky: 457
Bydliště: Kladno
Has thanked: 46 times
Been thanked: 118 times
No jako možný to je. Ale podle mého osobního názoru by to nic nepřineslo. Ba naopak. Ztráta 16KB ram od adresy 32768 do 49151 je jedna věc. Pro Basic program by zůstalo jen nějakých 8 KB (Pokud By zůstal tam kde začíná ted) nebo 16KB (při přestěhování na 49152... a máme po stránkovaní). Větší by tam nešel. Allram z divide by 16KB ram sice dodal, ale Basic by s ni neuměl pracovat. Taky třeba NMI nepřestěhuješ.

Ps: divide by taky nefachalo. Trap adresy v ram nebudou fachat.

_________________
>>eLeMeNt, MB03+, Amiga 1200, ZX Spectrum 128 +2A, ZX Spectrum+, Didaktik Gama, LnxSpectrum, LnxTracker, LnxAmigaImageConvertor, https://www.ilnx.cz <<


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX ROM bežící v ZX ram
PříspěvekNapsal: 21.07.2017, 20:25 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
Lanex píše:
No jako možný to je. Ale podle mého osobního názoru by to nic nepřineslo. Ba naopak. Ztráta 16KB ram od adresy 32768 do 49151 je jedna věc. Pro Basic program by zůstalo jen nějakých 8 KB (Pokud By zůstal tam kde začíná ted) nebo 16KB (při přestěhování na 49152... a máme po stránkovaní). Větší by tam nešel. Allram z divide by 16KB ram sice dodal, ale Basic by s ni neuměl pracovat. Taky třeba NMI nepřestěhuješ.

Ps: divide by taky nefachalo. Trap adresy v ram nebudou fachat.


Chyba, chyba, chyba, vse spatne. Dobra, ta "ROM" (vlastne by se tak uz ani nemohla nazvat, protoze to neni v romce) by mohla byt od 49152 v hornich 16kB. Ehm, a od 23296 mas print buffer,promenne basicu a hned nasleduje samotny basic a muze pokracovat az do 49151(dobra, jeste odecteme zasobnik a pripadne UDG). Pro basic mas tedy vic volnebo mista nez tech 16kB co uvadis...(to by musel zacinat od 32768). Strankovani 128ram se da ignorovat, tato rom by neslouzila k nahravani a spousteni her, ale pro rozsireni funkcnosti DIVIDE (tedy systemu divide) a to jen v dobe, kdy se vstoupi do NMI. Pri vstupu do NMI se hardwarove zablokuje NMI tlacitko a jeho dalsi stisk je ignorovan. V planu je, ze by kod NMI v DIVMMC zazalohoval zx ramku do vlastni pameti 512kB, nasledne by ze sve 512kB ramky(nebo z SD karty) natahl tuto romku na 49152 a pak by nahral do ramky klasicky basic kod. Basic by primo videl ve spodnich 16kB divide pamet a mohl si sni delat co chce. Pudovni ZX ram obsah by byl viditelny ve strankach DIVMMC ve spodnich 16kB. V basicu lze napsat jak POKE manager, tak cokoli jineho i spoustet strojak, atd...
Ten allram u divide by vubec nemusel byt nastaveny, staci, ze BASIC by dole videl strankovatelnych 8kB DIVMMC pameti. Pri opusteni basicu by se obnovila ZX ram a provedl navrat.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX ROM bežící v ZX ram
PříspěvekNapsal: 21.07.2017, 20:49 
Offline
Profík
Uživatelský avatar

Registrován: 20.02.2017, 01:17
Příspěvky: 801
Has thanked: 19 times
Been thanked: 48 times
Velesoftu věřím, je to MODLA, co řeknE je svaté, těším se na okamžík uvedení ZX Kemston mouse interface co podporuje mimojiné Sega Mega Drive 3-button digital controllers PLUS kempston mouse PLUS obvious kempston/ sinclair SINGLE button ONES.... you know Spectrum is a very sophisticated design but obviously you mi [poor] Amigo could not catch it....


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX ROM bežící v ZX ram
PříspěvekNapsal: 22.07.2017, 10:19 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
tommik píše:
Velesoftu věřím, je to MODLA, co řeknE je svaté


Taková slova bych volil ve spojení s BUSYm. Já jsem jen malej šťoural, co neumí ani pořádně programovat.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX ROM bežící v ZX ram
PříspěvekNapsal: 24.07.2017, 11:24 
Offline
Radil
Uživatelský avatar

Registrován: 12.05.2013, 20:32
Příspěvky: 457
Bydliště: Kladno
Has thanked: 46 times
Been thanked: 118 times
Aha, takže jestli tomu dobře rozumím, chceš během běhu libovolného programu nebo hry spustit klasický BASIC, v něm něco udělat (třeba Poke do hry) a zase se vrátit zpět do původního běžícího programu?

_________________
>>eLeMeNt, MB03+, Amiga 1200, ZX Spectrum 128 +2A, ZX Spectrum+, Didaktik Gama, LnxSpectrum, LnxTracker, LnxAmigaImageConvertor, https://www.ilnx.cz <<


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX ROM bežící v ZX ram
PříspěvekNapsal: 24.07.2017, 12:49 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
Lanex píše:
Aha, takže jestli tomu dobře rozumím, chceš během běhu libovolného programu nebo hry spustit klasický BASIC, v něm něco udělat (třeba Poke do hry) a zase se vrátit zpět do původního běžícího programu?


Ano. Jedna z možností.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX ROM bežící v ZX ram
PříspěvekNapsal: 25.07.2017, 06:11 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
Dalsi vyuziti by mohlo vypadat asi nejak nasledovne:
upravena zx "rom" by lezela v jedne ze stranek ZX128, tedy od 49152. No a v print bufferu by byl maly kod pro pristrankovani a odstrankovani teto romky. Basic by tak mohl pri praci se zx ram vzdy odstrankovat sam sebe (nastavi zx ram 48kB) a kod z print bufferu se postara o cteni/zapis ram a nasledne zpet pristrankoje romku. Pred spustenim strojaku by byla rom take schovana ve strance 128 ram a program tak ma k dispozici plny adresovy prostor.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX ROM bežící v ZX ram
PříspěvekNapsal: 26.07.2017, 18:27 
Offline
Radil
Uživatelský avatar

Registrován: 12.05.2013, 20:32
Příspěvky: 457
Bydliště: Kladno
Has thanked: 46 times
Been thanked: 118 times
Tak vymyslet se dá ledacos. I když oživování tak slabého systému se mi zdá jako zbytečný luxus. Až budu mít chvilku čas, podívam se na to. Jestli se teda toho nechytí Busy, vím že má ZX ROM těžce zmáknutou. :god:

_________________
>>eLeMeNt, MB03+, Amiga 1200, ZX Spectrum 128 +2A, ZX Spectrum+, Didaktik Gama, LnxSpectrum, LnxTracker, LnxAmigaImageConvertor, https://www.ilnx.cz <<


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX ROM bežící v ZX ram
PříspěvekNapsal: 26.07.2017, 21:33 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 372 times
Been thanked: 788 times
...a Busy sa toho samozrejme chyti :)
http://busy.speccy.cz/tmp/zx-rom-at-49152.tap


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX ROM bežící v ZX ram
PříspěvekNapsal: 26.07.2017, 23:04 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
Busy píše:
...a Busy sa toho samozrejme chyti :)
http://busy.speccy.cz/tmp/zx-rom-at-49152.tap


Parada. Jen tak v rychlosti jsem to testnul a nejde mi repeat...
A font 8x4 tam neni. :-)
V emulatorech REALSPECTRUM a FUSE mi nesel break po zadani LOAD "" + ENTER. Ale v emulatoru ZX SPIN mi break funguje.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX ROM bežící v ZX ram
PříspěvekNapsal: 27.07.2017, 09:24 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 372 times
Been thanked: 788 times
Obe chyby opravene + ZX romka aj na #8000:
http://busy.speccy.cz/download/zxromra1.rar
Nepritomnost fontu 4x8 nie je chyba, ale vlastnost :D


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX ROM bežící v ZX ram
PříspěvekNapsal: 27.07.2017, 23:25 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
Busy píše:
Obe chyby opravene + ZX romka aj na #8000:
http://busy.speccy.cz/download/zxromra1.rar
Nepritomnost fontu 4x8 nie je chyba, ale vlastnost :D


Paradni prace BUSY. Tak a ted by melo stacit napsat trapne jednoduchy kod v assembleru, ktery zajisti ZX ram backup do DIVMMC ram, nasledne nahraje/presune tuto "ROM" ve forme snapshotu i s basicem do zx ram a spusti basic. Z basicu pak je viditelna cela zx ramka po 8kB blocich od odresy 8192, takze si z basicu muzeme prohlizet/upravovat(poukovat) puvodni zx ramku. Navratova rutina pak presune zx rom i s basicem zpet do DIVMMC ram a obnovi ZX ramku... Tech moznosti je vice. Jednoduchy multiswitching cele zx ram, atd...

Bylo by hodne pracne udelat tuto rom s podporou 64 znaku ? Na presnych adresach rutin zde nazalezi jak uz jsi psal, takze by to mohlo jit pridat bez vetsich problemu. Presi jen tech 64 znaku je parada.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX ROM bežící v ZX ram
PříspěvekNapsal: 28.07.2017, 07:12 
Offline
Kecálek
Uživatelský avatar

Registrován: 24.03.2014, 08:10
Příspěvky: 206
Has thanked: 80 times
Been thanked: 127 times
VELESOFT píše:

Paradni prace BUSY. Tak a ted by melo stacit napsat trapne jednoduchy kod v assembleru, ktery zajisti ZX ram backup do DIVMMC ram, nasledne nahraje/presune tuto "ROM" ve forme snapshotu i s basicem do zx ram a spusti basic. Z basicu pak je viditelna cela zx ramka po 8kB blocich od odresy 8192, takze si z basicu muzeme prohlizet/upravovat(poukovat) puvodni zx ramku. Navratova rutina pak presune zx rom i s basicem zpet do DIVMMC ram a obnovi ZX ramku... Tech moznosti je vice. Jednoduchy multiswitching cele zx ram, atd...



Zdarec, nad necim takovym jsem taky uvazoval, Velesofte, ale jak presne to myslis? Protoze jestlize mame pamet 64K, a ROMka bude sidlit od #C000, pripadne #8000, coz jsou vsechno podstatne casti pameti, kde se zpravidla vsechen kod odehrava, a bude zabirat 16K, coz je 1/4 pameti ZXS, tak jaky to pak ma vyznam? Co chces v horni RAM trasovat, kdyz v ni funguji programy/ hry? Ten BASIC v hroni RAM ti vlastne prepise kod, ktery bys chtel prohlizet.

_________________
http://hood.speccy.cz
http://sarah.speccy.cz


Nahoru
 Profil  
 
 Předmět příspěvku: Re: ZX ROM bežící v ZX ram
PříspěvekNapsal: 28.07.2017, 12:22 
Offline
Radil
Uživatelský avatar

Registrován: 12.05.2013, 20:32
Příspěvky: 457
Bydliště: Kladno
Has thanked: 46 times
Been thanked: 118 times
No myslí to tak jak to píše. Přesune celou ZX RAM (48 KB) do RAM Divide. Pak spustí ten podivný jakože BASIC na adrese třeba 32768. A z něj si zpřístupní původní obsah RAM, po blocích 8 KB, ty bloky bude Divide mapovat na adresy 8192-16383.

Pokud se tohle povede, otevře to spoustu dalších možností. Nemusí se spouštět totiž nutně Basic, ale může se na libovolné adrese spouštět cokoliv, jakýkoliv Poke manager, Sprite finder a cokoliv jiného co koho napadne. Navíc takový manager má k dispozici komplet RAM od 16384 až do 65535. Vlastně by se teoreticky takhle dala spustit další hra a mezi něma přepínat, takový softwarový Multitasking :D S ohledem ke kapacitě paměti Divide 512 by se jich tam vešlo.

_________________
>>eLeMeNt, MB03+, Amiga 1200, ZX Spectrum 128 +2A, ZX Spectrum+, Didaktik Gama, LnxSpectrum, LnxTracker, LnxAmigaImageConvertor, https://www.ilnx.cz <<


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ů: 45 ]  Přejít na stránku 1, 2, 3  Další

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


Kdo je online

Uživatelé procházející toto fórum: akrion 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