[net.micro.pc] Controlling I/O from UCSD PASCAL

jvz@sdcsvax.UUCP (John Van Zandt) (10/18/84)

Does anyone have any experience controlling I/O directly from
UCSD Pascal on an IBM-PC?  I want to manipulate an AST board
from a Pascal program, but cannot figure out what statement(s)
to use.  The normal trick of using a pointer to map to the memory/io
space only works on micros with a memory-mapped i/o structure.  Are
there any special functions available?  Or does anyone know
how to write functions in assembly language which are compatible
with Pascal function calls?

John Van Zandt
UCSD

ucbvax!sdcsvax!jvz

ee173xcj@sdcc3.UUCP (David Johnson) (11/03/84)

> Does anyone have any experience controlling I/O directly from
> UCSD Pascal on an IBM-PC?  I want to manipulate an AST board
> from a Pascal program, but cannot figure out what statement(s)
> to use.  The normal trick of using a pointer to map to the memory/io
> space only works on micros with a memory-mapped i/o structure.  Are
> there any special functions available?  Or does anyone know
> how to write functions in assembly language which are compatible
> with Pascal function calls?
> 
> John Van Zandt
> UCSD
> 
> ucbvax!sdcsvax!jvz

     There are several ways to do this in UCSD-Pascal on the
     P_system.

     First, there might be a function in the IBMSPECIAL unit, but I
     am not sure (I don't have it here in the VAX lab).
     Secondly, using Processes (V IV.13) one can access interupt
     vectors, but I don't know if this would do it, after all I
     don't even know what an AST board is!

     Thirdly, one can write functions and procedures in assembly
     language.  One must use the SYSTEM.ASSMBLER and then LINK the
     result to a unit or program.  To do this, one has to declare a
     routine as external.  Look in your manual, or if you don't have
     one, drop by the EE/CS 61 lab.
     
David Johnson
UCSD