From: marcov@stack.nl   
      
   On 2005-02-06, Bill Leary wrote:   
   > "Marco van de Voort" wrote in message   
   > news:slrnd0d44a.1k76.marcov@turtle.stack.nl...   
   >> On 2005-02-06, Bill Leary wrote:   
   >> > But I'm not sure what you mean by "magic." They seem perfectly logical to   
   >> > me, and now that you've caused me to re-read the entry and see that the   
   >> > characters come through anyway on character reads, they seem even more so.   
   >>   
   >> I was hinting at the fact that read, write and their ln counterparters are   
   >> compiler magic. They don't exist as proper procedures, contrary to C.   
   >   
   > I assume you're correct for most. For at least one I worked with, which I   
   > modified and thus had the source for, all of those were libraries similar to   
   > what C does. But now that you mention it, there was some "compiler magic" at   
   > work even then. When the "read" routine was called, there was an value put   
   on   
   > the stack saying how many arguments followed, then each argument was   
   preceded on   
   > the stack by typing information (I don't recall exactly what now, but I   
   think it   
   > was a word) which told the read routine how to process the following pointer   
   to   
   > where to store the results. The write funciton, of course, got similar   
   > treatment. Or now that I've described this, perhaps that's what you were   
   > getting at?   
      
   More or less. However you describe a strategy that is interpretive. Most   
   compilers have no write function at all, they split a   
      
   writeln ('xxx',c,':',i);   
      
   into   
      
   fpc_write_string(output,'xxx');   
   fpc_write_char(output,c);   
   fpc_write_char(output,':');   
   fpc_write_Integer(output,i);   
   fpc_write_ln(output);   
      
   Note that output is not implicit anymore either.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|