OldComp.cz

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


Právě je 28.03.2024, 23:15

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 156 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6, 7, 8 ... 11  Další
Autor Zpráva
PříspěvekNapsal: 08.01.2016, 13:56 
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
Ne ne ne :) ty jsou sice oficiální, ale jsou v základní sadě bez ED :) takže červeně jsou tady správně hihi :)

PS. Jiro promiň už mlčim.

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


Nahoru
 Profil  
 
PříspěvekNapsal: 08.01.2016, 14:04 
Offline
Radil

Registrován: 21.10.2013, 09:25
Příspěvky: 286
Has thanked: 161 times
Been thanked: 116 times
Pár zajímavých i když možná známých fint na z80 je zde: http://wikiti.brandonw.net/index.php?title=Z80_Optimization


Nahoru
 Profil  
 
PříspěvekNapsal: 08.01.2016, 14: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
Lanex píše:
Ne ne ne :) ty jsou sice oficiální, ale jsou v základní sadě bez ED :) takže červeně jsou tady správně hihi :)
Nuz ale potom podla tvojej logiky by mala byt cervena aj SLA A pretoze v zakladnej sade bez CB mas ADD A,A :poke: :neener:


Nahoru
 Profil  
 
PříspěvekNapsal: 08.01.2016, 15:19 
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
a ty máš pod základní sadou s číslem 22, a 2A jiné instrukce, než zminované ld (NN),hl a ld hl,(NN)?

v základní sadě:
22 FF FF (ld (65535),hl)
a tvoje červená:
ED 63 FF FF (ld (65535),hl)

která je správná a dokumentovaná? :) a která je rychlejší?
Busy píše:
Lanex píše:
Ne ne ne :) ty jsou sice oficiální, ale jsou v základní sadě bez ED :) takže červeně jsou tady správně hihi :)
Nuz ale potom podla tvojej logiky by mala byt cervena aj SLA A pretoze v zakladnej sade bez CB mas ADD A,A :poke: :neener:

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


Nahoru
 Profil  
 
PříspěvekNapsal: 08.01.2016, 16:08 
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
Lanex píše:
v základní sadě:
22 FF FF (ld (65535),hl)
a tvoje červená:
ED 63 FF FF (ld (65535),hl)

která je správná a dokumentovaná? :)
Spravne a oficialne dokumentovane su obidve :)
Preto ziadna z nich nema byt cervena.


Nahoru
 Profil  
 
PříspěvekNapsal: 08.01.2016, 16:23 
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
Obidve? Ta v ED je rozhodně jen hříčka přírody (nebo Intelu Zilogu nebo koho), oficiální kod instrukce to není.

V tom případě se podle tvé logiky tedy musí odbarvit i všechny NEG (protože ty jsou také dokumentované) :lol:

No nic, považuju to za vyřešené... :beer:

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


Nahoru
 Profil  
 
PříspěvekNapsal: 08.01.2016, 17:48 
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
Lanex píše:
Obidve? Ta v ED je rozhodně jen hříčka přírody (nebo Intelu Zilogu nebo koho), oficiální kod instrukce to není.
No ak neveris mne, pozri sa do oficialnych tabuliek Z80. Su tam hned vedla bezprefixoveho LD HL,(nn) uvedene aj vsetky ED-ckove LD dd,(nn) kde dd=BC,DE,HL,SP a podobne tak naopak, u LD (nn),HL su zase vsetky LD (nn),dd. A ani z toho ze to bezprefixove je kratsie a rychlejsie nijak nevyplyva, ze prefixove su tajne ci nedokumentovane. Hracka prirody su napr. vsetky manipulacie s polovicami registrov IX a IY, ktore Zilog povodne nemal v plane ale tak nejak akosi sa same objavili :)
Lanex píše:
V tom případě se podle tvé logiky tedy musí odbarvit i všechny NEG (protože ty jsou také dokumentované) :lol:
NEGy su ofarbene uplne spravne, pretoze iba jediny ED 44 najdes v oficialnych tabulkach Z80 a ostatne su nedokumentovane.


Nahoru
 Profil  
 
PříspěvekNapsal: 07.03.2018, 13:10 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.06.2013, 20:26
Příspěvky: 2487
Has thanked: 115 times
Been thanked: 424 times
Chtěl bych se jen ujistit: Když mám v paměti jakýsi čítač, který je de facto osmibitový, poněvadž jeho hodnota nikdy nepřekročí 255, ale potřebuju ho držet ve 2 bajtech, takže:
Kód:
COUNT   dw  0

Je správný můj dojem, že k němu mohu přistupovat těmito oběma způsoby?

Kód:
   ld bc,(COUNT)  ; hodnota čítače se octne v C (resp. v BC, ale v B bude 0)

   ld a,(COUNT)

_________________
"Je lepší rozsvítit byť jen malou svíčku, než jen proklínat temnotu." (Konfucius)

www.zxsparrow.com


Nahoru
 Profil  
 
PříspěvekNapsal: 07.03.2018, 14:35 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 28.01.2016, 23:57
Příspěvky: 3756
Has thanked: 213 times
Been thanked: 388 times
Nakolik tomu rozumim, tak ano, jen ta prvni varianta zabere vic casu (a mista :) ). Jinak je ovsem Z80 procesor typu little endian, takze nizsi byte je na nizsi adrese.

_________________
Nikdy nediskutujte s blbcem. Stáhne vás na svoji úroveň a vyhraje zkušeností.


Nahoru
 Profil  
 
PříspěvekNapsal: 07.03.2018, 14:48 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.06.2013, 20:26
Příspěvky: 2487
Has thanked: 115 times
Been thanked: 424 times
Ano, mělo by to tak fungovat. Jak praví Wikipedie:
Citace:
"Little endian má jednu dobrou vlastnost. Jedna a ta samá hodnota může být z paměti načtena pro různou délku, bez změny adresy.
Například 32bitový řetězec FF 00 00 00 může být načten ze stejné adresy jako 8bitový (hodnota = FF), 16bitový (00FF), 24bitový (0000FF), 32bitový (000000FF); jejich hodnota stále zůstává 255."

_________________
"Je lepší rozsvítit byť jen malou svíčku, než jen proklínat temnotu." (Konfucius)

www.zxsparrow.com


Nahoru
 Profil  
 
PříspěvekNapsal: 20.08.2018, 23:22 
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
Už to bolo dávno, čo som sa tomu venoval, tak sa radšej opýtam. Ako je to s RETI a RETN?

RETI je pre maskovateľné prerušenie (IM0, IM2...)
1. Už si nepamätám, prerušenie vykoná aj DI, alebo sa tam dával DI zvlášť, aby nenastalo prerušenie počas prerušenia? (teda pokiaľ je program prerušenia príliš dlhý)
2. Je RETI to isté ako EI + RET, čiže RETI vykoná aj EI?

RETN je pre nemaskovateľné prerušenie, teda NMI.
3. Treba NMI ukončiť s RETN aby NMI fungovalo naďalej, alebo je to jedno, a NMI funguje kedykoľvek, aj počas prebiehajúceho programu NMI prerušenia? (vychádzam z toho, že NMI je aktivované NMI signálom na zbernici)

_________________
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: 21.08.2018, 08:45 
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
Doporucuji podivat se do nejake dokumentace, treba stale dostupny manual pro Z80.

PotPalo píše:
RETI je pre maskovateľné prerušenie (IM0, IM2...)
1. Už si nepamätám, prerušenie vykoná aj DI, alebo sa tam dával DI zvlášť, aby nenastalo prerušenie počas prerušenia? (teda pokiaľ je program prerušenia príliš dlhý)

Toto je popisovane v kapitole "Interrupt response".

PotPalo píše:
2. Je RETI to isté ako EI + RET, čiže RETI vykoná aj EI?

Krome navratu na adresu ulozenou na zasobniku slouzi jeste k dalsimu ucelu - cituji:
Citace:
Signal an I/O device that the interrupt routine is completed. The RETI instruction also facilitates the nesting of interrupts, allowing higher priority devices to temporarily suspend service of lower priority service routines. However, this instruction does not enable interrupts that were disabled when the interrupt routine was entered. Before doing the RETI instruction, the enable interrupt instruction (EI) should be executed to allow recognition of interrupts after completion of the current service routine.


PotPalo píše:
RETN je pre nemaskovateľné prerušenie, teda NMI.
3. Treba NMI ukončiť s RETN aby NMI fungovalo naďalej, alebo je to jedno, a NMI funguje kedykoľvek, aj počas prebiehajúceho programu NMI prerušenia? (vychádzam z toho, že NMI je aktivované NMI signálom na zbernici)

Co dela RETN navic?
Citace:
The state of IFF2 is copied back to IFF1 so that maskable interrupts are enabled immediately following the RETN if they were enabled before the nonmaskable interrupt.

To znamena, ze pouze obnovi stav EI/DI, ktery byl pred vstupem do NMI preruseni. Schopnost znovu spustit NMI preruseni neni (ne)pouzitim instrukce RETN ovlivnena.


Nahoru
 Profil  
 
PříspěvekNapsal: 21.08.2018, 08: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
PotPalo píše:
prerušenie vykoná aj DI, alebo sa tam dával DI zvlášť, aby nenastalo prerušenie počas prerušenia?
Prerusenie sa pri preruseni (INT aj NMI) zakaze automaticky, netreba osobitne davat DI.
PotPalo píše:
2. Je RETI to isté ako EI + RET, čiže RETI vykoná aj EI?
Nie, RETI spravi iba RET. EI treba vzdy explicitne pouzit, pokial nechces aby prerusenie zostalo zakazane. RETI je len obycajny RET, akurat s inym operacnym kodom.
PotPalo píše:
3. Treba NMI ukončiť s RETN aby NMI fungovalo naďalej, alebo je to jedno, a NMI funguje kedykoľvek, aj počas prebiehajúceho programu NMI prerušenia?
Je to jedno, NMI je non-maskable, t.j. nezakazatelne prerusenie, CPU ho akceptuje vzdy. Takze ano, aj vtedy ked zrovna vykonava obsluznu rutinku NMI.

RETN ako navrat z obsluhy NMI treba pouzit vtedy, ak je potrebne aby po navrate z tejto obsluhy bolo klasicke maskovatelne prerusenie zakazane alebo povolene tak ako bolo pred prichodom signalu NMI. Pri vstupne do obsluhy NMI si CPU automaticky odpameta aktualny stav EI/DI, potom spravi DI, skonci na obsluhu prerusenia a RETN na jej konci sa vrati nazad a obnovi stav EI/DI aky bol predtym.


Nahoru
 Profil  
 
PříspěvekNapsal: 21.08.2018, 14:30 
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
Super, ďakujem za vysvetlenie. Takže ak tomu správne rozumiem, v oboch prípadoch môžem použiť obyčajné RET, ak si zapnutie alebo vypnutie prerušenia pred ním ošetrím programovo?

_________________
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: 21.08.2018, 15:07 
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
PotPalo píše:
Super, ďakujem za vysvetlenie. Takže ak tomu správne rozumiem, v oboch prípadoch môžem použiť obyčajné RET, ak si zapnutie alebo vypnutie prerušenia pred ním ošetrím programovo?


RET neni obecne funkcne shodny s RETI nebo RETN. Existuji pripady, kde to bude jedno, ale je potreba ty rozdily znat a pouzit to pouze kdyz to nevadi... Prave proto jsem tu daval odkaz na dokumentaci, kde to je popsane...
RETN obnovuje stav EI/DI podle toho, zda bylo preruseni pred aktivaci NMI zakazane nebo povolene.
RETI mj. generuje jiny prubeh na sbernici kvuli signalizaci konce preruseni pro periferie z rady Z80.


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ů: 156 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6, 7, 8 ... 11  Další

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