OldComp.cz

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


Právě je 28.03.2024, 20:49

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 10 ] 
Autor Zpráva
 Předmět příspěvku: 48k ROM prostor pro skok
PříspěvekNapsal: 01.10.2020, 12:56 
Offline
Profík

Registrován: 21.10.2018, 08:27
Příspěvky: 559
Has thanked: 278 times
Been thanked: 139 times
Poraďte mi prosím, kam do ROMky ZX48 umístit jeden call, který by volal mou rutinu v ROM. Volalo by to jen ldir, který by zkopároval pár set bajtů z volného místa v ROM do RAM a pak by se vrátila ret-urnem zpět. Chtěl bych to dát někam za konec inicializace, třeba po vypsání úvodního pozdravu. Ale nerad bych něco v ROMce posouval, abych tam těch pár bajtů pro call xxxx snadno doplnil. Půjde to vůbec?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: 48k ROM prostor pro skok
PříspěvekNapsal: 01.10.2020, 17:37 
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
Myslím že před fontem (od 15615 dolů) prostor pro nějaké takovéhle akce je. Ale může ti klesnout kompatibilita některých programů. Sem tam se u starších programů tahle část používa pro volání IM2.

_________________
>>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: 48k ROM prostor pro skok
PříspěvekNapsal: 01.10.2020, 18:52 
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
Inymi slovami, chces aby si po reset / NEW mal niekde v ramke nieco predpripravene ?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: 48k ROM prostor pro skok
PříspěvekNapsal: 01.10.2020, 19:58 
Offline
Profík

Registrován: 21.10.2018, 08:27
Příspěvky: 559
Has thanked: 278 times
Been thanked: 139 times
Ano, přesně jak píšeš. Chtěl bych něco nasypat do print bufferu a případně si něco spustit. Místo v ROMce vidím, tam je mi to jasné, ale nevím kam přidat call abych nemusel v ROMce rutiny posunovat.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: 48k ROM prostor pro skok
PříspěvekNapsal: 01.10.2020, 20:30 
Offline
Kecálek

Registrován: 07.05.2014, 12:10
Příspěvky: 197
Bydliště: Jbc
Has thanked: 0 time
Been thanked: 39 times
pwramp píše:
nevím kam přidat call abych nemusel v ROMce rutiny posunovat.

Resi se to treba tak, ze urcita cast instrukci se z puvodniho mista da do volneho mista, pak se tam muze vlozit JP/CALL, do volneho mista se za ty presunute instrukce prida vlastni kod a za to jeste navrat do puvodniho mista v ROM.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: 48k ROM prostor pro skok
PříspěvekNapsal: 01.10.2020, 21:20 
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 napriklad na #128B je CALL #0EDF pre zmazanie printer bufferu. Adresu callu si zmen tak aby zavolala tvoju rutinku, a na zaciatku tvojej rutinky napis ten isty CALL #0EDF. Tym padom sa vykona aj povodna funkcionalita a po zmazani bufferu si tam mozes vo svojej rutinke nakopirovat co potrebujes.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: 48k ROM prostor pro skok
PříspěvekNapsal: 01.10.2020, 22:09 
Offline
Radil
Uživatelský avatar

Registrován: 19.07.2013, 14:21
Příspěvky: 258
Bydliště: Košice
Has thanked: 143 times
Been thanked: 380 times
Busy píše:
Adresu callu si zmen tak aby zavolala tvoju rutinku, a na zaciatku tvojej rutinky napis ten isty CALL #0EDF.
A nebolo by efektivnejsie opustat jeho rutinku JP #0EDF a usetrit jeden bajt na RET? :poke:

BTW, v 48k ROMke mas idealne volne miesto od #386E do #38FF (je to paradnych 146 bajtov), zachovas tak aj kompatibilitu, lebo tato cast sa neda pouzivat ako IM2 vektor (nie je vyplnena komplet).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: 48k ROM prostor pro skok
PříspěvekNapsal: 01.10.2020, 22:34 
Offline
Profík

Registrován: 21.10.2018, 08:27
Příspěvky: 559
Has thanked: 278 times
Been thanked: 139 times
Super, díky moc, jste borci :like: :like: . Napsal jsem si takový primitivní driver na HD44780 16x2 displej a rád bych na něm hned po startu ukazoval. Těch 146 bytes využiju a ještě něco málo zustane. Možná si i nějakým outem prestrankuju do jiné oblasti osazené 64k eepromky, pokud by mi místa bylo málo, a vrátím se zpět. Rád bych ale měl kompatibilitu a BASIC při ruce.

Jinak chápu to tak, že ve své rutině zavolám smazání printbufferu, ten mi po jeho vlastním ret skočí zpět do mé rutiny, já vykonám co potřebuji, ukončím taky ret a tím pádem skočím zpět za původní call #128B a vše bude čisté. Líbí se mi to.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: 48k ROM prostor pro skok
PříspěvekNapsal: 01.10.2020, 23:20 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1508
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 380 times
Citace:
A nebolo by efektivnejsie opustat jeho rutinku JP #0EDF a usetrit jeden bajt na RET?

Kopírovat do printbufferu svůj driver a pak zavolat smazání tohoto bufferu?
RET bude kratší než JP #128B+3 a nenechá nepoužitou návratovou adresu na zásobníku.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: 48k ROM prostor pro skok
PříspěvekNapsal: 02.10.2020, 04:47 
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
Pokial je dlzka kriticka a zalezi na kazdom bajte, slo by to napr. tak ze CALL na svoju rutinku das na adresu #1292, uz nebudes volat mazanie buffera (ten uz bude vtedy zmazany) a svoju rutinku namiesto RET zakoncis instrukciou JP #0D6B (to je zmazanie obrazovky povodne volane na #1292). A voci tomu mojmu predchadzajucemu rieseniu usetris jeden bajt.


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

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