[Coco] Basic09 Level 3

L. Curtis Boyle curtisboyle at sasktel.net
Tue Aug 13 17:19:38 EDT 2013


A 4 byte LONG variable type would be nice, too. Wouldn't need to put results from file size system calls, etc. into a REAL number. :)

L. Curtis Boyle
curtisboyle at sasktel.net



On Aug 13, 2013, at 3:09 PM, Wayne Campbell wrote:

> I have thought about modifications to Basic09 much through the years. DCom,
> while it began as a meager attempt to unravel I-Code and give me my source
> code back, became the container for all I wanted to do to make Basic09
> better and more powerful. Since coming back to it in 2009, DCom has been
> replaced by unpack, which still isn't completed and is currently in the
> form of decode. As I pondered the features I wanted to see in Basic09, it
> became clear that what really needs to be done is to rewrite Basic09 to
> accommodate new features and more powerful functions. Below is what I have
> thought of.
> 
> 1. Replace the internal editor with a editing module that runs in a
> separate window. While I am not able to give all the details of how to do
> it, I believe that a combination of pipes and the use of a data module
> makes it possible for the error checking in Basic09 to communicate with
> (and pass data between) itself and the editor.
> 
> 2. Using the internal debug mode as a guide, create a separate debug module
> that also runs in its own window and communicates with Basic09 through
> pipes and the data module, but also allows for debugging packed I-Code in
> addition to unpacked I-Code.
> 
> 3. TYPEs in Basic09 seem to run into problems once you reach three levels
> of depth. What this means is:
> 
> Record.field.field.field
> 
> may not work as expected. I know that when passing a field of that depth as
> a parameter to a called procedure, the value of the field does not get
> resolved. Instead you get the value of the pointer to that field. As the
> manuals for Basic09 do not hint at or specify a maximum depth, and indeed
> seem to suggest that you can go as many levels deep as memory will allow, I
> consider this to be a bug, but others may disagree.
> 
> 4. Add a HEX$() function. There would need to be two versions, BYTE/INTEGER
> and REAL.
> 
> 5. Basic09 creates three tables for each procedure. They are the variable
> reference table, the branch reference table, and the comments table. When
> you pack the procedure(s), all of these tables are destroyed. I would like
> to see an option that allows these tables to be saved to disk before being
> destroyed. This would make decoding packed I-Code much easier, and would
> allow for the restoration of original variable names and line numbers. At
> the same time, I would like to see named labels and named constants added
> to Basic09.
> 
> I am sure I have forgotten something. When it comes to me, I will post it
> as a reply to this post.
> 
> 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
> http://five.pairlist.net/mailman/listinfo/coco
> 




More information about the Coco mailing list