On 05 May 2009, at 06:21, leledumbo wrote:

I'm almost there to have Write(Ln) works for my OS. I've made SysInitStdIO call OpenStdIO(Output,fmOutput,StdOutputHandle); and calling Write(Ln) gives no error (i.e. IOResult = 0). But where does it actually write to? If I can
access the buffer, I can display it on the screen.

It writes to whatever the text file variable called "stdout" in rtl/ inc/systemh.inc is assigned to. Standard I/O is indeed buffered, see the routines in rtl/inc/text.inc. The actual writing from the buffer to the associated file/device is done by FileWriteFunc(), which calls Do_Write() (the latter is an OS-specific function that you have to implement).

Also note that if textrec.FlushFunc is nil, then write(ln) will not automatically flush after each operation. As you can see in FileOpenFunc(), it is only assigned in case Do_Isdevice() returns true for the handle of the opened "file".


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to