OldComp.cz

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


Právě je 28.03.2024, 17:58

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 16 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: ZX Spectrum bez softwarového vybavení
PříspěvekNapsal: 06.08.2017, 18:55 
Offline
Kecálek

Registrován: 27.09.2013, 19:59
Příspěvky: 91
Bydliště: Havirov
Has thanked: 0 time
Been thanked: 11 times
Chtěl jsem se zeptat. Když si představím ZX Spectrum bez software, tzn. celá pamět od adresy 0 po 65535 obsahuje samé nuly, co se přesně stane když takové Spectrum zapnu do el. sítě a jakými hardwarovými prvky je to dáno? Představuji si, že se nějak inicializuje CPU (automaticky nebo je přiveden nějaký signál na nějaký PIN ?) a ten začně vykonávat kód od adresy 0 směrem k vyšším adresám. To tedy znamená, že vykoná 65535 instrukcí NOP a co se stane potom? A jaké je např. defaultní nastavení registrů, např. SP tedy kde začíná defaultně zásobník atd.

Byl by někdo schopen toho nějak uceleně a jednoduše popsat?


Nahoru
 Profil  
 
PříspěvekNapsal: 06.08.2017, 19:11 
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
Pokud by tam byly same nuly, tak to bude porad dokola vykonavat NOP - ackoliv nevim, jestli je defaultne zapnute preruseni. Pokud ano, tak to po case zabloudi.
Nicmene:
- pokud vytahnes ROMku, tak na sbernici budou patrne nahodne hodnoty pri cteni prvnich 16KB
- obsah RAM po zapnuti je nahodny, nikoliv 00

Jinymi slovy - neda se rict, co udela Speccy bez ROMky :)

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


Nahoru
 Profil  
 
PříspěvekNapsal: 06.08.2017, 22:08 
Offline
Site Admin
Uživatelský avatar

Registrován: 11.05.2013, 23:48
Příspěvky: 10111
Bydliště: Praha
Has thanked: 1953 times
Been thanked: 1517 times
Nevim, zda budes chtit moji odpoved, bo to vezmu strany Amigy. Nejaky zakladni kus kodu tam byt musi - treba bootstrap, aby se alespon provedl LOAD, abys natahl program, ktery uz bude delat vse po svem. Ale stejne budes muset k hw pristupovat pres nejake sve rutiny. Nevim, zda je to na Spectru cesta k lepsim zitrkum. :) ;)

_________________
Amiga/Amstrad/Atari/Commodore/Mac/Nintendo/PS/PC/Sega/Tandy/ZX


Nahoru
 Profil  
 
PříspěvekNapsal: 07.08.2017, 00:25 
Offline
Kecálek

Registrován: 27.09.2013, 19:59
Příspěvky: 91
Bydliště: Havirov
Has thanked: 0 time
Been thanked: 11 times
No mě šlo spíš o to na jakou adresu se skáče po zapnutí počítače a jaké jsou inicializační podmínky ohledně procesoru. Kdybych si např. chtěl napsat úplně vlastní ROM. Nebo třeba Azorados :-). Mám jakési kódy hotové, ale když je nahraju do spodních 8 kB ROM a napálím do DivIDE tak to nejede.


Nahoru
 Profil  
 
PříspěvekNapsal: 07.08.2017, 05:35 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Nejasně si vzpomínám že při RESETu se vynuluje PC a povolí přerušení. Nic víc, ani SP se snad nemění, ten je potřeba nastavit softwarově, protože procesor nemůže vědět jak velká RAM je v počítači instalovaná a kde zásobník bude.
Takže procesor se rozeběhne od adresy 0000, a bude provádět jeden NOP za druhým až do prvního přerušení, kdy skočí na začátek paměti a pojede to znovu. Pokud mezi tím stihne projet celý adresní prostor až do konce, šestnáctibitový PC normálně přeteče a začne se zase od 0000.

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
PříspěvekNapsal: 07.08.2017, 07:16 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 16.03.2017, 11:36
Příspěvky: 1493
Bydliště: Kósek vod Brna
Has thanked: 101 times
Been thanked: 112 times
No ale, jak dorazí na adresu 16k kde je náhodný obsah ram, tak se může dít cokoli

_________________
TEMS-49, PMI-80, rep. MK14, ZX81, ZXspectrum+, TI58, MZ-800


Nahoru
 Profil  
 
PříspěvekNapsal: 07.08.2017, 08:30 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
azorasoft píše:
celá pamět od adresy 0 po 65535 obsahuje samé nuly

Předpokládám že to má nějak zajištěné. Ale pokud by na datovou sběrnici nebylo připojeného vůbec nic, nebudou tam spíš samé 255?

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
PříspěvekNapsal: 07.08.2017, 09:21 
Offline
Kecka

Registrován: 17.02.2014, 14:46
Příspěvky: 58
Bydliště: Brno
Has thanked: 10 times
Been thanked: 7 times
Po resetu se u Z80 vynuluje registr PC (=čitač programu), takže hledá první instrukci na adrese 0x0000h a všechno další se odvíjí podle toho, co na ní najde - pokud tam nenajde žádnou rozumnou instrukci, nebude se dít nic, CPU bude zmatený a nic to dělat nebude. Po resetu se taky Stack Pointer nastaví na 0xFFFFh a vynulují se registry A a F, zakáže se přerušení a nastaví se do módu 0 - to je definováno v dokumentaci k Z80. Co se bude dít, až PC narazí na adresu např. 16k, aby program "nevlezl" na vyšší adresy, záleží čistě na programátorovi (skok na začátek, smyčka, skok do podprogramu...). Stejně tak je už pak starost programátora, jaký bude obsah RAM při inicializaci mikropočítače, jestli ho nechá náhodný, nebo vynuluje nebo "vyefkuje", nebo něco jiného...

_________________
Klony, hybridy, kopie a jiná udělátka v duchu PMI-80, SAPI-1, ZX Sparrow, SAVIA-84 a pokusy o vlastní konstrukce úplně nových historických počítačů


Nahoru
 Profil  
 
PříspěvekNapsal: 07.08.2017, 09:34 
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
azorasoft píše:
No mě šlo spíš o to na jakou adresu se skáče po zapnutí počítače a jaké jsou inicializační podmínky ohledně procesoru.

RTFM !!!

Vsetko je v oficialnej dokumentacii (Z80-CPU datasheet), len treba nebyt lenivy a precitat si to.
Signalom RESET procesor vynuluje registre PC, IFF0 a IFF1. To znamena, ze po skonceni aktivnej urovne signalu RESET procesor zacne vykonavat program od adresy 0 pricom prerusenie ma zakazane. Ak mas cely adresovy priestor 64kB zaplneny nulami, potom procesor stale dokola vykonava same NOPy az do nemoty. PC je normalny 16-bitovy registrer ako BC,DE,HL,SP,IX,IY... cize ak ma hodnotu #FFFF a inkrementne sa (po vykonani NOPu na adrese #FFFF) tak nadobudne hodnotu 0 a program normalne pokracuje od adresy 0 (*). Stavy ostatnych registrov su irelevantne pretoze kvoli samym nopom a zakazanemu preruseniu sa s ostatnymi registrami vobec nebude pracovat.
azorasoft píše:
Kdybych si např. chtěl napsat úplně vlastní ROM. Nebo třeba Azorados :-).
Nebol Azorados uz ako hotovy prezentovany na niektorom JHcone ?
azorasoft píše:
Mám jakési kódy hotové, ale když je nahraju do spodních 8 kB ROM a napálím do DivIDE tak to nejede.
Toto vyzera na chybu medzi stolickou a klavesnicou :) Skontroluj ci mas DivIDE spravne nastavene a za akych podmienok sa ti namapuje do dolnych 16kB namiesto romky, aby sa procesor vobec dostal k tvojmu kodu.

______________________________
(*) Poznamka pod ciarou: Pretecene registra PC sa bezne vyuziva v IM2 handleroch - do I sa nastavi hodnota napr. #3B, na adrese #3BFF je (v standartnych romkach) #FFFF cize pri preruseni CPU skoci na adresu #FFFF. Tu je nejaka instrukcia skoku, bud JR alebo JP. Ked CPU nacita operacny kod JR alebo JP, uplne normalne inkrementne register PC (PC bude mat nulovu hodnotu) a tak isto uplne normalne (cize z adresy 0 kedze PC ma nulovu hodnotu) nacita argument skokovej instrukcie a skoci na prislusne miesto. Na zaciatku romky je DI, XOR A co je #F3 #AF, cize JR #F3 skoci o kusok nazad, a JP #AFF3 skoci na adresu #AFF3.


Naposledy upravil Busy dne 07.08.2017, 10:05, celkově upraveno 1

Nahoru
 Profil  
 
PříspěvekNapsal: 07.08.2017, 09:41 
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
kelley12 píše:
Po resetu se u Z80 vynuluje registr PC (=čitač programu), takže hledá první instrukci na adrese 0x0000h a všechno další se odvíjí podle toho, co na ní najde - pokud tam nenajde žádnou rozumnou instrukci, nebude se dít nic, CPU bude zmatený a nic to dělat nebude.
;) :) :D :lol: Tak toto ma dostaloooooooo :jump: :P Zmeteny CPU, to je tak kraasne napisane ze doteraz ma boli branica :clap:

Ale k veci. Mas pravdu, ze resetom sa vynuluje PC a ze po resete CPU vykona prvu instrukciu na adrese 0.
Ale, ak sa teda mozem opytat, aky bajt, s akou hodnotou by mal CPU z tejto adresy nacitat, aby to nebola ziadna rozumna instrukcia a aby CPU bol z toho zmeteny, a aby sa tym padom dalej nedialo nic ? :poke:


Nahoru
 Profil  
 
PříspěvekNapsal: 07.08.2017, 10:10 
Offline
Kecka

Registrován: 17.02.2014, 14:46
Příspěvky: 58
Bydliště: Brno
Has thanked: 10 times
Been thanked: 7 times
Pokud nebude na adrese 0000 nalezena žádná paměť, bude chování CPU zcela náhodné a nedefinova(tel)né. Nevím co je na tom k smíchu.

_________________
Klony, hybridy, kopie a jiná udělátka v duchu PMI-80, SAPI-1, ZX Sparrow, SAVIA-84 a pokusy o vlastní konstrukce úplně nových historických počítačů


Nahoru
 Profil  
 
PříspěvekNapsal: 07.08.2017, 10:11 
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
Busy píše:
azorasoft píše:
No mě šlo spíš o to na jakou adresu se skáče po zapnutí počítače a jaké jsou inicializační podmínky ohledně procesoru.

RTFM !!!

Vsetko je v oficialnej dokumentacii (Z80-CPU datasheet), len treba nebyt lenivy a precitat si to.

Ano, od čtení dokumentace by měl začít. Už jen proto, že chtít s takovouto hloubkou nevědomosti psát (jakýkoli) OS, to je mission impossible. :roll:

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

www.zxsparrow.com


Nahoru
 Profil  
 
PříspěvekNapsal: 07.08.2017, 10:54 
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
kelley12 píše:
Pokud nebude na adrese 0000 nalezena žádná paměť, bude chování CPU zcela náhodné a nedefinova(tel)né. Nevím co je na tom k smíchu.
K smiechu je to ze CPU bude zmeteny :) A ze sa nebude diat nic, rozhodne nie je pravda.

Tak isto nie je pravda, ze spravanie CPU bude nahodne a nedefinovane. CPU bude poctivo, presne podla specifikacie, vykonavat instrukcie ktore nacita z datovej zbernice. Spravanie CPU je teda deterministicke a presne dane. V pripade, ktory popisuje azorasoft (celá pamět od adresy 0 po 65535 obsahuje samé nuly) bude stale dokola vykonavat NOPy ako som pisal vyssie.

V pripade, ze na ZX Spektre nie je osadena romka, CPU z datovej zbernice nacita bud hodnotu #FF (lebo odpory o +5V) alebo bajt z videoramky ktory bol zrovna citany Ulou kvoli zobrazovaniu a tento bajt normalne regulerne vykona ako instrukciu. V pripade bajtov #FF (ktorych bude drviva vecsina) je to instrukcia RST #38, takze bude stale skakat na tuto adresu, pricom zasobnikom bude postupne dokola prepisovat celu ramku. V pripade nacitania hodnoty z videoramky vykona instrukciu danu obsahom videoram takze skakanie na #38 nebude kontinualne, ale bude prerusovane sporadickym vykonanim nejakej inej instrukcie.

A vznikne z toho krasny farebny flower-wall :joint:


Nahoru
 Profil  
 
PříspěvekNapsal: 07.08.2017, 12:04 
Offline
Kecka

Registrován: 17.02.2014, 14:46
Příspěvky: 58
Bydliště: Brno
Has thanked: 10 times
Been thanked: 7 times
OK - beru... zanedbal jsem obvody okolo a myslel jsem jen holý procesor v luftě. Procesor bude od adresy 0000 dělat to, co mu nacpou okolní obvody (ULA a spol.) na datovou sběrnici, sohlasím.

_________________
Klony, hybridy, kopie a jiná udělátka v duchu PMI-80, SAPI-1, ZX Sparrow, SAVIA-84 a pokusy o vlastní konstrukce úplně nových historických počítačů


Nahoru
 Profil  
 
PříspěvekNapsal: 08.08.2017, 00:52 
Offline
Kecálek

Registrován: 27.09.2013, 19:59
Příspěvky: 91
Bydliště: Havirov
Has thanked: 0 time
Been thanked: 11 times
Citace:
Nebol Azorados uz ako hotovy prezentovany na niektorom JHcone ?


Byl. Ale to byl mborikuv fake.


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ů: 16 ]  Přejít na stránku 1, 2  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 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:  
cron
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz