Co ReactOS? https://www.reactos.org/
Na Foxpro mi fungoval dobře, pohodu jsem na něm nerozběhal.. (ve virtualboxu)
Ale za vyzkoušení to asi stojí ;)
Moc toho o Uctu nevim, ale kdyz jsem se v nem naposledy trochu vrtal (prenos ze stareho stroje na novy, bohuzel jak jinak pod Win), tak jsem nabyl dojmu, ze je to takovy slepenec jadra ve FANDu a okolo je rozvesenych x pomocnych binarek. Pravdepodobne ne vsechny z nich budou kompatibilni s cistym DOSem (jak jsem pochopil, tak zajistuji interakci "jadra" s okolim), tak v tom by mohl byt problem.
Stejne je to zvlastni. V podstate nejde o PC FAND, ale o ucetni program, ktery v nem byl kdysi napsany. Zdrojaky toho UCTO'a nahodou volne nejsou? Co si pamatuju, umel FAND zdrojaky zabalit tak, ze se daly otevrit jen na heslo (to byl dokonce snad pripad UCTA, nebo ze se nedaly otevrit vubec). Skoro bych odhadl, ze je FAND skryva metodou security-obscurity a ze by se ted, kdyz je FAND open-source, daly "rozsifrovat" a misto PC FAND'u preportovat UCTO. :-)
Z dnesniho pohledu je ten kod opravdu na hodne nizke urovni. Vlastne se divim, ze nekdo takovy projekt tak dlouho udrzoval. Vsak tam neni snad ani radek komentare. Dostat se do toho zabere asi hodne prace. Docela me prekvapilo, kolik je tam low-level kodu pro praci s diskem a grafikou, atp.
jj i na možnosti TP je to dost bída:
https://github.com/alisoss/pcfand/blob/master/pas/GRMENU.PAS#L67
labely https://github.com/alisoss/pcfand/blob/master/pas/GRMENU.PAS#L169
atd.
a kvuli tomu ASM bude pripadny prepis dost o usta :/
To beru, taky jsem v polovine devadesatych let programoval v Pascalu. O to vic me prekvapuje, ze takto pouzivany projekt vypada uvnitr tak, jak vypada. Pro srovnani Photoshop 1.0 (priblizne ze stejneho obdobi) je taky v Pascalu a ten kod je o nekolik urovni vys: https://github.com/amix/photoshop
z takto starých věcí tady mám zdrojáky Vividu, FractIntu a trošku pozdějšího Dooma (1993?) a Second Reality. Pravda, všechno C a většinou i ASM, ovšem formátování dodržují, komentáře jen FractInt, testy nikde žádné :-)
Jinak ten PC Fand je pěkně mezinárodní https://github.com/alisoss/pcfand/blob/master/pas/DMLTEST.PAS#L28
(hmm o důvod víc, proč jsem rád, že mé staré věci už dosloužily a zdrojáky jsou někde na CDčku a ne na GitHubu :-p)
PC-FAND není původní projekt. Původní FAND vznikl jako editační prostředek pro datové soubory ještě pro osmibitové počítače Robotron 1715. Po dalším vývoji, asi v roce 1986 nebo 1987, vznikla první (úplná) verze FANDu, opět na osmibitový počítač. Ta už se to "dnešnímu" PC-FANDu docela podobala. Projekt byl uložený jako textový soubor, který obsahoval deklarace datových souborů - podobné dnešním, deklarace sestav a mergů (opět podobné dnešním).Jen procedury vypadaly úplně jinak - nepodobaly se Pascalu, ale byly to v podstatě jednopísmenové zkratky. V sestavách, procedurách i mergích chyběly proměnné, datum nedovedlo rok vyšší než cca 1990 (32 525 dnů po 2.1.1910) - např. edit(Soubor,()) se zapsal jako E Soubor @ (pokud se ještě pamatuju).
S příchodem PC se projekt nejprve pouze přeložil jako 16.bitová úloha, ale pak se postupně rozvíjel dál a dodělávaly se další možnosti, doplnily se dnešní procedury a vznikl počátkem 90. let PC-FAND.
Na konci života PC-FANDu vznikl na Slovensku pokus převést PC-FAND do Delphi (a pod Windows). Autor - pan Kristiňák - se dostal poměrně daleko - už se daly fandovské úlohy spustit, nebyla však hotová grafika, a prostředí bylo hodně nestabilní. Ale začalo to aspoň trochu fungovat, už sedalo pracovat na ladění. Bohužel pan Kristiňák poměrně náhle zemřel a jeho práce asi zmizela v propadlišti dějin.
Původní autoři se pokusili cca před osmi lety projekt vzkřísit pro 64bitové Windows. Co bylo příčinou jejich nezdaru, to nevím. Každopádně není pravda, že by (PC)FAND nepřežil nástup SQL. Nepřežil nástup Windows a jejich (ne)podporu dosových úloh. Dokonce PC-FAND měl vazbu na SQL server.
Osobně si myslím, že nejrychlejší cesta k "probuzení" FANDU do W-FANDu je zvolit nějaký SQL server (PostGress??), navázat práci s datovými soubory na tabulky serveru a nepředělávat se s prací s tabulkami, sdílením a podobnými záležitostmi. Pak je možné zcela opustit fandovský textový editor a místo něho nasadit nějakou komponentu Delpri (nebo Lazara). Udělat novou grafiku a ta by (aspoň v první chvíli) mohla značně zjednodušit původní kód - gridy nahradit datový editor. Vždyť spousta z toho, co se muselo tehdy složitě programovat, je dnes součástí komponent, spoustu práce s tříděním a výběrem dat udělá SQL server. Části v assembleru, které zrychlovaly práci, byly nutností na počítačích XT s rychlostí 4,66MHz (opravdu MHz!!), ale dnešní počítače snadno zvládnou mohutnější kód. Ale to se mi moc hezky mluví, když to nemusím dělat :-).
Běh starých aplikací pro PC Fand je určitě zajímavý. Mě ale více zaujala myšlenka Pavla týkající se jednoduchosti vývoje a hledání moderních alternativ.
Chtěl bych prověřit následující nástroje:
* OpenXava
* LibreBase
* Xojo
* LiveCode
Napadají vás další RAD nástroje, které minimalizují množství kódu?
Znám jednoho dlouholetého "Fandistu", kterého bych rád využil pro testovaní.
Čistě náhodou jsem narazil na tento článek a mám z toho velkou radost. Je zajímavé prozkoumat program, jak to v něm vlastně funguje.
Bohužel se mi nedaří program zkompilovat. Borland Pascal 7 mám (zřejmě 7.01), měl by mít opravenou i chybu Runtime 200. Snažil jsem se dodržet i adresářovou strukturu, tedy Pascal je v adresáři BP7 a v něm je adresář FAND, do kterého jsem nakopíroval zdrojové soubory z adresáře PAS. Soubory z adresáře BP7 jsem nakopíroval do adresáře BIN. Při prvním spuštění po nakopírování souborů BP.* mi to ovšem píše chybu "Error reading symbol information".
Kompilace proběhne bez problémů (musel jsem nastavit ještě adresáře). Při spuštění ale program padá (při krokování to spadne při načítání tiskáren z RES souboru). Zakomentováním to padá opět někde jinde.
Soubory mi to vytváří FAND.EXE (velikost 140016 bajtů) a FAND.OVR (velikost 625237 bajtů), což jsou jiné velikosti než volně dostupný FAND42x.
Nenešla by se dobrá duše, která by popsala, jak se musí Borland Pascal nastavit, aby Fand fungoval?
S portováním FANDu se dostal nejdále pan Kristiňák, projekt WFAND, trvalo mu to s přestávkami několik let. Bylo to dotaženo dost daleko ale bohužel pán zemřel a neměl u toho spolupracovníky, takže ta práce přišla vniveč. Ostatní pokusy s nějakým převodem FANDu (do C, Javy, .net) většinou skončily dříve než pořádně začaly, převážně po nahlédnutí do zdrojáků.
Překlad FANDu je úzce vázán na prostředí BPascalu 7. Ovšem z důvodů úprav práce s pamětí ve FANDu byly upraveny některé knihovny BP. Je tam úprava práce s HEAPem (shora a zezdola stack a uprostřed heap) a realizace longjump podle vzoru C, který nahradil tehdy v BP neexistující try...catch. Takže zveřejněné zdrojáky zřejmě půjdou přeložit ale nebude to fungovat.
K odstranění závislosti na verzi BP je nutno pochopit logiku nejnižších vrstev FANDu,(BASE,MEMORY,DISK,...), nahradit tam ASM, přejít od "FAND" práce s paměti k dnešnímu jednotnému heapu. Opravdovým oříškem je nahradit longjump, protože to vyžaduje procházení a aspoň částečné pochopení většiny programu.
Děkuji Vám za vysvětlení a úpravu popisu na GitHubu. Jestli jsem to správně pochopil - v tom případě je potřeba mít dodatečně upravené unity alespoň v přeloženém tvaru v adresáři UNITS, a FAND by teoreticky mohl po kompilaci běžet? Chápu, že tyto úpravy a mj. i využívání video paměti, jsou v real modu DOSu potřebné.
A nebylo by možné publikovat i změněné runtime knihovny toho BP, aby byla možnost skutečného funkčního rebuildu (pro ty, kteří standardní BP 7 mají, ať už odkudkoliv) ? Podobného "Abandonware" je na internetu spousta ... Mimochodem ten WFAND asi není opensourcovatelný Alisem, ten zřejmě skončil někde v propadlišti dějin a pozůstalosti pana Kristiňáka ???
Ano, WFAND bohužel skončil v propadlišti (ne dějin ale pozůstalosti), i když zavčasu tam byla dosti významná nabídka na podporu toho vývoje technicky i financování. Šlo to mimo ALIS. Bohužel jsou mnozí skvělí programátoři současně i docela solitéři . . . . U těch úprav knihoven BP 7 si už ani autor nepamatuje na detaily, je to již vlastně 10tky let, pravděpodobně to byla unit TURBO . Také není jasné jak toto zveřejnit a neporušit nějaké licence.
Zveřejnění zdrojáků mělo za cíl zjednodušit přístup k informacím o způsobech řešení FANDu těm kteří řeší určitou problematiku návaznosti na FAND, např. přístup k FANDovským datům, strukturu indexů apod.
Pokud by někdo chtěl nějak přímo navázat na DOS - FAND (ver.4.2x) nějakou svojí úpravou přes stávající překlad pod BP7 a případně to nějak distribuovat, asi bychom o tom chtěli v ALISu vědět. Protože stále ještě poskytujeme technickou podporu uživatelům - programátorům i uživatelům síťových verzí. V tom případě pak můžeme individuálně pořešit i problém těch upravených knihoven.
Děkuju za odpověď, z mé strany jde hlavně o "archeologickou zvědavost" a řekněmě ověřitelnost toho zveřejnění s tou reálnou proveditelností buildu, rozhodně neplánuju distribuovat upravený FAND.
Ohledně (nejsem teda právník) zveřejnění úpravy BP knihoven - často jsem viděl třeba u zveřejněných starých her, kdy je zveřejněn zdroják a ne další potřebná binární data hry (ta jsou zřejmě stále licencovaná, třeba u Wolfensteina), že se potřebná úprava zveřejní jako diff/patch popis (něco jako offset ve file, stará, nová hodnota) a název souboru+délka+checksum originální verze ... tím zveřejníte délku souboru (která stejně někde publikovaná určitě je) a defakto vámi vyrobené bajty ...
S tím WFANDem je to škoda, ale tolik let po úmrtí autora a zamrznutí vývoje je to asi fakt jen archeologie ... i když třeba by mohlo být zajímavé to porovnat, je to kus CZ PC historie a kdyby se o této stránce a publikaci PC-Fandu dozvěděli pozůstalí, třeba by se s nima dalo domluvit ... nebo už není žádný kontakt, aby to někdo vyhrabal a dal nějaký souhlas se zveřejněním jako historie ?
Tak pro nas by to bylo fajn zase bezet nativne na PCfandu.
Do dnesniho dne na nem stale bezi cela firma - linuxovy fileserver, pracovni stanice win7
Ucetnictvi a skladove hospodarstvi jsem si kdysi naprogramoval cele sam firme na miru.
Je to rychle a polehlive i na historickym zeleze :)