Installation de LogoWriter
sous Linux
avec dosemu
Linux Suse 7.0
dosemu-0.97.0.1

1. Intoduction.
2. Installer le paquetage dosemu.rpm 
3. modifier le fichier /etc/dosemu.conf
4. Copie des fichiers dos 
5. Lancer xdos et modifier le fichier autoexec.bat 
6. Liens utiles.
7. Remerciements
8. Mes fichiers de configuration.
8.1. Mon fichier /etc/dosemu.conf
8.2. Mon fichier /var/lib/dosemu/dosC/autoexec.bat
8.3. Mon fichier /var/lib/dosemu/dosC/config.sys


1. Introduction.
Dans la Suse 7.0 quelques nouveautés apparaissent. .. et l'installation du LogoWriter m'est apparue plus simple.
Comme pour la version précédente ( Installation du LogoWriter sous la Suse 6.0) il y a sans doute un moyen plus simple...
Cependant comme dit précédemment cette nouvelle installation fonctionne et pour moi c'est toujours le principal : nous pouvons utiliser le programme LogoWriter sous Suse 7.0
Dosemu est toujours configuré pour lancer immédiatement LogoWriter et pour le quitter dès l'entrée de "DOS" sous LogoWriter.
La nouvelle installation des ordinateurs s'effectue sans partition DOS.
En effet, maintenant que le système a fait ses preuves (Après plus de deux ans, la sécurité n'a jamais eu de faille,  la stabilité  du système est permanente, ...) je n'ai plus besoin de cette partition DOS.
J'ai donc opté pour une facilité de gestion en utilisant les partitions proposées par Yast lors de l'installation.
Les caractéristiques de l'ordinateur utilisé sont les suivantes :
    PC : Siemens-Nixdorf Scenic 5H/PCI-166
    Disque dur : hda : WDC AC22160H, ATA DISK drive
    2014 MB W/128kb Cache, CHS=4092/16/63
    Floppy drive : fd0 1.44M
    Clavier pc 104 be
    Souris : Compaq 2 boutons (PS/2 "dev/psaux")
    Carte Réseau : 3C509 (192.168.1.xx)
    Carte graphique : Cirrus Logic GD 5436 (rev0)
    Moniteurs : Siemens-Nixdorf MCM 1704 (NTD)


2. Installer le paquetage dosemu.rpm

    2.1. J'utilise tout simplement Yast pour effectuer cette mise à jour.   (insérer ici le disque n°4 de la Suse 7.0 dans le lecteur de CDROM)
Puis dans une console :
-- yast
-- Configuration pour l'installation
-- Sélectionner la source d'installation
-- Installation à partir du CD-ROM
-- Choisir le cd-rom ( dans mon cas il s'agit souvent du lecteur /dev/hdb pour les ordinateurs équipés d'un seul disque dur et d'un lecteur de CD-ROM).
-- Revenir en arrière avec la touche Esc
-- Déterminer / démarrer l'installation
-- Modifier /créer une configuration
-- sélectionner le paquetage dosemu dans emu.
-- F10 puis Démarrer l'installation
-- lorsque l'installation est effectuée, -- Menu principal puis quitter Yast

2.2.Variante d'installation : pour ceux qui le désirent, récupérer directement le paquetage dosemu...rpm et effectuer l'installation à l'aide de rpm -i dosemu.rpm. (situé sur le CD 4 dans le répertoire /SUSE/EMU1/)
2.3.Variante d'installation : pour mon réseau, j'au utilisé le lecteur de cd-rom du serveur comme lecteur d'installation. Au préalable le réseau doit être correctement configuré, le fichier /etc/export du serveur doit exporter le /cdrom vers les postes clients, le lecteur de cd-rom du serveur doit être monté, ...


3. modifier le fichier /etc/dosemu.conf (voir en annexe mon fichier /etc/dosemu.conf)

 
- adapter le fichier en fonction de l'ordinateur (ici il s'agit d'un Pentium 166)
  $_cpu = "80586"
  $_cpuspeed= (0)
- pointer sur les fichiers de démarrage.
   $_emubat = " bat "
   $_emusys = "sys"
   $_emubat = "bat"
- modifier le clavier.
 $_layout = "be"
 $_keybint = (on)
- modifier le titre de la fenêtre (Ca c'est pour le fun).
 $_X_title= "LogoWriter sous Linux"
$_X_icon_name = "Logo"
 - Vérifier que le dosemu.conf pointe bien vers drives/c (qui en fait est un lien vers /var/lib/dosemu/dosC).
 $_hdimage="drives/c"
Sauvegarder ces changements.

4. Copier les fichiers dos. (avec MC par exemple)

 - monter la disquette (mout /floppy)
 - se rendre sous /var/lib/dosemu/dosC
 - insérer une disquette formatée sous DOS (qui contient les fichier IO.sys, MSDOS.sys, COMMAND.COM)
 - copier les fichiers msdos.sys, io.sys et command.com de la disquette vers /var/lib/dosemu/dosC


5. Lancer xdos (dans un Xterm sous X) en tant que root et modifier le fichier autoexec.bat 

- dans un xterm : xdos 
- lorsque vous vous trouvez à l'invite c:  ezedit autoexec.bat
- modifier le fichier autoexec.bat (voir fichier exemple) 
  -- lredir d: linux\fs\home (Cette ligne permet de créer un lien vers le répertoire /home 
     pour que le LogoWriter puisse se lancer et que les utilisateurs retrouvent leur répertoire personnel).
	 Une variante permettrait d'accéder directement au répertoire personnel : lredir d: linux\fs\${home}
	 mais pour l'instant cela nécessiterait une copie du programme LogoWriter dans chaque répertoire.
	 Ce qui ne me semble pas judicieux comme choix.
  -- d:
  -- logowr
  -- c:
  -- exitemu

enregistrer (F7). puis quitter.

Pour utiliser xdos il peut être utile de copier les fichiers /var/lib/dosemu/commands/ ems.sys, emufs.sys, exitemu.com dans le répertoire /var/lib/dosemu/dosC.
A vérifié (mais lu quelque part : il pourrait être utile de placer le fichier autoexec.bat dans /home pour que les liens puissent fonctionner ...) ... à tester.



6. Liens utiles

Pour l'utilisation de dosemu.

- Si dosemu est installé sur votre système vous devriez retrouver la documentation suivante :

- Sur Internet :

Pour le LogoWriter : le Réseau-Logo Belgium (Un site qu'il est génial !!)


7. Remerciements.

Je tiens à remercier particulièrement Seymour Papert pour cette géniale invention qu'est le langage Logo.
Merci aussi à mon épouse pour ses encouragements .


8. Mes fichiers de configuration .

8.1. Mon fichier /etc/dosemu.conf


$_debug = "-a"		# same format as -D commandline option
			# (but without the -D in front)
$_features= ""		# list of temporary hacks, see release notes in
			# the file ChangeLog. e.g "0:1 2:0", which means
			# to set feature_0 to 1 and feature_2 to 0.
$_mapping= ""		# prefered mapping driver, one of:
			# auto, mapself, mapfile, mapshm
$_timint = (on)		# emulate INT08 type timer interrupts
$_mathco = (on)		# or off
$_cpu = "80586"		# CPU showing to DOS, valid values:  "80[345]86"
			# or "emulated" for non-native CPU (386 in this case)

$_rdtsc = (on)		# if possible use Pentium cycle counter
$_cpuspeed = (166)	# 0 = calibrated by dosemu, else given (e.g.166.666)
$_pci = (off)

$_xms = (1024)		# in Kbyte
$_ems = (1024)		# in Kbyte
$_ems_frame = (0xe000)
$_dpmi = (off)		# in Kbyte
$_dosmem = (640)	# in Kbyte, 640
$_hardware_ram = ""	# list of segment values/ranges such as
			# "0xc8000 range 0xcc000,0xcffff"

$_secure ="ngd"		# secure for: n (normal users), g (guest), d (dexe)
			# empty string: depending on 'restricted'
			# "0": always insecure (not recommended)
$_odd_hosts = ""	# black list such as "lucifer.hell.com billy.the.cat"
$_diskless_hosts=""	# black list such as "hacker1 newbee gateway1"

$_emusys = ""		# empty or 3 char., config.sys   -> config.XXX
$_emubat = ""		# empty or 3 char., autoexec.bat -> autoexec.XXX 
$_emuini = ""		# empty or 3 char., system.ini   -> system.XXX

$_hogthreshold = (1)	# 0 == all CPU power to DOSEMU
$_irqpassing = ""	# list of IRQ number (2-15) to pass to DOS such as
			# "3 8 10"
$_speaker = ""		# or "native" or "emulated"


$_term_char_set = ""	# Global code page and character set selection.
			# "" == automatic, else: ibm, latin, latin1, latin2

$_term_color = (on)	# terminal with color support
$_term_updfreq = (4)	# time between refreshs (units: 20 == 1 second)
$_escchar = (30)	# 30 == Ctrl-^, special-sequence prefix

$_rawkeyboard = (0)	# bypass normal keyboard input, maybe dangerous
$_layout = "be"	# one of: finnish(-latin1), de(-latin1), be, it, us
			# uk, dk(-latin1), keyb-no, no-latin1, dvorak, po
			# sg(-latin1), fr(-latin1), sf(-latin1), es(-latin1)
			# sw, hu(-latin2), hu-cwi, keyb-user
			# hr-cp852, hr-latin2, cz-qwerty, cz-qwertz.
			# Or 'auto' (which tries to generate the table from
			# the current Linux console settings)
$_keybint = (on)	# emulate PCish keyboard interrupt


$_X_updfreq = (5)	# time between refreshs (units: 20 == 1 second)
$_X_title = "LogoWriter sous Linux"	# Title in the top bar of the window
$_X_icon_name = "Logo"	# Text for icon, when minimized
$_X_keycode = (auto) 	# on == translate keybord via dosemu keytables
			# or 'off' or 'auto'
$_X_blinkrate = (8)	# blink rate for the cursor
$_X_font = ""		# basename from /usr/X11R6/lib/X11/fonts/misc/*
			# (without extension) e.g. "vga"
$_X_mitshm = (on)	# Use shared memory extensions
$_X_sharecmap = (on)	# share the colormap with other applications
$_X_fixed_aspect = (on)	# Set fixed aspect for resize the graphics window
$_X_aspect_43 = (on)	# Always use an aspect ratio of 4:3 for graphics
$_X_lin_filt = (off)	# Use linear filtering for >15 bpp interpolation
$_X_bilin_filt = (off)	# Use bi-linear filtering for >15 bpp interpolation
$_X_mode13fact = (2)	# initial size factor for video mode 0x13 (320x200)
$_X_winsize = ""	# "x,y" of initial windows size (defaults to float)
$_X_gamma = (1.0)	# gamma correction
$_X_vgaemu_memsize = (1024) # size (in Kbytes) of the frame buffer for emulated vga
$_X_lfb = (on)	# use linear frame buffer in VESA modes
$_X_pm_interface = (on)	# use protected mode interface for VESA modes
$_X_mgrab_key = ""	# KeySym name to activate mouse grab, empty == off
$_X_vesamode = ""	# "xres,yres ... xres,yres"
			# List of vesamodes to add. The list has to contain
			# SPACE separated "xres,yres" pairs



$_video = "vga"		# one of: plainvga, vga, ega, mda, mga, cga
$_console = (0)		# use 'console' video
$_graphics = (0)	# use the cards BIOS to set graphics
$_videoportaccess = (1)	# allow videoportaccess when 'graphics' enabled
$_vbios_seg = (0xc000)	# set the address of your VBIOS (e.g. 0xe000)
$_vbios_size = (0x10000)# set the size of your BIOS (e.g. 0x8000)
$_vmemsize = (1024)	# size of regen buffer
$_chipset = ""		# one of: plainvga, trident, et4000, diamond, avance
			# cirrus, matrox, wdvga, paradise, ati, s3, sis
$_dualmon = (0)		# if you have one vga _plus_ one hgc (2 monitors)


$_vbootfloppy = ""	# if you want to boot from a virtual floppy:
			# file name of the floppy image under /var/lib/dosemu
			# e.g. "floppyimage" disables $_hdimage
			#      "floppyimage +hd" does _not_ disable $_hdimage
$_floppy_a ="threeinch"	# or "fiveinch" or "atapi" or empty, if not existing
			# optionally the device may be appended such as
			# "threeinch:/dev/fd0"
$_floppy_b = ""		# dito for B:

$_hdimage = "drives/c" # list of hdimages under /var/lib/dosemu
			# assigned in this order such as
			# "hdimage_c hdimage_d hdimage_e"
			# If the name begins with '/dev/', then partion
			# access is done instead of virtual hdimage such as
			# "/dev/hda1" or "/dev/hda1:ro" for readonly
			# Currently mounted devices and swap are refused.
			# Hdimages and devices may be mixed such as
			# "hdimage_c /dev/hda1 /dev/hda3:ro"
			# Note: 'wholedisk' is _not_ supported.
$_hdimage_r = $_hdimage	# hdimages for 'restricted access (if different)

$_aspi = ""		# list of generic SCSI devices to make available
			# for the builtin aspi driver (format of an entry
			# is 'device:type:mappedtarget' such as
			# "sg2:WORM sg3:Sequential-Access:6 sg4:CD-ROM" or
			# "sg2:4 sg3:1:6 sg4:5" (which are equal)

$_com1 = ""		# e.g. "/dev/mouse" or "/dev/cua0"
$_com2 = ""		# e.g. "/dev/modem" or "/dev/cua1"
$_com3 = ""		# dito                 "/dev/cua2"
$_com4 = ""		# dito                 "/dev/cua3"
$_ttylocks = "/var/lock"	# Lock directory (e.g. "/var/lock")
			# default ("") is /usr/spool/uucp

$_mouse = ""		# one of: microsoft, mousesystems, logitech, mmseries
			# mouseman, hitachi, busmouse, ps2
$_mouse_dev = ""	# one of: com1, com2, com3, com4 or /dev/mouse
$_mouse_flags = ""	# list of none or one or more of:
			# "emulate3buttons cleardtr"
$_mouse_baud = (0)	# baudrate, 0 == don't set

$_printer = "lp"	# list of (/etc/printcap) printer names to appear as
			# LPT1, LPT2, LPT3 (not all are needed, empty for none)
$_printer_timeout = (20)# idle time in seconds before spooling out

$_ports = ""		# list of portnumbers such as "0x1ce 0x1cf 0x238"
			# or "0x1ce range 0x280,0x29f 310"
			# or "range 0x1a0,(0x1a0+15)"

$_ipxsupport = (off)	# or on
$_novell_hack = (off)
$_vnet = (off)		# 'on' for packet-multi (used by dosnet)

$_sound = (off)		# sound support on/off
$_sb_base = (0x220)
$_sb_irq = (5)
$_sb_dma = (1)
$_sb_dsp = "/dev/dsp"
$_sb_mixer = "/dev/mixer"
$_mpu_base = "0x330"

8.2. Mon fichier /var/lib/dosemu/dosC/autoexec.bat

@echo off
set comspec=c:\command.com
prompt $p$g
path c:\;c:\dosemu
isemu
lredir d: linux\fs\home
d:
logowr
c:
exitemu
 
8.3. Mon fichier /var/lib/dosemu/dosC/config.sys

rem You *do* want EMS, don't you?
device=c:\ems.sys


Auteur :Olivier Magos




Première version le 14/03/2001.