Board index » delphi » DCP decompiler available!

DCP decompiler available!

as interesting as your tool sounds, please observe the Newgroup
Guidelines in Borland.public.announce and not cross or multiple post
messages.

 

Re:DCP decompiler available!


Hi, All!

  A very small utility 'dcp2dpk' available at
http://www.ems.ru/~gold/product.htm

  It's a program for decompiling Delphi Compiled Package (DCP) file
into Delphi Package Source (DPK) like this:
-------------------------------------------------------------------

Quote
>dcp2dpk dclqrt30.dcp

package Dclqrt30;

{$IMPLICITBUILD OFF}
{$IMAGEBASE $50330000}
{$RESOURCE Dclqrt30.RES}
{$RESOURCE QRNEW.DCR}
{$RESOURCE QREPORT.DCR}

requires vcl30, Qrpt30;

contains qrexpdlg, qreport, QRNew;

end.

Quote

-------------------------------------------------------------------

or like this in verbose mode:
-------------------------------------------------------------------

Quote
>dcp2dpk -v dclqrt30

package Dclqrt30;

{$IMPLICITBUILD OFF}
{$IMAGEBASE $50330000}
{$RESOURCE Dclqrt30.RES}
{$RESOURCE QRNEW.DCR}
{$RESOURCE QREPORT.DCR}

requires vcl30, Qrpt30;

contains
    qrexpdlg,   // Offsets $9D-$2C1D in Dclqrt30.dcp
                // 7252 bytes of code at address $50331D4C in Dclqrt30.dpl
                // 4 bytes of data at address $5033803C in Dclqrt30.dpl
    qreport,    // Offsets $2C1E-$44D4 in Dclqrt30.dcp
                // 5464 bytes of code at address $503339A0 in Dclqrt30.dpl
                // 4 bytes of data at address $50338040 in Dclqrt30.dpl
    QRNew;      // Offsets $44D5-$4F7D in Dclqrt30.dcp
                // 1748 bytes of code at address $50334EF8 in Dclqrt30.dpl
                // 4 bytes of data at address $50338044 in Dclqrt30.dpl

end.

Quote

-------------------------------------------------------------------

Bye.

ps. Freeware :)

Re:DCP decompiler available!


On Dec 03, 1997 07:47pm, "DMITRIY GOLDOBIN" <G...@EMS.RU> wrote to ALL:

 DG>   A very small utility 'dcp2dpk' available at
 DG> http://www.ems.ru/~gold/product.htm

 DG>   It's a program for decompiling Delphi Compiled Package (DCP) file
 DG> into Delphi Package Source (DPK) like this:

Neat! <g>

Turbo Power had a great utility called TPUINFO.EXE to display TPU
information.   It showed all the compiler directive states, size,
whether it had initialization code, etc.   I used it to optimize
and clean up my BP7 code, and also keep a history of compiled
versions.

Example:

TPUInfo version 7.0  Copyright (C) 1991,1993 J.P. Ritchey

Unit     Ext Ver    Flags                    Init   Code   Data  Actual Name
-------- --- --- ---------------------------  ---  -----  -----  -----------
TPSTRING TPU 7.D $N-,O-,D+,L+,G+                    8102     92
TPDOS    TPU 7.D $N-,O+,D+,L+,G+              Yes   6502     60
TPSTRDEV TPU 7.D $N-,O-,D+,L+,G+              Yes    247    512
TPINLINE TPU 7.D $N-,O-,D-,L+,G+                       0      0
TPDATE   TPU 7.D $N-,O+,D+,L+,G+              Yes   5751    232
TPMEMCHK TPU 7.D $N-,O+,D+,L+,G+                     158      0
TPCRT    TPU 7.D $N-,O-,D+,L+,G+              Yes  12427    140
TPWINDOW TPU 7.D $N-,O+,D+,L+,G+              Yes  14396     24
TPZCRC   TPU 7.D $N-,O-,D+,L+,G+                     209   1536
TTAPE    TPU 7.D $N-,O-,D+,L+,G+                     688   1360
TINYTASK TPU 7.D $N-,O-,D+,L+,G+              Yes    328      8
TPCMD    TPU 7.D $N-,O+,D+,L+,G+                    2063      2
TPENTRY  TPU 7.D $N-,O+,D+,L+,G+                   38903   1224
TIMESTUF TPU 7.D $N-,O+,D+,L+,G+                    6171      0
TASKFUNC TPU 7.D $N-,O+,D+,L+,G+                     752      0
TPENV    TPU 7.D $N-,O+,D+,L+,G+                    2694     92
TXTSHARE TPU 7.D $N-,O-,D+,L+,G+              Yes   1226      2

Do you think you can write one for Delphi? <g>

Hector Santos/Santronics

Re:DCP decompiler available!


Quote
Hector Santos wrote:

> Turbo Power had a great utility called TPUINFO.EXE to display TPU
> information.   It showed all the compiler directive states, size,
> whether it had initialization code, etc.   I used it to optimize
> and clean up my BP7 code, and also keep a history of compiled
> versions.

> Example:

SNIP

Quote
> Do you think you can write one for Delphi? <g>

> Hector Santos/Santronics

Hector,

I just dropped in on Dimitriy's site and he's not only got the dpr2dpk
converter utility, he's got an on-line dcu2pas utility that's about
40-55% complete!  It's not ready for primetime, yet, but it is
definitely getting there!  This means no more lost .PAS files-EVER!!!!

How quaint!

Derek

Re:DCP decompiler available!


Quote
Hector Santos wrote:
> Turbo Power had a great utility called TPUINFO.EXE to display TPU
> information.   It showed all the compiler directive states, size,
> whether it had initialization code, etc.   I used it to optimize
> and clean up my BP7 code, and also keep a history of compiled
> versions.

Hector,

While it's true we've had these utilities in the past as part of our
Analyst package, that one you're showing there was actually done by Pat
Ritchey, as it says in your dump :-) (I wonder what Pat's doing these
days, btw.)

We haven't ruled out the possibility of upgrading some or all the
Analyst tools for Delphi, but we have other things of higher priority
right now. Unfortunately, sales of Analyst have been less than
satisfactory in the past, presumably because too few people understood
what it could really do for them. Personally, I really miss having
TINFO*.* and in particular PSA.

- Per

Re:DCP decompiler available!


On Dec 04, 1997 10:06am, PER LARSEN <P...@TURBOPOWER.COM> wrote to ALL:

 PL> While it's true we've had these utilities in the past as part of our
 PL> Analyst package, that one you're showing there was actually done by Pat
 PL> Ritchey, as it says in your dump :-) (I wonder what Pat's doing these
 PL> days, btw.)

 PL> We haven't ruled out the possibility of upgrading some or all the
 PL> Analyst tools for Delphi, but we have other things of higher priority
 PL> right now. Unfortunately, sales of Analyst have been less than
 PL> satisfactory in the past, presumably because too few people understood
 PL> what it could really do for them. Personally, I really miss having
 PL> TINFO*.* and in particular PSA.

Well, I don't mean this in a "Bad Way", I really don't.   But the tendency
has been to "not care" any more about CODE, EXE and do I dare say
"efficiency".  Whether that is a natural tendency of a growing company
is left up to debate.

I think if the effort was put in and marketed right, you will get people
we will buy the "efficiency" product.  Like Borland, you will do what
you is best first.  Only later, do you find out what people are looking
for.  I sincerely doubt (atleast I have not seen it) a true market research
was done by TP (and Borland).

I think your product is a example of what is more needed.  Its a great
tool and more should be done with it.  You can see the delays for
DPL support starting to happen.

Anyway, this is especially more true under Windows then in DOS. In
fact, I personally never needed Analyst for DOS.   But under Windows,
with so much going on, so with much hidden, with so much that can be
improve to help the developer, an Analsyst and/or profiler is needed.

I personally would like  to see the following:

1) Source Cross reference system reporter/printout system.  Great for
   documentation. Great for Legal Filings <g>

2) Analyzer of compiled code, show dependencies, sizes, etc, like TPUINFO

In my opinion, too my "CANDY" is being done and the basics are being
forgotten.   I guess that what happens with you have an environment
was caters to a wider and "simpler" range of developers.

I can say this from my personal perspective. I was right there since early
1980 whatever when I sitting on my DEC VT100 terminal programming and I
just brought my first PC and got Turbo Pascal as a B-DAY present. I was
dieing to get home to play with it. <g> I saw a Borland Brochure add and
brought Kim's first product. Since then, I used all the key products Turbo
Power offered since then, Turbo Power Tool Kit, Apro, Btree, even migrated
to the Turbo Windows tools, WinSys, Data Entry, and naturally migrated to
Delphi. I regard Turbo Power as a top notch developer tools company.

But I could not help but noticed the overhead develop with the code. To
the point, that today, I don't use any more Turbo Power tools for Delphi. I
am always interested and keep in eye for whats going on. I stay uptopar
with what I have, but I don't use the delphi stuff.  I may use APD in a
future product but there are some concerns I have with it though. For
example, you can't do a basic KEEP with it! A natural COMM feature!! <g>
You killed half your market right there! :-)  I hacked APRO for Win32 a few
years back since APD was not finished at the time I needed 32 bit comm
processing. Terry had gave me the beta but there were still problems
with it. Same with BTREE.

Anyway, unless the overhead on these products are reduced and
optimized, "isolated more", I can see myself upgrading anymore. It
even has effected me in buying any of the new stuff since I feel
the same thing has occurred there too.  Don't know. I kinda lost
interest :-)

Of course,  if I completely don't care anymore about my code and
efficiency, it wouldn't be an issue like more people around
here. I can understand that, and maybe I am just a victim of
being an old timer. :-)

Again, this is just one customer view if it means anything.

Hector Santos/Santronics

Re:DCP decompiler available!


Hi Per !
(PFJMI)
I was one of the Analyst customers... <g>
It was really great to have it with TP. It helped me a lot
to get a global picture of my code, and to find unused units,etc.
I wished back in 95 to see it upgraded for Delphi 1.
I've many ideas for a product like this but it's a huge task to
develop, and it has to be backed by marketing expectatives...
Now we're plenty of cheap hardware for the soft we use, but
I see again a grow in ram comsumption and cpu time in latest
tools, so maybe it's time again to spend in minimizing and
optimizing.  The smart linker helps, but a recursive analysis can
maybe find tones of unused code.

Regards !
David

Per Larsen escribi en mensaje <348727DF.4...@TurboPower.com>...

Quote
>Hector,

>While it's true we've had these utilities in the past as part of our
>Analyst package, that one you're showing there was actually done by Pat
>Ritchey, as it says in your dump :-) (I wonder what Pat's doing these
>days, btw.)

>We haven't ruled out the possibility of upgrading some or all the
>Analyst tools for Delphi, but we have other things of higher priority
>right now. Unfortunately, sales of Analyst have been less than
>satisfactory in the past, presumably because too few people understood
>what it could really do for them. Personally, I really miss having
>TINFO*.* and in particular PSA.

>- Per

Re:DCP decompiler available!


Quote
Hector Santos wrote:

> Well, I don't mean this in a "Bad Way", I really don't.   But the tendency
> has been to "not care" any more about CODE, EXE and do I dare say
> "efficiency".  Whether that is a natural tendency of a growing company
> is left up to debate.

Is that a general observation for the industry as a whole or are you
talking about TurboPower specifically? Personally, I agree that it's a
shame that so many software producers at all levels these days seem to
feel they can get away with producing less efficient code because
computers have become so much faster and memory so much cheaper. Despite
the 50 times (or so) increase in CPU speeds over the last 10 years, a
global replace (for instance) still takes longer on Word97 on my current
computer than it did in WordStar in 1987 on the computer I had back
then.
That being said, at TurboPower, we *do* care about code quality as well
as efficiency. We always try to make the best possible trade-off between
good design, efficiency, flexibility, and of course profitability.
However, some of these goals are mutually exclusive to a greater or
lesser extent, and after all, if we can't sell a product, it doesn't
help if it's state-of-the-art.
Quote

> I think if the effort was put in and marketed right, you will get people
> we will buy the "efficiency" product.  Like Borland, you will do what
> you is best first.  Only later, do you find out what people are looking
> for.  I sincerely doubt (atleast I have not seen it) a true market research
> was done by TP (and Borland).

Of course, we get requests for an Analyst for Delphi as well as for lots
of other toolkits and tools that we don't currently sell. Analyst,
however, has proven to be particularly difficult to market because - as
I said - most people don't feel they need it. Of course, the people that
feel that way are typically the ones that need it the most<BG>. One of
the main reasons we don't currently have an Analyst product for Delphi
is that making tools like that consumes an inordinate amount of
resources. It's not particularly difficult to do a DCU info utility, for
instance, but it does take a lot of time because a commercial product
would have to account for all possible types of data in a DCU. We do
have quite a few of the tools that would go into an Analyst for Delphi
product as internal version, in more or less finished states (we use
them for our own development). At this point in time, however, it
doesn't make business sense to complete them with everything that
involves: Making sure they work with everything, writing documentation,
etc.

Quote
> In my opinion, too my "CANDY" is being done and the basics are being
> forgotten.   I guess that what happens with you have an environment
> was caters to a wider and "simpler" range of developers.

Exactly. You wouldn't believe some of the tech support calls we get
here. And this trend certainly doesn't cause Analyst to be moved nearer
to the top of the to-do list.

Quote
> I may use APD in a
> future product but there are some concerns I have with it though. For
> example, you can't do a basic KEEP with it! A natural COMM feature!! <g>

I'm sorry. I don't know what "basic KEEP" is.

Quote
> I hacked APRO for Win32 a few
> years back since APD was not finished at the time I needed 32 bit comm
> processing. Terry had gave me the beta but there were still problems
> with it.

That is a fairly normal experience with beta software.

Quote
> Anyway, unless the overhead on these products are reduced and
> optimized, "isolated more", I can see myself upgrading anymore. It
> even has effected me in buying any of the new stuff since I feel
> the same thing has occurred there too.  Don't know. I kinda lost
> interest :-)

The overhead, as you call it, is usually a combination of more
features/flexibility and/or a side-effect of the (rather unfortunate)
way Borland (and Microsoft, for that matter) has chosen to implement
object orientation in their languages: You can't have the trunk without
getting the whole elephant.

Quote
> Of course,  if I completely don't care anymore about my code and
> efficiency, it wouldn't be an issue like more people around
> here. I can understand that, and maybe I am just a victim of
> being an old timer. :-)

I am too, to an extent (a victim of being an old timer).

Quote
> Again, this is just one customer view if it means anything.

It does, but of course we can't base everything we do on your views
alone<g>.

Per

Re:DCP decompiler available!


On Dec 05, 1997 08:44am, PER LARSEN <P...@TURBOPOWER.COM> wrote to ALL:

 PL> Is that a general observation for the industry as a whole or are you
 PL> talking about TurboPower specifically?

I guess you're right. Its a general observation. <g>   But I was talking
about TurboPower too, here in this particular discussion since I am familar
with your company.

 PL> Personally, I agree that it's a shame that so many software
 PL> producers at all levels these days seem to feel they can get away
 PL> with producing less efficient code because computers have become so
 RL> much faster and memory so much cheaper.

Right, the typical response is memory and HD are cheap these days <g>

I just got a beta report today that uses VCL30.DPL. I was told that if
a VB 5.0 application loads first, VCL30.DPL errors upon my app startup.
No problem when VCL30.DPL starts first, the VB 5.0 app second.

The first thing that came to my mind is all the "OVERHEAD" and OCX, and
DLL loaded with VB apps.  Is there a conflict with VCL30.DPL and one
of these MS components, I wondered?

On a related note, what alot of people do not know is that depending on
the PENTIUM chips on board, the OS caches will reach a certain limit and not
improve no matter how more memory you add.  Having 64 megs sometimes will
degrade your system. :-)

We have been having a major discussion in our support forum on the entire
concept of improving paging and caching, and how to use the performance
monitor to tune the system.

It is incredible how many of the people believe that just because you
have a "Multitasking System", that you can LOAD anything you want, no
matter how big. As long as your throw in more memory, all will be fine.
Sometimes, it won't be fine.  It will be worst and of course the
"Software" gets the blame.

Another element of the discussion, which I brought up, was the idea of
Memory Map files.  Imagine if all developers begin to use MMFs to
"improve" their own apps at the individual level,  but if you load lots
of applications who all use MMFs, then the efficiency of your machine
decreases.   You end up with a huge paging requirements.  In fact,
I have this idea that maybe intelligent streamers should have a "threshold
concept" where if the file size is lower the X amount and fits within
Y percent of active memory, then the file should be loaded in non paging
memory, etc.  In other words, there should be some smarts when loading
memory map files.  Not everything has to be a memory map :-)

So there is a catch 22 here when it comes to Win32 efficiency.
Consideration has to be done not only at the Individual Application
level but at the entire system level as well.

That to me is the irony with Win32.  Microsoft and tools vendors
will create these HUGE system tools leaving very little run left for
the 3rd application under your typical system.   These machines with
IE4 loaded at all times,  well, all it means is that your application
will be running in a sardine can :-)

If you consider VCL30.DPL, it takes the loading of 6 or more D3
applications before you begin to break even as far as
efficiency.  If there is just 1 or 2 D3 apps loaded, you are actually
less efficent, system wise, when using VCL30.DPL, as oppose to 1 or
2 full blown D3 exes.   So the developer with 1 product only based on
VCL30.DPL, individually he is better off, his product looks good, his
distribution via the internet is improved because of the smaller size,
but for the END-USER?  The machine/system is less efficient.

What do you think?  Is this an example of breaking up VCL30.DPL into
its proper DPLs?

Anyway, these are some of the things that maybe a Analyst can do for
developers. :-)

 PL> That being said, at TurboPower, we *do* care about code quality as well
 PL> as efficiency. We always try to make the best possible trade-off between
 PL> good design, efficiency, flexibility, and of course profitability.

No doubt, TurboPower is among the last of the mohicans :-)

 PL> However, some of these goals are mutually exclusive to a greater or
 PL> lesser extent, and after all, if we can't sell a product, it doesn't
 PL> help if it's state-of-the-art.

But maybe there is a relationship with state of the art and customer
awareness and thus profitability?  no?

 PL> [Analyst] however, has proven to be particularly difficult to
 PL> market because - as I said - most people don't feel they need it.
 PL> Of course, the people that feel that way are typically the ones
 PL> that need it the most <BG>.

How is Sleuth selling?  I suppose it is doing very good?  People won't
know they need it until they encounter a "problem". :-)

 PL> One of
 PL> the main reasons we don't currently have an Analyst product for Delphi
 PL> is that making tools like that consumes an inordinate amount of
 PL> resources. It's not particularly difficult to do a DCU info utility, for
 PL> instance, but it does take a lot of time because a commercial product
 PL> would have to account for all possible types of data in a DCU.

Easy products, Huge Profits are the best, isn't it? <g>  The quickest
way to make money these days is to invent that 5 cent product that
everyone needs :-)

I guess thats been the story of my life.  Too me, if its isn't a
challenge, it isn't worth it. :-)

 PL> [Analyst]... At this point in time, however, it
 PL> doesn't make business sense to complete them with everything that
 PL> involves: Making sure they work with everything, writing documentation,
 PL> etc.

Why not have a survey to see what is the potential? Maybe you don't
need to do it ALL, but in pieces?  How about the "Analyst Series"?
where you sell this $20 per tool items all part of the Analsyt Series?
Kim told me once, he uses 1000 sales as a break even measure.  I'm sure
today, for TP thats 30-50K sales. :-)   Sometimes I think that a lure
can also help for your other products. :-)  This can be a lure.

Quote
>> In my opinion, too much "CANDY" is being done and the basics are being
>> forgotten.   I guess that what happens with you have an environment
>> which caters to a wider and "simpler" range of developers.

 PL> Exactly. You wouldn't believe some of the tech support calls we get
 PL> here. And this trend certainly doesn't cause Analyst to be moved nearer
 PL> to the top of the to-do list.

I also believe that "Every user eventually becomes an expert" :)  By
that I mean, that we might start out with all these gravy on the plate,
but eventually in the end, real developers start to nickpic their way
to the goodies, and start to ask the basics once again, "How can I do
this improve this".    Its basically, "Ok, I got these great tools and
it help me develop a fancy looking product.  Now its in the market, how
can I make it end-user ready" :-)  I think we all fall into that category
(End-user product producers).

 PL> I'm sorry. I don't know what "basic KEEP" is.

The ability for a different process to open and use a HOT PORT and
use it.  A hot port is one that was open and made available by
another process.

Apro/DOS had two functions:

         InitPort           Open Fresh Port
         InitPortKeep       Open Hot Port

This concept is missing in APD.    Under APD, AWWIN32.PAS does not
open (CreateFile) the com device in a inheritable state (the
TSecurityAttributes parameter of CreateFile). This simple lack of
feature, immediately eliminates a good chuck of market potential and
usage.

 PL> The overhead, as you call it, is usually a combination of more
 PL> features/flexibility and/or a side-effect of the (rather unfortunate)
 PL> way Borland (and Microsoft, for that matter) has chosen to implement
 PL> object orientation in their languages: You can't have the trunk without
 PL> getting the whole elephant.

Thats unfortunately true. But I still think products like Orpheus can
offer "components" that doesn't have to be so dependent on everything
else. :-)  I guess that is what happens in OOPS design.  I think the
product can be streamlined.  Have you considered a Orpheus Lite?   I
guess you can't because everything is locked in on each other :-)

 PL> I am too, to an extent (a victim of being an old timer).

Sometimes I think the less you know today, the better :-)  In
other words, starting fresh has an advantage to having to worry
about old customer/product support issues.  With the internet
moving so fast, it can be a hinderance to progress to have the
quality and commitment of supporting older product lines. I guess
Borland is in this exact situation today.  They want to so desperately
move on to new heights and customers, but they have to deal with their
older developer market. Its a real delima. But thats life and you
have to deal with it. :-)

Quote
>> Again, this is just one customer view if it means anything.

 PL> It does, but of course we can't base everything we do on your views
 PL> alone<g>.

Of course not. <g> I am just excercising my right to express my personal
views and experiences.  Yet, it isn't like I just came off the boat
either :-) I do know about Borland, I do know about Turbo Power and I have
been there from the git-go. So I have seen how it has evolved. :-)

I was not suggesting Analyst should be a top priority. I was basically
sharing why I have not persued TP products more like in the pass.  You
guys grew. You are now part of another company.  A different philopsophy
I am not your ideal customer anymore. :-)  When I think of APD and
ORPHEUS, I immediately think "big".  APD isn't that bad, but Orpheus
creates LARGE code.  I want to get the Security product (codeLock?) an
the archiver stuff, but I am hestitant because I immmediate see "big,
bulky" code.

I'll give you an example. There was a one question survey on your web
site, something about making Active X version of your components.  The
way the question was asked did not allow for "NO, I DO NOT WANT THEM".
It was all geared to getting a YES answer.  I wrote an email saying,
"Make them if you must, but don't get away from making Native
versions"

Of ...

read more »

Re:DCP decompiler available!


Quote
Hector Santos wrote:
> I just got a beta report today that uses VCL30.DPL. I was told that if
> a VB 5.0 application loads first, VCL30.DPL errors upon my app startup.
> No problem when VCL30.DPL starts first, the VB 5.0 app second.

Interesting!

Quote
> That to me is the irony with Win32.  Microsoft and tools vendors
> will create these HUGE system tools leaving very little run left for
> the 3rd application under your typical system.   These machines with
> IE4 loaded at all times,  well, all it means is that your application
> will be running in a sardine can :-)

<g>

Quote
> If you consider VCL30.DPL, it takes the loading of 6 or more D3
> applications before you begin to break even as far as
> efficiency.  If there is just 1 or 2 D3 apps loaded, you are actually
> less efficent, system wise, when using VCL30.DPL, as oppose to 1 or
> 2 full blown D3 exes.   So the developer with 1 product only based on
> VCL30.DPL, individually he is better off, his product looks good, his
> distribution via the internet is improved because of the smaller size,
> but for the END-USER?  The machine/system is less efficient.

> What do you think?  Is this an example of breaking up VCL30.DPL into
> its proper DPLs?

I wouldn't dream of using run-time packages in my own applications. I
hate it when I have to ship more than absolutely necessary. If I had the
time, I would create a custom version of the VCL for each application I
write, removing all the unused stuff. Ideally, the compiler should do
this for me, of course. Unfortunately, so far, Borland's priorities have
always favoured compilation speed over code quality/size.

Quote
> But maybe there is a relationship with state of the art and customer
> awareness and thus profitability?  no?

Maybe there is, but this relationship is extremely difficult to convert
into real data.

Quote
> How is Sleuth selling?  I suppose it is doing very good?  People won't
> know they need it until they encounter a "problem". :-)

Sleuth is doing remarkably well. I certainly hadn't anticipated that so
many developers would realize that they might have resource leaks in
their applications.

Quote
> Easy products, Huge Profits are the best, isn't it? <g>  The quickest
> way to make money these days is to invent that 5 cent product that
> everyone needs :-)

Contrary to what you might think, I don't believe there has been a
product in the history of TurboPower Software (with the possible
exception of OPRO) which generated profits that could be described as
"huge" by any stretch of the imagination. We're doing ok, but the market
is very competitive.

Quote
> Why not have a survey to see what is the potential? Maybe you don't
> need to do it ALL, but in pieces?  How about the "Analyst Series"?
> where you sell this $20 per tool items all part of the Analsyt Series?

We just might do that. It's not going to be $20 per tool item, though.
There's always some fixed overhead involved in creating a product which
would prevent us from going that low and stay profitable.

Quote
> The ability for a different process to open and use a HOT PORT and
> use it.  A hot port is one that was open and made available by
> another process.

> Apro/DOS had two functions:

>          InitPort           Open Fresh Port
>          InitPortKeep       Open Hot Port

> This concept is missing in APD.    Under APD, AWWIN32.PAS does not
> open (CreateFile) the com device in a inheritable state (the
> TSecurityAttributes parameter of CreateFile). This simple lack of
> feature, immediately eliminates a good chuck of market potential and
> usage.

If you can give me an example of how this would be useful, I just might
put it in - I'm rewriting portions of the APD low-level code as we speak
(well, almost).

Quote
> Have you considered a Orpheus Lite?  

Not really. What would you have us remove from Orpheus to produce an
Orpheus Lite? And do you think other customers would agree with your
choices?

Quote
> I'll give you an example. There was a one question survey on your web
> site, something about making Active X version of your components.  The
> way the question was asked did not allow for "NO, I DO NOT WANT THEM".
> It was all geared to getting a YES answer.  

Maybe you're right. I had nothing to do with wording that survey, but I
know that it's not easy to come up with questions for a survey that let
everyone express their opinion as a multiple choice.

Quote
> I wrote an email saying,
> "Make them if you must, but don't get away from making Native
> versions"

Fine. We won't. VCL controls are our core business.

Quote
> This whole discussion was just
> that, a discussion, just throwing out views.  I appreciate your
> input as well.

Likewise.

Regards

- Per

Re:DCP decompiler available!


On Dec 06, 1997 12:40pm, PER LARSEN <P...@TURBOPOWER.COM> wrote to ALL:

 PL> Sleuth is doing remarkably well. I certainly hadn't anticipated that so
 PL> many developers would realize that they might have resource leaks in
 PL> their applications.

I'm not surprise at all. Sleuth is a "required" Delphi tool, IMO <g>

I wish there was "more explanations" of things though.  I mean, like
where in is that "allocation" exactly in the source instead of just seeing
"system.getmem" or something like that. <g>   You gave me hint once,
that I saved. I have to find that.

 PL> We just might do that. It's not going to be $20 per tool item, though.
 PL> There's always some fixed overhead involved in creating a product which
 PL> would prevent us from going that low and stay profitable.

I was thinking more in the area of "productlets",  15-20 so productlets.
Each $20.00.  Even if I just buy 1/2 of them, TP can make
$160.00-$200.00.   Understand?

I really like this concept and I personally believe you will see more
of this in the future across the board. I think you will especially
see it in the publishing area where authors will being to sell "chapters"
at a fraction of the cost, but as a total, the profits are larger.

Many times, you just one 1 or 2 part of "something" and at $20.00, you will
see the higher profits.  Just consider, Orpheus. I forget the retail
cost, but simply divide the cost by the total components and I believe
you will see alot less than $20.00.

Also, consider the marketing measures that can be done.  You will instantly
see what are the more or least popular components.

I think if {*word*104}space is utilitized,  the overhead can be substantially
reduced.  HTML/Win32 documentation would be all the customer would get
for $20.00. <g>

Quote
>> The ability for a different process to open and use a HOT PORT and
>> use it.  A hot port is one that was open and made available by
>> another process.

 PL> If you can give me an example of how this would be useful, I just
 PL> might put it in -

Ok, I will below..

 PL> I'm rewriting portions of the APD low-level code
 PL> as we speak (well, almost).

Oh goodie.  If I may, allow me to suggest one major enhancements that
can be done to APD:

      low level objects allows APD to be console application
      useable.  Not everything has to be gui, you know? <g>

If this was done. I believe you can recapture or interest many of the DOS
products people who need to port over quickly.   I was very succesful in
single source my DOS app and Win32 App in the area of commnications, both
use the same code :-)

About the hot port, but adding a property "Sharable Port" then applications
such as the following can be written:

    - Online systems that support "DOORS".  The main comm
      controller or top level application opens the port in
      shareable mode.   Most Online/BBS systems offer 3rd party
      hooks to run 3rd party applications. These are called
      "Doors" (don't ask me why?).   Usually the BBS will offer
      a standard interface file called DOOR.SYS when calling
      a "door" which describes the port handle/comm, etc.

      The Door will now open the "hot port" and take over
      communications for the session.

    - Frontend Systems like a Online BBS or a Mailer can now
      offer "Fax Hooks" or mail gateway hooks by passing the
      hot port to these applications. I would be able to
      use APD to write a "3rd party" Fax receiver/sender that
      will work will augment a mailer or BBS systems.  In fact,
      that was one of the first things I tried to do with APD.
      My frontend mailer (using APRO/win32, my version) has control
      of the  ports.  By default APD, assumed it will open and
      create the ports.

Other than that, there is no reason to limit such a natural
communication feature for high end products.

If I may help reduce some of your time....<g>  basically, this is
all you need to do in ADPORT.PAS:

    Property    OpenHot  : Boolean  Read fOpenHot; Write fOpenHot;
    Property    Sharable : boolean; readk fShareable; write fSharable;

Application types:

1) Application will open/own the ports and make it shareable for
   possible spawned 3rd party processes:

   Usages:

       tadport1.shareable := true;
       tadport1.open;

   Low level Source change in AWWIN32.PAS

    Function Win32OpenCom(,,,shareable:boolean);

    Var sa : TSecurityAttributes

    fillchar(sa,sizeof(sa),0);
    sa.nLength := sizeof(sa);
    sa.bInheritHandle := Shareable;

    Result := CreateFile(ComName,
                         GENERIC_READ or GENERIC_WRITE,
                         0,
                         @SA,                           <<< Change
                         OPEN_EXISTING,
                         FILE_ATTRIBUTE_NORMAL or
                         FILE_FLAG_OVERLAPPED,
                         0);

   How the port handle is passed to 3rd party applications is
   left up to the implementation/app designer.

   IMPORTANT:  we must be able to disable the threads and events
   before the application can spawn and pass off a hot handle.  So
   you will need add something like:

         tAdpPort1.Suspend;
         tAdpPort1.resume;

   commands. i.e,

         tapdPort1.Shareable := true;
         tapdport1.open;
         .....
         //
         // Connection establish, pass off port to applet.
         //
         tapdport1.suspend;
         ExecAppWait(Format('Applet.exe /p %d',[tapdport1.ComHandle]));
         tapdport1.resume;

2) Application is using a hot port (like AppLet.Exe above).  This
   is the more harder part.

       Tapdport1.ComHandle := StrToInt(SwitchParameter('/P'));
       tapdport1.OpenHot   := TRUE;
       Tapdport1.Open;

   Open needs to be changed where it says:

              InitPort
   to:
              If fOpenHot then
                 InitPortHot
              else
                 InitPort

   Or propagate thru the object and use fOpenhot within the InitPort
   logic.   In either case, this is where you skip the CreateFile
   and simply use the fComHandle value passed.

   This is where I get fuzzy because I have not done this part
   but I believe you will now need to duplicate the file handle so
   that you can re-create the Overlap I/O and Write/Read Events
   for it.  Not sure if the file handle that is passed also
   carries the I/O overlapped behavior.

   I can figure this out if you like.

Hope this helps or it doesn't make it worst? <g>

Quote
>> Have you considered a Orpheus Lite?

 PL> Not really. What would you have us remove from Orpheus to produce an
 PL> Orpheus Lite? And do you think other customers would agree with your
 PL> choices?

I don't know. I can only speak for myself. I brought Orpheus for one
need only at the time. I was looking for a "virtual String grid". I
knew it had all the extra goodies, so that was a bonus.  But I paid,
the what?, $169 or whatever just really for the grid. :-)  It worked
but the overhead problem came into the play.  My code was only 500K
and it nearly double in size if I recall.  I didn't like that <g>
So I rolled up the sleeves and wrote my own component here.

But to answer your question, you will need a survey to get the initial
feel.

 PL> Maybe you're right. I had nothing to do with wording that survey, but I
 PL> know that it's not easy to come up with questions for a survey that let
 PL> everyone express their opinion as a multiple choice.

Would you like to see ActiveX versions of TurboPower Componets?

    ( ) YES
    ( ) NO
    ( ) Ok, but I still want Native controls!
    ( ) No opinion

Usually does it <g>

See ya

Re:DCP decompiler available!


Quote
Hector Santos wrote:
> I'm not surprise at all. Sleuth is a "required" Delphi tool, IMO <g>

> I wish there was "more explanations" of things though.  

Yeah, the documentation could be much better. The next version will have
more information and be easier to use too.

Quote
> I was thinking more in the area of "productlets",  15-20 so productlets.
> Each $20.00.  Even if I just buy 1/2 of them, TP can make
> $160.00-$200.00.   Understand?

I understand, but that would require a paradigm shift in the way we do
business now. We sell more than half of our stuff through dealers and
there's no way we can get them to carry a $20 product - or manage a
single product with dozens of $20 options. I'm sure over time more
business will move to the internet, which makes what you suggest more
feasible, but we're not quite there yet: Lots of people still have
reservations about paying on-line and I think many people still prefer
documentation on paper.

Quote

>       low level objects allows APD to be console application
>       useable.  Not everything has to be gui, you know? <g>

AFAIK, there's nothing in APD that prevents you from writing a pure
console app. I must admit that I haven't tried it, though. I'll make
sure we verify that it's possible before 2.5 is released.

Quote
> About the hot port, but adding a property "Sharable Port" then applications
> such as the following can be written:

More than I wanted to know<g>. Seriously, I've saved your message. I'll
see if we can get it in for 2.5. Otherwise it will probably be in the
next release.

- Per

Other Threads