You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Fig-<strong>Forth</strong> <strong>8086</strong>/88 Version 1.0 Notes Page 1<br />
Fig-<strong>Forth</strong> for the <strong>8086</strong>/88<br />
Version 1.0<br />
Thomas Newman<br />
This document will briefly describe <strong>Forth</strong>-86 and how it differs<br />
from the Fig model. It is assumed that the reader is familiar<br />
with the <strong>8086</strong>/88 CPU and Fig <strong>Forth</strong>'s installation manual.<br />
This version of <strong>8086</strong> <strong>Forth</strong> was derived from 8080 Fig <strong>Forth</strong><br />
(version 1.1). The extra registers and extended addressing modes<br />
of the <strong>8086</strong> were used to optimize the code portion of <strong>Forth</strong>-86<br />
(refer to the source listing for <strong>8086</strong> register usage).<br />
IMPLEMENTATION<br />
--------------<br />
<strong>Forth</strong> was implemented and tested on an <strong>8088</strong> CPU running Digital<br />
Research's CP/M-86 (version 1.0).<br />
All console, printer and disk drivers call tneir res?ected<br />
routines in the "BIOS" through the "BDOS" function #50. These<br />
calls are all located in a common program area and can be easily<br />
modified to call your own 1/0 routines (if your're not using<br />
CP/M) .<br />
The following are notes about loading and executing <strong>Forth</strong>:<br />
o The source program was assembled using CP/M's ASM86. The<br />
mnemonics should be compatible with Intel's assembler<br />
(except for the far CALLS and JMPs which are not used in<br />
this version of forth).<br />
o The forth program can be loaded into any free portion of<br />
memory that is large enough to hold the forth kernel,<br />
dictionary and buffers (from "ORIG" thru "EM").<br />
o The program is executed at the offset address 10B hex with<br />
the Code Segment (CS) equal to the base address (this is the<br />
way CP/M executes "CND" type files).<br />
o The "COLD" entry routine in forth will set all other segment<br />
registers to the value of the CS register. This version of<br />
forth assumes all data, code and stack offset addresses are