fsxNet Wiki

BBS Development & Resources

User Tools

Site Tools


doors:tutorials:dos:dosonpi

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
doors:tutorials:dos:dosonpi [2021/01/25 07:52]
avon
doors:tutorials:dos:dosonpi [2021/01/25 07:58]
avon
Line 31: Line 31:
  
 === Caveats === === Caveats ===
- 
- 
  
 The Raspberry Pi B+ is the least robust device I've attemted this with The Raspberry Pi B+ is the least robust device I've attemted this with
Line 45: Line 43:
 The ODROID XU3 is a much more robust device and the speed delay seems The ODROID XU3 is a much more robust device and the speed delay seems
 almost unnoticable. almost unnoticable.
- 
  
 === Required packages === === Required packages ===
- 
  
   qemu: apt-get install qemu   qemu: apt-get install qemu
Line 56: Line 52:
  
 === Create freedos image === === Create freedos image ===
- 
  
 We will be creating a FreeDOS image to be used in our VM. We will be creating a FreeDOS image to be used in our VM.
Line 137: Line 132:
   alias auto=edit %0   alias auto=edit %0
   CALL D:\RUN.BAT   CALL D:\RUN.BAT
----------------------------------------- ​+  ​---------------------------------------- ​
  
 Note how the batch file ends with CALL D:​\RUN.BAT. ​ RUN.BAT is the  Note how the batch file ends with CALL D:​\RUN.BAT. ​ RUN.BAT is the 
Line 144: Line 139:
  
 === Setting up the doorgames === === Setting up the doorgames ===
- 
  
 You will want to run the DOS VM initially, to setup your doorgames. ​ To do You will want to run the DOS VM initially, to setup your doorgames. ​ To do
 that, you just run qemu normally, but with the mounted local file system. that, you just run qemu normally, but with the mounted local file system.
 I've written a simple batch file that will load the VM. I've written a simple batch file that will load the VM.
- +  ​ 
----------------------------------------- +  ---------------------------------------- 
-#!/bin/sh +  #!/bin/sh 
- +   
-rm /​home/​bbs/​temp${NODE}/​run.bat +  rm /​home/​bbs/​temp${NODE}/​run.bat 
- +   
-qemu-system-i386 \ +  qemu-system-i386 \ 
--localtime \ +  -localtime \ 
-/​home/​bbs/​doors/​qemu/​freedos.img \ +  /​home/​bbs/​doors/​qemu/​freedos.img \ 
--boot c \ +  -boot c \ 
--hdb fat:/​home/​bbs \ +  -hdb fat:/​home/​bbs \ 
--m 1024  +  -m 1024  
-----------------------------------------+  ----------------------------------------
  
 If you are running this remotely, from a terminal like putty, you can add If you are running this remotely, from a terminal like putty, you can add
 the -curses flag.  That will give you an interactive shell into the VM. the -curses flag.  That will give you an interactive shell into the VM.
- 
  
 The method used for running the VM will mount the /home/bbs directory as  The method used for running the VM will mount the /home/bbs directory as 
Line 174: Line 167:
 it will be located at D:​\DOORS\LORD it will be located at D:​\DOORS\LORD
  
-The dropfile locations will also be on your D: drive. +  ​The dropfile locations will also be on your D: drive. 
-D:\TEMP +  D:\TEMP
- +
-or for node #2: +
-D:​\TEMP2 ​+
   ​   ​
 +  or for node #2:
 +  D:​\TEMP2 ​
 +  ​
 +=== The working DOORS.SH script ===
  
-The working DOORS.SH script: +This is the script as I have it working for me:
-    ​This is the script as I have it working for me:+
   ​   ​
-    ​------------------------------------ +  ​------------------------------------ 
-    #!/bin/sh+  #!/bin/sh
   ​   ​
   ## Pass the parameters for the door and the node.   ## Pass the parameters for the door and the node.
Line 205: Line 198:
       ## Operation OverKill II       ## Operation OverKill II
       OOII)        OOII) 
-           echo "@echo off" > ${gobat} +         echo "@echo off" > ${gobat} 
-           ​echo "​D:"​ >> ${gobat} +         ​echo "​D:"​ >> ${gobat} 
-           ​echo "CD \DOORS\OO"​ >> ${gobat} +         ​echo "CD \DOORS\OO"​ >> ${gobat} 
-           ​### Use the CALL command when calling a door batch file. +         ​### Use the CALL command when calling a door batch file. 
-           ​### If not used, then the door batch file will not return +         ​### If not used, then the door batch file will not return 
-           ​### to the RUN.BAT script to complete execution. ​ If the  +         ​### to the RUN.BAT script to complete execution. ​ If the  
-           ​### RUN.BAT script does not complete execution, then it will +         ​### RUN.BAT script does not complete execution, then it will 
-           ​### not shut down the VM.  It will then just go to a dos +         ​### not shut down the VM.  It will then just go to a dos 
-           ​### prompt and the user will not see it, and will think that +         ​### prompt and the user will not see it, and will think that 
-           ​### the game is hung. +         ​### the game is hung. 
-           ​echo "CALL OOIIDOOR.BAT ${NODE}"​ >> ${gobat}+         ​echo "CALL OOIIDOOR.BAT ${NODE}"​ >> ${gobat}
          ;;          ;;
     ## Legend of the Red Dragon     ## Legend of the Red Dragon
Line 256: Line 249:
          ;;          ;;
     DOS)     DOS)
-;; +  ​;; 
-esac +  esac 
-## At the end of run.bat, we add this line to gracefully shutdown the VM. +  ## At the end of run.bat, we add this line to gracefully shutdown the VM. 
-## This will return the user back to the BBS. +  ## This will return the user back to the BBS. 
-echo "​C:​\FDOS\BIN\FDAPM POWEROFF"​ >> ${gobat} +  echo "​C:​\FDOS\BIN\FDAPM POWEROFF"​ >> ${gobat} 
-## The batch file must be in dos format, or it will not run properly. +  ## The batch file must be in dos format, or it will not run properly. 
-todos ${gobat} +  todos ${gobat} 
- +   
- +   
-### The main QEMU call. +  ### The main QEMU call. 
-### 1) -localtime to pass the host clock to the VM +  ### 1) -localtime to pass the host clock to the VM 
-### 2) tell it to use the freedos.img +  ### 2) tell it to use the freedos.img 
-### 3) tell it to boot to the C: drive +  ### 3) tell it to boot to the C: drive 
-### 4) Turn off all displays. Otherwise it will give errors or skewed displays +  ### 4) Turn off all displays. Otherwise it will give errors or skewed displays 
-### 5) How many megabytes of memory to allow for the BM +  ### 5) How many megabytes of memory to allow for the BM 
-### 6) Define a serial modem connection and assign a computer port +  ### 6) Define a serial modem connection and assign a computer port 
-### 7) Mount the main BBS directory in RW mode +  ### 7) Mount the main BBS directory in RW mode 
-### The qemu call is loaded into the background. ​ We do this so that we can  +  ### The qemu call is loaded into the background. ​ We do this so that we can  
-### spawn a concurrent socat process. +  ### spawn a concurrent socat process. 
-qemu-system-i386 \ +  qemu-system-i386 \ 
--localtime \ +  -localtime \ 
-/​home/​bbs/​doors/​qemu/​freedos.img \ +  /​home/​bbs/​doors/​qemu/​freedos.img \ 
--boot c \ +  -boot c \ 
--display none \ +  -display none \ 
--m 256 \ +  -m 256 \ 
--serial telnet::​${portnum},​server,​nowait,​nodelay \ +  -serial telnet::​${portnum},​server,​nowait,​nodelay \ 
--hdb fat:​rw:/​home/​bbs > /dev/null 2>&1 & +  -hdb fat:​rw:/​home/​bbs > /dev/null 2>&1 & 
- +   
 +  
   ### Inform the user that it will take several seconds before the game   ### Inform the user that it will take several seconds before the game
   ### loads up.   ### loads up.
Line 302: Line 295:
   ------------------------------------   ------------------------------------
  
-Using the script:+=== Using the script ​===
  
 I use and have developed this method for Mystic BBS.  You will need to make I use and have developed this method for Mystic BBS.  You will need to make
Line 319: Line 312:
 The parameters for the script are: The parameters for the script are:
  
-doors.sh DOOR NODE# /DOS+  ​doors.sh DOOR NODE# /DOS
  
 The /DOS switch is used to create a DOS version of the drop file.  That way The /DOS switch is used to create a DOS version of the drop file.  That way
Line 329: Line 322:
   Data: /​home/​bbs/​doors/​qemu/​doors.sh LORD %3 /DOS   Data: /​home/​bbs/​doors/​qemu/​doors.sh LORD %3 /DOS
  
-Conclusion:  ​+=== Conclusion ​===
  
 That's all there is to it.  Your milage may vary. That's all there is to it.  Your milage may vary.
-Darryl Perry