Byl to NMI a byl tam flag, jestli se má udělat cold reset nebo warm. Cold to mazal všechno, hot ne.
Paměť jsem si osvěžoval tady https://atarifoundry.com/docs/forge/reference/interrupts
7. 7. 2026, 19:02 editováno autorem komentáře
Jak by podle tebe "mel" hardwarovy reset smazat pameti? Ty DRAM brouky zadnou resetovaci nohu nemaji, takze jedina sance by byla nechat je zapomenout. Vsechny obyc osmibity po tvrdem resetu (tj. ne NMI, ale proste CPU resetu) normalne obsah pameti zachovaji. Nekde se toho muze vyuzit pri debugu, nekde je v ROM rutina na premaznuti pameti.
Některé osmibity měly refresh DRAM softwarový. Pak by (po)zastavení CPU resetem způsobilo výpadek refreshe a tím poškození obsahu RAM. Na Atari jsem mohl držet reset libovolně dlouho a obsah paměti se zachoval, takže refresh musel být generován jinak. Vzhledem k tomu, že všechny "velké" obvody v A800 mají reset, nemohly refresh generovat ony, museli to být realizováno nějak jinak. A jak, to je právě to, co nevím.
OK, je čas zeptat se AI.
Tak ono to bylo celkem standardní řešení, které se navíc přímo nabízelo samo - který obvod už ze své podstaty je dokonale přizpůsoben k pravidelnému procházení RAM téměř nezávisle na CPU...
Tohle není nic překvapivého, to kolikrát je hlavolam rozluštit funkci starého elektronkového obvodu, kde jedna pentoda funguje jako oscilátor, směšovač a zesilovač s řiditelným ziskem zároveň apod. Vlastně stačí kouknout na schema jakéhokoliv lampového televizoru a neznalý člověk se bude divit, jak je možné, že takhle jednoduchý obvod vážně dokázal plnit funkci televizního přijímače. Obdivuji ten cit tehdejších konstruktérů pro to, co se přesně v tom obvodu děje a na co vše okolo to má vliv, který místo toho, aby ho potlačili jako nežádoucí, tak ho využili pro svůj účel.
Já u vývoje C64 nebyl, ale podle toho, že A800 vyšlo v r. 1979 a C64 v r. 1982, tak tu inspiraci vidím spíš naopak. Neplrst si A800 s A800XL, který vznikla jako reakce na C64. Ale co se týká refresh DRAM, tam je u XL stejný princip jako u starého A800, i když samotný reset probíhá jinak (u A800 to vlastně reset není).
A když jsme u těch kedluben, u kterého dalšího osmibitu, co byly k vidění v ČSSR, přežil obsah DRAM reset CPU? Jen se ptám, docela by mě to zajímalo.
u kterého dalšího osmibitu, co byly k vidění v ČSSR, přežil obsah DRAM reset CPU? Jen se ptám, docela by mě to zajímalo.
Řekl bych, že u všech. C64 reset neměl, standardně se musel vypnout a zapnout, ale pokud jste měli třeba Final III cartridge nebo jste si na User Port dobastlili mikrospínač mezi RESET# a GND, tak obsah pamětí přežil - a dost se toho využívalo pro post-mortem debugging, crackování atp. A pokud jde o zmíněné IQ-151, tak přímo v nějaké z příruček (myslím, že "Programové rutiny IQ-151") byl i návod, jak pomocí pár pouků obnovit BASICovský program po zmáčknutí resetu.
A opravdu si nemyslím, že se někdo od někoho musel inspirovat, pokud jde o řešení obnovování DRAMek. Na rozdíl od Z80 neměla 6502 (ani 8080) interní podporu refresh a videoobvody se k tomuto účelu používaly standardně - i Apple ][ to tak měl, třebaže neobsahoval žádné zákaznické obvody, refresh se odvozoval od horizontální synchronizace. PMD-85 to mělo zrovna tak, Ondra také (mechanismus Z80 refresh se nevyužíval), IQ-151 to mělo naprosto příšerně pomocí DMA, kvůli čemuž bylo pomalejší, než bylo nezbytné; SAPI-1 mělo refresh odvozený od M1 signálu přímo na RAM kartě, jež k tomuto účelu obsahovala i vlastní RAS čítač (zvídavý čtenář se může zamyslet nad situací, kdy byl procesor držen v HOLDu, třeba při DMA přenosu); v ZX Spectru řídil obnovu video RAM ULA, zbytek RAM Z80.
Tim ze byl RESET strasne blizko ostatnim klavesam, tak bylo nebezpeci prehmatnuti. Mozna proto hodne her po RESETu preslo zpatky na hlavni menu. Ale to me stvalo, protoze jak se bez cartridge dostat ze hry zpet do "CLOAD"? Jedine vypinacem a doufat, ze to pocitac prezije. S cartridge to bylo jednodussi. Nevim co presne to tlacitko delalo, ale efektivne to po RESETu preslo do menu :-)
Celý trik spočíval v tom, že výrobce jaksi předem netušil, že někde na Východě budou takové zástupy lidí s Atari pouze s kazeťákem - kazeťák tam byl de facto jako nouzové zařízení. Dalo se to vypozorovat na spoustě detailů - a tohle byl jeden z mnoha: ten teplý reset byl pro uživatele disketové jednotky, aby byli hned zpátky v DOSu - a ti pak nepotřebovali žádný CLOAD a měli to pohodlnější...
Šlo to i s kazeťákem. Byl nějaký uživatelský způsob na cold reset, který si už nepamatuju. Myslím, že to bylo na dva kroky: nejdřív warm reset a pak znova s podrženým option nebo tak něco. Ale ani na vypínači nebylo přeci nic špatného.
Z těch alternativnějších metod pomocí HW - aneb kouzlo pražského Atari klubu, kde se sdílely nejrůznější geniální informace:
1. Když jsem ještě neměl cartridge, tak jsem měl kousek tišťáku strčený v tom portu pro cartridge - obsahoval jen asi tři "cestičky" právě k tomu externímu (mega)tlačítku.
2. Další možnost byla spojit (šroubovákem :) ) prostřední dva piny ve spodní řadě nějakého joystickového portu. To bylo také nadefinované, že pak počítač udělá reset. Sice mi to přišlo brutální, ale párkrát jsem to zkusil :)
Šmankote! Ty spodní prostřední dva piny jsou napájení a zem! https://www.atarimania.com/faq-atari-400-800-xl-xe-what-are-the-pinouts-for-the-various-connectors-on-the-atari_16.html
To byl teda hodně brutální reset ..
To byl záměr výrobce, fíčura navíc - a kolikrát se hodila! Celou dobu Atárko umělo oba typy resetu: warm i cold, šlo jen o to, co chtěl uživatel vyvolat. Nezapomínejme, že ten stroj (pochopitelně) neměl žádný multitasking natož externí debugger nebo konsoli. Takže tahle možnost se pomalu vyvažovala zlatem: že zmáčknutím klávesy se člověk dostane do prostředí, co si definoval (např. monitor paměti, nějaký DOS apod.) a zbytek RAM se mu přitom nesmaže a může se na něj podívat, příp. zachránit z něj data.
Já měl pro pohodlí dokonce na to i externí tlačítko - a to správně samo-domo: byla to krabička s normálním vypínačem, co se dával na zdi. Takže to "tlačítko" mělo na šířku asi tak čtvrtinu co počítač celý :D