OldComp.cz

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


Právě je 20.04.2024, 01:22

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 3 ] 
Autor Zpráva
PříspěvekNapsal: 22.08.2015, 14:59 
Offline
Site Admin
Uživatelský avatar

Registrován: 05.04.2013, 15:29
Příspěvky: 2394
Bydliště: Starý Vestec
Has thanked: 426 times
Been thanked: 446 times
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...

_________________
Amiga Sinclair Didaktik Sam_Coupé Enterprise SAM440ep μA1 MacBook_Air Mac_Mini_MOS CPC Atari MSX Acorn C64 RetroPC

http://party.oldcomp.cz/


Nahoru
 Profil  
 
PříspěvekNapsal: 23.08.2015, 00:58 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2344
Has thanked: 303 times
Been thanked: 640 times
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)

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS


Nahoru
 Profil  
 
PříspěvekNapsal: 24.08.2015, 12:08 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3663
Bydliště: Bratislava
Has thanked: 373 times
Been thanked: 797 times
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.


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ů: 3 ] 

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