Bonjour à tous les Cpcdosiens participant au programme d'amélioration Cpcdos Ultima Test du projet du co-noyau Cpcdos OSx!
J'ai le plaisir de vous informer qu'une nouvelle mise à jour vous à été envoyé par e-mail! Vous êtes désormais une vingtaine à participer encore merci !
Les nouveautés au complet
Les nouveautés en bref
- Première GUI (Interface graphique)
+ Possibilité de créer uniquement une Fenêtre + PictureBox en CpcdosC+ pour le moment.
+ Exemple d'affichage de rendu 3D dans un picturebox via son pointeur vidéo généré depuis une instance du moteur graphique 3D.
+ Moteur + Rendu 3D désormais multi-instanciable et fenêtré. - Amélioration de l'exécution des fichier Windows 32 Bits format PE. (Compilateur C++ CWave collection conseillé plus d'info en bas du message!)
- La commande STOPK/ simule pour le moment le signal SIGABRT sans crasher, et qui par une coïncidence fait revivre FreeDos qui ne devrais pas être le cas.
Une fois STOPK/ exécuté, je vous conseille de redémarrer le PC, car Cpcdos modifie les segmentation mémoire de FreeDos, et donc le système est très instable.
Et oui FreeDos est toujours au projet de séparation, PATIENTEZ - Correction de la commande PING/ : les trames ICMP avaient 1 fois sur 2 la même ICMP_ID et donc faisait perdre la tête de vos routeurs internet de sorte à ce que les trames ayant la même ID étaient considérés comme des effets "echos", ou un paquet du type "RST" (Reset)
- Tout fichiers exécutable sont regroupé dans la commande EXE/ avec leur paramètres correspondant
EXE/ /LLVM {fichier CLANG .LL ou .BC}
EXE/ /PE {Fichier .EXE Win32PE}
EXE/ {Fichier .CPC} - Programmation Objet : Ajout de la notion de "fonction". Vous avez la possibilité de développer votre OS & applications en CpcdosC+ avec des fonctions !
+ Arguments d'entré non typé (..., ..., ...).
+ Retour de valeur non typé.
+ Déclaration fonctions externe non typé.
+ Appel de fonction native de Cpcdos non typé. - Cpcdos SDK : Ajout de nouvelles fonctions utilisable depuis du code C++ LLVM, Win32 et Cpcdos en interne.
- Optimisation et corrections plus ou moins mineures.
Informations importantes
Concernant l'exécution des fichier exécutable Windows, je vous conseille fortement de compiler votre code grâce à un outil de compilation simplifié, très performante et multi-plateforme basé sur GCC :
CWave Collection.
Cet outil va permettre de générer de manière plus fiable un fichier .exe
compatible Windows ET Cpcdos.
Des exemples de programmation C++ pour Cpcdos sont à disposition dans ce compilateur. Adaptez votre code pour un exécutable x86 seulement. Si vous voulez un maximum de portabilité, veillez à ne pas trop dépendre du noyau NT, toutes les fonctions NT et de ses DLL n'y sont pas encore tous présents dans Cpcdos.. on va dire qu'il y a que 10 à 15%
Concernant le pack de développement Cpcdos SDK, vous avez à disposition 2 méthodes de programmation :
- INTERNE
Permet de développer nativement et directement dans le noyau Cpcdos grâce à une entête C++ «CPC_WPR.H» qui contient la liste des fonctions wrappé de Cpcdos, il y sont pas encore tous mais ça avance!
Cette méthode permet de générer votre propre "NOYAU.EXE" et inclure des fonctions que vous jugez non présent afin que vous puissiez futurement les utiliser en CpcdosC+ ou en C++ LLVM, Win32.. et pourquoi pas nous faire part de votre fonction pour un éventuel ajout dans la prochaine mise à jour afin que tous les développeurs Cpcdos puissent utiliser votre fonction
- EXTERNE
Permet de développer depuis votre PC Windows, Linux ou Mac, des fichiers exécutable Cpcdos ou multi-plateforme grâce à des compilateurs existant tout comme CLANG 3.8 et CWC.
Et exécuter votre application de manière externe/modulaire/dynamique et de le décharger après exécution depuis Cpcdos!
Un IDE portant VMWare verra bientôt le jour afin de tester votre code C++ "de manière dynamique sur VMWare" dynamiquement pré-configuré pour chaque compilations Cpcdos, depuis votre Windows / Linux !
Concernant la prochaine mise à jour en T6, elle prendra un peut plus de temps puisse qu'en effet, un problème gigantesque à été trouvé lorsque vous effectuez des boucles lourdes en C++ depuis du code EXTERNE (Win32 EXE, Clang LLVM) l'ordonnancement preemptif intégré au noyau Cpcdos ne fonctionne plus correctement, les interruptions IRQ qui permettent son fonctionnement ne fonctionnent plus.
Une refonte partielle de Cpcdos et CPinti Core est prévue dés aujourd’hui.
Afin de palier à ce problème depuis vos boucles C++, vous pourrez temporairement faire appelle à la méthode du type
doevent/yielding en appelant une fonction wrappé du moteur CpcdosC+ qui lui va refaire vivre pendant quelque microsecondes le l'ordonnanceur de tâches. La commande serai
CCP/ /PAUSE ou
CCP/ /SLEEP
Cordialement.
PS : Cpcdos et Cpcdos SDK sera bientôt hébergé sur GIT afin de simplifier les téléchargements et les compilations grâce au projet du compilateur CWave Collection par Michael BANVILLE que je remercie beaucoup!
Partager