<div dir="ltr"><div><div><div><div><div>VMS Pascal conforms to the language standards. So does Turbo Pascal, if the code is written to standard.<br><br></div>The problem with porting in Pascal comes when language extensions are used. These are often proprietary and/or hardware specific. On OpenVMS much of the extended capability depends on calling system libraries, all of which are supported. Turbo Pascal was designed specifically for the IBM PC and "compatible" systems, and contains a lot of proprietary extensions that will not be recognized by VMS Pascal's compiler.<br><br></div>If your code depends on graphic functions, the ones in Turbo Pascal are almost entirely peculiar to that environment and will require a lot of rewriting. These use custom libraries that come with the compiler, and probably most can be duplicated by using OpenVMS system calls in some format. Some analysis will be required to identify the hardware specific code and select appropriate substitutions.<br><br></div>As for "free pascal" there are several incompatible implementations that go by the name, so I'm not sure what you have used. However, all of them pretty much support the original language definition and code that stays within that standard definition will work without translation. Extensions that use library calls or custom units are going to be the area that requires (possibly a lot of) work.<br><br></div>The full VMS Pascal manuals are available in PDF form online and you should begin there. <br><br></div>By the way, VMS Pascal definitely supports writeln. It also has record structures, etc. Those are all part of the standard language definition. We'd need to see a sample of your code that doesn't work in order to figure out where your problem comes from.<br><br></div>