Hello plaircpa, Here it is. But as I cannot find a way to attach the information, this is a pretty lengthy document. Anyhow, I hope it works for you, it did for me.
How to compile and install dosbox megabuild6 with dongle parallel support
(netmos chips pci and pciexpress - PCI 9815 Multi-I/O Controller)
http://www.asix.com.tw/products.php?...4;111&PLine=74
on Ubuntu (tested on 10.04, 11.10 and 12.04 only 32bit version).
Please note that at the moment netmoschip are not supported on ubuntu 64bit[*])
Also ensure to use a Linux text file editor as the Windows eol carriage return + linefeed does not compile.
check your lpt pci is supported in Ubuntu
lspci -v
you should obtain something like this
01:0a.0 Communication controller: NetMos Technology PCI 9815 Multi-I/O Controller (rev 01)
Subsystem: LSI Logic / Symbios Logic Device 0020
Flags: medium devsel, IRQ 18
I/O ports at bc00 [size=8]
I/O ports at b800 [size=8]
I/O ports at b400 [size=8]
I/O ports at b000 [size=8]
I/O ports at ac00 [size=8]
I/O ports at a800 [size=16]
Kernel driver in use: parport_pc
Kernel modules: parport_pc
(
https://help.ubuntu.com/community/CompilingSoftware)
to get necessary files to compile, go to the terminal and enter:
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install automake
sudo apt-get install checkinstall
Also install libsdl1.2dev either through the software center or as follows:
sudo apt-get install libsdl-net1.2-dev libsdl-sound1.2-dev libfreetype6 libfreetype6-dev
download dosbox-mb6 for linux from:
http://source.dosbox.com/mb6/dosbox-mb6.tar.gz
extract files (eg in /home/user/Downloads/dosbox-mb6)
download parport_2nd_attempt.tar.gz (2.58kB) from:
http://vogons.zetafleet.com/viewtopi...=252009#252009
extract the 2 files and substitute the older in
/home/user/Downloads/dosbox-mb6/src/hardware
Edit the following file:
/home/user/Downloads/dosbox-mb6/include/dos_inc.h
after the following lines (around line 30) in the file:
#ifndef dosbox_dos_system_h
#include “dos_system.h”
#endif
#ifndef dossbox_mem_h
#include “mem.h”
#endif
add the line:
#include <stddef.h>
To enable dBase printing, do the following:
In home/user/Downloads/dosbox-mb6/include/parport.h, find these lines:
class CParallel {
public:
#if PARALLEL_DEBUG
FILE * debugfp;
bool dbg_data;
bool dbg_putchar;
bool dbg_cregs;
bool dbg_plainputchar;
bool dbg_plaindr;
void log_par(bool active, char const* format,...);
#endif
and add these lines immediately below them:
// Toggle with reporteof as an option in the conf file for the port in question.
bool bReportIOStatusAsEOF;
Next, in src/hardware/parport/parport.cpp, find the lines that read:
// Initialisation
CParallel::CParallel(CommandLine* cmd, Bitu portnr, Bit8u initirq) {
and replace them with these:
// Initialisation
CParallel::CParallel(CommandLine* cmd, Bitu portnr, Bit8u initirq) {
this->bReportIOStatusAsEOF = cmd->FindExist("reporteof", false);
Then, in the same file, find the lines:
Bit16u device_LPT::GetInformation(void) {
return 0x80A0;
};
and replace them with these:
Bit16u device_LPT::GetInformation(void) {
Bit16u status = 0x80A0;
if (this->pportclass->bReportIOStatusAsEOF)
status |= 0x40;
return status;
};
Next in /home/user/Downloads/dosbox-mb6 do the following:
enable autogen.sh as 'executable' (properties):
chmod +x autogen.sh
You are now ready to compile:
sudo ./autogen.sh
./configure
make
add parallel support by editing the config file:
gedit /home/user/.dosbox/dosbox-SVN.conf
at the [parallel] section:
parallel1=reallpt realport:/dev/parport0
parallel2=reallpt realport:/dev/parport1
or for network printers:
parallel1=file append:/home/paul/dosdrive/dosbox00.PRN
parallel2=file append:/home/paul/dosdrive/dosbox00.PRT
(for dBase 5 printing support add a space and “reporteof” to the end of the line.)
and save it
to run dosbox with LPT support just type on terminal
sudo /home/user/Downloads/dosbox-mb6/src/.dosbox
many THANKS again to h-a-l-9000 and others
enjoy!!!
[*]
to compile MB6 for 64-bit.
commenting out a part in decoder_basic.h:
if (handler->flags & PFLAG_NOCODE) {
/* if (PAGING_ForcePageInit(lin_addr)) {
handler=get_tlb_readhandler(lin_addr);
if (handler->flags & PFLAG_HASCODE) {
cph=(CodePageHandlerDynRec *)handler;
return false;
}
}*/
if (handler->flags & PFLAG_NOCODE) {
LOG_MSG("DYNREC:Can't run code in this page");
cph=0;
return false;
}
}