Après avoir installé la version minimale de FreeDOS 1.4 dans VirtualBox, je monte l’image du BonusCD (téléchargée depuis le site officiel sous le nom FD14BNS.iso) dans le lecteur optique virtuel de la machine.
FDIMPLES est un outil visuel et interactif de FreeDOS qui permet de parcourir, installer et supprimer des paquets inclus sur les supports de distribution de FreeDOS (comme les CD Live, BonusCD, etc.). Il s’agit d’un gestionnaire de paquets qui lit les médias d’installation pour identifier les logiciels disponibles à l’installation ou à la suppression. Pour l’utiliser, il suffit de lancer la commande FDIMPLES depuis l’invite de commandes de FreeDOS.
Pour programmer, j’ai choisi le compilateur Open Watcom C/C++et l’ éditeur de texte FED car il permet de plier / déplier le code. J’ai également installé l’assembleur NASM et l’éditeur hexadécimal uHex.
Dans C:\>FDAUTO.BAT, je rajoute à la fin :
cd PERSO
REM *** FED 2.24c ***
alias fed=C:\APPS\FED\FED.EXE
REM *** OPEN WATCOM C/C++ 1.9 *** => à mettre en dernier
C:\DEVEL\WATCOMC\OWSETENV.BAT
Mémo FED :
Alt pour accéder au menu
CTRL-C pour fermer
CTRL-F pour plier / déplier le code
En pratique, pour être efficace, je n’utilise pas l’éditeur de texte sous FreeDOS :
1 – Je code avec mon éditeur sous Debian.
2 – Dans VirtualBox, Je vérifie que la machine virtuelle FreeDOS 1.4 est éteinte.
3 – J’exécute ce fichier bash (Vers_FreeDOS.sh), le paquet libguestfs-tools étant installé :
#!/bin/bash
# Interpréteur : on utilise bash explicitement
# Si on n'est pas dans un terminal, se relancer dans un terminal graphique
if ! [ -t 1 ]; then
mate-terminal -e "bash -c '$0; read -p \"Appuie sur Entrée pour fermer...\"'"
exit
fi
set -e
# Arrête le script immédiatement si une commande échoue (exit on error)
# Évite que les erreurs passent silencieusement et causent des dégâts en cascade
set -x
# Mode debug : affiche chaque commande avant de l'exécuter (précédée de "+")
# Utile pour suivre l'exécution pas à pas
mkdir ~/VHD
# Crée un répertoire temporaire "VHD" dans le dossier home (~)
# Ce dossier servira de point de montage pour l'image disque
cd "/media/$USER/Fichiers Eric/VirtualBox/FreeDOS 1.4"
# Se déplace dans le répertoire contenant l'image VHD
# $USER est automatiquement remplacé par le nom de l'utilisateur courant
guestmount -a "FreeDOS 1.4.vhd" -m /dev/sda1 ~/VHD
# Monte l'image disque VHD via libguestfs (paquet guestfs-tools)
# -a "FreeDOS 1.4.vhd" : spécifie le fichier image à utiliser
# -m /dev/sda1 : monte la première partition du disque virtuel
# ~/VHD : point de montage (le dossier créé plus haut)
# Permet d'accéder au contenu de la VM sans la démarrer
cp -R "/media/$USER/Fichiers Eric/VirtualBox/FreeDOS 1.4/PERSO" ~/VHD
# Copie récursivement le dossier PERSO dans l'image montée
# -R : copie les sous-dossiers et fichiers récursivement
# C'est l'opération principale : injecter des fichiers dans la VM
guestunmount ~/VHD
# Démonte proprement l'image VHD
# Équivalent d'un umount, mais adapté aux images guestfs
# Important : à faire avant de supprimer le point de montage
rm -r ~/VHD
# Supprime le répertoire de montage temporaire devenu inutile
# -r : suppression récursive (nécessaire pour un dossier)
# Nettoyage final — le dossier devrait être vide après guestunmount
# --- Message de succès ---
set +x # On désactive le mode debug pour un affichage propre
echo ""
echo "✅ Succès ! Le dossier PERSO a été copié dans l'image FreeDOS."
echo ""
4 – Dans VirtualBox, je démarre la machine virtuelle FreeDOS 1.4
5 – Sous FreeDOS, je compile mon fichier source avec : wcl source.c -q
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.
Dans la console : sudo apt-get install dosbox mkdir ~/DOSBox (ou un autre chemin) nano ~/.dosbox/dosbox-0.74-3.conf
Modifier le fichier dosbox-0.74-3.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-3.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
Garder les sélections par défaut (DOS, 16 bits, 32 bits notamment) :
On supprimera après les fichiers config.sys et autoexec.bat (ceux-ci sont vides).
Rajouts personnels à la fin du fichier fdauto.bat (= autoexec.bat) :
edit fdauto.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
CTRL+S : Save
ALT+X : Exit
Pour compiler et créer un exécutable avec Watcom :
Attention, on va créer un disque dur virtuel (VHD) et non pas une VDI.
Pour pouvoir avoir accès au disque dur virtuel FreeDOS 1.4.vhd depuis l’ordinateur hôte, il faut au préalable préparer le terrain. Dans la console :
sudo apt-get install libguestfs-tools
cd ~
mkdir VHD
Pour monter le disque dur virtuel (la machine virtuelle FreeDOS 1.4 doit être éteinte) :
cd "/media/$USER/Fichiers Eric/VirtualBox/FreeDOS 1.4" (à adapter)
guestmount -a "FreeDOS 1.4.vhd" -m /dev/sda1 /home/$USER/VHD (à adapter)
On peut maintenant accéder aux fichiers de l’image disque FreeDOS directement depuis l’ordinateur hôte en allant ici : /home/$USER/VHD (à adapter). L’image est accessible en écriture mais tous les fichiers appartiennent à root. Pour transférer les fichiers du disque dur de l’ordinateur au disque dur virtuel, passer par la console :
Pour copier un répertoire et ses sous-répertoires :
cp -R répertoire ~/VHD
Pour supprimer un répertoire et ses sous-répertoires :
rm -rf ~/VHD/répertoire
Ne pas oublier de démonter le fichier VHD avant de démarrer FreeDOS dans VirtualBox :
Version de VirtualBox : 6.1.26
Version de FreeDOS : 1.3 RC4
Malgré le choix du clavier français à l’installation, celui-ci reste en Qwerty. Pour résoudre le problème, dans fdauto.bat (edit fdauto.bat), remplacer la ligne :
Sous DOSBox, la procédure la plus rapide semble être la première (test réalisé plusieurs fois) :
Extrait du programme de test :
for c:=0 to 15 do
begin
for y:=0 to 199 do
begin
for x:=0 to 319 do
begin
PutPixel1(x,y,c);
end;
end;
end;
En approfondissant, et pour une raison que je ne m'explique pas, on se rend compte que la position des PutPixels dans le programme a une influence : le premier est avantagé. J'ai donc changé la méthodologie et arrive à ceci :
PutPixel2 semble être la procédure plus rapide. Je suis autour de 25,4 ms par écran, soit 39,4 FPS.
Si vous pensez avoir mieux au niveau du code, je suis preneur...
Ces ouvrages ne sont plus très actuels, mais ils permettent de se (re)plonger dans l’assembleur de l’époque du DOS.
En haut à gauche : 1994. En haut à droite : 1989.
En bas à gauche : 1993. En bas à droite : 1997.