[Coco] The Coco's first webserver, written in Basic09

Wayne Campbell asa.rand at gmail.com
Fri Jan 1 00:13:34 EST 2010


I did not intend to offend you, Christian, and I apologise if I have. I know 
that I have difficulty getting things sometimes. It is one of the primary 
problems I face each day. I am also currently working on multiple things, 
and am not much of a multi-tasker. It may be that some of the other things 
I'm dealing with code-wise are bleeding into this, and I am losing the 
intent.

I will return to my coding. I hope you find the answer you are looking for. 
:)

Wayne

----- Original Message ----- 
From: "Christian Lesage" <hyperfrog at gmail.com>
To: "CoCoList for Color Computer Enthusiasts" <coco at maltedmedia.com>
Sent: Thursday, December 31, 2009 6:18 PM
Subject: Re: [Coco] The Coco's first webserver, written in Basic09


>I am *not* trying to generate BASIC09 code on the fly, and I am *not* 
>trying to evaluate and execute any text string containing BASIC09 code. If 
>this is what you you think, then you didn't understand my explanations. All 
>the generated BASIC09 code would be *packed* prior to execution, just like 
>Aaron's server is. It doesn't mean it cannot generate HTML code on the fly. 
>That said, I will not attempt to explain once again the system I am 
>thinking about, because there is nothing I could do to explain it better 
>than I've already done. Sorry.
>
>
> Wayne Campbell wrote:
>> I understand what you are saying. It sounds like you want to do with 
>> Basic09 what any other browser would do with javascript, vbscript or some 
>> other scripting language. If Basic09 were a scripting language that would 
>> work, but it isn't. And it isn't like php or coldfusion, where you can 
>> generate code on the fly and execute it.
>>
>> Basic09 is not strictly an interpreter. The only interpreting it does is 
>> with the tokens that it creates. The tokens are not stored in the source 
>> file. They are compiled into a form suitable for processing (RPN 
>> notation). Packing removes all references to labeling, which makes the 
>> code more compact.
>>
>> The Basic09 programming language is divided into 2 parts, the development 
>> environment (Basic09) and the real-time execution environment (RunB).
>>
>> The differences between the 2 are significant. Basic09 includes a command 
>> mode, which allows you to use the edit and debug modes. It also includes 
>> the execution mode, and that is written in such a way that it can execute 
>> the code compiled by loading source code, and code that has been packed. 
>> This is what makes it possible to have a debugging capability within 
>> Basic09. While you can pass an argument to Basic09 when you launch it, 
>> that argument is restricted to the procedure (packed or not) to be 
>> executed, and any parameters it is expecting. If the procedure is packed 
>> I-Code, Basic09 will load it and execute it, with all output generated 
>> going to the screen, but the screen is Basic09's, which means all output 
>> is going to it's "command window", not standard out. You cannot redirect 
>> output from within Basic09 using the > modifier. I believe that using a 
>> source-file as the argument will load and execute, but it may only load. 
>> I need to do some testing there to see. There is no
> op
>>  tion for "load and pack" that I am aware of. You have to be at the B: 
>> prompt, and type the command 'pack <procedure>'. If no procedure is 
>> specified, the current procedure (marked by the * in the procedure list) 
>> is used as the target to pack. <procedure> can be a list of procedures, 
>> and the syntax for that is 'pack* <filename>'.
>>
>> RunB accepts the same kind of argument, but lacking the command aspect, 
>> all output is being sent to stdout, which means you can redirect output. 
>> RunB only contains the execution mode, and will not execute code that has 
>> not been packed, nor will it pack code. Neither Basic09 nor RunB 
>> evaluates a text string and then interprtets it. All "interpretation" is 
>> done when the source file is read upon load. All source statements are 
>> replaced with tokens and pointers to lists that contain the various 
>> references. Literals are kept "as is", and placed in the instruction 
>> section as they occur. Your TYPE, DIM and PARAM statements no longer 
>> exist. Everything relating to variable reference identification is 
>> contained in the VDT, DSAT and relative to the procedure's data storage 
>> requirements.
>>
>> This is why I said that what you wanted to do, as I understand it, is the 
>> same as launching Visual Studio everytime you generate a new C++ source 
>> file. It would work much better to write a procedure that takes the html 
>> you generate and use it when and where you want it.
>>
>> Wayne
>>
>
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco 




More information about the Coco mailing list