coeur-tp-1-d.txt 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440
  1. ==================== PAGE 1 ====================
  2. AU COEUR
  3. DE TURBO PASCAL
  4. PLAN MEMOIRE Editions MNEMODYNE
  5. FORMAT DES DONNEES
  6. ANALYSE DU CODE
  7. CONTENU DE LA LIBRAIRIE John COLIBRI
  8. = pes
  9. re te my
  10. ==================== PAGE 2 ====================
  11. AU COEUR
  12. | y DE TURBO PASCAL
  13. Fe John COLIBRI
  14. ns
  15. LA CU | sn à de F AU COEUR DE TURBO PASCAL 1 AU COEUR OO Re CAL
  16. ==================== PAGE 3 ====================
  17. BON DE COMMANDE
  18. A Marie Odile et sa petite famille
  19. AU COEUR
  20. DE TURBO PASCAL
  21. John COLIBRI
  22. Ancien élève de l’Ecole Polytechnique
  23. AU COEUR DE TURBO PASCAL 2 AU COEUR DE TURBO PASCAL 1 AU COEUR DE TURBO PASCAL 3 AU COEUR DE TURBO PASCAL
  24. fn
  25. k lb à "4
  26. ==================== PAGE 4 ====================
  27. Tous droits de traduction, d’adaptation et de reproduction par tous procédés réservés pour tous
  28. pays.
  29. Toute reproduction, même partielle, de cet ouvrage est interdite. Une copie ou reproduction, par
  30. quelque procédé que ce soit, photographie, microfilm, bande magnétique, disque ou autre,
  31. constitue une contrefaçon passible des peines prévues par la loi du 11 mars 1957 sur la protection
  32. des droits d’auteur.
  33. +
  34. (© MNEMODYNE SARL 1987
  35. LA
  36. AU COEUR DE TURBO PASCAL 4 AU COEUR DE TURBO PASCAL
  37. COORDONNEES
  38. Ce livre est édité par:
  39. MNEMODYNE
  40. 26 Rue Lamartine
  41. 75009 PARIS
  42. Tel (16 1) 42 85 10 82
  43. Le manuscrit a été écrit à l’aide de:
  44. MNEMO-TEXT
  45. programme de traitement de texte typographique écrit en TURBO PASCAL
  46. un IBM PC, 192K, carte série
  47. une imprimante LASER WRITER d’Apple, reliée au PC par la liaison série
  48. Le livre a été imprimé par:
  49. IMPRIMERIE CHIRAT
  50. Monsieur Alain GIRAUD
  51. Tel (16 1) 42 22 41 12
  52. Ce livre se trouve dans toutes les (bonnes) librairies et boutiques informatiques. Si vous avez des
  53. difficultés à vous le procurer, vous pouvez l'acheter chez MNEMODYNE, à Paris, ou le
  54. commander en écrivant à:
  55. MNEMODYNE
  56. 26 Rue Lamartine
  57. 75009 PARIS
  58. Tel (16 1) 42 85 10 82
  59. John COLIBRI travaille chez MNEMODYNE et anime tous les mois les séminaires PASCAL de
  60. L'INSTITUT PASCAL. Vous pouvez lui faire parvenir vos remarques, le contacter ou le rencontrer
  61. 26 rue Lamartine.
  62. AU COEUR DE TURBO PASCAL à AU COEUR DE TURBO PASCAL
  63. %
  64. ==================== PAGE 5 ====================
  65. DE LA MEME FACTURE...
  66. {1 LIVRES)
  67. DECOUVREZ PASCAL SUR APPLE J[, //e, //c
  68. John COLIBRI
  69. Un grand classique pour apprendre le langage PASCAL pas à pas sur Apple. Une mine
  70. pour le traitement des fichiers, un exposé complet sur les pointeurs et plus de 30 annexes.
  71. TOPIQUES PASCAL
  72. John COLIBRI
  73. Structure et fonctionnement du PASCAL UCSD, comportant de nombreuses techniques
  74. inédites: fichiers dynamiques, codeur LISP, programmation orientée objet, tableaux
  75. dynamiques, sauvegarde du tas sur disque, affichage rapide, liaison ‘série. 848 pages, 147
  76. programmes.
  77. RECUEIL PASCALISSIME 1
  78. Recueil des 6 premiers numéros de Pascalissime
  79. RECUEIL PASCALISSIME 2
  80. Recueil des numéros 7 à 12 de Pascalissime
  81. RECUEIL PASCALISSIME 3
  82. Recueil des numéros 13 à 18 de Pascalissime
  83. RECUEIL PASCALISSIME 4
  84. Recueil des numéros 19 à 24 de Pascalissime
  85. BASIC APPLESOFT LEXICUM - Basic, DOS 3.3, PRODOS
  86. Paul MERRY
  87. Manuel de référence alphabétique. Définition, utilisation, exemples pour les instructions et
  88. concepts de programmation, édition de texte, traitement de fichiers. 645 pages - 3 iéme
  89. édition
  90. VISICALC TUTORIAL
  91. Christian B DUBOS
  92. Manuel pour apprendre à créer, modifier, imprimer, tester des tableaux, à l’aide du
  93. programme VISICALC. Contient 10 exemples de tableaux professionnels commentés. 375
  94. pages.
  95. VISICALC LEXICUM
  96. Christian B DUBOS
  97. Guide de référence alphabétique. Définition, utilisation, exemples pour les commandes,
  98. fonctions et concepts VISICALC. 375 pages - 2ième édition.
  99. MAGICALC TUTORIAL
  100. Christian B DUBOS
  101. Manuel pour apprendre à créer, modifier, imprimer, tester des tableaux, à l’aide du
  102. programme MAGICALC. Contient 10 exemples de tableaux professionnels commentés.
  103. 385 pages.
  104. (2 MAGAZINE PASCAL |
  105. PASCALISSIME
  106. Le magazine mensuel PASCAL: programmes, évaluations, bibliographie, initiation,
  107. utilitaires. L’index des sujets et un bon d'abonnement figurent à la fin de ce livre.
  108. AU COEUR DE TURBO PASCAL 6 AU COEUR DE TURBO PASCAL
  109. DE LA MEME FACTURE...
  110. (3 SEMINAIRES PASCAL |
  111. John COLIBRI anime tous les mois des séminaires PASCAL. Ces séminaires sont couverts par
  112. UN de formation. Ils sont basés sur des travaux pratiques en TURBO PASCAL sur
  113. SEMINAIRE D'INITIATION PASCAL
  114. Types de données simples, structures de contrôle, procédures et fonctions, données
  115. qu gg gestion de fichiers, tris en mémoire, programmation structurée
  116. jours
  117. SEMINAIRE DE PERFECTIONNEMENT PASCAL
  118. Instructions avancées, compilation séparée et segmentation, structures de tris et d’index,
  119. pr contrôlée, gestion de masques, utilitaires PASCAL, versions PASCAL
  120. jours
  121. (4 PROGRAMMES |
  122. MNEMO TEXT
  123. Traitement de texte français sur Apple ][. Multi-fenêtres. Minuscules accentuées sur APPLE ][
  124. 48K standard, avec carte langage. Justification locale, impression proportionnelle ou non,
  125. titres. Utilitaires de création d’index et de tables des matières.
  126. MNEMO DUMP
  127. Programme d’examen du contenu des disquettes
  128. MNEMO DE P CODE
  129. Programme de désassemblage du P CODE PASCAL UCSD
  130. (5 HOT LINE PASCAL |
  131. Support technique PASCAL par téléphone, tous les lundis de 14 h 1
  132. Tel: (16 1) 42.85.10.82 1 g Ce 0 IT
  133. (6 CLUB DES UTILISATEURS PASCAL |
  134. Réunion hebdomadaire des utilisateurs de PASCAL. Séances d'initiation (exposé et
  135. manipulations) et séances de présentation (techniques, matériels, logiciels). Bibliothèque
  136. d'échange de logiciels. Tous les mercredis de 19h30 à 21h à l’INSTITUT PASCAL
  137. AU COEUR DE TURBO PASCAL 7
  138. AU COEUR DE TURBO PASCAL
  139. ==================== PAGE 6 ====================
  140. Re OL en RU
  141. L'INSTITUT PASCAL
  142. DE LA MEME FACTURE...
  143. L’INSTITUT PASCAL a pour vocation la promotion du langage PASCAL.
  144. (7 DISQUETTES DE PROGRAMMES SOURCE | Il vous propose:
  145. — Plus de 330 livres pour apprendre, utiliser, implémenter PASCAL
  146. i i oyant un chèque du montant indiqué à
  147. MNEMODYNE, 26 ar 5000 PARIS: pe ” — Des revues sur Pascal, parmi lesquelles:
  148. — PASCALISSIME (les numéros isolés depuis le début, les volumes reliés, les disquettes)
  149. COUVR 75F — The Journal of Pascal and Ada
  150. + RÉCRNREE PASGAL. 2 75E _ COMPUTER LANGUAGE
  151. - PETITS UTILITAIRES PASCAL/APPLE cu — Dr DOBBS
  152. | ee me — Une bibliothèque d'échange de programmes source, comprenant entre autres:
  153. - AU COEUR DE TURBO PASCAL 100F q EA prog j p }
  154. le compilateur P4 de Zurich
  155. le source de l'interprète de P Code UCSD 6502
  156. les compilateurs interprètes Pascal S et Pascal C
  157. des utilitaires de désassemblage, dump d'écran ou disquette, de séquentiel indexé, de
  158. gestion de menu, de gestion de disquettes.
  159. — les disquettes de Pascalissime
  160. — Un CLUB D'UTILISATEURS DE PASCAL se réunissant tous les mercredis à partir de 19
  161. heures. Parmi les sujets présentés en 1984 citons:
  162. a) — l’Operating System UCSD
  163. — le Pascal MS sur IBM PC
  164. — MODULA II
  165. — le gestionnaire de fichier OMNIS
  166. — les fichiers de longueur variable en UCSD
  167. — le séquentiel indexé KSAM
  168. — DBASE II et la gestion de fichiers
  169. — démonstration de l’exactitude d’un programme
  170. — l'éditeur de texte avancé ASE
  171. — un interprète PROLOG en PASCAL
  172. — TURBO PASCAL
  173. | — la norme VIDEOTEXT
  174. — le PASCAL UCSD sur IBM PC sous MS DOS
  175. plus, tous les 15 jours, des séances d'initiation pour débutants, avec manipulations sur micro
  176. ordinateur
  177. — des séminaires professionnels de tous niveaux:
  178. — débutants en informatique
  179. | — approfondissement des techniques Pascal
  180. — spécialisé sur un sujet (fichiers, implémentation...)
  181. En tant qu'organisme agréé, L'INSTITUT PASCAL est habilité à établir des conventions de
  182. formation. Le montant de ces séminaires de 4 jours est déductible des budgets formation
  183. permanente. ‘
  184. L'INSTITUT PASCAL
  185. 26 Rue Lamartine
  186. 75 009 PARIS
  187. Tel (16 1) 42 85 10 82
  188. Metro Cadet ou N. Dame de Lorette
  189. Ouverture: 9-12 13-18 du lundi au vendredi
  190. AU COEUR DE TURBO PASCAL 9 AU COEUR DE TURBO PASCAL
  191. AU COEUR DE TURBO PASCAL 8 AU COEUR DE TURBO PASCAL k
  192. '
  193. ÿ is 4 j ban.
  194. Le
  195. ==================== PAGE 7 ====================
  196. LE CLUB DES UTILISATEURS PASCAL
  197. Le Club des Utilisateurs Pascal a pour objectif de favoriser les échanges entre les utilisateurs
  198. Pascal.
  199. Pour cela:
  200. — des réunions ont lieu chaque semaine
  201. — une bibliographie Pascal est mise à jour
  202. — une bibliothèque de programmes est constituée
  203. Les réunions ont lieu chaque mercredi, à partir de 19H. Chaque réunion a un thème, et une
  204. présentation formelle d’une heure environ permet de lancer le débat.
  205. Un mercredi sur deux, la présentation est consacrée aux débutants (cours Pascal avec manipulation
  206. sur Apple II, IBM PC ou Mac Intosh).
  207. Parmi les sujets déjà présentés ces deux dernières années, citons:
  208. — Le Pascal interprété du Mac Intosh
  209. — Turbo Pascal
  210. — Systèmes experts en PASCAL
  211. — Le langage PROLOG
  212. — Communications en PASCAL
  213. — uninterprète LISP écrit en PASCAL
  214. — Séquentiel indexé en PASCAL
  215. — Gestion multifenêtres en PASCAL
  216. utilisation du BIOS et du DOS du PC en TURBO PASCAL
  217. utilitaire de conversion UCSD <-> TURBO
  218. comment utiliser plus de 64K en TURBO
  219. Les thèmes des 4 prochaines semaines sont affichés en permanence à l’Institut Pascal, et seront
  220. prochainement annoncés dans Pascalissime.
  221. Après la présentation formelle sont abordés tous sujets intéressant les uns ou les autres, et en
  222. particulier:
  223. les livres publiés
  224. les articles parus
  225. les bugs des versions actuelles
  226. les nouvelles implémentations
  227. les programmes commerciaux utilisant PASCAL.
  228. Nos membres comprennent aussi bien des étudiants en informatique, des professionnels travaillant
  229. en PASCAL pour le graphisme, la gestion ou le calcul scienifique, des professeurs d'université, ou
  230. des amateurs ("des gens qui aiment") PASCAL.
  231. La cotisation annuelle est de 290 F TTC et permet d’assister à 52 séances à compter de
  232. l'inscription. Vous pouvez assister à une réunion sans vous inscrire, pour vous faire une opinion.
  233. Pour tous renseignements, contactez:
  234. CLUB DES UTILISATEURS PASCAL
  235. 26 RUE LAMARTINE
  236. 75009 PARIS
  237. Tel: (16 1) 42 85 10 82
  238. AU COEUR DE TURBO PASCAL 10 AU COEUR DE TURBO PASCAL
  239. STAGES DE FORMATION PASCAL
  240. L'INSTITUT PASCAL organise tous les mois des stages de formation PASCAL. Au cours des
  241. travaux pratiques, chaque stagiaire réalisera de nombreux programmes utilisables
  242. professionnellement. Les programmes seront réalisés sur IBM PC ou compatible en utilisant
  243. TURBO PASCAL.
  244. TE STAGE D’INITIATION PASCAL |
  245. Ce stage est destiné aux débutants. Aucune connaissance de la programmation ou des
  246. micro-ordinateurs n’est requise. Le stage présentera l’ensemble des concepts de base de la
  247. programmation en PASCAL:
  248. Types de données simples, tests et répétitions, procédures et fonctions, variables globales et
  249. locales, paramètres par valeur et par adresse, tableaux enregistrements et ensembles, gestion de
  250. fichiers, pointeurs, programmation structurée.
  251. Chaque participant apprendra à:
  252. — écrire et compiler des programmes en PASCAL, comme, par exemple, une gestion de fichier
  253. simple avec tri, pilotée par menu
  254. — mettre en oeuvre les techniques de programmation structurée
  255. — développer des logiciels robustes et facilement maintenables
  256. Stages en Janvier, Mars, Mai, Juillet, Septembre Novembre. Durée 4 jours. 4900 F HT
  257. {2 STAGE GESTION DE FICHIERS PASCAL]
  258. Ce cours a pour but d’acquérir la maîtrise complète d’un ordinateur en PASCAL. Une
  259. connaissance élémentaire de PASCAL est nécessaire. Seront présentés:
  260. Organisation mémoire, implémentation des types, formats fichiers, fonctionnement d’un
  261. programme PASCAL, gestion des périphériques, traitement des erreurs, gestion des
  262. interruptions, appels BIOS et DOS, utilisation du langage machine
  263. Chaque participant apprendra à:
  264. — maîtriser les techniques de gestion mémoire (dépasser 64K), clavier (macros), écran (fenêtres),
  265. périphériques parallèle (imprimante) et série(communications)
  266. - me en oeuvre des saisies contrôlées par masque, des traitements de fichiers séquentiels
  267. indexés
  268. — concevoir et mettre au point des programmes importants
  269. Stages en Février, Avril, Juin, Octobre, Décembre. Durée: 4 jours. 4900 F HT
  270. (3 CONDITONS |
  271. Ces stages de formation sont animés par John COLIBRI. Chaque stagiaire emportera le manuel
  272. des transparents du cours, la disquette des programmes qu'il a réalisés ainsi que les corrigés des
  273. exercices. Un diplôme sera remis à chaque personne. Les dépenses de ces cours sont imputables à
  274. la formation professionnelle. Des tarifs de groupe et des conditions spéciales pour particuliers et
  275. étudiants sont fournis sur demande. Des séminaires intra-entreprises peuvent être organisés.
  276. Pour recevoir une documentation complète ou pour vous inscrire, contactez:
  277. L'INSTITUT PASCAL - 26 Rue Lamartine 75009 PARIS (Tel: 42.85.10.82)
  278. AU COEUR DE TURBO PASCAL
  279. AU COEUR DE TURBO PASCAL 11
  280. ==================== PAGE 8 ====================
  281. BON DE COMMANDE PASCALISSIME
  282. Nous vous commandons (prix port en France compris. Etranger: +20F par produit):
  283. RECUEILS PASCALISSIME
  284. Les recueils regroupant 6 numéros de PASCALISSIME suivants:
  285. ___ Recueil 1 (numéros 1 à 6), au prix de 120 F TTC
  286. ___ Recueil 2 (numéros 7 à 12), au prix de 120 F TTC
  287. __ Recueil 3 (numéros 13 à 18), au prix de 120 F TTC
  288. ANCIENS NUMEROS PASCALISSME
  289. Les anciens numéros suivants, au prix de 20 F TTC:
  290. __ numéro 1 __ numéro 7 __ numéro 13 __ numéro 19
  291. __ numéro 2 __ numéro 8 __ numéro 14 ___ numéro 20
  292. __ numéro 3 __ numéro 9 __ numéro 15 __ numéro 21
  293. ___ numéro 4 ___ numéro 10 __ numéro 16 __ numéro 22
  294. __ numéro 5 __ numéro 11 __ numéro 17 __ numéro 23
  295. __ numéro 6 __ numéro 12 __ numéro 18 __ numéro 24
  296. DISQUETTES PASCALISSIME
  297. Les disquettes des numéros suivants, au prix de 40 F TTC:
  298. numéro 1 à 3 numéro 13 à 15
  299. numéro 4 à 6 numéro 16 à 18
  300. numéro 7 à 9 numéro 19 à 21
  301. __ numéro 10 à 12 numéro 22 à 24
  302. au format: __ IBM PC DOS 2.0 au format: __ APPLE J[ UCSD
  303. PTIT
  304. ABONNEMENT PASCALISSIME
  305. Un abonnement (France Métropolitaine uniquement), à compter du prochain numéro à
  306. paraître (tarif du 24 aout 1987):
  307. ___ 12 numéros au prix de 240 F TTC
  308. ___ 12 numéros et 4 disquettes au prix de 390 F TTC
  309. LIVRES
  310. Découvrez PASCAL sur APPLE ][, //e, //c, Tome 1: 148 F TTC
  311. Découvrez PASCAL sur APPLE ][, //e, //c, Tome 2: 148 F TTC
  312. La disquette des programmes du Tome 1: 75 F TTC
  313. La disquette des programmes du Tome 2: 75 F TTC
  314. La disquette des petits utilitaires: 98 F TTC
  315. ___ Topiques PASCAL: 290 FTTC
  316. ___ Les 4 disquettes de TOPIQUES PASCAL: 100 F TTC
  317. Ill
  318. Faites parvenir ce bon, accompagné de votre chèque à: Sp grRen en PASGOIS Numéro 12
  319. estion de fichier d’adresses
  320. L'INSTITUT PASCAL L'interprète de P CODE 25F
  321. 26 Rue Lamartine |
  322. 75009 Paris
  323. Téléphone 42 85 10 82 |
  324. Métro CADET ou ND de LORETTE
  325. NOM:
  326. | ADRESSE:
  327. AU COEUR DE TURBO PASCAL 12 AU COEUR DE TURBO PASCAL AU COEUR DE TURBO PASCAL 13 AU COEUR DE TURBO PASCAL
  328. ==================== PAGE 9 ====================
  329. OUTILS POUR TURBO PASCAL
  330. L'INSTITUT PASCAL diffuse une gamme de librairies et d’utilitaires qui facilitent la
  331. programmation en TURBO PASCAL. Tous ces produits sont en source TURBO PASCAL.
  332. (1 LIBRAIRIES TURBO PASCAL|
  333. Ces produits contiennent des collections homogènes de procédures TURBO PASCAL permettant
  334. l'affichage rapide, le fenêtrage, les appels DOS, la gestion mémoire, l’utilisation des interruptions,
  335. et le dépassement des 64K:
  336. - TURBO POWER PLUS (BLAISE): bibliothèque de procédures. 998F TTC
  337. — TURBO PROFESSIONAL (SUNNY HILL): 659F TTC
  338. BLAISE est un peu plus détaillé et pédagogique, TURBO PROFESSIONNAL plus compact et
  339. rapide.
  340. {2 UTILITAIRES TURBO PASCAL |
  341. Ces utilitaires facilitent la mise au point de programmes TURBO PASCAL:
  342. T DEBUG PLUS (TURBO POWER): debugger symbolique permettant d'examiner et changer
  343. le nom des variables, de tracer les instructions, de placer des points d’arrêt, d’afficher le texte
  344. source pendant l’exécution, d'utiliser l'éditeur TURBO et DEBUG. Disquette, carte de
  345. référence, manuel de 80 pages. Nécessite 256K sur PC. 498F TTC
  346. - TURBO EXTENDER (TURBO POWER): permet à un programme d’utiliser les 640K, la
  347. compilation séparée, offre plusieurs modèles de larges tableaux, et comprend de nombreux
  348. outils (cache disque, analyse d’overlays, encrypteur, générateur). 2 disquettes, manuel de 150
  349. pages. 698F TTC
  350. - TÜRBO POWER UTILITIES (TURBO POWER): 9 utilitaires: analyse de structure,
  351. chronométrage d’exécution, profil, pretty-printer, répéteur de commande, remplacement de
  352. chaînes, recherche de modifications, recherche de fichier, super directory. 3 disquettes, carte de
  353. référence et manuel. 798F TTC
  354. — TURBO OPTIMISER: supprime le code et les routines de la librairie inutilisés, constitue des
  355. librairies d’objet relocatable. 998F TTC
  356. — RUNOFF (BLAISE): formateur de texte paramétrable. 498F TTC
  357. 1
  358. Vous pouvez vous procurer ces produits directement à l’INSTITUT PASCAL, ou en envoyant
  359. votre commande accompagnée du montant (plus 20 francs par produit pour les frais d'expédition)
  360. L'INSTITUT PASCAL - 26 Rue Lamartine - 75009 Paris
  361. Téléphone (16 1) 42 85 10 82 - Métro CADET ou ND de LORETTE
  362. __ TURBO POWER PLUS (998 F TTC) T DEBUG PLUS (498 F TTC)
  363. TURBO PROFESSIONAL (659 F TTC) __ TURBO EXTENDER (698 F TTC)
  364. __ TURBO POWER UTILITIES (798F TTC)
  365. __ TURBO OPTIMIZER (998F TTC)
  366. __ RUNOFF (498 F TTC)
  367. NOM:
  368. ADRESSE:
  369. AU COEUR DE TURBO PASCAL 14 AU COEUR DE TURBO PASCAL
  370. PROLOG 1.3
  371. Le PROLOG 1.3 est un système PROLOG complet, permettant l’a i ’ensei
  372. l’utilisation du langage PROLOG. su à EN
  373. Il vous offre:
  374. — un éditeur de règles pleine page
  375. — une syntaxe simple, lisible, facilitant la compréhension des règles:
  376. COUSIN(cousin1, cousin?) ->
  377. PERE(père1, cousin1)
  378. PERE(père2, cousin2)
  379. FRERE(pèrel, père2);
  380. — un mode trace que vous pouvez activer ou supprimer à n’importe quel moment de l’exécution
  381. du programme.
  382. Cette trace permet de suivre le déroulement de l'exécution du programme et facili
  383. grandement la compréhension de l'exécution d’un programme PROLOG. ri nauus
  384. — une explication du raisonnement utilisé pour arriver à une solution.
  385. L’explication permet de comparer l'efficacité de plusieurs solutions, et surtout de vérifi
  386. postériori les règles utilisées (validation de diagnostics médicaux par exemple) ge:
  387. — des facilités d’entrée sortie:
  388. LIS CARACTERE(lettre_suivante )
  389. AFFICHE(Liste_resultats);
  390. de calculs arithmétiques:
  391. frequence DEVIENT mesure + 3
  392. de comparaisons:
  393. montant <= 5
  394. nom <> JEAN
  395. — la possibilité de rediriger les sorties vers l’imprimante ou un fichier sur disquette
  396. Cette version met en oeuvre le cut, les arbres infinis, le gel.
  397. Le PROLOG L.3 est actuellement disponible pour l'APPLE 2 (version 64K ou 128K).
  398. Vous pouvez vous le procurer à:
  399. L'INSTITUT PASCAL
  400. 26 Rue Lamartine
  401. 75009 Paris
  402. Tel 42 83 45 02
  403. AU COEUR DE TURBO PASCAL 15 AU COEUR DE TURBO PASCAL
  404. ==================== PAGE 10 ====================
  405. 1 INTRODUCTION 1
  406. CHAPITRE 1
  407. INTRODUCTION
  408. =
  409. Ce chapitre va présenter:
  410. — l'objectif de ce livre
  411. | — la structure du livre
  412. | — le matériel et les logiciels utilisés
  413. |
  414. AU COEUR DE TURBO PASCAL 17 AU COEUR DE TURBO PASCAL
  415. jh
  416. ==================== PAGE 11 ====================
  417. 1 INTRODUCTION 1
  418. 1 objectifs 14 |
  419. {1.1 LES OBJECTIFS DE CE LIVRE)
  420. Le but de ce livre est de décrire le fonctionnement de TURBO PASCAL sur PC.
  421. Cet ouvrage s’adresse aux personnes travaillant en TURBO PASCAL sur PC ou compatible, ayant
  422. déjà quelques mois de pratique de PASCAL et de TURBO.
  423. Il décrit en particulier:
  424. — l’organisation mémoire du PC (chapitre 2)
  425. — l’organisation mémoire de TURBO PASCAL (chapitre 3)
  426. — l'implémentation des types de données en TURBO PASCAL (chapitre 4)
  427. — le code généré par le compilateur (chapitre 5)
  428. — les options de compilation (chapitre 6)
  429. — le contenu de la librairie (chapitre 7)
  430. — quelques modifications de TURBO.COM (chapitre 8)
  431. Ces informations sont utiles pour:
  432. — échanger des données entre des fichiers TURBO PASCAL et d’autres programmes (LOTUS,
  433. WORDSTAR... )
  434. — optimiser ses programmes PASCAL (sélections d’instructions plus efficaces en place ou en
  435. vitesse)
  436. — compléter les explications de la documentation BORLAND
  437. — dépasser certaines limitations actuelles de TURBO PASCAL (barrière des 64K, débordement à
  438. la compilation, compilation séparée)
  439. — faire cohabiter en mémoire plusieurs programmes TURBO PASCAL
  440. — modifier certaines routines de la librairie
  441. — comprendre le fonctionnement de certains utilitaires de programmation utilisables avec
  442. TURBO PASCAL (TURBO EXTENDER, TURBO POWER+, T-DEBUG, par exemple)
  443. — satisfaire votre curiosité naturelle.
  444. {1.2 LA CONFIGURATION ET LES LOGICIELS UTILISES |
  445. Pour écrire ce livre, nous avons utilisé:
  446. — un IBM PC, muni de:
  447. — 484K de RAM |
  448. — un clavier AZERTY |
  449. — un écran monochrome |
  450. — une carte série |
  451. — deux lecteurs de disquette 360K * |
  452. |
  453. — PC DOS 2.10, avec chargement automatique de KEYBFR.COM
  454. AU COEUR DE TURBO PASCAL 18 AU COEUR DE TURBO PASCAL
  455. 1 INTRODUCTION 1
  456. 1.2 configuration et logiciels utilisés l2
  457. - TURBO.COM version 3.20A (39731 octets) avec le fichier de messages d’erreur d’origine
  458. (1536 octets). Pour la présentation des nombres BCD et des réels 8087, nous avons utilisé les
  459. compilateurs BCD et 8087 de la même version.
  460. — le désassembleur 8086 de L'INSTITUT PASCAL pour présenter les listings du code généré par
  461. le compilateur. La syntaxe de ce désassembleur est essentiellement celle de DEBUG d’IBM.
  462. Tous les plans mémoire ont été effectués avec cette configuration. Les programmes PASCAL ont
  463. été écrits avec la version TURBO mentionnée plus haut. Vous pouvez acquérir le texte de ces
  464. programmes sur une disquette disponible à l’INSTITUT PASCAL.
  465. {13 NOTATIONS)
  466. Les programmes présentés comportent:
  467. — en commentaire, à la première ligne, le nom du fichier sur disque contenant le texte du
  468. programme. C’est ce nom que vous pouvez utiliser pour charger le texte depuis la disquette de
  469. ce livre. Cette disquette est disponible à l’Institut Pascal.
  470. — en gras les mots ayant une signification spéciale en TURBO PASCAL (mots réservés ou
  471. prédéfinis)
  472. — des numéros de lignes pour permettre de facilement commenter le texte du programme. Il ne
  473. faut, bien sûr, pas les taper si vous éditez le programme.
  474. {1.4 AMELIORATIONS|
  475. Je tiens à remercier tout particulièrement le Docteur Alain GUERIN qui a bien voulu corriger le
  476. manuscrit et proposé des modifications des programmes du chapitre 8.
  477. Les erreurs qui subsistent restent ma responsabilité. Je suis toutefois particulièrement reconnaissant
  478. aux lecteurs qui me les signaleraient.
  479. N'hésitez pas à me contacter pour me faire part de vos commentaires, vos appréciations ou vos
  480. suggestions. Vous trouverez aussi à la fin du livre un coupon réponse qui vous permettra de
  481. m'indiquer les ouvrages, programmes ou utilitaires que vous aimeriez voir publiés. Vous pouvez
  482. me joindre par courrier, en téléphonant à L'INSTITUT PASCAL, ou en venant directement 26 Rue
  483. Lamartine.
  484. Paris, le 28 Aout 1987
  485. John COLIBRI
  486. AU COEUR DE TURBO PASCAL 19
  487. AU COEUR DE TURBO PASCAL
  488. ==================== PAGE 12 ====================
  489. ? LES DONNEES EN 8088 2
  490. CHAPITRE 2
  491. LES DONNEES EN 8088
  492. Ce chapitre va présenter:
  493. l
  494. les unités utilisées en informatique
  495. l’organisation du 8088
  496. — l’organisation mémoire du PC
  497. les programmes d'examen de la mémoire et des disquettes
  498. A l'issue de ce programme vous serez en mesure:
  499. — d'examiner le contenu de la mémoire
  500. — d’examiner le contenu d’un fichier
  501. | — d'interpréter les listings 8088
  502. Le lecteur familier avec le 8088 et avec les programmes d'examen de la mémoire peut sauter
  503. directement au chapitre 3 dans lequel nous examinerons l’organisation mémoire de TURBO
  504. PASCAL.
  505. AU COEUR DE TURBO PASCAL 21 AU COEUR DE TURBO PASCAL
  506. ==================== PAGE 13 ====================
  507. "À LES DONNEES EN 8088 2
  508. 21 unités informatiques 2.1
  509. {2.1 LES UNITES EN INFORMATIQUE]
  510. Commençons par définir les unités usuelles en informatique.
  511. {2.1.1 LE BIT ET LES REGROUPEMENTS DE BITS
  512. Le bit est l’élément de base en informatique. Il ne peut prendre que deux valeurs, 1 ou O.
  513. Avec un bit isolé, nous ne pouvons représenter que 2 données:
  514. — par exemple les valeurs numériques 0 et 1
  515. — ou encore les 2 opérations + et -
  516. — ou les valeurs VRAI et FAUX.
  517. ous pouvons convenir que 0 "représente" +, et 1 "représente" -. Ce qui nous intéresse ici, ce n’est
  518. pas la valeur numérique (0 et 1), mais le fait que nous avons un i Be i
  519. era q certain nombre d’informations à
  520. Pour représenter un ensemble de données i i i
  521. u > plus vaste, il faut grouper plusi insi, si
  522. utilisons 2 bits, nous avons 4 cas possibles: TR
  523. bit 2 Dr
  524. = O ©
  525. 0
  526. 1
  527. 0
  528. 1
  529. et nous pouvons donc représenter 4 données distinctes:
  530. — par exemple les 4 valeurs numériques 0, 1, 2, 3
  531. - ouencore -2,-1,0et1
  532. — ou finalement les 4 opérations +, -, * et /
  533. Et en groupant n bits, nous pouvons représenter 21n données distinctes.
  534. L'ordre dans lequel sont écrits ces bits a une im
  535. portance (01 représente une donnée, 10 une av
  536. donnée). Nous numérotons ces bits, et nous les écrirons toujo \ 1 Pure
  537. le numéro (aussi appelé le poids) le plus élevé: NA 2 cage au
  538. Numéro du bit: m2 nt 10
  539. Valeur du bit: LOS EI
  540. AU COEUR DE TURBO PASCAL 22 AU COEUR DE TURBO PASCAL
  541. 2 LES DONNEES EN 8088 2
  542. 2.1 unités informatiques 24
  543. {2.12 LES BASES DE NUMERATION
  544. L'écriture usuelle des nombres correspond à une décomposition de la valeur numérique en
  545. puissances de 10: 2735 correspond à 2*1000 + 7*100 + 3*10 +5*1. Et comme 1000 est la
  546. troisième puissance de 10 (1000=10*10*10), nous pouvons encore dire que 2735 correspond à:
  547. 2*1043 + 7*1012 +3*10A1 + 5*10/0
  548. Nous utilisons donc normalement la "base" 10 (base décimale):
  549. _ Ja base 10 emploie les 10 chiffres O, 1, 2, 3, 4, 5, 6,7, 8 et9
  550. une valeur numérique s'écrit de façon abrégée en indiquant uniquement les multiplicateurs des
  551. puissances décroissantes de 10
  552. De la même façon, nous pouvons utiliser la base 2 (binaire):
  553. — la base 2 emploie les 2 chiffres O et 1
  554. une valeur numérique s’écrit de façon abrégée en indiquant uniquement les multiplicateurs des
  555. puissances décroissantes de 2
  556. Ces puissances de 2 sont:
  557. — 210 (1),
  558. — 2A1 (2 en décimal),
  559. — 212 (4 en décimal),
  560. — 213 (8 en décimal),
  561. — 2M4 (16 en décimal),
  562. — 215 (32 en décimal) etc
  563. Ecrivons par exemple la valeur décimale 653 en binaire. 653 est égal à:
  564. 1*512 + 0*256 + 1*32 + 1*8 + 1*1
  565. soit:
  566. 1#2A9 + 0*28 + 0*2A7 + 0*2A6 + 1*2A5 + O*2A4 + 1243 + 0*2A2 + O*2A1 + 1#2A0
  567. La valeur numérique notée 653 en base 10 est donc aussi désignée par
  568. 1000101001
  569. en base 2.
  570. Lorsque nous souhaitons représenter des valeurs numériques en informatique, il est donc commode
  571. d'utiliser une représentation dans laquelle la suite de bits correspond à la notation binaire.
  572. Soulignons que cela n’a rien d'obligatoire. En particulier pour représenter des valeurs négatives, il
  573. faut bien introduire le signe. Nous pouvons utiliser le bit de numéro le plus élevé, en convenant par
  574. exemple que si ce bit a pour valeur 1, la valeur est négative, s’il a pour valeur 0, le nombre est
  575. positif. En utilisant par exemple 3 bits:
  576. — 110 représente ainsi -2 (et non pas 6 !)
  577. — 010 représente +2.
  578. AU COEUR DE TURBO PASCAL 23 AU COEUR DE TURBO PASCAL
  579. ==================== PAGE 14 ====================
  580. 2 LES DONNEES EN 8088 2
  581. 2,1 unités informatiques 22
  582. En plus des bases 10 et 2, nous utiliserons aussi la base 16 (base hexadécimale):
  583. — la base 16 emploie les 16 chiffres O, 1, 2, 3, 4, 5, 6, 7, 8,9, A, B,C,D,EetF
  584. — une valeur numérique s’écrit de façon abrégée en indiquant uniquement les multiplicateurs des
  585. puissances décroissantes de'16
  586. Traditionnellement, les valeurs hexadécimales sont précédées du signe $, ce que nous ferons dans
  587. ce livre. Ainsi $23 correspond à:
  588. ZR1ON + 341610
  589. soit 35 en décimal.
  590. {2.1.3 LE QUARTET
  591. Nous désignons par quartet (nibble en anglais: "petite bouchée") une suite de 4 bits.
  592. Ainsi 0111 représente un quartet:
  593. Quartet:
  594. Bit numéro: 3210
  595. Valeur du bit: O111
  596. Un quartet nous permet de représenter 2M4, soit 16 données distinctes.
  597. Si nous considérons un quartet comme l’écriture binaire d’une valeur numérique, nous pourrons
  598. utiliser un nibble pour les valeurs allant de 0 (0000) à 15 (1111).
  599. A l’aide d’un nibble, nous pouvons aussi représenter les chiffres de base du système hexadécimal
  600. (base 16). Ainsi le quartet 0111 sera aussi noté $7 en hexadécimal. En revanche, 1100, dont la
  601. représentation décimale est 12, sera noté $C en base hexadécimale.
  602. {214 L’OCTET
  603. Un octet (ou Byte: "bouchée") est un ensemble de 8 bits.
  604. Par exemple 01011110, que nous écrirons en séparant les bits 4 par 4: 0101 1110 ou encore:
  605. Octet:
  606. Bit numéro: 7654 3210
  607. Valeur du bit: 0101 1110
  608. Un octet nous permet donc de représenter 218 soit 256 données différentes.
  609. AU COEUR DE TURBO PASCAL 24 AU COEUR DE TURBO PASCAL
  610. 2 LES DONNEES EN 8088 2
  611. 23 unités informatiques 21
  612. Si nous considérons que chaque bit de l’octet 0101 1110 correspond à une puissance de 2 (soit 128,
  613. 64, 34, 16, 8, 4, 2 et 1), notre octet aura pour valeur en base décimale:
  614. 0*128 + 1*64 + 0*32+ 1*16 +1*8 + 1*4 1*2 +0*1
  615. soit 94.
  616. Dans cette représentation, les valeurs décimales extrêmes d’un octet sont donc 0 et 255.
  617. Î i i décimal. Nous obtenons la
  618. s aussi noter chaque groupe de 4 bits par un chiffre hexal
  619. ps one rat d’un octet (dans notre exemple, 0101 1110 se note $5E).
  620. i j ur travaille sur
  621. \ t le regroupement normal des bits dans les systèmes dont le micro processe
  622. 8 bits de Tous C'est le cas du 6502, du 6800 _ du Z80, ”_ gr gris sh 7 pe pren
  623. émoire peut stocker un octet. Dans ce cas la tale re Se :
  624. one me d’octets. Et comme les manipulations des bits par 8 sont métis a par
  625. l'électronique de ces systèmes, l’octet, ou ses multiples, est utilisé comme élément de base pour
  626. représenter de nombreux types.
  627. (2.15 LE MOT
  628. Un mot (ou Word) sera considéré dans ce livre comme un ensemble de 16 bits, soit deux octets.
  629. Un mot permet de représenter 2116 données distinctes (65.536 en décimal).
  630. Comme précédemment, nous écrirons un mot en plaçant le bit de numéro le plus élevé à gauche:
  631. Mot
  632. Bit numéro: 15 14:13 12 11/10091108 07.106 93 va ” "à qa ne
  633. Valeur dubit 01100) 1 A EN Q MA
  634. En décimal, ce mot aurait pour valeur:
  635. *2A15 + 1*2414 + 0*2113 +,1*2912 +
  636. Tai + 1%2A10 41) 1249 +08 298 +
  637. 1*24 7 + 1*246 + 0*2A5 + 0*214 +
  638. 1#24 3 + 0*2A2 + O0+*2A1 + 1*2A0
  639. soit:
  640. O0 + 16384 + 0 + 4096 +
  641. 2048 + 1024 + 512 + 0 +
  642. 128 + 64 + O0 + 0 +
  643. 8 + 0 + 0 + 1
  644. ou 24265.
  645. AU COEUR DE TURBO PASCAL 25 AU COEUR DE TURBO PASCAL
  646. ==================== PAGE 15 ====================
  647. 2 LES DONNEES EN 8088 2
  648. 2: unités informatiques 2.1
  649. Nous pouvons écrire le mot sous la forme de deux octets. Nous placerons l’octet de numéro le plus
  650. faible à droite:
  651. Mot :
  652. Octet numéro: 1 0
  653. Valeur de l’octet: $5E $C9 (FAIBLE)
  654. Les microprocesseurs comme le 8086 ou le 68000 effectuent leurs opérations par mots. Cette unité
  655. est donc particulièrement importante dans ces processeurs.
  656. {2.1.6 LE SECTEUR, LE BLOC, LE CLUSTER
  657. Pour optimiser le temps de transfert entre les disques et la mémoire, les lecteurs stockent
  658. l'information par groupes d’octets appelés secteurs. Le secteur est donc la plus petite quantité
  659. transférable entre une disquette et la mémoire.
  660. Le nombre d’octets contenus dans un secteur varie d’un constructeur à l’autre. Certains utilisent
  661. des secteurs de 128, d’autres des secteurs de 4096... En ce qui concerne l’IBM, il est même
  662. possible de choisir un formatage utilisant des secteurs de 256, 512 ou 1024 octets. Par défaut, le PC
  663. utilise des secteurs de 512 octets.
  664. Pour réduire la taille des tables qui gèrent la disquette, il arrive que l’Operating System regroupe
  665. plusieurs secteurs. Ces regroupements sont appelés des Clusters. Ainsi le MS-DOS utilise des
  666. clusters de 2 secteurs.
  667. Finalement le langage que vous utilisez peut gérer ses fichiers en utilisant une autre structure, que
  668. nous désignerons par bloc. Turbo Pascal permet la gestion de fichiers par blocs de 128 octets (que
  669. Turbo appelle des Records, terme que nous n’emploierons pas).
  670. En résumé:
  671. — le secteur est le regroupements d’octets transférés par le lecteur
  672. — le cluster est le regroupement de secteurs gérés par l’Operating System
  673. — le bloc est le regroupement d’octets gérés par certaines instructions fichier de Turbo Pascal
  674. (21.7 LE K
  675. Une autre unité souvent utilisée est le K. Contrairement au nibble, à l’octet, au mot ou au secteur
  676. qui correspondent à des regroupements effectifs de bits au niveau de l'électronique, le K est
  677. uniquement une unité de mesure de capacité (mémoire ou disquette).
  678. Un K correspond à 2410, soit 1024 en décimal.
  679. AU COEUR DE TURBO PASCAL 26 AU COEUR DE TURBO PASCAL
  680. 2 LES DONNEES EN 8088 ?
  681. LE unités informatiques 21
  682. Ainsi, si un système a une mémoire de 65.536 octets, nous pouvons aussi dire qu’il a une mémoire
  683. de 64 K (car 64*1024 est égal à 65.536).
  684. De même une disquette double face de 40 pistes de 9 secteurs de 512 octets a une capacité de
  685. 2*40*9*512, soit 40*9*1024 ou 360 K.
  686. {2.18 LE PARAGRAPHE
  687. Le paragraphe est un regroupement de 16 octets.
  688. Par exemple 3 paragraphes contiennent 48 octets.
  689. Cette unité correspond au fonctionnement du 8088 qui utilise pour désigner un emplacement
  690. mémoire une adresse exprimée en paragraphes et une adresse exprimée en octets. Ainsi la cellule
  691. située à l’adresse 53 peut être désignée comme la cellule au paragraphe 2 et au décalage 21 (2*16+
  692. 21= 53).
  693. {22 LE FONCTIONNEMENT DU 8088 |
  694. (2.2.1 L’'ARCHITECTURE DU PC
  695. Globalement, notre PC comporte:
  696. — un micro processeur 8088 (ou 8086, 80286, 80386...)
  697. — une zone mémoire ini \
  698. — des périphériques (écran, clavier, disquette, et, éventuellement, des imprimantes, des disques
  699. durs, des cartes série...)
  700. AU COEUR DE TURBO PASCAL 27 AU COEUR DE TURBO PASCAL
  701. ==================== PAGE 16 ====================
  702. LES DONNEES EN 8088
  703. le fonctionnement du 8088
  704. pris
  705. clavier
  706. VA
  707. lecteur
  708. mémoire
  709. Fig. 2.1 Le micro processeur, la mémoire et les périphériques
  710. Les traitements sont effectués par le micro-processeur, qui communique avec la mémoi
  711. périphériques par l'intermédiaire de fils, appelés bus. e : Dam rt
  712. Le système comporte 3 bus:
  713. — le bus de données
  714. — le bus d’adresse
  715. — le bus de contrôle
  716. Le bus de données est celui sur lequel voyagent les données. Les donné i
  717. octets (8 bits). Le bus de données comporte de 8 fils. A
  718. Le bus d'adresse permet au processeur d’indiquer quelle cellule de la mémoire il souhaite traiter.
  719. La capacité mémoire (le nombre de cellules) peut varier entre 64K (65.536) et 640K (655.360)
  720. selon les cartes mémoires que nous avons ajoutées. Pour lire ou écrire des données dans l’une des
  721. cellules, le 8088 doit préciser l’adresse (le numéro) de la cellule. Cette adresse sera donc un
  722. nombre compris entre 0 et 655.360. Pour pouvoir spécifier n’importe quelle valeur dans cet
  723. pb pt urafoin bits (car 2120, soit 1.048.576 est la première puissance de 2 supérieure
  724. Ë . Le bus d’adresse comporte donc 20 fils. Î ili
  725. LEE rad p s. En hexadécimal, une telle valeur utilise 5
  726. Le bus de contrôle sert à préciser la nature de certaines opérations du 8088. Par exemple c’e
  727. sie . . . . : à t è
  728. l’aide de ce bus que le 8088 indique qu’il souhaite lire ou écrire une cellule de la pis j
  729. En nous limitant au 8088 et à la mémoire nous avons donc le schéma suivant:
  730. AU COEUR DE TURBO PASCAL AU COEUR DE TURBO PASCAL
  731. 2 LES DONNEES EN 8088 2
  732. 2.2 le fonctionnement du 8088 22
  733. E
  734. écran
  735. E
  736. clavier
  737. 8088
  738. lecteur
  739. mémoire
  740. Fig. 2.2 Le micro-processeur, la mémoire et les périphériques
  741. {222 L'ADRESSAGE SEGMENTE DU 8088
  742. Fondamentalement le 8088 est capable de traiter des valeurs de 16 bits. Cela lui permet, par
  743. exemple, d’additionner deux valeurs de 16 bits pour obtenir un résultat de 16 bits.
  744. Les traitements se font à l’aide des registres du 8088. Ces registres ne sont que des mémoires
  745. situées dans le 8088, et dont l'accès est très rapide. Ils sont désignés par AX, BX, CX etc.
  746. Ainsi pour effectuer l'addition de $1111 et $2222, le 8088 exécute les opérations suivantes:
  747. MOV AX, $1111 ; charge le registre AX avec la valeur $1111
  748. ADD AX, $2222 ; effectue l’addition. AX contient $3333
  749. Lorsque le 8088 souhaite accéder à la mémoire, il utilise aussi les registres pour préciser l'adresse
  750. visée, Or nous venons de voir plus haut que le bus d’adresse nécessite 20 bits. Il faut donc utiliser
  751. au moins deux registres pour spécifier une adresse.
  752. Deux techniques sont possibles:
  753. _ l’adressage paginé: un registre précise les 4 bits de poids fort, et un autre précise les 16 bits qui
  754. suivent.
  755. _ l’adressage segmenté: un registre précise l’adresse de début d’un segment de 64K, et un second
  756. registre précise le décalage dans ce segment.
  757. Les concepteurs du 8086 ont choisi la technique de l’adressage segmenté. Examinons donc cette
  758. technique plus en détail.
  759. AU COEUR DE TURBO PASCAL 29 AU COEUR DE TURBO PASCAL
  760. ==================== PAGE 17 ====================
  761. 2 LES DONNEES EN 8088 2
  762. 72 le fonctionnement du 8088 22
  763. Supposons que la cellule qui nous intéresse soit située à l’adresse $12222. Nous pouvons accéder à
  764. cette cellule en indiquant qu’elle se trouve dans le segment qui commence à l’adresse $10000 et
  765. elle se trouve au décalage $02222:
  766. $00000
  767. $10000 début du segment
  768. le décalage de $2222
  769. $12222 nr la cellule à $12222
  770. $FFFFF
  771. Fig. 2.3 La cellule à l’adresse $12222
  772. Comme nos registres ne peuvent contenir que 16 bits, Intel a décidé que:
  773. — les adresses de segments ne contiendraient que les 16 bits de poids fort de l’adresse absolue du
  774. segment (les 4 bits de poids faible, non explicités, sont par définition 0)
  775. — les décalages ne contiendraient que les 16 bits de poids faible de l'adresse absolue du décalage
  776. (les 4 bits de poids fort non explicités sont par définition 0)
  777. Dans notre exemple, le segment aurait pour valeur $1000 et le décalage $2222. Traditionnellement,
  778. l'adresse est alors notée en indiquant le segment, deux points et le décalage:
  779. $1000: 52222
  780. Lorsqu’une adresse segmentée est indiquée, pour obtenir l’adresse complète il faut donc:
  781. — multiplier l'adresse du segment par 16 ($10)
  782. — ajouter l’adresse du décalage.
  783. Par exemple l’adresse $3333:$4444 correspond à l’adresse absolue suivante:
  784. $33330
  785. $04444
  786. $37774
  787. AU COEUR DE TURBO PASCAL 30 AU COEUR DE TURBO PASCAL
  788. 2 LES DONNEES EN 8088 2
  789. 22 le fonctionnement du 8088 22
  790. Notez que:
  791. _ un segment peut débuter à n’importe quelle adresse absolue multiple de 16 ($10). Par exemple
  792. $00000, $00010, $00020, 500030... SFFFFO:
  793. $00000 le segment $0000
  794. $00010 le segment $0001
  795. $00020 le segment $0002
  796. $SOFFFF
  797. $1000F
  798. $1001F
  799. S$SFFFFF
  800. Fig. 2.4 Un segment peut commencer à une adresse multiple de $10
  801. - l’utilisation d’un segment ne garantit pas qu'il y ait des cellules mémoires pour tous les
  802. décalages possibles. Nous pouvons par exemple adresser les cellules du haut de la mémoire par
  803. $FFFF: Décalage, à condition de limiter Décalage à des valeurs entre $0000 et $000F. Des
  804. valeurs supérieures ne correspondent à aucune cellule mémoire et ne doivent pas être employées
  805. $00000
  806. $FFFFO le segment $FFFF
  807. $FFFFF [
  808. Fig. 2.5 Le dernier segment
  809. — l’utilisation d’un segment n’oblige pas à utiliser tous les 64K du segment. Elle ne "réserve" pas
  810. l'espace des 64K: un second segment peut être utilisé pour accéder à des données situées dans
  811. la zone du premier. Une partie d’un programme peut très bien utiliser dans le segment $10000
  812. les décalages $0100 à $4000, et une autre partie du programme peut travailler dans le segment
  813. $1410 en employant les adresses $0500 à $0800:
  814. AU COEUR DE TURBO PASCAL
  815. AU COEUR DE TURBO PASCAL 51
  816. ==================== PAGE 18 ====================
  817. 2 LES DONNEES EN 8088 2
  818. 22 le fonctionnement du 8088 à 4
  819. $00000
  820. $10000 —— le segment $1000
  821. $10100
  822. la zone $1000:$0100 à $1000:$0400
  823. $10400
  824. $10410 | — le segment $1041
  825. $10910
  826. la zone $1041:$0500 à $1041:$0800
  827. $10C10
  828. $S1FFFF \
  829. $2040F +
  830. SFFFFF
  831. Fig. 2.6 L'utilisation d’un segment ne réserve pas les 64K
  832. — il n’y a aucune règle obligeant à empiler ou emboîter les segments d’une façon ou d’une autre.
  833. Nous présentons ci-dessous un segment qui débute dans la zone d’un autre segment:
  834. AU COEUR DE TURBO PASCAL 32 AU COEUR DE TURBO PASCAL
  835. 2 LES DONNEES EN 8088 2
  836. 2.2 le fonctionnement du 8088 22
  837. $00000
  838. $10000 — le segment $1000
  839. $10100
  840. la zone $1000:$0100 à $1000:$0400
  841. $10200 |— | | ———— le segment $1020
  842. $10400
  843. $10910
  844. la zone $1020:$0710 à $1020:$0A10
  845. $10C10
  846. $S1FFFF Ÿ
  847. $201FF V
  848. SFFFFF
  849. Fig. 2.7 Un segment peut commencer dans un autre segment
  850. Bref, les segments sont là uniquement pour pouvoir désigner une adresse dans un espace de plus de
  851. 64K.
  852. La technique d’adressage segmenté paraît au premier abord compliquée:
  853. — l'adresse absolue n’est pas immédiatement évidente. Par exemple l’adresse segmentée
  854. $1EB7:$D432 correspond à l'adresse absolue $2BFA2:
  855. $1EB70
  856. + $0D432
  857. = $2BFA2
  858. AU COEUR DE TURBO PASCAL 33 AU COEUR DE TURBO PASCAL
  859. ==================== PAGE 19 ====================
  860. 2 LES DONNEES EN 8088 2
  861. 22 le fonctionnement du 8088 22
  862. $00000
  863. $1EB70 début du segment $1EB7
  864. le décalage de $D432
  865. $2BFA2 his Jutdl | la cellule à $1EB7:$D342
  866. $2EB6F
  867. $FFFFF
  868. Fig. 2.8 La cellule à l’adresse $1EB7:$D342
  869. — l'adresse d’une même cellule peut être indiquée par plusieurs adresses segmentées. Ainsi
  870. $1EB7:$D432 correspond à la même cellule que $2A34:$1C62, ou que $2BFA:$0002:
  871. $00000
  872. $1EB70 — le segment $1EB7
  873. Î le décalage $D432
  874. $2A340 | — le segment $2A34
  875. | | le décalage $1C62
  876. |
  877. $2BFAO || — le segment $2BFA
  878. | | | Î le décalage $0002
  879. | $2BFA2 (TN la cellule à S1EB7:$D342
  880. SOFFFF \
  881. $1000F Ÿ
  882. | $1001F Ÿ
  883. | SFFFFF
  884. | Fig. 2.9 Une cellule peut être désignée par plusieurs adresses segmentées
  885. La technique de l’adressage segmenté a été retenue par Intel pour les raisons suivantes:
  886. — elle facilite l’utilisation des programmes écrits pour les anciens micro processeurs 8 bits du
  887. type 8080. Il suffit de sélectionner une zone de 64K de la mémoire, et de ne travailler que dans
  888. ce segment:
  889. AU COEUR DE TURBO PASCAL 34 AU COEUR DE TURBO PASCAL
  890. 2 LES DONNEES EN 8088 v:
  891. . 27 le fonctionnement du 8088 2.2
  892. $00000
  893. $12340 le segment $1234
  894. $2233F
  895. $FFFFF
  896. Fig. 2.10 Un programme utilisant tous les 64K d’un segment
  897. On peut alors assimiler le segment à une petite machine positionnée dans la grosse (un petit
  898. Apple assis au milieu de la mémoire du PC).
  899. — elle permet d'écrire des programmes qui peuvent être chargés n’importe où en mémoire. En
  900. effet les instructions du 8088 qui n’utilisent que les décalages fonctionneront de façon
  901. identique que le programme soit placé dans un segment débutant à l’adresse $10000 ou à
  902. l’adresse $20000. Par exemple, les machines françaises utilisent Keybfr pour transcoder le
  903. clavier AZERTY. Turbo Pascal est chargé au-dessus de Keybfr, et fonctionne aussi bien que
  904. sur les machines américaines où il est chargé un peu plus bas.
  905. — elle permet d'installer en mémoire plusieurs programmes, en facilitant le saut d’un programme
  906. à l’autre. Par exemple si vous compilez en mémoire un programme avec Turbo, votre mémoire
  907. contiendra le programme Turbo.com et votre programme. Le transfert du contrôle à votre
  908. programme (Run) se fera par un simple changement de segment. Et le retour au menu de Turbo
  909. par le transfert inverse.
  910. Malgré ces avantages, la technique d’adressage segmentée explique certaines limitations
  911. couramment rencontrées (des tableaux ou du code ne dépassant par 64K, par exemple). Ces
  912. limitations peuvent être tournées, mais nécessitent la mise en oeuvre d'instructions qui changent
  913. les segments.
  914. {223 LE CODE, LES DONNEES ET LA PILE
  915. Un programme simple utilise 3 segments principaux:
  916. — le segment de code qui contient les instructions 8088
  917. — le segment de données qui contient les données
  918. — le segment de pile qui permet de gérer facilement les appels de sous-programmes
  919. AU COEUR DE TURBO PASCAL 35 AU COEUR DE TURBO PASCAL