[net.lang.pascal] MSDOS Turbo Pascal: re-assigning conOutPtr

thouse@utcsri.UUCP (D. Tennenhouse) (05/30/86)

  I am trying to re-assign ConoutPtr using MSDOS Turbo Pascal. In this way, I 
should be able to use my own console output driver. I was able to do this 
easily in Z80 Turbo Pascal as follows:

   ConOutPtr := Addr( MyOutputRoutine );

  where MyOutputRoutine is a previously defined procedure.
 This does not work with the MSDOS version since the addressing schemes are
different. I thought I would be able to do it like this:

    ConOutPtr := Ptr( Cseg, Ofs( MyOutputRoutine ) );

  but this gave me a compile time type mismatch.  The Z80 way of doing it gives
a syntax error.  Anyone know how to do this??  Thanks.

smvorkoetter@watmum.UUCP (Stefan Vorkoetter) (05/30/86)

Try using the following:
    ConOutPtr := Ofs( MyRoutine );
I don't have my Turbo Manual here, but I believe that ConOutPtr is not
a real pointer in the 8086 sense of the word (ie. segment:offset), but
rather is just an offset into the code segment.  Telling it the segment
would be redundant since Turbo is limited to a single 64K code segment
anyway.  I hope this is correct.

Stefan Vorkoetter (smvorkoetter@watmum.UUCP)
University of Waterloo
Waterloo, Ontario, Canada