Code source du Turbo Pascal 6
Le code source de Turbo Pascal version 6 est disponible sur des sites Web (comme archive.org) et est trouvable à partir d'un moteur de recherche depuis 2018. Il ne contient aucun commentaire et on ne s'est pas s'il s'agit de la version définitive 6.0 (s'il contient des bogues majeurs) en dehors du fait qu'elle contient une seule et unique chaîne de caractères de droits d'auteur. De plus, on ne se sait pas si c'est Borland ou une taupe travaillant pour l'entreprise l'ayant propagé sur l'Internet. Le produit date de l'année 1990 et est donc largement dépassé par les technologies actuelles et les prodiges ayant proposés sous successeur Delphi. Le code est toutefois fort intéressant et à un fort caractère pédagogique.
Le compilateur et l'éditeur de texte de code source est écrit en langage de programmation assembleur 8086 et l'IDE du Turbo Pascal 6 est écrit en Turbo Pascal lui-même. Le code source ne contient aucun code superflue et est franchement très petit et efficace. Toutefois, il manque certains fichiers comme par exemple DRIVERS.PAS, OBJECTS.PAS,... pourtant disponible avec l'édition commerciale.
Liste des fichiers du projet Turbo Pascal 6
Voici la liste des fichiers du code source de Turbo Pascal 6 :
Nom du fichier | Description |
---|---|
BASM.PAS | Ce fichier contient l'unité Turbo Pascal permettant l'interprétation du code assembleur inclus dans le code source Pascal (inclusion des objets du fichier COMPILER/BASM.ASM et COMPILER/OPCODES.ASM). |
BPTDLG.PAS | Ce fichier contient la boite de dialogue de point d'arrêt (BreakPoint) de l'IDE de Turbo Pascal 6. |
CALSTKWN.PAS | Ce fichier contient la boite de dialogue des appels de pile (Call Stack) de l'IDE de Turbo Pascal 6. |
COMPILER\ARITH.ASM | Ce fichier contient les procédures de multiplications, division de comparaison de type de données LongInt, Extended et Real. |
COMPILER\ASM.ASM | Ce fichier permet la gestion de la clause ASM, de ces étiquettes,... |
COMPILER\ASMEXPR.INC | Ce fichier permet de gérer les expressions dans une clause ASM. |
COMPILER\ASMINSTR.INC | Ce fichier permet d'évaluer les instructions dans une clause ASM. |
COMPILER\ASMLEX.INC | Ce fichier permet d'analyser lexicale de l'assembleur : Nombre, opérateur, symbole et les jetons. |
COMPILER\BASM.ASM | Ce fichier contient le noyau assembleur. |
COMPILER\BASM.INC | Ce fichier contient une inclusion assembleur pour évaluer les symboles assembleurs. |
COMPILER\CHEAP.ASM | Ce fichier contient les routines de mémoire de tas du compilateur. |
COMPILER\CODEGEN.ASM | Ce fichier permet de générer le code machine correspondant au code assembleur. |
COMPILER\COMPILE.ASM | Ce fichier permet de compiler les structures unitaires et de programmes. |
COMPILER\COMPILER.INC | Ce fichier contient une inclusion de la structures unitaire et de programme. |
COMPILER\CONVERT.ASM | Ce fichier contient les routines de conversions de nombre réel, entier et de chaîne de caractères. |
COMPILER\CONVERT2.ASM | Ce fichier contient les routines de conversions de types ordinal Byte, Integer, Word, LongInt,... |
COMPILER\DEBANALZ.INC | Ce fichier permet d'analyser les structures de tampons. |
COMPILER\DEBEMUL.INC | Ce fichier permet d'effectuer les traitements de déboguage avec l'Interruption 01h et l'Interruption 03h. |
COMPILER\DEBOPCOD.INC | Ce fichier permet d'indiquer le code machine correspondant du débogueur. |
COMPILER\DEBUG.ASM | Ce fichier contient les routines de cartographie (numéro de ligne,...) du débogueur. |
COMPILER\DEBUG2.ASM | Ce fichier contient les routines de PSP, de pile, de chargement de programme et d'exécution d'un programme du débogueur. |
COMPILER\DEBUGGER.ASM | Ce fichier contient les routines d'initialisation et de terminaison du débogueur. |
COMPILER\DECLARE.ASM | Ce fichier contient les routines de déclarations de constante, d'entier, de chaîne de caractères, d'énumérations... |
COMPILER\ERROR.ASM | Ce fichier contient le gestionnaire des erreurs. |
COMPILER\EXPR.ASM | Ce fichier contient le traitement des expressions. |
COMPILER\EXTARITH.ASM | Ce fichier contient l'arithmétique étendue. |
COMPILER\EXTCONV.ASM | Ce fichier contient les conversions étendues. |
COMPILER\EXTEND.INC | Ce fichier contient des macros étendues. |
COMPILER\EXTPOW10.ASM | Ce fichier contient les routines de puissance 10. |
COMPILER\EXTSTR.ASM | Ce fichier contient les routines d'extension de chaîne de caractères. |
COMPILER\LEX.ASM | Ce fichier contient les routines haché, d'entité, de calcul et de symbole du lexicale du compilateur. |
COMPILER\LINK.ASM | Ce fichier contient les routines de fabrication de liaison. |
COMPILER\LINKMAP.ASM | Ce fichier contient les routines de fichier .MAP. |
COMPILER\OBJECT.ASM | Ce fichier contient les routines de manipulation de fichier .OBJ. |
COMPILER\OPCODES.ASM | Ce fichier contient les routines de transformations des opcodes assembleurs. |
COMPILER\OPERS.ASM | Ce fichier contient les traitements de condition d'opération. |
COMPILER\PUT.ASM | Ce fichier permet d'injecter les informations de structure. |
COMPILER\STDFUNC.ASM | Ce fichier contient les fonctions intégrés du Turbo Pascal (ABS, CHR, COPY, CONCAT, CSEG, EOF, FILEPOS, HI, IORESULT, LENGTH, LO, MEMAVAIL, ODD, OFS, ORD, PARAMCOUNT, PARAMSTR, POS, PTR, RANDOM, SIZEOF, SQRT, SUCC, SWAP, TRUNC, UPCASE,...) |
COMPILER\STDPROC.ASM | Ce fichier contient les procédures intégrés du Turbo Pascal (APPEND, ASSIGN, BLOCKREAD, BLOCKWRITE, CHDIR, DELETE, DISPOSE, ERASE, EXIT, FREEMEM, GETMEM, HALT, INC, INSERT, MARK, MOVE, READ, READLN, RENAME, SETTEXTBUF, WRITE, WRITELN...) |
COMPILER\STDUTILS.ASM | Ce fichier contient les routines invisibles du Turbo Pascal comme le castre de type de données, l'empilage d'expression,... |
COMPILER\STMT.ASM | Ce fichier contient le traitement des mots réservés du Turbo Pascal (ASM, BEGIN, CASE, FILE, FOR, GOTO, IF, NEW, PORT, WHILE, WITH,...) |
COMPILER\STMTPART.ASM | Ce fichier contient les routines de gestion des entrées et les interruptions. |
COMPILER\TDINFO.ASM | Ce fichier contient les informations de symbole et de segment du Turbo Debugger. |
COMPILER\TDINFO1.INC | Ce fichier contient les informations d'unité du Turbo Debugger. |
COMPILER\TDINFO2.INC | Ce fichier contient les informations de constantes du Turbo Debugger. |
COMPILER\TDINFO3.INC | Ce fichier contient les informations de valeurs NIL, de chaîne de caractères et ordinal pour Turbo Debugger. |
COMPILER\TDINFO4.INC | Ce fichier contient les informations de fonctions et de membres pour Turbo Debugger. |
COMPILER\TDINFO5.INC | Ce fichier contient les informations de types, de variables, de tableaux, d'enregistrement pour Turbo Debugger. |
COMPILER\TDINFO6.INC | Ce fichier contient les informations d'allocation de mémoire pour Turbo Debugger. |
COMPILER\TDINFO7.INC | Ce fichier contient les routines d'écriture d'entête d'informations de déboguage de Turbo Debugger. |
COMPILER\TPSTART.ASM | Ce fichier contient les routines de démarrage et d'initialisation du compilateur. |
COMPILER\UNITS.ASM | Ce fichier contient les routines de gestion des unités du Turbo Pascal. |
COMPILER.PAS | Ce fichier contient les routines permettant de lancer la compilation, d'arrêt la compilation, de rechercher les erreurs de compilations et toutes les commandes générales associés à la compilation. |
COMPOPT.PAS | Ce fichier contient l'unité des options (directive) de compilation de Turbo Pascal. |
COMPVARS.PAS | Ce fichier contient les variables globales du compilateur. |
COMPWIND.PAS | Ce fichier contient la boite de dialogue de la progression de compilation. |
CONFIG.PAS | Ce fichier contient les routines de boite de dialogue de configuration de l'IDE de Turbo Pascal. |
CONTEXT.PAS | Ce fichier contient les constantes de contexte. |
CONTROLS.PAS | Ce fichier contient le contrôle de la liste des fenêtres de l'IDE de Turbo Pascal. |
CPUWIN.PAS | Ce fichier contient la boite de dialogue de la fenêtre des registres du microprocesseur. |
DEBUG.PAS | Ce fichier contient les commandes de déboguage dans l'IDE de Turbo Pascal 6. |
EDITOR.PAS | Ce fichier contient les routines d'une fenêtre de l'éditeur de fichier de code source en format texte. |
EVALDLG.PAS | Ce fichier contient les routines de la boite de dialogue d'évaluation d'expression. |
EXTEND.PAS | Ce fichier contient les routines de transformations des valeurs de types de données Extended. |
FNAMES.PAS | Ce fichier contient les routines de transformation de chemin de fichier. |
GETOPT.PAS | Ce fichier contient la routine de traitement des options de Turbo Pascal 6. |
HELP.PAS | Ce fichier contient les routines de la fenêtre d'aide de Turbo Pascal 6. |
HELPFILE.PAS | Ce fichier contient les routines de décompression des données contenu dans le fichier d'aide de Turbo Pascal 6. |
HELPHIST.PAS | Ce fichier contient les routines préserver l'historique de navigation de l'aide de Turbo Pascal 6. |
HELPSCRN.PAS | Ce fichier contient les routines d'affichage de l'écran d'aide de Turbo Pascal 6. |
HELPUTIL.PAS | Ce fichier contient les routines de recherches d'aide complémentaires. |
MAKEFILE | Ce fichier permet contient les définitions de fabrications des compilateur BASM, TPC et de l'IDE de Turbo Pascal 6. |
MEM.PAS | Ce fichier contient les routines de gestion de la mémoire EMS. |
OUTPUTWN.PAS | Ce fichier contient les routines de la fenêtre de sortie (Output). |
PARAMS.PAS | Ce fichier contient des routine de gestion de paramètres contenu dans le PSP. |
REG.PAS | Ce fichier permet d'enregistrer les objets de fenêtre de l'environnement de l'IDE de Turbo Pascal. |
RUNERR.PAS | Ce fichier contient la routine de gestion des erreurs fatales de l'IDE du Turbo Pascal. |
SHELL.PAS | Ce fichier contient la routine permettant d'appeler l'interpréteur de commande en libérant le maximum de ressource de l'IDE du Turbo Pascal. |
STRNAMES.PAS | Ce fichier contient les constantes de nom. |
TCOLORS.PAS | Ce fichier contient la boite de dialogue de sélection de couleurs. |
TDINFO.PAS | Ce fichier contient l'unité regroupant les routines de déboguage de fichier .MAP. |
TDOS.PAS | Ce fichier contient les routines de base de manipulation de fichier texte du DOS. |
TEDIT\ED.INC | Ce fichier contient les routines de manipulation de ligne. |
TEDIT\EDBLOCK.ASM | Ce fichier contient les routines de manipulation de bloc de l'éditeur. |
TEDIT\EDCHANGE.ASM | Ce fichier contient les routines d'entreposage de ligne de l'éditeur. |
TEDIT\EDCURSOR.ASM | Ce fichier contient les routines de déplacement du curseur dans l'éditeur. |
TEDIT\EDDELETE.ASM | Ce fichier contient les routines de fusion et de suppression d'une ligne de texte de l'éditeur. |
TEDIT\EDINDENT.ASM | Ce fichier contient les routines de gestion de l'indentation de l'éditeur. |
TEDIT\EDINSERT.ASM | Ce fichier contient les routines d'insertion de texte. |
TEDIT\EDKEYS.ASM | Ce fichier contient les entrées de raccourci clavier de l'éditeur de code source texte. |
TEDIT\EDLINES.ASM | Ce fichier contient les routines de recherches de ligne et de colonne. |
TEDIT\EDMAIN.ASM | Ce fichier contient les routines principales des commandes de l'éditeur code source texte. |
TEDIT\EDMATCH.ASM | Ce fichier contient les routines de recherche de prochaine ligne de recherche de jeton. |
TEDIT\EDPAGES.ASM | Ce fichier contient les routines d'affichage de page de l'éditeur de code source texte. |
TEDIT\EDPOS.ASM | Ce fichier contient les routines indiquant ou fixant la position de l'éditeur de code source texte. |
TEDIT.PAS | Ce fichier contient l'unité regroupement toutes les routines et les commandes de l'éditeur de code source texte. |
TMENU.PAS | Ce fichier contient la liste des éléments du menu de l'IDE du Turbo Pascal. |
TRACER.PAS | Ce fichier contient les routines permettant de tracer le programme. |
TRES.PAS | Ce fichier contient les informations de données de ressource (chaîne de caractères,...) qu'utilise l'IDE du Turbo Pascal 6. |
TSTATUS.PAS | Ce fichier contient les éléments de la barre d'état dans le bas de l'écran de l'IDE de Turbo Pascal 6. |
TSTDDLG.PAS | Ce fichier contient les boites de dialogues standard de l'IDE de Turbo Pascal 6. |
TURBO.CMD | Ce fichier contient les commandes de Turbo Pascal 6. |
TURBO.PAS | Ce fichier contient le code source du programme principale de l'IDE de Turbo Pascal 6 (c'est le démarreur). |
TURBO1.PAS | Ce fichier contient les jointures de commandes de l'IDE de Turbo Pascal 6. |
TURBO2.PAS | Ce fichier contient les boites de dialogues général de l'IDE de Turbo Pascal 6. |
TVARS.PAS | Ce fichier contient les variables de l'IDE de Turbo Pascal 6. |
TWINDOWS.PAS | Ce fichier contient les fenêtres de l'IDE de Turbo Pascal 6. |
UTILS.PAS | Ce fichier contient les routines de boite de dialogues utilitaires pour l'IDE du Turbo Pascal 6. |
VFILES.PAS | Ce fichier contient les routines de pages virtuelles dans les fichiers. |
VIDEOIO.ASM | Ce fichier contient les routines d'entrée/sortie d'initialisation et de terminaison vidéo écrit en assembleur utiliser dans l'unité VideoIO. |
VIDEOIO.PAS | Ce fichier contient les routines d'entrée/sortie d'initialisation et de terminaison vidéo. |
VMEM.PAS | Ce fichier contient les routines de traitements de flux de données lors d'échange de tampon de la mémoire virtuelle. |
VMEMUTIL.PAS | Ce fichier contient les routines pour mettre ou lire des données du tampons d'échange virtuelle de l'IDE du Turbo Pascal. |
VSWAP.PAS | Ce fichier contient les routines d'échanges de préservation de l'environnement et de l'écran de Turbo Pascal et du passage à un autre programme ou environnement. |
WATCHWIN.PAS | Ce fichier contient les routines de la fenêtre de boite de dialogue de surveillance (Watch) du débogueur. |
Les utilitaires
Les utilitaires inclus avec le Turbo Pascal 6 ne sont pas inclus avec ses versions du code source de Turbo Pascal 6. Par contre, il existe des clones sur le Web de ses programmes :
Lien | Langage de programmation | Projet |
---|---|---|
https://github.com/gladir/TURBOPASCAL6-0/blob/main/CPUTEST.PAS | Turbo Pascal | TURBOPASCAL6-0 |
https://github.com/gladir/TURBOPASCAL6-0/blob/main/EMSTEST.PAS | Turbo Pascal | TURBOPASCAL6-0 |
https://github.com/gladir/TURBOPASCAL6-0/blob/main/GREP.PAS | Turbo Pascal, Free Pascal | TURBOPASCAL6-0 |
https://github.com/gladir/TURBOPASCAL6-0/blob/main/GREP2MSG.PAS | Turbo Pascal, Free Pascal | TURBOPASCAL6-0 |
https://github.com/gladir/TURBOPASCAL6-0/blob/main/TOUCH.PAS | Turbo Pascal, Free Pascal | TURBOPASCAL6-0 |