OldComp.cz

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


Právě je 29.03.2024, 09:28

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 13 ] 
Autor Zpráva
 Předmět příspěvku: PROFI interface - umí číst port 23
PříspěvekNapsal: 07.01.2018, 09:47 
Offline
Kecálek
Uživatelský avatar

Registrován: 24.03.2014, 08:10
Příspěvky: 206
Has thanked: 80 times
Been thanked: 124 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
http://sarah.speccy.cz


Nahoru
 Profil  
 
PříspěvekNapsal: 08.01.2018, 15:01 
Offline
Kecálek
Uživatelský avatar

Registrován: 24.03.2014, 08:10
Příspěvky: 206
Has thanked: 80 times
Been thanked: 124 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
http://sarah.speccy.cz


Nahoru
 Profil  
 
PříspěvekNapsal: 08.01.2018, 16:17 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 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.

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Naposledy upravil danhard dne 08.01.2018, 16:51, celkově upraveno 1

Nahoru
 Profil  
 
PříspěvekNapsal: 08.01.2018, 16:32 
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
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.01.2018, 17:15 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 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

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
PříspěvekNapsal: 08.01.2018, 18:22 
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
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.01.2018, 19:40 
Offline
Kecálek
Uživatelský avatar

Registrován: 24.03.2014, 08:10
Příspěvky: 206
Has thanked: 80 times
Been thanked: 124 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
http://sarah.speccy.cz


Nahoru
 Profil  
 
PříspěvekNapsal: 08.01.2018, 20:54 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 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 ?

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
PříspěvekNapsal: 09.01.2018, 01:46 
Offline
Radil

Registrován: 18.10.2014, 23:10
Příspěvky: 377
Has thanked: 28 times
Been thanked: 120 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.01.2018, 03:00 
Offline
Kecálek
Uživatelský avatar

Registrován: 24.03.2014, 08:10
Příspěvky: 206
Has thanked: 80 times
Been thanked: 124 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
http://sarah.speccy.cz


Nahoru
 Profil  
 
PříspěvekNapsal: 11.01.2018, 14:45 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 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 ?

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
PříspěvekNapsal: 11.01.2018, 15:47 
Offline
Kecálek
Uživatelský avatar

Registrován: 24.03.2014, 08:10
Příspěvky: 206
Has thanked: 80 times
Been thanked: 124 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
http://sarah.speccy.cz


Nahoru
 Profil  
 
PříspěvekNapsal: 11.01.2018, 15:55 
Offline
Kecálek
Uživatelský avatar

Registrován: 24.03.2014, 08:10
Příspěvky: 206
Has thanked: 80 times
Been thanked: 124 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
http://sarah.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ů: 13 ] 

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