• PCBOARD.SYS File

    From Joe Martin@1:104/57 to All on Thu Oct 31 14:20:42 2019
    Hi folks...

    I've written code that produces a v14 through v15 PCBOARD.SYS file. In
    my limited search time, I've run across the v14+ demo releases of
    PCBoard which is where I got the specs for PCBOARD.SYS.

    I'm looking for earlier versions of PCBoard so I can see what has
    changed in the various releases of PCBOARD.SYS.

    Any insight as to where I can get the earlier demo versions of PCBoard?

    Regards,

    Joe Martin

    --- ViaMAIL!/WC v2.00
    * Origin: ViaSoft Support BBS - Back online at 303-953-0568 (1:104/57)
  • From Paul Quinn@2:250/1 to Joe Martin on Fri Nov 1 09:19:06 2019
    Hi! Joe,

    On 10/31/2019 02:20 PM, you wrote:

    I'm looking for earlier versions of PCBoard so I can see what has
    changed in the various releases of PCBOARD.SYS.

    Any insight as to where I can get the earlier demo versions of PCBoard?

    What the version(s) on: archives.thebbs.org? I did a test install many, many moons ago so I know it worked. HTH.

    Cheers,
    Paul.

    --- Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.4.0
    * Origin: What are you looking down here for? Read the message.
  • From Nick Andre@1:229/426 to Joe Martin on Thu Oct 31 19:49:00 2019
    On 31 Oct 19 14:20:42, Joe Martin said the following to All:

    I'm looking for earlier versions of PCBoard so I can see what has
    changed in the various releases of PCBOARD.SYS.

    Renegade uses this code to generate PCBOARD.SYS, maybe this will help.

    I believe this code has not changed since 1993. "Mln" is a function call to do with Renegade's MCI code system. Some fields outputted are null/blank, I assume because either they were PC-Board specific or just not necessary for a door game to use.

    procedure write_pcboard_sys(rname:boolean);
    var fp:file;
    s:string[50];
    un:string[50];
    i:integer;

    procedure dump(x:string);
    begin
    blockwrite(fp,x[1],length(x));
    end;

    procedure write_boolean(x:boolean);
    begin
    if x then s:='-1' else s:=' 0';
    dump(s);
    end;

    begin
    if rname then un:=thisuser.realname else un:=thisuser.name;
    assign(fp,liner.doorpath+'pcboard.sys');
    rewrite(fp,1);
    write_boolean(wantout);
    write_boolean((general.slogtype in [1,2]));
    write_boolean(sysopavailable);
    dump(' 0 ');
    write_boolean(Reliable);
    if (okansi or okavatar) then dump('Y') else dump('N');
    dump('A');
    s := cstr(speed);
    s:=mln(s,5);
    dump(s);
    if (Speed = 0) then
    dump('Local')
    else
    dump(mn(Speed,5));
    blockwrite(fp,usernum,2);
    dump(mln(copy(un,1,pos(' ',un)-1),15));
    dump(mln('PASSWORD', 12));
    i:=0;
    blockwrite(fp,i,2);
    blockwrite(fp,i,2);
    s:='00:00';
    blockwrite(fp,s[1],5);
    i:=general.timeallow[thisuser.sl];
    blockwrite(fp,i,2);
    i:=general.dlkoneday[thisuser.sl];
    blockwrite(fp,i,2);
    s:=#0#0#0#0#0#0;
    dump(s);
    dump(copy(s,1,5));
    i:=0;
    blockwrite(fp,i,2);
    blockwrite(fp,i,2);
    dump(' ');
    dump(mln(un,25));
    i:=nsl div 60;
    blockwrite(fp,i,2);
    dump(chr(node)+'00:00');
    write_boolean(FALSE);
    write_boolean(FALSE);
    dump(#0#0#0#0);
    if (Speed = 0) then
    s := '0'
    else
    s := cstr(liner.comport);
    s:=s[1]+#0#0;
    if (okansi or okavatar) then s:=s+#1 else s:=s+#0;
    dump(s);
    dump(date);
    i:=0;
    blockwrite(fp,i,2);
    dump(#0#0#0#0#0#0#0#0#0#0);
    close(fp);
    Lasterror := IOResult;
    end;

    Nick

    --- Renegade vY2Ka2
    * Origin: Joey, do you like movies about gladiators? (1:229/426)
  • From Joe Martin@1:104/57 to Paul Quinn on Fri Nov 1 06:31:01 2019
    Hi! Joe,

    On 10/31/2019 02:20 PM, you wrote:

    I'm looking for earlier versions of PCBoard so I can see what has changed in the various releases of PCBOARD.SYS.

    Any insight as to where I can get the earlier demo versions of
    PCBoard?
    What the version(s) on: archives.thebbs.org? I did a test install
    many, many moons ago so I know it worked. HTH.

    Cheers,
    Paul.

    --- Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101
    Thunderbird/31.4.0 * Origin: What are you looking down here for?
    Read the message. (3:640/1384.125)

    If memory serves, download from there doesn't work anymore.

    Joe Martin

    --- ViaMAIL!/WC v2.00
    * Origin: ViaSoft Support BBS - Back online at 303-953-0568 (1:104/57)
  • From Joe Martin@1:104/57 to Nick Andre on Fri Nov 1 16:55:27 2019
    On 31 Oct 19 14:20:42, Joe Martin said the following to All:

    I'm looking for earlier versions of PCBoard so I can see what has changed in the various releases of PCBOARD.SYS.

    Renegade uses this code to generate PCBOARD.SYS, maybe this will help

    I believe this code has not changed since 1993. "Mln" is a function
    call to do with Renegade's MCI code system. Some fields outputted
    are null/blank, I assume because either they were PC-Board specific
    or just not necessary for a door game to use.

    procedure write_pcboard_sys(rname:boolean);
    var fp:file;
    s:string[50];
    un:string[50];
    i:integer;

    procedure dump(x:string);
    begin
    blockwrite(fp,x[1],length(x));
    end;

    procedure write_boolean(x:boolean);
    begin
    if x then s:='-1' else s:=' 0';
    dump(s);
    end;

    begin
    if rname then un:=thisuser.realname else un:=thisuser.name; assign(fp,liner.doorpath+'pcboard.sys');
    rewrite(fp,1);
    write_boolean(wantout);
    write_boolean((general.slogtype in [1,2]));
    write_boolean(sysopavailable);
    dump(' 0 ');
    write_boolean(Reliable);
    if (okansi or okavatar) then dump('Y') else dump('N');
    dump('A');
    s := cstr(speed);
    s:=mln(s,5);
    dump(s);
    if (Speed = 0) then
    dump('Local')
    else
    dump(mn(Speed,5));
    blockwrite(fp,usernum,2);
    dump(mln(copy(un,1,pos(' ',un)-1),15));
    dump(mln('PASSWORD', 12));
    i:=0;
    blockwrite(fp,i,2);
    blockwrite(fp,i,2);
    s:='00:00';
    blockwrite(fp,s[1],5);
    i:=general.timeallow[thisuser.sl];
    blockwrite(fp,i,2);
    i:=general.dlkoneday[thisuser.sl];
    blockwrite(fp,i,2);
    s:=#0#0#0#0#0#0;
    dump(s);
    dump(copy(s,1,5));
    i:=0;
    blockwrite(fp,i,2);
    blockwrite(fp,i,2);
    dump(' ');
    dump(mln(un,25));
    i:=nsl div 60;
    blockwrite(fp,i,2);
    dump(chr(node)+'00:00');
    write_boolean(FALSE);
    write_boolean(FALSE);
    dump(#0#0#0#0);
    if (Speed = 0) then
    s := '0'
    else
    s := cstr(liner.comport);
    s:=s[1]+#0#0;
    if (okansi or okavatar) then s:=s+#1 else s:=s+#0;
    dump(s);
    dump(date);
    i:=0;
    blockwrite(fp,i,2);
    dump(#0#0#0#0#0#0#0#0#0#0);
    close(fp);
    Lasterror := IOResult;
    end;

    Nick

    Thanks Nick...

    As mentioned I've already written code for the 14 -> 15 version of
    PCBOARD.SYS. As a matter of fact, it's fully implemented which means
    all the extended fields are filled out including the variable length
    Scanned and Joined conference flags.

    Speaking of which, whoever came up with that implementation of the
    extended fields, had a really bad day (or night before). An external
    reference for the number of conferences is needed to read that file
    properly, otherwise one has to jump through some serious hoops to load
    it properly. Really a bad way of doing this. Had they added a two-byte
    field to say how long the variable length parts were would have made it
    sooo much simpler. Soap-box mode off.

    What I really need is the spec for the earlier versions so that I can
    implement them properly as well. This is why I was looking for earlier
    demo versions of PCBoard.

    As a side thought, one BBS type filling out anothers drop-file is error
    prone at best as the fields don't line up, but in my case, they're as
    close as they can get. Which of course I'd like to do that with the
    earlier versions as well.

    Thanks again!

    Joe Martin

    --- ViaMAIL!/WC v2.00
    * Origin: ViaSoft Support BBS - Back online at 303-953-0568 (1:104/57)
  • From Paul Quinn@3:640/1384 to Joe Martin on Sat Nov 2 09:52:29 2019
    Hi! Joe,

    On 01 Nov 19 06:31, you wrote to me:

    PCBoard? -> What the version(s) on: archives.thebbs.org? I did a test install -> many, many moons ago so I know it worked. HTH.

    If memory serves, download from there doesn't work anymore.

    I had the same experiences. Persistence pays off. It probably depends on the phases of the moon.[shrug]

    Cheers,
    Paul.

    ... BEERWARE: If you like it, buy yourself a beer.
    --- GoldED+/LNX 1.1.5-b20130515
    * Origin: Quinn's Rock - Live from Paul's Xubuntu desktop! (3:640/1384)
  • From Nick Andre@1:229/426 to Joe Martin on Sat Nov 2 05:30:45 2019
    On 01 Nov 19 16:55:27, Joe Martin said the following to Nick Andre:

    As a side thought, one BBS type filling out anothers drop-file is error prone at best as the fields don't line up, but in my case, they're as
    close as they can get. Which of course I'd like to do that with the earlier versions as well.

    I hear you there... which I believe lead to the creation of DOOR.SYS or DORINFO1.DEF, one of the two, in the late 80's / early 90's.

    Nick

    --- Renegade vY2Ka2
    * Origin: Joey, do you like movies about gladiators? (1:229/426)
  • From Joe Martin@1:104/57 to Nick Andre on Sat Nov 2 08:58:29 2019
    As a side thought, one BBS type filling out anothers drop-file
    is error JM> prone at best as the fields don't line up, but in my
    case, they're as
    close as they can get. Which of course I'd like to do that with
    earlier versions as well.

    I hear you there... which I believe lead to the creation of DOOR.SYS DORINFO1.DEF, one of the two, in the late 80's / early 90's.

    That was DOOR.SYS -- DORINFO1.DEF is fairly light-weight comparatively
    speaking not to mention it's limited to node numbers.

    Regards,

    Joe Martin

    --- ViaMAIL!/WC v2.00
    * Origin: ViaSoft Support BBS - Back online at 303-953-0568 (1:104/57)
  • From Nick Andre@1:229/426 to Joe Martin on Sun Nov 3 01:03:10 2019
    On 02 Nov 19 08:58:29, Joe Martin said the following to Nick Andre:

    I hear you there... which I believe lead to the creation of DOOR.SYS DORINFO1.DEF, one of the two, in the late 80's / early 90's.

    That was DOOR.SYS -- DORINFO1.DEF is fairly light-weight comparatively speaking not to mention it's limited to node numbers.

    I thought that most BBS software had different staging/temporary directories per node.

    Nick

    --- Renegade vY2Ka2
    * Origin: Joey, do you like movies about gladiators? (1:229/426)
  • From Joe Martin@1:104/57 to Nick Andre on Sun Nov 3 08:44:40 2019
    I hear you there... which I believe lead to the creation of
    DOOR.SYS -> DORINFO1.DEF, one of the two, in the late 80's / early
    90's.

    That was DOOR.SYS -- DORINFO1.DEF is fairly light-weight comparat speaking not to mention it's limited to node numbers.

    I thought that most BBS software had different staging/temporary dire
    per node.

    Explain.

    --- ViaMAIL!/WC v2.00
    * Origin: ViaSoft Support BBS - Back online at 303-953-0568 (1:104/57)
  • From Nick Andre@1:229/426 to Joe Martin on Sun Nov 3 19:52:17 2019
    On 03 Nov 19 08:44:40, Joe Martin said the following to Nick Andre:

    I thought that most BBS software had different staging/temporary dire
    per node.

    Explain.

    I used to run a popular multi-line BBS in the 90's... referred to as multi-node operation. It was a crash course in file sharing, record locking
    and designing batch files and things to take into account multi-user access.

    In Renegade, Searchlight, pretty sure Synchronet and Mystic and a host of others from the 90's... You have the option of specifying a temporary
    directory per node or at the very minimum, where to output the drop file.

    The temporary directory per node is usually used for QWK processing, archive viewing in the files section, uploads, copying files from CD-ROM for downloading/staging to a file transfer protocol... and where the door
    game drop file is written for the node thats running the game.

    The batch file for the door game usually then copies the door game drop file into its own directory and then told to use that to start the game. Needless to say the door game would have to be multi-line friendly... some like BRE and Globar War were not, at the time.

    In the case of DORINFO1.DEF, some BBS software keeps that filename the same no matter the node, and some renames it to DORINFO2, DORINFO3, etc.

    Some door games you would install and you wouldn't know *what* it was expecting for a drop file until trial and error.... fun times.

    When the caller hangs up, the BBS software usually does garbage collection by nuking everything in that temp directory.

    Nick

    --- Renegade vY2Ka2
    * Origin: Joey, do you like movies about gladiators? (1:229/426)
  • From Joe Martin@1:104/57 to Nick Andre on Mon Nov 4 17:42:49 2019
    I thought that most BBS software had different staging/temporary
    dire -> per node.

    Explain.

    I used to run a popular multi-line BBS in the 90's... referred to as multi-node operation. It was a crash course in file sharing, record
    locking and designing batch files and things to take into account
    multi-user access.
    In Renegade, Searchlight, pretty sure Synchronet and Mystic and a
    host of others from the 90's... You have the option of specifying a temporary directory per node or at the very minimum, where to output
    the drop file.
    The temporary directory per node is usually used for QWK processing,
    archive viewing in the files section, uploads, copying files from
    CD-ROM for downloading/staging to a file transfer protocol... and
    where the door game drop file is written for the node thats running
    the game.
    The batch file for the door game usually then copies the door game
    drop file into its own directory and then told to use that to start
    the game. Needless to say the door game would have to be multi-line friendly... some like BRE and Globar War were not, at the time.

    In the case of DORINFO1.DEF, some BBS software keeps that filename
    the same no matter the node, and some renames it to DORINFO2,
    DORINFO3, etc.
    Some door games you would install and you wouldn't know *what* it was expecting for a drop file until trial and error.... fun times.

    When the caller hangs up, the BBS software usually does garbage
    collection by nuking everything in that temp directory.

    Sounds all too familiar. I ran a board from 1987 to 1999 (if I recall correctly) I had a 10 line system running Novell/WILDCAT! (200+
    calls a day). Getting doors to work was sometimes a challenge let
    alone the risk of them taking a line or two down. I had quite a few
    of them registered. Fortunately, I kept all the software just somewhere
    along the way lost the registered copies/keys.

    Today I run a two line board (mostly for testing) and software
    development.

    Regards,

    Joe Martin

    --- ViaMAIL!/WC v2.00
    * Origin: ViaSoft Support BBS - Back online at 303-953-0568 (1:104/57)
  • From Nick Andre@1:229/426 to Joe Martin on Mon Nov 4 19:53:48 2019
    On 04 Nov 19 17:42:49, Joe Martin said the following to Nick Andre:

    Today I run a two line board (mostly for testing) and software
    development.

    I still have Darkrealms running on the same software configuration since the 90's... really only the hardware has changed and the integration with Telnet.

    Nick

    --- Renegade vY2Ka2
    * Origin: Joey, do you like movies about gladiators? (1:229/426)