This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
doors:tutorials:dos:dosonpi [2021/01/25 07:48] avon |
doors:tutorials:dos:dosonpi [2021/01/25 07:56] avon |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | == Run DOS BBS DoorGames on the Raspberry Pi == | + | ===== Run DOS BBS DoorGames on the Raspberry Pi ===== |
- | Article by Darryl Perry (2016) | + | //Article by Darryl Perry (2016)// |
Line 11: | Line 11: | ||
that are specific to the package you wish to use. | that are specific to the package you wish to use. | ||
- | How does this work? | + | ====How does this work?==== |
We will be creating an emulated virtual DOS environment from which to run | We will be creating an emulated virtual DOS environment from which to run | ||
Line 30: | Line 30: | ||
3) ODROID XU3-Lite (hardkernel.com) | 3) ODROID XU3-Lite (hardkernel.com) | ||
- | 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 44: | Line 44: | ||
almost unnoticable. | almost unnoticable. | ||
+ | === Required packages === | ||
- | Required packages: | ||
qemu: apt-get install qemu | qemu: apt-get install qemu | ||
socat: apt-get install socat | socat: apt-get install socat | ||
Line 51: | Line 51: | ||
- | 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 66: | Line 66: | ||
larger than I need so you may be able to use something much smaller. | larger than I need so you may be able to use something much smaller. | ||
- | Configure 4DOS: | + | === Configure 4DOS === |
Once you have a working FreeDOS VM, you will need to configure the boot | Once you have a working FreeDOS VM, you will need to configure the boot | ||
Line 75: | Line 75: | ||
1) Create a mount point: | 1) Create a mount point: | ||
- | mkdir /mnt/freedos | + | mkdir /mnt/freedos |
2) mount the image | 2) mount the image | ||
- | sudo mount -t msdos -o loop,offset=32256 ./freedos.img /mnt/freedos | + | sudo mount -t msdos -o loop,offset=32256 ./freedos.img /mnt/freedos |
You can then cd to /mnt/freedos/ and edit your files. You can also use | You can then cd to /mnt/freedos/ and edit your files. You can also use | ||
Line 84: | Line 84: | ||
unmount the image before running the VM. | unmount the image before running the VM. | ||
- | sudo umount /mnt/freedos | + | sudo umount /mnt/freedos |
The default boot scripts are C:\FDCONFIG.SYS and C:\FDOS\FDAUTO.BAT. | The default boot scripts are C:\FDCONFIG.SYS and C:\FDOS\FDAUTO.BAT. | ||
Line 121: | Line 121: | ||
FDAPM APMDOS | FDAPM APMDOS | ||
LH SHARE | LH SHARE | ||
- | DOSLFN | + | DOSLFN |
MEM /C /N | MEM /C /N | ||
SET AUTOFILE=%0 | SET AUTOFILE=%0 | ||
Line 132: | 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 138: | Line 138: | ||
doors.sh script. | doors.sh script. | ||
- | 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 168: | 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: | + | or for node #2: |
- | D:\TEMP2 | + | 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: | + | |
| | ||
------------------------------------ | ------------------------------------ | ||
Line 199: | 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 |