OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů
Právě je 17 led 2018, 07:37

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 14 ] 
Autor Zpráva
PříspěvekNapsal: 07 led 2018, 08:47 
Offline
Kecálek
Uživatelský avatar

Registrován: 24 bře 2014, 07:10
Příspěvky: 89
Has thanked: 16 times
Been thanked: 33 times
Ahoj, věděli jste, že Velesoftuv Profi Interface umí číst na mbcku port 23? Totiž když zadáte např. v Basicu print in 34045,vrati se vám poslední hodnota, kterou procesor outovani na port 23.

A k čemu je to dobré? Např. Se díky tomu dokážete v nmi menu vrátit do SRAM stránky, která bylajako poslední v dolní paměti pripla než jste stiskl nmi. V praxi to např. znamená korektní návrat do MB Commanderu, nebo do dvoubankove 64 znakové ROM.

Diky Velesoftovi, že vyčtení portu 23 do Profi If přidal.

Hood

_________________
http://hood.speccy.cz


Nahoru
 Profil  
 
PříspěvekNapsal: 08 led 2018, 10:13 
Offline
Pan Štábní

Registrován: 22 kvě 2013, 20:14
Příspěvky: 1755
Bydliště: Bratislava
Has thanked: 177 times
Been thanked: 315 times
Aku hodnotu presne vracia ten port ? Posledne outnutu na 23 alebo hodnotu, ktora tam bola pred poslednym NMI ?


Nahoru
 Profil  
 
PříspěvekNapsal: 08 led 2018, 14:01 
Offline
Kecálek
Uživatelský avatar

Registrován: 24 bře 2014, 07:10
Příspěvky: 89
Has thanked: 16 times
Been thanked: 33 times
Busy píše:
Aku hodnotu presne vracia ten port ? Posledne outnutu na 23 alebo hodnotu, ktora tam bola pred poslednym NMI ?


Poslední procesorem outnutou na port 23. Tzn. Pro účely nmi menu by to nebylo nic moc, kdyby neexistovala ta neúplná adresáře portu 23. Tzn. cca dva první outy na vstupu do nmi menu nebudou 23, ale 119. A tím pádem posledně zapsaná hodnota na portu 23 zůstane zachována.

Už jsem to testoval na reálným Mbcku a mělo by to fungovat. V praxi se tedy půjde vrátit z nmi menu zpět např. Do MB Commanderu nebo do dvoubankove 64 znakové ROM.

Ještě kdybychom uměli nepushovat navratovou adresu z nmi na zásobník, ale uchovat ji někde mimo paměť ZXS, to by bylo terno.

Hood

_________________
http://hood.speccy.cz


Nahoru
 Profil  
 
PříspěvekNapsal: 08 led 2018, 15:17 
Online
Pan Štábní

Registrován: 16 čer 2014, 11:23
Příspěvky: 1363
Bydliště: Jesenice
Has thanked: 5 times
Been thanked: 81 times
Tomu nějak nerozumím, je to snad fyzicky pořád jeden port , který se zrcadlí v adresovém prostoru ?

A to čtení je zapotřebí, pokud rutina NMI chce dělat něco s mapováním, tak musí vědět, do jakého stavu se má vrátit v hlavním programu.

Čemu vadí návratová adresa z NMI v zásobníku, pokud zásobník nepřeteče ?

Spíš bych to viděl na přepnutí mapování při NMI na pevnou stránku, kde je obsluha NMI.
Návrat z NMI se pak udělá mimo mapovanou oblast smazáním příznaku a RETN.


Naposledy upravil danhard dne 08 led 2018, 15:51, celkově upraveno 1

Nahoru
 Profil  
 
PříspěvekNapsal: 08 led 2018, 15:32 
Offline
Pan Štábní

Registrován: 22 kvě 2013, 20:14
Příspěvky: 1755
Bydliště: Bratislava
Has thanked: 177 times
Been thanked: 315 times
danhard píše:
Tomu nějak nerozumím, je to snad fyzicky pořád jeden port , který se zrcadlí v adresovém prostoru ?
Ano, tuto otazku kladiem aj ja.
danhard píše:
Čemu vadí návratová adresa z NMI v zásobníku, pokud zásobník nepřeteče ?
Dovodov je viac:
1. Co ak zrovna prichodom NMI pretecie ?
2. Zasobnik ukazuje do romky
3. Zasobnik ukazuje do dat ktore sa nesmu prepisat (typicky v demach, kde sa zasobnikom prenasaju nejake predpripravene data z pameti do obrazovky)
4. Suvisi uzko z bodom 3 - ani obrazovka by sa nemala prepisat navratovou adresou z NMI. Je sice pravda, ze ked nastane prerusenie uprostred takej PUSH:PUSH:PUSH... sekvencie, tak po navrate sekvencia pokracuje a navratovu adresu aj tak prepise, ale:
a) pocas vykonavania obsluhy NMI sa na obrazovke moze objavit skareda porucha (navratova adresa)
b) co ak nastane NMI zrovna na konci sekvencie PUSH-ov ? Skareda porucha zostane v obrazovke aj po navrate z NMI.


Nahoru
 Profil  
 
PříspěvekNapsal: 08 led 2018, 16:15 
Online
Pan Štábní

Registrován: 16 čer 2014, 11:23
Příspěvky: 1363
Bydliště: Jesenice
Has thanked: 5 times
Been thanked: 81 times
Nevím jak je u těch udělátorů NMI zařízeno, ale uložení návratové adresy na vrchol zásobníku je vlastnost NMI, s tím se toho moc dělat nedá. Taky po dobu obsluhy NMI hlavní program i obsluha INT stojí.
http://www.z80.info/zip/z80-interrupts_rewritten.pdf


Nahoru
 Profil  
 
PříspěvekNapsal: 08 led 2018, 17:22 
Offline
Pan Štábní

Registrován: 22 kvě 2013, 20:14
Příspěvky: 1755
Bydliště: Bratislava
Has thanked: 177 times
Been thanked: 315 times
danhard píše:
Nevím jak je u těch udělátorů NMI zařízeno, ale uložení návratové adresy na vrchol zásobníku je vlastnost NMI, s tím se toho moc dělat nedá.
Ale da :) MDV si vo svojom AP-01 spravil taku zaujimavu vec, ze prve dva zapisy do pameti po akceptacii NMI nejdu normalne do ramky, ale odchytia sa do specialneho HW registra. Tym padom ramka zostane neporusena a v registri je k dispozicii navratova adresa, na ktoru sa pri navrate z obsluhy NMI da skocit jumpom. Preto nevadi ani ked je zasobnik v romke, alebo ak ukazuje na nejake data ktore by sa nemali poskodit.


Nahoru
 Profil  
 
PříspěvekNapsal: 08 led 2018, 18:40 
Offline
Kecálek
Uživatelský avatar

Registrován: 24 bře 2014, 07:10
Příspěvky: 89
Has thanked: 16 times
Been thanked: 33 times
Busy píše:
danhard píše:
Nevím jak je u těch udělátorů NMI zařízeno, ale uložení návratové adresy na vrchol zásobníku je vlastnost NMI, s tím se toho moc dělat nedá.
Ale da :) MDV si vo svojom AP-01 spravil taku zaujimavu vec, ze prve dva zapisy do pameti po akceptacii NMI nejdu normalne do ramky, ale odchytia sa do specialneho HW registra. Tym padom ramka zostane neporusena a v registri je k dispozicii navratova adresa, na ktoru sa pri navrate z obsluhy NMI da skocit jumpom. Preto nevadi ani ked je zasobnik v romke, alebo ak ukazuje na nejake data ktore by sa nemali poskodit.


... A toto bych chtěl právě taky na Mbcku... :P

_________________
http://hood.speccy.cz


Nahoru
 Profil  
 
PříspěvekNapsal: 08 led 2018, 19:54 
Online
Pan Štábní

Registrován: 16 čer 2014, 11:23
Příspěvky: 1363
Bydliště: Jesenice
Has thanked: 5 times
Been thanked: 81 times
Busy píše:
danhard píše:
Nevím jak je u těch udělátorů NMI zařízeno, ale uložení návratové adresy na vrchol zásobníku je vlastnost NMI, s tím se toho moc dělat nedá.
Ale da :) MDV si vo svojom AP-01 spravil taku zaujimavu vec, ze prve dva zapisy do pameti po akceptacii NMI nejdu normalne do ramky, ale odchytia sa do specialneho HW registra. Tym padom ramka zostane neporusena a v registri je k dispozicii navratova adresa, na ktoru sa pri navrate z obsluhy NMI da skocit jumpom. Preto nevadi ani ked je zasobnik v romke, alebo ak ukazuje na nejake data ktore by sa nemali poskodit.

A při normálním běhu programu je někdy zásobník v ROMce ?

A jak zablokuješ zápis do RAMky ZXS ?


Nahoru
 Profil  
 
PříspěvekNapsal: 09 led 2018, 00:46 
Offline
Kecálek

Registrován: 18 říj 2014, 22:10
Příspěvky: 163
Has thanked: 9 times
Been thanked: 38 times
danhard píše:
A při normálním běhu programu je někdy zásobník v ROMce ?
Dlhodobo asi nie, ale mohol by sa vyskytnúť pri kopírovaní dát z ROM-ky za použitia SP.
Ale určite sa môže vyskytnúť na začiatku obrazovky (adresa 16384), teda pri NMI by sa návratová adresa zapisovala do ROM-ky.


Nahoru
 Profil  
 
PříspěvekNapsal: 09 led 2018, 02:00 
Offline
Kecálek
Uživatelský avatar

Registrován: 24 bře 2014, 07:10
Příspěvky: 89
Has thanked: 16 times
Been thanked: 33 times
Antony/DTA píše:
danhard píše:
A při normálním běhu programu je někdy zásobník v ROMce ?
Dlhodobo asi nie, ale mohol by sa vyskytnúť pri kopírovaní dát z ROM-ky za použitia SP.
Ale určite sa môže vyskytnúť na začiatku obrazovky (adresa 16384), teda pri NMI by sa návratová adresa zapisovala do ROM-ky.


MBčko umí povolovat zápis do spodních 16K. Tedy ano, zásobník může být i tady.

U BSROM se to neděje, zásbník je vždy nad #4000, ale u BSDOSu (nultá SRAMka je BSROM, první SRAM banka je BSDOS), tam už i při běžné práci je zásobník umístěn pod #4000, a tedy po stisku nmi tlačítka se nemáš šanci (na neupraveném ZXS) dostat zpět do programu.

Hood

_________________
http://hood.speccy.cz


Nahoru
 Profil  
 
PříspěvekNapsal: 11 led 2018, 13:45 
Online
Pan Štábní

Registrován: 16 čer 2014, 11:23
Příspěvky: 1363
Bydliště: Jesenice
Has thanked: 5 times
Been thanked: 81 times
Dobře, pokud nefunguje stack, tak je zapotřebí zachytit návratovou adresu do 2 byte registrů.
Jediné co NMI změní je obsah SP na SP+2 a někam se to pokusí podle SP zapsat návratovou adresu.

Ty registry a přepínací logiku má v sobě Profi Interface ?


Nahoru
 Profil  
 
PříspěvekNapsal: 11 led 2018, 14:47 
Offline
Kecálek
Uživatelský avatar

Registrován: 24 bře 2014, 07:10
Příspěvky: 89
Has thanked: 16 times
Been thanked: 33 times
danhard píše:
Dobře, pokud nefunguje stack, tak je zapotřebí zachytit návratovou adresu do 2 byte registrů.
Jediné co NMI změní je obsah SP na SP+2 a někam se to pokusí podle SP zapsat návratovou adresu.

Ty registry a přepínací logiku má v sobě Profi Interface ?


Ano, čtení portu 23 má v sobě Profi If. Při stisku nmi však i s profi if je stále navratova adresa ukladana na zásobník.

_________________
http://hood.speccy.cz


Nahoru
 Profil  
 
PříspěvekNapsal: 11 led 2018, 14:55 
Offline
Kecálek
Uživatelský avatar

Registrován: 24 bře 2014, 07:10
Příspěvky: 89
Has thanked: 16 times
Been thanked: 33 times
Teď mě však napadá. Když víme jaká sramka byla dole na mbcku pristrankovana, jinými slovy známé poslední hodnotu portu 23 a vime, že i když je zásobník pod #4000 a je povolen zápis, tak nebude v tomto případě návrat z nmicka úspěšný když se budu z něj vracet přímo s tou samou stránkou?

Procesor přece po stisku nmi tlačítka uloží na zásobník dva bajty a i když je zásobník pod #4000 tak při povolením zapíse by to mělo fungovat. Nebo se po stisku nmi nejdříve přepne procesor do ROM, zakáže zápis a až pak ukládá dva bajty na zásobník?

_________________
http://hood.speccy.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ů: 14 ] 

Všechny časy jsou v UTC + 1 hodina


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 4 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