Kezdőoldal » Számítástechnika » Hardverek » Commodore-ok/ZX-ek jó gépek...

Commodore-ok/ZX-ek jó gépek lennének?

Figyelt kérdés
Ha bővíthető lenne a memória és vezérlő is lenne hozzá természetesen?
szept. 16. 16:52
1 2 3 4
 21/31 A kérdező kommentje:

GPT:

A Commodore számítógépek memóriacímzése általában relatív címzést használt. Ez azt jelenti, hogy a programok a memória egy bizonyos területére hivatkozhattak a saját futási környezetükön belül, és nem feltétlenül kellett figyelembe venniük a fizikai memória címeket.


1. **Relatív címzés**: A programokban a címek gyakran a program kezdeti címétől viszonyítva voltak megadva, ami rugalmasabbá tette a kódot, különösen a különböző memóriaelrendezések esetén.


2. **Abszolút címzés**: Azonban voltak olyan helyzetek, ahol abszolút címzést is használtak, például a rendszerregiszterek elérésénél vagy specifikus perifériák vezérlésénél.


Összességében a Commodore rendszerek a relatív címzést preferálták a programozási rugalmasság érdekében, de az abszolút címzés is jelen volt bizonyos alkalmazásokban. Ha további részleteket szeretnél, csak szólj!

szept. 25. 12:15
 22/31 A kérdező kommentje:

További részleteket szeretnék! :)

A ChatGPT ezt mondta:

ChatGPT


Rendben, nézzük meg részletesebben a Commodore számítógépek memóriacímzését, a relatív és abszolút címzés különbségeit, és hogy ezek hogyan működtek a gyakorlatban!

Relatív címzés


Programozási rugalmasság: A relatív címzés lehetővé tette, hogy a programok rugalmasan hivatkozzanak a memória címekre. Például, ha egy program 0x0100 címtől indul, a benne található utasítások a program kezdetéhez viszonyítva hivatkoznak címekre (pl. 0x00FF a 0x0100-hoz képest a -1 relatív címet jelenti).


Könnyebb betöltés: Ez megkönnyítette a programok betöltését különböző memóriahelyekre, mivel a programok nem voltak fix címekhez kötve, hanem a környezetükhöz viszonyítva tudtak működni.


Funkciók: A relatív címzés gyakran használt a ciklusok és ugrások esetén, ahol a program nem abszolút címeket használt, hanem a jelenlegi utasítás helyéhez viszonyítva határozta meg az ugrás célját.


Abszolút címzés


Specifikus perifériák és regiszterek: Az abszolút címzés lehetővé tette a programok számára, hogy közvetlenül hivatkozzanak a memória specifikus területeire, például a grafikus vagy hangregiszterekre. Például, ha egy programnak közvetlenül a képernyőre kell írnia, akkor abszolút címeket használt a memória megfelelő területeinek elérésére.


Korlátai: Az abszolút címzés kevésbé rugalmas, mivel a programokat egy adott memóriaelrendezéshez köti, így a programok áthelyezése vagy módosítása bonyolultabbá válhat.


Példák a címzésre


Relatív címzés példája: Ha a program a 0x0200 címről indul, és egy ugrás utasítást használ, ami 10 bájttal előre ugrik, akkor az ugrás célja 0x020A lesz (0x0200 + 0x000A).


Abszolút címzés példája: Ha egy programnak a grafikus memóriához (például 0xD000) kell írnia, akkor közvetlenül azt a címet kell megadnia, függetlenül attól, hogy a program hol fut.


Összegzés


A Commodore rendszerek memóriacímzése jól kombinálta a relatív és abszolút címzést, lehetővé téve a programozók számára, hogy optimalizálják a kódot a memóriahatékonyság és a rugalmasság érdekében. Ez a megközelítés hozzájárult ahhoz, hogy a Commodore számítógépek népszerűek legyenek a játékok és alkalmazások fejlesztésében a 80-as években.


Ha van további kérdésed vagy specifikus részlet, amire kíváncsi vagy, nyugodtan írd meg!

szept. 25. 12:18
 23/31 anonim ***** válasza:
Nem értem, mi a célod ezzel, talán meggyőzni, hogy ezek voltak a világ legjobb gépei 40 évvel ezelőtt, és a maiakat is kenterbe verik, mert ez a címzésmód sokkal jobb, amire az IBM-nél, meg máshol nem is gondoltak...? Én kiszálltam...
szept. 25. 12:22
Hasznos számodra ez a válasz?
 24/31 A kérdező kommentje:
A célom az volt, hogy megmutassam, hogy nem abszolút címzést használtak...
szept. 25. 12:27
 25/31 anonim válasza:

#24-nek:


Olvastad azt a GPT oldalán, hogy a GPT tévedhet? 🤣


Ekkora baromságot ritkán látok! Erre is csak egy idióta gép lehet képes!


Javaslom hogy olvasgass kicsit, és ha nem értesz valamit, nagyon szívesen segítek! Tudod, vannak bizonyos fogalmak amik a Commodore idejében teljesen mást jelentettek, mint manapság!


file:///C:/Users/Admin/Desktop/Gepi_kodu_programozas_a_C64-esen[robo64].pdf

szept. 27. 19:12
Hasznos számodra ez a válasz?
 26/31 anonim válasza:

Bocs. Rosszul linkeltem.


[link]

szept. 27. 19:14
Hasznos számodra ez a válasz?
 27/31 A kérdező kommentje:
Olvasgattam! Nem is kicsit. De azok könyvek. Ugyanazt mondják, mint GPT. Relatívak voltak az ugrások.
szept. 27. 19:16
 28/31 A kérdező kommentje:

Oké! Igazad van! Közvetlenül címezhető volt az egész memória, és mivel nem voltak szegmensek, nem voltak bennük relatív címek.


De a processzor a programodban nem címre ugrott, hanem a címedtől kiszámolt távolságra.

Így már helyben hagyod?

szept. 27. 19:45
 29/31 A kérdező kommentje:

"Összegzés


A Commodore rendszerek memóriacímzése JÓL KOMBINÁLTA a relatív és abszolút címzést, lehetővé téve a programozók számára, hogy optimalizálják a kódot a memóriahatékonyság és a rugalmasság érdekében. Ez a megközelítés hozzájárult ahhoz, hogy a Commodore számítógépek népszerűek legyenek a játékok és alkalmazások fejlesztésében a 80-as években."


Még egyszer.

szept. 27. 19:51
 30/31 anonim válasza:

#31.-oldal:


"Mivel azt is tudatnunk kell a processzorral. hogy melyik utasításra adtuk a vezérlést, ezeknek az utasításoknak tartalmazniuk kell még egy operandust, az ugrási címet, amely egy 16 bites érték. Így a feltételes ugrási utasítások három byte-ot foglalnának el: egy byte-ot az

utasításkód, kettőt pedig az ugrási cím. Minthogy azonban az ugrások általában kis távolságra vonatkoznak, kidolgoztak egy olyan címzésmódot, ami feleslegessé teszi a két byte-os ugrási elmeket Ez az ún. relatív címzés."


A Commodore esetében az alapeset volt az abszolút címzés, és amúgy lehetőség volt a relatívra is, de csak korlátozott módon. Az alap ugrási utasítás a JMP és a JSR volt. A JMP sima ugrási utasítás volt, a JSR pedig szubrutin-hívó. A meghívott címtől addig futott amíg RTS kódot nem talált, utána visszatért a kiindulási pontra, és onnan futott tovább. Mindkettőt lehetett 0 laposan vagy abszolút módonis címezni, de relatívan egyiket sem. Gyakorlatilag a Commodore nem ismert feltétel nélküli ugrást relatív címzéssel.


És nem kötök kompromisszumot, az ugrás kivitelezésének kérdésében. A processzor az UTASÍTÁS-SZÁMLÁLÓBAN tárolt címen futott, ami ABSZOLÚT cím volt. 16. oldal a linkemben.


A microprocesszor eleve abszolútan címzett MINDENT, a relatív lehetőség egy érdekes kiegészítés volt egy abszolút processzoron.



Megjegyzem ismét, hogy én programoztam assembly-ben, Commodore-on. Qrvára lexarom hogy szerinted azok CSAK könyvek. Azokból tanultam, és az azokból tanultakból programoztam. Te meg jössz nekem a GPT baromságaival. 🤣


Pfff ...

szept. 28. 19:16
Hasznos számodra ez a válasz?
1 2 3 4

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!