DOSEMU: DOS sotto linux

Da Wizard linux team wiki.

Jump to: navigation, search

Contents

Caratteristiche della piattaforma dove sono state effettuate le operazioni

  • kubuntu feisty (x86) con dosemu ver. 1.2.2
  • ubuntu intrepid (x86) con dosemu ver. 1.4.0


Installare dosemu

Installare i seguenti pacchetti utilizzando il gestore pacchetti della vostra distribuzione:

  • xfonts-terminus-dos - Fixed-width fonts for DOS encodings
  • dosemu - The Linux DOS Emulator
  • dosemu-freedos - FreeDOS package for DOSEMU
  • xfonts-dosemu - VGA font for the DOS Emulator

Per ubuntu Intrepid

  • dosemu - The Linux DOS Emulator

Abilitazione scrittura sul drive C (messo per default read-only)

  • creare una cartella sotto la propria home ad esempio drive_c
  • copiare i file dalla cartella dosemu e quella creata.
  • Modificare l'autoexec.bat come sotto:
@echo off
path c:\bin;c:\gnu;c:\dosemu
set HELPPATH=c:\help
set TEMP=c:\tmp
set BLASTER=A220 I5 D1 H5 T6
prompt $P$G
unix -s DOSDRIVE_D
if "%DOSDRIVE_D%" == "" goto nodrived
lredir C: linux\fs%DOSDRIVE_D%\drive_c
:nodrived
rem unix -s DOSTMP
if "%DOSTMP%" == "" goto fidostmp
if "%DOSDRIVE_D%" == "" goto dostmpd
lredir e: linux\fs%DOSTMP%
set TEMP=E:\
goto :fidostmp
:dostmpd
lredir C: linux\fs%DOSTMP%\drive_c
set TEMP=C:\
:fidostmp
rem uncomment to load another bitmap font
rem loadhi display con=(vga,437,2)
rem mode con codepage prepare=((850) c:\cpi\ega.cpx)
rem mode con codepage select 850
rem chcp 850
rem uncomment the following to load cdrom support
rem shsucdx /d:mscd0001
rem unix -s DOSEMU_VERSION
rem echo "Welcome to dosemu %DOSEMU_VERSION%!"
rem unix -e

Gestire 2 stampanti parallele senza far interferire i filtri di CUPS

Bisgna creare 2 stampanti RAW (senza driver) e assegnargli i nomi LPT1 e LPT2. Fatto questo nel file di configurazione dosemu.conf bisogna inserire nella chiave $_printer = "" rispettivamente LPT1 e LPT2 separati da virgola. (riconrdate di rimuovere il commento di inizio riga)

dosemu.conf

Stampante PDF sotto Dosemu

  • Installare il pacchetto cups-pdf
  • Crearsi la stampante e chiamarla LPT3 con i driver della HP LaserJet 2200
  • modificare il file dosemu.conf mettendo LPT3 nella riga $_printer = "LPT1,LPT2,LPT3" (la prova in questione ha 3 stampanti una laser, una ad aghi e la terza crea i PDF)

Sotto la propria Home verrà creata in automatico una directory con in nome PDF e lì andranno a finire le stame che avrà il nome di '__stdin__.pdf' Ora la porta LPT3 sarà una porta collegata alla stampante PDF di cups. Quindi:

 dir >lpt3 

creerà un file '__stdin__.pdf' sotto la diretory PDF della propria Home.

Procedura su kubuntu feisty

  • impostazioni di sistema (nel menù principlae)
  • stampanti
  • aggiungi stampante classe
  • avanti

Immagine:Pdf01.png

  • cliccare su altro tipo di stampante

Immagine:Pdf02.png

  • poi dare avanti fino a che non appare la finestra sottostante dove dovete mettere LPT3

Immagine:Pdf09.png

  • dare successivo e poi fine

Generare un file PDF da un file PCL generato da un programma sotto DOSEMU

Problema: ho un programma che mi stampa dei file ma non mi consente di esportarli in nessun altro modo. Il top sarebbe fargli generare un PDF.

Soluzione: intercettare l'output sulla porta della stampante e convertirlo da PCL a PDF

Installazione ghostpcl:

make fonts
make 

Se si dovesse presentare l'errore seguente:

../gs/src/gdevx.c:1133: error: ‘gx_device_X’ has no member named ‘text’                                                                                                             
../gs/src/gdevx.c:1133: error: request for member ‘char_count’ in something not a structure or union                                                                                
../gs/src/gdevx.c:1133: warning: statement with no effect                                                                                                                           
make[2]: *** [obj/gdevx.o] Error 1                                                                                                                                                  
make[2]: Leaving directory `/home/monica/Warez/ghostpcl_1.41p1/main'                                                                                                                
make[1]: *** [obj/ldgs.tr] Error 2                                                                                                                                                  
make[1]: Leaving directory `/home/monica/Warez/ghostpcl_1.41p1/main'                                                                                                                
make: *** [product] Error 2  

bisogna installare il pacchetto libxt-dev.

make install
  • lo script: Prende lo standar input e lo dirotta su di un file con estenzione pcl chiamato out.plc, poi scrive il file pdf mettendoci la data conteggiata in secondi a partire dal primo gennaio 1970 in modo da non avere un unico file che viene sempre sovrascritto. Il parametro -dNOPAUSE elimina la pausa del comando pcl6
#!/bin/sh
cat - >/temp/out.pcl
pcl6 -sDEVICE=pdfwrite -sOutputFile=out_$(date +'%s').pdf -dNOPAUSE out.pcl
  • la modifiche da apportare sul file dosemu.conf

per la versione 1.2.2

 $_printer_command = "<path_del_file_di_script_creato>/<nome_file>" 

per la versione 1.4.0 è stata tolta l'istanza $_printer_command quindi:

 $_lpt1 = "<path_del_file_di_script_creato>/<nome_file>" 


  • l'utilizzo: ho creato 2 icone di lancio sul desktop una che mi apre il dosemu facendo riferimento al file di configurazione di default e quindi l'output viene stampato, l'altro sul comando c'è l'aggiunta di -f <nouovo_dos_emu.conf> dove c'è la modifica apportata per fargli generare dal pcl il pdf
Personal tools
wizard linux team