• bug

    From Ben Ritchey@1:393/68.8 to All on Tuesday, July 10, 2018 17:10:31
    Hi All,

    If I try to build Golded+ (github.com 2018-07-10 Download) with MSVC6 I get compile error 2 on line 129 of gdirposx.cpp. If I revert this code back to the last source backup I have for Golded+ (sf.net CVS) as "long" vice "intptr_t" at

    the beginning of line 129, it works all the way thru with no obvious problems reading or writing live messages with the resultant binary GedWin.Exe.

    I assume that there is probably more to this error than meets the eye, so I will wait for clarification before I distribute anything. :)


    .-- Keep the faith, -------------------------------------------------.
    | |
    | Ben aka cMech Web: http|ftp|binkp|telnet://cmech.dynip.com |
    | Email: fido4cmech(at)lusfiber.net |
    | Home page: http://cmech.dynip.com/homepage/ |
    | |
    `-------- WildCat! BBS 24/7 +1-337-984-4794 any BAUD 8,N,1 -------'

    ... Having lawyers make laws is like having doctors make diseases.
    --- GoldED+/W32-MSVC v1.1.5-g180710-b20180710 ... via Mystic BBS!
    * Origin: FIDONet - The Positronium Remote (1:393/68.8)
  • From andrew clarke@3:633/267 to Ben Ritchey on Thursday, July 12, 2018 02:22:24
    10 Jul 18 17:10, you wrote to all:

    If I try to build Golded+ (github.com 2018-07-10 Download) with MSVC6 I get compile error 2 on line 129 of gdirposx.cpp. If I revert this code back to the last source backup I have for Golded+ (sf.net CVS) as "long" vice "intptr_t" at

    the beginning of line 129, it works all the way thru with no obvious problems reading or writing live messages with the resultant binary GedWin.Exe.

    I assume that there is probably more to this error than meets the eye,
    so I will wait for clarification before I distribute anything. :)

    intptr_t was introduced with the C99 standard which MSVC6 didn't support.

    And at some point since MSVC6 was released, Microsoft changed the return value of _findfirst() from long to intptr_t.

    At the start of gdirposx.cpp you could add something like:

    #if _MSC_VER <= 1200
    typedef long intptr_t;
    #endif

    Where 1200 is the internal version number for the C/C++ compiler provided with MSVC6.

    --- GoldED+/BSD 1.1.5-b20180707
    * Origin: Blizzard of Ozz, Melbourne, Victoria, Australia (3:633/267)
  • From Ben Ritchey@1:393/68 to Andrew Clarke on Wednesday, July 11, 2018 12:28:39
    * An ongoing debate between andrew clarke and Ben Ritchey rages on ...

    If I try to build Golded+ (github.com 2018-07-10 Download) with
    MSVC6 I get compile error 2 on line 129 of gdirposx.cpp. If I
    revert this code back to the last source backup I have for
    Golded+ (sf.net CVS) as "long" vice "intptr_t" at
    the beginning of line 129, it works all the way thru with no
    obvious problems reading or writing live messages with the
    resultant binary GedWin.Exe.
    I assume that there is probably more to this error than meets the
    eye, so I will wait for clarification before I distribute
    anything. :)

    intptr_t was introduced with the C99 standard which MSVC6 didn't
    support.
    And at some point since MSVC6 was released, Microsoft changed the
    return value of _findfirst() from long to intptr_t.
    At the start of gdirposx.cpp you could add something like:
    #if _MSC_VER <= 1200
    typedef long intptr_t;
    #endif
    Where 1200 is the internal version number for the C/C++ compiler
    provided with MSVC6.

    Thank you kindly :) I will add your code in soonest!


    .-- Keep the faith, -------------------------------------------------.
    | |
    | Ben aka cMech Web: http|ftp|binkp|telnet://cmech.dynip.com |
    | Email: fido4cmech(at)lusfiber.net |
    | Home page: http://cmech.dynip.com/homepage/ |
    | |
    `-------- WildCat! BBS 24/7 +1-337-984-4794 any BAUD 8,N,1 -------'

    ... Anything, if wrapped in bacon, is delicious!
    --- GoldED+/W32-MSVC v1.1.5-c20180708-b20180708 + Mystic BBS v1.12 A39
    * Origin: FIDONet - The Positronium Repository (1:393/68)
  • From Ben Ritchey@1:393/68.8 to Andrew Clarke on Wednesday, July 11, 2018 15:58:36
    *
    * On Thursday 12 Jul 2018 193 at 02:22 AM,
    * andrew clarke said to Ben Ritchey,
    * about bug ...
    *

    Your code snippet worked perfectly, thank you! Should I submit this as a forked

    mod pull request at github?


    .-- Keep the faith, -------------------------------------------------.
    | |
    | Ben aka cMech Web: http|ftp|binkp|telnet://cmech.dynip.com |
    | Email: fido4cmech(at)lusfiber.net |
    | Home page: http://cmech.dynip.com/homepage/ |
    | |
    `-------- WildCat! BBS 24/7 +1-337-984-4794 any BAUD 8,N,1 -------'

    ... Aside from the 6 million laws it's a free country.
    --- GoldED+/W32-MSVC v1.1.5-g20180710-b20180710 ... via Mystic BBS!
    * Origin: FIDONet - The Positronium Remote (1:393/68.8)
  • From Michael Dukelsky@2:5020/1042 to Ben Ritchey on Thursday, July 12, 2018 08:09:30
    Hello Ben,

    Wednesday July 11 2018, Ben Ritchey wrote to Andrew Clarke:

    Your code snippet worked perfectly, thank you! Should I submit this as
    a forked mod pull request at github?

    No, thank you. Alexander Skovpen already fixed this bug he had introduced in the previous commit.

    Michael

    ... node (at) f1042 (dot) ru
    --- GoldED+/LNX 1.1.5-b20170303
    * Origin: Moscow, Russia (2:5020/1042)
  • From Ben Ritchey@1:393/68.8 to All on Friday, July 13, 2018 19:25:18
    Hi All,

    I have a cosmetic issue when starting gedwin.exe when the screen is set to 80 columns. The resultant "buf" for part of the startup screen is too big for 80 columns so it shows as blank (my golded.h is a bit fancy). :( Though the startup of Golded is so fast one seldom sees the startup screen, it IS still wrong in my case {chuckle}.

    I have modified my version of gedinit.cpp to fix this if anyone is interested? I am not a C programmer (I do assembly and power basic) but I think I got it close to what is expected for C++. I can send the modified file or attempt to fork, mod & request a pull using github (never did that either lol).

    It has been extensively tested, works fine and doesn't break anything. I used a

    waitkey() to temporarily pause and verify the startup screen :)


    .-- Keep the faith, -------------------------------------------------.
    | |
    | Ben aka cMech Web: http|ftp|binkp|telnet://cmech.dynip.com |
    | Email: fido4cmech(at)lusfiber.net |
    | Home page: http://cmech.dynip.com/homepage/ |
    | |
    `-------- WildCat! BBS 24/7 +1-337-984-4794 any BAUD 8,N,1 -------'

    ... The first rule of holes: When you're in one stop digging!
    --- GoldED+/W32-MSVC v1.1.5-g20180712 ... via Mystic BBS!
    * Origin: FIDONet - The Positronium Remote (1:393/68.8)
  • From Michael Dukelsky@2:5020/1042 to Ben Ritchey on Sunday, July 15, 2018 09:25:56
    Hello Ben,

    Friday July 13 2018, Ben Ritchey wrote to All:

    I have a cosmetic issue when starting gedwin.exe when the screen is
    set to 80 columns. The resultant "buf" for part of the startup screen
    is too big for 80 columns so it shows as blank (my golded.h is a bit fancy). :( Though the startup of Golded is so fast one seldom sees the startup screen, it IS still wrong in my case {chuckle}.

    Could you please send me your golded.h as an attachment. My email address is below (change "at" to @, "dot" to . and remove spaces).

    Michael

    ... node (at) f1042 (dot) ru
    --- GoldED+/LNX 1.1.5-b20170303
    * Origin: Moscow, Russia (2:5020/1042)
  • From Ben Ritchey@1:393/68 to Michael Dukelsky on Sunday, July 15, 2018 02:15:40
    * An ongoing debate between Michael Dukelsky and Ben Ritchey rages on ...

    Could you please send me your golded.h as an attachment. My email
    address is below (change "at" to @, "dot" to . and remove spaces).

    On the way :)


    .-- Keep the faith, -------------------------------------------------.
    | |
    | Ben aka cMech Web: http|ftp|binkp|telnet://cmech.dynip.com |
    | Email: fido4cmech(at)lusfiber.net |
    | Home page: http://cmech.dynip.com/homepage/ |
    | |
    `-------- WildCat! BBS 24/7 +1-337-984-4794 any BAUD 8,N,1 -------'

    ... 80% of American men cheat in America - the rest in Europe.
    --- GoldED+/W32-MSVC v1.1.5-g20180714 + Mystic BBS v1.12 A39
    * Origin: FIDONet - The Positronium Repository (1:393/68)
  • From Ben Ritchey@1:393/68.8 to Michael Dukelsky on Sunday, July 15, 2018 02:22:22
    *
    * On Sunday 15 Jul 2018 196 at 09:25 AM,
    * Michael Dukelsky said to Ben Ritchey,
    * about bug ...
    *

    Here's the patch I came up with for geinit.cpp (it does work!) that handles smaller screens (30 rows or less).

    File: geinit.pat

    === Cut ===
    diff --git a/geinit_1.cpp b/geinit.cpp
    index 58f71a4..446fc8f 100644
    -+- a/geinit_1.cpp
    +++ b/geinit.cpp
    @@ -1,4 +1,3 @@
    -
    // ------------------------------------------------------------------
    // GoldED+
    // Copyright (C) 1990-1999 Odinn Sorensen
    @@ -399,7 +398,7 @@ static void w_brag() {
    wprints(4, 46-strlen(__gver_longpid__)-1-strlen(__gver_ver__), C_BRAGW, __gver_longpid__);
    wprints(4, 46-strlen(__gver_ver__), C_BRAGW, __gver_ver__);

    - wprints(5, 12, C_BRAGW, "http://golded-plus.sourceforge.net");
    + wprints(5, 12, C_BRAGW, "https://github.com/golded-plus");

    wprints(0, 48, C_BRAGW, " GoldED+ Message Editor ");
    gsprintf(PRINTF_DECLARE_BUFFER(buf), " Copyright (C) 1990-%s ",__gver_date__+7);
    @@ -415,28 +414,35 @@ static void w_brag() {
    gsprintf(PRINTF_DECLARE_BUFFER(buf), "---*-*-*** %s ***-*-*---", __gver_releasename__);
    wcenters(8, C_BRAGW, buf);

    - wcenters(10, C_BRAGW, "This program is free software; it is licensed under the");
    - wcenters(11, C_BRAGW, "GNU General Public License version 2. You're welcome to");
    - wcenters(12, C_BRAGW, "redistribute the program or any parts hereof under cer-");
    - wcenters(13, C_BRAGW, "tain conditions. See the LICENSE.TXT for more details.");
    -
    - wcenters(MAXROW-10, C_BRAGW, "This executable is distributed by");
    - if (*__gver_vendor_fido__)
    + if (MAXROW > 30)
    {
    - gsprintf(PRINTF_DECLARE_BUFFER(buf), "%s (Fido: %s) - <%s>",
    - __gver_vendor_name__, __gver_vendor_fido__, __gver_vendor_email__);
    + wcenters(10, C_BRAGW, "This program is free software; it is licensed under

    the");
    + wcenters(11, C_BRAGW, "GNU General Public License version 2. You're welcome to");
    + wcenters(12, C_BRAGW, "redistribute the program or any parts hereof under cer-");
    + wcenters(13, C_BRAGW, "tain conditions. See the LICENSE.TXT for more details.");
    }
    - else
    +
    + wcenters(MAXROW-16, C_BRAGW, "This executable is distributed by");
    +
    + gsprintf(PRINTF_DECLARE_BUFFER(buf), "%s", __gver_vendor_name__);
    + wcenters(MAXROW-14, C_BRAGW, buf);
    +
    + if (*__gver_vendor_fido__)
    {
    - gsprintf(PRINTF_DECLARE_BUFFER(buf), "%s <%s>",
    - __gver_vendor_name__, __gver_vendor_email__);
    + gsprintf(PRINTF_DECLARE_BUFFER(buf), " FIDONet: %s ", __gver_vendor_fido__);
    + wcenters(MAXROW-13, C_BRAGW, buf);
    }

    - wcenters(MAXROW-9, C_BRAGW, buf);
    + gsprintf(PRINTF_DECLARE_BUFFER(buf), "%s", __gver_vendor_email__);
    + wcenters(MAXROW-12, C_BRAGW, buf);
    +
    gsprintf(PRINTF_DECLARE_BUFFER(buf), "Compiled on %s %s", __gver_date__, __gver_time__);
    - wcenters(MAXROW-8, C_BRAGW, buf);
    -}
    + wcenters(MAXROW-10, C_BRAGW, buf);
    +
    +// Wait after startup screen -=:{ ***** Testing only ***** }:=- +// waitkey();

    +}

    // ------------------------------------------------------------------

    === Cut ===

    .-- Keep the faith, -------------------------------------------------.
    | |
    | Ben aka cMech Web: http|ftp|binkp|telnet://cmech.dynip.com |
    | Email: fido4cmech(at)lusfiber.net |
    | Home page: http://cmech.dynip.com/homepage/ |
    | |
    `-------- WildCat! BBS 24/7 +1-337-984-4794 any BAUD 8,N,1 -------'

    ... Marriage is an expensive way of getting your laundry done free.
    --- GoldED+/W32-MSVC v1.1.5-g20180714 ... via Mystic BBS!
    * Origin: FIDONet - The Positronium Remote (1:393/68.8)
  • From andrew clarke@3:633/267 to Ben Ritchey on Sunday, July 15, 2018 05:54:24
    13 Jul 18 19:25, you wrote to all:

    I have a cosmetic issue when starting gedwin.exe when the screen is set
    to 80 columns. The resultant "buf" for part of the startup screen is too big for 80 columns so it shows as blank (my golded.h is a bit fancy). :( Though the startup of Golded is so fast one seldom sees the startup screen, it IS still wrong in my case {chuckle}.

    I have modified my version of gedinit.cpp to fix this if anyone is interested? I am not a C programmer (I do assembly and power basic) but
    I think I got it close to what is expected for C++. I can send the modified file or attempt to fork, mod & request a pull using github
    (never did that either lol).

    If you're using git from the command-line you can run:

    git diff

    to provide a patch, using your modified gedinit.cpp.

    You could probably just paste the patch here if you don't want to go to the trouble of forking it on Github.

    It has been extensively tested, works fine and doesn't break anything.
    I used a

    waitkey() to temporarily pause and verify the startup screen :)

    BTW something is adding CRs to your messages in between paragraphs...

    --- GoldED+/BSD 1.1.5-b20180707
    * Origin: Blizzard of Ozz, Melbourne, Victoria, Australia (3:633/267)
  • From Ben Ritchey@1:393/68.8 to Andrew Clarke on Saturday, July 14, 2018 15:13:54
    * An ongoing debate between andrew clarke and Ben Ritchey rages on ...

    13 Jul 18 19:25, you wrote to all:

    I have a cosmetic issue when starting gedwin.exe when the screen
    is set to 80 columns. The resultant "buf" for part of the startup
    screen is too big for 80 columns so it shows as blank (my
    golded.h is a bit fancy). :( Though the startup of Golded is so
    fast one seldom sees the startup screen, it IS still wrong in my
    case {chuckle}.
    You could probably just paste the patch here if you don't want to go
    to the trouble of forking it on Github.

    So said & done {chuckle} File: geinit.cpp.new

    === Cut ===

    wprints(5, 12, C_BRAGW, "https://github.com/golded-plus");


    wcenters(MAXROW-16, C_BRAGW, "This executable is distributed by");

    gsprintf(PRINTF_DECLARE_BUFFER(buf), "%s", __gver_vendor_name__);
    wcenters(MAXROW-14, C_BRAGW, buf);

    if (*__gver_vendor_fido__)
    {
    gsprintf(PRINTF_DECLARE_BUFFER(buf), " FIDONet: %s ", __gver_vendor_fido__);
    wcenters(MAXROW-13, C_BRAGW, buf);
    }

    gsprintf(PRINTF_DECLARE_BUFFER(buf), "%s", __gver_vendor_email__);
    wcenters(MAXROW-12, C_BRAGW, buf);

    gsprintf(PRINTF_DECLARE_BUFFER(buf), "Compiled on %s %s", __gver_date__, __gver_time__);
    wcenters(MAXROW-10, C_BRAGW, buf);

    // Wait after startup screen -=:{ ***** Testing only ***** }:=-
    // waitkey();

    }

    === Cut ===

    Note: 1st line of patch goes several lines above the rest of the patch ...

    BTW something is adding CRs to your messages in between paragraphs...

    Hmmm...it's always been that way {shrug} have to check .cfg options ... but it helps segment the thought process when quoting !!! lol


    .-- Keep the faith, -------------------------------------------------.
    | |
    | Ben aka cMech Web: http|ftp|binkp|telnet://cmech.dynip.com |
    | Email: fido4cmech(at)lusfiber.net |
    | Home page: http://cmech.dynip.com/homepage/ |
    | |
    `-------- WildCat! BBS 24/7 +1-337-984-4794 any BAUD 8,N,1 -------'

    ... My story is much like yours but more interesting 'cause it involves me.
    --- GoldED+/W32-MSVC v1.1.5-g20180712 ... via Mystic BBS!
    * Origin: FIDONet - The Positronium Remote (1:393/68.8)
  • From Ben Ritchey@1:393/68.8 to Andrew Clarke on Saturday, July 14, 2018 19:13:05
    * An ongoing debate between andrew clarke and Ben Ritchey rages on ...

    13 Jul 18 19:25, you wrote to all:

    I have modified my version of gedinit.cpp to fix this if anyone
    If you're using git from the command-line you can run:
    git diff
    to provide a patch, using your modified gedinit.cpp.
    You could probably just paste the patch here if you don't want to go
    to the trouble of forking it on Github.

    I installed git and my output (git diff oldfile newfile):

    === Cut ===
    diff --git a/geinit_1.cpp b/geinit.cpp
    index 58f71a4..f3dfc1a 100644
    -+- a/geinit_1.cpp
    +++ b/geinit.cpp
    @@ -1,4 +1,3 @@
    -
    // ------------------------------------------------------------------
    // GoldED+
    // Copyright (C) 1990-1999 Odinn Sorensen
    @@ -399,7 +398,7 @@ static void w_brag() {
    wprints(4, 46-strlen(__gver_longpid__)-1-strlen(__gver_ver__), C_BRAGW, __gver_longpid__);
    wprints(4, 46-strlen(__gver_ver__), C_BRAGW, __gver_ver__);

    - wprints(5, 12, C_BRAGW, "http://golded-plus.sourceforge.net");
    + wprints(5, 12, C_BRAGW, "https://github.com/golded-plus");

    wprints(0, 48, C_BRAGW, " GoldED+ Message Editor ");
    gsprintf(PRINTF_DECLARE_BUFFER(buf), " Copyright (C) 1990-%s ",__gver_date__+7);
    @@ -420,23 +419,27 @@ static void w_brag() {
    wcenters(12, C_BRAGW, "redistribute the program or any parts hereof under cer-");
    wcenters(13, C_BRAGW, "tain conditions. See the LICENSE.TXT for more details.");

    - wcenters(MAXROW-10, C_BRAGW, "This executable is distributed by");
    + wcenters(MAXROW-16, C_BRAGW, "This executable is distributed by");
    +
    + gsprintf(PRINTF_DECLARE_BUFFER(buf), "%s", __gver_vendor_name__);
    + wcenters(MAXROW-14, C_BRAGW, buf);
    +
    if (*__gver_vendor_fido__)
    {
    - gsprintf(PRINTF_DECLARE_BUFFER(buf), "%s (Fido: %s) - <%s>",
    - __gver_vendor_name__, __gver_vendor_fido__, __gver_vendor_email__);
    - }
    - else
    - {
    - gsprintf(PRINTF_DECLARE_BUFFER(buf), "%s <%s>",
    - __gver_vendor_name__, __gver_vendor_email__);
    + gsprintf(PRINTF_DECLARE_BUFFER(buf), " FIDONet: %s ", __gver_vendor_fido__);
    + wcenters(MAXROW-13, C_BRAGW, buf);
    }

    - wcenters(MAXROW-9, C_BRAGW, buf);
    + gsprintf(PRINTF_DECLARE_BUFFER(buf), "%s", __gver_vendor_email__);
    + wcenters(MAXROW-12, C_BRAGW, buf);
    +
    gsprintf(PRINTF_DECLARE_BUFFER(buf), "Compiled on %s %s", __gver_date__, __gver_time__);
    - wcenters(MAXROW-8, C_BRAGW, buf);
    -}
    + wcenters(MAXROW-10, C_BRAGW, buf);

    +// Wait after startup screen -=:{ ***** Testing only ***** }:=- +// waitkey();
    +
    +}

    // ------------------------------------------------------------------

    === Cut ===

    Can ya'll work with that?


    .-- Keep the faith, -------------------------------------------------.
    | |
    | Ben aka cMech Web: http|ftp|binkp|telnet://cmech.dynip.com |
    | Email: fido4cmech(at)lusfiber.net |
    | Home page: http://cmech.dynip.com/homepage/ |
    | |
    `-------- WildCat! BBS 24/7 +1-337-984-4794 any BAUD 8,N,1 -------'

    ... 16-bit machine: A computer selling for $2.00 (see bit)
    --- GoldED+/W32-MSVC v1.1.5-g20180714 ... via Mystic BBS!
    * Origin: FIDONet - The Positronium Remote (1:393/68.8)
  • From Ben Ritchey@1:393/68.8 to Andrew Clarke on Saturday, July 14, 2018 19:42:08
    *
    * On Sunday 15 Jul 2018 196 at 05:54 AM,
    * andrew clarke said to Ben Ritchey,
    * about bug ...
    *

    Nevermind! :( My patch breaks a 25 row screen. Have to fix that {chuckle} sorry, back to the drawing board (I use a 60 row screen lol)


    .-- Keep the faith, -------------------------------------------------.
    | |
    | Ben aka cMech Web: http|ftp|binkp|telnet://cmech.dynip.com |
    | Email: fido4cmech(at)lusfiber.net |
    | Home page: http://cmech.dynip.com/homepage/ |
    | |
    `-------- WildCat! BBS 24/7 +1-337-984-4794 any BAUD 8,N,1 -------'

    ... Beans in chili is still a criminal offense in Texas.
    --- GoldED+/W32-MSVC v1.1.5-g20180714 ... via Mystic BBS!
    * Origin: FIDONet - The Positronium Remote (1:393/68.8)
  • From Ben Ritchey@1:393/68.8 to Andrew Clarke on Saturday, July 14, 2018 20:11:53
    *
    * On Sunday 15 Jul 2018 196 at 05:54 AM,
    * andrew clarke said to Ben Ritchey,
    * about bug ...
    *

    Ok, I have a new patch that prevents problems on small screens (30 rows or less) but in doing so I drop the distribution/license clause :( (but only on small screens). This is probably not what we want, though it works for me for now {chuckle}. If you know a better way to implement this, I'm all ears! lol

    btw, after I generate the patch file (using git diff) how do I apply it to a newer copy/download of the original source (geinit.cpp)?


    .-- Keep the faith, -------------------------------------------------.
    | |
    | Ben aka cMech Web: http|ftp|binkp|telnet://cmech.dynip.com |
    | Email: fido4cmech(at)lusfiber.net |
    | Home page: http://cmech.dynip.com/homepage/ |
    | |
    `-------- WildCat! BBS 24/7 +1-337-984-4794 any BAUD 8,N,1 -------'

    ... Mayflies continually plot to topple the cedar.
    --- GoldED+/W32-MSVC v1.1.5-g20180714 ... via Mystic BBS!
    * Origin: FIDONet - The Positronium Remote (1:393/68.8)
  • From Ben Ritchey@1:393/68.8 to Andrew Clarke on Saturday, July 14, 2018 22:11:45
    * An ongoing debate between andrew clarke and Ben Ritchey rages on ...

    BTW something is adding CRs to your messages in between paragraphs...

    See Golded.Cfg option QUOTESPACING, I have them added for my quoting style :)


    .-- Keep the faith, -------------------------------------------------.
    | |
    | Ben aka cMech Web: http|ftp|binkp|telnet://cmech.dynip.com |
    | Email: fido4cmech(at)lusfiber.net |
    | Home page: http://cmech.dynip.com/homepage/ |
    | |
    `-------- WildCat! BBS 24/7 +1-337-984-4794 any BAUD 8,N,1 -------'

    ... As much as he drinks, watch for liquor mortis.
    --- GoldED+/W32-MSVC v1.1.5-g20180714 ... via Mystic BBS!
    * Origin: FIDONet - The Positronium Remote (1:393/68.8)