<!--
UCSD Pascal System II.0 User Manual
Copyright (C) 1979 Regents of the University of California
HTML markup and formatting
Copyright (C) 2006, 2010 Peter Miller
-->
<h1>
A.3 Differences Among Implementations
</h1>
<p align=center>
Version II.0, March 1979
</p>
<p>
<#include reconstruct/page "intro08" "viii">
The following is a list of differences between PDP11 Pascal and
8080/Z80 Pascal, the items describe the way it is on the
8080/Z80, and how that differs from the documented system.
<ol><li>
The definition of <i>div</i> is different (thereby changing the values
returned by <i>mod</i>):
<blockquote>
a <i>div</i> b = floor(a / b)<br>
a <i>mod</i> b = a - b * (a <i>div</i> b)
</blockquote>
<li>
The I/O drivers are all written for synchronous operation. This
means that [break] has no effect. [Cntrl-s] and [cntrl-f] will
not perform as described unless you have a keyboard interrupt
handler, and this handler is modified as specified below in
<i>Modifications to CPM</i>.
<p>
This also means that UNITBUSY, UNITCLEAR, and UNITWAIT are
meaningless. (In the future it may be possible to use the
UNITBUSY and UNITCLEAR operations on the keyboard, but this is
currently infeasible.)
<li>
The interpreter is called <tt>SYSTEM.MICRO</tt> instead of
<tt>SYSTEM.PDP-11</tt>.
<li>
The CP/M implementations have bootstraps that are not accessible to
Pascal, hence the program BOOTER will not work. See the
appropriate section of this document for instructions on
copying and/or creating a bootstrap.
<li>
There are no long integer functions available with the Z80/8080
system. They will be available in a later release.
</ol>