[net.micro.pc] Lotus 1-2-3 question

patrick@ISM780.UUCP (08/13/85)

Does anyone know how to bypass the Lotus 1-2-3 copyright notice, and
their arrogant insistence that I read it, and "Press any key to
Continue", before I can get on with my work?

I am trying to put together a system which involves using 1-2-3 in batch
(unattended, non-interactive) mode  - I can invoke it under the control
of my UNIX system.  The auto-start worksheet and auto-start macro
capabilities provide just what I need, but the whole process is
frustrated if someone has to stand by the PC keyboard just to press a
single key.

I've tried redirecting input to 1-2-3, and also forcing a carriage-return
into the keyboard buffer.  No luck.  (They seem to clear the buffer
before waiting for a key).

Patrick Curran

Interactive Systems Corp
Santa Monica, CA

decvax!cca!ima!patrick
{uscvax|ucla-vax|vortex}!ism780!patrick

gjs@faust.UUCP (08/14/85)

I use ProKey to automatically get past 1-2-3's initial screen and get
on with real work.  I do this by defining an "auto execute" ProKey
macro which waits a couple of seconds, then "presses" RETURN.  The
macro is invoked via a DOS command line immediately before invoking
123:

    prokey 123.pro/r /[alt0]
    123

This makes ProKey read macro definitions from file 123.pro, then
execute the macro named alt0.  This same macro and command line will
work with any program with an initial screen, such as Symphony,
Framework, etc.

If you're invoking 123 from batch, you might consider using ProKey
macros instead of 123 macros, because the former can reside in a
separate file which can be used with many spreadsheets.

SuperKey has capabilities nearly identical to those above.

I have no connection with ProKey or SuperKey except as a satisfied
customer.  Opinions expressed here are not necessarily those of
Intermetrics, or even mine.

    -- George Snyder -- Intermetrics Inc. -- inmet!gjs --

brown@nicmad.UUCP (08/15/85)

In article <31300003@ISM780.UUCP> patrick@ISM780.UUCP writes:
>
>Does anyone know how to bypass the Lotus 1-2-3 copyright notice, and
>their arrogant insistence that I read it, and "Press any key to
>Continue", before I can get on with my work?

I am assuming that you don't have 1-2-3 on a hard disk.  Because if you
do I am assuming that you have the master diskette in drive A:.  You
could always use debug to bypass the protection scheme, so that you can
use it on a hard disk, without the master diskette (a copyright question
that really hasn't been answered by the Supreme Court).  

But, to answer your question, the only way to do it is to use debug to
go into the 123.EXE code and jump around the keyboard call.  It is an
annoying 'feature' that needs to be skipped.  Maybe I'll look into it.
-- 

Mr. Video   {seismo!uwvax!|!decvax|!ihnp4}!nicmad!brown

patrick@ISM780.UUCP (08/16/85)

Thanks for the suggestions guys, but I'm not there yet.

I can't use a "keyboard enhancer" because the need for backward
compatibility with previously-existing software (PC/IX) precluded the use
of BIOS to read the keyboard.  Why?  Because Microsoft in their wisdom
seem to have decided that no-one will ever want to use the "5" key on the
numeric keypad (in its non-numlock mode).  BIOS refuses to return this
value to me.  There's a gap in the table of "Auxilliary Byte Values"
where this code should be (cursor left returns 75 and cursor right
returns 77).  You can hold down the 5 key till you drop, but the BIOS
won't return a 76.  Anyone from Microsoft care to explain this to me?
Unfortunately this key is the HELP key for the PC/IX editor, and I
couldn't reassign it.  So, no BIOS, and no nifty keyboard enhancers.

As to disassembly, and cracking the copy protection (I assume that the
sign-on message is part of the copy protection scheme), there's not
much I can say in a public forum; I'll restrict myself to a discussion
of the general principles.

As someone who is responsible for developing a PC product which has cost
a lot of money, I fully understand the urge to protect such an investment
by protecting the resulting software.  However, our product is not copy
protected.  I wouldn't have the nerve to tell my customers that they
couldn't install it on a hard disk, or that they could not back up
_every_ portion of it for their own protection.  We will sell site
licenses, and will assume that our (corporate) customers will abide by
the terms of those licenses.  I admit that the decision would have been
much more difficult if we were selling single copies to the general
public.

Our product is designed to be used in conjunction with 123 and other
popular PC packages.  If 123 were capable of purely batch-type
operations, I could download data from my host system, manipulate it with
123, and ship the resulting report back up to the host for distribution
by electronic mail.  All of this without human intervention (I could take
a coffee break while the machines did their stuff).   As it is, I must
stand by the PC, ready to "Press any Key to Continue".

So, in order to protect their own investment in software development,
Lotus have implemented a copy-protection scheme which makes our product a
little less useful, and hence reduces the returns on _our_ investment in
software development.

I would gladly exchange this copy of 123 for one which was copy-protected
in any other way, but which allowed me to perform true batch operations.
Anyone from Lotus want to take me up on this?   Where are these dongles
you keep talking about?  I'll take one now.

brown@nicmad.UUCP (08/18/85)

In article <31300005@ISM780.UUCP> patrick@ISM780.UUCP writes:
>As to disassembly, and cracking the copy protection (I assume that the
>sign-on message is part of the copy protection scheme), there's not
>much I can say in a public forum; I'll restrict myself to a discussion
>of the general principles.

The 1-2-3 sign-on screen, which contains the copyright notice and to press
a key to continue, is NOT part of the copy protection scheme.  I am in the
process of looking for the subroutine that prints/looks for the key press.
It is not much fun going over code when you can't print it.  But, I will
find it sooner or later.

It does seem that even if I did tell you what three bytes to change in the
1-2-3 code, you would probably have a hard time getting your customers to
let you do it.  Also, there appear to be at least two, if not three, different
versions of 1-2-3.  So, it would make it even harder to get them to change
the code.

>So, in order to protect their own investment in software development,
>Lotus have implemented a copy-protection scheme which makes our product a
>little less useful, and hence reduces the returns on _our_ investment in
>software development.

The copy protection scheme, as I said above, has nothing to do with the
copyright notice, etc.
-- 

Mr. Video   {seismo!uwvax!|!decvax|!ihnp4}!nicmad!brown

brown@nicmad.UUCP (08/18/85)

In article <321@nicmad.UUCP> brown@nicmad.UUCP (Mr. Video) writes:
>In article <31300005@ISM780.UUCP> patrick@ISM780.UUCP writes:
>>As to disassembly, and cracking the copy protection (I assume that the
>>sign-on message is part of the copy protection scheme), there's not
>>much I can say in a public forum; I'll restrict myself to a discussion
>>of the general principles.
>
>The 1-2-3 sign-on screen, which contains the copyright notice and to press
>a key to continue, is NOT part of the copy protection scheme.  I am in the
>process of looking for the subroutine that prints/looks for the key press.
>It is not much fun going over code when you can't print it.  But, I will
>find it sooner or later.

Well, it is sooner than I thought.  I found the CALL for the copyright notice.
The fix that I am going to give is for the '*' version of 1A.  In the notice
it says 'Release 1A' and right below that, centered, is a '*'.  This is the
version that the fix pertains to.  This fix DOES NOT remove the copy 
protection, it only stops the displaying of the copyright notice and stops
the entry of any key.  Here are the steps involved:

	1. REN 123.EXE 123.XXX
	2. DEBUG 123.XXX
	3. U 4F2
	   It should say CALL 0456.  If not, do not continue, wrong version.
	4. E 4F2 90 90 90
	5. W
	6. Q
	7. REN 123.XXX 123.EXE

I have mine fixed up and that is the way I will use it from now on.
-- 

Mr. Video   {seismo!uwvax!|!decvax|!ihnp4}!nicmad!brown

gmv@cbuxc.UUCP (Mike Vrbanac) (08/21/85)

Subject: Re: Lotus 1-2-3 question
In-Reply-To: your article <31300005@ISM780.UUCP>

Direct mail didn't work out, so I'm posting my reply....

Patrick:
I just put up the new version of Lotus Symphony, v1.1.  You might be interested
to know that it no longer requires the user to hit a carriage return after
the logo screen is displayed.  It simply sits there for a few seconds, and then
takes off.  The spreadsheet in Symphony is even more powerful than 1-2-3, 
although Symphony is a larger program, hence less memory is available for the
sheet.  V1.1 has a sparse matrix memory allocation algoritm, so memory is
better utilized.  I think many of these features will be in 1-2-3 v2 due out
this fall.  I don't know if 1-2-3 will automatically continue after its logo
or not.

As an aside, I've been *very* impressed with the World of Lotus on 
CompuServ.  There is a direct e-mail to Lotus support, and they get
the right answers quickly.

-- 

 +--------------+------------------------+-----------------+
 | Mike Vrbanac | AT&T Bell Laboratories | Columbus, Ahiya |
 +--------------+------------------+-----------------------+
 | Unix: {cbosgd|ihnp4}!cbuxc!gmv  |  CompuServ: 76054,113 |
 +---------------------------------+-----------------------+

dms@chinet.UUCP (Dave Slocum) (08/22/85)

Patch to bypass copyright notice (and 'press any key to continue'), 
for Lotus 123, version 1A. 
 
Patch by Dave Slocum, 8/21/85. 
 
THIS PATCH APPLIES ONLY TO 123.EXE, VERSION 1A, dated 06/07/83, length 89856. 
 
THERE MAY BE MORE THAN ONE VERSION 1A.  THE RELEVANT VERSION HAS 
NO ASTERISK ON THE BANNER SCREEN.  Make sure the tests below are met 
before continuing with the patch. 
 
D>ren 123.exe 123x 
 
D>debug 123x 
-r 
AX=xxxx  BX=0001  CX=5F00  etc..	; length must be 15f00 
-u 49d,49f 
xxxx:049D E85106	CALL	0AF1	; this must match 
-u 4c8,4ca 
xxxx:04C8 E8A316	CALL	1B6E	; this must match 
-a 49d 
xxxx:049D  nop 
xxxx:049E  nop 
xxxx:049F  nop 
xxxx:04A0				; press <enter> 
-a 4c8 
xxxx:04C8  nop 
xxxx:04C9  nop 
xxxx:04CA  nop 
xxxx:04CB				; press <enter> 
-w 
Writing 15F00 bytes 
-q 
 
D>ren 123x 123.exe 
 
Dave Slocum 
UUCP:	ihnp4!chinet!dms 
BBS:	Gene Plantz' Chicago IBBS, ID0095.

gjs@faust.UUCP (08/22/85)

> I can't use a "keyboard enhancer" because the need for backward
> compatibility with previously-existing software (PC/IX) precluded the
> use of BIOS to read the keyboard.  Why?  Because Microsoft in their
> wisdom seem to have decided that no-one will ever want to use the "5"
> key on the numeric keypad (in its non-numlock mode).  BIOS refuses to
> return this value to me.

I'm not sure how you're bypassing BIOS from BATCH and/or Unix(tm Bell
Labs).  ProKey 4.0 lets you redefine the "5" on the numeric keypad, as
well as many other keys that you wouldn't think possible.  These keys
can also be invoked by other macros, because they have unique ProKey
names, such as <ctr> for the "5", and <k*> for the "*" on the numeric
pad.  Using such a scheme might be easier that convincing your users to
patch their copies of 1-2-3.

    -- George Snyder -- Intermetrics Inc. -- inmet!gjs --

patrick@ISM780.UUCP (08/24/85)

Thanks to those who posted patches for the 123 sign-on screen.  I tried
the one supplied by "Mr. Video" and it  worked just fine.

As to keyboard enhancers, I found George Snyder's note interesting.  If
Prokey does allow reassignment of the numeric 5 key, then they must be
taking over the hardware interrupt (I know of no other way to determine
that this key has been pressed).  We too take over this interrupt, and
interpret the keyboard scan codes directly.  (The fact that we can run
the PC software under the control of a UNIX system is irrelevant for the
purpose of this discussion.)   By the way, another reason we couldn't use
BIOS is that we make heavy use of ALT numeric-keypad combinations.
Because these can be used to enter ASCII values directly, their values
aren't returned by BIOS until the ALT key is released.  This makes it
very difficult to enter several of these key combinations in quick
succession.

I assume that keyboard enhancers function only with application software
which reads the keyboard via INT 16, and that they take over this
interrupt so that they can perform macro expansions on the raw key-stroke
data retrieved from the hardware.

This implies that if I could _guarantee_ that my users have Prokey, I
could direct them to define the appropriate values for the "hidden keys",
and use INT 16 myself to retrieve keystrokes.  Of course I can guarantee
no such thing, and even if I could this wouldn't be very user-friendly,
so I have to read the hardware.

It seems that there's no way I can provide compatibility with RAM-
resident software (such as ProKey or Sidekick) if that software takes
over the keyboard interupt vector; we can't both service those
interrupts.  (I could provide alternative mechanisms of reading the
keyboard, and allow the user to configure the system appropriately, but
this sounds like more trouble than it's worth.)

On the other hand I could probably make our stuff more compatible with
software which uses INT 16 to read the keyboard, if we coded our keyboard
routine in the form of a replacement for that interrupt, and ensured that
it returned all the "legal" values in addition to the "invisible" values
which the BIOS refuses to return.  Presumably the RAM-resident software
would then call my INT 16, and never know the difference.

Does this make any sense?  Am I missing anything?  Does anyone know
exactly how Prokey, Sidekick, etc. manage the keyboard?   How about the
Microsoft or Mouse-Systems mice?

Patrick Curran

INTERACTIVE Systems Corp.

decvax!cca!ima!patrick
{uscvax|ucla-vax|vortex}!ism780!patrick