Skip to content

wwiv 5.4 dosemu door example (global war)

granitepenguin edited this page Jul 28, 2018 · 9 revisions
  • Make sure Native STDIO is set to NO
Editing Chain # 1                                                             

A) Description  : gw
B) Filename     : /bbs/doors/gw/gw.sh %C %H
C) SL           : 10
D) AR           : None.
E) ANSI         : Optional
F) DOS Interrupt: NOT Used
G) Win32 FOSSIL : No
H) Native STDIO : No
I) Launch From  : BBS Root Directory
J) Local only   : No
K) Multi user   : No
L) Registered by: AVAILABLE
M) Usage        : 29
N) Age limit    : 0 - 255

(Q=Quit) Which (A-N,R,[,]) :  
  • Here's gw.sh
#!/bin/bash
set -x

# %1 is drop file
# %2 is socket handle                                                                                               

declare -r DROPFILE_PATH=$1
declare -r DROPFILE_NAME=$(basename ${DROPFILE_PATH})
declare -r BBS_TEMPDIR=$(dirname ${DROPFILE_PATH})
declare -r DOOR_DIR=/bbs/doors/gw
declare	-r SOCKET_HANDLE=$2

cd ${DOOR_DIR}
unix2dos ${DROPFILE_PATH}

# D: is door path
# T: is TEMP path
export DOSDRIVE_D=${DOOR_DIR}
export DOSDRIVE_T=${BBS_TEMPDIR}
socat -d -d FD:${SOCKET_HANDLE} EXEC:"dosemu -f /home/wwiv/.dosemurc gw.bat",pty

Notice the call to socat, that creates the PTY from the socket handle

  • gw.bat
D:
cd\
war /w T:\chain.txt
  • In $HOME/.dosemurc make sure you have the following. I couldn't get the ifdef u_serial to work, so I did this instead by hard coding it.
$_com1 = "virtual"

Here's the whole file:

$_sound = (0)
$_cpu = "80586"
$_hogthreshold = (10)
$_dpmi_base = (0x10000000)
$_external_char_set = "cp437"
$_internal_char_set = "cp437"
$_layout = "us"
$_com1 = "virtual"
  • autoexec.bat
@echo off
rem autoexec.bat for DOSEMU + FreeDOS
path z:\bin;z:\gnu;z:\dosemu
set HELPPATH=z:\help
set TEMP=c:\tmp
blaster
prompt $P$G

unix -s DOSDRIVE_D
unix -s DOSDRIVE_T
if "%DOSDRIVE_D%" == "" goto nodrived
if "%DOSDRIVE_T%" == "" goto nodrived
lredir del d: > nul
lredir del t: > nul
rem D is door path, T is temp 
lredir d: linux\fs%DOSDRIVE_D%
lredir t: linux\fs%DOSDRIVE_T%
goto good
:nodrived
echo "missing DOSDRIVE_(D|T)"
exitemu
:good
rem uncomment to load another bitmap font
rem loadhi display con=(vga,437,2)
rem mode con codepage prepare=((850) z:\cpi\ega.cpx)
mode con codepage select 437
chcp 437
lredir e: linux\fs/media/cdrom c
unix -s DOSEMU_VERSION
echo "Welcome to wwiv dosemu %DOSEMU_VERSION%!"
unix -e

  • config.sys (no change from the default)