AllBASIC Forum

BASIC Developer & Support Resources => Toolbox => Topic started by: Azathoth on July 22, 2018, 09:50:52 PM

Title: The DNDBBS Project
Post by: Azathoth on July 22, 2018, 09:50:52 PM
Quote
    BTW  None of the above links work for me.

The files are actually there; filegate is simply taking too long to reply causing a connection timeout..

If you want, I can upload the files on this site, however I don't know what category a DND game/BBS communication game it would be in. Besides the main .zip contains many .exe files and is 18MB. Your call >:(

Az.

Whatis "dndbbs"?

The dndbbs project was originally started in 1980 as a serial port bbs communications project as a spinoff of a door to rbbs.
It's main release was the v2 series in 1990, and later reissued in 2015 as the v5 series after 25 years of work.

The dndbbs supports 64 ports, multinode filesharing, and 127 possible nodes. It works in dos and cmd only on xp though.
History: dndbbs was initially written in qb45, later extended to pds71 and finally vb10 pro (the last greatest ms dos compiler).
Title: Re: The DNDBBS Project
Post by: Azathoth on July 22, 2018, 10:25:41 PM
Unfortunately, even I wanted to upload it, your maximum limit per upload is 10MB -- could you increase this limit??

Thanks, Az.
Title: Re: The DNDBBS Project
Post by: John on July 23, 2018, 12:19:43 AM
I'll see what I can do about increasing the attachment size.

You may want to break it up into smaller zip files for now. I think you can have up to 5 attachments per post.

DNDBBS post by you (http://ifdb.tads.org/viewgame?id=vvxrgb7kscv7u6r8)
Title: Re: The DNDBBS Project
Post by: John on July 23, 2018, 06:18:19 PM
I have increased the attachment size if you want to give it another try.

I might need to make a change to the PHP settings but lets see if what I did helps.

John

PS  Your links in the last post now seem to work. Thanks!
Title: Re: The DNDBBS Project
Post by: Azathoth on July 23, 2018, 07:17:23 PM
I tried to attach the main executables (dnd50a1e.zip) twice and after several minutes it reset to a blank new post page.

Az.
Title: Re: The DNDBBS Project
Post by: John on July 23, 2018, 07:40:10 PM
It looks like I'll have to modify the PHP settings.  :(
Title: Re: The DNDBBS Project
Post by: John on July 24, 2018, 03:11:12 PM
I have increased the PHP max upload size to 20 megabytes. Can you give it another try?
Title: Re: The DNDBBS Project
Post by: Azathoth on July 24, 2018, 04:42:04 PM
Nope, still did the same thing.

Az.
Title: Re: The DNDBBS Project
Post by: John on July 24, 2018, 06:19:30 PM
It may be a PHP/SMF limitation.

It would be best to put anything over 5 meg on a file sharing service. Your links now work so we have something going to get your code.
Title: Re: The DNDBBS Project
Post by: Azathoth on July 24, 2018, 06:37:18 PM
Ok, I've had this problem with other sites using SMF so I assume it's a problem with the host not the filesize.

Besides if the files at filegate work it doesn't matter.

Az.
Title: Re: The DNDBBS Project
Post by: John on July 24, 2018, 07:29:01 PM
Thanks for your testing. Sorry it didn't work out.
Title: Re: The DNDBBS Project
Post by: eoredson on August 03, 2018, 05:59:18 AM
@john: Does Wine run MS-DOS well or at all? I have some 16-bit windows projects I would like to test on Linux..

Erik.
Title: Re: The DNDBBS Project
Post by: John on August 03, 2018, 08:05:12 AM
I use dosemu for DOS 16 bit under Linux.

I use DOSBox under Windows and Android.

Attached is QB 4.5  and QB 7.1 running in dosemu.

I have had DOOM II run as well.
Title: Re: The DNDBBS Project
Post by: Azathoth on August 04, 2018, 10:44:02 PM
Since I don't have a Linux box, I have to ask the obvious:

has anyone run DNDBBS in DOSemu?

Az.
Title: Re: The DNDBBS Project
Post by: John on August 04, 2018, 10:48:53 PM
There isn't anything I haven't been able run on dosemu.
Title: Re: The DNDBBS Project
Post by: Azathoth 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.
Title: Re: The DNDBBS Project
Post by: John 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.

Title: Re: The DNDBBS Project
Post by: Azathoth 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!?
Title: Re: The DNDBBS Project
Post by: John 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.
Title: Re: The DNDBBS Project
Post by: Azathoth 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-

Title: Re: The DNDBBS Project
Post by: John 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.
Title: Re: The DNDBBS Project
Post by: Azathoth on August 05, 2018, 11:04:37 PM
@john: Have there been ANY dos-like programs that would not run in Linux dosemu??

Az.
Title: Re: The DNDBBS Project
Post by: John 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
Title: Re: The DNDBBS Project
Post by: Azathoth 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.
Title: Re: The DNDBBS Project
Post by: John 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
Title: Re: The DNDBBS Project
Post by: John on August 06, 2018, 01:19:14 PM
You might want to consider porting DNDBBS to Script BASIC as a web app.
Title: Re: The DNDBBS Project
Post by: John 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?
Title: Re: The DNDBBS Project
Post by: Azathoth 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.
Title: Re: The DNDBBS Project
Post by: John 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.
Title: Re: The DNDBBS Project
Post by: Azathoth 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.
Title: Re: The DNDBBS Project
Post by: John on August 06, 2018, 06:42:47 PM
If a conversion to a web app was considered, the period could be replaced with an underscore.
Title: Re: The DNDBBS Project
Post by: Azathoth on August 06, 2018, 06:46:14 PM
Understood.. I'm aware most C dialects use underscore..
Title: Re: The DNDBBS Project
Post by: John on August 06, 2018, 07:03:44 PM
I'm not sure why Peter Verhas made the period a reserve symbol. Maybe he had future plans.

I have been wanting to remove the period from the reserve symbol list and gi e it wa try.
Title: Re: The DNDBBS Project
Post by: Azathoth on August 06, 2018, 07:26:33 PM
If you are thinking of running dndbbs in anything other than VBpro, Good Luck (you'll need it);

I have considered for awhile about converting it to qb64 for 32-bit support, but it has 300,000+ lines of code,
and would take years to translate (if at all)..

Az.
Title: Re: The DNDBBS Project
Post by: John on August 06, 2018, 07:33:29 PM
Sounds like a major investment of the past. I wouldn't consider porting it to another desktop language and you should take it to the web.

You should at least convert the modem stuff to TCP sockets.
Title: Re: The DNDBBS Project
Post by: John on August 06, 2018, 07:53:28 PM
DOS Networking HOWTO (http://www.dendarii.co.uk/FAQs/dos-net.html)

Networking, DOSemu and taprouter (http://freedos.10956.n7.nabble.com/Networking-DOSemu-and-taprouter-td19498.html)
Title: Re: The DNDBBS Project
Post by: Azathoth on August 06, 2018, 08:04:32 PM
Well, since the v5 series was released in 2015 after the v2 series in 1990 (work started on 1980),
I really have no intention of spending anymore time on it concerning anything other than being a modem based system.

Az.
Title: Re: The DNDBBS Project
Post by: John on August 06, 2018, 08:09:18 PM
I can't even remember the last time I used a modem.
Title: Re: The DNDBBS Project
Post by: Azathoth on August 06, 2018, 08:20:52 PM
There's still a market out there for modems (56K), multi-modem racks, and multi-port serial cards..

I actually ran one in a resource center awhile back..

Az.
Title: Re: The DNDBBS Project
Post by: John on August 06, 2018, 08:34:43 PM
Maybe dosemu running DnDBBS will be the motivation you need to set up a Linux box.
Title: Re: The DNDBBS Project
Post by: Azathoth on August 06, 2018, 08:37:38 PM
It won't -- I still have XP.
Title: Re: The DNDBBS Project
Post by: John on August 06, 2018, 08:52:24 PM
Does XP run multiple copies of DnDBBS like dosemu can?

Title: Re: The DNDBBS Project
Post by: John on August 06, 2018, 08:54:46 PM
Can I run VBDOS on XP?
Title: Re: The DNDBBS Project
Post by: Azathoth on August 06, 2018, 08:58:43 PM
Yes, VBdos will run in XP, and,

yes, multiple cmd.exe windows can run in XP if
dndbbs called with node on command line.
Title: Re: The DNDBBS Project
Post by: John on August 06, 2018, 10:02:01 PM
The way it looks to me is you're still running DnDBBS on non-supported OSs that may break with no way to resolve it. Time is your enemy.

For the little DOS / QBasic programming I do any more, dosemu is just another resource on my Linux development desktop.
Title: Re: The DNDBBS Project
Post by: John on August 06, 2018, 10:41:27 PM
With XP, pressing F8 at boot time puts you into Safe Mode. Aka DOS Mode. I didn't think you could run DOS in XP Windows mode. I may be wrong.
Title: Re: The DNDBBS Project
Post by: Azathoth on August 07, 2018, 05:14:13 PM
I'm not running XP mode in Windows, I am running XP itself with no problems.

And I run cmd.exe which is a DOS command box multiple times to get each node of dndbbs to talk to each other.

Az.

(that is : i didn't say i had a problem running it in XP -- it works quite well in XP)
Title: Re: The DNDBBS Project
Post by: John on August 07, 2018, 05:54:32 PM
Curious, do you still have an active DnDBBS running where folks sign in using a modem?

Quote
Windows XP SP2 will no longer install 16-bit programs: nothing happens when I double-click the relevant setup.exe file. Sometimes at close down I get a message saying "the Win 16 subsystem may be unstable". Iain Main

Windows XP is a 32-bit operating system and runs 16-bit programs via a bit of a bodge known as Windows NT Virtual DOS Machine support (NTVDM).
Title: Re: The DNDBBS Project
Post by: Azathoth on August 07, 2018, 06:05:31 PM
Quote
Curious, do you still have an active DnDBBS running where folks sign in using a modem?

YES! That's the point behind dndbbs!
Title: Re: The DNDBBS Project
Post by: John on August 07, 2018, 06:11:20 PM
Thanks for the stroll of our past DOS days. And I thought people were accusing me of being nostalgic hanging on to Script BASIC.
Title: Re: The DNDBBS Project
Post by: Azathoth on August 07, 2018, 06:21:45 PM
Assuming you've unpacked dndbbs in a root directory (c:\dndbbs50) and before we go any further,
please read Sysop.doc for install and usage information. Thanks, Az.

(for example, if you start dndbbs /3 it will access com3:)
Title: Re: The DNDBBS Project
Post by: John on August 07, 2018, 09:50:05 PM
Quote
if you start dndbbs /3 it will access com3

I don't have a modem but this is what showed up using dndbbs /1. (it said node 3 was already active ?)
Title: Re: The DNDBBS Project
Post by: Azathoth on August 07, 2018, 10:59:40 PM
If you start dndbbs/1/lc it will load node 1 in local mode,

if you start dndbbs /1 without a modem it will show status-waiting because the modem init/reset will fail.
Title: Re: The DNDBBS Project
Post by: John on August 08, 2018, 01:28:33 PM
Curious again.. How many users do you still have using your DnDBBS?
Title: Re: The DNDBBS Project
Post by: Azathoth on August 08, 2018, 05:29:50 PM
Technically, mine is currently offline. I am waiting for permission to install a second line.

Az.

(dndbbs supports 64 ports and 127 nodes).
Title: Re: The DNDBBS Project
Post by: Azathoth on August 11, 2018, 08:41:40 PM
What I find curious is that Linux DOSemu will run an MS-DOS program better than Windows 7+ will in a DOSbox!?

Az.
Title: Re: The DNDBBS Project
Post by: John on August 11, 2018, 09:50:03 PM
The is no doubts in my mind that Linux and DOSemu is your best solution.
Title: Re: The DNDBBS Project
Post by: Azathoth on August 13, 2018, 08:15:42 PM
I noticed in your splash screen of dndbbs at:

the ansi-no and share-no appear..

Could you try to run Share.exe??

Az.
Title: Re: The DNDBBS Project
Post by: John on August 13, 2018, 08:49:09 PM
Seems to work.


Title: Re: The DNDBBS Project
Post by: Azathoth on August 13, 2018, 08:52:16 PM
Ok, thanks.
Title: Re: The DNDBBS Project
Post by: John on August 13, 2018, 08:59:10 PM
For some reason DnDBBS isn't seeing the doesemu SHARE. I tried run the BBS after installing SHARE and your board still says that share isn't enabled..

Title: Re: The DNDBBS Project
Post by: Azathoth on August 18, 2018, 08:13:06 PM
I think (again) you can force share in start1.cfg but I'm not sure if it works..

Az.

(the reason being because the files should be locked before a write to avoid collisions between multi-nodes)
Title: Re: The DNDBBS Project
Post by: John on August 18, 2018, 09:31:44 PM
My guess is DnDBBS isn't detecting the DOSemu SHARE which would mean some investigative debugging on your part. It may be something simple that requires adding some conditional code to the source.



Title: Re: The DNDBBS Project
Post by: Azathoth on August 18, 2018, 09:52:20 PM
I am using the following code to detect share:

Code: [Select]
InregsX.AX = &H1000
CALL INTERRUPTX(&H2F, InregsX, OutregsX)
IF (OutregsX.AX AND &HFF) = &HFF THEN
    Share.Installed = True
ELSE
    Share.Installed = False
END IF

Do you know of an easier way to detect share?
Title: Re: The DNDBBS Project
Post by: John on August 19, 2018, 09:39:59 AM
You could shell  to DOS and trying running SHARE.EXE and if its already loaded it will say so. Not rocket science but works.
Title: Re: The DNDBBS Project
Post by: Azathoth on August 19, 2018, 09:35:13 PM
Quote
You could shell  to DOS and trying running SHARE.EXE

The only problem with that is share returns a blank line!?

Az.
Title: Re: The DNDBBS Project
Post by: John on August 19, 2018, 10:46:29 PM
It has been too long since I have done any  programming under DOS. Maybe one of the other senior members can offer some help. My advice is getting a Linux setup going so you can test DnDBBS yourself.