= = = = = = = = = = = = = = = = = = = *** Cpcdos OS2.0.5 Alpha 4.0 T5 *** for ultima testers *** 3 Octobre 2016 *** = = = = = = = = = = = = = = = = = = = INFO: Nous prevoyons de reecrire l'ordonnanceur des taches / multi threading en vue de sa faiblesse au point de vue des boucles bloquantes que vous pouvez faire en Clang/LLVM C++ et en CWC C++ (Win32). Une reecriture partielle de Cpcdos / CPinti Core sera alors annoncée. ##### Cpcdos OSx kernel ##### - GUI : Premiere version de l'interface graphique (Fenetre & picturebox uniquement) + Possibilité de pointer le picturebox sur une bitmap en ARGB. - Cpcdos : Correction du bloquage de la console apres 2 instances du wrapper C++. - Cpcdos : Amelioration de l'execution du LLVM et du ExeLoader. + Exeloader: printf() désormais lié à la console Cpcdos & Cpinti Core debug. - Cpcdos : Optimisation de la vitesse de traitement syntaxique des commandes CpcdosC+ du moteur CC+. - Cpcdos : /!\ Coupure temporaire de la routine d'interruption ISR pour problemes stabilite. Voir INFO /!\ - Cpcdos : Wrapper C++ désormais exécuté dans un autre thread si l'instance à été exécuté depuis un processus parent dont son PID est égale à '0' (Comme la console) Ce qui évite de bloquer votre console pendant l'exécution d'une fonction. Si le PID est superieur à '0' alors l'instance bloquera le thread parent le temps de son exécution. Afin de palier à ce bloquage, vous pouvez exécuter l'instance depuis un autre thread grâce à la commande cmd/ /thread {VotreCommande} - Cpcdos : Amelioration du printf() + le CR LF sur la console graphique provenant des executable Win32PE. - Cpcdos : Autres petites optimisations et corrections mineures du noyau. - CpcdosC+ : Correction du crash de la commande "STOPK/". Elle utilise temporairement le signal SIGABRT. - CpcdosC+ : Correction des bugs des numero PIB binaire qui étaient hazardeusement NULL + Correction d'un bug qui bloquait l'accès aux variables _EXE_PROC_, _PID_PROC_, _PIDB_PROC_ au niveau 2. - CpcdosC+ : Correction de bugs concernant la commande "PING/". -> Transition des réponses serveur corrigé! -> Charge étrangement lourde du CPU corrigé! -> Bugs de transimission de paquets ICMP "en parallèle" corrigé! - CpcdosC+ : "Rassemblement" de tout "fichier executable" dans la commande "EXE/" -> Executer fichier LLVM : EXE/ /LLVM {Fichier .BC ou .LL} -> Executer fichier Win32 PE : EXE/ /PE {Fichier .EXE} -> Executer fichier Cpcdos : EXE/ {Fichier .CPC}. - CpcdosC+ : Correction du problème de syntaxe quand il y avait un espace ou une tabulation avant le fameux "@#". - CpcdosC+ : POO > Ajout des notions de "Fonctions". Possibilité de créer une fonction CpcdosC+. + Arguments de fonctions. + Retour de valeur. + Appelle de fonction du noyau Cpcdos. - GZE 3D : Optimisations + Rendu fenêtré --> multi-thread ET multi-instanciable! - CpcdosSDK : Ajout de nouvelles fonctions + reecritures des exemples. ##### CPinti Core for Cpcdos OSx ##### - Correction (+optimisation du CPU) du PING qui avait de serieux probleme de transition des paquets ICMP. Ce dernier avait 1 fois sur 2 la même ICMP_ID pour les trames envoyés simultanément, voir en parallèle donc la dernière réponse était rejeté, pensant que cela était un RESET ou un effet d'echo entre routeurs. Et en plus de cela, il receptionnait mal les réponses des serveur distant de plus de 60ms de réponse. Ce problème à été corrigé après de nombeuses heures de recherches! ;) - Mise a jour du loader Win32 PE -> Correction de bugs. -> Toutes fonction printf() natif relié au debug de CPinti Core (Console). -> 99% fonctionnel avec du code independant. (Exemple avec GZE.EXE). - Correction + Optimisation des problemes d'instances de fonction CPinti Core. - Autres petites optimisations et corrections mineures. ----------------------------------------------------------------------------------------------------------- = = = = = = = = = = = = = = = = = = = *** Cpcdos OS2.0.5 Alpha 4.0 T4 *** for ultima testers *** 15 Juillet 2016 *** = = = = = = = = = = = = = = = = = = = - Cpcdos : ** Optimsation ultime et reecriture particelle du noyau ** ** et de la communication avec CPinti Core. ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** - Cpcdos : Ajout du moteur de rendu graphique 3D, GZE. - Cpcdos : Ajout de la fonction de récupération de la mémoire RAM. - Cpcdos : Optimisation graphique du menu info de la console. + Suppression des effets de scintillements. - Cpcdos : Correction de bugs des variables au niveau 2 dans le moteur CpcdosC+. - CpcdosC+ : Commande SYS/ ajout des parametres "/ECRAN" ou "/SCREEN" Exemple : Lister les resolutions d'ecran disponibles en 16 bits (16, 24, 32) SYS/ /ECRAN /LISTE 16 ou SYS/ /SCREEN /LIST 16 Tester une resolution SYS/ /ECRAN /TEST 1024x768x16 ou SYS/ /SCREEN /TEST 1024x768x16 - CpcdosC+ : Commande SI/ ajout de 2 nouveaux operateurs ~= : Contient !~= ou N~= : Ne contient pas Exemples : Tester si la chaine "1234567890" contient "4" si/ "1234567890" ~= "4" alors:Txt/ ok! Tester si la chaine "Bonjour tout le monde" ne contient pas "z" Si/ "Bonjour tout le monde!" !~= "z" alors:Txt/ ok! - CpcdosC+ : Correction commande telecharger/. Désormais si aucun protocole (http, ftp..) n'est specifié, un message d'avertissement AVT_061 se produira. (Remerciement a Esteban) - CpcdosC+ : Commande CCP/ /FIX.NIVEAU (ou /SET.LEVEL) peut afficher le niveau en cours. Exemple : CCP/ /FIX.NIVEAU = 4 @#Toto CCP/ /FIX.NIVEAU txt/ Le niveau est de %Toto%. - CpcdosC+ : Ajout de la commande d'execution de fonction C/C++ wrapped via le SDK de Cpcdos OSx. SYS/ /WRP {Numero de FunctionID} - CpcdosC+ : Ajout du parametre \#NON-VAR ou \#NO-VAR (A METTRE EN FIN DE LIGNE) qui permet de ne pas lire la variable. Exemple : Txt/ Contenu est %TOTO% \#NON-VAR Affiche : Contenu est %TOTO% - CpcdosC+ : Ajout de la commande ECRIRE/ ou WRITE/ Qui permet d'écrire directement dans un fichier exemple: Ecrire/ Dossier\Fichier.txt = Coucou! Ca va ? ##### CPinti Core for Cpcdos OSx ##### - Réecriture complete de CPinti Core du C++98 (1998) en C++14 (2014) + Utilisation des pointeurs intelligents RAII de GCC 5.1 + Réecriture de la fonction de lecture de fichiers en C++14 + Réecriture complete de la partie reseau (Serveur TCP, client TCP, ping ICMP) + Réecriture du gestionnaire de threads + Réecriture de la routine d'interruption ISR + Réecriture de la séquence de d'initialisation (x10 plus rapide) - Fonctions externes desormais wrappable via un SDK de Cpcdos. - Ajout d'un debug centralisé pour CPinti Core + Reecriture des messages avec l'inclusion de la langue Anglophone pour le debuggage. - Ajout d'une LLVM (Low-Level-Virtual-Machine) pour executer du code JIT native compilé depuis CLANG (C/C++). (Format .LL ou .BC) ----------------------------------------------------------------------------------------------------------- = = = = = = = = = = = = = = = = = = = *** Cpcdos OS2.0.5 Alpha 4.0 T4 *** for ultima testers *** 12 Février 2016 *** = = = = = = = = = = = = = = = = = = = - Moteur CCP: Correction du bug 'AVT_008' comme quoi la variable 'existe pas' si on tape une commande du type: SI/ "%" = "%" alors: ... ou SI/ "%" = "%%" alors: ... (Remerciements au contributeur Esteban) - Moteur CCP: Ajout des exception des NOMS DE VARIABLES (Commande FIX/ ou resultat @#) Seul les caracteres autorises sont : -> A, B, C, D, E, F, G, H, I, J, K, L, M, O, P, Q, R, S, T, U, V, W, X, Y, Z -> a, b, c, d, e, f, g, h, i, j, k, l, m, o, p, q, r, s, t, u, v, w, x, y, z -> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 -> _, ., -, $, /, \, (, ), [, ], ~, &, #, ^, @ - CpcdosC+ : Ajout du parametre /TEMP dans la commande TELECHARGER/ Possibilité de choisir --> le dossier de destination (garde le nom de fichier d'origine. Ou 'index.htm' si non définit) --> le nom de fichier destination (Garde le dossier cible TEMP\NET) --> le dossier ET le dossier de destination Vous pouvez choisir un dossier temporaire permanant en manipulant la variable %CPC_TEMP.NET% (Remerciements au contributeur Esteban) ----------------------------------------------------------------------------------------------------------- = = = = = = = = = = = = = = = = = = = *** Cpcdos OS2.0.5 Alpha 4.0 T3 *** for ultima testers *** 03 Février 2016 *** = = = = = = = = = = = = = = = = = = = - Moteur CCP/ CpcdosC+ : Ajout d'un nouveau parametre dans la commande CCP/ /Optimisation ou /Optimization en anglais Cette commande active l'analyse du fichier de commande avant son execution, afin de chercher d'eventuels optimisations. En moyenne, avec ce parametre, vous gagnez un gain de +20% a +50% de performances sur la lecture de vos programmmes. Exemple: Activer l'optimisation: CCP/ /Optimisation = 1 Desactiver l'optimisation: CCP/ /Optimisation = 0 - Moteur CCP: Correction d'un bug provoqué au niveau 5 des variables si plus de 6 variables sont enregistrés. - CpcdosC+ : Possibilité de faire des "algorithmes calculatoire en ligne". Ce qui permet de faire plusieurs opérations arithmétiques sur 1 ligne. Comme sur vos calculatrices!! :) Il suffit d'utiliser le /C(VotreCalcul) Exemple 1: txt/ /c(4 * (8 * 12.8964) + 23 / 0.5) Renvoie: 458.6848 Exemple 2: fix/ toto = 123 fix/ toto = /c(%toto% * 2) txt/ Valeur de toto = %toto% renvoie: Valeur de toto = 246 Problemes remarqués: Soustractions des nombres négatifs renvoie un mauvais résultat. --> En correction pour la prochaine MàJ - CpcdosC+ : Ajout du parametre /SRVINFO ou /+SRVINFO dans la commande TELECHARGER/ Ceci donne la possibilité de dissocier les informations du serveur Exemple : Telecharger/ http://MonsiteWeb.com/toto.html --> Telecharge uniquement le contenu de toto.html Telecharger/ /SRVINFO http://MonsiteWeb.com/toto.html --> Telecharge uniquement les information du serveur (HEAD http command) Telecharger/ /+SRVINFO http://MonsiteWeb.com/toto.html --> Télécharge les informations du serveur ET le contenu du fichier (Association) - CpcdosC+ : Ajout de la commande POS/ (ou LOC/ en anglais) pour positionner votre curseur console. (Type en 8x8). (Type font graphiques pour la prochaine version!) Exemple : Positionne a la position 34 en X POS/ x:34 Positionne a la position 14 en Y POS/ y:14 Positionne a la position 34 en X et 15 en Y POS/ x:12 y:15 Positionne a la position 23 en Y et 56 en X POS/ y:23 x:56 - CpcdosC+ : Ajout de la commande SI/ ou IF/ pour executer du code sous une condition. Exemple mono ligne: SI/ "5" = "5" alors:Txt/ Ok! --> Renvoie : Ok! Si/ "8" = "6" alors:Txt/ Ok! Sinon:txt/ Faux.. --> Renvoie : Faux.. Exemple multi ligne: Si/ "5" = "5" alors: txt/ Ok! txt/ C'est le bon resultat! sinon: txt/ Faut! txt/ c'est le mauvais! fin/ si --> Renvoie : Ok! C'est le bon resultat! Si/ "5" > "8" alors: txt/ Ok! sinon: si/ "8" > "5" alors: Txt/ Ah! 8 est plus grand que 5! fin/ si fin/ si --> Renvoie : Ah! 8 est plus grand que 5! ----------------------------------------------------------------------------------------------------------- = = = = = = = = = = = = = = = = = = = *** Cpcdos OS2.0.5 Alpha 4.0 T2.1 *** for ultima testers *** 28 decembre 2015 *** = = = = = = = = = = = = = = = = = = = - Moteur CCP: TRES GROSSE correction de bugs non exploités. (21h->2h du mat!) -> Niveau de privacité 1 et 2 ne fonctionnaient pas correctement. -> Problème acces en ecriture d'une variable niveau supérieur. -> CCP/ /CHANGE:[Variable] qui acceptait les valeurs #NULL - Moteur CCP: Optimisation acces test/ecriture/lecture de varibles CpcdosC+. - Cpcdos : Optimisation temps priorite des threads --> Reseau CPinti. - Cpcdos : Correction des bugs mineures. - CpcdosC+ : Correction probleme affichage du message d'avertissement de variable introuvable. ##### CPinti Core for Cpcdos OSx ##### - Réseau : CORRECTION CRASH: Limitation à 1024 octets (+entete) par paquets TCP Serveur et client. (Problème temporaire) + Correction de crash en cas de "spoil" de la part d'un serveur. (1/5 crash possible) - Réseau : Optimisation du code + changement temps de priorite des threads (Gain de 1% à 5% gagné). # Remerciement à Esteban, Diderot (et ses 13 clients TCP) et Léo pour leur participation aux crash tests. ----------------------------------------------------------------------------------------------------------- = = = = = = = = = = = = = = = = = = *** Cpcdos OS2.0.5 Alpha 4.0 T2 *** for ultima testers *** 26 decembre 2015 *** = = = = = = = = = = = = = = = = = = - Pilote réseau : Ajout du support des carte réseaux de séries 2015 et antérieur. - Realtek 8168 10/100M Gigabit Ethernet PCI. - Realtek 8111 10/100M Gigabit Ethernet PCI. - Cpcdos : Optimisation du démarrage du noyau. (Gain gagné:20%) - Cpcdos : Correction des bugs mineures. Et fuites de mémoire intempestives lors des instances de nouveaux threads. - Cpcdos : Ajout d'arguments de démarrage de Cpcdos. - /DOSBOX --> Mode dosbox (Pilote souris interne, pas de support réseau) - /NONET ou /SANSRESEAU --> Sans support réseau. - /NODBG ou /SANSDBG --> Masquer les informations de démarrage (Plus propre  ) - /CPINTICOREDBG --> Démarre directement le mode debug+console de CPintiCore - /CCP:"Commande CpcdosC+ " --> Exécuter une commande CpcdosC+ après l’initialisation. Exemple sous DOS: KRNL32.BAT /CCP:"TXT/ Coucou !" KRNL32.BAT /SANSDBG ... - Console : Correction du bug graphique lors de la navigation dans l'historique des commandes. avec la police activée. (Toujours en amélioration) - Console : Correction du curseur volant. (Decallage provoque par un autre thread utilisant le curseur) - Console : Optimisation de l'activité du thread. - CpcdosC+ : Ajout de la variable %CPC.REP% (REPertoire) ou %CPC.DIR% (DIRectoty) qui contient le chemin d'acces du noyau. Cette variable peut servir comme repertoire de base pour vos programmes. ** Exemples ** exe/ %CPC.REP%\Dossier\Programme.cpc exe/ %CPC.REP%\..\dossier\programme.cpc --> Possibilité de remonter des repertoires '..' txt/ Vos polices d'ecritures sont dans le dossier : %CPC.REP%\fonts - CpcdosC+ : Ajout de la commande "CCP/ /pause:TempsEnMillisecondes" pour mettre en pause un thread pendant un temps définit en milliseconde (Micro-seconde possible) - CpcdosC+ : Ajout de la commande "CCP/ /Change:VARIABLE" pour bloquer le thread en cours jusqu'à que VARIABLE change de contenu. - CpcdosC+ : Possibilité d'afficher le caractere pourcent '%' sans qu'il soit pris en compte tant que encapsulateur du nom de variable. Pour ceci vous devez mettre \% et il sera remplacé par % - CpcdosC+ : Ajout du parametre de reformatage d'une commande si une variable contient une autre variable à lire. \#REFORMAT-VAR ou \#VAR-REFORMAT ou \#REFORMATER-VAR ou \#VAR-REFORMATER - CpcdosC+ : Ajout de parametre dans SYS/ /DEBUG /CpintiCore = [0 à 2] 0 : Désactiver le mode console debug CPinti Core. 1 : Activer le mode console debug CPinti Core. 2 : Activer le mode console CPinti Core uniquement. - CpcdosC+ : Ajout des parametres dans SERVEUR/ pour créer/connecter un serveur TCP /client Gestion de clients : /client {Machine/IP}:{Port} --> se connecter à un serveur TCP /client /set:{Numero de PID} Blabla.. --> Envoyer "Blabla.." /client /get:{Numero de PID} --> Recupérer les données reçu. /tcp:[port] /set:0 Envoyer en broadcast :>0 Envoyer à 1 client précis. /tcp:[port] /get (En révision) /tcp:[port] /mode:VAR --> Methode par variable (Par defaut) ** Exemples ** Serveur/ /tcp:2316 --> Crée un serveur TCP port '2316' Serveur/ /client 127.0.0.1:2316 --> Se connecte à notre serveur. Exemple de PID recu '56789' Serveur/ /client /set:56789 Hello! --> Envoyer "Hello" au PID 56789 qui LUI est connecté au serveur. Serveur/ /client /get:56789 --> Receptionner les donnees du serveur Serveur/ /client /stop:56789 --> Se deconnecter du serveur Serveur/ /stop:2316 --> Arreter le serveur TCP. - Moteur CCP : Correction du crash si on entre uniquement des '%' # Merci à Ronsgeek! [Sujet: 14/11/2015 "CRASH DE CPCDOS !!! (YEAH)"] - Moteur CCP : Optimisation générale du moteur. (Gain gagné:10%) + Optimisation acces lecture des variables CpcdosC+ - IUG/PNG : Optimisation de la lecture des fichiers images PNG. (Gain gagné:10%) - IUG/Police : Correction du problème d'affichage après désactivation de la police # Merci à Angels74! [Sujet: 07/11/2015 "Bug d'affichage lors de la désactivation de polices"]. - IUG/Police : Ajout de deux polices d'écriture - Cloudy - Chiller ##### CPinti Core for Cpcdos OSx ##### - CPintiCore: Code désormais compilé avec GCC 5.3 - CPintiCore: Optimisation générale du coeur. (Gain performances gagné:30%) - CPintiCore: Correction de quelques fuites de mémoires. - CPintiCore: Réecriture et optimisation du gestionnaire de création et exéution de threads. - CPintiCore: Amélioration de l'affichage des informations de débuggage. - Réseau : Optimisation/Correction générale des fonctions réseaux et instances. - Réseau : Correction des crash du serveur TCP. - Réseau : Ajout des fontionnalités client TCP. - Réseau : Correction (Réecriture COMPLETE) du protocole ICMP pour ping des machines. - IO : Optimisation de la lecture des fichiers. (Gain gagné:60%) ----------------------------------------------------------------------------------------------------------- = = = = = = = = = = = = = = = = = = *** Cpcdos OS2.0.5 Alpha 4.0 T1 *** for ultima testers *** 06 novembre 2015 *** = = = = = = = = = = = = = = = = = = << Première sortie pour les Ultima testers >> Autres : - Optimiser le zoom du logo selon les perfs du systeme [OK] ' - Creer une fonction qui donne une note (Calcul../Calcul../Graphisme/..) [OK] ' - Probleme commande si il y a un espace " " il ajoute un espace dans les parametres [OK] ' - 05-09-2015 : Reecriture complete de io.C et desormais prorement instanciable + desallocation memoire - init.c ajouter le debug texte [OK] ' - Execution a partir d'un label / No ligne [OK] ' - Rendre le serveur TCP/client multi-instanciable et destructable + buffer