Microsf01 CpcdosC+ Manuel doc (En cours de rédaction 09/08/2013) Apprendre la programmation CpcdosC+ pour le Kernel Cpcdos OSx

Please download to get full document.

View again

of 61
316 views
PDF
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Document Description
Microsf01 CpcdosC+ Manuel doc (En cours de rédaction 09/08/2013) pour le Kernel Cpcdos OSx Version OS2.0.5 Alpha Bits Programmation base en fichiers de commandes et interprétation en console
Document Share
Documents Related
Document Transcript
Microsf01 CpcdosC+ Manuel doc (En cours de rédaction 09/08/2013) pour le Kernel Cpcdos OSx Version OS2.0.5 Alpha Bits Programmation base en fichiers de commandes et interprétation en console & interface utilisateur graphique. Tutoriels & exemples Contact : Bug&Info : Avertissement : Ce logiciel est protégé par la loi relative au droit d'auteur et par les conventions internationales. Toute reproduction ou distribution partielle ou totale de ce logiciel sans autorisation, par quelque moyen que ce soit, est strictement interdite. Toute personne ne respectant pas ces dispositions se rendra coupable du délit de contrefaçon et sera passible des sanctions pénales prévues par la loi. J8781B5 depuis Mai 2011 Autres informations : Aucuns code source du noyau Cpcdos est dévoilé pour le moment. Seul le code source du système d'exploitation CraftyOS basé Cpcdos est libre. Vous avez le droit de produire vos projets librement, de le partager. Mais si vous incluez les binaires de cpcdos, assurezvous d'avoir l'autorisation au près de FAVIER Sébastien. (Contact voir page de garde) Cette version de Cpcdos est totalement gratuite Seul la version OSSERVER sera payante. Sommaire : 1. Histoire du CpcdosC+ Chapitre I 2. Projet Cpcdos? Chapitre II 3. Retirements minimum Chapitre III + Installation DosBox/USB Bootable/Disque dur 4. Commandes de bases Chapitre IV Effacer l écran cls/ Commentaires rem/ Affichage de textes txt/ Positionner curseur (Console) posx/ & posy/ couleurf/ couleurp/ Variables/Créer un tableau fix/ Exécuter un fichier CpcdosC+ exe/ Arrêter l exécution d un fichier CpcdosC+ stop/ + Couleurs de la console + Arrêter net le Kernel stopk/ si/ Conditions Exécuter un fichier exécutable DOS/WIN32 shell/ + Exécuter commande MSDOS/FreeDos dos/ Récupérer les entrées au claviers touche/ Mettre en pause le système pause/ Prendre un Screenshot (IUG/LC) src/ Exécuter une commande d'entrée cmd/ Interaction Cpcdos (arret/redemarrer...) cpc/ Tester un réseau ou une machine ping/ Connecter un lecteur réseau connecter/ deconnecter/ + Déconnecter un lecteur réseau Les fonctions + Les fonctions graphiques 5. Commandes avancées Chapitre V Initialiser une interface ini/ Créer une Fenêtre ini/ fenetre( ) Créer un Bouton ini/ bouton( ) Créer un Label ini/ label( ) Créer une ImageBox ini/ imagebox( ) Créer un TexteBox ini/ textebox( ) Créer une interface creer/ Démarrer l'initialisation de l'os demarrer/ Lancer l'interface graphique (l'os) iug/ Les événements ev/ Afficher un MSGBOX msgbox/ Explorer un dossier explorer/ Fermer une fenêtre ou objet fermer/ Actualiser une ou plusieurs propriétés actualise/ Focus sur une fenêtre focus/ Lancer le mode console lc/ Lire ou éditer le registre reg/ Variables d'environnements Résolutions d'écran Configurer & Tester le système sys/ 1. Résumé système (Application externe) /quick 2. Tester le Kernel /krnltest 3. Status du Cache CPU /cpu_cache 4. Level du CPU /cpu_level 5. Compatibilité du VESA /testvesa 6. Lister modes d écran&bit /testecr 7. Initialiser le Kernel&SCI /ini_krnl 8. Tester la mémoire Etendu (XMS) /memtest 9. Nettoyer la mémoire /memclear 10. Tester le CPU /test 11. Appel interruptions DOS /int 12. Écrire & lire dans la mémoire /poke & /peek 13. Mémoire buffer /buffer 14. Charger un pilote /device 15. Booter sur un serveur ou local /boot Exemples Chapitre VI 7. Remerciements & liens Chapitre I Projet Cpcdos? ( Acronyme CPCDOS : Créé Pour Concevoir Des OS ) Le but de ce projet, est pour amateurs désirant de créer leurs propre système exploitation en toute simplicité sans utiliser l Assembleur, C ou autre que le CpcdosC+ Tout cela grâce à un système 32Bits, la séquence de démarrage, pilotes, création d'une interface graphique très avancée et simple allant jusqu'à 32Bits de couleurs et une résolution maximale 2048x1536 Ce système constitué d'un langage de programmation très simple avec des syntaxes, messages et commandes entièrement en Français, qui se nomme le CpcdosC+. Vidéo présentation : https://www.youtube.com/watch?v=mhskyaj9uek «Presentation Kernel Cpcdos OSx (2.0.5 A1.1) FAVIER Sébastien 01» CpcdosC+ CpcdosCommande+ Initiales : CC+ / CCP Utilisable en Console & en fichier Scripts (Batch) & Executable Cpcdos est un Kernel Monolithique modulaire Multitâche Coopératif Monolithique modulaire : Les parties fondamentales du système sont regroupées en un bloc dans le code source. Multitâche Coopératif : Gestions multitâche de plusieurs processus, qui communiquent en eux, son inconvénient c'est que si un des processus est défaillant, le système entier peux bloquer, voir Section critique Son principe c'est d'exécuter du code CpcdosC+ en lignes de commandes (en Console) ou via des fichiers de format.cpb : CCB (Code Compilé Binaire Non modifiable) en utilisant le principe du ByteCode.CPC CNB (Code Non Binaire Modifiable Type texte ) ( Débuté le 15 Juillet 2011 ) Schéma du fonctionnement du noyau LC (Lignes Commandes) : Partie en lignes de commandes semblable à la partie console Elles permettent l'introduction de l'interface Console en ligne de commandes IUG (Interface Utilisateur Graphique ) : Comme son nom l'indique, c'est tout simplement l'interface graphique où l'utilisateur interagit avec les objets etc... Console : Partie où l'on saisie les commandes CpcdosC+ Base de REGISTRE : Partie du système, elle fournis et enregistre les informations et paramètres système du Kernel. Il est aussi liée a la Console car on peu interagir au registre via la console avec la commande REG/ THREAD PROCEDURE ET APPLICATION : Partie où les informations des propriétés et objets sont placées, et utilisées afin que la partie Kernel dessine sur l'interface MOTEUR CPCDOSC+ : Partie du système où toutes les commandes CpcdosC+ sont analysée et exécutées par la partie KERNEL MATERIEL : Partie où le Kernel gère le clavier, souris, affichage, imprimantes, USB etc... KERNEL : Partie NOYAU.. tout simplement celui qui gère tout .. DEBUG : Partie assez importante qui enregistre ou affiche à la console, toutes le activités du Kernel! Nb : Le Kernel est une surcouche au dessus du DOS Schéma du registre : L utilisation du code CpcdosC+ s utilise dans 2 façons différentes! La première dite CCB ( Code Compilé Binaire ) Puis, CNB ( Code Non Binaire ) C estàdire que le CCB deviendra un exécutable direct au Kernel qui lui le code CpcdosC+ sera convertit Assembleur puis deviendra un fichier Binaire. Et le CNB est comme un fichier de paramètres, indiquant juste au Kernel les fonctions d interface avec du code de type texte, modifiable, personnalisable etc.. Par exemple le CNB que l utilisateur créera, pourra être un MsgBox, une simple fenêtre etc.. Chapitre II Histoire du CpcdosC+ Le premier langage de programmation développé par Microsf01 était pour le 3eme Cpcdos sur Amstrad Cpc 464 il se nommait CpcCmD à la base il était écrite en Basic 1.0 en 2006, ce langage ne servait pas a créer un programme, il était fait de façon à qu il ressemble à l interpréteur de commandes MSDOS. Le Second langage de programmation développé par était le CPCOMMAND sur Windows avec le l OS virtuel Cpcdos 4.5 écrit en Visual Basic 5, Batch(msdos), C++, il servait de commutateur pour le programme cet à dire que Cpcdos 4.5 avait un noyau avec une interface préprogrammé le noyau était en liaison avec les API de Windows Ce langage contient des commandes qui ont la base de : IO ( gestions de fichiers, lecture/écriture ) Réseau ( gestion de serveur IP et utilisation des protocoles de Windows avec le dossier de partage etc... ) Création d'interface ( fenêtres, événements... ) Le 3eme ( aujourd'hui ) c'est le CpcdosC+ acronyme de Cpcdos Commande+ Cpcdos : Crée Pour Concevoir Des OS initiales : CC+ ou CCP Ce langage est utilisé dans 2 types CpcdosC+ pour systèmes d opérations CpcdosC+ pour Jeux ( Microsf01 Games 32 bit ) (Projet actuellement abandonné) Chapitre III Exigences minimale du système Avant tout, il faut faut bien évidement, un PC ( et non un Mac! ) Configuration minimum requis pour le PC : Processeur : 800 mhz Intel 80x86 ou Amd RAM : 192 mo Carte graphique : 8 mo supportant le VGA, EGA, SVGA, VESA Disque dur : au moins un 5 Go Un processeur dans les alentours de INTEL Intel (P5) : Pentium Intel (P6) : Pentium II, Celeron, Pentium III Intel ( NetBurst ) : Pentium 4 Intel (P6) Core 2 Duo et plus AMD Amd Am386 Amd K5 et plus Systèmes BIOS Phoenix, Award Software ( Energy ) ARM : Ne fonctionne pas Installation sur Disque dur : { Page réservé à l installation du Kernel sur un disque dur } Prochainement sur le Doc Installation avec DosBox : Pour commencer, une fois que vous avez le Kernel en main veuillez télécharger et installer DFend ou à l'adresse suivante : Une fois téléchargé, créez le répertoire nommé DosBox dans C:\ et copiez le contenu du dossier «RACINE A PLACER» dedans. Puis lancez DFend Clique droit sur DosBox, Éditer Choisissez et cochez pour le cœur simulé, un DYNAMIC, les cycles du processeur à MAX et le type de processeur, un AUTO Choisissez la mémoire à 63 mo (maximum) puis cochez toutes les mémoire XMS EMS et UMB décochez LoadFix et l extension DOS32A Puis dans le menu Lecteurs, éditez le premier lecteur Choisissez tant que lecteur D puis valider Puis Cliquez sur Ajouter Créez un lecteur dont «répertoire tant que disque dur» Ciblez le dossier que vous avez précédemment crée et déclarez le comme un lecteur C puis validez Puis dans le menu Démarrage ajoutez la dernière ligne set PATH=C:\CPCDOS\PILOTES\DOS\ Afin de permettre d'utiliser les commandes et programmes DOS où que vous soyez Puis validez le tout Lancez DosBox (double clique) Vous devrez avoir ceci : Puis tapez ces commandes Le Kernel s'initialise et vous devrez tomber sur ceci : C'est que le Kernel est fonctionnel! Maintenant pour créer vos programmes, allez dans le répertoire que vous avez créer par défaut C:\DosBox puis dans cpcdos\systeme Créez un fichier de nom que vous voulez, qui servira pour tester et programmer par exemple : «PROG.CPC» ( Attention que le nom dépasse pas 8 caractères et l extension, 3 caractères) Ce fichier s'ouvre avec un simple éditeur de textes, utilisez par exemple BlocNotes de Windows puis pour exécuter votre fichier pour tester votre programme, sur DosBox appuyez sur CTRL+F4 pour mettre à jour les fichiers et dossiers et lancez le Kernel (si c'est pas déjà fait) Puis taper à la console exe/ PROG.CPC Puis voilà Suivez le manuel, moindre questions ou beugues, contactez moi par ou sur le Forum du Site Du Zéro au sujet Recherche testeurs Kernel Cpcdos OS2.0.5 Chapitre IV Commandes de bases J'ai dédié ce manuel de ce langage uniquement pour le noyau Cpcdos OS2, donc si vous voulez être développeur Cpcdos, vous pouvez apprendre a l'utiliser ici. Cette partie IV sera les commandes de base que l on utilise principalement en mode console Pour commencer les commandes de bases A LIRE (Important) : Pas de différenciation entre les commandes et paramètres en majuscules/minuscules Autant de tabulation ou espace entre le début de ligne et la commande Utilisez des nom de propriétés différent et toujours en majuscules L'attribution des valeurs de couleurs R.V.B doivent être de 3 caractères numériques ex : Ne pas mettre «1,50,30». mais «001,050,030» ( rajouter des zéros au début pour faire 3 caractères de chaque) LC : Lignes de Commandes IUG : Interface Utilisateur Graphique CCB : Code Compilé Binaire CNB : Code Non Binaire SCI : Service Création Initialisation, le service créateur/dessinateur d'interface graphique Moteur CCP : Moteur de traitement des commandes CpcdosC+ et liaisons du Kernel Ajoutez «fix/ DEBUG = 0» au début de votre programme afin d'éviter d'afficher les informations d exécution de commandes Ajoutez «fix/ LOG = 0» pour permettre l'enregistrement des informations de debugage dans SYSTEME\DEBUG.LOG Les caractères suivants :» veulent dire que la ligne continue avec celle de endessous ( manque de largeur du manuel.. ) Pour les caractères comme «é è â ä»... utiliser le format ASCII, sinon il n'est pas pris en charge... Pour utiliser une commande fantôme, il suffit de placer juste au début de votre commande ex Ma commande fantôme Si les interaction sur une fenêtre «ne fonctionne pas» sélectionnez bien la fenêtre avec un clic sur la barre de titre! Pour récupérer les propriétés dans une variable, il suffit d'utiliser «#%» exemple : ini;propriété = #%VARIABLE EFFACER L'ECRAN cls/ ( Clean Screen ) Permet d'effacer l écran, Exemple : txt/ Appuyez sur une touche pour effacer l écran Pause/ cls/ txt/ Écran effacé! COMMENTAIRES La commande qui permet ceci est : rem/ Cette commande permet tout simplement au développeur d'écrire des commentaires dans son code pour se repérer etc Aucunes influence sur le Kernel AFFICHAGE TEXTE La commande qui permet ceci est : txt/ {texte} (TeXTe) Cette commande est utilisable uniquement en mode LC, il permet l'affichage de caractères ASCII de codage DOS dans une plage de caractères allant de 0 à 255 par exemple : Écriture basique : txt/ Hello word Afficher le contenue d'une variable : fix/ VAR1 = utilisateur fix/ VAR2 = de l'ordinateur txt/ Coucou %VAR1% %VAR2% Sortie : Coucou utilisateur de l'ordinateur Des couleurs? Couleurf/ 2 couleurp/ 1 txt/ Hello word! Affiche Hello Word! En bleu (1) sur vert (2) POSITIONNER CURSEUR (CONSOLE) La commande qui permet ceci est : posx/ {valeur} et posy/ {valeur} Cette commande permet de positionner le curseur de la console à une zone définit par l'utilisateur ex : txt/ Position d'origine x:%curposx% et y:%curposy% posx/ 5 posy/ 6 txt/ Nouvelle position x:%curposx% et y:%curposy% NB : Si vous voulez masquer le menu de la console, il suffit de fixer la variable CONSMENU à 0 (1 : affiché) fix/ CONSMENU = 0 CREER UNE VARIABLE/TABLEAU fix/ {variable} = {Données} ( Fixer (Set) ) Cette commande permet de créer une variable locale, ( limité à 255 Ko ) Puis pour «poser une question» Il faut donc utiliser ce paramètre : fix/ /q {Variable} ( q : Question ) La variable aura le contenu que l'utilisateur à tapé au clavier puis validé avec la touche ENTRER Pour supprimer une variable de la mémoire : fix/ /s {Variable} ( s : Supprimer) Pour lister les variables de la mémoire : fix/ /liste {Variable} Et si la liste est grande, vous pouvez lister 1 par 1 pressez ESPACE pour lister et ECHAP pour arrêter : fix/ /liste /pause Exemple : fix/ NOM = Thomas txt/ Bonjour %NOM% quelle age avezvous? Fix/ /q AGE si/ %AGE% 17 (:txt/ Vous etes majeur %nom%!:) si/ %age% 18 (:txt/ Vous etes encore jeune /s /s AGE NB : le caractère permet d'exécution fantôme de la commande Et pour créer un tableau, exemple : fix/ index = 2 fix/ MON_TABLEAU(%index%) = Blablabla123 rem/ Puis pour afficher : txt/ %MON_TABLEAU(index)% OU fix/ MON_TABLEAU(2) = Blablabla123 rem/ Puis pour afficher : txt/ %MON_TABLEAU(2)% EXECUTER UN FICHIER CPCDOSC+ exe/ {fichier} ( executer ) Cette commande permet d exécuter un fichier de commandes CpcdosC+ uniquement Le paramètre «/l:» exe/ {fichier} /l: Ce paramètre permet d indiquer au Kernel a partir de quelle label le code s exécute Exemple : exe/ Fichier.cpc /l:monlabel Et dans Fichier.cpc : txt/ texte1 monlabel: txt/ texte2 Sortie : texte2 ARRÊTER L EXECUTION D UN FICHIER CPCDOSC+ stop/ Cette commande permet d arrêter l exécution d un fichiers de commandes CpcdosC+ en cours Il devrait être utilisé dans un fichiers. Une autre commande est semblable, ne pas confondre, il sert a stopper complètement l exécution du Kernel sans prévenir le SCI et la procédure de vidage mémoire et arriver directement à l interpréteur de commandes msdos ou FreeDos. stopk/ (stopkernel) CONDITIONS si {interrogé} {Condition =/N/ / } {Opérateur} (:{Commande}:) Cette commande est une instruction conditionnelle. Exemples : fix/ VAR1 = 5 fix/ VAR2 = 2 fix/ RES = /c %VAR1% + %VAR2% si/ %RES% = 7 (:txt/ %VAR1% + %VAR2% est egale a 7!:) NB : /c %VAR1% + %VAR2% permet de calculer les deux variables, voir partie FONCTIONS Les signes de conditions utilisables sont : Égale à de signe «=» N'est pas égale à, de signe «N» Supérieur à, de signe « » Inférieur à, de signe « » EXECUTER UN FICHIER EXECUTABLE DOS/WIN32 shell/ {fichier exécutable} Cette commande exécute des fichier de format MZ (.exe.com) et interpréteur DOS.BAT Exemple : shell/ Pour exécuter un programme WIN32, il suffit d'indiquer le paramètre suivant : Exemple : shell/ /win32 {fichier exécutable} A prevoir que le Kernel n'est pas en mesure d'exécuter des programme ayant une interface graphique Windows Mais compatible uniquement en format Console pour le moment Vous pourrez exécuter des programme type console codé en C++, Code::Block, turboc etc... Une commande voisine existe et remplit presque la même fonction : dos/ RECUPERER LES ENTREES AU CLAVIER touche/ {variable} Cette commande exécuté sur suite enregistre dans la variable définit la touche que l'utilisateur à pressé Elle ne met pas en attente le système jusqu'à interaction au clavier Pour permettre l'attente, il suffit d'ajouter ce paramètre (avant la variable) touche/ /p {variable} Ce qui permet au système se mettre en pause, jusqu'à interaction au clavier puis une fois la touche pressé, le «caractère» ASCII est enregistré dans la variable définit. Exemple : fix/ debug = 0 fix/ variable = 0 touche/ /p variable Si/ %variable% = a (:txt/ pas touche au A!!:) si/ %variable% N 0 (:txt/ Touche %variable% pressée!:) Dans cet exemple, si on appuie sur autre chose que 0 il affiche la touche qu'on a pressé Si on appuie sur q le programme est stoppé Un autre exemple, mais sans le paramètre «/p» : fix/ debug = 0 :debut: fix/ variable = 0 touche/ variable si/ %variable% N 0 (:txt/ Touche %variable% pressée!:) si/ %variable% = q (:stop/:) aller/ debut Le programme fait une boucle NB : Reste à noter que pour la version actuel, les touches = et N risquerons de ne pas fonctionner. METTRE EN PAUSE LE SYSTEME pause/ Cette commande en console permet de mettre en pause le système complètement jusqu'à que l'utilisateur appuie sur une touche au clavier un paramètre est disponible, c'est celui du temps de pause exemple : pause/ 1500 Ce paramètre met en pause 1 secondes et 500 millisecondes Le temps s'écoule directement si l'utilisateur appuie sur une touche PRENDRE UN SCREENSHOT (IUG / LC) src/ Cette commande permet de prendre un screenshot de l'écran la photo est enregistré dans le répertoire SYSTEME\SCR Pour prendre un screenshot manuellement en mode IUG, presser la combinaison des touches ALT+S ps : Crash en mode LC [en correction] EXECUTER UNE COMMANDE D'ENTREE cmd/ Cette commande donne la possibilité d'exécuter une commande qui se trouve dans une variable exemple : fix/ MA_COMMANDE = txt/ Coucou! cmd/ %MA_COMMANDE% ou vous pouvez bien sur l'exécuter directement sans variables! INTERACTION CPCDOS cpc/ Cette commande contient toute sortes de paramètres utilisable pour interagir sur cpcdos Les paramètres disponibles pour cette version sont : cpc/ /arreter Pour arrêter le noyau avec un arrêt du système d'exploitation en cours cpc/ /redemarrer Pour redémarrer le noyau avec un arrêt du système d'exploitation en cours TESTER UN RESEAU OU UNE MACHINE ping/ Cette commande envoie un paquet de donnés sur une adresse définit et attend une réponse sur un délais de 4 secondes Aucuns système de serveur DNS à été programmé sur cette version, vous devez taper en IP Exemple sur google.fr: ping/ CONNECTER UN LECTEUR RESEAU connecter/ Cette commande permet via le répertoire d'une adresse serveur, d'y être connecté tant que lecteur Exemple : connecter/ e: \\SERVEUR\USER\SEB01\PARTAGE Ceci crée le lecteur E: tant que racine SERVEUR\USER\SEB01\PARTAGE Et puis po
Similar documents
View more...
Search Related
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks
SAVE OUR EARTH

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...

Sign Now!

We are very appreciated for your Prompt Action!

x