Enterprise Forever

:HUN => Programozás => Topic started by: Povi on 2018.December.19. 14:56:16

Title: UNIX Enterprise-on
Post by: Povi on 2018.December.19. 14:56:16
valami készül...
Title: Re: UNIX Enterprise-on
Post by: Trefe on 2018.December.19. 17:44:26
Ez valami emulátor? Mármint a PDP11 feliratból gondolom...
Title: Re: UNIX Enterprise-on
Post by: Povi on 2018.December.19. 20:08:57
Ez valami emulátor? Mármint a PDP11 feliratból gondolom...
Igen, egy PDP-11 emulátor akar lenni, amin a UNIX 6-os verziója fut. Még nem tökéletes, de legalább elindul, és néhány parancs működök is (de pl. az LS-re, vagy a DATE-re kifagy) :-)
Nem gyors, de legalább lassú. A jobb fölső sarokban az utasítás / másodperc látható.
Title: Re: UNIX Enterprise-on
Post by: Povi on 2018.December.19. 20:19:23
ilyen a sebessége:
https://www.youtube.com/watch?v=kmQNGTZrmU0
Title: Re: UNIX Enterprise-on
Post by: balagesz on 2018.December.20. 15:02:40
Annyira nem siet... :-D

Jól gondolom, hogy itt tulajdonképpen a PDP-11 16 bites ISA-t emulálod Z80-nal? Pöpec... ;)
Title: Re: UNIX Enterprise-on
Post by: Zozosoft on 2018.December.20. 18:25:07
Ilyen alapon akkor lehetne XT emulátort is írni?
Title: Re: UNIX Enterprise-on
Post by: Povi on 2018.December.20. 18:31:41
Ilyen alapon akkor lehetne XT emulátort is írni?
bármilyen emulátort lehet írni egy turing teljes gépen :-)
a sebesség az más kérdés...
lásd: 8 bites ATMega-n futtatott Linux (úgy, hogy egy ARM-et emulálnak rajta):
https://hackaday.com/2012/03/28/building-the-worst-linux-pc-ever/
http://dmitry.gr/?r=05.Projects&proj=07.%20Linux%20on%208bit

persze most lelövöd a poént, persze csak elméleti szinten ötletelünk az x86 emun, annak azért borzalmas az opcode dedolása

a PDP-jé viszonylag egyszerű, tök jó ortogonális az utasításkészlete
Title: Re: UNIX Enterprise-on
Post by: Povi on 2018.December.20. 18:32:58
most már megy a DATE és az LS is

kicsit gyorsult is, látszik a "#" prompt-nál (ami angol font az EP-n) már 2500 IPS felett van a sebesség :-) (az MMU használata nagyon lassít)
Title: Re: UNIX Enterprise-on
Post by: Povi on 2018.December.29. 13:28:22
most már megy a DATE és az LS is
azért van még hiba :oops:
a fileméreteknek nem 5-nek kéne lenni... :-)
ahogy nézem, a locv (long output conversion) működik hibásan, pontosabban az egyik ASHC utasítás nem jól állítja a flag biteket, szóval úgy tűnik, az ASHC implementációja lesz hibás (esetleg a ROL, mindkettő bitforgató utasítás), csoda, hogy eddig nagyobb baj nem lett belőle... :-)
bár, a CC (C compiler) nagyon szép fagyást produkál, lehet, hogy ott is ez a hibás utasítás okozza?

magát a file méretet még jól megkapja a locv függvény, az R2 regiszterben, szóval csak a kiírást érinti a hiba

részlet az ls.c-ből, itt történik a file méretének a kiírása:
Code: [Select]
printf("%7s", locv(p->lsize0, p->lsize));
Title: Re: UNIX Enterprise-on
Post by: Povi on 2019.January.02. 19:14:15
azért van még hiba :oops:
a fileméreteknek nem 5-nek kéne lenni... :-)
Valóban az ASHC utasításban volt a hiba...
Önmódosító kód van benne, csak elfelejtettem, hogy az LD (**), DE utasítás 4 byte-os, nem pedig 3, ezért a 2. és 3. bájtot módosítottam a 3. és a 4. helyett. Csoda, hogy nem szállt el előbb... :-)

Most már a helyes fájlméreteket mutatja az LS:
Title: Re: UNIX Enterprise-on
Post by: balagesz on 2019.January.10. 15:46:58
Még a végén használható lesz? :) Amúgy ez még mindig nem teljesen világos: most tulajdonképpen egy PDP-11 emulátort kezdtél írni Z80-ra? Vagy ez valami kész projekt portolása EP-re? Mondjuk az előbbire tippelek, szép feladat. :) A "be/kimeneti eszköz" ott mi volt? Soros porti terminál? Vagy valami bonyolultabbat kell emulálni? (Csupa kérdés... :mrgreen: )
Title: Re: UNIX Enterprise-on
Post by: Povi on 2019.January.10. 17:32:38
tulajdonképpen egy PDP-11 emulátort kezdtél írni Z80-ra?
igen, ez alapján a javascript emulátor alapján, ugyanazt a HDD image-t is használom...
http://pdp11.aiju.de/

persze egyszerűbb lett volna átírni C-be, és azt lefordítani, de úgy nem lett volna kihívás... :-) és kb. 1/4 sebességű lenne ehhez képest :-)