To je jen otázka vnímání velikosti vesmíru. Třeba někteří do toho času nacpali emulátor PMD85. Vlastně ne, tam skládají jen composite video.petr-kubac píše: ↑19 kvě 2025, 12:54 Odpovídám si sám - 10% zbývá na FORTH. Tipuji že jede jen během HSYNC + VSYNC ???
memxFORTH
Re: memxFORTH
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
-
- Příspěvky: 35
- Registrován: 24 říj 2023, 18:45
Re: memxFORTH
Ještě k tomu připočti bordery. Samotné synchropulsy moc času neposkytují. Ale pokud uvažujeme PAL video, tak se z jednoho TV mikrořádku (64uS) využívá zpravidla něco kolem 40uS na zobrazení dat a tedy 24uS zbývá (obraz je zateměn a procesor se může věnovat něčemu jinému). U Didaktiku M byl obraz jen tuším 32uS široký (proto byl v podstatě čtvercový a ne obdélník), čili v každém řádku zbývá 32uS, ale tam se CPU o zobrazení nestará, na to má ULU.petr-kubac píše: ↑19 kvě 2025, 12:54 Odpovídám si sám - 10% zbývá na FORTH. Tipuji že jede jen během HSYNC + VSYNC ???
Ve vertikálním směru je to ještě lepší. Bez nutnosti nějakého centrování je při neprokládaném PAL TV zobrazení 100% viditelných nějakých 256 řádků z 312 (někdo počítá až do 320, zejména u čistě HW zobrazovacích jednotek). Čili máme k dispozici minimálně 56 TV mikrořádků á 64uS, tedy minimálně 3,584 mS, kdy se procesor může věnovat něčemu jinému. A to je spooooousta času

U VGA je to trochu větší honička.
Kromě zmiňovaného emulátoru PMD85 v Atmeze, je celá řada počítačů, kde se CPU přímo podílí na zobrazení a další věci (klávesnice a obvykle BASIC) zpracovává ve výše uvedených prodlevách. A to při podstatně nižším taktovacím kmitočtu CPU, než má to dnešní Arduino. Namátkou: ZX80/81 (Z80 3,5MHz), COMP+JuTer (UB8830 8MHz). Všechny jsem studoval a stavěl jako repliky.
Pak jsou počítače, kde se sice CPU přímo nepodílí na zobrazení, ale při zobrazování je stejně odstaven, páč zobrazovací obvody skrze DMA vyčítají data ze společné RAM a procesor stojí. Typicky ruský RADIO-86RK, Cosmac VIP, nebo vzorové Intelácké Low cost terminály se zobrazovacími kontroléry 8275 nebo 8276. U toho terminálu s 8276 je jako CPU použit pomalý 8051 a během zobrazení přímo sype data do 8276 bez nutnosti použití DMA kontroléru 8257. Kromě toho pochopitelně obsluhuje maticovou klávesnici a sériovou linku. Já to zkoušel a to dokonce ve VGA režimu. Fungovalo to, ale byl to fakt kalup

Na obrázku níže je TV video generované přímo klasickým jednočipem 8051 čistě softwarově bez dalšího HW v podobě posuvných registrů a podobně. Jednočip má krystal 24MHz a strojní takt (/12) je tedy 0,5uS. Nejrychleji jsem dokázal vysouvat data rychlostí 1,5uS/pixel. Čili mohu dosáhnout "úctyhodného" rozlišení kolem 25px v ose X

Re: memxFORTH
Asi 90% sežere zobrazování, interrupty jsou pro Vsync a pro zobrazení řádků.
Ve zbytku jede program (na který tím pádem zbyde asi tak 10%), který o těch přerušeních "neví a nestará se" a prostě zapisuje do "VideoRAM" jako do obyčejného pole znaků a ono to pak nějak samo ...
Problém je, že na FORTH tam zbývá dost málo RAM, takže uživatel může nadefinovat jen pár slov. Pokusím se to zobrazování přeportovat na ATmega2560 (jako je v Arduino Mega), ale budu tam muset udělat vlastní PCB, protože potřebuju ten pin se systémovýma hodinama (a vytáhnout i ostatní piny taky neuškodí, a rozšířit paměť a ... a ...)
Ve zbytku jede program (na který tím pádem zbyde asi tak 10%), který o těch přerušeních "neví a nestará se" a prostě zapisuje do "VideoRAM" jako do obyčejného pole znaků a ono to pak nějak samo ...

Problém je, že na FORTH tam zbývá dost málo RAM, takže uživatel může nadefinovat jen pár slov. Pokusím se to zobrazování přeportovat na ATmega2560 (jako je v Arduino Mega), ale budu tam muset udělat vlastní PCB, protože potřebuju ten pin se systémovýma hodinama (a vytáhnout i ostatní piny taky neuškodí, a rozšířit paměť a ... a ...)