APLawrence - Information and Resources for Unix and Linux Systems, Bloggers and the self-employed
RSS Feeds Get APLawrence.com by RSS











(OLDER) <- More Stuff -> (NEWER) (NEWEST)
Home > News Posts > BBX Y2K ––>Legacy BBx apps and Y2K 'they live!'
Printer Friendly Version




News Group Posts

BBX Y2K


Do you rember Y2K? Wasn't that fun?

No? Well, maybe 2038 will be even more fun.

Oh, all these old systems will be long gone by then.. sure, if it were not for virtualization saving legacy apps and operating systems.

I may not still be alive in 2038 and if I am I won't be chasing Y2038 bugs (I'll be 90 if I'm still around), but I bet somebody will have to.


From: "Brian K. White" <linut@squonk.net>
Newsgroups: comp.unix.sco.misc
Subject: Legacy BBx apps and Y2K "they live!"
Date: Wed, 05 Jan 2000 03:27:24 -0500
Message-ID: <3873006C.3359C50B@squonk.net> 
Cache-Post-Path: firth.squonk.net!unknown@dialup-106.squonk.net

If anyone out there has an old BBx based application that stopped working on
y2k you might want to know this:

background: I have an application by Software Solutions Inc. called Prosper,
which was written in BBx3. BBx3 is a really old version of Basis Inc.'s PRO/5,
and Prosper is a really old version of SSI's FACTS. It originally ran on
Xenix, but runs fine one Open Server.



If you are like me, you had of course found a replacement before Y2K, but
perhaps would still like to be able to run the old app for reference. A lot of
data can accumulate in a few years, even more in many years, and not all of it
probably got exported to your new app.

In my case, Prosper died the second y2k hit. I was able to run up to the last
second by virtue of gimmicks like setting the "Terms" code for net-30 to
really mean 0 days etc, but on y2k the app would not even start up.

Here is how I got Prosper to continue running after y2k. This does not
actually make it y2k compliant, it undoubtable would do a very bad job of
billing and ordering and such.

Prosper, and I'm sure most other BBx-based apps are started via a shell script
which sets some variables like TERMCAP and PROGDIR etc...

in that shell script find a line near the bottom that looks like this:
exec ${BBX_DIR}bbx3 -w256 -q -c ${BBX_CONFIG ${PROG_DIR}/path/to/program - arg
arg arg

before the line add this one:
BBX_DAY=`date +%m/%d/`$((`date +y`+72)) ;export BBX_DAY














then, add BBX_DAYto the end of the "exec bbx3" line so that it looks like
this:
exec ${BBX_DIR}bbx3 -w256 -q -c ${BBX_CONFIG} ${PROG_DIR}/path/to/program -
arg arg arg ${BBX_DAY}

while you are at it, write down the path/program that this script runs.
IE: for me, {PROG_DIR}/path/to/program works out to be:
/usr/prosper/prog/SM/SMC110

also, count the arguments to the bbx program. for instance, my app exec line
is actually:
exec ${BBXDIR}bbx3 -q -w512 -c${CONFIG}
\                                       
     ${PROGDIR}prog/SM/SMC110 - ${DATADIR} ${PROGDIR} ${BBXDIR}

this is 3 arguments to the bbx program. the number of arguments will be used
in a second...

then, make a copy of the application start script, and name it something like
"bbasic", and edit this copy so that the "exec" line does not run your
application.
exec ${BBX_DIR}bbx3 -w256 -q -c ${BBX_CONFIG}

run the new "bbasic" script
you should be at a "READY" prompt. Type this:
load "/usr/prosper/prog/SM/SMC110"

obviously replcae my program above with whatever yours is.
then type"
list

at the first **MORE** prompt, hit whatever your -break- key is, usually ctrl-c
or ctrl-backspace, or Delete.

look at the first few lines of listed basic code. if there is a line that says
"BEGIN" then note the first free line number after that one, otherwise just
note the first free line number. you are going to add one new line of code,
and it should be as early as possible, but not before a BEGIN command, if
there is one.

assuming there is a line that looks like
40 BEGIN

and the next line is 50, then type this at the READY prompt:
0045 SETDAY ARGV(4)

where "4" is however many arguments total the bbx program had _after_adding_
BBX_DAY to the end. (not counting options to the bbx interpreter itself ( -q
-w 512 -c config ...)

then type, at the READY prompt:
save "/usr/prosper/prog/SM/SMC110"

then type BYE to exit the basic prompt

After this your application stands a good chance of running more or less
normally, albeit a few years in the past.

This set's the date to the current date, and the year to the current year +
72.
I fond that Prosper at least, will run with the year set to 00, but the days
of the week and the leap-year are all wrong. however 1972 is well documented
as being identical in structure to 2000. this does not touch the system date
and so is perfectly safe to do. 

 At the very least I can say This let's Prosper run, and we can look up old
orders and quotes and PO's and the whole nine yards, *greatly* releiving the
pressure on one lowly unix user who found himself having to become joe
seasoned admin overnight, by virtue of simply knowing how to spell unix.

even if this doesn't help any other app besides Prosper, I wanted this to get
out in case someone else thought they were as screwed as we thought we were
untill about 10 minutes ago. :) Or maybe I'll just learn from the responses to
this that I am the last living Prosper user. Call Guiness, I'm going for the
record...


Brian K. White - linut@squonk.net
-- 
+++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+>+<---<---]>>++.<++.


If this page was useful to you, please click to help others find it:  

Your +1's can help friends, contacts, and others on the web find the best stuff when they search.

Comments?




More Articles by



Click here to add your comments



Don't miss responses! Subscribe to Comments by RSS or by Email

Click here to add your comments


If you want a picture to show with your comment, go get a Gravatar



ad

Have you tried Searching this site?

Unix/Linux/Mac OS X support by phone, email or on-site: Support Rates

This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more. We appreciate comments and article submissions.

Publishing your articles here

Jump to Comments



Many of the products and books I review are things I purchased for my own use. Some were given to me specifically for the purpose of reviewing them. I resell or can earn commissions from the sale of some of these items. Links within these pages may be affiliate links that pay me for referring you to them. That's mostly insignificant amounts of money; whenever it is not I have made my relationship plain. I also may own stock in companies mentioned here. If you have any question, please do feel free to contact me.

Specific links that take you to pages that allow you to purchase the item I reviewed are very likely to pay me a commission. Many of the books I review were given to me by the publishers specifically for the purpose of writing a review. These gifts and referral fees do not affect my opinions; I often give bad reviews anyway.

We use Google third-party advertising companies to serve ads when you visit our website. These companies may use information (not including your name, address, email address, or telephone number) about your visits to this and other websites in order to provide advertisements about goods and services of interest to you. If you would like more information about this practice and to know your choices about not having this information used by these companies, click here.


My Troubleshooting E-Book will show you how to solve tough problems on Linux and Unix systems!


book graphic unix and linux troubleshooting guide


 I sell and support
 Kerio Mail server
pavatar.jpg

This post tagged:

       - Programming
       - SCO_OSR5
       - Troubleshooting
       - Y2K




Unix/Linux Consultants

Skills Tests

Guest Post Here