Author Topic: Port Addressing / Hexadecimal offset  (Read 627 times)

blixel

  • Newbie
  • *
  • Posts: 1
    • View Profile
Port Addressing / Hexadecimal offset
« on: July 26, 2017, 06:41:08 PM »
Sorry for the long post, but this question is quite involved.

First some background

I've been on a quest (going on 6 years now) to get my old MBBS v5.31 working such that I can connect to it via the Internet, and have all 16 nodes working. Getting to my v5.31 MBBS from the Internet is something I succeeded in doing shortly after resurrecting my old software archive. However, getting more than 4 nodes working has turned into a multi-year problem that I've yet to solve.

The first question you are probably asking yourself is, "Why would I bother with v5.31? Why not just use v6.25?" The reason that I am using v5.31 and not v6.25 is for the simple fact that my old Forbidden Lands games were built for v5.31.

Many years ago, I talked to Dan about this and sent him all the files I had for FL1 and FL2, including the source code. Back at that time, I know that he got FL1 partially working under v6.25. In looking through the forum here, it appears as though it now fully works on v6.25. But regarding Forbidden Lands 2, while it shipped with all the source code for the game, it also came with a binary library for which no source code was provided. When I talked to Dan about this years ago, it was my understanding that the lack of source code meant that porting FL2 to v6.25 was likely impossible.

My own memories for the MBBS days revolve around these games and I am desperately interested in getting them working with all 16 nodes. (Note: I say 16 nodes because the license I have for v5.31 is limited to 16 nodes and I don't know of any way to extend that. Perhaps the GSBL binary lib can be hacked to extend it to 256 nodes?)

So this is why I'm trying to work with v5.31 as opposed to v6.25, which would otherwise greatly simplify my life.

Now on with the question

In the hardware configuration for v6.25, there exists an option to change to the hexadecimal offset between channels.



No such option exists in the configuration for v5.31. My assumption is that the hexadecimal offset is hard-coded as 400 somewhere, probably the binary GSBL lib file. The problem I'm running into is this. Multi-port serial cards like the Bocaboard have a hexadecimal offset of 8, not 400, and that offset is built into the hardware, so it can't be changed. Galactiboards and Galactiboxes are extinct as far as I know, so the only option is to use 3rd party hardware like Digi and Boca. But without being able to define the hexadecimal offset in v5.31, these 3rd party hardware platforms can't be used.

So the essence of my question is as follows:
  • Does anyone happen to know if there is a way to hack the v5.31 source code and/or binary GSBL lib file to change the offset from 400 to 8? That would likely be the most ideal solution.
  • If that can't be done, does anyone know if there are multi-port serial cards (that are still available) that allow you to define the hexadecimal offset?

Version 5.31 of the MBBS had no support for TCP/IP whatsoever. However, I'm able to use a Digi Portserver to turn a TCP/IP Internet connection into a Serial connection. Years ago I purchased a 2-Port Digi Portserver just to test the concept. After quite a bit of fiddling around, I was able to connect to my v5.31 MBBS from the Internet. 8-Port and 16-Port Digi Portservers are still easy to find on eBay, though they aren't exactly cheap. But the point is, I have the TCP/IP part worked out.

The current obstacle is getting 16 serial ports on an old DOS computer that have the correct hexadecimal offset so they can be used with the MBBS.

I hope I've explained this well enough for everyone to understand. Please let me know if you have any ideas.