AllBASIC Forum
BASIC Developer & Support Resources => Toolbox => Topic started by: Azathoth on July 22, 2018, 09:50:52 PM
-
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).
-
Unfortunately, even I wanted to upload it, your maximum limit per upload is 10MB -- could you increase this limit??
Thanks, Az.
-
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)
-
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!
-
I tried to attach the main executables (dnd50a1e.zip) twice and after several minutes it reset to a blank new post page.
Az.
-
It looks like I'll have to modify the PHP settings. :(
-
I have increased the PHP max upload size to 20 megabytes. Can you give it another try?
-
Nope, still did the same thing.
Az.
-
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.
-
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.
-
Thanks for your testing. Sorry it didn't work out.
-
@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.
-
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.
-
Since I don't have a Linux box, I have to ask the obvious:
has anyone run DNDBBS in DOSemu?
Az.
-
There isn't anything I haven't been able run on dosemu.
-
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.
-
Seems to be working. I had to increase file handle in config.sys to 100 to get it to run.
-
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!?
-
Here is your favorite DOS compiler. VBDOS.
MUX which is like DOOM.
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.
-
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:
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-
-
I've been very happy with having a real DOS like environment available to me as a Linux app.
-
@john: Have there been ANY dos-like programs that would not run in Linux dosemu??
Az.
-
I haven't discovered anything that wouldn't run under dosemu.
BTW
DOSEMU uses UNIX locks to emulate the behaviour of DOS SHARE.EXE
-
So if Linux Dosemu runs Share, does it load Ansi.sys, or BNU/X00 comm device drivers as well??
Az.
-
The Linux console and xterm windows all support ANSI escape sequences,
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
-
You might want to consider porting DNDBBS to Script BASIC as a web app.
-
Does the major.minor syntax for function names have a purpose in VBDOS or is it just your naming convention?
-
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.
-
I'm talking about your function / variable naming convention. Script BASIC doesn't support the period in the name.
-
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.
-
If a conversion to a web app was considered, the period could be replaced with an underscore.
-
Understood.. I'm aware most C dialects use underscore..
-
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.
-
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.
-
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.
-
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)
-
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.
-
I can't even remember the last time I used a modem.
-
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.
-
Maybe dosemu running DnDBBS will be the motivation you need to set up a Linux box.
-
It won't -- I still have XP.
-
Does XP run multiple copies of DnDBBS like dosemu can?
-
Can I run VBDOS on XP?
-
Yes, VBdos will run in XP, and,
yes, multiple cmd.exe windows can run in XP if
dndbbs called with node on command line.
-
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.
-
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.
-
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)
-
Curious, do you still have an active DnDBBS running where folks sign in using a modem?
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).
-
Curious, do you still have an active DnDBBS running where folks sign in using a modem?
YES! That's the point behind dndbbs!
-
Thanks for the stroll of our past DOS days. And I thought people were accusing me of being nostalgic hanging on to Script BASIC.
-
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:)
-
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 ?)
-
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.
-
Curious again.. How many users do you still have using your DnDBBS?
-
Technically, mine is currently offline. I am waiting for permission to install a second line.
Az.
(dndbbs supports 64 ports and 127 nodes).
-
What I find curious is that Linux DOSemu will run an MS-DOS program better than Windows 7+ will in a DOSbox!?
Az.
-
The is no doubts in my mind that Linux and DOSemu is your best solution.
-
I noticed in your splash screen of dndbbs at:
the ansi-no and share-no appear..
Could you try to run Share.exe??
Az.
-
Seems to work.
-
Ok, thanks.
-
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..
-
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)
-
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.
-
I am using the following code to detect share:
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?
-
You could shell to DOS and trying running SHARE.EXE and if its already loaded it will say so. Not rocket science but works.
-
You could shell to DOS and trying running SHARE.EXE
The only problem with that is share returns a blank line!?
Az.
-
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.