"A CP/M immár valóban open source"

Címkék

Bryan Sparks, a DRDOS elnöke pontosította a CP/M licencét:

Let this paragraph represent a right to use, distribute, modify, enhance, and otherwise make available in a nonexclusive manner CP/M and its derivatives. This right comes from the company, DRDOS, Inc.'s purchase of Digital Research, the company and all assets, dating back to the mid-1990’s. DRDOS, Inc. and I, Bryan Sparks, President of DRDOS, Inc. as its representative, is the owner of CP/M and the successor in interest of Digital Research assets.

Természetesen, már korábban "megnyitották", de a volt egy homályos, "Unofficial CP/M Web Site"-ot említő záradék a licencben , ami most tisztázásra került. A vita a CP/M licence körül még nem ért teljesen véget, de az fejleményeket nyílt forráskódú oldalról szorosan figyelemmel kísérők úgy vélik, hogy a mostani tisztázással a licenc a BSD/MiT licenccel egyenértékűvé vált.

Hozzászólások

Érdekes, hogy még 20+ évek után is lehetnek ilyen homályos kérdések, amik tisztázásra várnak. Jó látni, hogy a DRDOS elnöke ennyire együttműködő. Bár, a mai open source világban inkább már az lenne furcsa, ha nem lenne.

trey @ gépház

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.

Én arra lennék kíváncsi, hogy tényleg kiknek kellhet ma a CP/M, pláne a környékünkön. Szerintem keleten nem volt nagy divat ez a CP/M, nyugaton még el tudom képzelni valami speciálisipari felhasználáshoz.

Színes vászon, színes vászon, fúj!

Kérem a Fiátot..

Sosem értettük haver C=128-asán mire volt jó a CP/M lemez :-D Akkoriban annyit tudtunk, hogy kell betölteni a játékokat kazettáról meg lemezről. Nemrégiben hozzám került a gép. Csak most ki van belezve, nem megy a belső lemezmeghajtó. Meg kellene már javítanom.

Ja, mert a C128 is csak egy C64 pótlék (játékkonzol) volt a legtöbb gyereknek. Pedig igazából a Z80-as egy komolyabb platform volt az 6502-nél. Csak ugye az átlag user játszott inkább, míg CP/M-re meg komolyabb alkalmazások és fordítók voltak, csupa karakteres felületű cucc, ami grafika híján nem volt látványos.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

Persze, gyerekként csak játszottunk rajta. Akkor még azt sem tudtam eszik vagy isszák. Bár volt pár felhasználói kézikönyvem a C=64-hez, abból pötyögtem be kódokat és örültem mikor futott is. Még a városi könyvtárból is vittem haza hozzá assembly könyvet, na az aztán tényleg kínai volt.

De ahogy idősebb lettem, egyre inkább megértettem ezeket a gépeket és még inkább rajongok értük. Főleg a 6502-ért! Nekem a Z80 az ellen! De ugye a 128-asban is ott csücsül, ill. van egy Schneider Joyce PCW 8256 masinám is, ami egy Amstrad klón, az is Z80-as. Az áruló! :-D

Szinte mindenki csak játszott rajta, Így jártak egyébként a korai DOS-os gépek is, max. ilyen karakteres felületű programokkal, mint Wordstar, Wordperfect, Lotus 1-2-3, Word, Excel (akkor még DOS-ra), stb.. A nép inkább amigázott helyette (már ahol ugye nem volt vasfüggöny, meg COCOM-lista), mert annak sokkal jobb volt a grafikája, hangja, stb., annak a szintjét a PC-k csak a 486-os korszakban, a VGA-val, Adlib/SB-rel érték utol, és csak a 32 bit / Pentium / Win9x / SVGA / 3Dfx-DX korszakban haladták meg.

Ezek a régi gépek egyébként a mai napig azért vonzóak, mert egyszerűek. A 6502 és x80-as platform is. Nem volt túlbonyolítva mindenféle absztrakciós meg köztes réteggel, egy feladatos rendszerek, közvetlenül férsz hozzá mindenhez, stb.. Amit ugye lehetne x86-on is, csak túlléptük azt a komplexitást nagyon régen, és alap igény a multitasking és a mindenféle biztonsági kérdés, folt, szigorú szabályozás, hogy ki és melyik folyamat mihez férhet hozzá.

Ezért népszerűek mai napig az SBC-k, és mikrovezérlők is, az egyszerűség miatt. Van egyfajta rekreációs jellegük, ezért sokan szívesen programozzák.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

A Commodore 128-ban volt CP/M üzemmód is. Nem tudom hányan használták, de szerintem a többség csak véletlenül bootolta azt és inkább a C-64 üzemmódban használta. :)

Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; DropBox

Azt "véletlenül" bootolni nem igazán lehet. :)
Egyrészt alapból Z80-as üzemmódban kel fel, tehát mindenképpen úgy bootol, csak ha nem talál lemezt, amit felbootolhat, akkor átvált C128 üzemmódba. (És ha rá van aggatva valami C64-es cartridge, vagy beírod, hogy GO64 akkor tovább C64 üzemmódba.)

Annak idején a fiam egyik kedvenc játéka az Impossible Mission II volt. Kicsit háklis volt a program, nézett sok mindent, pl. ha bővítőkártya volt rádugva a gépre, el se indult. Volt egy faslload nevű kártyám, azzal könnyebben behívni a lemez tartalmat illetve betölteni a programokat, azt még kikapcsolva sem szerette a gépben. Aztán megtaláltam, hogy melyik lábat kell még pluszban kikapcsolni, így nem kellett mindig kirángatni a bővítőportból, de értelemszerűen használni nem lehetett. Bekapcsolt fastload kártyával helyből C64 módban indult a gép, anélkül viszont C128-ban.

A fiamnak megtanítottam, kártya kikapcsoás, gép bekapcsolás, go64 aztán load "*",8,1 a játék betöltése  és indítása. (írni, olvasni még nem tudott :)). Aztán jó pár év múlva árultam el neki, hogy mi lett volna a gyorsabb megoldás, de így legalább szokta a betűket és a billentyűzetet :)

Az IM2-t speciel sose próbáltam a 128-ason elindítani, majd megnézem, hogy ami nekem van Action Replay v6.1, azzal se megy-e...
A legtöbb C64-es játék amúgy elindul C128-on, max. akkor van gond, ha piszkálja a $D030-as cím 0. bitjét, ott lehetett ugyanis a 8502-őnek az órajelét szabályozni és ha átkapcsolja 2 MHz-be, akkor "a képernyőn semmit nem látunk, de azt legalább kétszeres sebességgel." :)

volt egy-két olyan tört játék, ami induláskor demot játszott, és a 6502 nem dokumentált utasításait (is) használta. Ezek viszont a 8502-n nem feltétlenül azt csinálták, mint a 6502-n, ezek is képesek voltak lefagyni. Nem sok ilyennel találkoztam, talán két-három volt. Nem maga a játék, mert volt, hogy más forrásból, más törésből ugyanazt a játékot beszereztem, és futott.

Fura, mert az utasítások dekódolása és végrehajtása elvileg ekvivalens kellene, hogy legyen a két CPU-n. Az opkódok legalábbis azok. Csak a gyártástechnológia tért el, de annak nincs köze ahhoz, hogy egy utasítás hogy dekódolódik, vagy hajtódik végre.

Portolni szerintem ezt nem fogják. A célplatformja mindig is a 8080, Z80 volt, oda portolva van. Létezik x86-ra, de ott nem volt soha népszerű a DOS árnyékában. Ez a licenckérdés rendezése inkább arról szólt, hogy most már nyugodtan lehet terjeszteni, és nem csak arra alapozni, hogy abandonware.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

Enyhén képzavar amit írsz. Talán először el kellene olvasnod mi az a CP/M. A "platform" csak annyit jelent, hogy a minimális rendszerkövetelmények megfelelő hardver. A BIOS és a BDOS gyakorlatilag betölthető, nem is kell ROM-ban lennie.

A 6502-re nem fog senki CP/M-et portolni, mert képtelenség. (A, B, C, D, E, H, L -> A, X, Y regiszterek) Eleve 8080-ra készült. A Z80, 8085, NSC800 (=8085 & Z80) és V20 (=8088 és natív 8080 mód!) "portolásra" nincs szükség, mert ezek a processzorok a 8080-hoz képest ekvivalensek, tehát bármilyen mesterkedés nélkül fut rajtuk a CP/M. A 16 bites - pl. 8086 portoláshoz elegendő egy cross-assembler, mert ugyanazok (csak kicsit szélesebb és több) a regiszterek.

A portolás helyett lehet kompatibilis rendszerről beszélni. Ilyen volt az Enterprise 128 (Z80) + IS-DOS 1.0. Ekkor a munkahelyemen DOS -> WordStar 3.40, Intel ISIS-II (as - assembler), Turbo Pascal 3.0 alatt fejlesztettem. (A WordStar volt az első cross-assemblerrel CP/M -> DOS portolt program.) Ugyanazt a munkát tudtam végezni az Enterprise-on WordStar 3.30, Turbo Pascal 3.0, Macro 80 alatt. A programok CP/M-ről kerültek oda. Később egy barátom portolta PC-re a Macro 80 csomagot is.

Ugyanezeket a programokat  lehetett futtatni logikai analizátoron MP/M alatt.

Nem, nem képzavar, csak nem érted, hogy mit mondok; van olyan Z80-as/8080-as gép, amin jelenleg nem tudod lefordítani, futtatni a forrásokat, mert nem kezeli annak a gépnek a hardware-ét (lemez, képernyő, whatever)? Van. Akkor oda portolni kell.

A képtelenség kitételt nem minősíteném. Attól, hogy kevesebb regiszter van egy CPU-ban (a 6502-esnek cserébe több címzésmódja van), attól még lehet működésben ekvivalens kódot írni.

Itt a C64 memóriatérképe Joe Forster of STA billentyűzetéből.
Használja vegyesen BASIC és KERNAL, plusz az első két cím, ami a CPU I/O portját vezérli. Viszont a CP/M nem használja sem a BASIC-et, sem a KERNAL-t, szóval az általuk használt címeket lehet használni. Viszont azokat a ZP-s címeket, amiket maga a CP/M használ, azokat nem célszerű regiszterként használni. Akkor vagy tudni kell, hogy az ott lévő tartalmat lehet-e trashelni és nem fog-e eltrashelődni, amíg szükség van rá, vagy relokálni kell az azt használó rutinokat máshova, viszont másik ZP-s címre rakva cseber-veder, 16-bites címre rakva meg lassulás. Ebből a szempontból a 6809-es CPU előrébb van, mert ott van egy DP (DirectPage) regiszter és van DP címzés, ami ugyanannyi helyet és ciklust igényel, mint a ZP címzés. (Különbség persze, hogy a DP-t fel kell tölteni, meg en-bloc kezelni kell, de ha egy adott rutin cuccai egy lapon vannak, akkor az nagyon sokat jelent.)

A BIOS az a firmware, ami a perifériákhoz illeszti az oprendszert. A CP/M-et támogató BIOS is ilyen. Nyilvánvalóan (pl.) azt a BIOS hívást meg kell írni, ami az egy karakter kiírását végzi. A másik vége lehet crt, soros terminál, konzol írógép, plotter ... Ez egy ilyen játék.

A példák, amiket irtam, csak annyit jelentenek, hogy (pl.) fogsz egy CP/M-en futó WordStar-t és használod. A 8080 kódot futtató 6502, nos azt CPU emulátornak hívják. A bicikli meg űrrakéta, csak elég gyorsan kell tekerni. ;) Tehát nem képtelenség.

Igaz, a Windows NT is futott PowerPC processzoron, de az nem assembler forrásból készült.

Én meg erről beszéltem. A konkrét hardware-re portolás ezt jelenti.

Már megint nem érted, hogy mit írtam. Nem azt mondtam, hogy a 6502 fogja futtatni a 8080 kódot, nem emulációról beszéltem. Hanem, hogy a Z80/8080 kódot átírja a programozó 6502-esre.

És?

Értem én, hogy nem emuláció, de akkor mi a bánatra lehet használni? A CP/M egy operációs rendszer, amihez rengeteg program volt. Ezek nem futnak 6502-n. Játéknak ugyan át lehet írni, de semmi értelme.

A hardware portolás esetünkben device drivert és/vagy BIOSt jelent. A karakter kiírás nem ment, ezért legyen a példa egy diszk szektor olvasása. Ha a diszk vezérlőt kicseréled (azaz inkompatibilis lesz a hardver, tehát "portolni kell") akkor csak a szektor olvasást kell megírni. A CP/M-et nem kell portolni. Ez még 8080 (stb.) alatt is így működött.  Sőt, még a diszk formátum sem volt rögzített, mint a pécénél. A CP/M + diszk buildelni kellett, hogy rendszert kapjál. (Csak elfelejtettem a parancsot. ;))

Pont ezt próbálom magyarázni: A PIC18 családnak 3 index regisztere is van, de hiába futtatná a CP/M-et, nem fut rajta a WordStar.

Miért, mi a bánatra lehet használni a CP/M-re írt programokat 2022-ben? Ez játék, retrósoknak, programozóknak.

Ha az ominózus platformon nincs BIOS, hanem közvetlenül kell a hardware-rel bánni, akkor az összes hardwarekezelést meg kell írni.

Ld. első bekezdés. Mit akarsz a WordStar-ral 2022-ben? Itt a fun faktor a CP/M hackelése/tweakelése, nem a régi produktív programjainak a használata.

Egyetértek, ma már retrózás a célja, rekreáció. De sokan nosztaligából a WordStart is futtatják ennek keretében, hiszen anno használták. Annak ellenére, hogy annak vannak modern klónjai, és futnak más OS-ek alatt.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

Ebben igazad van, erről el is feledkeztem. Lefordítani le tudod, csak futni nem fog, sok gépen, valóban, a proci hiába egyezne, de más memóriacímeken vannak adott hardverek, akkor futni nem fog. De ez nem csak CP/M szinten volt így, alkalmazásoknál is számított, hogy mire írták, milyen hardverre, milyen címeket használva.

6502-őn nem sok értelme lenne a CP/M-nek. Elvileg lehetne proof of concept alapon átírni, de pont a fenti miatt nem mennél vele semmire, mivel az alkalmazások, amik miatt a CP/M fontos volt (pl. Wordstar meg a többi), azok úgyis más architektúrára, címzésre vannak kódolva.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

A DRDOS nem egy cég, hanem egy termék, a cég a DR (Digital Research). Lehet, érdemes lenne javítani.

A cikkben lévő minden infó korrekt. Ha nem érted miért, nézz utána. (A Digital Research már egy réges rég (1991 óta!) nem létező cég, a jogok most egy DRDOS Inc. nevű képződménynél vannak, ennek a góréja mondott most okosat. Bár nagyon nagy cég nem lehet, mert pár éve már weblapjuk sincs.)

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

Jöhetne az MS-DOS, meg a windows a 3.11-ig bezárólag. De tán a 9x vonal is megnyitható lenne már.

Ja, annak én is örülnék, de szerintem azokat nem fogják megnyitni. Túl sok lehet a gányolás és lopott kód benne, amit nem tudnának vállalni a nyilvánosság előtt.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

Kár, hogy a DR PL/1 compilerének a source-a nincs benne. Az lehetett az egészből a legbonyolultabb.

Operációs rendszerek és a BIOS működésének a megértésére kiválóan alkalmas.
Emlékszem, hogy már a 486-osok korában volt MPM változata is.
C-től a pascalig (fortran is) minden volt hozzá.
Szövegszerkesztő (wordstar), táblázatkezelő (123) és dbase is használható volt, bár akkor még csak 128k-s floppy tárhely volt.
A németeknél láttam SCSI kártyát is z80/6502-es gépekhez, pl, apple2c

Nem tudom, ma már mit tudnék kezdeni vele.