
INPUT.zip : Méthodes pour controler un programme de façon élaborée
Clavier
Selon les principes du BIOS/DOS, à savoir orienté saisie de texte, les touches de fonction et flèches par exemple ne sont pas gérées. L'appui d'une touche prolongé remplit le buffer clavier et c'est rapidement la fin des haricots avec des blocages par des bips bas niveau.
Keyboard.Pas permettant de substituer au gestionnaire de clavier usuel un gestionnaire permettant de connaitre en temps réel quelles sont les touches qui sont enfoncées, celles qui sont relachées, etc. Il est donc possible à l'interrieur d'une boucle tester si la touche "Flèche gauche" est appuyée afin de déplacer vers la gauche un sprite, ou bien d'autres choses encore. A noter que toutes les fonctions ReadLn, ReadKey, Keypressed, etc... qui traitent le clavier habituellement ne peuvent pas fonctionner en même temps que ces nouvelles fonctions.
KeyConst.Pas définit de nombreuses constantes très utiles.
Souris
Mouse.Pas permet de gérer la souris de façon simple, en permettant dans un premier temps une interface Pascal avec les routines du driver souris, puis une gestion événementielle de la souris. En effet, il suffit de déclarer des zones de l'écran et de leur affecter une procédure. Une fois ces affectations effectuées, il suffit d'attendre qu'un clic se fasse sur une de ces zones, ce qui déclenchera automatiquement la procédure liée à la zone.
Le programme de Poker illustre parfaitement cette utilisation moderne, événementielle, dans une environnement pourtant fortement orienté procédural.
JoyStick
JoyStick.Pas permet d'utiliser un (ou deux) joystick, tout simplement, par le biais de fonctions qui renvoient la position et l'état des boutons (Appel de l'INTerruption 15 - System BIOS Services).

UTILS.zip : Utilitaires
Gestion directe de la mémoire
MemUtils.Pas permet de gérer la mémoire comme le fait le DOS, c'est à dire par segment entiers (pas d'offset). Très pratique pour les routines en assembleur qui sont utilisés par exemple lors du traitement du graphique VGA 320x200 en 256 couleurs, car cette gestion de la mémoire permet de gérer très facilement aussi la mémoire vidéo.
Avec cette unitée, on peut aussi gérer la mémoire paginée (EMS). Celle-ci doit être installée grâce à EMM386.EXE dans le fichier CONFIG.SYS de votre système, par une ligne du genre :
DEVICE=C:\WINDOWS\EMM386.EXE 4096 RAM
Avant d'installer EMM386 pour transformer de la mémoire étendue (XMS) en mémoire paginée (EMS), il faut cependant charger le driver HIMEM.SYS qui gère cette mémoire étendue, sans lequel aucun accès à des données placées au dessus de 1Mo ne serait possible. Normalement, tout système récent et notemment ceux qui tournent sous une version quelconque de Windows installent HIMEM.SYS.
Gestion du temps qui passe
Timer.Pas permet de contrôler le temps très facilement. Vous définissez une fréquence, déterminant ainsi combien de fois par secondes sera incrémenté automatiquement un compteur. En étudiant ce compteur, vous savez combien de temps s'écoule entre deux instant, et vous pouvez attendre précisément avant de continuer une action.
Gestion directe de l'écran texte
MemCrt.Pas permet de gérer directement la mémoire vidéo lorsque le mode courant est un mode texte. Grâce à cette unité, il sera très facile de créer de très belles interfaces, simplement, qui en plus seront d'une rapidité époustouflante. De quoi faire reprendre goût au mode texte.
UserCrt.Pas est une unitée pour personnaliser l'écran texte et la façon dont vous apparaissent les caractères. Il est possible notemment de définir la taille des caractères à 8x16pixels, 8x14 ou 8x8, ce qui, sur un écran VGA revient à définir un nombre de lignes de textes de 25, 28 et 50 lignes. Il est possible aussi de modifier la signification du dernier bit de l'attribut d'un caractère : Par défaut, celui-ci signale que le caractère clignote. Il est possible de changer cela en indiquant que désormais il signifie que le fond du caractère est éclaircie. Ainsi le noir devient gris foncé, le bleu devient bleu clair, le marron devient jaune, etc...
Il y a encore plein d'autres choses, à découvrir.
Gestion simplifiée des fichiers
FileMisc.Pas, qui travail de concert avec MemCrt, simplifie la gestion des répertoires et des fichiers par le biais de quelques fonctions de recherche et d'affichage d'arbres de fichiers. Elle peut aussi vous servir de base à une éventuelle traduction vers un environnement graphique de votre choix.
Fonctions d'usage général
Misc.Pas et Misc386.Pas rassemblent plusieurs fonctions et procédures qui servent tout le temps, pour accélérer les fonctions de base de Turbo-Pascal, comme c'est le cas de Move32Bits et Fill32Bits, qui vont jusqu'à 4 fois plus vite que les fonction standard Move et FillChar, tout en faisant exactement la même chose.

VGA256.zip : Graphismes VGA 320x200, 256 couleurs
La réponse est simple : ils ne s'occupent pas du BIOS, à part pour changer de mode, et le court-ciruite complêtement en tappant dans la mémoire et les registres du contrôleur vidéo.
Le mode 256 couleurs en 320x200 pixels simplifie grandement ces techniques car l'écran entier tient dans une seule page mémoire de 64k, et à chaque pixel correspond 1 octet entier et unique.
VGA256.Pas, accompagné du module assembleur DRAWUNIT.ASM, fait exactement cela pour fournir toutes les primitives graphiques pour ce mode très populaire : lecture/ecriture de pixels, lignes, blocs, cercles, sprites (bloc avec transparence), changement de palette, synchronisation avec les signaux de l'écran, ecriture avec fonts graphiques, (dé)compression d'image...
Cerise sur le gâteau, cette unité gère le multi-buffering, en permettant d'effectuer toute une suite de travaux dans un espace mémoire secondaire et basculer la totalité de l'image-écran dans la zone mémoire d'affichage quand l'écran est entre 2 refresh. Ceci élimine totalement les effets de scintillement et de cassure, assure une fluidité parfaite, sans perte de performances.

LINK.zip : Communication entre PC
Une chat-room sous DOS aussi, surtout qu'en 1995 ce n'était pas très courant. Pour cela j'avais utilisé un cable spécifique soudé par mes soins, le célèbre cable "Null-Modem Parallèle" (type LapLink) qui fait passer 2 PC l'un pour l'imprimante de l'autre, et peuvent s'échanger des octets à une vitesse d'environ 50Ko/s.