Author Topic: The DNDBBS Project  (Read 2932 times)

Offline Azathoth

  • Contributor
  • Posts: 32
  • Cthulhu Master
Re: The DNDBBS Project
« Reply #15 on: August 05, 2018, 12:04:15 AM »
Since, Wolfenstein/Doom I/Doom II work in DOSemu, could I ask a favor of you, John,
and see if DNDBBS works in DOSemu? Thank you, Az.
Links to my MUD: (strictly 16-bit); AKA XP/Linux DOSemu:

Dndbbs executables http://www.filegate.net/pdn/pdnbasic/dnd50a1e.zip
Dndbbs source http://www.filegate.net/pdn/pdnbasic/dnd50a1s.zip
Dndbbs upgrade http://www.filegate.net/pdn/pdnbasic/dnd50a1u.zip

Offline John

  • Forum Support / SB Dev
  • Posts: 2411
    • ScriptBasic Open Source Project
Re: The DNDBBS Project
« Reply #16 on: August 05, 2018, 02:16:54 AM »
Seems to be working. I had to increase file handle in config.sys to 100 to get it to run.


Offline Azathoth

  • Contributor
  • Posts: 32
  • Cthulhu Master
Re: The DNDBBS Project
« Reply #17 on: August 05, 2018, 02:35:21 AM »
So it does work in DOSemu!? And, yes, I usually use FILES=255..

I'm quite surprised.. Thanks John!

Az.

WOW! even my dndcnfg and dndedit work as well!?
« Last Edit: August 05, 2018, 08:18:26 PM by Azathoth »
Links to my MUD: (strictly 16-bit); AKA XP/Linux DOSemu:

Dndbbs executables http://www.filegate.net/pdn/pdnbasic/dnd50a1e.zip
Dndbbs source http://www.filegate.net/pdn/pdnbasic/dnd50a1s.zip
Dndbbs upgrade http://www.filegate.net/pdn/pdnbasic/dnd50a1u.zip

Offline John

  • Forum Support / SB Dev
  • Posts: 2411
    • ScriptBasic Open Source Project
Re: The DNDBBS Project
« Reply #18 on: August 05, 2018, 03:28:23 AM »
Here is your favorite DOS compiler. VBDOS.

MUX which is like DOOM.
Quote
Very similar to the gameplay in games like DOOM or Quake. The basic idea is to kill everyone who moves, including those who are smart enough to stay still. Probably the best 3D-shooter ever made with QBasic!

To complete a level, find a red button (mounted on the dark olive techy looking wall, with EXIT reading atop) and press space. You will see Quake-styled exit scene and after you press space once again, you will be directed to the next level. Some levels have buttons in them. An unactivated button can be noticed by glowing red light (with chromed bevelling, shaped as hexagon or triangle) on the wall. If you walk near the button and press space the button will be activated and eventually become green. One wall tile is moved away from your route revealing new passages. Some buttons are necessary to complete levels, some reveal secret areas. All buttons can be found on orange factory walls, gray metal walls or white tech walls. Buttons are often in well-lit areas, sometimes heavily guarded. Some levels have elevators which transport you from your floor to another. They can be found easily because of their distinct looking white pair of doors and metallic interior with elevator handrails and KONE register plates. Elevators can be activated very similar way to buttons. Once you have pressed the button, the doors will close and you will be in the elevator for about seventeen seconds. (If you have music toggled, the elevator travel music will play...) Some elevators are necessary to use, but most transport you to the area that contains vast amount of bonus items. Be aware that the facility has vast amount of barrels and containers that contain irradiated and volatile materials such as hydrogen fuel used to run facility's power cells. If any of these containers get hit, there's a risk that they may combust. You can use them against your enemies, or you might be blown up yourself.
« Last Edit: August 05, 2018, 03:31:07 AM by John »

Offline Azathoth

  • Contributor
  • Posts: 32
  • Cthulhu Master
Re: The DNDBBS Project
« Reply #19 on: August 05, 2018, 08:35:28 PM »
I'm surprised because dndbbs does alot of wierd things, like:

Inline assembly to trap and ignore control-break and print-screen,
Port access to 8250 uart for modem i/o,
PSP JFT offset to command tail for increased file handles,
Support for share.exe (which dosbox does not)..

Az.

Just out of the sake of curiosity here is the PSP JFT file handle increase function description:

Code: [Select]
REM PspTrick.txt describes increasing file handles.

----------2167-------------------------------
INT 21 - DOS 3.3+ - SET HANDLE COUNT
    AH = 67h
    BX = size of new file handle table for process

The above bios routine is normally used by your program to request more file
handles. Since Dos or windows will not always be able to give you more than
20 handles using interrupt &h21, the basic routine described below will.

Sub Increase.Files
 On Local Error Resume Next
 Close
 InregsX.AX=&H6200
 Call InterruptX(&H21,InregsX,OutregsX)
 PSP.Segment=OutregsX.BX
 Def Seg=PSP.Segment
 Command.Line=&H80
 Command.Tail=Command.Line+60 ' tail end to copy handles to
 For Var=1 To 54 ' 50 file handles
    Poke Command.Tail+Var-1,&HFF
 Next
 For Var=1 To 4 ' DOS handles
    File.Handle=Peek(&H18+Var-1)
    Poke Command.Tail+Var-1,File.Handle
 Next
 Poke &H32,54
 Poke &H34,Command.Tail
 Def Seg
End Sub

Call this routine to give your basic program more file handles than can be
allowed by dos or windows. The first step for requesting more file handles is
to call interrupt &h62 for the segment of the psp. In the psp are located the
current maximum number of handles in the job file table, the address to the
file handles, and the file handles themselves. Since the pointer to the file
handles contains only a offset and not a segment, there must be some memory
area in the psp to store the extended file handles to be assigned. And since
there is no way of knowing what the memory areas are surrounding the psp, the
tail end of where the command line is located is used for the pointer of the
file handles, and the file handles are copied there. An offset 60 bytes from
where the command line is stored is used. This is reasonable if your command
line is less than 60 characters. Next, the default file handles which are
closed are copied to the offset pointed to the command tail plus 50 files,
with &hff indicating the handles. Then, the current file handles are copied
to the command tail. And finally, the psp jtf updated with the new maximum of
file handles, and the pointer to the offset to the command tail containing the
new jft memory area.

After this routine is called by your program when it first starts, the psp is
the resident memory area containing the new jft. Notice however that the
routine must be called each time your program is chained to, and the close
statement must be used before increasing the psp. If you do not use the basic
chain statement, you should not have to reassign the psp parameters. Note also
that since the file handles are more than interrupt &h21 would allow, the
bios will close all file handles with the close statement anyway by counting
the file handles assigned. And finally note that the maximum number of file
handles assigned are added to the number of file handles opened by other
processes in windows, and are used by the global windows handles count.

-end-

« Last Edit: August 05, 2018, 11:01:33 PM by Azathoth »
Links to my MUD: (strictly 16-bit); AKA XP/Linux DOSemu:

Dndbbs executables http://www.filegate.net/pdn/pdnbasic/dnd50a1e.zip
Dndbbs source http://www.filegate.net/pdn/pdnbasic/dnd50a1s.zip
Dndbbs upgrade http://www.filegate.net/pdn/pdnbasic/dnd50a1u.zip

Offline John

  • Forum Support / SB Dev
  • Posts: 2411
    • ScriptBasic Open Source Project
Re: The DNDBBS Project
« Reply #20 on: August 05, 2018, 09:30:00 PM »
I've been very happy with having a real DOS like environment available to me as a Linux app.

Offline Azathoth

  • Contributor
  • Posts: 32
  • Cthulhu Master
Re: The DNDBBS Project
« Reply #21 on: August 05, 2018, 11:04:37 PM »
@john: Have there been ANY dos-like programs that would not run in Linux dosemu??

Az.
Links to my MUD: (strictly 16-bit); AKA XP/Linux DOSemu:

Dndbbs executables http://www.filegate.net/pdn/pdnbasic/dnd50a1e.zip
Dndbbs source http://www.filegate.net/pdn/pdnbasic/dnd50a1s.zip
Dndbbs upgrade http://www.filegate.net/pdn/pdnbasic/dnd50a1u.zip

Offline John

  • Forum Support / SB Dev
  • Posts: 2411
    • ScriptBasic Open Source Project
Re: The DNDBBS Project
« Reply #22 on: August 06, 2018, 12:00:03 AM »
I haven't discovered anything that wouldn't run under dosemu.

BTW

DOSEMU uses UNIX locks to emulate the behaviour of DOS SHARE.EXE
« Last Edit: August 06, 2018, 12:06:32 AM by John »

Offline Azathoth

  • Contributor
  • Posts: 32
  • Cthulhu Master
Re: The DNDBBS Project
« Reply #23 on: August 06, 2018, 12:29:10 AM »
So if Linux Dosemu runs Share, does it load Ansi.sys, or BNU/X00 comm device drivers as well??

Az.
Links to my MUD: (strictly 16-bit); AKA XP/Linux DOSemu:

Dndbbs executables http://www.filegate.net/pdn/pdnbasic/dnd50a1e.zip
Dndbbs source http://www.filegate.net/pdn/pdnbasic/dnd50a1s.zip
Dndbbs upgrade http://www.filegate.net/pdn/pdnbasic/dnd50a1u.zip

Offline John

  • Forum Support / SB Dev
  • Posts: 2411
    • ScriptBasic Open Source Project
Re: The DNDBBS Project
« Reply #24 on: August 06, 2018, 02:21:49 AM »
The Linux console and xterm windows all support ANSI escape sequences,

Quote
BTW, I contributed my NANSI.SYS driver to the FreeDOS project last year.
Dunno if that gets used under DOSEMU or not... but it was fairly
compatible with the ANSI.SYS that shipped with MS-DOS 3.x.
- Dan

Offline John

  • Forum Support / SB Dev
  • Posts: 2411
    • ScriptBasic Open Source Project
Re: The DNDBBS Project
« Reply #25 on: August 06, 2018, 01:19:14 PM »
You might want to consider porting DNDBBS to Script BASIC as a web app.

Offline John

  • Forum Support / SB Dev
  • Posts: 2411
    • ScriptBasic Open Source Project
Re: The DNDBBS Project
« Reply #26 on: August 06, 2018, 05:38:22 PM »
Does the major.minor syntax for function names have a purpose in VBDOS or is it just your naming convention?

Offline Azathoth

  • Contributor
  • Posts: 32
  • Cthulhu Master
Re: The DNDBBS Project
« Reply #27 on: August 06, 2018, 06:18:11 PM »
No purpose or standard, I made up my own versioning convention:

  v5.0a r1.0a

is the version/release.

I researched versioning on Wikipedia and found no set standard (maybe ansi or ieee should make one)..

Az.
Links to my MUD: (strictly 16-bit); AKA XP/Linux DOSemu:

Dndbbs executables http://www.filegate.net/pdn/pdnbasic/dnd50a1e.zip
Dndbbs source http://www.filegate.net/pdn/pdnbasic/dnd50a1s.zip
Dndbbs upgrade http://www.filegate.net/pdn/pdnbasic/dnd50a1u.zip

Offline John

  • Forum Support / SB Dev
  • Posts: 2411
    • ScriptBasic Open Source Project
Re: The DNDBBS Project
« Reply #28 on: August 06, 2018, 06:31:52 PM »
I'm talking about your function / variable naming convention. Script BASIC doesn't support the period in the name.

Offline Azathoth

  • Contributor
  • Posts: 32
  • Cthulhu Master
Re: The DNDBBS Project
« Reply #29 on: August 06, 2018, 06:36:19 PM »
Oh, ok,

in QB45/PDS71/VBDOS any variable can contain a period (dot), like:

  Variable.Name = -1

however, the dot also appears in user defined types, like:

Type Struc
  A as Integer
End Type
Dim Users As Struc
Users.A = -1

does that help?

Az.
Links to my MUD: (strictly 16-bit); AKA XP/Linux DOSemu:

Dndbbs executables http://www.filegate.net/pdn/pdnbasic/dnd50a1e.zip
Dndbbs source http://www.filegate.net/pdn/pdnbasic/dnd50a1s.zip
Dndbbs upgrade http://www.filegate.net/pdn/pdnbasic/dnd50a1u.zip