DOS retro coding

*** DOS / Système ***
Gladir.com
Programming MS-DOS with Power
Ralf Brown’s Interrupt List
Graphical programming in Assembly

*** C ***
256-Color VGA programming in C
PC Game Programmer’s Encyclopedia
The Atrevida PC Game Programming Tutorials

*** Pascal ***
SWAG : SourceWare Archive Group => allswags.zip (29/11/1997)
https://turbo-pascal.developpez.com
MS-DOS games and utilities
DOS-VGA-Game

*** Divers ***
X2 Support Group Game Development Archives (miroir)
flipcode Archives
VGA programming lessons
Afficher une image en VGA mode 13h
Michael Abrash’s Graphics Programming Black Book => html

Installation de FreeDOS sur un Netbook

Machine cible : Samsung NC210 / DD 250 Go / RAM 2 Go.
Système à installer : FreeDOS 1.3 RC4 (30/04/2021).

Initialement, il y avait sur cette machine une version de Debian. Pour installer FreeDOS, il faut donc préparer le disque dur.
J’ai utilisé pour cela une version live de Debian :

Dans la console :

sudo fdisk /dev/sda

Supprimer les partitions existantes (touche d).
Ajouter une partition (touche n).
Définir le format de partition (touche t) avec le code Hexa c : W95 FAT32 (LBA).
Activer l'unique et nouvelle partition (touche a).
Contrôler les modifications avant écriture (touche p).
Écrire la nouvelle table de partitions (touche w).

Pour décompresser le fichier FD13-LiveCD.zip et récupérer FD13LIVE.iso :

unzip FD13-LiveCD.zip

J’ai ensuite gravé l’image de FreeDOS sur un CD-ROM.

Une fois le système installé, pour pouvoir accéder à la clé USB, il faut, au niveau du BIOS mettre les priorités suivantes concernant le boot :
1 – USB CD (lecteur dvd externe)
2 – SATA HDD (disque dur)
3 – USB HDD (clé USB)

Le disque dur sera accessible en tapant C: et la clé USB en tapant D: à condition d’avoir installé la clé avant le démarrage du système. Il n’est pas possible d’utiliser la clé USB de manière souple (l’enlever, la remettre).

Outils de développement que j’installe :
Open Watcom C/C++ 1.9 => Lien intéressant pour l’installation
NASM 2.15.05 => Manuel en ligne
Turbo Pascal 7.0

Pour copier mon répertoire PERSO et ses sous-répertoires de D: vers C: :

xcopy d:\perso c:\perso /E

Rajouts personnels à la fin du fichier fdauto.bat (= autoexec.bat) :

REM *** OPEN WATCOM 1.9 ***
PATH C:\WATCOM\BINW;%PATH%
SET INCLUDE=C:\WATCOM\H
SET WATCOM=C:\WATCOM
SET EDPATH=C:\WATCOM\EDDAT
SET WIPFC=C:\WATCOM\WIPFC

REM *** TURBO PASCAL 7.0 ***
PATH C:\TP7\BIN;%PATH%

REM *** NASM 2.15.05 ***
PATH C:\NASM;%PATH%

Pour compiler et créer un exécutable avec Watcom :

wcl hello.c

Liens :
DOS commands
Index of FreeDOS 1.2 on ibiblio.org
Chaine officiel YouTube de FreeDOS
BTTR Software

Turbo Pascal : BGIDriv et BGIFont

Dans un de mes programmes écrit avec Turbo Pascal, plus de 20 ans après, je ne savais plus d’où sortaient les unités BGIDriv et BGIFont alors j’ai tout repris à zéro :

Créer un répertoire C:\TEMP (mkdir temp dans DOSBox).
Copier dans ce répertoire les fichiers BGIDRIV.PAS, BGIFONT.PAS, BGILINK.PAS, BGILINK.MAK qu’on trouve dans ~/DOSBox/TP7/EXAMPLES/BGI.
Copier dans ce même répertoire tous les fichiers .CHR et .BGI qu’on trouve dans ~/DOSBox/TP7/BGI.
Modifier BGILINK.MAK en remplaçant BGI = ..\..\bgi par BGI = \TEMP

Dans DosBox, taper :
cd temp
make -fbgilink.mak

BGIDRIV.TPU et BGIFONT.TPU sont alors créés.
Les copier dans ~/DOSBox/PERSO/TP7/BUILD/.

On peut ensuite supprimer C:\TEMP.

Seules GothicFont (GOTH.CHR), SmallFont (LITT.CHR), TriplexFont (TRIP.CHR) et SansSerifFont (SANS.CHR) sont intégrées dans l’unité BGIFONT.TPU.
Pour BoldFont (BOLD.CHR), EuroFont (EURO.CHR), ComplexFont (LCOM.CHR), SimplexFont (SIMP.CHR), ScriptFont (SCRI.CHR) et TriplexScriptFont (TSCR.CHR), il faut utiliser InstallUserFont de l’unité Graph. J’en parlerai plus tard…

C282

C282 est un programme que j’ai écrit en 1996 avec Turbo Pascal 6 (Pascal + Assembleur). Paru une première fois dans la revue de poésie expérimentale Doc(k)s / Alire 10, il ne disposait pas à l’époque de régulateur de vitesse. La capture vidéo qui suit concerne une version de 2000 :

Merci Internet : Grâce à SWAG Archive, j’ai pu remettre la main sur des bibliothèques que j’avais perdues :
High Resolution Timer de TurboPower Software (Unit TpTimer),
Palette Manipulation de David Dahl (Unit Palette).

=> Code source de C282

Turbo Pascal et DOSBox

J’ai adoré en son temps programmer avec Turbo Pascal. Aujourd’hui, je souhaite m’y replonger pour diverses raisons. J’ai installé il y a quelques jours DOSBox (sous Debian). Au tour de Turbo Pascal… avant d’aller voir peut-être du côté de Free Pascal.

Dans mon répertoire ~/DOSBox, j’ai créé un répertoire TP7 dans lequel j’ai décompressé l’archive tp7.zip téléchargeable après inscription sur le site Developpez.com ou directement depuis leur ftp.

Dans la console, taper :
nano ~/.dosbox/dosbox-0.74-2.conf

et modifier le fichier dosbox-0.74-2.conf :
[autoexec]
mount C ~/DOSBox
path=/TP7/BIN
C:

Pour accéder à Turbo Pascal, il ne reste plus qu’à taper turbo dans DOSBox.

Pour basculer entre le mode fenêtré et le mode plein écran, presser Alt-Entrée. Pour libérer le curseur de la souris, presser Ctrl-F10.

File > Change dir…

Options > Directories
EXE & TPU directory: C:\PERSO\TP7\BUILD
Unit directories: C:\TP7\UNITS;C:\PERSO\TP7\SRC\LIB

Options > Save

Quelques Liens :
Les manuels de Borland sur le Turbo Pascal (en pdf)
Turbo Pascal 7.0 : Différents types de variables
SWAG : SourceWare Archive Group => allswags.zip (29/11/1997)
https://turbo-pascal.developpez.com
https://github.com/johangardhage/dos-tpdemos

Et un livre pour débuter (ou s’y remettre) :

Installation de DOSBox sous Debian 10

DOSBox est un émulateur simulant un environnement compatible MS-DOS dans le but d’exécuter des programmes développés autrefois pour ce système. Il se trouve que j’ai besoin de faire tourner certains de mes vieux programmes…

Dans la console :
sudo apt-get install dosbox
mkdir ~/DOSBox (ou un autre chemin)
nano ~/.dosbox/dosbox-0.74-2.conf

Modifier le fichier dosbox-0.74-2.conf :
[cpu]
cycles=max
(à la place de cycles=auto)
[dos]
keyboardlayout=fr
(à la place de keyboardlayout=auto)
[autoexec]
mount c ~/DOSBox
(pour un chemin qui contient des espaces, mettre le chemin entre guillements : " ")

Lancer DOSBox depuis la console :
dosbox

Dans DOSBox :
c:
dir

Pour basculer entre le mode fenêtré et le mode plein écran, presser Alt-Entrée. Pour libérer le curseur de la souris, presser Ctrl-F10.


Complément personnel à mettre dans le fichier dosbox-0.74-2.conf dont il est question ci-dessus :

[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
mount c "/media/eric/Fichiers Eric/Programmation/DOSBox/"
c:

### OPEN WATCOM 1.9 ###
path=%path%;c:\watcom\binw       
set include=c:\watcom\h
set watcom=c:\watcom
set edpath=c:\watcom\eddat
set wipfc=c:\watcom\wipfc

### TURBO PASCAL 7.0 ###
path=%path%;c:\tp7\bin

### NASM 2.15.05 ###
path=%path%;c:\nasm