Enterprise Forever

:HUN => Programozás => Topic started by: lgb on 2014.June.28. 00:02:36

Title: IS-DOS és CP/M
Post by: lgb on 2014.June.28. 00:02:36
Eppen CP/M-et tanulmanyozok, es rajottem, hogy valamit nem ertek (nem csak ezt, de most maradjunk a temanal). Amennyire en tudom/latom, a CP/M EP-n egyet jelent az IS-DOS-al. Azonban kozelebbrol megvizsgalva az IS-DOS nem igazan tunik eredeti CP/M-nek. Akkor viszont mi? Az Intelligent Software altal nullarol irt de valamennyire CP/M kompatibilis OS, vagy a Digital Research erdeti CP/M-hez volt engedelyuk modositani? Amugy irtam egy egyszeru CP/M programot, IS-DOS alatt 2.2-es CP/M verziot allit magarol az IS-DOS.

Miert gondolom, hogy nem "eredeti" CP/M az IS-DOS? Pl azert mert annak a disk formatuma nem kompatibilis az MS-DOS-szal, amit viszont az EXDOS hasznal, es amit IS-DOS is tud, illetve IS-DOS alol elerhetoek EXOS parancsok, ami sima CP/M CCP-jevel szerintem nem mehetne. A CP/M nagyreszt ugye all a BDOS illetve a BIOS nevu reszbol. A lenyege pont az lenne, hogy a BDOS platformfuggetlen, elvileg barmilyen Z80-as (jobban mondva 8080 is eleg ...) gepre atviheto es megy, a hw kozeli reszek lekezelese a BIOS feladata ami viszont mar platformfuggo, azt szoktak CP/M portolasnal uj gepre irni, a BDOS-t bekeben hagyjak.

Na itt jon a bokkeno: a CP/M disk formatum kezelese viszont a BDOS-ban van! BIOS-ban mar csak olyan van, hogy sector olvasas stb. Tehat az IS-DOS nem tartalmazhatja az "eredeti" BDOS-t, hanem igen erosen modositott verzio kell (vagy nullarol irt amde BDOS API-val kompatibilis uj implementacio), azaz nem az "eredeti" CP/M.

Ja, meg arrol nem is beszelve, hogy nekem ugy remlik, hogy CPM2.2-ben meg konyvtar-szerkezet fogalma sem volt :)

Tud valaki errol a temarol reszleteket?
Title: Re: IS-DOS és CP/M
Post by: Zozosoft on 2014.June.28. 10:40:53
Szerintem ez egy saját CP/M kompatibilis rendszer. Sőt a leírás alapján MSX-DOS kompatibilis is.
Title: Re: IS-DOS és CP/M
Post by: lgb on 2014.June.29. 16:27:57
Ha valakit erdekel, megprobalkoztam azzal, hogy az "erdeti" CP/M 2.2 BDOS-ahoz irjak egy EP128 BIOS-t es igy fusson EP-n, csak hogy jobban megertsem a CP/M mukodeset. Az elozetes eredmeny lathato a csatolt zip-ben, az epcpm maga a program (ez tartalmazza az eredeti BDOS-t, az altalam irt CP/M CBIOS-t EP-hez, es a loader-t ami szepen mindent a helyere tesz, stb), a diskimage nevut pedig CPMDISK.IMG neven az F: meghajtora kell tenni (ez most csak lustasag miatt van igy bedrotozva). Azert kell disk image, mert a CP/M lemezkezelese tok mas mint az MS-DOS/EXDOS tehat azt kozvetlenul nem tudna olvasni.

Persze, tul sokra nem szabad szamitani, az IS-DOS nagysagrendekkel jobb mint az eredeti CP/M ugye :) Bug is van benne egy rakas, neha nekem fagy az egesz, es a terminal kezeles is csapnivalo, pl visszatorolni sem lehet igazan ... Oszinten, az egesz project csak arra jo, hogy CP/M-be kicsit beleassam magam, mivel kell nekem mas (nem EP128-s) project-hez, hogy megertsem a mukodeset valamennyire legalabb.
Title: Re: IS-DOS és CP/M
Post by: Zozosoft on 2014.June.30. 22:53:59
MICROTEAM csinált már hasonlót :-)
[attach=1]

Mondjuk nem tudom milyen praktikus értelme van :oops: , azonkívül hogy ugyanaz a CP/M tud futni, mint amit Spectrumra is csináltak.
Viszont EP-s rendszerrel nem látok kommunikációs lehetőséget, DOS lemezt nem olvas, a CP/M-től meg még le is fagy az EXDOS egy bug miatt, 1024 bájtos szektorok túlcsordulnak az 512 bájtos pufferből...
Title: Re: IS-DOS és CP/M
Post by: lgb on 2014.July.01. 09:31:55
Quote from: Zozosoft
MICROTEAM csinált már hasonlót :-)

Ahhh. na mind1, en ugy se a hasznalhatosag kedveert probalkoztam vele, mint irtam :)

Quote
Mondjuk nem tudom milyen praktikus értelme van :oops: , azonkívül hogy ugyanaz a CP/M tud futni, mint amit Spectrumra is csináltak.
Viszont EP-s rendszerrel nem látok kommunikációs lehetőséget, DOS lemezt nem olvas, a CP/M-től meg még le is fagy az EXDOS egy bug miatt, 1024 bájtos szektorok túlcsordulnak az 512 bájtos pufferből...

Sok ertelme nincs, max ha valakinek kompatibilitasi gondja akad az IS-DOS-szal, mivel az nem "eredeti" CP/M, lehet azert ilyen jellegu problema, ahogy Bruce is irta, ha jol emlekszem. Amugy elvileg az eredeti BDOS modositasa nelkul is lehetne csunya trukkel olvashatova tenni kvazi pl EXDOS altal hasznalt diskeket ("virtualisan", on-the-fly CP/M szektor szamokat "sorsolni", plusz a directory teruletet szimulalni, stb), de nyilvan ez sokkal de sokkal rondabb meg igy is, mint az IS-DOS, es ettol tovabbra sem lesznek konyvtarak, mivel az CP/M 2.2-ben nem volt ;) CP/M3 mas tema. de bonyolultabb is. Mar amennyire en most jelenleg ertek a CP/M-hez :) Most eppen egy Linux alatt futo CP/M-em lett, ott is megoldottam a dolgot (persze ehhez ott kellett egy software Z80/8080 emulator is, ami nyilvan EP eseteben nem kell).

A masik gond a CP/M-el: ahhoz kepest, hogy sajat filernedszere van, megse tudod CP/M-es gepek kozott cipelgetni, mert mindegyik mas :( Marmint sav/szektor szamok, mindenfele logikai szektor eltoltas, stb, szo szerint tobb szaz kulonbozo van.

No meg, azt se felejtsuk el, hogy az EXOS/EXDOS szerintem sokkal szebb es modernebb API mint ami CP/M-nel van. A CP/M elonye viszont az lehet, hogy Z80 (vagy 8080) alapu gepeknel adott egy csomo software, ami igy hasznalhatova valik az adott gepen (igaz EP-nel ez kevesbe szempont, mert az IS-DOS-al - gondolom - legtobb reszuk megy).
Title: Re: IS-DOS és CP/M
Post by: Zozosoft on 2014.July.01. 09:42:56
Quote from: lgb
A masik gond a CP/M-el: ahhoz kepest, hogy sajat filernedszere van, megse tudod CP/M-es gepek kozott cipelgetni, mert mindegyik mas :( Marmint sav/szektor szamok, mindenfele logikai szektor eltoltas, stb, szo szerint tobb szaz kulonbozo van.
Én a TVC-s UPM-et nézegettem, úgy láttam, hogy a lemezre csak úgy be vannak hányva az adatok, magán a lemezen semmi infó nincs, hogy mi hol merre... ez így van a többi CP/M-ben is?


Quote
igaz EP-nel ez kevesbe szempont, mert az IS-DOS-al - gondolom - legtobb reszuk megy
[/quote]
Én nem találkoztam olyan programmal ami ne ment volna. De Lacika többet nézett végig, ő talán.

Az izgatott egy kicsit mindig, hogy mi az, hogy nekünk csak 2.2-es rendszer van, amikor van már 3-as is :-)
Title: Re: IS-DOS és CP/M
Post by: lgb on 2014.July.01. 11:57:31
Quote from: Zozosoft
Én a TVC-s UPM-et nézegettem, úgy láttam, hogy a lemezre csak úgy be vannak hányva az adatok, magán a lemezen semmi infó nincs, hogy mi hol merre... ez így van a többi CP/M-ben is?

Hat ezt nem tudom, hogy erted. Amennyire tudom (bar CP/M lemezkezeleseben guru nem vagyok, az a diskimage amit hasznalok nem az en munkam, igy szereztem "keszen" egy image file-kent csak hasznalom, es amug az mbasic.com szerintem hibas is rajta, ugy tunik) a CP/M lemezkezelese ugy mux, hogy van egy konyvtar terulet, ahol lehet Xdb file bejegyzes max (pl 64), alkonyvtarak stb nincsenek. Az emlitett bejegyzesben van nyilvan a file neve (8+3 szokasos), meg par fura dolog (pl az, hogy 7 biten van tarolva a filenev, es a legfelso - nem hasznalt - bitek jelentenek valamit, pl hogy hidden/system/stb, ezek mellett a CP/M tamogat tobb "usert" szammal azonositva, es lehet kozottuk valtogatni, egy adott user a saja file-ait latja, bar mondjuk tul sok vedelem nincs persze, USER paranccsal lehet valtani), de ami a lenyeg: maga az emlitett konyvtar bejegyzes tartalmazza a szaktorokat is, ahol a file elterul szepen sorban (azaz nincs kulon FAT vagy hasonlo struktura). Ez azzal is jar, hogy 16K-nal nagyobb file mar trukkos (hogy oszinte legyek, meg nem mondom miert pont 16K-nal, elvileg nincs is annyi byte se az emlitett bejegyzesben h arra eleg legyen, de most inkabb az elvet magyaraznam csak), az ugy mux, hogy un extent-et hasznal, azaz egy plusz directory bejegyzest foglal le ehhez, es ott sorolja fel. Illetve a CP/M 2 kornyeken fixen 128 byte egy sector, de ha jol tudom, 3-asnal mar allithato, hogy nagyobb szektormeretben ertendoek ezek az adatok (hasonloan a FAT cluster fogalmahoz, ha szabad pongyolan fogalmazni). Szoval azert latszik rajta, hogy a CP/M nem mai technika, lehet, regen a 16K soknak tunt :D Eredeti CP/M alatt (IS-DOS passz, hogy mit csinal erre) kiadhatod pl a STAT *.* parancsot, akkor mutatja, hogy melyik file mit foglal. Illetve hasznos parancs meg pl: STAT VAL: vagy a STAT DSK:

Ezek mellett meg szokott lenni fenntartott track a disk elejen, ami "nem resze" az FS-nek, onnan szokott pl CP/M bootolni.

Ennel sokkal tobbet a CP/M lemezkezeleserol jelen pillanatban (meg ...) nem tudok :) Az erdeti CP/M BDOS-t konnyu portolni anelkul, hogy ismerned a filerendszeret, mivel az a BDOS-ban van, ami az adott gep hw szintu fuggosege, az mind a CBIOS-ban van kulon, amit neked kell megirni, ha portolni akarod valamire a CP/M-et. A CBIOS-ban meg marcsak olyan van pl, hogy szektor olvasas, iras, track/sector szam beallitas. Illetve meg egy dolog van CBIOS-ban: vissza kell adnod BDOS-nak egy tablazat kezdocimet, amiben egy rakas parameter van (pl track-ek szama, meg ilyenek). Ezek alapjan mindent a BDOS csinal. Ezert nehezkes, hogy CP/M-el mondjuk egy FAT filerendszert olvass, mert ahhoz a BDOS-t kene ujrairni (plusz a low level Cp/M util-ok persze nem fognak mukodni ezek utan, de ez kevesbe fontos imho, ha massal tudsz formatalni stb CP/M-en kivul), gondolom ezt csinaltak pont az IS-DOS kapcsan a fejlesztok. Amugy ahogy latod, a CP/M filozofiajahoz hasonlo azert az EXDOS is: pl amikor SD kartya vagy IDE hdd illesztot csinalsz, eleg az egyszeru block orientalt I/O-t megirnod, maga a filerendszer mar az EXDOS-ban van lekezelve, az max egyszeru muveletekre hivogatja a te cuccod aztan. EXDOS-t se lenne konnyu megtanitani (ahogy CP/M-et sem) mas filerendszer kezelesere, mint amire terveztek, meg a FAT16 is trukkos ezek szerint :) arrol nem is beszelve, ha vmi tok alien fs-t szeretnel :)

Bar pl az is mindig erdekelt, hogy az EXDOS-ban nem modularis-e az FS kezeles, azaz nincs-e olyan felulete (vagy ez lenne a FISH?) hogy open file, close file, seek file, stb, es igy elvileg azokat a belepesi pontokat "lenyulva" lehetne olyasn disk-et irni/olvasni ami egyaltalan nem FAT formatumu (ez erdekes lehetne pl az amugy jelenleg felbehagyott JSEP projectemnel, hogy EXDOS ne disk image-t lasson, hanem pl egy FTP konyvtar tartalmat file-onkent marmint, de mint disk-kent gondolkodjon rola valahogy, pl a H: meghajtora egy utillal azt mondani hogy az valojaban az ftp.akarmi.hu-n levo ftp-s tarhely tartalma, ez persze csak egy pelda volt).

Quote
Az izgatott egy kicsit mindig, hogy mi az, hogy nekünk csak 2.2-es rendszer van, amikor van már 3-as is :-)

Az IS-DOS lehet, hogy CP/M 2.2-vel kompatibilis ugymond, de valojaban pl latsz konyvtarakat stb, erzesem szerint nem nyernel sokat egy CP/M 3-assal sem, mert az IS-DOS amugy is combos kis darab :)

Aztan bocsanat am, tevedhetek is jelen hozzaszolasaim kapcsan, mivel 1-2 napja foglalkozok csak CP/M-el, konkretan a hetvege ota :)
Title: Re: IS-DOS és CP/M
Post by: Zozosoft on 2014.July.01. 12:36:56
Quote from: lgb
Hat ezt nem tudom, hogy erted.
Úgy, hogy semmilyen adat nincs rajta ami alapján meg lehetne állapítani, hogy ez UPM lemez, ill, hogy 1 vagy 2 oldalas, 40 vagy 80 sávos, meg ilyenek...
Ebből következik, hogy az UPM se tudhatja ellenőrizni, hogy az a ő lemeze...
Title: Re: IS-DOS és CP/M
Post by: lgb on 2014.July.01. 12:47:34
Quote from: Zozosoft
Úgy, hogy semmilyen adat nincs rajta ami alapján meg lehetne állapítani, hogy ez UPM lemez, ill, hogy 1 vagy 2 oldalas, 40 vagy 80 sávos, meg ilyenek...
Ebből következik, hogy az UPM se tudhatja ellenőrizni, hogy az a ő lemeze...

Hmm, ezt nem tudom, de en arra tippelek, hogy a CP/M nem is feltetlen tarolja lemezen annak "geometriajat" hanem a CP/M-be van beledrotozva, hogy azon a rendszeren o hogy akarja hasznalni. Raadasul sajnos ez baromira valtozik CP/M es CP/M kozott (ahany hw azaz CBIOS annyifele "fizikai" formatum), igy igazabol egy CP/M disk-et nem is lehet igazan atvinni egy masik CP/M-es gepre :( Van lunux ala egy cpmtools nevu cucc amivel CP/M diskeket lehet kezelgetni, csak ott 32db formatum van, es neked kell beallitani, melyiket akarod hasznalni pontosan ... Persze, tevedhetek is, illetve pl CP/M2 es 3 is elegge elter, 3-asban lehet, ez mar maskepp van megoldva, nem tudom.
Title: Re: IS-DOS és CP/M
Post by: Zozosoft on 2014.July.01. 13:10:40
Quote from: lgb
Hmm, ezt nem tudom, de en arra tippelek, hogy a CP/M nem is feltetlen tarolja lemezen annak "geometriajat" hanem a CP/M-be van beledrotozva, hogy azon a rendszeren o hogy akarja hasznalni.
Na erre írtam ezt: "a lemezre csak úgy be vannak hányva az adatok, magán a lemezen semmi infó nincs, hogy mi hol merre" :-)
Title: Re: IS-DOS és CP/M
Post by: lgb on 2014.July.01. 13:35:01
Quote from: Zozosoft
Na erre írtam ezt: "a lemezre csak úgy be vannak hányva az adatok, magán a lemezen semmi infó nincs, hogy mi hol merre" :-)

Jol van na, nem vagyok hulye, csak nehez a felfogasom :) [ez elozo mondat vicc akart lenni, mielott vki felreerti - bar a human interakciokon alapulo felfogadi kepessegem tenyleg nem tul magas imho ...] Azt hittem ugy erted, hogy nem erted, hogy pl FAT nelkul honnan tudja hol vannak az adott file "darabjai" vagy hasonlo, most mar ertem, bocsi! :)
Title: Re: IS-DOS és CP/M
Post by: lgb on 2014.July.01. 21:16:41
Most talaltam:

http://www.seasip.demon.co.uk/Cpm/formats.html (http://www.seasip.demon.co.uk/Cpm/formats.html)

itt is azt irjak, hogy sajna disk-en nincs tarolva igazan CP/M eseten, hogy ki fia borja ez a disk, max csak nehany gepen oldottak meg rendesen, de sajna nem jellemzo.
Title: Re: IS-DOS és CP/M
Post by: Lacika on 2014.July.01. 22:24:18
Quote from: Zozosoft
Én nem találkoztam olyan programmal ami ne ment volna. De Lacika többet nézett végig, ő talán.
Elvileg minden program fut, viszont a különböző CP/M-kompatibilis gépeken más-más vezérlőkódokkal működik a képernyőkezelés. Ezért azon programok, melyeket nem lehet egyedileg bekonfigurálni, kusza képernyőn értelmezhetetlen katyvaszt jelenítenek meg.
Title: Re: IS-DOS és CP/M
Post by: Zozosoft on 2014.July.01. 22:35:40
Egyébként ez a könyv (http://konyvbarlang.hu/utazas/utleirasok/52596.html) meg van nekem, valaki ráérő beszkennelhetné :oops:
Title: Re: IS-DOS és CP/M
Post by: gflorez on 2014.July.02. 00:18:36
Here (http://www.cpm.z80.de/manuals/archive/index.htm) I've found some CP/M manuals.
Title: Re: IS-DOS és CP/M
Post by: lgb on 2014.July.02. 12:38:19
Quote from: Lacika
Elvileg minden program fut, viszont a különböző CP/M-kompatibilis gépeken más-más vezérlőkódokkal működik a képernyőkezelés. Ezért azon programok, melyeket nem lehet egyedileg bekonfigurálni, kusza képernyőn értelmezhetetlen katyvaszt jelenítenek meg.

Ez erdekes, a sajat CBIOS irasnal en elmelkedtem is, hogy megis mit kene kezdenem a vezerlo karakterekkel, de a vegen ugy dontottem hogy kozvetlenul a VIDEO: csatira ranyomom ahogy jott, ez igy biztos nem tul jo, de kiserletnek elmegy :) Mondjuk IS-DOS-ban nincs olyan amugy, hogy vmi mapping table, mondjuk gondolok itt pl Linux/UNIX-ok eseten beallithato, hogy milyen terminal tipuskent viselkedjen a cucc, IS-DOS-nal ez nem allithato? Ha mar a konkret CP/M programban pl tfh nem ... EGyaltalan miket szokas hasznalni CP/M-ben azt se tudom, arra talaltam utalast, hogy a VT52 szabvanyt hasznaljak CP/M-ben idoneknt.
Title: Re: IS-DOS és CP/M
Post by: lgb on 2014.July.03. 20:27:50
Quote from: Lacika
Elvileg minden program fut, viszont a különböző CP/M-kompatibilis gépeken más-más vezérlőkódokkal működik a képernyőkezelés. Ezért azon programok, melyeket nem lehet egyedileg bekonfigurálni, kusza képernyőn értelmezhetetlen katyvaszt jelenítenek meg.

Jut eszembe, tudsz adni jo par (minnel tobb, annal jobb) olyan CP/M programot, ahol vmi speci kepernyokezeles van (nem sima text, vezerolodokkal tuzdelve, ami tehat ugye problemas lehet), az is erdekelne, hogy ahol lehet allitani programban, ott miket ajanl fel megis, es hasonlok. Nagyon szepen koszi, elore is!
Title: Re: IS-DOS és CP/M
Post by: Povi on 2014.July.04. 09:45:16
érdekes Bruce válasza, akkor ezek szerint az IS-DOS-ban nincs egy sornyi eredeti CP/M kód, hanem nulláról irtak egy kompatibilis OS-t?
Kb. mint anno az IBM-PC esetében a különböző BIOS gyártók irták a saját BIOS-t, de PC-kompatibilisre?
Title: Re: IS-DOS és CP/M
Post by: lgb on 2014.July.04. 11:55:41
Quote from: Povi
érdekes Bruce válasza, akkor ezek szerint az IS-DOS-ban nincs egy sornyi eredeti CP/M kód, hanem nulláról irtak egy kompatibilis OS-t?
Kb. mint anno az IBM-PC esetében a különböző BIOS gyártók irták a saját BIOS-t, de PC-kompatibilisre?

Nem teljesen, mert PC eseten a BIOS nem maga az OS, az a DOS ugye. Amugy CP/M-nel a szitu hasonlo: maga a DOS is "platformfuggetlen" elvileg, ha amugy a szokasos x86 CPU stb adott, es BIOS-t hivogatja, szoval a BIOS mogotte lecserelheto elmeletileg. Ez pont igy van CP/M-el is, ott is BIOS-nak (neha CBIOS-nak) hivjak azt a reszt, ami hw fuggo, es ami PC-n maga a DOS, az CP/M eseten a BDOS nevet viseli, ez utobbiba nem szoktak belenyulni, ha uj hw-re kell portolni a CP/M-et, eleg egy CBIOS-t irni es kesz. Amde, ugye az IS-DOS nem ilyen, ott a BDOS sincs meg, hanem tenyleg nullarol irtak egy OS-t, ugy tunik. Csupan peldad azert nem volt pontos, mert ott azt irod, hogy mint PC-n amikor irtak sajat BIOS-t ... A peldad akkor lenne pontos, ha azt mondanad, hogy egy adott gyarto irt egy uj DOS-t is, nem csak BIOS-t ... Ilyen persze van, lasd DR-DOS, FreeDOS, stb ... Nem csak MS-DOS van.
Title: Re: IS-DOS és CP/M
Post by: Povi on 2014.July.04. 15:10:06
Quote from: lgb
Nem teljesen, mert PC eseten a BIOS nem maga az OS, az a DOS ugye. Amugy CP/M-nel a szitu hasonlo: maga a DOS is "platformfuggetlen" elvileg, ha amugy a szokasos x86 CPU stb adott, es BIOS-t hivogatja, szoval a BIOS mogotte lecserelheto elmeletileg. Ez pont igy van CP/M-el is, ott is BIOS-nak (neha CBIOS-nak) hivjak azt a reszt, ami hw fuggo, es ami PC-n maga a DOS, az CP/M eseten a BDOS nevet viseli, ez utobbiba nem szoktak belenyulni, ha uj hw-re kell portolni a CP/M-et, eleg egy CBIOS-t irni es kesz. Amde, ugye az IS-DOS nem ilyen, ott a BDOS sincs meg, hanem tenyleg nullarol irtak egy OS-t, ugy tunik. Csupan peldad azert nem volt pontos, mert ott azt irod, hogy mint PC-n amikor irtak sajat BIOS-t ... A peldad akkor lenne pontos, ha azt mondanad, hogy egy adott gyarto irt egy uj DOS-t is, nem csak BIOS-t ... Ilyen persze van, lasd DR-DOS, FreeDOS, stb ... Nem csak MS-DOS van.
Igen, igen, tudom, hogy a BIOS az nem maga OS, csak rémlik, mintha olvastam volna valahol olyat, hogy mivel teljesen nyilt volt a PC felépitése, ezért a különböző alaplapgyártók (akkoriban PC-klónoknak hivták a nem eredeti IBM gépeket, ha jól emlékszem) a BIOS működésének tökéletes másolatával készitettek saját BIOS-t, mert ugyebár az eredeti kódot nem másolhatták volna le, az már lopás lett volna.
Title: Re: IS-DOS és CP/M
Post by: lgb on 2014.July.04. 20:27:56
Quote from: Povi
Igen, igen, tudom, hogy a BIOS az nem maga OS, csak rémlik, mintha olvastam volna valahol olyat, hogy mivel teljesen nyilt volt a PC felépitése, ezért a különböző alaplapgyártók (akkoriban PC-klónoknak hivták a nem eredeti IBM gépeket, ha jól emlékszem) a BIOS működésének tökéletes másolatával készitettek saját BIOS-t, mert ugyebár az eredeti kódot nem másolhatták volna le, az már lopás lett volna.

Jah, de az IS-DOS tovabb ment, ok nem csak BIOS-t irtak, hanem BDOS-t is, sokkal durvabb :) Raadasul plusz pont nekik ugye, hogy probaltak (sikeresen) az EXDOS kepessegeivel felturbozni a dolgot, ill a CPM sajat FS formatumat sem eroltettek, lehet konyvtarakat is hasznalni, stb.
Title: Re: IS-DOS és CP/M
Post by: Povi on 2014.October.28. 09:09:06
Letölthető a legendás CP/M operációs rendszer teljes forráskódja
http://prog.hu/hirek/3677/Letoltheto+a+legendas+CP+M+operacios+rendszer+teljes+forraskodja.html
Title: Re: IS-DOS és CP/M
Post by: lgb on 2014.October.28. 11:25:56
Letölthető a legendás CP/M operációs rendszer teljes forráskódja
http://prog.hu/hirek/3677/Letoltheto+a+legendas+CP+M+operacios+rendszer+teljes+forraskodja.html

Igen, bar ez csak a hivatalos dolog, tekitnve, hogy nekem mar regen megvolt a forrasa (az alapjan jatszottam azzal, hogy EP-n futtathatova tettem - mas kerdes, hogy ertelme nem sok mert az IS-DOS "nemileg" jobb ennel), amit allitolag jotet lelek memoria kidump-olasa es nemi disasm utan allitottak elo :) Bar nyilvan van annak erteke, ha az "eredeti forrasbol" van meg, comment-ekkel, meg minden, az is igaz.
Title: Re: IS-DOS és CP/M
Post by: endi on 2014.October.28. 13:48:48
amúgy valaki felvilágosíthatna hogy mitől legendás a cpm.
én kb semmit se hallottam róla annak idején meg most se
jó tudom google...
Title: Re: IS-DOS és CP/M
Post by: lgb on 2014.October.28. 16:30:45
amúgy valaki felvilágosíthatna hogy mitől legendás a cpm.
én kb semmit se hallottam róla annak idején meg most se
jó tudom google...

Hat mert az volt _az_ operacios rendszer kb, hacsak persze nem nagygepes kornyezetrol beszelunk. A kulonbozo DOS szeru rendszerek is rengeteg CP/M fogalmat vittek tovabb, pl a CP/M talalta ki a meghajtobetujel fogalmat (a konyvtarszerkezetet viszont a UNIX, ahol egy fa-struktura minden ma is, nincsenek meghajtobetujelek. A DOS fogta es kisse osszekotyvasztotta a kettot, lettek meghajtobetujelek es konyvtarszerkezet is) es sok mast is (pl a 0100h-nal kezdodo app kod kb megfelel a DOS .com fogalmanak, vagy az FCB funkciokat - File Control Block, stb). Vegulis az IS-DOS is CP/M compatible rendszer, a Commodore 128-ba is azert kerult Z80 is, hogy menjen a CP/M (erdendoen amugy intel 8080-ra van a CP/M, de mivel Z80 felulrol compatible vele, nincs gond), illetve ezert lehetett venni meg C64-hez is Z80-as cartridge-et. Az mas kerdes, hogy a Commodore-nak az kevesbe sikerult jol, mivel nem igazan tudta osszehozni a dolgokat, C128-ban a Z80 is kb anni wait state-et kap, mintha 2MHz-en kullogna ...

Sok ilyen story van, nezzuk pl a DR-DOS-t, ami a  Concurrent PC DOS-bol szarmazik, ami pedig a CP/M-86 -bol (x86 CPU-ra portolt CP/M). MS-DOS eseten asszem a 86-DOS-t vasarolta meg a Microsoft, es azt irogatta tovabb, ez utobbi ugyan nem kozvetlen CP/M szarmazek, am felepiteseben CP/M kompatibilitas megtartasa szempont volt meg az elejen. Voltakepp, aminek a neveben benne van hogy DOS, az szegrol-vegrol CP/M szarmazek, lehetne viccesen mondani.

Amugy vhol anno olvastam (de lehet urban legend?) hogy amikor jott az IBM PC, az IBM eloszor CP/M-et akart volna ra (gondolom vmi CP/M-86 nyilvan), amde allitolag nem tudott megegyezni a Digital Research-el, es itt jott kepbe egy kis ceg (Microsoft ...), aki rakapott a bizniszre (aki - mint fentebb irtam - a 86-DOS-t vette meg ehhez alapnak, aminek szinten van vmi koze a CP/M-hez viszont). Sot, talan az MS-DOS 1.0 az kvazi ugyanaz volt (?) mint a 86-DOS.

Az MSX-DOS is erdekes, mert ott meg kb megy egy lepes, az MS-DOS/86-DOS-t akartak "Z80-asitani" (kb "MS-DOS for Z80") ami meg ugye a 8080-rol x86-asitott volt pedig elotte :) Zozo is irta, hogy az IS-DOS EP-n az elvileg CP/M (v3?) es MSX-DOS comaptible rendszer is egyben, plusz nem kell lemondani mas dolgokrol sem amit az ember EP-n megszokott es egy "tiszta" CP/M port eseten nem lenne meg. Szoval az IS-DOS valoszinuleg nem kozvetlen CP/M atirat, hanem egy uj rendszer, amit CP/'M (es MSX-DOS) kompatibilisre irtak.

Aztan volt am mar multiask CP/M is a vegen, az volt talan az MP/M vagy mi. Eleg szerteagazo ez a vilag, bar oszinten, a CP/M-es korszakbol en is kimaradtam, max igy utolag erdekel a dolog ...
Title: Re: IS-DOS és CP/M
Post by: endi on 2014.October.28. 17:18:29
aha köszi a felvilágosítást

viszont: abban a "kisgépes" világban ahol én/mi mozogtunk, mennyire volt szerepe a cp/m-nek?
gondolom kb semennyi
és ha itt nem, akkor hol?
Title: Re: IS-DOS és CP/M
Post by: lgb on 2014.October.28. 19:00:47
aha köszi a felvilágosítást

viszont: abban a "kisgépes" világban ahol én/mi mozogtunk, mennyire volt szerepe a cp/m-nek?
gondolom kb semennyi
és ha itt nem, akkor hol?

Oszinten? Nem tudom :) Engem inkabb mint technikai erdekesseg foglalkoztat, utolag, keveset tudok rola, hogy pontosan mikor, pontosan kik es hogyan hasznaltak anno, a torteneterol is max annyit tudok csak kb, amit fentebb "eloadtam".

De pl saccolom, hogy itt a forumon is elokerulo hisoft pascal is CP/M program eredendoen, es nyilvan rengeteg ilyen van, max az atlag EP-s szamara "IS-DOS"-osnak van minositve :) De pl a wordstar szovegszerkeszto is CP/M software volt eredetileg. Vagy a dBase is ... http://www.retroarchive.org/cpm/ (http://www.retroarchive.org/cpm/) Itt van kis gyujtmeny.

Amugy persze ez foleg inkabb ilyen munka/uzleti celu stb celoknal volt nepszeru, gondolom kevesbe jatszottak pl alatta, foleg, mivel std grafikus dolog nem is igazan volt ala, max vmi karakteres kalandjatek vagy hasonlot tudok elkepzelni.
Title: Re: IS-DOS és CP/M
Post by: Z80System on 2014.October.28. 19:48:51
Az IS-DOS benne van az SD cartridge -ban is ...

Próbáltam elindítani, de először semmit nem csinál, másodszori indításnál meg már azt mondja, hogy nincs is ilyen command string ...

Lehet hogy floppy kötelező hozzá, vagy mi ?
Title: Re: IS-DOS és CP/M
Post by: Zozosoft on 2014.October.28. 20:11:51
viszont: abban a "kisgépes" világban ahol én/mi mozogtunk, mennyire volt szerepe a cp/m-nek?
gondolom kb semennyi
és ha itt nem, akkor hol?
Nálunk nem sok, mert kb voltak a lyukkártyás gépek, aztán meg jött a C64 :-)

Tőlünk nyugatabbra jó pár évig ez volt az uralkodó operációs rendszer, legfőbb képen az irodákban. Rengeteg mai is használt dolog ered abból a világból.
De a PC biniszt jól elbénázták :-(
Title: Re: IS-DOS és CP/M
Post by: Zozosoft on 2014.October.28. 20:12:48
Letölthető a legendás CP/M operációs rendszer teljes forráskódja
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?
Title: Re: IS-DOS és CP/M
Post by: lgb 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 (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 :)
Title: Re: IS-DOS és CP/M
Post by: Zozosoft 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.
Title: Re: IS-DOS és CP/M
Post by: Povi 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... :-)
Title: Re: IS-DOS és CP/M
Post by: Povi on 2014.October.28. 21:47:39
na, ezt egyszerre sikerült írnunk :-)
Title: Re: IS-DOS és CP/M
Post by: lgb 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.
Title: Re: IS-DOS és CP/M
Post by: lgb on 2014.October.28. 22:19:37
http://www.computerhistory.org/atchm/microsoft-research-license-agreement-msdos-v1-1-v2-0/ (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 :)
Title: Re: IS-DOS és CP/M
Post by: Zozosoft 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 :-)
Title: Re: IS-DOS és CP/M
Post by: lgb 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 ...
Title: Re: IS-DOS és CP/M
Post by: Povi 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
Title: Re: IS-DOS és CP/M
Post by: lgb 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 ...
Title: Re: IS-DOS és CP/M
Post by: Zozosoft 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:
Title: Re: IS-DOS és CP/M
Post by: Zozosoft on 2016.May.31. 22:53:21
Példa arra, hogy miről van szó.
Title: Re: IS-DOS és CP/M
Post by: Povi 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 :-)

Title: Re: IS-DOS és CP/M
Post by: Zozosoft 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 (http://www.gtek.com/) a leírást is. (http://017b236.netsolhost.com/ftpfiles/pdfs/cpe.pdf)
Í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!
Title: Re: IS-DOS és CP/M
Post by: Zozosoft 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
Title: Re: IS-DOS és CP/M
Post by: lgb on 2016.June.02. 14:48:59
É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:

O jajj! Nem eleg nekem a C65 emulator? :D :D amugy mit kapok erte, ha megcsinalom? FAT16-os EXDOS jo lesz :)

Quote
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.

Most tenyleg nem azert, de nem lehet, hogy konyebb lenne egy konvertert irni az asm szintaxisra? :) Vagy akar egy assembler-t is. Ez overkill-nek tunik, _DE_: ha jovoben te, vagy barki mas akar foglalkozni az EP eredeti forrasaival ez folyamatosan problema lesz. Nem lenne szebb akkor, ha egy szelesebb korben elerheto/ismert assembler-rel (aminek van "normal" valtozata ami pl akar PC-n is fut) is lehetne rajtuk dolgozni? Ui tegyuk fel, hogy van a post-odban szereplo CP/M emulator szeruseg. Annal - erzesem szerint - akkor is jobb/ismertebb/emeszthetobb lenne, ha nativ/ismert tool-okkal lehetne rajta tovabb dolgozni, nem? Speciel, mivel nem tudom milyen a szintaxis, persze nem tudom megmondani mennyire lenne trivialis pl sjasm altal hasznalt szintaxisra foritani, na meg mondjuk a link-eles az kulon erdekes tema ... De meg mindig van mas Z80 assembler is, ami azert letezik manapsag is, es ott a linkeles tenyleg kulon lepes (talan az sdcc altal hasznalt assembler is tud ilyet pl, igaz o belsoleg vmi intel hex format szeru vackot hasznal object file-nak, de tokmind1, hogy belsoleg hogy kezeli le, ha ettol meg mukodik .......).

Quote
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.

Xep128-al egyreszt lehet menne a FILE: mar ugye (EXOS 10 support/miegymas), masreszt ha meg nem, SD kartya emulacio? Igaz, Xep128-al nem lehet - jelenleg - gyorsitani az emulacio sebesseget (bar beleganyolhatnek hogy vmi ideiglenes nem tul szep modon akar legyen "warp" speed) ... Viszont ep128emu-ban van Zozo IDE emulacio nem? Valami Zozo nevu srac csinalta a hw-t .... :D Az nem hasznalhato? ott lenne eleg hely akkor, mar ha csak a hely problemat nezzuk szigoruan, nem kene RAMDISK-elni, miegymas. Oke, ertem en, hogy meg 3000%-on is lassu, akkor lassu. Amugy most neztem a Xep128 altal hasznalt Z80 emulaciot, van erre egy teszt programom: ha csak a Z80-at kell emulalni, akkor a nem tul uj PC-men azt mondja, hogy ~450MHz-es Z80-nak felelne meg a real-time speed. Egy kis Xep128 ganyolassal lehet el lehetne erni, hogy adott billentyunyomasig vagy tudom is en, iktasson ki minnel tobb dolog emulaciojat, meg a real time tartasara vonatkozo idozitest, es akkor azert jelentosen gyosabb lenne, bar a fenti virtualis 450MHz orajelet biztos nem erne el, mert mindent kiszedni akkor sem tudok belole, vagy csak nagy aldozatok aran :)

Quote
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

Mire gondolsz? Ami 0x100 alatt van, CBIOS, BDOS hivashoz cucc, I/O BYTE meg ezek?

Amugy "multkoriban" eppen sajat Z80-as "mini gepet" epitettem volna, de csak emulacioban lett valosag :) Ott tapasztaltam, hogy egyes CP/M programokat futtathatova lehet tenni osszesen kb 1 darab CP/M hivassal is akar :) Talan a BBC basic Z80 portja volt ilyen, vagy nem emlekszem mar. Oszinten engem az FCB es a file muveletek remitenek el, az a baj, hogy akkor mar nem trivialis messze, ha sajat BDOS-t akar irni az ember. Bar amugy jut eszembe, az nem jo, amit en is csinaltam, hogy siman felhasznalom a DR eredeti BDOS-at es irok egy sajat CBIOS-t? :) Annak mondjuk a hatalmas hatranya az, hogy akkor CP/M lemezekkel (vagy hat image file-okkal, ha mar emulator) fog csak mukodni, sajat BDOS eseten meg ugye lehetne a normal filerendszer adott directory-jat kezelni file szinen .......... Az emlitett "sajat gep" emulaciojaban a CP/M is ment sajat primitiv CBIOS-szal, vagy hat mondjuk ugy, hogy neha "csuklott" 1-2-ot de "altalaban" ment :D

Quote
-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)

Anyuuuu, nem akarok iskolaba menni, ize ... FCB-kkel szenvedni!!!!! :)

Quote
-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

Hmm. Ilyet egyszer irtam mar :) Amikor CP/M emulatort akartam irni, magyarul egy "sajat" CP/M-et, BDOS+CBIOS implementacio nativ C kodban. Igaz en Linux/UNIX-ra irtam, hogy nativan illesztheto legyen atlag parancssoros UNIX kornyezetbe, mintha "nativ" program lenne a kerdeses CP/M program futtatasa. Volt par hasonlo projectem, pl a karakteres modban mukodo C64 emulator (ncurses, nc64), illetve a DOSRUN, ami Linux alatt vm86() syscall-al es sajat DOS implementacioval dolgzott (vegulis, hasonlit a DOSBOX-ra ilyen szempontbol csak az sima parancssoros kornyezetben is ment, anelkul, hogy sajat ablak kellene, illetve ncruses-t hasznalva a Volkov Commander elindult Linux alatt nativ nativ X terminal ablakban is akar, hogy latta a teljes Linux filerendszert - na persze mindez DOSBOX-ban amugy sokkal jobban megy, szoval sok ertelme nincs a dolognak ma mar ...).

Na, de: ott is azert buktam el, mert ez az alien FCB szornyedveny megfekudte a gyomrom. Foleg, hogy egyes programok trukkosen hasznaljak az FCB-t, minden apro implementacios dolgot kihasznalnak, miegymas. Mennyivel jobb a file handle fogalma amit a UNIX kitalalt, egy szammal hivatkozol a file-ra oszt kesz. Kesobb DOS le is nyulta, igy vannak benne FCB-szeru es UNIX-stilusu file funkciok aztan ...
Title: Re: IS-DOS és CP/M
Post by: Zozosoft on 2016.June.02. 15:57:39
FAT16-os EXDOS jo lesz :)
Az is a célban van :-) Előbb kéne rendes 1.4 (nem binárisan szétpecselgetett), ami nem akad ki WD hiánytól...


Quote
Most tenyleg nem azert, de nem lehet, hogy konyebb lenne egy konvertert irni az asm szintaxisra? :)
Nagyjából az a kérdés, hogy most a következő 2-3 év forrás konvertálással teljen, vagy jöjjenek már az új verziók? :oops:

Quote
Speciel, mivel nem tudom milyen a szintaxis, persze nem tudom megmondani mennyire lenne trivialis pl sjasm altal hasznalt szintaxisra foritani
Nagyon elborult dolgok vannak, pl a ROM-okban lévő tömörített szöveg az fordítás közben áll elő, miközben biteket írkál a kimenő adatfolyamba... (Na ehhez van odaírva: "This file takes about 13 minutes to assemble"...)


Quote
Xep128-al egyreszt lehet menne a FILE: mar ugye
A FILE: elsősorban azért nem megy, mert a CP/M program az DOS meghajtókat használ, nem EXOS eszközöket.

Quote
(EXOS 10 support/miegymas)
Ennek egyelőre úgy tűnik még az se kéne. Szekvenciálisan végigolvassa a fájlt, aztán bezárja, és a második menethez még egyszer.

Quote
, masreszt ha meg nem, SD kartya emulacio?
Az erősen a cél lenne, hogy ne kelljen a cuccot ide-oda másolgatni semmilyen image-re :oops:

Quote
ha csak a Z80-at kell emulalni, akkor a nem tul uj PC-men azt mondja, hogy ~450MHz-es Z80-nak felelne meg a real-time speed.
Az ha jól számolom picit gyorsabb mint a 3000%-os ep128emu, és ha jól sejtem ugyanazon a gépen még gyorsabb lenne :-)


Quote
Mire gondolsz? Ami 0x100 alatt van, CBIOS, BDOS hivashoz cucc, I/O BYTE meg ezek?
Ahogy eddig nézem csak a memória méret 2 bájt kell (az alá teszi a stack-et). A BDOS hívást (0005) kéne elkapni trappal.


Quote
Anyuuuu, nem akarok iskolaba menni, ize ... FCB-kkel szenvedni!!!!! :)
M80-hoz csak a fájlnév kell belőle, L80-at még megnézem.

Ha nem vállalod akkor az a tervem, hogy EXOS héjat építek köré, és akkor legalább a FILE-zés megoldódik, mert EXOS csatornán megy majd a dolog. Meg esetleg fájlpufferelést bevetni, hogy ne 128 bájtonként legyen OS hívás, az is gyorsíthat egy kicsit.
Title: Re: IS-DOS és CP/M
Post by: lgb on 2016.June.02. 16:19:21
Az is a célban van :-) Előbb kéne rendes 1.4 (nem binárisan szétpecselgetett), ami nem akad ki WD hiánytól...

Kozben rajottem, csak mar nem javitottam ki a hozzaszolasomban. Nem baj, igy meg talalobb :)

Quote
Nagyjából az a kérdés, hogy most a következő 2-3 év forrás konvertálással teljen, vagy jöjjenek már az új verziók? :oops:
Nagyon elborult dolgok vannak, pl a ROM-okban lévő tömörített szöveg az fordítás közben áll elő, miközben biteket írkál a kimenő adatfolyamba... (Na ehhez van odaírva: "This file takes about 13 minutes to assemble"...)

Nem azt mondtam, hogy "kezzel" konvertald le, hanem, hogy lehetne-e irni egy (PC-n futo) konvertert hozza pl, ami aztan lekonvertalja. Amit igy emlitettel az erdekes, de igy latatlanban foglmam sincs mit tud/csinal az a compiler ....

Quote
A FILE: elsősorban azért nem megy, mert a CP/M program az DOS meghajtókat használ, nem EXOS eszközöket.

En itt erzek egy kis hianyossagot EXOS/EXDOS-ban. Tok jo, hogy az EXOS magatol is tud file kezelo eszkoz irasahoz biztositani lehetoseget, csak epp a directory kezeles nincs megoldva. Ha nem EXDOS szinten lenne, hanem lenne EXOS hivas ra (amit handler vagy implemental vagy nem, hasonloan az EXOS 10-hez) es EXDOS is azon at menne, akkor lehetne FILE: -t irni ami tok DOS meghajtonak tunne :) Azaz jobb EXOS/EXDOS integraltsag. Persze oke, ez most nem segit, hogy azt mondom "HA" ...

Quote
Ennek egyelőre úgy tűnik még az se kéne. Szekvenciálisan végigolvassa a fájlt, aztán bezárja, és a második menethez még egyszer.
Az erősen a cél lenne, hogy ne kelljen a cuccot ide-oda másolgatni semmilyen image-re :oops:

Elvileg nem is kell, gondolom windows is kepes image file-t latni mintha a filerendszer resze lenne kvazi, amit Linux-ban is lehet akar.

Quote
Az ha jól számolom picit gyorsabb mint a 3000%-os ep128emu, és ha jól sejtem ugyanazon a gépen még gyorsabb lenne :-)

Hat, ha irok egy ilyet amit mondtal, a Z80 emulacio meg "full speed"-en se lenne akkor sokkal gyorsabb, a Xep128 osszes mas reszet elhagyva ....

Quote
Ahogy eddig nézem csak a memória méret 2 bájt kell (az alá teszi a stack-et). A BDOS hívást (0005) kéne elkapni trappal.

Hat, mar nem igazan remlik a CP/M, de ugy emlekszem, hogy a BDOS belepesi pontot szokas memtop-nak is hivni vagy minek egyben, ameddig egy CP/M program nyujtozkodhat "felfele" a memoriaban ....

Quote
M80-hoz csak a fájlnév kell belőle, L80-at még megnézem.

Ha nem vállalod akkor az a tervem, hogy EXOS héjat építek köré, és akkor legalább a FILE-zés megoldódik, mert EXOS csatornán megy majd a dolog. Meg esetleg fájlpufferelést bevetni, hogy ne 128 bájtonként legyen OS hívás, az is gyorsíthat egy kicsit.

Nem mondtam, hogy nem *probalom* meg esetleg, de hat nem garantalt a siker, attol fugg tenyleg, milyen CP/M hivasokat akar szegeny cucc, es mennyire hasznalja ki pl az FCB specialitasait, mert abban vannak melyekk dolgok is, amit nehany CP/M program sajna erosen kihasznal, ezert nem totalisan compatible FCB kezeles nelkul ezek nem igazan szoktak mukodni. Legalabbis CP/M tapasztalataim szerint :)
Title: Re: IS-DOS és CP/M
Post by: lgb on 2016.June.02. 16:43:41
Kozben irtam maganban egy uzenetet neked, Zozo.
Title: Re: IS-DOS és CP/M
Post by: lgb on 2016.June.02. 18:58:03
Na. Kesz a CP/M emulator vaza, csak ki kell tolteni benne a funkciokat amit BDOS/CBIOS-bol hasznalni akar. Ehhez viszont kene akkor a cucc :)
Title: Re: IS-DOS és CP/M
Post by: Zozosoft on 2016.June.02. 19:19:25
Na. Kesz a CP/M emulator vaza, csak ki kell tolteni benne a funkciokat amit BDOS/CBIOS-bol hasznalni akar. Ehhez viszont kene akkor a cucc :)
Ez gyors volt, én még csak vacsorafőzésnél tartok :oops:

Addig is itt vannak, a neten találtam némi disassemblyt is.

A LOG fájl meg egy egyszerű
org 100h
ret

próbafájl fordításának megfigyelése.
Title: Re: IS-DOS és CP/M
Post by: lgb on 2016.June.02. 19:40:12
Tudsz fozni? :) De jo neked. En meg a teafozest is elrontom, tiszta antitalentum vagyok ehhez ...

Amugy persze, hogy nem tartott sokaig, miert tartana, ez kb 5 perc eddig osszedobni. Nyilvan, az aktualis BDOS/BIOS stb call-oknal azert lesz majd joval tobb szivas am :)

Az a baj, hogy nem tudom hogy kene hasznalni ezt az m80.com -ot ... Ha siman meghivom parameter nelkul (marmint mar az emulatorommal!) akkor egy csillagot ir ki. Ha valamit adok parameternek akkor meg "?Command error" lesz. A problem az, hogy console input-ot NEM fogok tudni emulalni mert ahhoz fejlettebb console I/O kene (raw mode stb) amit Linux eseten meg tudok oldani, de Windows-nal halvany lila gozom sincs, hogy kell pl ... Igy a 10-es BDOS call-ra (buffered console input) mindig azt adom vissza a DE altal mutatott teruleten hogy 0 karaktert olvasott be. De ugy latszik ez a cuccnak nem igazan tetszik, vagy hat o varna valami ertelmeset. Vagy tudom kene hogyan kell parameterezni az M80.COM-ot, hogy ne console-rol varja az utasitast, az is lehet am :)
Title: Re: IS-DOS és CP/M
Post by: Zozosoft on 2016.June.02. 19:51:39
Tudsz fozni? :)
Mivel nincs más kénytelen vagyok, ha nem akarok éhen halni :-)

Quote
Az a baj, hogy nem tudom hogy kene hasznalni ezt az m80.com -ot ... Ha siman meghivom parameter nelkul (marmint mar az emulatorommal!) akkor egy csillagot ir ki. Ha valamit adok parameternek akkor meg "?Command error" lesz.
Ez már jól hangzik! :-)

Itt egy leírás. (http://www.msxarchive.nl/pub/msx/programming/asm/m80l80.txt) De azóta kaptál BAT fájlokat is :-)
Title: Re: IS-DOS és CP/M
Post by: lgb on 2016.June.03. 00:45:21
Na, elso korben kesz. Az CP/M-es linker es assembler legalabbis lefut. Az, hogy jot allit-e elo, tok mas kerdes :-P

https://github.com/lgblgblgb/xep128/blob/master/tests/cpm-minimal-emulator.c

A forraskodja, ha valaki akar szornyulkodni :)
Title: Re: IS-DOS és CP/M
Post by: Zozosoft on 2016.June.03. 09:20:06
Na, elso korben kesz. Az CP/M-es linker es assembler legalabbis lefut. Az, hogy jot allit-e elo, tok mas kerdes :-P
Jót! :ds_icon_cheesygrin: :smt038

Lehetne a neve XCPM az XEP alapján :-)
Title: Re: IS-DOS és CP/M
Post by: lgb on 2016.June.03. 15:31:24
Jót! :ds_icon_cheesygrin: :smt038

Lehetne a neve XCPM az XEP alapján :-)

Amen, legyen. Keresztapa lettel :) Igazabol azon gondolkodtam, hogy mi van, ha minden BDOS/BIOS call-t implementalok, es akkor "barmire" jo, haaat illetve addig, amig ki nem derulnek a bug-ok egyes programoknal :) :) Igazabol a Z80 emulacio butitasaval (ciklus pontossag kikapcsolasa stb) valoszinu lehetne meg gyorsabb ennel, en oszinten szolva kicsit lusta voltam, mert Xep128-ban igy van hasznalva, igy nem kellett trukkozni, hanem siman hozzalinkelni csak ahhoz, amit a Xep128 is hasznal.

Mas, elkezdtem irni 8080 emulatort C65-re (ja igen, mostanaban C65 maniam van). Bar CP/M hivast emulalva akkor azon is lehetne CP/M programokat futtatni ugy-ahogy :-/
Title: Re: IS-DOS és CP/M
Post by: Povi on 2017.January.05. 20:13:56
Zozo, az IS-DOS forrása meg van neked?
Title: Re: IS-DOS és CP/M
Post by: Zozosoft on 2017.January.05. 21:00:25
Zozo, az IS-DOS forrása meg van neked?
Igen, bár teljesen még nem sikerült összerakni.