OldComp.cz

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

Reklama!

Právě je 21 lis 2018, 11:13

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 70 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5
Autor Zpráva
 Předmět příspěvku: Re: Assembler
PříspěvekNapsal: 08 led 2014, 17:07 
Offline
Kecálek

Registrován: 12 kvě 2013, 21:24
Příspěvky: 245
Has thanked: 0 time
Been thanked: 53 times
Milsa píše:
Kedysi sme mali na Didaktik Game spektrácky program na výuku assembleru. Nahrávalo sa to z kazety postupne po lekciách. Bolo to v češtine. Myslím, že obsahovo aj pedagogicky to bol výborný program. Nemá to niekto? Samozrejme aj s návodom ako to nahrať do emulátora.

Šlo o počeštěnou verzi tohoto:
http://www.worldofspectrum.org/infoseekid.cgi?id=0008031


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler
PříspěvekNapsal: 08 led 2014, 17:17 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 11 čer 2013, 14:27
Příspěvky: 1586
Has thanked: 994 times
Been thanked: 274 times
Tu dole uprostred?
http://sam.speccy.cz/assembler.html


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler
PříspěvekNapsal: 08 led 2014, 19:03 
Offline
Profík
Uživatelský avatar

Registrován: 09 říj 2013, 18:04
Příspěvky: 739
Has thanked: 86 times
Been thanked: 28 times
dex píše:
Milsa píše:
Kedysi sme mali na Didaktik Game spektrácky program na výuku assembleru. Nahrávalo sa to z kazety postupne po lekciách. Bolo to v češtine. Myslím, že obsahovo aj pedagogicky to bol výborný program. Nemá to niekto? Samozrejme aj s návodom ako to nahrať do emulátora.

Šlo o počeštěnou verzi tohoto:
http://www.worldofspectrum.org/infoseekid.cgi?id=0008031

Áno, bol to TUTOR. Myslel som, že to bolo pôvodom české.

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler
PříspěvekNapsal: 22 led 2014, 11:03 
Offline
Profík
Uživatelský avatar

Registrován: 09 říj 2013, 18:04
Příspěvky: 739
Has thanked: 86 times
Been thanked: 28 times
Mal by som otázku na znalcov procesora Z80. Ako procesor vyhodnotí túto inštrukciu?
FD ED 40 - Ide o to, že prefix FD sa s prefixom ED nedá použiť. Sú teda dve možnosti:
a) FD ED sa vyhodnotí ako NOP s 8 T-States (neviem presný preklad) a potom sa vykoná inštrukcia 40, čiže LD B,B
b) FD sa ignoruje (tak ako napr. pri inštrukcii FD 01 12 34, čiže LD BC,3412) čiže NOP so 4 T-States a vykoná sa inštrukcia ED 40, čiže IN B,(C)

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler
PříspěvekNapsal: 22 led 2014, 12:00 
Offline
Pan Generální

Registrován: 22 kvě 2013, 20:14
Příspěvky: 2017
Bydliště: Bratislava
Has thanked: 221 times
Been thanked: 373 times
Milsa píše:
Mal by som otázku na znalcov procesora Z80. Ako procesor vyhodnotí túto inštrukciu?
FD ED 40 - Ide o to, že prefix FD sa s prefixom ED nedá použiť. Sú teda dve možnosti:
a) FD ED sa vyhodnotí ako NOP s 8 T-States (neviem presný preklad) a potom sa vykoná inštrukcia 40, čiže LD B,B
b) FD sa ignoruje (tak ako napr. pri inštrukcii FD 01 12 34, čiže LD BC,3412) čiže NOP so 4 T-States a vykoná sa inštrukcia ED 40, čiže IN B,(C)
b) je spravne. Pri instrukciach po #ED sa pripadne predchadzajuce prefixy #DD,#FD zvysoka odignoruju. Z hladiska poctu taktov je to rovnocenne ako keby sa pred danou instrukciou namiesto #DD alebo #FD vykonal klasicky 4T NOP.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler
PříspěvekNapsal: 01 úno 2014, 15:22 
Offline
Profík
Uživatelský avatar

Registrován: 09 říj 2013, 18:04
Příspěvky: 739
Has thanked: 86 times
Been thanked: 28 times
Vie mi niekto dať nejaký link, kde je presne popísané chovanie klopných obvodov IFF1 a IFF2 a ako presne funguje prerušenie v stave IM0, IM1, IM2? Niečo som našiel, ale stále tomu dostatočne nerozumiem.

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler
PříspěvekNapsal: 01 úno 2014, 22:40 
Offline
Pan Generální

Registrován: 22 kvě 2013, 20:14
Příspěvky: 2017
Bydliště: Bratislava
Has thanked: 221 times
Been thanked: 373 times
Milsa píše:
Vie mi niekto dať nejaký link, kde je presne popísané chovanie klopných obvodov IFF1 a IFF2 a ako presne funguje prerušenie v stave IM0, IM1, IM2? Niečo som našiel, ale stále tomu dostatočne nerozumiem.
DI ... vynuluje obidva IFF1 aj IFF2.
EI ... nastavi obidva IFF1 aj IFF2.
Signal NMI ... vynuluje iba IFF1
RETN ... stav IFF2 presunie do IFF1.
LD A,R a LD A,I ... stav IFF2 presunie do P/V flagu.
Signal INT ... Ak IFF1=1 tak vynuluje IFF1 aj IFF2 a skoci na rutinku prerusenia, inak nic.

Ludsky napisane:
Pri normalnej cinnosti (hlavny program, obsluha maskovatelneho prerusenia) su IFF1 a IFF2 nastavovane vzdy rovnako.
Pri nemaskovatelnom preruseni sa vynuluje iba IFF1 aby sa nevykonalo pripadne INT avsak pri navrate RETN sa stav IFF1 zase obnovi zo zalohy IFF2 - tym padom sa po navrate z NMI zachova pred tym nastaveny stav DI/EI.
LD A,x (x=I alebo R) cita stav IFF2, takze v NMI rutinke je mozne si precitat, ci pred prichodom NMI bolo prerusenie zakazane alebo povolene.

Mody prerusenia:
IM0 ... po INT ocakava na zbernici instrukciu co ma robit. Obvykle to byva RST xx co znamena zavolanie podprogramu na adresu xx. Na beznych Spektrach, kde su na datovej zbernici odpory o +5V, sa precita instrukcia 255 co je RST #38.
IM1 ... nic zo zbernice necaka a rovno natvrdo vykona RST #38, t.j. zavola rutinku prerusenia na adrese #38.
IM2 ... precita z datovej zbernice bajt - to bude nizsi bajt adresy, vezme hodnotu registra I - to bude vyssi bajt adresy. Potom nacita z tejto adresy v pameti dva bajty ktore hovoria kam ma skocit na rutinku prerusenia. Cize v podstate sa akoze vykona takyto kod:
Kód:
ld l,bajt_z_datovej_zbernice
ld h,i
ld e,(hl)
inc hl
ld d,(hl)
ex de,hl
push navratova_adresa_do_preruseneho_programu
jp (hl)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler
PříspěvekNapsal: 02 úno 2014, 14:14 
Offline
Profík
Uživatelský avatar

Registrován: 09 říj 2013, 18:04
Příspěvky: 739
Has thanked: 86 times
Been thanked: 28 times
Po prečítaní tohto už viem, že čo mi nebolo jasné. Išlo o to, že som nechápal význam načo je IFF1 a IFF2, keď sa programovo nastavujú obidva a prerušenia si ich len prehadzujú. Teraz už chápem, že ide o to, že do IFF2 sa ukladá stav IFF1 počas prerušenia, aby sa vrátila pôvodná hodnota nastavenia povolenia prerušenia. Ďakujem za kvalitné odborné vysvetlenie.

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler
PříspěvekNapsal: 05 úno 2014, 11:37 
Offline
Profík
Uživatelský avatar

Registrován: 09 říj 2013, 18:04
Příspěvky: 739
Has thanked: 86 times
Been thanked: 28 times
Ešte ma napadlo: Ak je procesor v stave zakázaného prerušenia a príde signál na prerušenie
a) pamätá si túto žiadosť a vykoná prerušenie len čo to bude možné
b) pokiaľ trvá signál na prerušenie, dovtedy je možné, že sa vykoná, ak sa prerušenie povolí
c) dôležitý je nábeh signálu na prerušenie, ak je vtedy zakázané, tak hoci aj signál na prerušenie trvá, po povolení sa prerušenie nevykoná

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler
PříspěvekNapsal: 07 úno 2014, 20:33 
Offline
Pan Generální

Registrován: 22 kvě 2013, 20:14
Příspěvky: 2017
Bydliště: Bratislava
Has thanked: 221 times
Been thanked: 373 times
Milsa píše:
Ešte ma napadlo: Ak je procesor v stave zakázaného prerušenia a príde signál na prerušenie
a) pamätá si túto žiadosť a vykoná prerušenie len čo to bude možné
Nepameta.
Milsa píše:
b) pokiaľ trvá signál na prerušenie, dovtedy je možné, že sa vykoná, ak sa prerušenie povolí
Pri signale INT sa netestuje hrana, ale uroven. Takze je jedno kedy bola nabezna hrana, ak sa zrovna skonci instrukcia, prerusenie je povolene a INT je v log 0 tak sa prerusenie zavola.
Milsa píše:
c) dôležitý je nábeh signálu na prerušenie, ak je vtedy zakázané, tak hoci aj signál na prerušenie trvá, po povolení sa prerušenie nevykoná
Ak je prerusenie povolene (IFF1=1), uroven signalu INT sa "skenuje" po dokonceni kazdej instrukcie (u blokovych instrukcii s opakovanim po kazdej iteracii). Ak je INT=0, potom sa prerusenie zavola, inak nie.


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ů: 70 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5

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:  
cron
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz