| OldComp.cz https://oldcomp.cz/ |
|
| Potřebuji nakopnout: stránkování videoram u zxs 128 a zxs +3 https://oldcomp.cz/viewtopic.php?f=40&t=2987 |
Stránka 1 z 1 |
| Autor: | Starej_Mraf [ 22.08.2015, 14:59 ] |
| Předmět příspěvku: | Potřebuji nakopnout: stránkování videoram u zxs 128 a zxs +3 |
Potřebuji v basicu přepínat do druhé videoram, kde budu mít uložený obrázek. OUT 32765,x si pamatuju. Ovšem nějak mi nedochází kolik mají být x u 128 a plus 3. Dík... |
|
| Autor: | zxcygnus [ 23.08.2015, 00:58 ] |
| Předmět příspěvku: | Re: Potřebuji nakopnout: stránkování videoram u zxs 128 a zx |
Pro ZX 128k pomůže ? https://cs.wikipedia.org/wiki/Sinclair_ ... um_128K%2B https://cs.wikipedia.org/wiki/Pentagon_(počítač) dolní 3 bity (0 - 2) číslo stránky 0 až 7 + 8 (bit 3) pro zobrazení druhé VRAM ve stránce 7 +16 (bit 4) pro ROM 1 (v té je 48k BASIC, musí být nastavena 1, nemá-li se BASIC při interpretaci hroutit) +32 (bit 5) zákaz stránkování bity 6 a 7 by měly být 0 kvůli kompatibilitě s 256k a 512k verzí Pentagonů Ale! Ve 128k BASICu nefunguje zobrazení druhé VRAM. BASIC sám vrátí zobrazování do 1. VRAM (oblast 16384, zrcadlo ve stránce 5). Ale! Nemám prakticky odzkoušené odlišnosti modelů +2A/B a +3 v BASICu od klasické 128+ (a šedé +2). Ale! Stránkování používám ve strojáku, nebo někdy v BASICu 48k (tj. tzv. USR 0 režim 128k Spectra) ... nemám vyzkoušené, kdy 128k BASIC koliduje se zápisem do RAM a kdy ne a jestli a jak zasahuje do stránkování. Prakticky nemám 128k editor jakýkoli důvod používat. A k nějaké kolizi někdy a někde docházet bude, 128k editor pracuje s RAMDISKem. Příklad: Kód: 10 CLEAR 32767 20 OUT 32765, 16+1 30 BORDER 1: PRINT "PG1": PAUSE 10 40 OUT 32765, 16+3 50 BORDER 2: PRINT "PG3": PAUSE 10 60 OUT 32765, 16+8+3 70 BORDER 2: PRINT "PG3 - 2. VRAM": PAUSE 10 80 OUT 32765, 16+0 90 BORDER 3: PRINT "PG0": PAUSE 10 Stránka 2 je zrcadlo prostoru 32768-49151. Stránka 5 je zrcadlo prostoru 16384-32767 (tj. 1. VRAM) Stránka 7 obsahuje 2. VRAM, kterou lze zobrazit přepnutím bitu 3 (ovšem ne ve 128k BASICu). Schválně si zkus rozdíl ve 128k BASICu a pak totéž v USR 0 ... pozor na příkaz SPECTRUM, ten sice přepne do 48k BASICu, ale zároveň zakáže stránkování, takže je z toho jen 48k. (doufám, že jsem se nikde nepřeklep) |
|
| Autor: | Busy [ 24.08.2015, 12:08 ] |
| Předmět příspěvku: | Re: Potřebuji nakopnout: stránkování videoram u zxs 128 a zx |
Starej_Mraf píše: Potřebuji v basicu přepínat do druhé videoram, kde budu mít uložený obrázek. OUT 32765,x si pamatuju. Ovšem nějak mi nedochází kolik mají být x u 128 a plus 3. Dík... Vsetky originalne 128 (t.j. 128,+2,+2A,+3) maju 'x' rovnake, t.j. co bude fungovat na 128/+2, to v principe bude fungovat aj na +2A/+3.Otazka ale je, ci nutne potrebujes 128 / +3 basic, alebo ti staci USR 0 rezim. V pripade USR 0 rezimu uplne postaci nastavit CLEAR mensi ako 49152 a potom mozes podla svojich potrieb robit OUT 32765,x presne ako pise zxcygnus. V pripade 128/+3 basicu je situacia trosku komplikovanejsia, pretoze basic si sam (po kazdom prikaze a aj v preruseni) prepina stranky a hodnotu poslanu na 32765 by ti zrusil. V takom pripade musis pred OUT 32765 este urobit aj POKE 23388,x - to je systemova premenna kde si basic pameta aku hodnotu poslal na port 32765. Cize napriklad: 11 CLEAR 49151: REM alebo menej ak potrebujes 22 POKE 23388,23: OUT 32765,23: REM nastrankovanie banky 7 33 LOAD "" CODE 49152,6912: REM priprava obrazku do druhej videoramky 44 POKE 23388,31: OUT 32765,31: REM zobrazenie druhej videoramky alebo 44 POKE 23388,24: OUT 32765,24: REM zobrazenie druhej videoramky a pristrankovanie banky 0 Ohladom vyuzivania stranky 7 basicom: V tejto stranke konci ramdisk a od #E000 ma svoje veci editor. Takze pokial nebudes pouzivat ramdisk, basic by sa ti v principe vobec nemal pliest do druhej videoramky. A pokial basic bezi, nepletie sa ani do zvysku banky 7. Akurat ak premenne editora prepises svojimi datami, a beh basicu skonci (chyba, break,...), tak to moze v editore a v 128/+3 menu narobit psie kusy. |
|
| Stránka 1 z 1 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
| Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |
|