OldComp.cz

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


Právě je 28.03.2024, 17:24

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 7 ] 
Autor Zpráva
 Předmět příspěvku: BASIC a vyuziti vetsi pameti
PříspěvekNapsal: 10.05.2020, 22:59 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
Existuje pro ZX nejaky basic, ktery vyuziva vetsi pamet ZX128 pro program ? Jasne ze 128 basic umi se strankama pracovat jako s ramdiskem, ale me by spis zajimalo jestli nejaky jiny basic pro zx by treba zvladnul na ZX128 pamet opravdu pouzit.

Hezke by bylo mit basic ve stylu sam coupe, ktery by pracoval s pameti zx128 v plne parade.
Dokonce i pro majitele ZX Specter 16/48kB by mohl basic misto 128kB ram pouzit ramku DIVMMC, ktere je k dispozici az 512kB.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BASIC a vyuziti vetsi pameti
PříspěvekNapsal: 17.05.2020, 18:13 
Offline
Radil

Registrován: 18.10.2014, 23:10
Příspěvky: 377
Has thanked: 28 times
Been thanked: 120 times
azorasoft píše:
Jak to přesně fungovalo na Samovi? Mohl jsem tedy v Basicu napsat třeba POKE 300000,15 a logická adresa 300000 se přeložila na fyzickou a pracovalo se s tou správnou bankou paměti?
Áno.

azorasoft píše:
Jak to fungovalo v případě, kdy jsem si třeba font uložil od takové adresy, že font by byl uložený ve dvou bankách? Nebo když jsem si nadeklaroval pole, které se uložilo také přes více bank? Takový přístup musel pak být pomalejší.
Ukazovatele pamäte sa väčšinou používaju vo forme: stránka + offset.
Používa sa horná polovica adresného priestoru, takže k offsetu sa pripočítava 32768.
Prechod cez 16K hranicu nevadí, lebo sa prepínajú naraz dve stránky.

Podrobnosti tu: https://sam.speccy.cz/systech/sam-coupe ... n_v3-0.pdf


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BASIC a vyuziti vetsi pameti
PříspěvekNapsal: 17.05.2020, 20:27 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
Celkem by me zajimalo, s jakym minimem by byl SAM BASIC schopny behat. Vzhledem k tomu, ze podporuje 4 ruzne graficke rezimy(vcetne zx rezimu), teoreticky by melo stacit na ZX realizovat 32kB strankovani a pripinani romek jako u SAMa a mohlo by to fungovat. Logicky s omezenim jen na dve ZX videoramky, ale mohlo. Sam basic je ale psany pro 32kB strankovani horni a spodni pameti, takze prepsani na jiny layout ve stylu zx128 by nejspis zpusobilo zpomaleni a zkomplikovani kodu.

Ale ciste teoreticky:
- ano, prepsani pro 16kB ZX128 stranky by slo zajistit.
- SAM ma 32kB rom, z toho 16kB dole a 16kB od 49152. Kazda rom se da odpojit a nahradit ramkou. U ZX do spodnich 16kB misto romky muzeme pristrankovat pamet DIVIDE/DIVMMC a sice s omezenim ze ramka nebude od 0 ale od 8192, ale zase bude po 8kB strankovatelna a s velkou kapacitou a spodnich 8kB od 0 muzeme nahradit vlastni 8kB ram se zakazanym prepise. Rom v hornich 16kB by sla bud prepsat, aby bezela kompletne v divmmc ram, nebo by byla v jedne ze stranek zx128 od 49152 jako u SAMa.
- SAM se jinak portove od ZX prilis nelisi. Rom by na samackych extra portech nemela byt az tak moc zavisla. Maximalne si rom vycita zpet ze strankovacich portu posledni zapsanou hodnotu, ale to by u ZX slo obejit, protoze rom by bezela v DIVMMC ram, ktera je prepisovatelna a vzdy pri strankovani by stacilo data zapsat soucasne i do DIVMMC ram, odkud by se stav zase vycital misto cteni portu.
- Klavesnice ma stejne porty jako ZX, jen se zde tusim 24 klaves navic, coz jsou F0-F9, DELETE , ESC, TAB, EDIT, INV, +, -, ", : a podobne znaky, ktere se u ZX bezne pouzivaji kombinaci klaves SS+xx atd.. takze tohle by nemel byt problem, jen SW uprava cteni klavesnice.

Vlastne by takto upraveny SAM BASIC vubec nemusel vyzadovat HW upravy v ZX. SAM ROM 32kB by mohla bezet v ZX128 strankach nebo i v DIVMMC ram strankach.
A mozna jednodussi by bylo SAM ROM 32kB umistit do ZX ramky a data basicu by ukladala jen do stranek DIVMMC ci ZX128. Pred spustenim programu(usr xxxx) by se rom schovala zpet nekam do stranek a zx ram by se obnovila pro bezproblemovy chod programu.

K tem grafickym rezimum. SAM krome ZX grafiky podporuje take multicolor rezim (podobny jako u Timexu, ale data jsou linearne za sebou, nikoli na preskacku jako u ZX). Dale umi HIRES 512x192 (v barvach). Posledni rezim je plnobarevny 256x192 co pixel to barva. No a na ZX128 by melo jit pouzit minimalne SAM basic v ZX grafickem modu a pokud nekdo ma SLAM 128 ULA+ tak mu ZX zvladne krome ZX rezimu i multicolor s monochrom hi-res rezim podle vzoru Timex. Po upravach by SAM rom mohla podporovat s takovou ulou az tri graficke mody najednou. SAM basic podporuje take paletu barev, kdy kazde z 16 ZX barev umi priradit jednu barvu z palety 128. S ulou+ se da opet prace s paletou upravit/prizpusobit.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BASIC a vyuziti vetsi pameti
PříspěvekNapsal: 17.05.2020, 21:25 
Offline
Radil

Registrován: 18.10.2014, 23:10
Příspěvky: 377
Has thanked: 28 times
Been thanked: 120 times
VELESOFT píše:
Celkem by me zajimalo, s jakym minimem by byl SAM BASIC schopny behat. Vzhledem k tomu, ze podporuje 4 ruzne graficke rezimy(vcetne zx rezimu), teoreticky by melo stacit na ZX realizovat 32kB strankovani a pripinani romek jako u SAMa a mohlo by to fungovat. Logicky s omezenim jen na dve ZX videoramky, ale mohlo. Sam basic je ale psany pro 32kB strankovani horni a spodni pameti, takze prepsani na jiny layout ve stylu zx128 by nejspis zpusobilo zpomaleni a zkomplikovani kodu.
Ja si myslím, že nemá zmysel prerábať SAM Basic na ZX, pretože by to bolo neúnosne pracné a výsledkom by bol aj tak len ZX Basic, ktorý tu už je mnoho rokov. Myslím, že by stačila úprava ZX príkazov POKE a PEEK a tým sa dá využiť pamäť na rôzne data aj keď nie priamo na program.
Ale jedna otázka: Komu to chýba?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BASIC a vyuziti vetsi pameti
PříspěvekNapsal: 17.05.2020, 22:50 
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
Antony/DTA píše:
Myslím, že by stačila úprava ZX príkazov POKE a PEEK a tým sa dá využiť pamäť na rôzne data aj keď nie priamo na program.
Toto by sice bolo jednoduche, ale nema to moc zmysel. Ved si to mozem lahko spravit aj sam v basicu, ze si namiesto samotnej adresy (cislo od 0 do ovela_viac_nez_65535) budem pametat cislo banky a offset v ramci banky. A namiesto jedneho POKE / PEEK budem robit OUT a potom POKE / PEEK.
Antony/DTA píše:
Ale jedna otázka: Komu to chýba?
Napriklad mne. Podla mna, bolo by super mat moznost dimenzovat nejake pole aj na dlzku viac nez 65535 bajtov - napr. retazec DIM a$(120000) alebo kludne aj ciselne pole, napr. DIM a(200,100) - kedze kazde cislo zabera 5 bajtov, tak celkova dlzka dat tohto pola by bola 200*100*5 = 100000 bajtov. Alebo proste iba aby samotny basic kod mohol mat aj viac nez 65535 bajtov. Pokial taketo veci ten basic nebude priamo umoznovat, tak potom nema vobec zmysel nad nim uvazovat.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BASIC a vyuziti vetsi pameti
PříspěvekNapsal: 18.05.2020, 02:04 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
Co se tyce HW, tak na ZX existuje uz PROFI interface, ktery modifikuje adresovou sbernici mezi ZX a CPU a obsahuje vlastni 1MB ram. Tady by uprava byla celkem snadna. Fungovala by cela SAM ramka vcetne romky, stejne strankovaci porty. A az ctyri videoram. Ale me spis jen zajimalo, jak hodne slozite by bylo SW reseni.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: BASIC a vyuziti vetsi pameti
PříspěvekNapsal: 18.05.2020, 08: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
Antony/DTA píše:
Busy píše:
Antony/DTA píše:
Ale jedna otázka: Komu to chýba?
Napriklad mne. Podla mna, bolo by super mat moznost...
Busy, teba považujem za jedného z mála ľudí, čo by takú úpravu zvládli a keďže si ju ešte neurobil, tak ti to zjavne až tak moc nechýba. :)
Presnejsie napisane, na niektore projekty by sa mi to velmi hodilo, ale zatial bolo vzdy jednoduchsie taky projekt napisat radsej v asembleri, nez rozsirovat basic.

Ale aj tak, vecsinou to boli skor take akademicke hokusy-pokusy ktore nemaju vysoku prioritu. Napriklad: Urcte co najrychlejsie, ci dane cisla (napr. 785649, 843843, 843763483, 91748367) su prvocisla. Ako najrychlejsi sposob sa ukazalo pouzitie Eratostenovho sita, ale to chce vytvorit pole o velkosti najvecsieho testovaneho cisla.


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

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