Kevin Schmidt, W9CF, 6510 S. Roosevelt St., Tempe, Arizona 85283
If you want to use your sound card as a voice keyer, please see section 6.2 below on SBDVP where I describe how to set up a version of DOSEMU available from cvs which works better. I recommend that, in any case, you first get the stable version running before dealing with a development version.
After installation edit the global configuration file (/etc/dosemu/dosemu.conf by default). I added the following lines:
$_rdtsc = (on) $_com3 = "/dev/ptyq1" $_com4 = "/dev/ptyq2" $_ports = " device /dev/lp0 fast range 0x378 0x37f" $_ports = $_ports, " device /dev/null fast range 0x3f8 0x3ff" $_ports = $_ports, " device /dev/null fast range 0x2f8 0x2ff"The first line uses the pentium timer. I don't know if this is necessary, but Tor, N4OGW, recommended it, and I never turned it off. The second two lines tell DOSEMU to use the linux pseudottys /dev/ptyq1 and /dev/ptyq2 as the com3 and com4 serial ports rather than hardware serial ports. This will allow us to connect these fake serial ports to linux applications like telnet or secure shell for packet or networking. Note that no other application should be using the pseudottys specified. The newer way to do this is to use system calls to open the unix98 device /dev/ptmx to get a unique pseudotty. However, since DOSEMU doesn't do this, the older method must be used. Here I just pick some BSD legacy pseudottys and hope that no other application will use them (however, since most applications will use the /dev/ptmx method a collision is unlikely). Note that these legacy pseudo ttys may not be turned on by default with some distributed 2.6 kernels. If that is your case, you will need to recompile the kernel with legacy (BSD) PTY support to be able to connect TRlog to other applications. If you just want to use the hardware serial and parallel ports as in DOS you do not need to use the pseudottys.
The last three lines gives DOSEMU permission to use the port range range needed for direct hardware serial and parallel port access so TRlog can key through the serial or parallel port. Notice that it associates the parallel port with the linux device /dev/lp0, so if something else in linux is using /dev/lp0, these ports will not be available.
My shack computer has two serial and one parallel port. I can tell TRlog to use serial 1 or 2 or parallel 1 for keying, etc. Packet and networking between computers running TR is done using the fake serial ports 3 or 4.
I have not found it necessary, but adding the line
$_hogthreshold = (0)will give DOSEMU more cpu power if there are timing issues.
w1aw boltzmann=(root) NOPASSWD: /usr/local/bin/dosemu.bin w1aw boltzmann=(root) NOPASSWD: /usr/local/bin/xdosemube sure to change w1aw, boltzmann, and the location of dosemu.bin and xdosemu to the appropriate values for your set up.
I start DOSEMU under X windows with the command
PACKET PORT = SERIAL 3 EIGHT BIT PACKET PORT = TRUEI open a shell and type:
stty icrnl erase '^h' < /dev/ttyq1 telnet n7us.net < /dev/ttyq1 > /dev/ttyq1The first line tells the pseudotty to use control-h as the backspace key and to add carriage-returns to the newlines. The second line connects the pseudotty to N7US's telnet cluster in Mesa, Arizona. You should use a cluster close to you. At this point I can use ctrl-b in TRlog to log in to the packet cluster and receive spots.
MULTI PORT = SERIAL 4I then open a shell on each computer and type
ssh receivecomputer "cat < /dev/ttyq2" > /dev/ttyq2where receivecomputer is the name of the computer I want to send my data to around the networking loop. Do the same on the other computers to complete the loop. I have assumed that they all are using pseudotty q2. If not adjust the devices accordingly when performing the ssh command. Notice that this uses whatever hardware you have set up for networking under linux. It will work with ethernet, wireless, parallel or serial port ip, ppp, ieee1394, or whatever else you have. My set up uses ethernet and wireless.
SBDVP, which is available at http://fermi.la.asu.edu/w9cf, can integrate a sound card with TRlog. However, it only partially works under DOSEMU 1.2.2 without changes. DOSEMU emulates to some extent a soundblaster. Run SBDVP as under DOS.
Most linux distribution come with the sox package which contains frontends rec and play. For example, to record cqf2.dvp in an SBDVP compatible format, use
rec -r12048 -c1 -fu -b -t raw cqf2.dvpYou can play the file under linux as
play -r12048 -c1 -fu -b -t raw cqf2.dvpto see how it sounds. The flags on these commands say to use a rate of 12048 Hz, one channel, i.e. not stereo, use unsigned, data is in bytes, write raw data to file cqf2.dvp.
cvs -d:pserver:firstname.lastname@example.org:/cvsroot/dosemu login cvs -z3 -d:pserver:email@example.com:/cvsroot/dosemu \ checkout -D "December 1, 2004 19:00 GMT" dosemujust hit return when prompted for the login password. You can leave out the backslash at the end of the line if you type the second cvs command as one long line. Follow the CVS Tree link at http://dosemu.org. for more information. This CVS version can record within TR at 8000Hz and does not have the play back problem. Compile and install as before.
With this version of DOSEMU, SBDVP will record and will play. However since recording currently only works at 8000Hz, SBDVP should be started with its rate set to 8000Hz,
sbdvp -r8000If you test with the file cqf10.dvp distributed with SBDVP, Hal's voice will be rather low pitched and slow since it was recorded at the 12048 rate. Files recorded within SBDVP will use the 8000 Hz rate.
Note: In my limited testing, occasionally a bit of audio is still skipped.
If you want to prepare or listen to files under linux, use 8000 instead of 12048 in the play and record commands shown above.