22.10.2013 Views

8086-8088 V10 - Forth Interest Group

8086-8088 V10 - Forth Interest Group

8086-8088 V10 - Forth Interest Group

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!