V polovině roku 2018 uvolnila společnost A L I S spol. s r.o., Česká Lípa, zdrojové kódy k PC-FAND® na GitHubu:
https://github.com/alisoss/pcfand
Společnost A L I S je také držitelem ochranné známky PC-FAND®
Kolem této události bylo na internetu napsáno mnoho a také se objevily nějaké diskuse:
https://www.root.cz/clanky/pc-fand-hist ... #newIndex1
https://www.itnetwork.cz/programovani/s ... 8a25533750
Někteří diskutující si posteskli, že na trhu nic podobného není a že by uvítali pokračování vývoje.
Projekt si tedy klade za cíl přepsat původní zveřejněný PC-FAND® 4.2x do "něčeho modernějšího". S ohledem na to, že PC-FAND je napsán v Borland Pascalu s využitím přímého přístupu k HW a často se používá vložený assembler, rozhodl jsem se jej přepsat do C++. Přišlo mi to jako nejvhodnější varianta. Např. Python nebo C# jsou už příliš vzdálené původnímu přístupu. Na přepisu jsem začal pracovat koncem roku 2019. Nejdříve jsem se snažil zjistit, kde kód "začíná". Pak jsem začal s přepisem jednotlivých funkcí a procedur, podle toho, na co se původní kód odkazoval a co volal. Po pár dnech jsem se rozhodl, že začnu přepisovat celé soubory. Napsal jsem si v C# konzolovku, která převádí původní PAS soubory do CPP. Není to sice ideální, ale i tak to ušetří dost času. Pro původní Pascal string jsem napsal třídu pstring. Také jsem musel napsat emulaci některých pascal příkazů (val, str, ...), aby nebylo nutné stále dokola přepisovat původní kód.
Musím uznat, že původní programátoři byli opravdu borci. Z Pascalu vyždímali snad všechno, co jim umožnil. Opravdu smekám nad tím, co dokázali. Jen je škoda, že v kódu nejsou skoro žádné poznámky a komentáře.
CPPFAND má být 32/64bit konzolovou aplikací v C++. Ideálně, kdyby fungoval na dalších platformách, ale to není aktuální cíl. Využivá totiž Windows přístup ke konzoli, ke klávesnici, k souborům atp. O přepisu grafických knihoven "G*.PAS" zatím neuvažuji. Velkým úspěchem bude, pokud se podaří přes CPPFAND spouštět úlohy z PC-FANDu 4.2x, pak si dokážu představit, že by mohlo zůstat jádro v C++ ve formě knihoven a nad ním by bylo možné postavit program v něčem abstraktnějším, např. Java, C#, Python atp.
Pokud by se našel někdo se zkušenostmi s PC-FANDem, Pascalem a C++, tak budu velice rád za každou pomoc.
Jak to všechno začalo
Moderátor: spainhell