Új üzenet küldése







Sauron
2019.07.08. 20:44:08
Peldaul. Annak idejen szorakoztam az Euphoria nevu nyelvvel. Iszonyu egyszeru, es emellett teljes grafikus sdk ja van a windowshoz. Szoval gyorsan lehetett vele valami latvanyosat osszehozni. A problemam az volt, hogy oktatoprogit talaljak ami mutatja es begyakoroltatja.bizonyos parancsok mukodeset egy eleg nagy klaszteres linux kornyezetben. Az egesz kornyezet tul draga lett volna beallitani, de egy.ugyes.kis szimulatorral akarmi bemutathato. Szoval ez.volt a cel es egesz.jo lett, bar befejezni igazan nem tudyam, mas prioritasok miatt.

Most a spectrumon hasonloban gondolkodnek, csinalni egy nagyon kicsi (ertsd leegyszerusitett es kis lenyomatu) csonkot, ami pl egyszeru file kezelest mutat be. Listazhatod a filejaidat, valthatsz direktorit, belenezhetsz egy.ket fileba. Mindezt egy, vagy akarhany terminal ablakban. Max fileok 100,.max direktori melyseg 3,.max file hossz mondjuk 100 byte. Ez ha megvan, akkor tovabb lepni sort, regex, awk sed stb eszkozokre.
Mas prpjekt lenne a megoldas Nagyitasa, optimalizalasa. Pl 48kban nagyok q korlatok, de 80 vagy 128kban mar kisebbwk. Ha bedugsz egy microdriveot vagy floppit, neadj isten kazettas.magnot, akkor megno a hatterter. Kaz magno lehet bluetoothos mp3 olvaso is, mert mar van ilyen. Ez.mar kicsor tul megy az eredeti speccyn de akkor emulatorban, a nagyitas reszekent jelenhetne meg.
De kicsinek maradni is oriasi, sztem miutan a spectrum screen 3 reszre oszlik, a felso kettot elvesszuk, oda toltunk progit, alson meg 2 vsgy 3 terminal ablakot, es ott marad 42k memoria adatnak, es.overlay funkcipknak. Talan nem lenne lehetetlen?
E-Mail
Sauron
2019.07.08. 20:30:57
Ja,.hat engem maga a feladat is erdekel, talan jobban is, mint a vegtermek. Szoval pl ott egy jo pelda, amit irtal. Ls es filerendszer. Hogy lehetne ilyesmit speccyn megvalositani? Szerintem tobbfelekeppen, es mindenkeppen ujszeru,.ordogien egyedi megoldasokkal. Pl . Mondjuk eloszor is meghatarozzuk,.hogy mi az a minimum ami kene, mire lenne ez.jo, es kb mi a realitasa, kovetwlmenyei. Ha ez.megvan, akkor ennek alap reszeit ki lehetne dolgozni szerintem, majd iterativan optimalizalni.
E-Mail
TCH
2019.07.08. 15:38:25
windows 95: minimum 386sx (32-bites CPU) és 4 MB RAM, windows nt3.1: minimum 386dx (32-bites CPU) és 12 MB RAM, MS-DOS 5.0: minimum 286 (16-bites CPU) és 384 kB RAM. Hogy jött ez ide? Még mindig Linuxos szarok Z80-ra való portolásáról beszélünk és nem arról, hogy mit lehet egy régi 32-bites CPU-ra átírni. És azonfelül az egyes parancsprogramok kódjának portolása önmagában kevés, mert az ugyan lehet, hogy pl. az ls maga a parancs még Z80-on is futhatna, de mi lesz azokkal a dolgokkal, amikre szüksége van, pl. a fájlrendszer, meg a kernel? Scriptingről, meg terminálemulációról nem is beszélve.
E-Mail
Sauron
2019.07.08. 14:39:55
Miert ne? Ott vannak a unix utils dosra meg windowsra, egesz 90tol. Semmi multitask, csak a utilityk.
E-Mail
TCH
2019.07.08. 13:18:42
Z80-ra semmiféle Linuxos dolgot nem tudsz portolni, még a legapróbbat sem.
E-Mail
Sauron
2019.07.08. 02:32:11
Vilagos. Erdekes lehetne, hogy csak nehany dolgot megoldani. Pl terminalok fussanak egyszerre es linuxos parancsok, scripting. Szoval nem mindent, de valamit.
E-Mail
TCH
2019.07.07. 23:10:01
Nekem is tetszik. De ettől még egy modern oprendszert nem lehet Z80-asra portolni. És ez nem tunyaság kérdése.
E-Mail
Sauron
2019.07.07. 23:06:19
Oke! Lenyeg, hogy tetszik. Nekem nagyon :)
Az a komment az interjubol van, csak ramutat, miert is jo ez az egesz retro dolog. Emlekeztet, hogy mashogy is lehet alkotni.
E-Mail
TCH
2019.07.07. 18:59:35
Nem mondtam, hogy nem jó. Azt mondtam, hogy nettó ökörség a Linuxhoz hasonlítani. Leírták, mit értenek preemptíven:
For the task management a combination of pre-emptive and cooperative multitasking has been choosed, which makes different task priorities possible. Pre-emptive means that tasks are interrupted after a certain amount of time by the operating system, in order to share the CPU time with other tasks. Cooperatively means, that a task stops using CPU time by itself. It does it, if it finished its current job or is waiting for a certain event. Because of this combination it is possible to assign priorities. Tasks with a low priority receive CPU time only if all tasks with higher priorities are not currently working.
Magyarán van lehetőség preemptive módon futtatni programot, de cooperative módon is. Viszont akkor lehet rajta olyan cooperative módon futó programot írni, ami sose adja vissza a vezérlést a rendszernek.

A win95 meg egy gigászi szarrakás volt, preemptive my ass, CLI HLT FTW.

Az tény, hogy sok lusta balfasz van a szakmában, aki pazarolja az erőforrásokat, csak nem tudom hogy jön ide, a Linux@Z80 témához.
E-Mail
Sauron
2019.07.07. 15:50:07
Ez a megjegyzese telitalalat a mai programozok tunyasagarol

Todays computers are so fast, that you usually don’t recognize, if your code is completely unoptimized. If it’s running on your local machine only, that maybe ok, so there is no pressure to learn it anyway.
E-Mail
Sauron
2019.07.07. 15:32:02
Itt meg a megalkotoja irja, hogy az alap spectrumra lehetetlen, de a 128k ra megoldhato lenne.

https://distritoentebras.wordpress.com/2017/12/23/interviewing-jorn-mika-aka-prodatron-symbos-creator-and-retro-enthusiast/
E-Mail
Sauron
2019.07.07. 15:22:45
Itt kolteszkednek rola, hogy preemptiv is, csak nem annyira stabil: https://www.cpcwiki.eu/index.php/SymbOS

"While the MOS Technology 6502 can not move the stack, the Z80 can freely replace it to any position in the memory, which is more or less a condition for pre-emptive multitasking."

Ha win95 nel stabilabb akkor mar tok jo. Nekem jol mukodott a win95 is, megfelelo patchek es hozzaallas tudataban.

E-Mail
Sauron
2019.07.07. 15:10:36
Az attol meg tok jo is lehet. Csak az faj, hogy nincs Spectrumra vagy zx81re.
De a preemptivitason akkor mit erthetnek?
"it is based on a microkernel, which provides preemptive and priority-oriented multitasking "
E-Mail
TCH
2019.07.07. 14:06:16
Ja. Cooperaitve multitaskingot. Merthogy ez is az. A grafikus felülete meg kb. a GEM-mel egyszintű, vagy lehet, hogy valamivel jobb. És az egyes verziói direkt az egyes gépekre vannak optimalizálva. Pontosan azt tudja, amiket én itt az előző posztokban felsoroltam, hogy mit tudhat egy 8-bites gépre írt multitask oprendszer és köze nincs a Linux funkcionalitásához, amiről te beszéltél, hogy portoljunk egy lecsupaszított Linuxot Z80-ra.
E-Mail
Sauron
2019.07.07. 12:42:52
Ugy tunik mas is almodott mar multitasking ot z80-on: https://en.m.wikipedia.org/wiki/SymbOS
E-Mail
Sauron
2019.07.07. 12:38:21
Uff.
E-Mail
TCH
2019.07.07. 11:32:17
Ha 5 percenként van task-switch, akkor az minden, csak nem multitasking...azonfelül az éppen futó programon felül ott vannak még a háttérfolyamatok is, meg maga a "kernel" is; ezeket 5 perces TSI-vel kiszolgálni, az nettó vicc.

Először is nem feltétlenül foglalnak kevesebb helyet az utasítások; pl. pont a sux86 az, ami - backward-compatibility okokból - egy 8-bites utasításkészlet - pont a Z80 "alapjául" szolgáló 8080 - nyavalyáit hurcolja magával a mai napig, viszont ennek megfelelően az utasítások egy jelentős része is a mai napig 1 byte rajta. (Pl.: push, pop, ret*)
De, még ha feltételezzük is - a gondolatkísérlet kedvéért - hogy a Z80 utasításai kevesebb helyet foglalnak, akkor viszont azt is hozzá kell tenni, hogy Z80-on több lépésből is fog állni egy elemi utasítás végrehajtása, mint egy mai sux86-on. Pl. sux86-on egy - a fairplay kedvéért 16-biten címezhető - 32-bites memóriarekesz értékéhez hozzáadni egy másikat kb. ennyi:
movl ($16384), %eax
add %eax, ($16388)
Ez egészen pontosan 11 byte (a1 00 40 00 00 01 05 04 40 00 00) és akkor még jófejek voltunk a Z80-al szemben, mert nem foglalkoztunk vele, hogy 32-biten címezte ki nekünk a két értéket - ezzel elbaszván 4 byte-ot - hanem a legprimitívebb, legegyszerűbb, leggyorsabb módon oldottuk meg.
Ugyanez Z80-on? 32-bites regiszter ugye nincs, csak 16, tehát két lépésből kell összeadnunk, kezelve a carry-t:
LD BC, (16384)
LD HL, (16388)
ADD HL,BC
LD (16388),HL
LD BC, (16386)
LD HL, (16390)
ADC HL,BC
LD (16390),HL
Ez egészen pontosan 26 byte. Ez több, mint kétszer akkora, mint sux86-on. Akkor szerinted a Linux Z80-ra fordítva mennyivel lenne nagyobb, mint sux86-on?

Ami meg a multitasking shell-t illeti, a shell nem "multitasking". A kernel az, ami multitaskingos lehet. A shell csak mondja a kernelnek, hogy mit csináljon, a shell maga is csak egy task, ami programokat tud elindíttatni a kernellel.
A sakkprogramról meg annyit, hogy annak kb. annyi interakciója van a júzerrel, hogy hova lépjen a júzer, az összes többi az vegytiszta matek, amit egy őrült lehet, hogy bele tud zsúfolni párszáz bájtba. Egy shell, az teljesen más. Annak elsöprő többsége pont az interakcióról és annak lekezeléséről szól. A CBM BASIC 8k-s volt, azt nem tudni, hogy mennyi volt belőle a "shell", de biztos nem 300 byte. És akkor arról még nem is beszéltünk, hogy hiperprimitív volt, BASIC-only, shellnek csak más híján lehet nevezni; az AmigaShell, ami már azért inkább nevezhető shellnek és egy multitask OS alatt futott, az kb. 13 kB volt maga a programkód és nem tudom, hogy még mennyi a memóriaigény, de összesítve tuti nem fért el 16k-ban. És még az is ezer sebből vérzett, nem lehet összemérni egy mai shellel. Ha felrakjuk a KingCON-t, akkor már igen (sőt), viszont akkor már 36k a handler maga és még X kB memória. És ugye itt memóriaigényt alatt per kopf, (értsd per shell instance) memóriaigényt kell érteni. Ergo "multitasking" shell-t 16k-ba...nos, sok sikert hozzá.
E-Mail
Sauron
2019.07.07. 04:41:47
Pl a 16k romot ki lehetne hajitani es helyette egy multitasking command shellt belokni. 16k nem sok de ha 300 byteban sakkprogi, akkor...
E-Mail
Sauron
2019.07.07. 03:37:13
Az NMI miert nem jo? Nem kell hogy minden szazadmasodpercben switcheljen, eleg 5 percenkent is. Tudom, kis igenyu vagyok :)

A 8 biten nincsenek ilyen boduletes memoria igenyek es az utasitasok is kisebb helyet foglalnak. A Hisoft C fordito is 10k korul volt ha jol emlekszem
E-Mail
Sauron
2019.07.07. 03:35:03
Ja, azt kene.
E-Mail
TCH
2019.07.06. 23:48:16
A Linuxból már a legelső 0.01-es verzió is 32-bites CPU-t, MMU-t és messze több, mint 64kB memóriát igényelt. Esélytelen. Pont. Egy Z80-ason meg nem fogsz virtualizálni semmit, örül a szerencsétlen, ha egyetlen programot tud futtatni egyszerre. Nem tudom feltűnt-e, de az első preemptive rendszerek, (a QDOS és az AmigaOS) is 68000-esre íródtak és nem 8-bites CPU-kra. Egy kooperatív, task-switching oprendszert persze meg lehetne rá írni, de akkor azt 100%-ig az aktuális gépre optimalizálva (tehát külön Speccy/Amstrad/Enterprise/stb. verzió).
E-Mail
Sauron
2019.07.06. 21:28:51
De az nem baj. En most nem a meglevo linux szirszarokra gondolok, hanem ujonnan irni valamit ami poen es mukodik.
Gondolj minimalis verziora es annak is csak a leg leg leg ... legmininalisabb alfa elotti allapotara. Illetve nem teljesitmeny a cel, hanem pl multi edit tobb ablakban es nemi lajtos progi futtatas itt ott. Gondolj a jail alapu virtualizaciora ahol egy szerencsetlen laptopon akar 1000 hostot is beallithatsz es elindithatsz, de sosem hal be a gep mert omos algoritmusokkal, vagy sajat magad, csak annyit futtatsz egyszerre, ami meg megy.
E-Mail
TCH
2019.07.06. 21:08:47
Az megvan, hogy a Linux kernelnek még a leg-leg-leg-leg-leg-leg-lecsupaszítottabb verziója is nagyobb tárat igényel, mint amit a szerencsétlen Z80-as ki tud címezni egybe? Még ha tudunk is lapozni, szerinted mi sebessége lenne, ha állandóan lapozni kéne? Az is megvan, hogy a Linux kernel elsöprő többségében 32-bites változókat és aritmetikát használ? Szerinted mi sebessége lenne, ha 32 (és 64!) bites műveleteket 8-biten kéne N lépésből végrehajtani? Arról nem is beszélve, hogy Linuxot MMU nélkül használni masszív önszopatás, lehetséges, de aki megpróbálja, szopik, mint a torkosborz. (Alapból ott kezdődik, hogy forgathatsz magadnak, mert a rég behalt μClinux-t leszámítva nem is tudok olyan csapatot, aki MMU-less Linux kerneleket terjesztett volna bináris formában...)
Még sima 68000-esre és 68010-esre sincsen Linux (még 68451-gyel sem); minimum 68020 ÉS 68851, vagy teljes értékű 68030 (tehát nem 68EC030!) kell hozzá. Ennek megfelelően a legelső Zilog, amin a Linuxot elméletileg futtatni lehetne, az a Z80000-es.
E-Mail
Sauron
2019.07.06. 19:37:58
Hat az uj kernelek. De a regik mennek.
Az nmi vel lehetne preemtive 8 biten. Csak egy kis kiegeszites kell ami periodikusan kuldi az nmit. Szerintem, de lehet hogy hulyeseg amit mondok. Mindenesrtre biztos menne valahogy, ha mashofy nem akkor kooperativbe, az is szep lenne azert.
E-Mail
TCH
2019.07.06. 19:11:37
Szarok a steamre. Arról beszélek, hogy a Linux lassan a 32-bit támogatást is eldobja. i386-on már nem is megy.
Z80-on preemptive multitaskos Linux...jóvammá...

Inkább hagyjuk...
E-Mail