Installation de Manjaro

Site officiel : https://manjaro.org
=> https://manjaro.org/downloads/official/xfce/ (Download Minimal)

Installation du système :

Boot with open source driver.
Clavier Français Azerty.
Nouvelle table de partition : Master Boot Record (MBR).
Swap : Primaire ; 8096 Mo ; linux-swap.
Root : Primaire ; 51200 Mo ; ext4 ; /.
Home : Primaire ; Le reste en Mo ; ext4 ; /home.
Installer le chargeur de démarrage sur /dev/sda.
Utiliser le même mot de passe pour le compte de l’administrateur.

Les sites miroirs :
=> https://wiki.manjaro.org/index.php/Pacman-mirrors

sudo nano /etc/pacman.d/mirrorlist
sudo pacman-mirrors --fasttrack --api --protocol https && sudo pacman -Syyu

Pour installer les paquets avec la console :

sudo pacman -Syu paquet_à_installer

Pour désinstaller les paquets avec la console :

sudo pacman -Rsu paquet_à_désinstaller

Les paquets que j’installe :

arduino
audacity
calibre
celestia
cups
cura
dosbox
filezilla
firefox firefox-i18n-fr
freecad
galculator
gcc
geany
geogebra
ghex
gimp
inkscape
kalzium
kdenlive
libreoffice-still libreoffice-still-fr
libreoffice-extension-texmaths
shotwell
spyder
stellarium
texmaker
thunderbird thunderbird-i18n-fr
torbrowser-launcher
virtualbox *
xournalpp

* Pour VirtualBox, il faut connaître le noyau installé. Dans la console :

mhwd-kernel -li
Réponse, en ce qui me concerne : linux510.
Il faut donc sélectionner, lors de l'installation de VirtualBox :
linux510-virtualbox-host-modules (à adapter)

Les paquets que je désinstalle :

midori

Pour installer une imprimante Brother HL-L5100DN (et ne pas installer ce qui concerne HP, ce qui est le cas avec manjaro-printer) :

Dans la console :

sudo pacman -S cups
sudo gpasswd -a $USER sys
sudo systemctl enable --now cups.service
sudo systemctl enable --now cups.socket
sudo systemctl enable --now cups.path

Dans le navigateur Web :

http://localhost:631/
Puis Administration > Ajouter une imprimante
Connexion ipp /  IPP Everywhere
Brother HL-L5100DN series (driverless) (Brother HL-L5100DN series)
Partager cette imprimante

Source : https://wiki.manjaro.org/index.php/Printing

Installation du scanner Epson Perfection V37 (pas encore réussie) :
https://aur.archlinux.org/packages/iscan-plugin-perfection-v370/

Mise à jour du système (=> Source) :

sudo pacman -Syu
Pour synchroniser avec les dépôts Manjaro (y) et mettre à jour le système (u).

Mesures de vitesse sur PutPixel en mode 13h

Test de 3 façons différentes d’afficher un pixel (avec Turbo Pascal 7.0) :

(***************************************************************)

procedure PutPixel1(x,y: word; color: byte);
begin
  Mem[VGA_SEGMENT: y*320+x]:=color;
end; { PutPixel1 }

(***************************************************************)

procedure PutPixel2(x,y: word; color: byte); assembler;
asm
  mov  ax,VGA_SEGMENT  { es <-- $A000 }
  mov  es,ax
  mov  ax,VGA_WIDTH    { ax <-- 320 }
  mul  y               { ax <-- y*320 }
  add  ax,x            { ax <-- y*320+x }
  mov  bx,ax           { bx <-- y*320+x }
  mov  al,color
  mov  es:[bx],al
end; { PutPixel2 }

(***************************************************************)

procedure PutPixel3(x,y: word; color: byte); assembler;
asm
  mov  ax,VGA_SEGMENT  { es <-- $A000 }
  mov  es,ax
  mov  ax, y   { ax <-- y }
  mov  di, ax  { di <-- y }
  shl  ax, 8   { ax <-- y*256 }
  shl  di, 6   { di <-- y*64 }
  add  di, ax  { di <-- y*320 }
  add  di, x   { di <-- y*320+x }
  mov  al, color
  mov  [es:di],al
end; { PutPixel3 }

(***************************************************************)

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...

Quelques ouvrages où il est question d’assembleur

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.


Et quelques liens :
Introduction au langage assembleur (vue d’ensemble)
Structure interne des ordinateurs (voir la partie 2)
Apprendre l’assembleur
Programmation Assembleur 32 et 64 bits sous Linux Ubuntu

Comparatif DOSBox / JS-DOS

Pour accéder aux valeurs mesurées sur C282, il faut utiliser la combinaison de touches SHIFT R.

Sur mon ordinateur (hors ligne), C282 donne les résultats suivants dans la machine virtuelle DOSBox :

Sur le même ordinateur (en ligne), C282 donne les résultats ci-dessous avec JS-DOS (cycles: 20000). NvDelay passant de 347 à 54, on constate que le passage sur le Web de C282 divise par 6 environ la vitesse de calcul. Le régulateur permet d’obtenir un visuel quasi identique en ligne et hors ligne pour une machine suffisamment puissante. Étonnamment, avec JS-DOS, le même test sur un Netbook (peu puissant) indique une régulation satisfaisante alors que le visuel ne correspond pas du tout à ce qui est attendu (trop lent).

Pour accéder aux valeurs mesurées sur Opus 1, il faut utiliser la combinaison de touches SHIFT R.

Sur mon ordinateur (hors ligne), Opus 1 donne les résultats suivants dans la machine virtuelle DOSBox :

Sur le même ordinateur (en ligne), Opus 1 donne les résultats ci-dessous avec JS-DOS (cycles: 40000). NvDelay passe de 320 à 171.

JS-DOS

JS-DOS permet d’exécuter un programme DOS dans un navigateur Web de manière très simple. => Site officiel : https://js-dos.com.

Dans la console de Debian, télécharger la version 6.22 :

cd Téléchargements

wget https://js-dos.com/6.22/current/js-dos.js

wget https://js-dos.com/6.22/current/wdosbox.js
wget https://js-dos.com/6.22/current/wdosbox-emterp.js
wget https://js-dos.com/6.22/current/wdosbox-nosync.js
wget https://js-dos.com/6.22/current/dosbox.js
wget https://js-dos.com/6.22/current/dosbox-emterp.js
wget https://js-dos.com/6.22/current/dosbox-nosync.js
wget https://js-dos.com/6.22/current/wdosbox-profiling.js
wget https://js-dos.com/6.22/current/wdosbox-emterp-profiling.js
wget https://js-dos.com/6.22/current/wdosbox-nosync-profiling.js

wget https://js-dos.com/6.22/current/wdosbox.wasm.js
wget https://js-dos.com/6.22/current/wdosbox-emterp.wasm.js
wget https://js-dos.com/6.22/current/wdosbox-nosync.wasm.js
wget https://js-dos.com/6.22/current/wdosbox-profiling.wasm.js
wget https://js-dos.com/6.22/current/wdosbox-emterp-profiling.wasm.js
wget https://js-dos.com/6.22/current/wdosbox-nosync-profiling.wasm.js

Exemples : https://js-dos.com/6.22/examples/

Problème rencontré : Le titre que je donne à mes pages html est écrasé par JS-DOS et indique DOSBox. Pour résoudre ce problème, j’ai modifié certains fichiers ci-dessus en remplaçant :

setWindowTitle!=="undefined"

par :

setWindowTitle=="undefined"

Les fichiers concernés sont :
wdosbox.js
wdosbox-emterp.js
wdosbox-nosync.js
dosbox.js
dosbox-emterp.js
dosbox-nosync.js
wdosbox-profiling.js
wdosbox-emterp-profiling.js
wdosbox-nosync-profiling.js

J’en ai informé l’auteur.

DOS retro gaming

Des jeux que j’ai aimé, que j’aime encore et qui fonctionnent bien sous FreeDOS, mais sans le son sur mon Netbook :
Prince of Persia (1990)
CTRL Q pour quitter.
Les flèches pour se déplacer.
Shift pour se battre (dès qu’on a trouvé l’épée).
Shift associé à une flèche pour un déplacement précautionneux.
Lemmings (1991)
Civilization (1991)
Tetris Classic (1992)

*** Portails de jeux DOS ***
DOS Haven
DOSGames.com
Internet Archive : Permet de jouer dans un navigateur Web
Dos.Zone

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