Installer FreeCAD 0.19 sous Debian 10

Site officiel : https://www.freecadweb.org

Dans la console :

Si le répertoire FreeCAD n’existe pas déjà, je le crée :
sudo mkdir /usr/share/freecad

Je télécharge l’application : FreeCAD_0.19-24291-Linux-Conda_glibc2.12-x86_64.AppImage

J’installe l’application à l’endroit voulu :
cd Téléchargements
sudo mv FreeCAD_0.19-24291-Linux-Conda_glibc2.12-x86_64.AppImage /usr/share/freecad

Je rends le fichier exécutable :
sudo chmod +x /usr/share/freecad/FreeCAD_0.19-24291-Linux-Conda_glibc2.12-x86_64.AppImage

Je télécharge l’icône FreeCAD et l’installe à l’endroit voulu :
wget http://entropie.org/3615/download/freecad.svg
sudo mv freecad.svg /usr/share/freecad

Pour effacer une version précédente de FreeCAD (à adapter) :
sudo rm /usr/share/freecad/*.AppImage

Pour intégrer le programme au menu de Xfce, je crée un fichier freecad.desktop dans le répertoire /usr/share/applications :
cd /usr/share/applications
sudo nano freecad.desktop


[Desktop Entry]
Version=0.19
Name=FreeCAD
Comment=Feature based Parametric Modeler
GenericName=CAD Application
Exec=/usr/share/freecad/FreeCAD_0.19-24291-Linux-Conda_glibc2.12-x86_64.AppImage
Terminal=false
Type=Application
Icon=/usr/share/freecad/freecad.svg
Categories=Graphics;Science;Engineering
StartupNotify=true
MimeType=application/x-extension-fcstd

Installer Stellarium 0.21 sous Debian 10

Site officiel : https://stellarium.org/fr/

Dans la console :

Si le répertoire Stellarium n’existe pas déjà, je le crée :
sudo mkdir /usr/share/stellarium

Je télécharge l’application : Stellarium-0.21.1-x86_64.AppImage

J’installe l’application à l’endroit voulu :
cd Téléchargements
sudo mv Stellarium-0.21.1-x86_64.AppImage /usr/share/stellarium/

Je rends le fichier exécutable :
sudo chmod +x /usr/share/stellarium/Stellarium-0.21.1-x86_64.AppImage

Je télécharge l’icône Stellarium et l’installe à l’endroit voulu :
wget http://entropie.org/3615/download/stellarium.ico
sudo mv stellarium.ico /usr/share/stellarium

Pour effacer une version précédente de Stellarium (à adapter) :
sudo rm /usr/share/stellarium/stellarium.AppImage

Pour intégrer le programme au menu de Xfce, je crée un fichier stellarium.desktop dans le répertoire /usr/share/applications :
cd /usr/share/applications
sudo nano stellarium.desktop


[Desktop Entry]
Version=0.21
Type=Application
Name=Stellarium
Name[fr]=Stellarium
GenericName=Desktop planetarium
GenericName[fr]=Planétarium de bureau
Exec=/usr/share/stellarium/Stellarium-0.21.1-x86_64.AppImage --startup-script=%f
Icon=/usr/share/stellarium/stellarium.ico
StartupNotify=false
Terminal=false
Categories=Astronomy;Education;Science;
Comment=Planetarium
Comment[fr]=Un planétarium interactif
Keywords=astronomy;planetarium;
MimeType=application/x-stellarium-script;
Actions=Window;Fullscreen;Debugmode;
[Desktop Action Window]
Name=Open in window
Name[fr]=Ouvrir dans une fenêtre
Exec=/usr/share/stellarium/Stellarium-0.21.1-x86_64.AppImage -f no
[Desktop Action Fullscreen]
Name=Open in fullscreen
Name[fr]=Ouvrir en plein écran
Exec=/usr/share/stellarium/Stellarium-0.21.1-x86_64.AppImage -f yes
[Desktop Action Debugmode]
Name=Open in debug mode
Name[fr]=Ouvrir en mode de débogage
Exec=/usr/share/stellarium/Stellarium-0.21.1-x86_64.AppImage --dump-opengl-details

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.