OldComp.cz

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

Reklama!

Právě je 10 pro 2018, 19:39

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 77 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6  Další
Autor Zpráva
PříspěvekNapsal: 08 led 2016, 12:56 
Offline
Radil
Uživatelský avatar

Registrován: 12 kvě 2013, 19:32
Příspěvky: 306
Bydliště: Kladno
Has thanked: 21 times
Been thanked: 67 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.

_________________
>> Amiga 1200, ZX Spectrum+, Didaktik Gama, LnxSpectrum, LnxTracker, https://www.ilnx.cz <<


Nahoru
 Profil  
 
PříspěvekNapsal: 08 led 2016, 13:04 
Offline
Kecálek

Registrován: 21 říj 2013, 08:25
Příspěvky: 247
Has thanked: 98 times
Been thanked: 87 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 led 2016, 13:52 
Offline
Pan Generální

Registrován: 22 kvě 2013, 20:14
Příspěvky: 2035
Bydliště: Bratislava
Has thanked: 224 times
Been thanked: 378 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 led 2016, 14:19 
Offline
Radil
Uživatelský avatar

Registrován: 12 kvě 2013, 19:32
Příspěvky: 306
Bydliště: Kladno
Has thanked: 21 times
Been thanked: 67 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:

_________________
>> Amiga 1200, ZX Spectrum+, Didaktik Gama, LnxSpectrum, LnxTracker, https://www.ilnx.cz <<


Nahoru
 Profil  
 
PříspěvekNapsal: 08 led 2016, 15:08 
Offline
Pan Generální

Registrován: 22 kvě 2013, 20:14
Příspěvky: 2035
Bydliště: Bratislava
Has thanked: 224 times
Been thanked: 378 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 led 2016, 15:23 
Offline
Radil
Uživatelský avatar

Registrován: 12 kvě 2013, 19:32
Příspěvky: 306
Bydliště: Kladno
Has thanked: 21 times
Been thanked: 67 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:

_________________
>> Amiga 1200, ZX Spectrum+, Didaktik Gama, LnxSpectrum, LnxTracker, https://www.ilnx.cz <<


Nahoru
 Profil  
 
PříspěvekNapsal: 08 led 2016, 16:48 
Offline
Pan Generální

Registrován: 22 kvě 2013, 20:14
Příspěvky: 2035
Bydliště: Bratislava
Has thanked: 224 times
Been thanked: 378 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 bře 2018, 12:10 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18 čer 2013, 19:26
Příspěvky: 2237
Has thanked: 83 times
Been thanked: 319 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)

_________________
www.zxsparrow.com


Nahoru
 Profil  
 
PříspěvekNapsal: 07 bře 2018, 13:35 
Offline
Pan Generální
Uživatelský avatar

Registrován: 28 led 2016, 22:57
Příspěvky: 2667
Has thanked: 139 times
Been thanked: 184 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.

_________________
ZX-81, ZX Spectrum, ZX Spectrum+, ZX Spectrum+2, Sinclair QL, Timex 1000 / 1500, CPC464, CPC6128, GX4000, Atari 2600 / 2600Jr, 600XL / 800XL / 130XE, Atari 260ST / 520ST / 1040ST / 1040STE / Mega / MegaSTE, C16, C64, C128, C128D, Amiga A500, Macintosh IIcx / IIvx / SE / LC II / 630 / 7300 / PowerMac G3 / G4 / G5, Laser210-8k / VZ200, Philips VG8010/8020, Canon V-20, Sony HitBit, Sanyo MPC-100, TI 99/4A, Didaktik Gama / M, IQ 151, PMD-85, MZ-700, PCW8256, Acorn Electron, CoCo, CoCo2, Oric Atmos, SGI Indy / Octane 2 / O2 / Indigo 2, HP-9000 715/80 a 715/100, IBM RS6000, Thomson MO5 / MO5E / MO6 / TO8, Dragon 32, Matra Alice, IBM PS/2 Model 30


Nahoru
 Profil  
 
PříspěvekNapsal: 07 bře 2018, 13:48 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18 čer 2013, 19:26
Příspěvky: 2237
Has thanked: 83 times
Been thanked: 319 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."

_________________
www.zxsparrow.com


Nahoru
 Profil  
 
PříspěvekNapsal: 20 srp 2018, 22:22 
Offline
Kecálek

Registrován: 01 pro 2017, 20:01
Příspěvky: 242
Bydliště: BA-Králikárne
Has thanked: 3 times
Been thanked: 38 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)

_________________
Všetky mnou poskytnuté informácie sú voľne šíriteľné. Odporúčam ich zálohovať, servery zvyknú padať, informácie sa strácať..... a ľudia tiež.


Nahoru
 Profil  
 
PříspěvekNapsal: 21 srp 2018, 07:45 
Offline
Kecálek

Registrován: 07 kvě 2014, 11:10
Příspěvky: 125
Bydliště: Jbc
Has thanked: 0 time
Been thanked: 24 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 srp 2018, 07:52 
Offline
Pan Generální

Registrován: 22 kvě 2013, 20:14
Příspěvky: 2035
Bydliště: Bratislava
Has thanked: 224 times
Been thanked: 378 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 srp 2018, 13:30 
Offline
Kecálek

Registrován: 01 pro 2017, 20:01
Příspěvky: 242
Bydliště: BA-Králikárne
Has thanked: 3 times
Been thanked: 38 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?

_________________
Všetky mnou poskytnuté informácie sú voľne šíriteľné. Odporúčam ich zálohovať, servery zvyknú padať, informácie sa strácať..... a ľudia tiež.


Nahoru
 Profil  
 
PříspěvekNapsal: 21 srp 2018, 14:07 
Offline
Kecálek

Registrován: 07 kvě 2014, 11:10
Příspěvky: 125
Bydliště: Jbc
Has thanked: 0 time
Been thanked: 24 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ů: 77 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6  Další

Všechny časy jsou v UTC + 1 hodina


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