Memória használat

Elevenítsük fel amit illik tudni a Spectrum 48 BASIC-jéről, BASIC programozásáról...
Avatar
britt
Speccyalista
Hozzászólások: 13
Csatlakozott: 2013.08.12. 13:27
Tartózkodási hely: Budapest
Kapcsolat:

Memória használat

Hozzászólás Szerző: britt » 2013.09.08. 09:42

P Gyuri!
Minden megy mint a karikacsapás. :D
Az a kérdés merült fel bennem, hogy milyen címtől használhatom a memóriát, mert gondolom nem írhatom tele 0-65535-ig... :roll:
:?:
Üdv:
britt.hu

Avatar
Pgyuri
Speccyalista
Hozzászólások: 485
Csatlakozott: 2012.01.06. 13:34

Re: Memória használat

Hozzászólás Szerző: Pgyuri » 2013.09.08. 21:26

Üdv,

Öröm a háznál, ügyes vagy :)

A memória használata a programod méretétől függ. A CLEAR paranccsal "levéded" a memória tartalmát attól a címtől kezdve a BASIC-től, tehát annyit használsz, amennyit csak akarsz, max. egyre rövidebb BASIC programot írhatsz.

Ha csak a karaktereknek akarsz helyet hagyni, elég 768 byte, vagyis a CLEAR 65368-768 cím tökéletes lenne (lásd miért ennyi később), de a példám azért mutatta a 64000 címet, mert akkor elég csak a 23607 rendszerváltozó értékét állítani, a másikhoz nem kell nyúlni (ergo nem kell 2 POKE, elég csak 1, gyorsabb, szebb, takarékosabb, stb.).

A BASIC programod számára elérhető memória pillanatnyi állapotát a PRINT 65536-USR 7962 utasítással irathatod ki.

Ha kezdesz túl nagyra nőni, akkor bizony szükséged lesz jópár memória-spórolási trükkre, de ez legyen majd leendő kérdés :)

Ha már itt vagyunk, a memória-térkép:

0-16383 ROM program
16384-22527 képernyő bitmap
22528-23295 képernyő szín
23296-23551 printer buffer
23552-23754 rendszerváltozók a BASIC működéséhez
23755- BASIC program

-65367 stack
65368-65535 UDG karakterek

Ez az ALAP Spectrum memória-felépítése indulás után. A CLEAR parancs a stack címét állítja át, de az UDG a helyén marad (ezért annyi a cím feljebb). A probléma ott rejtőzik a Spectrumban, azaz csodálatos tervezői ezt szúrták el, de nagyon, hogy az Interface I esetén a rendszerváltozóknak több hely kell, így a BASIC memória kezdőcíme feljebb csúszik. Ez persze nem érinti a BASIC programot, de sok problémát jelent(het). Egyelőre Téged nem érint :)

Csak így tovább ...

Pgyuri

ui: Pgyuri egyben :)

Válasz küldése

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég