[comp.sys.amiga.programmer] Demo versions

GHGAQA4@cc1.kuleuven.ac.be (Tyberghein Jorrit) (01/31/91)

Hi,

I want your opinion. I'm writing a machinelevel debugger for Amiga.
When it is ready I would like to commercialize it. To make my
product better known a demo version would be nice, but I don't really
know how to make a demo version of a debugger. It is very easy
to make a demo version of an editor, simply remove the 'save' option
and the problem is useles while you still can test the power of the
editor (look at the TurboText demo). But my debugger simply does not
have a 'save' command (It has, but this 'save' command is not that
useful). What should I remove, or what should I do to make the
program unusable. You should still be able to see how powerful it is.
I have the following suggestions :

- Set limits on the program (only debug programs smaller than 5 K,
  no debugging on mondays :-), only allow some 100 commands in one
  debug session, ...). The big problem with this approach is that
  these limits are generally easy to remove (for a hacker, he could
  even use my debugger :-).
- Remove some vital things (like the 'trace' command (to singlestep)).
  The problem with this approach is that the debugger looses power.
  Some features will be more difficult to demonstrate.
- Replace all commands in the debugger with dummy commands that generate
  a possible sample of output but not the real output for your system.
  The problem here is that this is a lot of work to program and it is
  more difficult to demonstrate the power of the program.

If you have any suggestions, please mail me or post it in the newsgroup.

        Jorrit Tyberghein

cmw1725@tamsun.tamu.edu (Christopher Walton) (02/01/91)

My first thought was to make an interactive demo of yourself debugging
something and upload that.  It shows what the debugger can do, by the
one who know how to use it most.  You could do this with a io catcher/saver,
or just make a text file of a session.  I would rather have a demo that
puts up a screen and asks what I want to know about (which feature), I click
on it, it shows you doing that function to it's highest degree.

Just a thought.

Christopher Walton
cmw1725@tamsun.tamu.edu
n074ev@tamuts.tamu.edu

ridder@elvira.enet.dec.com (Hans Ridder) (02/01/91)

In article <91031.112859GHGAQA4@cc1.kuleuven.ac.be> GHGAQA4@cc1.kuleuven.ac.be (Tyberghein Jorrit) writes:
>It is very easy to make a demo version of an editor, simply remove the
>'save' option and the problem is useles while you still can test the
>power of the editor (look at the TurboText demo). But my debugger simply
>does not have a 'save' command....

How about disabling the 'load' command (if it has one), and have a built
in program with a bug in it (causes a Guru or some such).  Then only
allow that program, and maybe a few other places in memory to be
examined/modified/traced, like the task structure for the "broken" task,
and some system structures....  When the user trys to examine an area
outside of the boundaries, give a nice error message about buying the
non-demo version.

Of course someone could use another debugger to "fix" your debugger,
possibly allowing full or nearly full functionality, but there's some
level of risk you're going to have take to get the benefit of the
publicity of the demo.

>        Jorrit Tyberghein

-hans
------------------------------------------------------------------------
  Hans-Gabriel Ridder			Digital Equipment Corporation
  ridder@elvira.enet.dec.com		Customer Support Center
  ...decwrl!elvira.enet!ridder		Colorado Springs, CO

jsmoller@jsmami.UUCP (Jesper Steen Moller) (02/03/91)

In article <2438@shodha.enet.dec.com>, Hans Ridder writes:

> In article <91031.112859GHGAQA4@cc1.kuleuven.ac.be> GHGAQA4@cc1.kuleuven.ac.be (Tyberghein Jorrit) writes:
> >It is very easy to make a demo version of an editor, simply remove the
> >'save' option and the problem is useles while you still can test the
> >power of the editor (look at the TurboText demo). But my debugger simply
> >does not have a 'save' command....
> 
> How about disabling the 'load' command (if it has one), and have a built
> in program with a bug in it (causes a Guru or some such).  Then only
> allow that program, and maybe a few other places in memory to be
> examined/modified/traced, like the task structure for the "broken" task,
> and some system structures....  When the user trys to examine an area
> outside of the boundaries, give a nice error message about buying the
> non-demo version.

Good idea...

> Of course someone could use another debugger to "fix" your debugger,
> possibly allowing full or nearly full functionality, but there's some
> level of risk you're going to have take to get the benefit of the
> publicity of the demo.

Well, not really. If you remove a command like load, which is (I guess)
is a rather longish one, nobody can replace it. If you put a kludge in
to remove load, it's not good enough. Exclude it by something like:

void load(void)
{
#ifdef DEMO
printf("Can't load - It's just a demo");
#else
....
/* stuff for loading or whatever - choose a long and hard to imitate
command... */
....
#endif

(or use a comditional assembly directive in assembler)
I used the same scheme for a commercial project of mine, and nobody
can make a save-routine work, if it isn't there.
Many good crackers can, however, remove the "5K max", or "ten minutes
only, and never of the 1st of April"-limitations. :-)

/Jesper

> >        Jorrit Tyberghein

> -hans

--                     __
Jesper Steen Moller   ///  VOICE: +45 31 62 46 45
Maglemosevej 52  __  ///  USENET: cbmehq!cbmdeo!jsmami!jsmoller
DK-2920 Charl    \\\///  FIDONET: 2:231/84.45
Denmark           \XX/  OPINIONS: Certainly!

ccplumb@rose.uwaterloo.ca (Colin Plumb) (02/06/91)

For a demo version of a debugger, how about small, fixed-size symbol
tables.  It would be useful on toy code, but nothing over, say, 50
lines (if that was the size of the compiled-in table).

Diking out all of the table-allocation code is a bit more work than
removing a save command, but still not that much work.
-- 
	-Colin

steed@digitm.UUCP (Steed Kulka) (02/06/91)

In article <1991Feb2.204031.2084@evax.arl.utexas.edu>
hill@evax.arl.utexas.edu (Adam Hill) writes:

>How about a demo copy being put up at ab20?

Aye, I wish we had a true Internet access here :-(
Actually we are restricted to upload/download to/from nodes included in the
commodore.com dominion; but a demo disk is on the way to a friend of us in
the States - and *he* is on Internet... ;-)

Sometimes I feel to be in the wrong place at the wrong time (well, not when
it comes to gourmet food & wine :-) :-) :-) ).



--
  _     _   _  ___ __        
 (_)   | \|/ _| | |_  /\ |\/|   Steed Kulka
-----  |_/|\_/| | |__/--\|  |

BIX: digiteam
UUCP: {uunet|pyramid|rutgers}!cbmvax!cbmehq!cbmita!digitm!steed

steed@digitm.UUCP (Steed Kulka) (11/22/91)

In article <91031.112859GHGAQA4@cc1.kuleuven.ac.be> GHGAQA4@cc1.kuleuven.ac.be
(Tyberghein Jorrit) writes:
>...
>I don't really know how to make a demo version of a debugger
>...

Make it suitable for 68000 only (i.e. do not include code ops for higher
cpus), disable log options, disable multitasking (breaking the Golden Rule
may be permitted in such cases, I guess), make demo executable only under
NOFASTMEM, enable small user-definable symbol tables. All things that leave
much of the original flavour, but don't make a demo a useful & friendly tool.

Do not compile routines which are not intended to be used in the demo.
We are currently giving away a demo/test version of our paint program Art
Nouveau which does not save pictures/clips/c-data/icons/patterns etc. - but
we did not include the actual code responsible for data saving, if we had
done such a foolness as:

	bra .this_is_a_demo
	...
	(saving routines here)
	...
this_is_a_demo:
	rest of proggie

hackers surely would have cracked it at once.

Good luck - we need good debuggers (sigh) ;-)
--
  _     _   _  ___ __        
 (_)   | \|/ _| | |_  /\ |\/|   Steed Kulka
-----  |_/|\_/| | |__/--\|  |

BIX: digiteam
UUCP: {uunet|pyramid|rutgers}!cbmvax!cbmehq!cbmita!digitm!steed