[Coco] decode 1.2.10

Wayne Campbell asa.rand at gmail.com
Sun Jun 4 16:26:07 EDT 2017


Hi Bruce,

As I read your response it dawned on me that there is an entire group on
this list who wasn't here before, and that know nothing of DCom or decode.
I will create a background/history page to explain it in detail, and for
now I will do a brief history here.

As most all programmers can attest to, when you first begin writing code,
you tend to not make backups of your source, and you also tend to lose the
only copy you have for a variety of reasons, the predominant reason being
that you simply deleted the file by accident.

My language of choice, since I began programming, has been BASIC. When I
discovered OS-9 and Basic09, I knew that I had found the language I wanted
to program in. Like other programmers, I was not very good at remembering
to make backups of my source until I lost them enough times to learn a
lesson.

For me it took a few years to learn it. If you are programming in assembly,
and you lose your source but still have a compiled executable, a
disassembly will give you a good approximation of your source and you can
use that as the starting point to rebuild your source. All you have to do
is remember your variable and label names, and where your code may have
differed from the disassembly output. In Basic09 (or any BASIC that doesn't
compile to object code for that matter), you were not given that option.
Even if you had the I-Code module, you could not easily recover your source
code from it. For the most part you were relegated to starting all over
from scratch and rewriting your code from the beginning. I noticed that I
never was able to duplicate my code exactly, as the new modules differed
from the original.

In early 1991 I decided that someone needed to write a program to recover
source code from a Basic09 I-Code module, and since no one else was doing
it, I would. I named the program DCom - Basic09 I-Code De-Compiler. I
worked on that program from November, 1991 until approximately April, 1993.
At that time I had to sell my CoCo3 and everything that went with it, and
all I had left was a 3-inch binder of the source code and other related
Basic09 information. I managed to keep that binder until approximately
summer, 2009, when I was now in a position to get back to it.

I discovered quickly that DCom was a kludge. It was a miracle that the
program worked at all, and in most cases it didn't, or didn't work well. I
had learned alot more about programming and program structure over the
years, and decided that I needed to rethink the program and start over. The
program became decode, and has progressed to where it is now. I have had
some help along the way, notably from Aaron Wolfe who supplied me with a
routine to speed up the searches for counter identification and helped me
with file search routines.

I had to stop working on it again in 2014. For the past three years I have
left it alone pretty much, though I have kept up with the list and the
efforts to make our beloved CoCo more usable in the 21st century. Since I
have been able to return to work on decode, I have decided to try and take
the program the next step by correcting the display issues, adding a new
feature for preserving user options, and start thinking about the next step
in the evolution of the program.

One of the things that occurred to me before is that I really needed to
come up with a name that better identifies the program with its purpose.
Since I-Code is "packed" in Basic09, I reasoned that the opposite is
"unpacking". unpack is the name the program will have when it reaches the
point in development where it really becomes useful. That point is where it
is able to deal with merged module files and can identify modules that are
object code, and files that are not executable.

I have already written that code, several times, but decode (in its present
form) cannot be used with the unpack front-end. I am thinking it will
require a rewrite of both decode and unpack to make it work. Those details
are for another day, and for the history of the program document that will
be a page on the unpack-decode site.

I hope this answers your (and anyone else's) questions regarding what
decode is and what purpose it serves. Oh, and it is written in Basic09. I
am certain that if I could write it in assembly I could make it run faster
and be smaller than it is now, but I do not know assembly (or C) well
enough to do that, and I prefer writing it in Basic09.

Thank you for your interest, and if you or anyone else has questions about
the remaining issues the decode engine still has regarding I-Code, ask and
I will write another post detailing those issues.


On Sun, Jun 4, 2017 at 5:42 AM, D. Bruce Moore <bruce at gracenote.ca> wrote:

> Wayne,
>
> I took a look at your Decode page and I am not quite sure what’s going on.
>
> An intro, explaining what it is and does, in layman’s terms, might be a
> nice addition.
>
> Cheers!
>
>
>
> > On Jun 3, 2017, at 11:08 PM, Wayne Campbell <asa.rand at gmail.com> wrote:
> >
> > I have been working on decode for the past few days. I have gotten much
> > done to correct display issues and add support for preserving user
> options.
> > The new version is 1.2.10. When I can remember how to connect to
> cococoding
> > via telnet (unless that has changed) I will upload the updated pages and
> > new version disk images there.
> >
> > I had prepared a video to showcase decode, but when I went to upload it
> to
> > youtube, iSpring Free Cam8 crashed for no apparent reason. Because I had
> > not saved the project, I lost the video. I am back to square one and have
> > to make a new video. I will post here when I have the video made and
> > uploaded to youtube.
> >
> > --
> > Wayne
> >
> > The Structure of I-Code
> > http://www.cocopedia.com/wiki/index.php/The_Structure_of_I-Code
> >
> > decode
> > http://cococoding.com/wayne/
> >
> > --
> > Coco mailing list
> > Coco at maltedmedia.com
> > https://pairlist5.pair.net/mailman/listinfo/coco
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> https://pairlist5.pair.net/mailman/listinfo/coco
>



-- 
Wayne

The Structure of I-Code
http://www.cocopedia.com/wiki/index.php/The_Structure_of_I-Code

decode
http://cococoding.com/wayne/


More information about the Coco mailing list