Bienvenue sur les pages du site de LPJJl Software dédiées à la programmation !

 

J'ai rassemblé ici tout ce qui compose mon environnement de développement : sources, docs et liens utiles. Une partie de ces ressources (notamment les tutoriels et les sources) est hébérgée sur les serveurs de www.developpez.com.

 

Pour les plate-formes Win16, DOS et DPMI, j'utilise Borland Pascal for Windows 7.0.

Pour la plate-forme Win32, j'utilise Virtual Pascal 2.1.

Pour la plate-forme Linux, j'utilise Lazarus.

 New  (06-10-2009) Tutoriel : Installer et configurer Turbo Pascal sous Windows 7 et Vista

      Visites (depuis le 03-04-2005) :

 

Table des matières

Documentation

Pascal
Assembleur
C
Système - MS-DOS - Windows - Linux
Hardware - BIOS
PC Games Programmer's Encyclopedia (PC-GPE)

Tutoriels personnels

Sources personnels

Plate-forme MS-DOS
Plate-forme Windows 16 bits
Plate-forme Windows 32 bits

Liens

EDI, compilateurs et aides en ligne
Programmation Pascal
Programmation Assembleur
Programmation Windows
Programmation système
Programmation hardware
Sites de programmation généralistes
Autres langages et technologies
Système - MS-DOS - Windows - Linux
Formats de fichiers

Documentation

Les quelques docs et sources qui suivent m'ont bien servi et sont sans doute devenus difficiles à trouver, à cause de leur relative vétusté. L'avertissement est donc lancé : ce qui suit est probablement en grande partie obsolète. Mais, parfois, on est bien content d'avoir gardé ses vieilles disquettes...

Si vous utilisez certains extraits des sources proposés, veuillez vérifier la licence d'exploitation indiquée par leur auteur.

Pascal

The Bocquet Pascal Library

InfoMem 2.0 : informations sur l'occupation de la mémoire et tests
SpeakWav 1.0 : pour jouer un fichier wav sur le haut-parleur du PC
Diskinfos 1.5 : informations générales sur le disque dur et tests
Parquer 2.7 : pour parquer des disques durs
Boot 1.0 : pour booter à chaud, à froid ou sous Windows 3.x
Delp 1.0 : amélioration de la commande del
DelSof 1.0 : effacement de fichiers sauf ceux spécifiés
DelTree 2.0 : amélioration de la commande deltree
TreePlus 1.5 : amélioration de la commande tree
Unit CmdLine : unité d'analyse de paramètres passés en ligne de commande
Unit XMS : gestionnaire de mémoire XMS

K-Tools - bibliothèque d'unités d'objets Turbo Pascal 6 et 7

Unit UDrivers : gestion du clavier et de la souris
Unit UTextScr : gestion de l'écran en mode texte
Unit UMem : gestion de la mémoire
Unit UImprim : gestion de l'imprimante
Unit OTableau : objets liés aux tableaux dynamiques
Unit OFile : objets liés aux fichiers
Unit OBinFile : objets liés aux fichiers avec mémoire tampon
Unit OFText : objets liés aux fichiers textes
Unit OFHelp : objets liés aux fichiers d'aide
Unit OFWrite : objets liés aux fichiers .wri (Write for Windows)
Unit OFSwag : objets liés aux fichiers swag
Unit OFZip : objets liés aux fichiers .zip
Unit OFDirTab : objets liés à la constitution de listes des fichiers d'un répertoire
Unit OChamp : objet champ de saisie
Unit OTEdit : éditeur abstrait
Unit OGenView : objet générique représentant une zone d'écran
Unit OTxtView : objet représentant une zone d'écran en mode texte
Unit ODialWin : fenêtres de dialogues simples
Unit OFileWin : fenêtres de visualisation d'un fichier texte
Unit OTextWin : fenêtres de visualisation de textes
Unit OHelpWin : fenêtres d'aide
Unit OCRTWin : fenêtres simulant la console DOS
Unit OCalend : fenêtre calendrier
Unit OEdWin : fenêtre d'édition de texte
textread.pas : visualisateur de fichiers textes
wriread.pas : visualisateur de fichiers .wri
swagread.pas : visualisateur de fichiers swag
zipview.pas : visualisateur de fichiers .zip
kmenu.pas : menu pour disque dur
batmenu.pas : menu pour dsiquette
miniedit.pas : mini-éditeur
calend.pas : calendrier

Labyrinthe 3D - sources d'un jeu en VGA avec images au format PCX

Midas Sound System 0.32 - système digital multi-canaux en Pascal et Assembleur - plusieurs cartes son supportées

Gnasher v. 24 - sources d'un Pac-man en Turbo Pascal

Pascal Wizard Library - sources divers en Pascal

Unit Archives : routines de visualisation du contenu de fichiers de plusieurs formats d'archives
Unit BCD : opérations sur les nombres BCD (Binary-Coded Decimal)
Unit Equipmt : routines de détermination de l'environnement matériel et logiciel
Unit ExtMath : fonctions mathématiques étendues
Unit Joystick : routines de gestion du joystick
Unit Keyboard : routines de gestion du clavier
Unit Mouse : routines de gestion de la souris
Unit Music : langage permettant de jouer de la musique plus simplement que les fonctions de base du Pascal
Unit Strings : routines de compression, cryptage, recherches, extraction, etc, de chaînes de caractères

PC Sound Programmer 2.0 - pour jouer de la musique sur le haut-parleur du PC

PCX Kit, UPKPCX - gestion du format PCX en Pascal, C et Assembleur

Personal Communications Lib for Pascal 4.3 - modems et interface série

Gestion de la Sound Blaster et des fichiers VOC en Pascal

sbdetect : détection du modèle de carte Sound Blaster
Unit sbdsp.pas : programmation du DSP, accès direct au matériel, DMA, double-buffering, mixage d'échantillons, sortie stéréo, gestion des formats VOC et WAV, ajustement de volume en temps réel, enregistrement line-in/micro/CD
testsb.pas : joue des fichiers VOC sur tous modèles de cartes Sound Blaster

Source (Delphi) de l'IDE et du compilateur Inno Pascal

Unit FastSprite3 - sprites en Pascal avec source d'un space game

StarField en VGA - exemple d'utilisation des formules de projection centrale

TrueType fonts for DOS 1.60 (également fontes Windows, BGI et BIOS)

Prof. Timo Salmi's Turbo Pascal FAQ

XMS Demo - copie de fichier via la mémoire XMS

Assembleur

Comment empêcher le débogage d'un exécutable

386Power 2.00 - DOS extender

Adressage en mode flat 32 bits

Player de fichiers .mod

Opcodes de toutes les instructions, du 8086 au Pentium

Divers sources en Assembleur

386reg.asm : programmation d'un timer à l'aide de l'int 08h - affichage en temps réel du contenu des registres en haut de l'écran
100x37.asm, 132x43.asm, 80x30.asm et 90wide.asm : manipulation des registres vidéo pour changer le nombre de lignes et de colonnes de texte à l'écran
blitzkey.asm : BlitzKey 1.00 - TSR fournissant un gestionnaire amélioré du clavier (ajout de fonctionnalités à l'int 16h)
bootdos5.asm : bootstrap loader de MS-DOS 5
bootsect.asm : secteur de boot de MS-DOS 6.20 (version allemande)
c_alt_dl.asm : TSR qui intercepte Ctrl-Alt-Del pour afficher le contenu des registres ainsi que l'instruction suivante à excécuter
cacheoff.asm : désactivation du cache d'un 486 ou d'un Pentium
chain.asm et fatview.asm : parcours de la chaîne des clusters et secteurs composant un fichier (FAT12)
chfont.asm : change la police de caractères en programmant les registres vidéo
chime1 : affiche l'heure et fait retentir un carillon toutes les heures (programmation de timers)
click.asm : sortie d'un clic sur le haut-parleur chaque fois qu'une touche est pressée
cmos.asm : sauvegarde de la CMOS (64 ou 128 bytes) dans un fichier
cpu2asm : identification du type de processeur (jusqu'au 486) à l'aide de son n° de masque
devchain.asm : affiche la liste des pilotes DOS résidant en mémoire
device.asm : squelette d'un pilote de périphérique DOS
dimmer.asm : TSR permettant de régler l'intensité d'éclairage d'un écran VGA
dirtree.asm et vtree.asm : affichage de l'arborescence des répertoires d'un disque
dos_log.asm : Dosmon - TSR qui affiche des informations durant l'exécution de services DOS
dpmi.asm : bascule en mode protégé et affiche un message
drlite.asm : loupiotte indiquant l'activité d'un lecteur (disque dur ou disquette) en haut de l'écran
enaba20.asm : activation et désactivation de la ligne d'adresse A20
envedit.asm : édition interactive des variables d'environnement du DOS
exe2bin2.asm : alternative à l'utilitaire exe2bin pour PC-DOS 3.3
exesize.asm : démonstration du calcul de la taille d'un exécutable à partir de son header
exetocom.asm : programme à utiliser comme préfixe à un .exe pour en faire un .com qui se charge plus rapidement en mémoire
fire2.asm : effet de flammes en mode 13h
follower.asm et mcb.asm : parcours de la chaîne des MCB (Memory Control Blocks)
format.asm : programme de formatage de disquette
fractal.asm, fractal2.asm, tinyfrac.asm et
Xmas fractals '94 : génération de fractales
gwintext.asm : fenêtre graphique en mode texte
hdpark.asm : utilitaire permettant de parquer les têtes d'un disque dur
hdprotec.asm : protection d'un disque dur contre l'écriture (détournement de l'int 13h)
hwread.asm : démonstration de l'accès direct au contrôleur de disquette
isprot.asm : détermine si le processeur est en mode protégé et à quel DOS extender il se conforme
key128.asm : modification de la taille du buffer clavier
level.asm et tsremove.asm : suppression propre de TSR de la mémoire
lh-tsr.asm : TSR s'installant en mémoire haute
loader.asm : alternative plus rapide au loader de MS-DOS
mem-find.asm : recherche de chaînes de caractères en mémoire
mouse.asm : pilote de souris (émulation)
newbeep.asm : TSR qui modifie le beep système par défaut
psp-env.asm : accès aux variables d'environnement via le PSP
random.asm et random3.asm : générateurs de nombres aléatoires
scancode.asm : affiche le scancode de chaque touche pressée en haut de l'écran (détournement de l'int 09h)
scrnsave.asm : screen saver TSR
show-mcb.asm : TSR très complet qui affiche tous les détails de la configuration du PC, des pilotes, des blocs mémoire, etc
silent.asm : éteint le haut-parleur du PC
test4ems.asm : affiche les caractéristiques du pilote EMS
tetris13.asm : TinyTetris 1.3 - jeu de Tetris
uuencode.asm et uudecode.asm : cryptage et décryptage uuCode
vgamoire.asm : démonstration du mode non documenté 320 x 400 x 256 couleurs
vgapan.asm : démonstration du smooth panning en mode texte
vrate.asm : calcule le taux de rafraîchissement du mode vidéo courant

C / C++

Sources de l'archiveur LHArc 1.13 (Turbo C 1.5 et TASM)

Système - MS-DOS - Windows - Linux

Référence technique de MS-DOS (jusqu'à la version 6.2)

Petit glossaire MS-DOS (notions fondamentales, astuces)

Référence générale sur la compression de données

La référence de la programmation batch par le Prof. Timo Salmi

Référence du Microsoft Windows 3.x SDK- user, kernel, Win32s

Aide de l'API Windows 32 bits

Hardware - BIOS

VGAdoc 2ème édition - références techniques des chips SVGA

Liste des ports d'entrée/sortie

Glossaire complet sur les interruptions (jusqu'à MS-DOS 7)

The Printer 2.5 - catalogue des codes d'échappement de centaines d'imprimantes - exécuter printer.exe

Far call interface list : liste de toutes les adresses des fonctions BIOS, DOS, noyau Windows, pilotes, etc

Spécifications CMOS

La zone de données du BIOS en mémoire

Bugs propres aux processeurs de la famille 80x86

Documentation générale sur la programmation système

~dpmi.txt : spécifications DPMI (DOS Protected Mode Interface) version 0.9
~vcpi.txt : spécifications VCPI (Virtual Control Program Interface)
~xms.txt : spécifications XMS version 2.0
486opt.txt : optimisation de code pour le 486
a20.txt : test des réglages optimaux de la ligne d'adresse A20
antidbg.txt et antidebg.txt : techniques pour lutter contre le désassemblage
asm.txt : table d'assemblage 8086
assume.txt : explications sur la directive assume
child.txt : précisions sur la fonction DOS Exec
cmd-line.txt : comment accéder aux paramètres passés au programme dans la ligne de commande
cmos.txt : lecture et structure de la CMOS
debug.txt : tutoriel sur l'utilitaire debug
dma.txt : introduction au DMA (Direct Memory Access)
dmafaq.txt : tutoriel DMA
dmaports.txt : registres et ports DMA
exehdr.txt et exeheadr.txt : structure du header d'un exe
fat.txt et format.txt : structure et lecture d'une FAT
hdsleep.txt : mise en veille d'un disque dur
kbdlight.txt : contrôle des LED du clavier
loadall.txt : précisions sur l'instruction non documentée loadall
lock-kbd.txt : blocage du clavier par redirection de l'int 09h
mcb.txt : détection de virus résidents en parcourant la chaîne des MCB (Memory Control Blocks)
mod.txt : description du format de fichier MOD
obj.txt : structure d'un fichier objet
opcode.txt : résumé des opcodes des instructions du 80486
pc-spkr.txt : utilisation du canal 2 du 8253 pour produire un son sur le haut-parleur du PC
pic.txt : référence du PIC 8259
pit.txt : utilisation du 8254 pour produire des sons
pmode.txt et procmode.txt : généralités sur les modes réel et protégé
protmode.txt : accès au mode protégé via VCPI
random#.txt : génération de nombres aléatoires
reboot.txt : code pour rebooter le PC
rtc.txt : programmation de la RTC (Real Time Clock)
sbcprog.txt : transfert de données du DSP de la Sound Blaster sans DMA
sb-prog.txt : programmation des canaux FM des cartes Adlib et Sound Blaster
serial.txt : tutoriel sur les communications série (RS232)
serial19.txt : communication série avec le protocole TTY
sndblstr.txt : programmation de la carte Sound Blaster
sounds.txt : production de sons sur le haut-parleur du PC en programmant le 8253 et le 8255A
umb.txt : utilisation de l'interface XMS pour déterminer l'adresse et la taille des UMB (Upper Memory Blocks) disponibles
vesabios.txt : spécifications VBE (Vesa bios extension) version 2.0

PC Games Programmer's Encyclopedia

PC-GPE : une encyclopédie complète sur tous les aspects de la programmation de jeux !
La meilleure façon d'en profiter est de passer par l'interface pcgpe.exe.

Sujets traités :

Assembleur

Tutoriel pour débuter en Assembleur
Liste des opcodes des instructions des processeurs Intel 80x86
Test du type de CPU en Pascal
Test de fréquence du processeur en Assembleur (jusqu'au 486)

VGA

Tutoriel en 10 parties sur la programmation de trainers
Le mode X
Le scrolling 
Programmation des registres et des palettes
Les fonctions du BIOS VGA

SVGA

Introduction à la programmation des cartes SVGA
Le standard VESA
Technologie des cartes ATI, Genoa, Trident, Paradise, Tseng
Identification du chip SVGA
Programmation du chip Video7
Le mode Xtended

Algorithmes graphiques

Rotations 3D
Shading 3D
Perpectives
Algorithmes de Bresenham
Coniques
Introduction aux arbres BSP
Texture mapping et free direction texture mapping

Effets spéciaux graphiques

Star field
Effet de flamme

Formats de fichiers

Fichiers graphiques : BMP, PCX, GIF, IFF, LBM, FLI, FLC
Fichiers sons : MOD, VOC, WAV, CMF, SBI, IBK, midi, Ultra tracker

Sons

Haut-parleur PC
Game Blaster
Adlib
Sound Blaster
Gravis Ultra Sound
Le son surround

Programmation des périphériques d'entrée

Introduction à la programmation de la souris
API du pilote de souris Genius
Programmation du clavier
Programmation du joystick
Programmation du Gravis gamepad et du Gravis analog pro

Mémoire

EMS : spécifications LIM
Spécifications XMS
Introduction du DMA (Direct Memory Access)

Programmation du PIT 8253 (en Pascal)

Divers : techniques utilisées par le moteur 3D de Doom

Tutoriels personnels

Installer et configurer Turbo Pascal sous Windows 7 et Vista  New  

Ce tutoriel explique comment installer et configurer Turbo Pascal sous Windows 7. Ces procédures ont également été testées avec succès sous Windows Vista.

Initiation à la programmation Windows en Virtual Pascal avec la bibliothèque OWL

Il s'agit d'un tutoriel complet d'initiation à la programmation Windows en Pascal objet avec la bibliothèque OWL (Object Windows Library), une alternative intéressante à Delphi. Le tutoriel vous aidera à découvrir les rouages intimes de Windows.
Le compilateur utilisé est Virtual Pascal 2.1.

Prérequis : de bonne notions du langage Pascal sont indispensables.

Le thunking générique en Pascal

Le thunking générique permet à une application Windows 16 bits d'utiliser les routines de l'API Windows 32 bits. Et cela grâce à quelques fonctions du kernel 16 bits implémenté dans les versions 32 bits de Windows.
Si la technique utilisée, quoique assez pointue, est assez naturelle à mettre en oeuvre en C, elle entraîne certaines difficultés en Pascal puisque ce langage ne supporte pas le prototypage de procédures et fonctions à nombre variable de paramètres.

Ce tutoriel peut être mis en rapport direct avec le source de l'unité Win32.

Sources

Plate-forme MS-DOS

Les sources ci-dessous sont théoriquement compilables directement avec Turbo Pascal 7.0.
Toutefois, si vous rencontrez un conflit de version de l'unité TXT, vous pouvez en télécharger le source complet ici pour la recompiler.

Tennis Tournament Organizer 1.20 (Turbo Pascal 4.0 et MASM 5.0 - 1997)

Gestion complète d'un tournoi de tennis de table.
Le contenu de la disquette d'installation et le source de l'utilitaire d'installation sont également fournis.

Sujets intéressants :

Menus déroulants et fenêtrage en mode texte;
Gestion de la souris en mode texte;
Programmation de timer;
Screen-saver;
Sauvegarde automatique;
Système complet d'aide contextuelle;
Options avancées;
Gestion de fichiers textes de grande taille;
Impressions sous MS-DOS.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

Triple Yahtzee 2.20 (Turbo Pascal 4.0 - 1996)

Jeu de triple Yahtzee en mode texte, à 10 joueurs maximum sur le même poste.
La présence du source ne se justifie pas vraiment par son intérêt intrinsèque mais plutôt pour que vous puissiez faire la comparaison avec les versions ultérieures du programme (la version 3.00 pour Windows 16 bits et la version 4.00 (en réseau) pour Windows 32 bits).

Sujet intéressant : bonne illustration de l'utilisation de l'unité TXT 2.00, dont le source est également disponible.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

Unit TXT 2.00 (Turbo Pascal 4.0 et MASM 5.0 - 1993)

Il s'agit d'une unité complète de gestion d'écran en mode texte.
Cette unité est utilisée en lieu et place de l'unité CRT de Turbo Pascal dans la plupart des sources présentés dans ce chapitre, du moins pour la plate-forme MS-DOS.
Vu l'avènement de Windows, la version 3.00 est restée inachevée. Un système de communication entre fenêtres était en cours de développement, ainsi que la gestion intégrée de la souris et une reconnaissance accrue du hardware vidéo.

Sujets intéressants :

Beaucoup de routines de bas niveau de gestion du mode texte;
Fenêtrage avec possibilité de sauvegarde en mémoire et de restauration du contenu d'une fenêtre;
Routines de lecture au clavier avec possibilités de filtrage de caractères;
Activation et désactivation du Ctrl-Break;
Simulation par le BIOS d'une touche pressée au clavier;
Réglage du typematic du clavier;
Possibilité de dessiner sa propre police de caractères;
Possibilité de modifier le curseur.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

Mines 1.01 (Turbo Pascal 4.0 et MASM 5.0 - 1993)

C'est le célèbre démineur de Windows sous MS-DOS en mode graphique.

Sujets intéressants :

Programmation en mode graphique;
Implémentation d'un timer.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

Echecs 1.00 (Turbo Pascal 4.0 et MASM 5.0 - 1993)

Permet d'encoder et de jouer des parties d'échecs en notation internationale.
Attention : ne tourne que sous MS-DOS.

Sujet intéressant : dessin de caractères ASCII personnalisés pour représenter des pièces d'échecs en mode texte.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

Plate-forme Windows 16 bits

CMOSSave / CMOSLoad 1.00 (Borland Pascal for Windows 7.0 - 2005)

Ces petits utilitaires permettent de sauvegarder les données de la zone de mémoire CMOS (CMOSSave) et de les restaurer (CMOSLoad).

Sujets intéressants :

Lecture et écriture dans la zone de mémoire CMOS par accès direct aux ports.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

Unit Win32 1.00 (Borland Pascal for Windows 7.0 - 2004)

Cette unité permet à un programme Windows 16 bits d'utiliser les routines de l'API Windows 32 bits.

Sujet intéressant : la technique utilisée est le thunking générique, dont un tutoriel est disponible.
Le langage Pascal ne supportant pas le prototypage de procédures ou fonctions à nombre variable de paramètres, un subterfuge est utilisé pour contourner cet obstacle.

Téléchargement :

Lien http

Secours 2.00 (Borland Pascal for Windows 7.0 - 2000)

Ce programme permet de récupérer des données sur une disquette défectueuse. Il m'a d'ailleurs sauvé la mise plus d'une fois.
Il peut combiner les portions valides des deux copies de la FAT pour reconstituer la séquence des secteurs d'un fichier ou d'un répertoire.

Sujets intéressants :

Parcours d'une FAT 12 bits;
Fenêtres enfants et dialogues non modaux;
Dialogues Windows standard d'enregistrement de fichier, de choix de police de caractère et de choix de couleurs.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

Budget 1.00 (Borland Pascal for Windows 7.0 - 2000)

Il s'agit d'un calendrier permettant, mois par mois, de suivre ses recettes et dépenses. Il est également possible de planifier tout cela dans le futur, à l'aide d'un outil de report paramétrable. Des petits pictogrammes, correspondant à certains types de recettes ou dépenses, améliorent la lisibilité du calendrier.

Sujets intéressants :

Le calendrier qui s'affiche est une ListBox dont le fonctionnement normal a été détourné;
Tracé de courbes et de graphiques camemberts.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

Triple Tahtzee 3.00 (Borland Pascal for Windows 7.0 - 1999)

Jeu de Triple Yahtzee à 10 joueurs maximum sur le même poste.
Il s'agit du portage sous Windows 16 bits de la version 2.20 du jeu, destinée à MS-DOS (également disponible sur ce site).

Sujet intéressant : l'utilisation de l'interface MDI pour attribuer une fenêtre enfant à chaque joueur. Indirectement, cette technique a ajouté une possibilité supplémentaire au jeu : l'ordre normal des tours peut être détourné et un joueur peut passer son tour ou jouer plusieurs fois de suite, la partie ne s'arrêtant que lorsque tous les joueurs ont terminé leur feuille de points.

Téléchargement :

Lien http

Instalog 1.10 (Borland Pascal for Windows 7.0 - 1999)

Prévu uniquement pour Windows 3.x, ce programme permet de garder trace de toutes les modifications effectuées lors de l'installation d'un logiciel.
Une première "photo" est prise avant l'installation, puis une seconde après l'installation, de sorte que toutes les modifications sont répertoriées dans un log que l'on peut enregistrer. Sont ainsi pris en compte : autoexec.bat, config.sys, win.ini, system.ini et l'arborescence des répertoires dépendant de Windows.
Je continue à utiliser ce petit soft sur mon 486.

Sujets intéressants

Dialogue non modal de statut s'affichant pendant les opérations;
Comparaison de listes chaînées de chaînes AZT.
Ressources de types menu, icône, dialogue, table de chaîne, table d'accélérateurs.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

Adresses 1.10 (Borland Pascal for Windows 7.0 et Microsoft Word for Windows 6.0 - 1999)

Carnet d'adresses et répertoire téléphonique.
Le programme pourrait aisément être amélioré mais j'implore votre indulgence, vu qu'il s'agit d'un de mes tout premiers programmes Windows.

Sujets intéressants :

Le programme peut servir de serveur DDE pour une autre application (un modèle de document WinWord 6 accompagne d'ailleurs le source);
Possibilité de paramétrer les couleurs de fond et de texte;
Impression de listing et d'étiquettes;
Dialogues Windows standards de choix de police de caractères et de choix de couleurs.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

Plate-forme Windows 32 bits

Programme d'installation de l'EDI BPW 7.0 (Virtual Pascal 2.1 - 2008)

Programme complet d'installation de l'EDI BPW 7.0, multilingue (FR, UK, NL, DE), qui, outre l'installation des binaires et des unités standard, propose d'installer les sources de la RTL et des exemples. Le programme règle les répertoires par défaut dans les fichiers de configuration et crée un raccourci sur le bureau.

Sujets intéressants :

Utilisation des tables de chaînes pour développer un logiciel multilingue;
Dialogue SHBrowseForFolder;
Création de raccourci sur le bureau à l'aide des interfaces du shell Windows;
Copie de fichiers à l'aide des fonctions de l'API.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

Unit WinShell 3.00 (Virtual Pascal 2.1 - 2008)

Unité d'interface avec les bibliothèques Ole32.dll, OleAut32.dll et Shell32.dll.
Le type interface de Delphi et Free Pascal n'étant pas supporté par Virtual Pascal, cette version utilise des classes abstraites.
Fourni avec les sources de deux programmes d'exemple.

Sujets intéressants :

Objets COM;
Objets OLE;
Interfaces déclarées comme classes abstraites.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

Triple Tahtzee 4.00 (Virtual Pascal 2.1 - 2006 ou 2007)

Développement en cours - vous pouvez toutefois télécharger le squelette du programme, contenant notamment la connexion des postes clients au serveur.

Jeu de Triple Yahtzee à 10 joueurs maximum en réseau ou sur le même poste.
Il s'agit de la dernière évolution en date du jeu dont les sources des version 2.20 et version 3.00 sont également disponibles sur ce site.

Sujets intéressants :

Programmation des sockets;
Interface MDI.

Unit WinShell 1.00 (Virtual Pascal 2.1 - 2005)

Unité d'interface avec les objets COM (IShellLink, IPersistFile...) nécessaires à la manipulation des raccourcis Windows.

Sujets intéressants :

Déclaration des objets COM;
Convention d'appel _StdCall.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

ChgLinks 1.00 (Virtual Pascal 2.1 - 2005)

Programme permettant de modifier les noms de chemins dans tous les raccourcis du profil local d'un utilisateur de Windows NT/2000/XP (raccourcis du bureau, groupe de programmes, menu démarrer, envoyer vers, documents récents, groupes de programmes de démarrage).
Une série de règles permettent de remplacer certains extraits des noms de chemins.
Le programme nécessite l'unité WinShell décrite ci-dessus.

Sujets intéressants :

Utilisation des objets COM (IShellLink, IPersistFile...);
Manipulation des raccourcis Windows via l'interface OLE;
Détermination des emplacements des différents types de raccourcis;
Parcours récursif d'une arborescence de répertoires.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

WinSock (Virtual Pascal 2.1 - 2005)

6 sources pour apprendre les bases de l'API WinSock.
A mettre en relation directe avec l'excellent tutoriel WinSock sur vbip.

Sockets1 : initialisation de la librairie WinSock (programme console);
Sockets2 : détermination de l'adresse IP d'un hôte distant (programme console);
Sockets3 : détermination du nom d'hôte local et de ses adresses IP (programme console);
Sockets4 : déterminer le nom d'un hôte à partir de son adresse IP (programme console);
Sockets5 : informations sur tous les services installés et sur tous les ports (programme console);
Sockets6 : test global de l'API WinSock - création de sockets, mise en mode serveur ou en mode client, échange de données, etc.
Permet de se faire la main sur les sockets, les ports, les protocoles, tant sur Internet qu'en réseau local.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

LPJJGlos 2.00 (Virtual Pascal 2.1 - 2005)

Programme de création et de maintenance d'un glossaire de macros WinHelp.

Sujets intéressants :

Dans un but didactique, le programme prend en compte la plupart des fonctionnalités standard que doit avoir un programme Windows en matière de gestion de fichiers :
   
Dialogues standard d'ouverture et d'enregistrement de fichiers;
    Mémorisation des derniers fichiers ouverts dans le menu Fichier;
    Prise en compte du glisser-déposer depuis le shell;
    Prise en compte d'un nom de fichier passé en ligne de commande.

Egalement dans un but didactique, le programme regroupe l'ensemble des fonctionnalités de gestion d'une ListBox personnalisée :
    Gestion des variables dynamiquement alloués entièrement confiée à Windows;
    Tri, ajout, modification et suppression d'enregistrements;
    Réponse au double-clic pour modification;
    Dessin des éléments de la boîte liste par le programme.

Pour terminer, les données sont enregistrées sous la forme d'enregistrements de taille variable.

Téléchargement :

Lien ftp
Lien http si le lien ftp ne fonctionne pas

Liens

EDI, compilateurs et aides en ligne

Virtual Pascal - page d'accueil
            Virtual Pascal - documentation
Virtual Pascal v 2.1 build 279 - téléchargement gratuit sur developpez.com
Dev-Pascal - page d'accueil
Free Pascal - page d'accueil du site officiel
            Free Pascal - documentation en ligne
Lazarus - page d'accueil
            Lazarus - documentation en ligne
           
Lazarus - tutoriel
GNU Pascal - page d'accueil
            GNU Pascal - aide en ligne
IRIE Pascal - documentation en ligne
Think Pascal - documentation en ligne - compilateur pour Mac
Framework Pascal 6.0 succède à TMT Pascal 5.0
            TMT Pascal 5.0 - documentation en ligne
RadASM - page d'accueil
NASM - page d'accueil
           
NASM - documentation en ligne
FASM - page d'accueil
            FASM - documentation en ligne
GNU Assembler - documentation en ligne
QEMU emulator - page d'accueil
            QEMU emulator - documentation en ligne
ConTEXT programmer's editor - page d'accueil 
            ConTEXT - FAQ
PE Explorer disassembler - éditeur de DLL et désassembleur Win32
Winspector - utilitaire de traçage des messages Windows
Servile Software Decoder 6.0 - analyseur et traceur de code
Installeur Nsis - page d'accueil
            Installeur Nsis - documentation en ligne
EMS Professional Software - compilateurs Pascal et licences à vendre

Programmation Pascal

Virtual Pascal - page d'accueil
            Virtual Pascal - documentation
Virtual Pascal v 2.1 build 279 - téléchargement gratuit sur www.developpez.com
TPW 1.5 et BPW 7.0 - téléchargeables sur www.developpez.com
Dev-Pascal - page d'accueil
Free Pascal - page d'accueil du site officiel
            Free Pascal - documentation en ligne
Lazarus - page d'accueil
            Lazarus - documentation en ligne
            Lazarus - tutoriel
GNU Pascal - page d'accueil
            GNU Pascal - aide en ligne
IRIE Pascal - documentation en ligne
Think Pascal - documentation en ligne - compilateur pour Mac
Framework Pascal 6.0 succède à TMT Pascal 5.0
            TMT Pascal 5.0 - documentation en ligne
Pascaland - Plus de 300 compilateurs et interpréteurs Pascal !
Developpez.com - forum Pascal
Point de rencontre Borland Pascal - site de questions-réponses de Christian Baussaron
dBforums comp.lang.pascal.borland - forum Borland Pascal - malheureusement non modéré
SWAG (SourceWare Archive Group) online
TCP/IP en Borland Pascal
Bastisoft - programmation Internet
Felix Colibri - programmation WinSock en Delphi
Martin Harvey - multithreading en Delphi
John Colibri - sources, articles, formations, livres, Pascalissime

Programmation Assembleur

RadASM - page d'accueil
NASM - page d'accueil
           
NASM - documentation en ligne
FASM - page d'accueil
            FASM - documentation en ligne
GNU Assembler - documentation en ligne
Developpez.com - forum Assembleur
Agner Fog - optimisation Pentium, conventions d'appel, mesure de cycles
Page Assembleur - tutoriels DOS, Windows, DirectX, BMP, GIF, mode protégé, Sound Blaster
Assembleur CodeS SourceS - tutoriels, sources
The Operating System Resource Center - tutoriels programmation d'OS
Tutoriel mode protégé
John Fine - protected mode and operating systems
Robert Collins - les bases du mode protégé
The Art of Assembly language - cours complet de programmation en Assembleur
ELEC 201 - assembleur 68HC11
Dickens - les instructions du 68HC11
DHC11 - a 68HC11 disassembler
James R. Larus - simulateur SPIM S20
Gas 2.9.1 manual - AT&T syntax vs Intel syntax
Matthew Mastracci - interfacing DJGPP with NASM procedures
Joris Dedieu - introduction au µcontrôleur Motorola ColdFire
Le jeu d'instructions Intel x86
Le jeu d'instructions du 68000
Les jeux d'instructions de tous les microprocesseurs 8 et 16 bits
MAXAM - développement Z80

Programmation Windows

MSDN
Catch 22 - tutoriel d'impression sous Windows
Portage d'applications Windows 16 bits en 32 bits
Al's Win32 programming page - tutoriels et références
Conventions d'appel Win32
Johnnies's WinSock tutorial
vbip - tutoriels API WinSock en VB
- vraiment progressif et bien fait
GameDev - programmation de sockets asynchrones
TangentSoft - WinSock programmer's FAQ
YOV408 - tutoriels programmation WinSock
FlipCode - introduction à la programmation multithreads
Exploring Windows 2000 memory - gestion bas niveau de la mémoire
The code project - création de raccourcis via l'interface IShellLink
Pascal Newsletter #52 : création de raccourcis

Programmation système

  Ralph Brown's interrupt list
            Ralph Brown's interrupt list (site miroir)
John Lockwood - processing systems and structures
Le segment de données du BIOS - avec certaines données non documentées
BIOS Central - structure de la CMOS
BIOS Central - zone de données du BIOS
Structure de la CMOS des principaux fabricants
Bochs - référence générale sur la CMOS
PC Guide - table d'utilisation de l'UMA (Upper Memory Area)
La SFT (System File Table) de MS-DOS
Table des appels système Linux
LookupTables - tables ASCII, ANSI, EBCDIC, UniCode, etc
Intel - documentation technique du Pentium 4
Intel - détection hyperthreading et comptage des processeurs en multi-core
AMD - Architecture AMD64

Programmation hardware

Zeus 98 OS
            Zeus online documentation - PIT, RTC, PIC, FAT, MBR, etc
            Zeus offline documentation - mode protégé
A20 : a pain from the past - la ligne d'adresse A20
GameDev - programmation Sound Blaster 16
PC-GPE - programmation du DSP de la SoundBlaster
TFM - commandes du DSP de la Sound Blaster
Inverse Reality - tutoriels Sound Blaster 16
Liste des scancodes clavier
OSDever - programmation VGA, SVGA
FreeDOS-32 - programmation du contrôleur de disquette
Xavier's programming pages - programmation des lecteurs de disquette

Autres langages et technologies

IBM - référence langage COBOL
Référence POV-Ray par Fabien Mosen - très complet
HP - development tools and distributed computing
- tous les langages !

Sites de programmation généralistes

Developpez.com - club d'entraide des développeurs francophones - n° 1 des sites francophones !
            Les forums de Developpez.com
Norton Guides - références techniques multi-langages
Jeremya - Commandes de l'utilitaire Debug

ALRJ - articles de programmation hardware, 2D, 3D
Experts-Exchange - inscription gratuite jusqu'à un certain stade mais vaut le détour
Les FAQ du Prof. Timo Salmi
CodePedia - l'encyclopédie du développeur
            CodePedia - section Pascal
            CodePedia - section Assembleur
Programmers Heaven - articles, sources et messageboards
            Programmers Heaven - section Pascal
            Programmers Heaven - section Assembleur
GameDev - articles et ressources orientées vers la programmation de jeux
RFC Editor - portail vers toutes les spécifications officielles d'Internet (protocoles, utilitaires, services)

Système - MS-DOS - Windows - Linux

PC Tools WinGuides - guide de la base de registre de Windows
Linux Knowledge Base and Tutorial

Formats de fichiers

Dot What!? - extension de fichiers Windows, Apple Macintosh et Linux
File-extensions.org
Gary Kessler - table des signatures de fichiers
e-tech - encyclopédie des formats de fichiers
Wotsit - formats de fichiers
Data formats - surtout intéressant pour les fichiers images et audio
            A beginner's guide to bitmaps
Windows Programming Cave - format de fichier BMP
Game programmer - format de fichier BMP
Format de métafichier Windows (EMF et WMF)
Spécifications RTF - version 1.0
Spécifications RTF - version 1.5
Spécifications RTF - version 1.6
Pierre's library - formats d'exécutables (ELF, PE, COFF, OMF)
JPEG image compression FAQ