Welcome, Guest. Please login or register.


Author Topic: IS-DOS és CP/M (Read 15506 times)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: IS-DOS és CP/M
« Reply #30 on: 2014.October.28. 21:34:50 »
Tényleg, ha már szóba került az MS-DOS amit innen loptak, ebből a forrásból kiderül a legendás dollár jel?

Szerintem nem loptak, mint irtam a 86-DOS-t vette meg az akkor meg pici ceg Microsoft ami meg egy CP/M szeru dolog volt az igaz, de kb ugy mint az IS-DOS: "csak" kompatbilis vele, de nem kozvetlenul "verrokon" (nem eredeti forrast modositottak/irtak at stb). Vagy igy ertetted te is, hogy csomo DOS-os dolog a CP/M-bol jon? Akkor igen, valoban. A "modern" DOS-okban a masik resz pedig a UNIX-bol jon, ha mar itt tartunk (pl a file alapu I/O is, lasd DOS-ban pl a CON nevu file-t ami valojaban device, UNIX-okban ezek valodi file-ok es a /dev/ konyvtartban vannak, amikor irtam a DOSRUN-t ra is talaltam hog a /dev/ - oho \dev\ - ertelmezesere a DOS is kepes ... vagy vmi hasonlo volt, nem emlekszem pontosan).

Milyen dollar jelre gondolsz? Mint string lezaro karakter? http://www.seasip.demon.co.uk/Cpm/bdos.html

BDOS function 9 (C_WRITESTR) - Output string

Display a string of ASCII characters, terminated with the $ character.

Amugy vicces. Hogy is megy ez DOS-ban? A hires int 21h ugye. Es hanyas funkcio? No lam csak, csak nem a 9-es, mint CP/M-ben is pont :-D

Wikipedia utan:

The MS-DOS API is an API which originated with 86-DOS and is used in MS-DOS/PC DOS and other DOS-compatible operating systems. Most calls to the DOS API are invoked using software interrupt 21h (INT 21h).
[...]
The original DOS API in 86-DOS and MS-DOS 1.0 was designed to be functionally compatible with CP/M. Files were accessed using file control blocks (FCBs). The DOS API was greatly extended in MS-DOS 2.0 with several Unix concepts, including file access using file handles, hierarchical directories and device I/O control.

Szoval mondjuk persze nem veletlen, hogy a CP/M BDOS hivasok hasonloak a DOS-os Int 21h-s funkciokkal, sot az lenne a meglepo, ha nem lennenek hasonloak, ismerve a tortenetet :)
« Last Edit: 2014.October.28. 21:39:13 by lgb »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: IS-DOS és CP/M
« Reply #31 on: 2014.October.28. 21:42:34 »
Gary Kildall mondta:
Quote
Ask Bill [Gates] why the string in [MS-DOS] function 9 is terminated by a dollar sign. Ask him, because he can't answer. Only I know that.

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: IS-DOS és CP/M
« Reply #32 on: 2014.October.28. 21:47:15 »
No igen.

Ugye CP/M (IS-DOS) esetében a funkcióhívás menete:
C regiszterben a funkciókód, többi regiszterben az egyéb paraméterek, majd CALL 0005

DOS esetében pedig AH regiszterbe a funkciókód, többi regiszterben az egyéb paraméterek, majd INT 021H

És ugye a funkciókódok megegyeznek... :-)

Pl. a dollárjelről elhíresült 9-es függvény is: a string írása. Ha jól emlékszem, volt is Gary Kidall-nak valami olyasmi kijelentése, hogy kérdezzék csak meg Bill Gates-t, miért dollárjel a string-lezáró karakter, és nem fog tudni rá válaszolni... :-)
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: IS-DOS és CP/M
« Reply #33 on: 2014.October.28. 21:47:39 »
na, ezt egyszerre sikerült írnunk :-)
*** Speicherplatz zu klein

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: IS-DOS és CP/M
« Reply #34 on: 2014.October.28. 21:51:13 »
Gary Kildall mondta:

Hahahha :) Ez a mondas/story jo, nem ismertem. De amugy teny. Ez mar CP/M-ben is igy volt, amihez MS-nek, Bill Gates-nek stb kozvetlenul nem volt koze, mondhatni "igy orokoltek meg".

Amugy sajna nem hinnem, hogy forrasbol kiderulne (megneztem, nincs semmi comment-ben hogy miert pont a $), mert csak egy osszehasonlitas a CPU szamara, lehetne mas byte is a terminator char (mondjuk azt olvastam, hogy anno jo regen CP/M gondolatanak hajnalan meg ASCII stb sem volt igazan tehat nem volt olyan fogalom hogy 'null character' stb, vmi amugy megjelenithetot kellett valasztani). Sajnos Gary eleg fiatalon meghalt, es ugy tunik a pontos (tippeles mentes) valaszt magaval vitte, legalabbis en hiaba keresgelek, csak tippeket talalni mindenhol.
« Last Edit: 2014.October.28. 22:05:57 by lgb »

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: IS-DOS és CP/M
« Reply #35 on: 2014.October.28. 22:19:37 »
http://www.computerhistory.org/atchm/microsoft-research-license-agreement-msdos-v1-1-v2-0/

Az MS-DOS v1 forraskodja is erdekes, commentek alapjan tenyleg 86-DOS kb :)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: IS-DOS és CP/M
« Reply #36 on: 2014.October.28. 22:27:06 »
Az MS-DOS v1 forraskodja is erdekes, commentek alapjan tenyleg 86-DOS kb :)
Azt már 25 éve is tanultuk a suliban, hogy ők csak megvették és átnevezték :-)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: IS-DOS és CP/M
« Reply #37 on: 2014.October.28. 22:53:54 »
Azt már 25 éve is tanultuk a suliban, hogy ők csak megvették és átnevezték :-)

Na jo, de mas dolog hallani, mint latni is a konkret forrasban :) Nem ugyanaz az elmeny dimenzio ...

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: IS-DOS és CP/M
« Reply #38 on: 2015.January.11. 13:33:00 »
CP/M és MS-DOS alatt is futó program:
http://povi.uw.hu/hello_world/hello_world.html
*** Speicherplatz zu klein

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: IS-DOS és CP/M
« Reply #39 on: 2015.January.11. 17:24:37 »
:) :) Ez jo poen, ilyesmiket regebben en is csinaltam, lehetett sakkozni, hogy egyik CPU-n az opcode-ok ha meg nem is ertelmesek a masikon, legalabb "bajt" ne okozzanak :)

Jut eszembe, a DOS es a CP/M rokonsagat a pelda is remekul mutatja: DOS es CP/M alatt is a 9-es funkciot hasznalod :) Nyilvan az emlitett dollar jeles dologrol nem is beszelve. Mint mar szo volt rola mashol regebben, kar, hogy emberunk magaval vitte a titkat a dollar jel kapcsan :( Persze, elsosorban a halala kapcsan sajnalkozom, mielott valaki felreerti ...
« Last Edit: 2015.January.11. 20:15:27 by lgb »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: IS-DOS és CP/M
« Reply #40 on: 2016.May.31. 22:45:00 »
Egy érdekes apróság mehet az IS-DOS programok gyűjteményébe:
8080 és Z80 assembly források konvertálása ide-oda.

Ha jól emlékszem Povi szenvedett már 8080-as cuccal. Én most futottam bele ilyenbe, és agyfrászt kaptam a 8080-as utasításoktól :twisted:

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: IS-DOS és CP/M
« Reply #41 on: 2016.May.31. 22:53:21 »
Példa arra, hogy miről van szó.

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: IS-DOS és CP/M
« Reply #42 on: 2016.June.01. 17:19:02 »
Én most futottam bele ilyenbe, és agyfrászt kaptam a 8080-as utasításoktól :twisted:

Ja, hát elég olvashatatlan számomra is a 8080 szintaktika... :-)

És egyébként létezett 8008 -> 8080 konverter
és 8080 -> 8086 konverter is :-)

az utóbbival meg a CP/M-re írt dolgokat tudták átvinni MS-DOS-ra :-)

*** Speicherplatz zu klein

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: IS-DOS és CP/M
« Reply #43 on: 2016.June.02. 11:54:40 »
Egy újabb CP/M érdekesség, pláne, hogy eddig az egész interneten nem volt megtalálható!

GTEK INC CPEmulator

'a' Studió, német EP cég vonalon maradt fent, és került hozzám :-)

Ez egy olyan program, ami a CP/M programokból készít PC-n, DOS alatt futtatható .COM fájlt. Nyilván tartalmaz egy Z80 emulátort, és valamennyi CP/M emulációt.

Elsőként az ezzel készült PC-s programfájlokkal találkoztam, és az abban található copyright szöveg alapján megtaláltam a cég honlapján a leírást is.
Így kiderült, hogy az ömlesztett cuccok között megtalálható átalakítást elvégző BIND.COM, ill. PC-sített fájlból az eredeti CP/M fájlt kiszedő UNBIND.COM is.

A cég honlapjáról kiderül, hogy 2005-ben elmosta őket a Katrina hurrikán, de példamutatóan mai napig elérhetővé teszik a termékeik dokumentációját!

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: IS-DOS és CP/M
« Reply #44 on: 2016.June.02. 12:24:45 »
És, hogy miért is hoztam fel az előbbi cuccot?
Azért mert rá akarom venni Lgb-t, hogy írjon egy hasonlót, modern kiadásban :oops:

A történet ott kezdődik, hogy az EXOS, EXDOS, IS-DOS mint Microsoft Macro-80 Assemblerben készült (CP/M alatt M80.Com és L80.COM).
Ebben olyan bonyolult szintaktikák vannak, hogy nyugodtan nevezhetjük külön programnyelvnek, az IS fiúk lehetőségeket maximálisan kihasználták.

EP-n ISDOS alatt sikerült is lefordítani ezeket, de valami förtelmesen lassúak, még 3000%-on futó emulátorral, és RAMDISK használattal is jó pár percig tart egy fordítás.
Valódi gépen valószínűleg több óra is lenne (majd egyszer lemérem :-) ). Van olyan rész, ahol commentben bele is van írva, hogy csak ez a fájl 20 percig fog tartani.

Néztem, de ezeknek a programoknak nem készült PC-s verziója, a PC-s Microsoft Macro Assembler csak x86-ot tud.
Sőt nagyon úgy tűnik akkoriban egyáltalán nem volt PC-s Z80 assembler, ezért is vesződtek Brucék PC-s Z80 kártyákkal, amin mivel valódi Z80-on futott a cucc, pont olyan lassan futott mint ahogy most EP-n.
A németeknek/magyaroknak meg nem futotta Z80-as kártyára, ezért volt ez a szoftveres CP/M emuláló dolog. (Mondjuk az is érdekes kérdés, hogy egy 4.77 MHz-es XT-n futó emulált Z80 milyen gyors lehet...) Mondjuk ők teljes fordítást nem is csináltak, csak kisebb részeket.

Most az IS-DOS alatti fordítással az a baj, hogy FILE: nem használható, mindent rá kell tenni floppy image-re. Onnan aztán be a RAMDISK-be, meg a végén ki a RAMDISK-ből. És még így is bazi lassú, hiába a 2-3000%-os emulátor sebesség.

Az előbbi CP/M emulátorral meg az a baj, hogy mai x64-es Windowsok alatt nem fut, csak DOSBOX-ban, ez is macerás, meg lassú. De a legnagyobb gond, hogy valahogy nem tökéletesen működik az L80 vele, nem bírja az EXDOS-t összerakni, mert kb az 5. fájlnál kiakad, hogy nincs ilyen file... gyanítom, hogy túl kevés megnyitott fájlt tud kezelni a CP/M emuláció.

Itt jön a kérés Lgb-hez :ds_icon_cheesygrin:
Tudnál-e olyan lebutított XEP128-at csinálni, ami alkalmas az M80 és L80 futtatására:
-Z80 emuláció mindenféle időzítés nélkül, fusson olyan gyorsan ahogy csak bír
-64K CP/M memória kell, pár CP/M változó beállításával
-program betöltve 100h-ra, ha 0000h-ra lép az kilépés. 0005h-ös BDOS hívásokat kell trapolni, és emulálni
-hívások: írás karakteres képernyőre, billentyűzet olvasás, fájl megnyitás/lezárás/törlés, szekvenciális írás/olvasás 128 bájtos blokkokban (Az M80-ban, majd még az L80-at is megnézem, van-e valami extra még)
-a parancssor CP/M-es része átmásolva 0080h-00FFh-ra, hosszbájttal.
-Windowsos parancssoros EXE, képernyőre kiírás simán csak a "DOS" ablakban