( gee | 2021. 02. 23., k – 10:38 )

> alap volt, hogy assembly-ben írtuk a programot

Ez maximum a 8 és 16 bites konzolokon volt alap, a homecomputereken viszont

Konzolokat nem programoztam, csak C=64-et és Amigákat.

Úgy értem, ilyen módon, amit írtam.

de itt pl. mi előnyünk származott volna abból, hogy assemblyben írjuk meg az egészet? Semmi, lévén az OS függvényeit mindegy, hogy miből hívod, a videomemória egyszeri végigírása meg így tömbösen assemblyből kb. pár mikroszekundummal lett volna gyorsabb.

Nem azt mondom, hogy neked bármi miatt assembly-ben kellett volna ezt írnod, illetve bármi előnyöd származott volna belőle. Csak azt mondom, hogy 20 évvel ezelőtt, amikor mi hasonló dolgokat csináltunk (demók, játékok), akkor assembly-t használtunk és rácsodálkoztam, hogy valaki máshogy közelíti meg, mint mi akkor. Hogy mi miért assembly-ben az OS és interruptok letiltása után programoztunk annak két (lehet, hogy három) oka volt:

  1. az interruptok és a multitaszk rendszer bármikor elveheti a vezérlést. Ha a processzor annyira gyors, hogy egy erősen optimalizált ciklust megszakítás nélkül végrehajtva pont jól sikerül kirajzolnia egy képet, akkor logikus volt ezt a lehetőséget letiltani. Pl. egy pixel széles oszlopokból kirajzolt szinusz scroller nem hagyott sok időt másra.
  2. Nem az OS függvényeit hívtuk, hanem kézzel hajtottuk végre kb. ugyanazt (illetve gondolom néhány esetben egyszerűbbet, kevesebbet, csak annyit, amennyit éppen kellett. Elhagyva ilyen-olyan paraméterek vizsgálatát, elhagyva mondjuk nem kritikus hibák kezelését, stb.) Én nem teszteltem, de elfgoadtam amikor a nálam okosabbak és tapasztaltabbak azt mondták, hogy az OS függvényeket nem lehet használni mert túl lassúak.
  3. Simán lehet, hogy megszokás volt a legfontosabb. C=64-en assembly-ben toltuk, Amigán meg csak ugyanazt a megközelítést folytattuk.

És abban igazad van, hogy ha az OS függvényeit hívjuk, akkor nincs semmi értelme assembly-ből hívni. Én pont akkor kezdtem el sok év assembly programozás után C-t megtanulni és használni, amikor olyan programokat kezdtem írni Amigán, amik OS függvények hívásával dolgoztak. Viszont ezek nem próbáltak időkritikus módon video memóriát manipulálni, stb. Kitettek ilyen-olyan requestereket meg ablakot rajzoltak meg fájlokat nyitottak meg, írtak, másoltak, stb.)