Melyik az a legrégebbi x86-os OS, amelyet modern PC futtatni tud natívan, azaz emulátor és virtuális gép nélkül? Először azt gondoltam, hogy a CP/M-86 2.2, de nem biztos, hogy futna, és bár régebbi rendszer a DOS-nál, de a PC/MS-DOS 1.0 után portolták röviddel. Esetleg valamelyik régebbi Unix, amit előtte vagy utána portoltak? A választ emiatt ketté kéne bontani, mivel a legrégebben írt ilyen OS nem biztos, hogy a legrégebben portolt/PC-re kiadott. Mind a két szempont érdekelne. Hobbi OS-ek nem játszanak, csak a hivatalosan kiadottak, amelyekre írtak szoftvereket is.
A futtathatóságnál mindenképp fontos szerintem, hogy támogasson valami MBR-res partícióra formázható fájlrendszert. Emiatt szerintem a 86-DOS, és az utána kiadott PC/MS-DOS 1-3 nem menne, csak MS-DOS 3.3-tól. Vagy tévedek? Az ilyen régi CP/M és DOS-os rendszereket simh emulátorra szokták ajánlani. Esetleg van még kritériuma, mondjuk lemez hardveres kezelése, vagy azt emulálja a BIOS/UEFI? Az egész az x86-os visszafelé kompatibilitásról jutott eszembe, hiszen elvileg a mai procik visszafelé kompatibilisek az 8086-os procikkal, de a 8088-assal (XT) nem. Nyilván nem akarok ilyen régi rendszert használni. Csak elméletileg érdekel, persze a megoldást azért le fogom tesztelni.
- 3587 megtekintés
Hozzászólások
A neten azt írják, hogy a 3.3 előtti MS-DOS nem ismeri fel a SATÁ-s meghajtókat, de kérdés, hogy az USB-re csatlakoztatott FDD-ről bootolna-e? Mert ugyebár modern gépen nincs alaplapi floppy port, sem IDE. Persze még az FDD is necces, mert a modern floppymeghajtók nem hinném, hogy 720KB-os lemezeknél régebbi formátumokat kezelnék. Ugyanez a helyzet a CD-re írt lemezképpel.
Itt valaki azt írja, hogy próbálta AthlonXP-n, és a CP/M-86 1.1 ment.
- A hozzászóláshoz be kell jelentkezni
A BIOS beállítja az INT 13h handlert az USB-s floppyra is, mert a floppy első szektorában levő boot kód se tudna továbbmenni enélkül.
- A hozzászóláshoz be kell jelentkezni
a mai procik visszafelé kompatibilisek az 8086-os procikkal, de a 8088-assal (XT) nem
Ezek szerint az AT és XT nem tudta ugyanazt a programot futtatni?
Asszem, ez igen sokaknak feltűnt volna. ;) Szóval nettó baromság.
Olvasgattam ki mit hisz. Volt olyan, aki szerint a 8086 a 8085 továbbfejlesztett változata. Persze a 8086=8085+1 képlet alapján biztosan igaz. :-D
- A hozzászóláshoz be kell jelentkezni
A 8088-as egy olyan 8086-os, ami belül szintén 16 bites, de a külvilág felé csak 8 bites adatbusszal rendelkezik. Az ok, amiért ilyenre faragták, az volt, hogy az akkori, olcsó 8 bites perifériaáramköröket könnyen lehessen illeszteni hozzá. Amúgy voltak olyan XT-k, amiket úgy terveztek, hogy 8086-os, illetve 80186-os procival mentek, olyanok is, amikben NEC V20-as és V30-as CPU-k dolgoztak, az utóbbi pedig a 8086-os koppintása.
Az AT-k processzora nem a 8086-os, hanem a 80286-os lett, tehát sem a 8088-as, sem a 8086-os kapcsán nem kéne senkinek az AT-ra gondolnia.
... és igen, vannak olyan programok, amik futnak az AT-kon, de nem futnak az XT-ken , ilyen pl. a Windows 3.1. Az előd, a Windows 3.0 még elindult XT-n is.
- A hozzászóláshoz be kell jelentkezni
No, iderakom a teljes mondatot, amire válaszoltam:
Az egész az x86-os visszafelé kompatibilitásról jutott eszembe, hiszen elvileg a mai procik visszafelé kompatibilisek az 8086-os procikkal, de a 8088-assal (XT) nem.
Tehát a visszafelé kompatibilitásról volt szó, nem pedig a védett módú programok XP-n történő futtatásáról.
Az ok, amiért ilyenre faragták, az volt, hogy az akkori, olcsó 8 bites perifériaáramköröket könnyen lehessen illeszteni hozzá.
Ez is egy naív elképzelés. Ha így lenne, akkor a 80286 mellé nem használnák ugyanazt a 8250 UART-ot, mert az 16 bites. Meg a 8237 DMA vezérlőt ami az MCS85 (i8085 -> i8080 == 8 bites) családhoz készült. A korai x86-os családoknak voltak nagygépes és multiprocesszoros környezethez kifejlesztett periféria illesztő áramköreik. Egy kis személyi számítógépbe ezeket nem érte meg belerakni, mert túlbonyolította/drágította volna. Inkább az akkoriban nagyon drága memóriák befolyásolták a tervezést. A memóriák 1 bites szervezésűek voltak, és egyáltalán nem volt mindegy, ha kétszer akkora adatbuszt kellett kiépíteni. Az első pc 64k rammal készült!
amikben NEC V20-as és V30-as CPU-k dolgoztak, az utóbbi pedig a 8086-os koppintása
Jó kis koppintás! :-) Egyrészt olyan utasításokat is tudott, ami az Intelnél csak a 686-os famíliában jelent meg. Tudott nagyobb méretű bitmap-et kezelni, meg pakolt BCD stringeket. (Akkoriban nem volt minden sarkon matematikai koprocesszor, és Turbo Pascalból volt TuboBCD is, főként a pénzügyi számításokhoz.) A CX regiszter szerinti shiftelést hardver, a komplex címek számítását külön ALU végezte. Mindezt a takarékos/lusta Intel mikrokóddal oldotta meg - rengeteg órajel alatt. :) Nem utolsó sorban volt natív 8080 üzemmódja is. Ezen például kiválón lehetett futtatni az Intel ISIS-ii fejlesztőrendszert, méghozzá az eredeti programokat emuláció nélkül! Mindezt V20 esetén 12MHz órajellel.
Az AT-k processzora nem a 8086-os, hanem a 80286-os lett, tehát sem a 8088-as, sem a 8086-os kapcsán nem kéne senkinek az AT-ra gondolnia.
Mindegyikbe terveztem bővítőkártyát. Hidd el, tudom mire gondolsz. ;) A 8086/186-os pc ritka volt, mint a fehér holló. (VT16) A 186-ost inkább csak lézernyomtatóban láttam - kihasználták a DMA és a beépített CS lehetőségeit. Az XT <-> AT gondolat így a gyakran előforduló 8 <-> 16 bites adatbusszal (és io-val) rendelkező gépek összevetését jelenti.
- A hozzászóláshoz be kell jelentkezni
> Az első pc 64k rammal készült!
Volt alkalmam matatni XT előtti PC-ben, amihez még magnót is lehetett csatlakoztatni (i8255-tel illesztették), az ISA-slotok 1,5x-es távolságra voltak benne a későbbi XT-khez, AT-khoz képest. Bővítés után nem is lehetett a 286-os alaplap minden slotját használni benne :)
Amiket láttam, azok között volt olyan is, amikben 4264-es DRAM-ok voltak, pedig az még eléggé az "elején" volt.
> Ez is egy naív elképzelés. Ha így lenne, akkor a 80286 mellé nem használnák ugyanazt a 8250 UART-ot, mert az 16 bites. Meg a 8237 DMA vezérlőt ami az MCS85 (i8085 -- i8080 == 8 bites) családhoz készült.
Meg pl. az i8253-at. De, használnák, és használták is, mivel így lehetett megoldani a kompatibilitást, amire hivatkoztál is.
> Mindegyikbe terveztem bővítőkártyát.
Te győztél :) Én csak XT-hez terveztem. OrCAD-del, Hercules monitoron. Képzelheted, majd' kifolyt a szemem. Utána már lett színes monitorom :)
- A hozzászóláshoz be kell jelentkezni
Igen, így értettem én is, csak pontatlanul írtam, a 8086 kompatibilis a 8088-cal, csak egész rendszer szintjén nem. A 8088-asról elvileg a rajta futó programok nem veszik észre, hogy nem 8086-os, a belső és az utasításkészlet megegyezik, de amelyik programot mégis kifejezetten 8088-as XT-re írták (BIOS-t megkerülő, hardverközeli kódot használva), az a busz miatt nem fog menni AT-n és felfelé.
80(1)86-ost klóngépek használtak, az IBM átugrotta ezeket, és amikor már fel tudta volna őket használni, akkor ott volt már a 286-os. Ma már ezek az XT, AT jelölések is megmosolyogtatók, pedig még ma is lehetne alkalmazni efféléket, mert utánuk jött a PS/2, aztán az ATX, majd a BTX, majd az ITX, ami most népszerű, de ez utóbbiakat ATX-ként össze lehet vonni, inkább csak a fizikai formátum más, de amúgy egymással kompatibilisek. A prociknál sem alkalmazzák ezt az 5-jegyű 80x86-os jelölést, mivel nem lehet számot márkanévként levédeni, 586-ostól kezdve inkább nevet adtak neki, Pentiumként hozták forgalomba, amit a Pentium MMX követett. Pentium Pro-tól kezdve a Pentium2 és Pentium3-ig voltak a procik 686-osok, a Pentium4 786-os, de mivel technikai zsákutca volt, visszatértek a P3-as alaphoz, úgyhogy a Core Solo, Core Duo, C2D, i3-i7, most i9 meg a Xeon-változatok is 686-osok. Mondjuk azért furcsán venné ki magát, ha az ember úgy adná meg a konfigját, hogy IBM PC kompatibilis 80686 ATX, nem csak az elavult kategorizálás miatt, de ma már az IBM sincs sehol, nem hogy a többi gép kompatibilitását hozzá mérjük, meg egy P4 fejlettebbnek látszana, mint egy mostani i7-es. A procicsalád kiolvasható a CPUID-vel, /proc/cpuinfo-ból.
A helyzetet bonyolítja, hogy az AMD máshogy léptette a családszámozást, ráadásul két vonalon is, K7-től folytatta a számozást (Athlonok) és most egészen felment a mai napig K17-ig, míg a CPUID-ben 7-estől folytatódott a számozás, ami most a Zen prociknál 23-as. Megtévesztő, mert az arra írt kód fut az Intel-féle 6-os család procijain is (már ha nincs benne olyan AMD-specifikus utasítás). Az a családszámozás inkább generációkat takar, és nem feleltethető meg az Intel-féle tradicionális családszámozásnak, persze a 686-osnál sem vehető komolyan, mert bár ugyanabból az architektúrából indultak ki anno, de azért egy Pentium Pro és egy Core i7-es között elég nagy különbség van, nem csak a 64 bit támogatása miatt, meg a memóriakezelés megemelt korlátja miatt (PAE-vel 36 bit, vs. mai 48 bit), hanem azóta megjelent jó pár utasításkészlet is.
„Pár marék nerd-et leszámítva kutyát se érdekel már 2016-ban a Linux. Persze, a Schönherz koliban biztos lehet villogni vele, de el kéne fogadni, ez már egy teljesen halott platform. Hagyjuk meg szervergépnek stb…” Aron1988@Proharder Fórum
- A hozzászóláshoz be kell jelentkezni
Itt nézzél körül:
https://winworldpc.com/library
- A hozzászóláshoz be kell jelentkezni
Kösz a linket. Akkor megpróbálok egy 1.00-ás vagy 1.1-es CP/M-86-ot, egy 1.00-s PC-DOS-t, de sejtésem szerint nem fog bootolni egyik sem. Esetleg, ha be tudom szerezni, akkor egy 1.00-ás Xenixet, annak viszont tuti kéne mennie, igaz az v7-es Unix, lehet 6-osat vagy 5-öset is portoltak át már.
Mondjuk csak i5-ös meg i7-es laptopon tudom kipróbálni, tartalék SATA2-es HDD-vel vagy SSD-vel, esetleg olcsóért be tudok szerezni egy USB-s FDD-t, meg bele való néhány lemezt, de szerintem nem nagyon fognak örülni ezek a kőkorszaki OS-ek ennek a hardverkiépítésnek, még ha az UEFI tudja is emulálni a BIOS-os funkciókat.
„Pár marék nerd-et leszámítva kutyát se érdekel már 2016-ban a Linux. Persze, a Schönherz koliban biztos lehet villogni vele, de el kéne fogadni, ez már egy teljesen halott platform. Hagyjuk meg szervergépnek stb…” Aron1988@Proharder Fórum
- A hozzászóláshoz be kell jelentkezni
https://en.wikipedia.org/wiki/Timeline_of_operating_systems
A fenti alapján a CP/M-86-ra, vagy a Xenixre (Unix by MS) tippelnék.
And for those interested in these early PC operating systems there is a new insight to be found, in the form of a pre-release version of PC-DOS 1.0 that has found its way into the hands of OS/2 Museum.
- A hozzászóláshoz be kell jelentkezni
Ahogy olvasom, a Xenix 1.00 sem futna 286-osnál újabb procival. Egyébként ha nem követelnénk meg a modern hardveren futást, vagy csak a proci elvi kompatibilitását nézzük, akkor a Xenix és a QDOS lenne a legrégebbi (1980 augusztusa), beelőzve az 1980 októberi CP/M-86-ot, meg az 1981-es 86-DOS-t, PC/MS-DOS 1.00-át. Viszont mivel gyakorlati szempontból érdekes, hogy fusson is, így szerintem az 1983. márciusi PC-DOS 2.0 lesz a legkorábbi, ami pedig biztosan fut, az a MS-DOS 3.3 (1987. augusztus), de sanszos, hogy a 3.0 is megy (1984. augusztus).
„Pár marék nerd-et leszámítva kutyát se érdekel már 2016-ban a Linux. Persze, a Schönherz koliban biztos lehet villogni vele, de el kéne fogadni, ez már egy teljesen halott platform. Hagyjuk meg szervergépnek stb…” Aron1988@Proharder Fórum
- A hozzászóláshoz be kell jelentkezni
Próbáltam konkrét dátumot találni, de nem nagyon sikerült, de a a 3-s verzió előtti Coherent (by Mark Williams Company) az futott 8088-ason is állítólag. (Én már csak a 286-oson elfutó 3.x-et ismertem.) De esetleg ebben az irányban is keresgélhetsz. Az is tény, hogy olyan spéci boot loadere volt, ogy már egy izmosabb 486-oson is macerás volt használni, mert túl hamar lejárt a timeout-ja :-(
=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
- A hozzászóláshoz be kell jelentkezni
No igen. Sokszor alkalmaztak(tunk) "NOP" hurkokat, így időzítve késleltetve. Bocs.
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
Alapvetően a BIOS a meghatározó - a régi op. rendszerek 100% -ban erre támaszkodtak. Az XT világában (i8088), még nem volt a BIOS -ban semmilyen hard diszk, külön add-on a diszkekhez vásárolható kártyán volt a hozzá tartozó BIOS (MFM legelterjedtebb a Seagate 20M diszkje volt, a formázás külön művészet volt). A floppy volt az úr!
OFF: Valójában, a ma használatos op. rendszerek őse inkább az i386 -hoz lehet kötni - lásd Linux.
A 8 bites busz azért jó mert fele annyi vezeték kellett hozzá, olcsóbb volt a NYÁK és a periféria kártyák (8 bites ISA - rövid csatlakozó).
A V20 azért volt valamelyest népszerű mert Z80 -at is tudott (nem 8085), így (pl. az akkori nagyágyú a Videoton XT kompatibilis terminál kapásból tudott CP/M -et futtatni). A Z80 az akkori világ eléggé elterjedt processzora volt (4 és 8 MHz órajel, ZX, ZX Spektrum :) Az i8085 -höz még nem köthető specifikus op. rendszer, valójában az iparban terjedt el mint mikróvezérlő (embedded controller) és a legfontosabb tudománya az volt, hogy elment egy tápfeszről szemben a 8080 -al ami három tápfeszt kért.
Szóval, én a DOS3.x -re szavaznék, már ha van floppyd.
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
Kösz az érdekes adalékot. Ezt nem tudtam, hogy a merevlemez vezérlőjén is volt BIOS az XT-ben.
Floppym az nincs, de lehet beszerzek egy USB-s külső FDD-t 1-2 lemezzel, bár az is gond, hogy csak 3,5 colosat árulnak, és a régi OS-ek az 5,25-ös floppykat támogatták. Addig is megpróbáltam MS-DOS 3.3-as lemezképet teszt SSD-re dd-zni, de nem bootol, persze nem is csoda, mert cfdisk-kel ránézve mindenféle fals partíció jön létre rajta, szóval már a lemezkép sem rendesen MBR-kompatibilis. Majd próbálom a bootlemezt QEMU-ban elindítani, felcsatolni az SSD-t, mint fizikai eszközt, és arra feltelepíteni, úgy hátha bootol, ha más nem FAT16-os vagy FAT12-es partícióról.
„Pár marék nerd-et leszámítva kutyát se érdekel már 2016-ban a Linux. Persze, a Schönherz koliban biztos lehet villogni vele, de el kéne fogadni, ez már egy teljesen halott platform. Hagyjuk meg szervergépnek stb…” Aron1988@Proharder Fórum
- A hozzászóláshoz be kell jelentkezni
A floppyn nincsen sem MBR sem patíció tábla, csak boot record. Nézd meg itt, hogy mi az eltérés. A korábbi formáumokon nincs Volume Serial Number.
A QEMU meg elindul floppyról - itt egy első találat.
- A hozzászóláshoz be kell jelentkezni
Valóban, erről el is feledkeztem, nagyon rég floppyztam. Mindenesetre találtam egy leírást, azzal ment az MS-DOS 3.3 QEMU alatt, bootol floppyról. Viszont elsőre qcow-s HDD-lemezképet csináltam qemu-img toollal, és ezt particionáltam DOS 3.3 alatt fdisk-kel, és meg is tudtam formázni, meg a rendszert is átvittem sys c: paranccsal. Ennek örömére töröltem a HDD lemezképet (hiba volt), és elkezdtem elölről a műveletet, de most a QEMU-nak -hda-ként megadtam a teszt SSD-t (amely /dev/sdb-n volt), a partíciókat létre tudta hozni a drive-on, de nem tudta megformázni. Gondoltam visszaváltok lemezképre, de most raw formátumút készíttettem a qemu-img-vel, majd mindent megismételtem, de ezt sem tudja formázni. Végül kínomban újra megpróbáltam qcow lemezképpel (hogy majd később átkonvertálom raw-ba, amit kiírok dd-vel a /dev/sdb-re), de fdisk-es particionálás után nem tudja megformázni ezt sem az DOS 3.3. Nem tudom, hogy először hogyan sikerült.
Nincs hibaüzenet, mikor nem akarja formázni. Kiadom a format c: parancsot, megkérdezi, hogy biztos vagyok-e benne, leokézom, erre azonnal visszadobja az A> promtot. Normálisan, mikor formázná, felületellenőrzést csinálna, majd utána rákérdezne a kötetcímkére, majd kiírna egy összegzést a formázott méretről.
Szerk.: az apjuk kaszá’t. Megvan mi volt a hiba, mikor formázáskor (Y,N)-t vár, akkor nem elég Entert nyomni, ahogy Linuxnál, hanem ténylegesen be kell gépelni egy Y-t, így már formázza. Be is bootolta az MS-DOS 3.3-t az i7-es laptop USB-re kötött SATA2 SSD-ről, nem virtuális gépről, hanem ténylegesen. Mindjárt kipróbálom DOS 2.0-val meg CP/M-86-tal.
Persze még előtte a DOS 3.3-mal ökörködök. Nem emlékeztem rá, de a chkdsk parancs írja ki 3.3 alatt a szabad memóriát is, nincs még mem parancs, az csak a 4.0-tól jön be. Kár, hogy a dosidle csak 5.0-tól támogatott, így maxon tekeri a DOS az egyik procimagot.
„Pár marék nerd-et leszámítva kutyát se érdekel már 2016-ban a Linux. Persze, a Schönherz koliban biztos lehet villogni vele, de el kéne fogadni, ez már egy teljesen halott platform. Hagyjuk meg szervergépnek stb…” Aron1988@Proharder Fórum
- A hozzászóláshoz be kell jelentkezni
Ha kell még van 5,25 floppy -m is (360KB, 720KB nem biztos és 1,2M), de egyébként a 3,5 floppy pont úgy működik, mint az 5,25 -ös - értsd ugyanaz a bekötés, felülről kompatibilis (bár tény, hogy ezek nagyon rég voltak).
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
Nem vártam volna tőled ennyi pontatlan és pongyola információt!
Persze elég lenne a korábbi hozzászólásom tanulmányozása.
A V20 azért volt valamelyest népszerű..., bár igen ritka, mert akkoriban a programok java része 8080-on azaz CP/M-en futott. (A V20 8080 emuláció pontosan: emulation operation of the μPD8080AF instruction set .) A Z80-hoz semmi köze.
Az i8085 -höz még nem köthető specifikus op. rendszer, valójában az iparban terjedt el mint mikróvezérlő (embedded controller) Hacsak nem említjük az oly ritka CP/M-et. ;) Mivel a 8085 nem más, mint az "egy tápfeszes 8080". Apróbb különbségek:
- van egy-egy "soros" - inkább 1 bites ki- és bemenete
- a normál INT megszakítás bemenet mellett még van 3 prioritásos és egy nem maszkolható megszakítása. Ettől még nem lesz MCU, sem embedded. Igaz, az 5 huzalozott megszakítás miatt vezérlésre igen alkalmas.
- A fenti "elpazarolt" csatlakozások miatt a címbuszt multiplexelni kellett.
- A fetch ciklus egy órajellel rövidebb, és még néhény utasítás is gyorsabbra sikerült.
- A 8080 3,125MHz-éhez képest max. 5MHz-es effektív órajel.
A kuriózum az NSC800, ami a 8085 és a Z80 összes képességével rendelkezik.
- A hozzászóláshoz be kell jelentkezni
Nem tudom pontosan honnan merítetted az infót, de még volt valami botrány is akörül, hogy a NEC "Z80" emuláció(?) nem pontosan követi az eredeti flag kezelését.
Lehet, a nyugati világban a 8080 és 8085 -ön futott a CP/M de nálunk rögtön a Z80 (pl. HomelabI. -III.) A Z80 egy másik fontos tulajdonsága a DRAM kezelés (frissítés) volt.
Az embedded tényleg kicsit túlzás, a 8041 és testvérei ill. a 8075 volt az igazi (már Intel vonalon). Embedded -ként használtuk persze, ha komolyabb gép kellett akkor mellé tetted az interrupt controllert, a timert és a különféle portokat. Viszont ez volt az akkori integráltság lehetősége, ennyit tudtak felrakni a chipre, amit manapság egy chipbe besűrítenek.
OFF: Valaki a HUP -on mesélte, hogy Z80 használtak memória nélkül is!
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
Az infót potosan a μPD70108 (NEC V20) adatlapjából vettem. ;)
Egyébként használtam a 80-as években 10MHz-es a turbó XT-n futtattam Intel Isis-II fejlesztőrendszer emulációt - ami 8080-ra volt írva. (Tévedtem, nem volt 12MHz-es példányom.) Az emulátort -nocpu paraméterrel kellett (volna) indítani V20 hiányában.
Ugyanezt az XT-t használtam a 90-es években egy terminálemuláció tesztelésére, amit 80286 nem védett módra írtam, 80186 utasításkészlettel. (assemblerben)
Itt, most az orrom előtt egy 8 és egy 10MHz-es példány csücsül - elrakva nosztalgiából. :)
A Z80 tényleg azért terjedt el, mert saját maga tudta frissíteni a DRAM-ot. Már ha volt. Tán én meséltem. ;) A legkisebb "rendszer" Z80+8255+EPROM volt, ami egyik irányban egy CD30-as (Thomson CD játszó, kereskedelmi forgalomban nem volt) kezelő panel interfészét játszotta, a másik irányban meg a főprocesszorral cseréltek gondolatot. Itt mazsolázhatod a kódot. :) A dátum és a hibák ne zavarjanak! Ez kb 1988-89 körül fordult a turbó XT-n, egy barátom által cross-assemblált MACRO-80 segítségével.
Mikrokontroller-szerű minimál rendszert is építettem párat: 8085+8155+EPROM+LS373. Ebben volt ram, timer, port, 5 interrupt - mi kellhet még? Zsebszámológép méretben elfért.
- A hozzászóláshoz be kell jelentkezni
> A legkisebb "rendszer" Z80+8255+EPROM volt, ami egyik irányban egy CD30-as (Thomson CD játszó, kereskedelmi forgalomban nem volt) kezelő panel interfészét játszotta, a másik irányban meg a főprocesszorral cseréltek gondolatot. Itt mazsolázhatod a kódot. :)
"Szép" feladat úgy kódot írni, hogy csak az utasításkészlet egy részét használhatod. A példádhoz hasonló megvalósítású volt nagyon régen egy dallamcsengő, szintén Z80-nal, szintén RAM nélkül. Annak átterveztem a NYÁK-ját, hogy a cím- és adatvezetékek minél könnyebben tudjanak közlekedni a CPU és az EPROM között, hogy elég legyen egyoldalas panel is, majd PC-n írtam egy kis programot, ami az EPROM-ba töltendő tartalmat beégetés előtt átrendezte úgy, hogy a CPU már a megfelelő tartalmat tudja beolvasni. Ha valaki ezt az EPROM-tartalmat megpróbálta volna disassemlerrel visszafejteni, biztosan csodálkozott volna, mivel ez a valaki nem tudott arról, hogy a cím- és adatvonalak is össze vannak kuszálva :)
- A hozzászóláshoz be kell jelentkezni
Azért ebben az egyszerűnek tűnő kis programban van egyéb szépség is. Pl. folyamatábrával nem írható le a működése. Igaz, a tevékenységet le tudod írni, de annak meg nincs köze a futáshoz. Hasonlít ahhoz, amikor párhuzamos működésű hardvert írsz le több lépéses folyamatábrával. (PL. logikai analizátor komplex triggerfeltételét megvalósító hardver beállítása.) Ebben az esetben a beérkező parancs dekódolása+az elvégzendő művelet+a következő állapot van összevonva egy táblázatban. Csak így tudott elég gyorsan működni a program.
Az a megközelítés, hogy "csak az utasításkészlet egy részét használhatod" nem életszerű. Azt sugallja, hogy "normál esetben" mindig a teljes utasításkészletet használod, ami nem igaz. Itt csak egy feladatot kellett megoldani. Nincs adat, amit tárolni kellene. Nincs szubrutin hívás, mert nem futna le időben. Egyszerűen bejön 1db adat, amire egy tevékenységet kell végezni, miközben átalakítod. A végeredményt továbbítani kell, amihez szükséges 1db tároló. Ott is van a 8255 egyik portja! Ezt a nagy todományt funkcióelemzésnek hívják. Ha végiglépkedsz a megoldandó feladaton, akkor kijön, hogy nincs mit tárolni, tehát felesleges a tároló. Marad a megszakítás kezelésekor automatikusan végrehajtott push. Ezzel csak annyi a feladat, hogy ne írjon felül semmit, és ne hajtson végre return utasítást a nem létező stackből előhúzva a visszatérési értéket.
EPROM összekuszálva? Semmiség. A LZR2665 nyomtatóban alkalmazott megoldás - ha tévedek, akkor az LZR2630. (A link érdekesség, mert az IBM AIX 7.1 "Supported printers" kategóriájában ma is megtalálható, miközben ezzal a nyomtatóval a 80-as évek végén találkoztam!) Ebben a nyomtatóban a karaktergenerátorokat tartalmazó EPROM sor adat- és címvezetékei keresztül haladnak egy ún. dataflow processzoron, és a vezetékek egy része vissza is van csatolva. Röviden megfogalmazva: az áramkör titkosított és tömörített karaktergenerátorokat rejt. :)
- A hozzászóláshoz be kell jelentkezni
> a formázás külön művészet volt
Hát... művészetnek aligha nevezhető, ha a debug parancs használatával indítod el a vezérlő BIOS-ában lévő "alkalmazást", ami alacsony szintű formázást végez a lemezen:
-g=c800:5
A "-" a debug promptja; a "g" a go (nem a japán logikai játék) rövidítése.
> A V20 azért volt valamelyest népszerű mert Z80 -at is tudott (nem 8085), így (pl. az akkori nagyágyú a Videoton XT kompatibilis terminál kapásból tudott CP/M -et futtatni)
Nem. Nem Z80-as, hanem 8080-as kódot tudott futtatni az NEC V20-asa (és a V30-asa is). A CP/M (CP/M-80) pedig 8080-on, 8085-ön és Z80-on is futott (meg még futhat ma is), de nem az első verzió, mert amikor az kijött, még nem volt Z80 (talán még a Zilog megalapítói is az Intelnél dolgoztak akkor, de ezt csak saccolom, majd valaki pontosítja).
> Az i8085 -höz még nem köthető specifikus op. rendszer, valójában az iparban terjedt el mint mikróvezérlő (embedded controller)
A 8085 nem mikrovezérlő, hanem CPU, tkp. a 8080 "ügyesebb" változatának tekinthető. Az egy tápfesz, amit írtál, rendben van, de mellette volt még pár lényeges eltérés, pl. a multiplexelt cím- és adatbusz, emiatt új perifériavezérlőket is terveztek hozzá (pl. i8155), továbbá a 8080 nem volt túl "önálló", kellett hozzá egy 8224 (órajelgenerátor) és egy 8228 (rendszervezérlő) is.
Az Intel első mikrovezérlő-családja az MCS48 volt (i8048, i8049 stb.; i8749-em még mindig van, de már csak "dísznek"), ezeket előszeretettel használták a PC-k alaplapjaiban a billentyűzet illesztésére, valamint a PC-k billentyűzeteiben is. Az igazi nagy siker az MCS51-es család lett, ezek tagjairól és utódairól hosszasan lehetne írni, elég sok emlékem van róluk.
- A hozzászóláshoz be kell jelentkezni
Rendben meggyőztetek. Én emlékezetből írtam, nem puskáztam.
Dolgoztam minddel, (8080, 8085 és persze Z80) a Motorola és a Mocship(?) a Commodore processzorok fejlesztője.
A raktárban még ott porosodik a Homlab III. és egy-két Műszertechnika XT alaplap amit selejtként, olcsón kiárusítottak (egy-két zárlat volt a paneleken).
Viszont szerintem 8041/42 megelőzte a 8048 -asokat és az volt a PC billentyűzet kezelője.
Az MCS51 meg nekem is szép emlék.
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
> Viszont szerintem 8041/42 megelőzte a 8048 -asokat és az volt a PC billentyűzet kezelője.
Abban teljesen igazad van, hogy 8041 és 8042 is előfordult, ha lesz időm, beletúrok a régi cuccok közé, a NYÁK-okon lévő alkatrészek nem hazudnak.
> Én emlékezetből írtam, nem puskáztam.
Mire gondolsz? XT-kben (sőt, volt olyan, ami átkerült AT-be is a vezérlőkártyájával együtt, mert pl. a 10MB-os HDD-ket nem kezelte az AT-k BIOS-a, nem volt benne a táblázatukban, azokban meg még nem volt "47-es"), annyi HDD-t kellett életre keltenem, hogy akkor sem tudnám elfelejteni a c800:5-ös címet, ha akarnám :)
- A hozzászóláshoz be kell jelentkezni
Úgy néz ki, hogy igazam lett. Az MS-DOS 3.30 a legkorábbi (pont 30 éves OS), ami bootol, mármint az i7-es notimon, USB-SATA átalakítón üzemelő 64 GB-os SATA2 SSD-vel. Lehet az USB vagy a SATA vagy a 10 GB-on felüli lemezméret a baja (erre gyanakszok leginkább), de a PC DOS 2.0 és 3.0 nem bootol SSD-ről, csak QEMU alatt. Kisebbel nem tudom megpróbálni egyelőre, ennél csak nagyobb meghajtóim vannak (320 gigától 1,5 teráig bezárólag) és azok is mind legalább SATA2-esek (plusz azokon értelmes adat is van, amit nem akarok szétbarmolni). Esetleg 8 gigás pendrive van még, az a legkisebb, de nem hinném, hogy menne. 3.0-ásból csak PC-DOS-t tudtam letölteni MS-DOS helyett.
Az MS-DOS 3.30-cal sem lehet sokat kezdeni természetesen mai szemmel. Elvileg a lemezből kezelne 24×32 MB-tot (azaz nem egész 768 megát type4-es CHS/non-LBA FAT16 partíciókat, 3 primary és 1 extendeden belül még 61 logikai partíció, de betűjelet C: és Z: között csak 24 tud kapni, a további partíciókat nem lehet így használni). A 16 giga memóriából is látott kemény 640KB-tot, többet nem is vártam. DOSIDLE, HIMEM.SYS és EMM386 csak DOS 5.00-tól működik. Elvileg lenne rá PEMM.SYS, amely kezelne némi LIM-EMS expanded memóriát, de nem találtam sehol, így nem tudtam letölteni és kipróbálni. Ezt leszámítva meg csak a LINK.EXE és a RAMDISK.SYS illetve a PC-DOS-os változatban a VDISK.SYS tud hasznosítani max. 4 MB extended memóriát, ha többet adok meg neki, akkor lefagy. Szóval továbbra is 640 KB memóriát lehet használni, a többi 4 megát RAM drive-nak lehet befogni, vagy az MS-Linkernek lehet odaadni virtuális memóriaként, szerintem expanded memóriából sem kezel 4 megánál többet. Mindenesetre a 4 megás ramdrive még DOS-os léptékkel mérve is édeskevés. Holnap még tesztelem CGA, EGA, VGA kártyát használó játékokkal, szerintem azok menni fognak, a legtöbbnek elég lesz a 600KB-nyi szabad hagyományos memória, már amelyik elindul 5-ösnél régebbi DOS-szal, setver-es trükközés megint csak 5.00-tól lenne.
„Pár marék nerd-et leszámítva kutyát se érdekel már 2016-ban a Linux. Persze, a Schönherz koliban biztos lehet villogni vele, de el kéne fogadni, ez már egy teljesen halott platform. Hagyjuk meg szervergépnek stb…” Aron1988@Proharder Fórum
- A hozzászóláshoz be kell jelentkezni
Mai ajánlatunk a "Compaq DOS"! ;)
This version adds support for hard drives up to 512MB.
Egy másik a DR-DOS 6.0. Ez fut 386-on, és szépen lehet vele memóriát kezelgetni. Az EMS és XMS (386-on emuláció!) mellett gyakran szempont az alap memória mérete. Ilyenkor drivereket, rezidens programokat (az ún. TSR-eket) az első MB 640kB feletti részére lehet tölteni - már ha szereti. Egy feladathoz a 640kB alapmemóriát sikerült feltornászni 890kB környékére!
Az XMS (is) több memóriát is tud kezelni, viszont ehhez olyan oprendszer kell, ami a 386-ot meg tudja kérni az emulációra. Ez a 22-es csapdája, azaz az ilyen nem lehet elég régi!
DR Multiuser DOS 5.00 (1991). És jött a 386-os multitasking, de hálózat még nincs. Ha sikerült beszerezni támogatott sok portos soros adaptert, akkor olyan 19(??) felhasználóig hasíthattak a a direktvideós programok.
Kis diszket előállítani a HPA segítségével is lehet. Kérdés mire áll be ilyenkor a nem LBA módban a CHS.
De hogy mit akarsz kezdeni azzal a rengeteg memóriával és diszkkel - azt fel nem foghatom! Hiszen akkoriban még nem létezett Windows, Java, XML. :-D
Viszont a 48k-s CP/M-en futott olyan szövegszerkesztő, ami már akkor nagyobb szöveget szerkesztett, mint amekkorát az MS Word évekig nem. ;)
- A hozzászóláshoz be kell jelentkezni
Ha már valami értelmesebb dologra akarnék DOS-t használni, akkor FreeDOS-t tennék fel, abban a JEMM386 DPMI-je extended és expanded memóriaként 4 GB RAM-ot kezel (mínusz ami fent van tartva eszközök címzésére), meg ki tudja használni a 386-os procit, és be van építve a kernelbe az energiatakarékosság, beleértve azt is, hogy ne pörgesse a CPU-t mindig 100%-on, plusz kezeli a FAT32-őt, több terás HDD-ket, még az NTFS-t is kezeli korlátozott funkcionalitással. DR-DOS multitaszkinghoz jön jól. Ha meg Win 3.11-re megy rá az ember, akkor MS-DOS 6.22 a megfelelő választás, bár akkor már inkább az NT 3.51 még korszerűbb. Persze semmi szín alatt nem használnék már őskövületi szart, pont elég volt belőle annak idején.
Inkább csak az bizonyosodott be, amit eddig is gondoltam. Semmi értelme nincs ennek az x86-os visszafelé kompatibilitásnak, a mai drive-ok, alaplapok, BIOS-ok miatt a legrégebbi XT-s OS-ek nem is mennek, az AT-sok meg igen, de sok értelmeset nem lehet velük kezdeni, ezek mindegyike elfutna szoftveres (azaz nem hardveres virtualizációs) emulátorban, annyira szerény a hardverigényük, még az emulátor is túl gyors nekik, abban könnyebb a sebességet is visszavenni.
Abban igazad van, hogy a 3.30-as DOS korában nem kellett 4 mega memória sem, játékok sem használtak annyit, legfeljebb nagy szövegek szerkesztésénél, meg tudományos számításnál, CAD-ezésnél lehetett volna kihasználni. Sok időnek kellett még eltelnie a 80-as évek végétől, mire jött a Windows 3.x, NT-vonal, meg a DOS extenderes játékok, amik ki tudtak használni több MB memóriát. Csak kíváncsiságból néztem meg, hogy mennyire lehet kimaxolni a hardverkezelési képességeket. Mondjuk az is igaz, hogy a teszt SSD-m gyorsabb, mint az XT-AT-s gépekben annak idejét a RAM, szóval swap fájl is gyorsabban működne rajta akármekkora méretben, persze ennek ellenére jó lenne, ha ramdrive-val is minél nagyobb területet lehetne hasznosítani a 16 giga RAM-ból, legalább annyit, amekkorát merevlemezként, partícióként is kezelni tud a rendszer.
„Pár marék nerd-et leszámítva kutyát se érdekel már 2016-ban a Linux. Persze, a Schönherz koliban biztos lehet villogni vele, de el kéne fogadni, ez már egy teljesen halott platform. Hagyjuk meg szervergépnek stb…” Aron1988@Proharder Fórum
- A hozzászóláshoz be kell jelentkezni
Ha már valami értelmesebb dologra akarnék DOS-t használni...
Felejtsd el! Csak a "legrégebbi OS" témakör pereméhez írtam egy-két történelmi, de játéknak jó ötletet.
Semmi értelme nincs ennek az x86-os visszafelé kompatibilitásnak...
Mivel az OS sem az, ezért maga a hardver mint mackósajtban a brummogás.
- A hozzászóláshoz be kell jelentkezni