OldComp.cz

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


Právě je 28.03.2024, 18:09

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 169 ]  Přejít na stránku Předchozí  1 ... 8, 9, 10, 11, 12
Autor Zpráva
PříspěvekNapsal: 31.01.2023, 15:41 
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
PotPalo píše:
Tiež som uvažoval kde dať počítadlo času... ale zapisovať do NMIADD?! Mám skúsenosti že niektoré programy alebo hry testujú túto premennú, a keď tam nieje 0, tak im to vadí. Iné programy si tam rovno tú nulu zapíšu, v nich by sa potom tiež samo stlačilo R a Enter.
Mas pravdu, kludne sa da zvolit iny bajt na casovanie. Napisal som to narychlo s tym, ze programy urcene pre D40/D80 obvykle netestuju/nenastavuju NMIADD lebo pri NMI sa aj tak robi snap a NMIADD sa ignoruje.
PotPalo píše:
Čo programy ktoré si sem nakopírujú svoj kód? Tie sa tým poškodia. Síce ich asi nebude veľa, ale môžu byť aj také.
Tie si obvykle pritom zakazu prerusenie, aby im rutinky z prerusenia neprepisovali systemky (okrem FRAMES sa toho z prerusenia prepisuje viac).
PotPalo píše:
Keď už to fakt musí byť v ROM Spectra... Ja som uvažoval že by to kontrolovalo systémový čas (FRAMES na 5C78h - 3 byty)
Niektore basicy prepisuju aj FRAMES. To mi uz pride vhodnejsie na casovanie vyuzit napr. 23681 - to je to POKE co sluzi na vypis vysokeho pisma. To si programy nezvyknu kontrolovat.
PotPalo píše:
a dĺžku programu v BASIC (teda adresa konca programu a premenných - STKEND na 5C65h) či je nulová, nič by to v pamäti nemenilo. Takže akýkoľvek BASIC program by časovač vypol.
Ano, to je dobry napad, kontrola ci je v pameti nejaky basic je na toto idealna. Tym padom by nebol problem ani s casovanim cez 23681 v basicoch vyuzivajucich ZX Printer alebo vypisujucich vysoke pismo.

Ak bude pwramp chciet, mohol by som to tam doplnit.


Nahoru
 Profil  
 
PříspěvekNapsal: 31.01.2023, 19:06 
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
Busy píše:
Niektore basicy prepisuju aj FRAMES.
Lenže vtedy sa už FRAMES kontrolovať nebude, lebo dĺžka programu v BASIC nebude nulová. FRAMES by bol iba časovač fungujúci pokiaľ tam žiadny BASIC nieje. Nespomínal som to už?

Tú NMIADD si tuším mení napríklad originál PSSST alebo JETPAC, myslím že jedným tých posledných nahraných blokov. Pozri TAPku kam sa nahrávajú, či mi pamäť dobre slúži. A mal som hru ktorá si to NMIADD naozaj kontrolovala, a keď tam bolo niečo iné ako nula nula, tak reset a basta.

_________________
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: 01.02.2023, 15:52 
Offline
Profík

Registrován: 21.10.2018, 08:27
Příspěvky: 559
Has thanked: 278 times
Been thanked: 139 times
Citace:
Ano, to je dobry napad, kontrola ci je v pameti nejaky basic je na toto idealna. Tym padom by nebol problem ani s casovanim cez 23681 v basicoch vyuzivajucich ZX Printer alebo vypisujucich vysoke pismo.

Ak bude pwramp chciet, mohol by som to tam doplnit.

Díky, mě asi vyhovuje co už je - mou vytvoreny run.p to spolehlive spusti po zapnuti pocitace. Což je přesně co jsem potřeboval. Nejen pro výše uvedený úkol, ale třeba se mi spustí i automatický logger nabití baterií apod. Prostě a jednoduše, jakou disketu po zapnutí založím, to nastartuje. Dáva to mému Didaktiku úplně jiný rozměr a ještě jednou díky!


Nahoru
 Profil  
 
PříspěvekNapsal: 03.02.2023, 12:16 
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
Tak mi to nedalo a tu je dalsia verzia ZX romky s autoRUNom:
https://busy.speccy.cz/tmp/ZXrom-AutoRun.rar
Teraz to funguje nasledovne:

- Akonahle je v pameti nejaky basic/premenne/prikazovy riadok (dlhsi ako 1 bajt) tak nic dalsie nerobi.
- Skontroluje bit 7,FLAGS (#5C6A) - ak je 1, tak nic dalsie nerobi. Tento bit romka nijak nevyuziva, patch ho pouziva ako priznak ze nema byt aktivny.
- Skontroluje ci je stlacena nejaka klavesa. Akonahle ano, patch sa okamzite deaktivuje - nastavi bit 7,FLAGS
- Ak FRAMES=192 tak nasimuluje stlacenie RUN
- Ak FRAMES=255 tak nasimuluje stlacenie ENTER a deaktivuje sa nastavenim bit 7,FLAGS

Verim, ze tento sposob prace je uz dostatocne nepriestrelny.
Ak by sa nejaky program v pameti rozhodol ze bude pouzivat FRAMES a aj cely FLAGS (napr. POKE pre kurzor "C"), nevadi, pretoze uz len tym ze je ten program v pameti, patch neprejde hned cez prvu podmienku a tym padom nebude cinnost programu nijak ovplyvnovat.


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ů: 169 ]  Přejít na stránku Předchozí  1 ... 8, 9, 10, 11, 12

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


Kdo je online

Uživatelé procházející toto fórum: caga, Dedy a 23 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