230786 001_Intel_Software_Handbook_1984 001 Intel Software Handbook 1984

User Manual: 230786-001_Intel_Software_Handbook_1984

Open the PDF directly: View PDF PDF.
Page Count: 394

Download230786-001_Intel_Software_Handbook_1984 230786-001 Intel Software Handbook 1984
Open PDF In BrowserView PDF
SOFTWARE HANDBOOK

1984

Intel Corporation makes no warranty for the use of its products and assumes no
responsibility for any errors which may appear in this document nor does it make a
commitment to update the information contained herein.
Intel software products are copyrighted by and shall remain the property of Intel
Corporation. Use, duplication or disclosure is subject to restrictions stated in
Intel's software license, or as defined in ASPR 7-104.9(a) (9). lritel Corporation
assumes no responsibility for the use of any circuitry other than circuitry
embodied in an Intel product. No other circuit patent licenses are implied.
No part of this document may be copied or reproduced in any form or by any
means without the prior written consent of Intel Corporation.
The following are trademarks of Intel Corporation and may only be used to identify
Intel products:

t.

BITBUS, COMMputer, CREDIT, Data Pipeline, GENIUS, i, ICE, iCS, iDBp,
iDIS, 12 1CE, iLBX, i m , iMMX, Insite, Intel, intel, intelBOS, Intelevision,
inteligent Identifier, inteligent Programming, Intellec, Intellink, iOSP, iPDS,
iSBC, iSBX, iSDM, iSXM, Library tVianager, MCS, Megachassis, MICROMAINFRAME, MULTI BUS, MULTICHANNEL, MULTIMODULE, Plug-ABubble, PROMPT, Promware, QUEST, QUEX, Ripplemode, RMXl80, Rl:JPI,
Seamless, SOLO, SYSTEM 2000, and UPI, and the combination of ICE, iCS,
iRMX, iSBC, MCS, or UPI and a numerical suffix.
The following are trademarks of the companies indicated and may only be used to
identify products of the owners.
CP/M is a trademark of Digital Research, Inc.
DEC, DEC-10, DEC-20, PDP-H, DECnet, DECwriter, RSTS, and VAX are
trademarks of Digital Equipment Corporation.
MDS is an ordering code only and is not used as a product name or trademark.
MD&!! is a registered trademark of Mohawk Data Sciences Corporatio.n.
Microsoft is a trademark of Microsoft, Inc.
C>

Intel Corporation. 1983

Table

of Contents

CHAPTER 1
.

OVERVIEW
Introduction. . .. .. .. . . .. .. . . .. .. . .. . ... . .. . . .... ...... .. .. .. ... ... . . . .. ... .. .. ... . ..

1-1

CHAPTER 2
OPERATING SYSTEMS
Introduction ....................................................•.•...•••..... . . . . . .
8080/8085 Microprocessor Family
DATA SHEET
Digital Research Inc. CP/M 2.2 Operating System..................................
8086/8088 Microprocessor Family
DATA SHEETS
iRMX 86 Operating System ......................................................
iRMX 88 Real-Time Multitasking Executive ........................................
Preconfigured iRMX 86 Operating System ........................................
iOSP 86 iAPX 86/30 and iAPX 88/30 Support Package .............................
iMMX 800 MULTI BUS Message Exchange Software........................... .....
FACT SHEET
XENIX 286 Operating Systems ....................•..............................
APPLICATION NOTE
AP-130 Using Operating Systems Processor's to Simplify Microcomputer DeSigns ....
ARTICLE REPRINTS
AR-236 Let Operating Systems Aid in Component Designs .........................
AR-286 Software That Resides in Silicon ..........................................
AR-287 Putting Real-Time Operating Systems to Work .............................
AR-288 Intel's Matchmaking Strategy: Marry iRMX Operating
System with Hardware .•....•.....................•.....•........•..•....
AR-289 iRMX 86 Has Functionality, Configurability ................................

2-1
2-2
2-5
2-25
2-31
2-37
2-41
2-45
2-51
2-102
2-110
2-116
2-128
2-131

CHAPTER 3
TRANSLATORS AND UTILITIES FOR PROGRAM DEVELOPMENT
Introduction .......................................... , . .. ... .. .. ...•. .. . ... . . . . . . . .
MCS®-80/85 Microprocessor Family
DATA SHEETS
PUM 80 High Level Programming Language ......................................
FORTRAN 808080/8085 ANS FORTRAN 77 Intellec Resident Compiler. . . . . . . . . . . . . .
Microsoft, Inc. MACRO-80 Utility Software Package ...............•...............
Microsoft, Inc. BASIC-80 Interpreter Software Package ...•........................
Microsoft, Inc. Pascal-80 Software Package .......................................
iAPX 86, 88 Software Development Packages for Series II/PDS .....................
iAPX 86/88/186/188/286 Microprocessor Family
DATA SHEETS
PUM 86/88/186/188 Software Package ............................ 0>..............
Pascal 86/88 Software Package ........................••..........•.............
FORTRAN 86/88 Software Package ..............................................
C-86 C Compiler for the 8086 .......................•............................
8087 Software Support Package .............................•...................
8087 Support Library. . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . • . . . • . . . . . . . . . . . . . . . . . . . . . ..
8089 lOP Software Support Package ........•...........•........................
iAPX 286 Software Development Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iAPX 286 Evaluation Package ....................................................
PUM 286 Software Package ...................•......................•..........
VAXlVMX Resident iAPX 86/88/186 Software Development Packages ................
iSDM 86 System Debug Monitor ....................................•............
iSDM 286 iAPX 286 System Debug Monitor .......................................
FACT SHEETS
iRMX Languages .................•.......••........•.....•................•.•.•
iRMX Operating Systems .................•............•...•..........•..........
XENIX Languages .....................•..•..................................,...

iii

3-1
3-3
3-6
3-10
3-12
3-15
3-18

3-28
3-32
3-35
3-39
3-43
3-46
3-50
3-53
3-58
3-60
3-64
3-71
3-76
3-79
3-84
3-90

inter
Single Chip Mlcrocontroller Software
DATA SHEETS
2920 Software Support Package ..................•......•.......•...•....•...... ' 3-94
MC5-48 Diskette-Based Software Support Package . ~ ....•••.•..•........•••.•••.•• 3-105
8051 Software Development Package ..•.........•....•...............•...•....... 3-107
PUM 51 Software ............................................................... 3-110
MCS-96 Software Support Package ....•...•..............•.......•.••......•.... ' 3-114

CHAPTER 4
PRODUCTIVITY TOOLS AND COMMUNICATION SOFTWARE
Introduction ..•..•..•..•.......••••.••••............••..•........•..••. ; • . . . . . . . . • . .
Program Development and Management Tools
,DATA SHEETS
PSCOPE High-Level Program Debugger .••.•.•..........•.•• . . . . . . . . . . . . . . • . . . • . .
Program Management Tools .......•..................................•..........
ISIS-II Software Toolbox ............................' .......,.....................
8086 Software Toolbox ...................................'.......................
AEDIT Text Editor ........................................................... ~ . .
CREDIT CRT-Based Text Editor. . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . .
CommunlcaUon Software
DATA SHEETS
Mainframe Link for Distributed Development......................................
Intel Asynchronous Communications Link ......................•.................,
iNA 960 Network Software ......•................................................
NOS-II Electronic Mail ........................................................••

4-1
4-2
4-7
4-10
4-12
4-14
4-16
4-20
4-23
4-26
4-38

CHAPTERS
SYSTEM AND APPLICATIONS SOFTWARE
FACT SHEETS
XENIX Productivity Software Tools...............................................
iTPS Transaction Processing Systems Terminal Application
Processing System (iTAPS) .........................•..............•.........
iTPS Transaction Processing Systems Communications. . . . . . . . . . . . . . • . • . . . . . . . . . . .
System 2000 Database Management System Sperry (Univac) 1100 Series ............

5-1
5-9
5-12
5-16

CHAPTER 6
COMPONENT SOFTWARE
DATA SHEETS
80130/80130-2 iAPX 86/30, 88/30, 186/30, 188/30 iRMX 86
Operating System Processors ..............••...............................
80150/80150-2 iAPX 86/50, iAPX 88/50, 186/50, 188/50 CPIM 86
Operating Sys!em Processors ......•.•.•.....•.•... ,........................

6-1
6-23

CHAPTER 7
, USER LIBRARY
,
Introduction. • . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . • . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . • .
User Library
Insite User's Prog(am Library ...............•...............•••..........•.......
Insite Submittal Requirements .........................•.•.......................
Insite Index of Program ................•.•.•..•......•.......•..........•. ,......

7-1
7-2
7-3
7-5

APPENDIX A
Software Standards...... ........ ......... .... .................. .......... ..............

A-1

APPENDIX B
Software Support... ............................................... .....................

iv

B-1

Software Handbook
Overview

1

inter
SOFTWARE HANDBOOK OVERVIEW
Welcome to the Intel Software Handbook. This handbook is a complete guide to the software products and
services offered by Intel.
Intel's software products follow the open systems strategy that allows Intel products to be purchased at the
customers' desired level of integration. Hence these products are available for component, board, or systems
applications. This open systems philosophy is backed by software standards that insure that the software can
operate at numerous levels of integration. These software standards are described in the appendix.
Software for Intel's products is available both from Intel and from Independent Software Vendors (ISVs). For a
complete listing of software available from ISVs, see the Intel Yellow Pages which is published annually by Intel.
This handbook describes software products that are available through Intel, consisting of Intel-developed and
ISV-developed products. Products that are offered by Intel have all been evaluated and tested to meet Intel's
quality standard. They are backed by an extensive support organization described in the appendix.

1-1

Operating Systems

2

OPERATING SYSTEMS
INTRODUCTION
The ability to convert advanced microprocessor technology into solutions for modern day problems begins with
effective and efficient designs for new hardware products and architecture. However, a most critical element in
the success of any microcomputer solution is the availability of a high quality, reliable operating system.
Without this software counterpart, the technological advances cannot be fully implemen,ted, nor their benefits
fully realized.
The classic role of the microcomputer operating system can be outlined by viewing its major functions and
purposes. The functions of the microcomputer operating system are threefold: 1) to manage system resources
and the allocation of these resources to users; 2) to provide automatic functions such as initialization and
start-up procedures; and 3) to provide an efficient, straightforward and consistent method for user programs to
interface with the hardware subsystems, including a simple and friendly human interface. Typically, the
operating systems have one of two main purposes. First, they can be used to develop a new software system
that runs on another machine. These systems are usually large and fairly sophisticated. ISIS and 'XENIX are
examples of such developmental operating systems. The second purpose for microcomputer operating
systems is directed toward the execution of software programs for targeted application. The largest number of
operating systems are of this type, including the RMX systems. The most critical requirement is for these
systems to be effective and efficient since they are usually small, fast systems dedicated to a specific real-time
application.
This rather neat and simple categorization of microcomputer operating systems, which has been useful in the
past, is quickly becoming blurred. The rapid developments in microcomputer technology have increased the
power and decreased the cost of microcomputers, allowing them to become applicable to the solution of a
broader variety and more sophisticated set of problems. Microcomputer systems must increasingly provide
such capabilities as multiprogramming, multitasking, multiprocessing, networking, as well as scheduling and
priority determination. As systems become more complex, they must still remain responsive to real-tim!
applications. Operating systems must be able to capitalize on the trends toward plaCing more and more
software into silicon. This trend is blurring the distinction between the hardware and software subsystems.
Microcomputer systems are also evolving to encompass both the developmental and target application
purposes into one system.
These dramatic changes in technology place additional demands on operating systems. We see operating
systems undergoing changes to consider the need for: 1) modularity and ease of configurability;
2) evolutionary, not revolutionary, path of growth; and 3) standardization in languages, networks and the
operating system itself. The first need is required to allow the system to be a powerful development tool yet
configurable to more specialized applications. The last two items are needed to provide protection of a firm's
software investment, including the option to move toward silicon software.
The operating systems and executives in this section are state-of-the-art microcomputer systems that have
taken to task the challenges posed by advancing microprocessor technology. These operating systems offer
the widest range of solutions with the highest quality and most future-oriented software available today.
Consequently, our customers can select the appropriately optimized option to achieve their price/pel10rmance
goals and give them time-to-market advantage over their competitors.

'XENIX is a trademark of Microsoft Corp.

2-1

DIGITAL RESEARCH INC.
CP/M* 2.2 OPERATING SYSTEM
• More than 1,000 commercially available
compatible software products

• High-performance, single-console
operating system
• Simple, reliable file system matched to
microcomputer resources
• Table-driven architecture allows field
reconfiguration to match a wide variety
of disk capacities and needs
• Extensive documentation covers all
facts of CP/M applications

• General-purpose subroutines and
table-driven data-access algorithms
provide a truly universal data
management system
• Upward compatibility from all previous
versions

CP/M 2.2 is a monitor control program for microcomputer system and application uses on InteI8080/8085-based
microcomputer (see the CP/M-86' Operating System data sheet for information on CP/M for Intel 8086/8088based systems). CP/M provides a general environment for program ex~cution, construction, storage, and
editing, along with. the program assembly and check-out facilities.
The CP/M monitor provides rapid access to programs through a comprehensive file management package. The
file subsystem supports a named file structure, allowing dynamic allocation of file space as well as sequential
and random file access. Using this system, a large number of distinct programs can be stored in both sourceand machine-executable form.
CP/M also supports a powerful context editor, Intel-compatible assembler, and debugger subsystems. Nearly all
personal software programs can be bought configured to run under CP/M, several of which are available from
Intel.

FEATURES
CP/M is logically divided into four distinct modules:

-Uses less than 4K of memory allowing plenty of
memory space for applications programs
-Uses less than 4K of memory

. BIOS-Basic 1/0 System

-Makes programs transportable from system to
system

-Provides primitive operations for access to disk
drives and interface to standard peripherals
(teletype, CRT, paper tape reader/punch, bubble
memory, and user-defined peripherals)

-Entry points include the following primitive
operations which can be programmatically
accessed:

-Allows user modification for tailoring to a particular hardware environment

BOOS-Basic Disk Operating System

SEARCH

Look for a particular disk file by
name

OPEN

Open a file for further operations

CLOSE

Close a file after processing

-Provides disk management for one to sixteen disk
drives containing independent file directories

RENAME

Chan,ge the name of a particular file

READ

Read a record from a particular file

-Implements disk allocation strategies for fully
dynamic file construct1on and minimization of
head movement acrOss the disk

WRITE

Write a record to a particular file

SELECT

Select a particular disk drive for
further operations

©INTEL CORPORATION. 1983

2-2

MAY 1983

ORDER NUMBER:210288-003

inter

DIGITAL RESEARCH, INC.
CP/M 2.2

CCP-Console Command Processor

ASM

-Provides primary user interface by reading and
interpreting commands entered through the
console

Fast 8080 Assembler-uses standard
Intel mnemonics and pseudo
operations with free-format input, and
conditional assembly features

DDT

Dynamic Debugging Tool-contains
an integral assembler/disassembler
module that lets the user patch,and
display memory in either assembler
mnemonic or hexadecimal form and
trace program execution with full
register and status display;
instructions can be executed between
breakpoints in real-time, or run fully
monitored, one instruction at a time

SUBMIT

Allows a group of CP/M commands to
be batched together and submitted to
the operating system by a single
command

STAT

-Programs created under CP/M can be checked out
by loading and executing these programs in
theTPA

Lists the number of bytes of storage
remaining on the currently logged
disks, provides statistical information
about particular files, and displays or
alters device assignments

LOAD

-User programs, loaded into the TPA, may use the
CCP area for the program's data area

Converts Intel hex format to absolute
binary, ready for direct load and
execution in the CP/M environment

SYSGEN

Creates new CP/M system disks for
back-up purposes

-Loads and transfers.control to transient programs,
such as assemblers, editors, and debuggers
-Processes built-in standard commands including:
ERA

Erase specified files

DIR

List file names in the directory

REN

Rename the specified file

SAVE

Save memory contents in a file

TYPE

Display the contents of a file on
the console

TPA-Transient Program Area
-Holds programs which are loaded from the disk
under command of the CCP

-Transient commands are specified in the same
manner as built-in commands

MOVCPM Provides regeneration of CP/M
systems for various memory
configurations and works in
conjunction with SYSGEN to provide
additional copies of CP/M

-Additional commands can be easily defined by the
user
-Defined transient commands include:
PIP

ED

Peripheral Interchange Program
-implements the basic media transfer
operations necessary to load, print,
punch, copy, and combine disk files;
PIP also performs various
reformatting and concatenation
functions. Formatting options include
parity-bit removal, case conversion,
Intel hex file validation, subfile
extraction, tab expansion, line number
generation, and pagination

BENEFITS
-Easy implementation on any computer configuration which uses an Intel 8080/8085 Central Processing Unit (see the CP/M-86 data sheet for CP/M
applications on the iAPX86 CPU)
-iPDS version supports bubble memory option as
an additional diskette drive. Also allows diskette
duplication with a single drive

Text Editor-allows creation and
modification of ASCII files using
extensive context editing commands:
string substitution, string search,
insert, delete and block move; ED
allows text to be located by context,
line number, or relative position with a
macro command for making extensive
text changes with a single command
line

-Extensive selection of CP/M-compatible programs
allows production and support of a comprehensive software package at low cost
-Field programmability for special-purpose operating system requirements
-Upward compatibility from previous versions of
CP/M release 1

2-3

AFN-02"'C

inter

DIGITAL RESEARCH, INC.
CP/M 2.2

-Provides field specification of one to sixteen logical drives, each containing up to eight megabytes
-Files may contain up to 65,536 records of 128 bytes
each but may not exceed the size of any single disk
-Each disk is designed for 64 distinct files-more
directory entries may be allocated if necessary

-Individual users are physically separated by user
numbers, with facilities for file copy operations
from one user area to another
-Relative-record random-access functions provide
direct access to any of the 65,536 records of an
eight-megabyte file

SPECIFICATIONS
Hardware Required

Shipping Media

-Model 800 with 720 kit

(Specify by Alpha Character when ordering.)

-OS 235 kit or MDS 225 with 720 kit (integral drive
supported except as system boot device)

B-double density

A-single density (IBM 3740/1 compatible)

-iPDS Personal Development System
Optional:
RAM up to 64K

F-double-sided, double density 5%" floppy (iPDS
format)

-Additional floppy disk drives
Order Code

-Single density via 201 controller
-Bubble memory and optional Shugart 460 5%"
disk drive for iPDS

Documentation Package
Title
CP/M 2.2 documentation consisting
of 7 manuals:
An Introduction to CP/M Features
and Facilities
CP/M 2.2 User's Guide
CP/M Assembler (ASM) User's
GUide
CP/M Dynamic Debugging Tool
(DDT) User's Guide
ED: A Context Editor for the CP/M
Disk System User's Manual
CP/M 2 Interface Guide
CP/M 2 Alteration Guide

Product Description

See Price List CP/M (Control Program for
Microcomputers) is a disk-based
operating system for the Intel
SOSO/SOS5-based systems. CP/M
provides a general environment for
program development, test, execution
and storage. CP/M storage is available
via a comprehensive, named-file
structure supporting both sequential
and random access. CP/M support
tools include a Text Editor, a
debugger, and an SOSO/SOS5
assembler.

SUPPORT:
Intel offers several levels of support for this product. depending on the system configuration in which it is used.
Please consult the price list for a detailed description of the support options available.

An Intel Software License required.
'CP/M is a registered trademark of Digital Research. Inc.
'CP/M-8S, MP/M, CP/NETand MP/NET are trademarks of Digital ResearCh, Inc.

2-4

AFN-02111C

iRMX™ 86
OPERATING SYSTEM
• Real-time processor management for
time-critical iAPX 86 and iAPX 88
applications

• Multi-terminal support with multi-user
human interface
• Broad range of device drivers included
for industry standard MULTIBUS®
peripheral controllers

• On-target system development with
Universal Development Interface (UDI)
• Configurable system size and function
for diverse application requirements

• Expandable to multi-processor systems
with iMMX™ 800 Message Exchange
Software

• All iRMX™ 86 code can be (P)ROM'ed
to support totally solid state designs
• Compatible operating system services
for iAPX 86/30 and 88/30 Operating
System Processors (iOSPTM 86)

• Extendable to iAPX 286 systems with
iRMX™ 286R option
• Powerful utilities for interactive
configuration and real-time debugging

The iRMX™ 86 Operating System is an easy-to-use, real-time, multi-tasking and muiti-programmming software
system designed to manage and extend the resources of iSBC® 86 and iSBC 88 Single Board Computers, as well
as other iAPX 86- and iAPX 88-based microcomputers. iRMX 86 functions are available in silicon with the iAPX 86/30
and 88/30 Operating System Processors, in a user configurable software package, and fully integrated into the
SYSTEM 86/300 Family of Microcomputer Systems. The Operating System provides a number of standard interfaces
that allow iRMX 86 applications to take advantage of industry standard device controllers, hardware components,
and a multitude of software packages developed by Independent Software Vendors (ISVs). Many high-performance
features extend the utility of iRMX 86 Systems into applications such as data collection, transaction processing, and
process control where immediate access to advances in VLSI technology is paramount. These systems may deliver
real-time performance and explicit control over resources; yet also support applications with multiple users needing
to simultaneously access terminals. The configurable layers of the System provide services ranging from interrupt
management and standard device drivers for many sophisticated controllers, to data-file maintenance commands
provided by a comprehensive multi-user human interface. By providing access to the standard Universal Development Interface (UDt) for each user terminal, Original Equipment Manufacturers (OEMs) can pass program development
and target application customization capabilities to their users.

HUMAN INTERFACE

USER APPLICATIONS

iRMXTM 86 VLSI Operating System
The toIowlng are trademarks of Intel CorporatIOn and may be used only to descnbe Intel products Intel, ICE, IMMX, IOSP, IRMX, ISse, ISex, ISXM, MULTIBUS, MULTICHANNEL and MULTI MODULE
Inlel Corporation assumes no responslblhty tor the use of any CircUitry other than CirCUitry embodied In an Intel product No other ClfCUIt patent hcenses are Implied
INTEL CORPORATION. 1983

2-5

January, 1983
Order Number' 210111-001

iRMX™ 86

The iRMX 86 Operating System is a complete set of
system software modules that' provide the res()urce
management functions needed by computer systems.
These management functions allow Original Equipment
Manufacturers (OEMs) to best use resources available
in microcomputer systems while getting their products
to market quickly, saving time and money. Engineers
are relieved of writing complex system software and can
concentrate instead on their application software.

Process Management
To implement multi-tasking application systems, programmers require a method of managing the different
processes of their application, and for allowing the processes to communicate with each other. The Nucleus
layer of the iRMX 86 System provides a number of facilities
to efficiently manage these processes, and to effectively
communicate between them. These facilities are provided
by system calls that manipulate data structures called
tasks, jobs, semaphores, regions, and mailboxes. The
iRMX 86 System refers to these structures as "objects".

This data sheet describes the major features of the
iRMX 86 Operating System. The benefits provided to
engineers who write application software and to users
who want to take advantage of improving microcomputer
price and performance are explained. The first section
outlines the system resource management functions of
the Operating System and describes several system
calls. The second section gives a detailed overview of
iRMX 86 features aimed at serving both the iRMX 86
system designer and programmer, as well as the end
users of the product into which the Operating System
is incorporated.

Tasks are the basic element of all applications built on
the iRMX 86 Operating System. Each task is an entity
capable of executing CPU instructions and issuing system calls in order to perform a function. Tasks are characterized by their register values (including those of an
optional 8087 Numeric Processor Extension), a priority
between 0 and 255, and the resources associated with
them.

Each iRMX 86 task in the system is scheduled for operation by the iRMX 86 nucleus. Figure 1 shows the five
states in which each task may be placed, and some examples of how a task may move from one state to another. The iRMX 86 nucleus ensures that each task is
placed in the correct state, defined by the events in its
external environment and by the task issuing system
calls. Each task has a priority to indicate its relative importance and need to respond to its environment. The
nucleus guarantees that the highest priority ready-to-run
task is the task that runs.

FUNCTIONAL DESCRIPTION
To take best advantage of iAPX 86 and 88 microprocessors in applications where the computer is required
to perform many functions simultaneously, the iRMX 86
Operating System provides a multiprogramming environment in which many independent, multi-tasking application programs may run. The flexibility of independent
environments allows application programmers to separately manage each application's resources during both
the development and test phases.

Jobs are used to define the operating environment of

a group of tasks. J09s effectively limit the scope of an
application by collecting all of its tasks and other objects
into one group. Because the environment for execution
of an application is defined by an iRMX 86 job, separate
applications can be efficiently developed by separate
development teams.

The resource management functions of the iRMX 86
System are supported by a number of configurable software layers. While many of the functions supplied by the
innermost layer, the Nucleus, are required by all systems, all other functions are optional. The I/O systems,
for example, need not be included in systems having no
secondary storage requirement. Each layer provides
functions that encourage application programmers to
use modular design techniques which aid in quick development of easily maintainable programs.

The iRMX 86 Operating System provides two primary
techniques for real-time event synchronization in mUltitask applications: regions and semaphores.
Regions are used to restrict access to critical sections

The components of the iRMX 86 Operating System provide both implicit and explicit management of system
resources. These resources include processor scheduling, up to one megabyte of system memory., up to 57
independent interrupt sources, all input and output devices, as well as' directory and data files contained on
mass storage ,devices and accessed by a number of independent users. Management of each of these system
resources and how the resources can be shared between
multiple processors and users is discussed in the following sections.

of code and data. Once the iRMX 86 Operating System
gives a task access to resources guarded by a region,
no other tasks may make use of the resources, and the
task is given protection against deletion and suspension.
Regions are typically used to protect data structures from
being simultaneously updated by multiple tasks.
Semaphores are used to provide mutual exclusion be-

tween tasks. They contain abstract "units" that are sent
between the tasks, and can be used to implement the
cooperative sharing of re~ources.
Or~er Number 210885-001

2-6

inter

iRMX™ 86

any task can gain access to the object by knowing its
name, and job environment that contains the directory.
Three example jobs are shown in Figure 2 to demon·
strate how two tasks can share an object that was not
known to the programmers at the time the tasks were
developed. Both Job 'A' and Job 'B' exist within the en·
vironment of the 'Root Job' that forms the foundation of
all iRMX 86 systems. Each job possesses a directory in
which tasks may catalog the name of an object. Sema·
phore 'RS', for example, is accessable by all tasks in the
system, because its name is cataloged in the directory
of the Root Job. Mailbox 'AN' can be used to transfer
objects between Tasks 'A2' and 'A3' because its token
is accessable in the object directory for Job 'A'

(Si

(9i

Table 1 lists the major functions of the iRMX 86 Nucleus
that manage system processes.

!

(10)

(NON EXISTENT)

SYSTEM ROOT JOB

NOT·ES:

(1) Task

(S

created

JOB A

JOB B

(2) Task becomes highest Priority ready task
TASK A1

(3) Task gets pre·empted by one with higher Priority

(0

TASK B1

MAILBOX

(4) Task calls SLEEP or task walts at an exchange

b

(5) Task sleep period has ended. message was sent to
waiting task or walt has ended

TASK 82

SEMAPHORE

(6) Task calis SUSPEND on self
(7) Task suspended by other than self
(8) Task suspended by other than self or a resume that
did not bring suspension depth to zero

OBJECT DIRECTORY
MAILBOX AM
MAILBOX AN
TASK A3

(9) Task was resumed by other task
(10) Task

IS

deleted

OBJECT DIRECTORY
TASK B2

OBJECT DIRECTORY
MAILBOX RM.l.QLA
SEMAPHORE RS.IQLJI
TASK B2

Figure 1. Task State Diagram
Multi-tasking applications must communicate information
and share system resources among cooperating tasks.
The iRMX 86 Operating System assigns a unique 16-bit
number, called a token, to each object created in the
System. Any task in possession of this token is able to
access the object. The iRMX 86 Nucleus allows tasks
to gain access to objects, and hence system resources,
at run-time with two additional mechanisms: mailboxes
and object directories.

Figure 2. Object Directories

Memory Management
Each job in an iRMX 86 System defines the amount of
the one megabyte of addressable memory to be used
by its tasks. The iRMX 86 Operating System manages
system memory and allows jobs to share this critical resource by providing another object type: segments.

Mailboxes are used by tasks wishing to share objects
with other tasks. A task may share an object by sending
the object's token via a mailbox. The receiving task can
check to see if a token is there, or can wait at the mailbox
until a token is present.

Segments are contiguous pieces of memory, between
16 Bytes and 64K Bytes in length, that exist within the
environment of the job in which they were created. Segments form the fundamental piece of system memory
used for task stacks, data storage, system buffers, loading
programs from secondary storage, passing information
between tasks, etc.

Object Directories are also used to make an object
available to other tasks. An object is made public by cataloging its token and name in a directory. In this manner,

Order Number 2' 0885·00 1

2-7

inter
.

iRMX™86

Table 1. Process Management System Calls
System Call

Function Performed

RQ$CREATE$JOB

Creates an environment for a number of tasks and other objects, as well as creating an
initial task and its stack.

RQ$DELETE$JOB

Deletes a job and all the objects currently defined within its bounds. All memory used
is returned to the job from which the deleted job was created.

RQ$OFFSPRING

Provides a list of all the current jobs created by the specified job.

RQ$CATALOG$OBJECT

Enters a name and token for an object into the object directory of a job.

RQ$UNCATALOG$OBJECT

Removes an object's token and its name from a job's object directory.

RQ$LOOKUP$OBJECT

Returns a token for the object with the specified name found in the object directory of
the specified job.

RQ$GET$TYPE

Returns a code for the type of Object referred to by the specified token.

RQ$CREATE$MAILBOX

Creates a mailbox with queues for waiting tasks and objects with FIFO or PRIORITY
discipline.

RQ$DELETE$MAILBOX

Deletes a mailbox.

RQ$SEND$MESSAGE

Sends an object to a specified mailbox. If a task is waiting, the object is passed to the
appropriate task according to the queuing discipline. If no task is waiting, the object is
queued at the mailbox.

RQ$RECEIVE$MESSAGE

Attempts to receive an object token from a specified mailbox. The calling task may
choose to wait for a specified number of system time units if no token is available.

RQ$DISABLE$DELETION

Prevents the deletion of a specified object by increasing its disable count by one.

RQ$ENABLE$DELETION

Reduces the disable count of an object by one, and if zero, enables deletion of that
object.

RQ$FORCE$DELETE

Forces the deletion of a specified object if the disable count is either 0 or 1.

RQ$GREATE$TASK

Creates a task with the specified priority and stack area.

RQ$DELETE$TASK

Deletes a task from the system, and removes it from any queues in which it may be
waiting.

RQ$SUSPEND$TASK

Suspends the operation of a task. If the task is already suspended, its suspension
depth is increased by one.

RQ$RESUME$TASK

Resumes a task. If the task had been suspended multiple times, the suspension depth
is reduced by one, and it remains suspended.

I

RQ$SLEEP

Causes a task to enter the ASLEEP state for a specified number of system time units.

RQ$GET$TASK$TOKENS

Gets the token for the calling task or associated objects within its environment.

RQ$SET$PRIORITY

Dynamically alters the priority of the specified task.

RQ$GET$PRIORITY

Obtains the current priority of a specified task.

RQ$CREATE$REGION

Creates a region, with an associated queue of FIFO or PRIORITY ordering discipline.

RQ$DELETE$REGION

Deletes the specified region if it is not currently in use.

RQ$ACCEPT$CONTROL

Gains control of a region only if the region is immediately available.

RQ$RECEIVE$CONTROL

Gains control of a region. The calling task may specify the number of system time
• units it wishes to wait if the region is not immediately available.

RQ$SEND$CONTROL

Relinquishes control of a region.

RQ$CREATE$SEMAPHORE

Creates a semaphore.

RQ$DELETE$SEMAPHORE

Deletes a semaphore.

RQ$SEND$UNITS

Increases a semaphore counter by the specified number of units.

RQ$RECEIVE$UNITS

Attempts to gain a specified number of units from a semaphore. If the units are not
immediately available, the calling task may choose to wait.

Order Number 210885-001

2-8

iRMX™ 86

The example in Figure 2 also demonstrates when information IS shared between Tasks 'A2' and 'A3'; 'A2'
only needs to create a segment, put the information in
the memory allocated, and send it via the Mailbox 'AM'
using the RQ$SEND$MESSAGE system call (see Table
1}.Task 'A3' would get the message by using the RQ$
RECEIVE$MESSAGE system call. The Figure also shows
how the receiving task could signal the sending task by
sending an acknowledgement via the second Mailbox
'AN'.

to make any iRMX 86 system call. While an interrupt task
is servicing an interrupt, interrupts of lower priority are
not allowed to pre-empt the system.
Table 3 shows the iRMX 86 System Calls provided to
manage interrupts.

INTERRUPT MANAGEMENT EXAMPLE
Figure 3 illustrates how the iRMX 86 Interrupt System
may be used to output strings of characters to a printer.
In the example, a mailbox named 'PRINT' is used by all
tasks in the system to queue messages to be printed.
Application tasks put the characters in segments that are
transmitted to the printer interrupt service task via the
PRINT Mailbox. Once printing is complete, the same interrupt task passes the messages on to another application
via the FINISHED Mailbox so that an operator message
can be displayed.

Each job is created with both maximum and minimum
limits set for its memory pool. Memory required by all
objects and resources created in the job is taken from
this pool. If more memory is required, a job may be allowed to borrow memory from the pool of its containing
job (the job from which it was created). In this manner,
initial jobs may efficienty allocate memory to jobs they
subsequently create, without exactly knowing their requirements.
The iRMX 86 Operating System supplies other memory
managment functions to search specific address ranges
for available memory. The System performs this search
at system initialization, and can be configured to ignore
non-existent memory and addresses reserved for 1/0
devices and other application requirements.
Table 2 lists the major system calls used to manage the
system memory.

Interrupt Management
.
.

.

Real-time systems, by their nature, must respond to
asynchronous and unpredictable events quickly. The
iRMX 86 Operating System uses interrupts and the eventdriven nucleus described earlier to give real-time response
to events. Use of a pre-emptive scheduling technique
ensures that the servicing high priority events always
take precedence over other system activities.

Figure 3. Interrupt Management Example
BASIC 110 SYSTEM
The Basic 110 System (BIOS) provides the direct access
to 110 devices needed by real-time applications. The
BIOS allows I/O functions to overlap other system functions. In this manner, application tasks make asynchronous calls to the iRMX 86 BIOS, and proceed to perform
other activities. When the 110 request must be completed
before an application can continue, the task waits at a
mailbox for the result of the operation.

The iRMX 86 Operating System gives applications the
flexibility to optimize either interrupt response time or
interrupt response capability by providing two tiers of Interrupt Management. These two distinct tiers are managed by Interrupt Handlers and Interrupt Tasks.

Interrupt Handlers are the first tier of interrupt service.
For small, simple functions, interrupt handlers are often
the most efficient means of responding to an event. They
provide faster response than interrupt tasks, but must
be kept simple since interrupts (except the iAPX 86 and
88 non-maskable interrupt) are masked during their execution. When extended interrupt service. is required, interrupt handlers "signal" a waiting interrupt task that,
in turn, performs more complicated functions.

Some system calls provided by the BIOS are listed in
Table 4.
The Basic 110 System communicates with peripheral devices through device drivers. These device drivers provide
the System with four basic functions needed to control
and communicate with devices: Initialize 110, Finish 110,
Queue 110, and Cancel 110. Using the device driver interface, users of non-standard devices may write custom
drivers compatible with the I/O System.

Interrupt Tasks are distinct tasks whose priority is associated with a hardware interrupt level. They are permitted

Order Number 21088!l 001

2-9

inter

iRMX™ 86

Table 2. Memory Management System Calls
Function Performed

System Call
RQSCREATESSEGMENT

Dynamically allocates a memory segtnent of the specified size.

RQSDELETESSEGMENT

Deletes the specified segment by deallocating the memory.

RQSGETSPOOLSATTRIBUTES

Returns attributes such as the minimum and maximum, as well as current size of
the memory in the environment of the calling task's job.

RQSGETSSIZE

Returns the size (in bytes) of a segment.

RQSSETSPOOLSMIN

Dynamically changes the minimum memory requirements of the job environment
containing the calling task.

Table 3. Interrupt Management System Calls
Function Performed

System Call
RQSSETSINTERRUPT

Assigns an interrupt handler and, if desired, an interrupt task to the specified interrupt
level. Usually the calling task becomes the interrupt task.

RQSRESETSINTERRUPT

Disables an interrupt level, and cancels the assignment of the interrupt handler for that
level. If an interrupt task was assigned, it is deleted.

RQSGETSLEVEL

Returns the number of the highest priority interrupt level currently being processed.

RQSSIGNALSINTERRUPT

Used by an interrupt handler to signal the associated interrupt task that an interrupt has
occurred.

RQSWAITSINTERRUPT

Used by an interrupt task to SLEEP until the associated interrupt handler signals the
occurrence of an interrupt.

RQSEXITSINTERRUPT

Used by an interrupt handler to relinquish control of the System.

RQSENABLE

Enables the hardware to accept interrupts from a specified level.

RQSDISABLE

Disables the hardware from accepting interrlolpts at or below a specified level.

Table 4. Key BIOS I/O Management System Calls
System Call

Function Performed

RQSASATTACHSFILE

Creates a Connection to an existing file.

RQSASCHANGESACCESS

Changes the types of accesses permitted to the specified user(s) for a specific file.

_

RQSASCLOSE

Closes the Connection to the specified file so that it may be used again, or so that
the type of access may be changed.

RQSASCREATESDIRECTORY

Creates a Named File used to store the names and locations of other Named Files.

RQSASCREATESFILE

Creates a data file with the specified access rights.

RQSASDELETESCONNECTION

Deletes the Connection to the specified file.

RQSASGETSFILESSTATUS

Returns the current status of a specified file.

RQSASOPEN

Opens a file for either read, write, or update access.

RQSASREAD

Reads a number of bytes from the current position in a specified file.

RQSASSEEK

Moves the current data pOinter of a Named or Physical file.

RQSASWRITE

Writes.a number of bytes at the current position in a file.

RQSWAITSIO

Synchronizes a task with the I/O System by causing it to wait for I/O operation
results.

Order Number 210885·001

2-10

inter

iRMX™86

files. Whereas the BIOS provides users with the basic
system calls needed for direct management of 1/0 resources, many users prefer to have the system perform
all the buttering and synchronization of 1/0 requests automatically. The EIOS allows users to access 1/0 devices
without having to write procedures for buffering data, or
to specify particular devices with constant device names.

The iRMX 86 Operating System includes a number of
device drivers to allow applications to use standard
USART serial communication devices, multiple CRTs
and keyboards, bubble memories, diskettes, disks, a
Centronics-type parallel printer, and many of Intel's
iSBC and iSBX™ device controllers (see Table 9). If an
application requires use of a non-standard device, users
need only write a device driver to be included with the
BIOS, and access it as if it were part of the standard
system. For most random-access devices, this job is
further simplified by using standard routines provided
with the System. Use of this technique ensures that applications can remain device independent.

By performing device buffering automatically, the iRMX
86 EIOS optimizes accesses to disks and other devices.
Often, when an application task asks the System to READ
a portion of a file, the System is able to respond immediately with the data it has read in advance of the request.
Similarly, the EIOS will not delay a task for writing data
to a device unless it is specifically told to, or if its output
buffers are filled.

MULTI-TERMINAL SUPPORT
The iRMX 86 Terminal Support provides line editing and
terminal control capabilities. The Terminal Support communicates with devices through simple drivers that do
only character 1/0 functions. Dynamic terminal reconfiguration is provided so that attributes such as terminal
type and line speed may be changed without modifying
the application or the Operating System. Dynamic configuration may be typed in, generated programmatically
or stored in a file and copied to a terminal 1/0 connection.

Logical file and device names are provided by the EIOS
to give applications complete file and device independence. Applications may send data to the 'line printer'
(:LP:) without needing to know which specific device will
be used as the printer. This logical name may, in fact,
not be a printer at all, but it could be a disk file that is
later scheduled for printing.
The EIOS uses the functions provided by the BIOS to
synchronize individual 1/0 requests with results returned
by device drivers. Most EIOS system calls are similar to
the BIOS calls, except that they appear to suspend the
operation of the calling task until the 1/0 requests are
completed.

The iRMX 86 Terminal Support provides automatic translation of control characters to specific control sequences
for each terminal. This translation enables applications
. using standard control characters to function with nonstandard terminals. The translation requirements for each
terminal can be stored in terminal description files and
copied to a connection, as described above.

Table 5. BIOS Typical Performance

DISK I/O PERFORMANCE
Function

Table 5 shows iRMX 86 performance obtained using the
iSBC 215 Winchester Disk and iSBX 218 Diskette Controllers under the specified conditions.

Average
Character Throughput
Byte. per Second·
Wlnche.ter DI.k

Each device driver can be used to interface to a number
of separate and, in some cases, different devices (See
Figure 4). The iSBC 215 Device Driver, supplied with the
system, is capable of supporting the iSBC 215 Winchester
Disk Controller, the iSBC 220 SMD Disk Controller, and
the iSBX 218 Flexible Disk Controller (when mounted
on an iSBC 215 board). Each device controller may, in
turn, control a number of separate device units. In addition, each driver may control a number of like device
controllers. This capability allows the use of large storage
systems with a minimum of 1/0 system code to write or
maintain.

Single File Read

42,000

Two File Read
(Same Device)

36,800

Diskette

.

15,800
5,700

Single File Write

23,800

5,400

Two File Write
(Different Devices)

36,200

6,900

Read/Write Two Files
(Different Devices)

38,900

6,000

• These measurements were made in the followong enVIronment:
Entire IRMX ™ 86 operatong system and application code and data
located in on-board RAM of a 8-MHz ISBC"' 86/30 Songle Board
Computer. Named files, each with a flie size of 128 KByles, were
used with a device and volume granularity of 1 KByles and six 1
KByle buffers. The disk interleave factor was 2. The iSSC 215
Winchester Controller was attached to two 20-Mbyle drives, and
supported the ISBXTM 218 Diskette Controller that, In turn, was attached to two double denSity 8" diskette drives. ThiS performance
IS, to a large part, restricted by the mechanical speed of the devices.

EXTENDED I/O SYSTEM
The iRMX 86 Extended 110 System (EIOS) adds a number
of 1/0 management capabilities to simplify access to

Order Number 210885-001

2-11

intJ

iRMX™86

APPLICATION SOFTWARE
TASK

TASK

TASK

TASK TASK

TASK

TASK

TASK

TASK

TASK

STREAM
FilE
DRIVER

PHYSICAL
FilE
DRIVER

Isac'

iSBX'·

215

iSBC'

DEVICE
DRIVER

254

,SBC'

218

215

DEVICE
CONT·
ROllER

DEVICE
CONT·
ROllER

UN·
CONN.
DEVICE
UNIT

DEVICE
DRIVER

,SBC'
254

BUBBLE
MEMORY

FilE
CONN. DEVICE UNITS

CONDUITS REPRESENT DEVICE CONNECTIONS
WIRES iN CONDUITS REPRESENT FilE CONNECTIONS

Figure 4. Device Driver and Controller Relationships

File Management

Whenever a request is made involving a file name, the
System will search the appropriate directory in order to
find the necessary information about the file's size, access rights, and specific location on the storage device.

The iRMX 86 Operating System provides three distinct
types of files to ensure efficient management of both program and data files: Named Files, Physical Files, and
Stream Files. Each file type provides access to 110 devices through the standard device drivers mentioned
earlier. The same device driver is used to access physical
and named files for a given device.

The iRMX 86 BIOS uses an efficient format for writing
the directory and data information into secondary storage. This standard iRMX 86 format is fully compatible
with the ISO Media standard, and other Intel systems
such as the iRMX 88 Operating System. This structure
enables the system to directly access any byte in a file,
often without having to do additional 110 to access space
allocation information. The maximum size of an individual
file is 2 32 (4.3 billion) bytes.

NAMED FILES
Named files allow users to access information on secondary storage by referring to a file with its ASCII name. The
, names of files stored on a device are stored in special
files called directories. As directories are themselves
named files, the iRMX 86 File System allows directories
to contain the names of other directories. Figure 5 illustrates the resulting hierarchical file structure. This structure is useful for isolating file names to particular user
applications, and for tailoring system data to the requirements of users and applications sharing storage devices.
Using different branches on the directory tree, different
users do not have to coordinate in naming their files to
ensure unique names.

EASE OF ACCESS
The hierarchical file structure is provided to isolate and
organize collections of named files. To give operators
fast and simple access to any level within the file tree,
an ATTACHFILE command is provided. This command
allows operators to give a logical name to a point in the
tree so that a long sequence of characters need not be
typed each time a file is referred to.
Order Number 210885·001

2-12

intel'

IRMX TII 86

SIM
SOURCE

SIM
OBJECT

TEST OBJECT

?

I

I

= DIRECTORY

1\

~

= NAMED
DATA FILE

BATCH·' BATCH 2

Figure 5. Hierarchical Named File Structure
ACCESS PROTECTION

grams, for example, wishing to preserve file and device
independence allowing data sent to a printer one time,
to a disk file another time, and to another program on
a different occasion.

Access to each Named File is protected by the rights
assigned to each user by the owner of the file. Rights
to read, append, update, and delete may be selectively
granted to other users of the system. In general, users
of Named Files are classified into one of three categories:
User, .Group, and World. Users and Groups are used
when different programmers and programs need to share
information stored in a file. The World classification is
used when rights are to be granted to all who can use
the system.

BOOTSTRAP AND APPLICATION LOADERS
Two utilities are supplied with the System to load programs and data into system memory from secondary
storage devices:
The IRMX 86 Bootstrap Loader can be configured to
a size of less than 600 bytes of P(ROM). and is typically
used to load the initial system from the system disk into
memory, and begin its execution.

PHYSICAL FILES
Physical Files allow more direct device access than
Named Files. Each Physical File occupies an entire de·
vice, treated as a single stream of individually accessable
bytes. No access control is provided for Physical Files
as they are typically used for such applications as.driving
a printing device, translating from one device format to
another, driving a paper tape device, and controlling
analog mechanisms.

The Application Loader is typically used by application
programs already running in the system to load additional
programs and data from any secondary storage device.
The Human Interface layer, for example, uses the Application Loader to load the non-resident Human Interface
Commands. The Application Loader is capable of loading
both relocatable and absolute code, as well as program
overlays.

STREAM FILES

Human Interface

Stream Files provide applications with a method of using
iRMX 86 file management methods for data that does
not need to go into secondary storage. Stream Files act
as direct ch,annels, through system memory, from one
task to another. These channels are very useful to pro-

The flexibility of the interface between computer controlled machines and their users often determines the
usability and ultimate success of the machines, Table 12
lists iRMX 86 Human Interface functions giving users
Order Number

2-13

21018~.()C)1

IRMX TIII 86

and applications simple access to the file and system
management capabilities described earlier. The process,
interrupt, and memory managment functions described
earlier, are performed automatically for Human Interface
users.

The initial program specified for each terminal can be
a special application program, a custom Human Interface, or the standard iRMX 86 Command Line Interpreter (CLI). For example, you may choose to use the
Microsoft Basic Interpreter as this initial program. After
system start-up, each terminal user would be able to run
the interpreter without asking for it to be loaded. From
the BASIC interpreter an operator, for example, could run
a data collection program, written in BASIC, that communicates with several laboratory instruments, and prints
charts and reports based on certain test results. When
finished entering, changing, or running a BASIC program,
the terminal would remain in BASIC for the next user.

MULTI·USER ACCESS
Using the multi-terminal support provided by the BIOS,
the iRMX 86 Human Interface can support several simultaneous users. The real-time nature of the system
is maintained by providing a priority for each user, and
using the event-driven iRMX 86 Nucleus to schedule tasks.
High-performance interrupt response is guaranteed even
while users interact with various application packages.
For example, multi-terminal support allows one person
to be using the iRMX 86 Editor, while another. compiles
a FORTRAN 86 or PASCAL 86 program, while several
others load and access applications.

Specifying an application program as a terminal's initial
program makes the interface between operators and the
computer system much simpler. Each operator need only
be aware of the function of a particular application; not
needing to interact with any unfamiliar functions also
available on h.is application system.
Specifying the standard iRMX 86 Human Interface CLI
as the initial program enables users of the terminals to
access all iRMX 86 functions. This CLI makes it easy to
manage iRMX 86 files, load and execute Intel-supplied
and custom programs, and submit command files for
later execution.

Each terminal attached to the iRMX 86 multi-user Human
Interface is automatically associated with a user, a memory pool, and an initial program to run when the terminal
is connected. This association is made using a file that
may be changed at any time. Changes are effective the
next time the system is initialized.
Table 6. IRMXTM Real·Tlme Performance
Real·Tlme
Function

Execution
Time (msec)

.SUSPEND TASK

I

0.45

INTERRUPT LATENCY
(to Handler)
INTERRUPT LATENCY
(to Handler)

SYSTEM BUFFERS
AND DATA

0.20
(Max)
"

APPLICATION CODE
OPERATOR
CONSOLE
APPLICATIONS

RAM

0.03

I

I

BACKGROUND
APPLICATION

0.68
(Max)

BIOS

I

EIOS

WINCHESTER
DISK

I

DRIVER

SEND MESSAGE
(no context switch)

0.30
0.57

SEND CONTROL
(no context switch)

0.19

BOOTSTRAP LOADER
BUILDING SECURITY
SYSTEM

RAM

SEND CONTROL
(with context switching)

0.50

RECEIVE CONTROL
(no waiting)

0.25

FLOPPY
DISK
DRIVER

NUCLEUS
PROM

SEND MESSAGE
(with context switch)

I

HUMAN INTERFACE

(Typical)

CONTEXT SWITCH CAUSED
BY INTERRUPT

COMMON
UTILITIES

f

SYSTEM
BUFFERS
DATA
16K BYTES
APPLICATION CODE

PROM

Context switch time is the time between executing In the context of
a task. and the first instruction to execute In the context of another
task.

SK BYTES NUCLEUS CODE
oOSP 66 INTERFACE
801300SF

,sec'

DATA COMMUNICATION
CONTROLLER

These times were measured using an 8 MHz
86/30 Single Board
Computer with the standard configuration supported by the Preconfigured System, and all program and data stored In on-board dynamiC
RAM,

Figure 6. Typical iRMXTM 86 Configurations
Order Number 210885-001

2-14

iRMX™ 86

MULTIPROGRAMMING SPECTRUM

FLEXIBILITY
PERFORMANCE
FEATURES

.....

------~

LANGUAGE
DEVELOPMENT TOOLS
STRUCTURED DESIGN

EXECUTION
ENVIRONMENT

DEVELOPMENT

ENVIRONMENT

FEATURE OVERVIEW

software package to divide and coordinate various system
activities among multiple processors. Typical iRMX 86
system performance characteristics are shown in Table 6.

The iRMX 86 Operating System is well suited to serve
the demanding needs of real-time applications executing
on complex microprocessor systems. The iRMX 86 System also provides many tools and features needed by
real-time system developers and programmers. The following sections describe features useful in both the development and execution environments. The description
of each feature outlines the advantages given to hardware and software engineers concerned with overall
system cost, expandability with custom and industry
standard options, and long-term maintenance of iRMX
86-based systems. The development environment features also Clescribe the ease with which the iRMX 86
Operating System can be incorporated into overall system
designs.

Many real-time systems require high-performance operation. To meet this requirement, all of iRMX 86 (except
for the Human Interface commands) can be put into zero
wait-state P(ROM). ThiS approach eliminates the possibility of disk access times slowing down performance,
while allowing system designers to take advantage of
high performance memory devices.

CONFIGURABILITY

...

The iRMX 86 Operating System is configurable by system
layer, and by system call within each layer. In addition,
all the I/O port addresses used by the System are configurable by the user. This flexibility gives designers the
freedom to choose configurations of hardware and software that best suit their size and functional requirements.
Two example configurations are shown in Figure 6.

Execution Environment Features
REAL-TIME PERFORMANCE

Most configuration options are selected during system
design stages. Qthers may be selected during system
operation. For example, the amount of memory devoted
to queues within a Mailbox can be specified at the time
the Mailbox is created. Devoting more memory to the
Mailbox allows more messages to be transmitted to other
tasks without having to degrade system perfoJmance to
allocate additional memory dynamically.

The iRMX 86 Operating System is designed to offer the
high performance, multi-tasking functions required by
real-time systems. Designers can make use of the latest
VLSI devices such as the 8087 Numeric Processor Extension, and the 80130 Operating System Firmware
Component to improve their system cost/performance
ratio, or the iMMX'" 800 MULTIBUS@Message Exchange

Order Number 21018&·001

2-15

iRMXTM 86

The chart shown in Table 7 indicates the actual memory
size required to support these different configurations
of the iRMX 86 System. Systems requiring only Nucleus
level functions may require no more than 13 KBytes for
the Operating System (Use of the iAPX 86/30 requires
only 4K Bytes of RAM). Other applications, needing 110
management functions, may select portions of additional
layers that fit their needs and size constraints.

The iRMX 86 System provides easy-to-use support for
applications to access multiple terminals. It also enables
multiple and different users to access different applications concurrently.
Figure 7 illustrates a typical iRMX 86 application simultaneously supporting multi-terminal data collection and
real-time environments. Shown is a group of terminals
used by"machinists on a shop floor to communicate with
ajob management program, a building security system
that constantly monitors energy usage requirements, a
system operator console capable of accessing all system
functions, and a group of terminals in the Production
Engineering department used to monitor job costs while
developing new device control specifications and instructions. The iSBC 544 Intelligent Terminal Interface supports multiple user terminals without degrading system
performance to handle character 110.

This configurability also applies to the Terminal Handler
and Debugger layers. They need be included only when
the iRMX 86 Debugger is needed (usually only during
system development) or wilen a serial terminal interface
is needed in a system that otherwise doesn't need an
1/0 System.
MULTI-PROCESSING
The resources provided by a single processor are often
not enough to perform certain functions. With the standard
interfaces provided by the iMMX 800 MULTIBUS Message
Exchange package, the iRMX 86 Operating System su~
ports a loosely-coupled multi-processing environment.
Tasks running on one processor may communicate with
tasks running on other processors, even if they operate
under different operating systems. The iMMX 800 software is capable of sending messages over the MULTIBUS
to tasks operating under either the iRMX 80 8-bit MultiTasking Executive, the iRMX 88 Executive, or the iRMX
86 Operating System. Using this message exchange
mechanism, applications may increase their system performance quite easily, improve overall Interrupt response,
gain access to the iSBC 550 Ethernet Controller, and
leave room for future product enhancements.

I ,sac

-g

~

DATA
COLLECTION
TERMINALS

h

~

fJQ

MULTI-USER ACCESS
Many real-time systems must provide a vanety of users
access to system control functions and collected data.

System Layer

544

.

Figure 7. Multi-Terminal and
Real-Time System

Multi~User

Table 7. iRMXTM 86 Configuration Size Chart

Bootstrap Loader
Nucleus
BIOS
Application Loader
EIOS
Human Interface
UDI
Terminal Handler
Debugger
Human Interface Commands
Interactive Configuration Utility

Min. ROMabie
Size

Max .
Size

Data
Size

O.5K

1.5K

6K'

10.5K
26K

24K

2K

78K

1K

4K

10K

2K

10.5K

12.5K

1K

22K

22K

15K

11K

11K

0

3K

3K

O.3K

28.5K

28.5K

1K
116K
308K

• Usable by System after bootloadlng.

Order Number 210885-001

2-16

iRMX™86

EXTENDABILITY

EXCEPTiON HANDLING

The iRMX 86 Operating System provides three means
of extensions. This extendability is essential for support
of OEM and volume end user value added features. This
ability is provided by: Ilser-defined operating system calls,
user-defined objects (similar to Jobs, Tasks, etc.), and
the ability to add functions later in the product life cycle.
The modular, layered structure of the System easily facilitates later additions to iRMX 86 applications. Userdefined objects are supported by the functions listed in
Table 8.

The System includes predefined exception handlers for
typical 1/0 and parameter error conditions. The error
handling mechanism is both configurable and extendable.
SUPPORT OF STANDARDS
The iRMX 86 Operating System supports the many hardware and software standards needed by most application
systems to ensure that commonly available hardware
and software packages may be interfaced with a minimum of cost and effort. The iRMX 86 System supports
the iSBC family of products built on the Intel MULTIBUS
(IEEE Standard 796), and a number of standard software
interfaces such as the UDI and the common device driver
interface (See Figure 8). The procedural interfaces of

Using standard iRMX 86 system calls users may define
custom objects, enabling applications to easily manipulate commonly used structures as if they were part of
the original operating system.

Table 8. User Extension System Calls
Function Performed

System Call
RO$CREATE$COMPOSITE

Creates a custom object built of previously defined objects.

RO$DELETE$COMPOSITE

Deletes the custom object, but riot the vanous objects from which it was built.

RO$INSPECT$COMPOSITE

Returns a list of Token Identifiers for the component objects from which the specified
composite object is built.

RQ$ALTER$COMPOSITE

Replaces a component object of a composite object

RQ$CREATE$EXTENSION

Creates a new type of object and assigns a mailbox used for collecting these objects
when they are deleted.

RQ$DELETE$EXTENSION

Deletes an extension definition.

Figure 8. iRMXTM 86 Standard Interfaces
Order Number 21088S 001

2-17

iRMXTM 86

minal 110 by locally managing input and Ol,ltput
buffers. The iSBC 544 firmware provided with the
operating system can off-load the system CPU by
as much as 75%.
.

the UDI, a software analogy to the MULTIBUS, 'are listed
in Table 10.
.
The Operating System includes support for the proposed
IEEE 80·bit extended real·variable format of the 8087
Numeric Data Processor, the IEEE 796 (MULTIBUS)
hardware interface, and the Intel· Universal Run·time In·
terface (URI). Other standards such as the iMMX 800
MULTIBUS Message Exchange, and an Ethernet· com·
munication interface, are supported by optional software
packages available to run on the IRMX 86 System.

The i$BC 534 Four-Channel USART Controller
Device Driver also provides support for multiple
controller boards each supporting up to 4 standard
RS232 terminals.
Table 9. Supported Devices

\

iSBCI!> Device
Controller

SPECTRUM OF CPU PERFORMANCE
TheiRMX 86 System supports 8086 and 8088 based
systems directly at a variety of processor clock speeds.
With the iRMX 286R Operating System option, completely compatible systems can be built around the iAPX
286 processor. By choosing the appropriate CPU, designers can select from a wide range of performance
without having to change application software.

iSBCI!> 86,88

ISBC® 204
ISBC® 206
iSBC® 208

COMPONENT LEVEL SUPPORT
iSBC® 215
iSBCI!> 220
iSBC® 254
iSBC® 534,544

The iRMX 86 System may be tailored to support specific
hardware configurations. In addition to system memory,
only an iAPX 86 or iAPX 88 microprocessor, an 8259A
Programmable Interrupt Controller, and either an 8253
or 8254 Programmable Interval Timer are required. In
addition, the iRMX 86 Operating System may be used
to augment the functions of the 80130 Operating System
Firmware Component that not only provides these hardware functions, but eliminates the need for approximately
14 KBytes of the iRMX 86 Nucleus code (see Figure 6).
For systems requiring extended mathematics capability,
an 8087 Numeric Data Processor may be added to perform these functions up to 100 times faster than equivalent
software. For applications servicing more than 8 Interrupt sources, additional 8259A's may be configured as
slave controllers.

iSBXTM 218

iSBXTM 270

Supported Devices
Serial Port to CRT, Parallel Port to
Centronics-type Printer, InterVal
Timer, and Interr.upt Controller
Single Density Diskette
Cartridge-type Hard Disk
Single & Double Density,
Single & Double Sided.
8" & 5.25" Diskette
Standard Winchester Disks
Standard Storage Module Disks
Bubble Memory Board
4-Channel.Serial Ports to CRTs.
Modems
Single & Double Density, Single
& Double Sided, 8" & 5.25" Diskette (When used on an iSBel!> 215
Winchester Controller)
Black and White CRT's and full
ASCII keyboards

Development Environment Features
The iRMX 86 Operating System supports the efficient
utilization of programming time by providing important
tools for program development. Some of the tools necessary to develop and debug real-time systems are included
with the Operating System. Others, such as language
compilers, are available from Intel and from leading Independent Software Vendors.

BOARD LEVEL SUPPORT
The iRMX 86 Operating System includes device drivers
to support a broad range of MULTIBUS device controllers.
The particular boards and types of devices supported are
listed in Table 9. The device controllers all adhere to industry standard electrical and functional interfaces.

'LANGUAGES

In addition to the on-CPU board terminal drivers, the
iRMX 86 BIOS includes two iSBC board-level device
drivers to support multiple terminal interfaces:

The iRMX 86 Operating System supports a group of 31
standard system calls known as the Universal Development Interface (UDI). Figure 8 shows that the additional
features of this standard interface provide iRMX 86 systems the capability: of using many compilers and language translators. These include the iAPX 86 and 88
Macro Assembler, and the Pascal 86/88, PUM 86/88,
and FORTRAN 86/88 compilers available from Intel. They
also include a number of other Intel development tools,

The iSBC 544 Intelligent Four-Channel Terminal
Interface Device Driver provides support for multiple controllers each supporting up to 4 standard
RS232 terminals. The iSBC 1544 driver takes advantage of an on-board 8085 processor to greatly
reduce the system processor time required for ter• Ethernet IS a trademark of Xerox Corporation.

Order Number 210885·001

2-18

iRMX™ 86

and language translators and utilities available from other
software vendors. A subset of the UOI SYlltem Calls provides another standard interface called the Universal
Runtime Interface (URI). The URI calls are those required
to execute a compiled,program, while the full set of UOI
calls is required to run a compiler.

These standard software interfaces (the URI and the UOI)
ensure that users of the iRMX 86 Operating System may
transport their applications to future releases of the iRMX
86 Operating System and other Intel and independent
vendor software products. The calls available in the URI
and UOI are shown in Table 10.

Table 10. URI and UOI System Calls
Function Performed

System Call
Memory Management:
OQ$ALLOCA TE

Crea!es a Segment of a specified size.

OQ$FREE

Returns the specified segment to the System.

OO$GET$SIZE"

Returns the size of the specified Segment.

OO$RESERVE$IO$MEMORY"

Reserves memory to OPEN and ATTACH files.

File Management:
OO$ATTACH

,

I

Creates a Connection to a specified file.

OQ$CHANGE$ACCESS"

Changes the user access rights associated With a file or directory

OO$CHANGE$EXTENSION

Changes the extension of a file name In'memory

DQ$CLOSE

Closes the specified file Connecllon

OO$CREATE

Creates a Named File.

OO$OELETE

Oeletes a Named File.

OQ$OETACH

Closes a Named File and deletes Its Connection.

OQ$OPEN

Opens a file for a particular type of access

OQ$GET$CON NECTION$STATUS'

Returns the current status of the specified file Connection

OQ$FILE$INFO'

Returns data about a file Connection

OO$REAO

Reads the next sequence of bytes from a file.

DQ$RENAME'

Renames the specified Named File

OO$SEEK

Moves the position pointer of a file.

OO$TRUNCATE

Truncates a file.

OO$WRITE

Writes a sequence of bytes to a file.

Process Management:
OQ$EXIT

Exits from the current application job.

OQ$OVERLAY'

Causes the specified overlay to be. loaded

OQ$SPECIAL

Performs special 110 related functions on terminals With speCial control
features.

OQ$TRAP$CC

Captures control when CNTRLlC IS typed.

Exception Handling:
OQ$GET$EXCEPTION$HANOLER

Returns a pointer to the program currently being used to process errors.

OQ$OECOOE$EXCEPTION

Returns a short description of the specified error code

OQ$TRAP$EXCEPTION

Identifies a custom exception processing program for a particular type of error

Application Assistance:
OQ$OECOOE$TIME

Returns system time and date in binary and ASCII character format.

OQ$GET$ARGUMENT"

Returns the next argument from the character string used to invoke the application program

OQ$GET$SYSTEM$IO"

Returns the name of the underlYing operating system supporting the UDI.

Od$GET$TIME"

Returns the current t"ime of day as kept by the underlying operating system.

DQ$SWITCH$BUFFER

Selects a new buffer from which to process commands.

• Calls available only through the UDI
Order Number ?10RAr,

2-19

~Ol

iRMX™86

..

The high performance of the iRMX 86 Operating System
enhances the throughput of compUers and other·development utilities. Table 11 indicates the average performance
of typical development environment functions operating
in the same configuration described in Table 5.

Table 12. Major Human Interface Utilities (Con't.)
Command

Table 11. Development Environment Performance
Function

TIME

Set the system time-of-day clock.

VERIFY

Verify the structure of an iRMXTM 86
Named File.volume, and check for
possible disk data errors.

Average
EX8Cuti9n Time
INTERACTIVE CONFIGURATION UTILITY

Directory Command
(S Format with 25 files)

5.3 sec

Load the COpy Commal)Q

1.2 sec

Copy a 1K Byte File
(Winchester to Winchester)

1.0 sec

Copy a 16K Byte File

1.7 sec

Copy a 64K Byte File
Copy a 1K Byte File
(Winchester to Diskette)

3.9 sec

Compile PUM 86

3931pm

Compile PASCAL 86
Program

4531pm

The iRMX 86 Operating System is designed to provide
OEMs the ability to configure for specific system hardware and software requirements. The Interactive Configuration Utility (ICU) builds iRMX 86 configurations by
asking appropriate questions and making reasonable
assumptions. It runs on either an Intellec® Series III Development System or iRMX 86 System supporting the UDI
and a hard disk. Table 13 lists the hardware and support
software requirements of different iRMX 86 development system environments.

1.4 sec

Table 13. IRMXTM 86 Development Environment
Intellecl!> Series III:
MDS 313 PUM 86/88 Compiler
One hard disk and one diskette drive

TOOLS

Certain tools are necessary for the development of microcomputer applications. The IRMX 86 Human Interface
includes many of these tools as non-resident commands.
They can be included on the system disk of an application system, and brought into memory when needed to
per.form functions as listed in Table 12.

iRMXTM 86 Preconfigured System
iRMXTM 860 Utility
iRMXTM 863 PUM 86/88 Compiler
iSBCI!> 957B Monitor
448K Bytes of RAM
5M Byte On· Line Storage and one double-density
diskette drive

-

Table 12. Major Human Interface Utilities
Command

Function

Function

BACKUP

Copy directories and files from one
device to another.

COpy

Copy one or more files to one or
more destination files.

CREATEDIR

Create a directory file to store the
names of other files.

DIR

List the names, sizes. owners, etc.
of the files contained in a directory.

ATIACHFILE

Give a logical name to a specified
location in a file directory tree.

PERMIT

Grant or rescind user access to a
file.

RENAME

Change the name of a file.

SUBMIT

Start the processing of a series of
commands stored in a file.

SUPER

Change operator's ID to that of the
System Manager with global access
rights and privileges.

SYSTEM 86/330 Microcomputer System
Basic configuration

Figure 9 shows one of the many screens displayed during
the process of defining a configuration. It shows the abbreviations for each choice on the left, a more complete
description with the range of possible answers in the
center, and the current (sometimes default) choice on
the right. The bottom of the screen shows three changes
made by the operator (lower case lettering), and a request
for help on the Exception Mode question. In response
to a request for help, the ICU displays an additional
screen outlining possible choices and some overall sys·
tem effects.
The ICU requests only information required as a result
of previous choices. For example, if no Extended I/O
System functions are required, the ICU will not ask any
further questions about the EIOS. Once a configuration
session is complete, the operator may save all the information in a file. Later, when small changes are necesOrder Number 210885·001

2-20

iRMX™86

sary, this file can be modified. A completely new'session
is not required.

Nucleus
(ASC)
(PV)
(ROD)
(MTS)
(DEH)
(NiH)
(EM)
(NR)

AHSysca1ls{'t'tslNo1
PoromtIef V_,on (VHINoI
Root Object Dllary Sue 10-1IfftIh1
",,_ Tllnsfer Silt ~- OFfFFHI
Excepbon Hlndler (V1IINoIDeII/Use1
Narneot Ex Hindle< ObJICI Maclute 1.-32ch'1
E.cep1~n _
IN..../Program/Envrron/AIiI
Nucleus In ROIIIVHINoI

Del,,"

execution are accessable from a terminal connected directly to the iAPX 86 or 88 system.

Yes
Yes

OO.CH
0040H

rNTELLEC
SERIES
MOOEL 210

Ves

UPP
CHANNEL

Never
No

En." Changes IAbbre_no 'I, ne.·VlIueI ASC, N
pv:no
rod ,48
SERIAL CH2

em'

Figure 9. ICU Screen for IRMXTM 86 Nucleus
Figure 10. Typical iSBC® 957B Configuration

REAL-TIME DEBUGGING TOOLS

The iRMX 86 Operating System supports three distinct
debugging environments: Static, Dynamic, and PostMortem. While the iRMX 86 Operating System does
support a mUlti-user Human Interface, these real-time
debugging aids are usually most useful in a single-user
environment where modifications made to the system
cannot affect other users.
The static debugging aid is the iSBC 957B Monitor (included in the first shipment of some iRMX 86 options).
The Monitor provides a basic debugging capability for
both system and application code. The iRMX 86 Debugger provides a dynamic system debugging tool for testing
and debugging real-time systems. The Debugger allows
programmers to stop and inspect one task while the rest
of the system continues to operate. The iRMX 86 Crash/
Dump Analyzer enables programmers to intpect a system's structure after a problem has caused it to stop normal operation. Each of these debugging facilities are
described below.

iRMX™ 86 Debugger
The iRMX 86 Debugger runs as part of an iRMX 86 application. It may be used at any time during program development, or may be integrated into an OEM system
to aid in the discovery of latent errors. The Debugger can
be used to search for errors in any task, even while the
other tasks in the system are running. The iRMX 86 Debugger communicates with the developer via a terminal
handler that supports full line editing.

System Crash/Dump Analyzer
The often difficult job of debugging real-time applications
is made much simpler with the System Crash/Dump
Analyzer. The analyzer allows program developers to
record system memory for later analysis even if the system has halted. This analYSis lists such vital Information
as which jobs have active tasks, which system queues
contain which tasks, and what segments contain which
- data.

iSBC@ 957B Monitor

The information used by the Analyzer is obtained from
a copy of iRMX 86 data structures after a fault has caused
an unexpected halt (crash). The processor also may be
halted deliberately to perform a system analysis. The
system information is created by a two-step process:

The iSBC 957B Monitor can be used either as a standalone monitor for static debugging and system start-up,
or as a communication link to an Intellec Development
System. A number of PROMs are included along with the
necessary cables to control a hardware configuration
such as is pictured in Figure 10. All programs necessary
for the Intellec system and the target system are included.
Configuration tools for users wishing to support different
hardware configurations are also included.

1. Transferring an image 01 iRMX 86 system memory
to a disk file on an Intellec Senes III Microcomputer
Development system,
2. Later printing an analyzed and formatted printout
description of the stale of the system.

Debugging of any iAPX 86 or 88 application is accomplished in an interactive manner via either of the two ter:
minals shown in Figure 10. If an Intellec Development
System is not present, all debugging instructions necessary to view and modify register and memory contents,
set execution breakpoints and provide single instruction

Figure 11 shows a portion of a Crash/Dump Analyser
display for an iRMX 86 Mailbox. The display identifies
the mailbox by its token and shows its key attributes.
This information is followed by a list of tokens for objects
(if any) queued at the mailbox.
Order Number

2-21

21088~·OO'

IRMXT,M as

Ii
Ii - -- ---- - - --- ------------------ - ------------Ii
Ii
_ .......,taUn=4AM
PRIORITY
Ii
OUEUE
~

Ii

- -------- ------ or- ---- - ---- ... --- ------- ----- ......

c-mng Jab

484D

Tllkq_hood
Dbjectcochtdeplll

DOOO
Ie

Dbject queue

484DJ14A83G
484DJl4A6DG

0 - dllciplont
Dbjectquouehood

PRJ
W3

NO TASKS WAITING

484DJ14A1I'G
484DJ14A68G

JFOR
CONTAINING JOB

484DJ14A6FG
484DJ14A69G

the full Complement of devices shown in Figure 12. The
shaded area of the Figure represents the minimum hardware required by the start-up system. Other combinations
of the devices, up to the full compliment shown, that
support additional on-line storage are also possible. The
Preconfigured System includes all iRMX 86 System Calls
and the complete Universal Development Interface (UDI).
The UDI supports Intel High-Level Languages and many
applications available from Intel and many Independent
Software Vendors.

G FOR SEGMENT
ONOUEUE

~..,~"

Figure 11. Mailbox Analysis Report
The analysis displays all the mailboxes (among other
things) which exist within each job. Thus a user might
learn critical information by observing a number of objects different from that expected.

,saC'S34

•••••• ' .

.....

Performance problems can be identified under some
circumstances. Noticing that certain mailboxes frequently
have many objects queued may suggest an increase in
the high performance cache size for the mailbox to improve its throughput, or give the designer cause to investigate the receiving task operation to see why the
queue is so large.
The analyzer automatically. checks for system inconsistencies such as corrupted data structures, incorrect object
types, and stack overflow. Reports of such problems accompany the, reports on specific system objects.

PARAMETER VALIDATION
Some iRMX 86 System Calls require parameters that
may change during the course of developing iRMX 86
applications. The iRMX 86 Operating System includes
an optional set of routines to validate these parameters
to ensure that correct numeric values are used, and that
correct object types are used where the System expects
to manipulate an object. For systems based only on the
iRMX 86 Nucleus, these routines may be removed to improve the performance and code size of the System once
the development phase is completed.

~

• ""!J:.

.

,"','

-"~

FLOPPIES

WINCHESTERS

Fig~re

12. Pre-Configured iRMXTM 86 System

The Preconfigured System is intended to aid the initial
use of iRMX 86.features. Any 808fH)ased system currently
supporting an iRMX 86 environment with a double density diskette may simply plug in the start-up system and
run. Further, thiS start-up system may be used to run the
ICU (!fa Winchester disk is attached to the system) to
develop custom configurations such as those pictured
in Figure 7. As shipped, the Human Interface supports
a single user terminal. However, the Preconfigured System user terminal file may be altered easily to support
from two to five users. .

A ready-to-run, multi-user, Preconfigured System is included in each iRMX 86 KIT. Its configuration supports

This System is also available as a separate product (order
code RMX 86PC E) for-those iRMX 86 users that do not
require the ability to tailor their system to custom hardware and software configurations. The SYSTEM 86/300
Family of Microcomputer Systems also provide users
immediate access to programming tools and system applications with a ready-to-Ioad preconfigured iRMX 86
Operating System.

SPECIFICATIONS

iRMX 860

iRMX 86 Development Utilities
Package including the iAPX 86 and 88
Linker, L.:ocater, Macro Assembler,
Librarian, and the iRMX 86 Editor

iRMX 861

PASCAL 86/88 Compiler

PRECONFIGURED SYSTEM

Supported Software Products
iRMX 286R

iRMX 86-compatible Operating System
extension for iAPX 80286

Order Number 210885·001

iRMX TII 86

iRMX 862

FORTRAN 86/88 Compiler

iRMX863

PUM 86/88 Compiler

Introduction to the iRMX 86 Operating System
(9803124-04)

iRMX864

TX Screen-oriented Editor

.iRMX 86 Operator's Manual (144523-001)

iMMX800

MULTIBUS Message Exchange software package for iRMX 80, 86, and 88
application systems

Master Index for iRMX 86 Release 5 Documentation
(145015-001)

iOSP86

Support Package for iAPX 86/30 and
88/30 Operating System Processors

Getting Started With The Release 5 iRMX 86 System
(145073-001)
. iRMX 86 Installation Guide (9803125-05)
iRMX Configuration Guide (9803126-05)
iRMX 86 Nucleus Reference Manual (9803122-04)

Supported Hardware Products

iRMX 86 Terminal Handler Reference Manual
(143324-002)

CPMPONENTS

iRMX 86 Debugger Reference Manual (143323-002)

iAPX 86 and 88 Microprocessors

IRMX 86 Basic 110 System Reference Manual
(9803123-05)

iAPX 286 Microprocessors (with iRMX 286R)
8087 Numeric Data Processor Extension

IRMX 86 Loader Reference Manual (143318-002)

iAPX 86/30 (80130) Operating System Firmware
Component (with iOSP 86)

IRMX 86 Extended 110 System Reference Manual
( 143308-002)

8253 and 8254 Programmable Interval Timers

IRMX 86 Human Interface Reference Manual
(9803202-003)

8259A Programmable Interrupt Controller
8251A USART

GUide to Writing DeVice Drivers for the iRMX 86 and
iRMX 88110 Systems (142926-004)

8255 Programmable Parallel Interface

IRMX 86 Programming Techniques (142982-003)
User's Guide For The ISBC 957B IAPX 86, 88 Interface
and Execution Package (143979-002) ,

iSBC® MULTIBUS@ BOARD AND SYSTEM PRODUCTS
iSBC 86/12A, 86/05, 86/14, 86/30, 88/25, and 88/40
Single Board Computers

iRMX 86 Disk Verification Utility Reference Manual
(144133-002)

iSBC 286110 Single Board Computer (With iRMX 286R)

Runtime Support Manual for iAPX 86, 88 Applications
(121776-002)

iSBC 204 Diskette Controller
iSBC 206 Hard Disk Controller

IRMX 86 Crash Analyzer Reference Manual
(144522-001)

iSBC 208 Diskette Controller
iSBC 215 Winchester Disk Controller ,

OPTIONAL REFERENCE MATERIALS

iSBC 220 SMD Disk Controller
iSBC 254 Bubble Memory System

Edit Reference Manual (143587-002)

iSBC 534 4-Channel Terminal Interface

Guide to Using iRMX 86 Languages (142907-001)

iSBC 544 Intelligent 4-channel Terminal Interface and
Controller

APPLICATION NOTES

iSBX 218 Diskette Controller (with iSBC 215)

Ap Note 86 - iRMX 86 Realtime Multitasking
Operating System

iSBX 350 Parallel Port (Centronics-type Printer Interface)

Ap Note 130 - Using Operating System Processors to
Simplify Microcomputer Designs

iSBX 351 Serial Communications Port
iSBX 270 CRT, Light Pen and Keyboard Interface
SYSTEM 86/330 Computer System

TRAINING COURSES

SYSTEM 86/380 Computer System

Introduction to the iRMX 86 Operating System
Advanced 'iRMX 86 Operating System Concepts

Available Literature
CUSTOMER SEMINARS

The iRMX 86 Documentation Set is comprised of following reference manuals. Each is also be available under
the order numbers shown.

Contact Local Intel Sales Office for details on available
video-tape and slide presentations.
Order Number 210885 001

2-23

ORDERING INFORMATION

RMX 86 KIT ERO:

The iRMX 86 Operating System is available under a
number of different licensing options as noted here. Except for source listings (available on microfichel all options
are provided on either single or double density ISIS-formatted diskettes, or on double density iRMX 86-formatted
diskettes. ISIS-format diskettes may be used on Intel
Intellec Development Systems. The iRMX 86-format may
be used on any iRMX 86-based system supporting the
appropriate compilers and 'development environment.

Other licensing options include prepayment of all future
incorporation fees, single use rights for a single machine,
use at a second development site, one-year support service extensions, the right to make copies for a(ldltional
development systems, and source listing materials.
Each option includes 90 days of support service that
provides a periodic NEWSLETTER, Software Problem
Report Service, and copies of System updates that occur
during this period. Except for source listings, all initial
licenses include the iSBC 957B iAPX 86 and 88 System
Monitor, and a complete set of iRMX 86 Documentation.

The OEM license options listed here allow users to incorporate the iRMX 86 Operating System into their applications. Each use requires payment of an Incorporation
Fee.

Order Code

Description

RMX 86 KIT ARO:

Single density OEM license.

RMX 86 KIT BRO:

Double density OEM license.

Double density iRMX 86-Format
OEM license for use on iRMX
86-based environments.

As with all Intel software, purchase of any of these options

requires the execution of a standard Intel Master Software License. The specific rights granted to users depend
on the specific option and the License signed.

2-24

iRMX™ 88
REAL·TIME MULTITASKING EXECUTIVE
• Event-driven multitasking executive
software supports iSBC® 86/05,

• Supports component or iSBC™·based
system generation through Interactive
Configuration Utility

86/12A, 86/14, 86/30, 88/25, 88/40,
88145 or iAPX 86, 88 based applications

• I/O system provides compatible
iRMX™ 86 files and device independent
110 interface

• Small, high·performance, PROMable
executive supports high sample rates
• Provides simple, intertask communica·
tions and synchronization

• 110 system supports the User Run·time
Interface (URI) for PUM, PASCAL and
FORTRAN coded application tasks

• Supports the 8087 Numeric
Processor Extension (NPX) for
arithmetic applications

• Memory management of full megabyte
iAPX 86, 88 memory

The iRMX 88 Real·Time Multitasking Executive is a small, event-driven single-user executive system. Designed
for dedicated computer applications using iSBC 86/05, 86/12A, 86/14, 86/30, 88/25, 88/40, 88/45 or iAPX
86, 88 custom products, the modular software package provides real-time application support for PASCAL,
FORTRAN, PUM and assembler coded tasks. Application tasks utilize intertask communications, synchronous
I/O control, priority-based resource allocation and file support for the iSBC 204, 206, 208, 215/218, and
220 Disk Controllers, and the iSBC 254 Bubble Memory product.
The small, high performance iRMX 88 Executive can be located in EPROM or bootstrapped into RAM
memory. The iRMX 88 Executive offers features that are suitable for performance·critical process control
applications, production test stand units, sophisticated laboratory analysis, instrumentation, specialized
data acquisition systems or monitoring stations. The iRMX 88 design, based upon the iRMX 80 Real·Time
Executive, offers iRMX 80·like interfaces for those 8·bit applications which are upgrading to 16·bit solutions for the 1 Megabyte addressing, expanded application functions, and higher performance data sam·
piing requirements.

USER
APPLICATION

Figure 1. Module Representation
The follOWing are trademarks of Intel Corporation and may be used only to desCribe Intel products Intel, CREDIT, Index, Instte, Intellec, library Manager, Megachanls,
Mlcromap, MULTIBUS, PROMPT, UPI, ,"Scope, Promware, MeS, ICE, tRMX, .SSC, .sex, MULTIMODULE and teS Intel CorporatIOn assumes no responsibility lor the use alany
cIrcuitry other than Circuitry embodied in an Intel product No other circuit patent licenses are Implied

© INTEL CORPORATION, 1981

October, 1;81
Order Number: '.3130.002

2-25

intJ

iRMX™ 88

. ance flexibility since it masks all Interrupts and
supports burst-rate data sample gathering. The interrupt task Is useful for lower frequency interrupts, masking only lower priority interrupts..

FUNCTIONAL DESCRIPTION
The IRMX 88 Real-Time Multitasking Executive
Software package provides facilities for executing
tasks concurrently, managing resources and servIcing asynch'ronous events to users of Intel's
single board computers and custom iAPX 86,
88-based products. The foundation modules support real-time dedicated computer applications
with priority-based task scheduling, interrupt
dispatching, real-time clock control with 1 ms
resolution, multiple event monitoring and control,
and file services for flexible, hard, Winchester,
SMD disk units and bubble memory devices. The
software package includes the primary modules:
Nucleus, Free Space Manager, Terminal Handler,
I/O System and Bootstrap Loader. The Interactive
Configuration Utility (ICU) executes on a Series III
Intellec System, or iRMX 86 Operating System
with a Universal Development Interface·(UDI).

Small High-Performance Executive
The iRMX 88 Executive software utilizes a simple,
straightforward architecture which minimizes the
memory requirements, as shown in Table 1. In addition, the modules are deSigned to be totally
EPROM resident for those systems where mass
storage devices cannot be used because of the
danger of ,contamination.
Real-time microcomputer solutions require the
recognition of' interrupts. The performance of the
system is with respect to data sample rates, If there
is no activity in progress when an interrupt occurs,
the time to handle that interrupt is dependent on
the number of instructions executed, e.g., 52
microseconds interrupt latency time on an iSBC
86/12A board. Most real-time solutions have mUltiple events occurring and background operations in
progress. Seldom does a background task have
critical sections of code which cannot be interrupted.

FEATURE OVERVIEW
Event-Driven Multitasking
The i RMX 88 Executive provides a control software
foundation called a Nucleus. The iRMX88 Nucleus
provides two major functions: first, the facility for
concurrent task execution; secondly, the facility
for handling simultaneous asynchronous events.

Intertask Communications
The iRMX 88 Nucleus provides a simple, easy-touse intertask communications mechanism based
upon a message. Messages are transferred between tasks with two basic procedure calls, a send
(ROSEND) and a wait (ROWAIl'). Task "A" requests
the Nucleus to ROSEND the pOinter to a message
buffer to Task "B" (see Figure 2). The Nucleus controls the message flow by activating the higherpriority Task B, or queuing the message If a lowerpriority Task B is not waiting for the message. The
receiving task does an ROWAIT to get the message pOinter and can now access the data which
may be for synchronization or real-time control
operations.

The structured multitasking environment permits
segmenting of the application tasks. The number
of tasks, managed by the Nucleus, Is limited only
by the available 1 Megabyte memory space. The
tasks are prioritized such that the highest-ranked'
task is executing, e.g., an alarm event preempts
the lower priority executing task. The Nucleus
supports 255 priority levels.
Since internal or external events (interrupts) occur
randomly, the Nucleus synchronizes the event
with a task. The Nucleus ~upports either an interrupt service routi.ne or an interrupt task. The interrupt service routine offers high-speed perform-

Table 1. IRMX™ 88 Module Memory Requirements
MODULE
EPROM·
(K bytes)

NUCLEUS
4.0

TERMINAL
HANDLER

FREE
SPACE
MANAGER

PHYSICAL**

NAMED**

BOOTSTRAP * * •

2.5

1.5

20.0

32.0

1.5

1/0 SYSTEM

• amount 01 code configured In EPROM; all numbers are approximate
•• includes one 3K byte deVIce driver (named Iile plus phYSIcal lile is 34.0K bytes)
••• includes an O,5K byte device driver
AFN'()1108A

2-26

intJ

IRMX™ 88

Numeric Data Processor

TASK ENTRY POINT

TASK A

The iRMX 88 Nucleus fully supports the 8087
Numeric Processor Extension (NPX) functions for
high·speed arithmetic functions of real·time ap·
plications. High·performance numeric processing
applications, which utilize 8·, 16·,32· and 64·bit in·
tegers, 32·, 64· and 80·bit floating pOint or 18·digit
BCD operations, are accelerated up to 100 times
over a iAPX 86, 88 software solution. The NPX
functions, including trigonometric, logarithmic
and exponential functionals, are essential in
scientific, engineering, navigational or military ap·
plications.

INITIALIZE TASK

•

PERFORM FUNCTION

INITIALIZE OPERATION (ROSEN D)
(SEND MESSAGE)

1.

WAIT FOR RESPONSE (ROWAIT)
TASK ENTRY POINT

TASK B

INITIALIZE TASK

Nucleus Primitives

WAIT FOR MESSAGE (ROWAIT)
FROM TASK A

The Nucleus performs other functions as shown in
Table 2, in addition to the message communica·
tions management. Some primitives like CREATE
TASK and DELETE TASK allow dynamic crea·
tion/deletion of tasks during run·time. This
dynamic capability allows the Nucleus tables to

PERFORM FUNCTION

1.

SEND RESPONSE (ROSEN D)
TO TASK A

Figure 2. Intertask Communications

Table 2. Nucleus Primitives
NAME
ACCEPT

FUNCTION
Accept a message from specified exchange. Returns message ad·
dress if available, zero otherwise.

CREATE TASK

Create task by building new Task Descriptor based on specified
Static Task Descriptor.

CREATE EXCHANGE

Create exchange at specified RAM address.

DISABLE INTERRUPT

Disable specified interrupt level.

DELETE EXCHANGE

Delete specified exchange.

DELETE TASK

Delete the task specified.

ENABLE INTERRUPT

Initialize' message portion of the Interrupt Exchange Descriptor
associated with the specified interrupt level (the first time called
only), and enable specified interrupt level.

END INTERRUPT

Signals specific end·of-interrupt for the specified interrupt exchange
in a user-supplied interrupt service routine.

INTERRUPT SEND

Send an interrupt message to the specified interrupt exchange.

RESUME

Resume a task that has previously been suspended.

SEND

Send the message located-at "msg-addr" to the exchange specified
by "exch-addr."

SET INTERRUPT

Set interrupt vector address. An interrupt is to be serviced by the
user-supplied routine starting at the address, thus bypassing
Nucleus interrupt software.

SUSPEND TASK

Suspend execution of the task specified by the Task Descriptor.

WAIT

Wait at the specified exchange until a message is available or time
limit expires. Return address of system timeout message or liser
message.
AFN 01108A

2-27

intJ

IRMX™88

expand and accommodate infrequently used tasks
which are loaded into memory from a mass
storage device.

files can be "double buffered" so that the task can
be processing data in one buffer while the IDS is
filing another.

Interactive System Generation

The IDS provides access to two types of files:
• Named Flies allow applications to refer to collections of bytes (files) by using a name. These
names are cataloged in a directory which allows
files to be accessed by different tasks.
• Physical Files allow applications to make a
physical connection to a storage device.
Typically used for simple devices such as
printers, terminals or sequential data logging
where file structures are not necessary.

The iRMX 88 Executive is constructed in a'
thoroughly modular manner with the ful~ range of
facilities being offered in library mOdules. By
selecting the appropriate features and combining
them with the user-written application tasks the
generated system is tailored to the application's
requirements minimizing memory overhead for
;
unused features.
An Int'eractive Configuration Utility provides a
query-based tool that configures the i RMX
88-based application_ Responding to questions
from the ICU utility program executing on a Series
IIIlnteliec Microcomputer Development System or
an iRMX 86-based system, the user quickly tailors
the real-time application system.

The file types are a compatible subset of the iRMX
86 Basic 110 System with a flat (non-hierarchical)
directory.

Bootstrap Loader

110 System
The iRMX 88 110 System provides an extensive
facility for device-independent 110. Through a
series of supplied iRMX 86 compatible device
drivers, the 110 System supports a wide-range of
iSBC peripheral controllers. Custom peripheral
controllers are supported through user-written ,
device drivers which are integrated with the 110
System at system configuration time. The deviceindependent nature of the system allows use of
different devices without application redesign.
The 110 System (IDS) procedures manage real-time
file operations supporting both sequential and
random access (see Table 3). The IDS maximizes
system throughput by allowing multiple disk
operations to proceed in parallel. For example,

The iRMX 88 IDS has a Bootstrap Loader which
loads a file from mass storage into system
memory. The configurable Bootstrap Loader loads
the file from a specific device, automatically from
the first-ready device of, a designated device list,
or accepts the file name from a terminal. Storing
the system software on disk allows easier future
changes to the application system.

Run-Time Interface
The iRMX88 Executive provides the User Run-time
Interface (URI). This URI interface, in addition to
encompassing the 110 System services, provides
additional functionality for tasks. The additional
functionality includes a trap function and memory
management routines which provide the run-time
foundation for PASCAL-86, FORTRAN-86, or
PUM-86 coded application tasks.

Table 3_ 1/0 System Services
Data Transfer
Services.

File Connection
Services

Volume Preparation

SERVICE

FUNCTION

CLOSE
OPEN
READ
SEEK
TRUNCATE
WRITE
ATTACH
CREATE
CONNECTION STATUS
DELETE
DETACH
RENAME
FORMAT

Closes a file connection·.
Opens a file connection for access.
Reads a number of bytes from a file.
Seeks to the indicated position within a file.
Truncates a file.
Writes a number of bytes to that file.
Attaches to a file connection.
Creates a file and returns a file connection.
Returns the file connection status.
Marks the file for deletion.
Detaches a file connection.
Renames an existing file.
Formats the disk for files.
AFN'()1706A

2-28

intJ

iRMXTM 88

SPECIFICATIONS
Intellec® System Configuration and
Generation Requirements
Series III Intellec Microcomputer Development
System with UDI support and a minimum of 2
diskette drives.

IRMX™·Based Configuration and
Generation Requirements
iRMX 86-based system with UDI support and a
minimum of2 diskette drives.

Supported Hardware
ISBC™ SUPPORTED MICROCOMPUTERS

iSBC
iSBC
iSBC
iSBC
iSBC
iSBC
iSBC

86/05 Board
86/12A Board
86/14 Board
86/30 Board
88/25 Board
88/40 Board
88/45 Board

MULTIMODULE™ BOARDS

iSBX 218 Flexible Disk Controller (when used with
the iSBC 215 Controller)
iSBC 337 Numeric Data Processor
iSBX 351 Serial 110 Board

CUSTOM IAPX 86, 88·BASED SYSTEMS
REQUIREMENTS

8253 or 8254 Programmable Interval Timer
8259A Programmable Interrupt Controller
8251A USART or iSBX 351 board (when the Terminal Handler is configured into the system).
8087 Numeric Processor Extension (when NPX
tasks are configured into the system).

Reference Manuals (supplied)
143238 - Introduction to the iRMX 80/88 RealTime Multitasking Executives
143241 - iRMX 88 Installation Instructions

MASS STORAGE

143232 - iRMX 88 Reference Manual

iSBC
iSBC
iSBC
iSBC
iSBC
iSBC
iSBC

142603 - iRMX 80/88 Interactive Configuration
User's Guide

204 Flexible Diskette Controller
206 Flexible Disk Controller
208 Flexible Disk Controller
215A Winchester Disk Controller
215B Winchester Disk Controller
220 SMD Disk Controller
254 Bubble Memory Board

142926 - Guide to Writing Device Drivers for the
iRMX 86 and iRMX 88 110 Systems

AFN·OI708A

2-29

iRMX™ 88

ORDERING INFORMATION

Part Number Description

Part Number Description

RMX 88 ABY

Single Density ISIS media. In·
cludes incorporation fee
buyout.

RMX 88 BBY

Double Density ISIS media. In·
cludes incorporation fee
buyout.

RMX88 DBY

Single Density RMX·86 media.
Includes incorporation fee
buyout.

RMX88 AWX

One year Single Density ISIS
media update service.

RMX88 BWX

One year Double Density ISIS
media update service.

RMX 88 DWX

One year Single Density
RMX·88 media update service.

RMX 88 LST

Human readable source lis.tings
for iRMX 88 software.

RMX 88 LWX

Update service for human
readable source listings.

RMX 88 RF

Incorporation fee.

RMX88

RMX88 ARO

A licensed product which in·
cludes Nucleus, Terminal
Handler, Free Space Manager,
and 110 System object modules.
Package also includes UDI·
compatible Interactive Config·
uration Utility program for
system generation and a com·
plete set of manuals. Purchase
price includes an iRMX 88
Customer Training Course
credit.
Single Density ISIS media. Re·
quires derivative work incor·
poration fee.

RMX 88 BRO

Double Density ISIS media. Re·
quires derivative work incor·
poration fee.

RMX 88 ORO

Single Density RMX·86 media.
Requires derivative work incor·
poration fee.

2-30

PRECONFIGURED iRMX™ 86
OPERATING SYSTEM
• Ready-to-run Preconflgured iRMX™ 86
Operating System for ISB~ systems

• Direct support for Intel on-target
compilers and development tools

• Efficient realtime multitasking
scheduler with 255 priority levels

• Simple program load and debug with
Bootstrap and Monitor In 2732A
EPROMs

• Device drivers included for diskettes,
Winchester hard disks, serial
terminal Interface, and parallel line
printer

• Complete support of 8087 numeric
processor extension
• Direct support of Independent
software vendor compilers and
applications

• A complete, high-performance,
execution engine for UDI applications

The Intel Preconfigured iRMX 86 Operating System is a flexible, realtime; and multitasking system which
is configured to run on a low-cost, iSBC 86-based hardware system_ The iRMX 86 Operating System is
designed to provide a structured and efficient environment for many time- and performance-critical applications such as factory automation, business data and text processing, medical electronics, data communications and process control. The Preconfigured System provides this environment without requiring
specific hardware and software configurations. Based on the UOI software interface architecture for optional compilers and interpreters, the iRMX 86 PC System supports development of sophisticated applications using the target hardware. A ready-to-use comprehensive human interface provides advanced services including creating and maintaining a hierarchical file system, entering the debug monitor and
backing-up diskette volumes.

SOFTWARE INTERFACE ARCHITECTURE
UNIVERSAL DEVELOPMENT
INTERFACE
(UDlj

UNIVERSAL RUN· TIME
INTERFACE

IUIUI

STANDARD I/O INTERFACES

REAL TIME NUCLEUS

MUL TlPAOCESSING SYSTEMS IUS
MULTIBUS

Figure 1. IRMXTM 88 PC Support for Standard Interfacas
The follOWing are trademaltt. of Intel Corporation and may be used only to desCribe Inte' products Intel, CREDIT. Index, Inslte, Intallee, Library Manager, Megachaasls,
Mlcromap. MULTIBUS, PROMPT. UPI,,,$cope, Promware, MCS, ICE, IRMX••sac,
MULTI MODULE and ICS Inte' Corporation IllUmes no responsibility for the use of any
CircUitry other than CirCUitry emboched In an Inte' product No other CirCUit patent IIc.n••••r. Implied

,sax,

© INTEL CORPORATION. 1982

M." •• 1982
0 _ Nu...... : 21CMH-OOl

2-31

IRMX™ 86 PC

The Preconfigured iRMX 86 Operating System is a
complete set of system software modules that are
ready-to-run in a simple MULTIBUS system consisting of an iSBC 86 computer, memory, and a
diskette controlleJ board. All the features of the
iRMX 86 Operating System are provided along with
a bootstrap monitor to load the system diskette into the system.

These commands are especialiy useful for managing user programs and data stored on diskettes.

File Management
The iRMX 86 PC file management system allows
users to access information on diskettes by referring to a file with its ASCII name. The names of
files stored on a disk are catalogued in special
files called directories. As directories are themselves named files, the iRMX 86 file system allows
directories to contain the names of other directories. This leads to a hierarchical file structure as
illustrated in Figure 2. This structure is useful for
isolating file names of particular applications, and
for tailoring the system's data to the requirements
of users and applications sharing storage devices.

The Preconfigured iRMX 86 System provides both
implicit and explicit management of system
resources. These resources include the processor's
time and registers, up to one megabyte of system
memory, independent interrupt sources, all input and
output devices, as well as directory and data files
contained on diskettes or 8" Winchester disks.

FUNCTIONAL DESCRIPTION
In applications where computers are required to
perform many functions simultaneously, the iRMX
86 Operating System provides a multiprogramming environment in which many independent,
and optionally multitasking, applications may run.
Each application environment may be treated separately to allow application programmers the flexibility to separately manage each application's
resources. A complete description of the iRMX 86
Operating System can be found in the iRMX 86
Data Sheet (Order Number: 210330).

6
D

FILE

DIRECTORY

DIR

(OTHER)

User Commands
The iRMX 86 PC System provides a number of
powerful tools necessary for the development of
microcomputer applications. They are included on
the system disk and brought into memory when
needed to perform the functions listed in Table 1.

URXSML

URXCOM

URXLRG

UOI

LIB

LIB

LIB

EXT

Figure 2. IRMXTM 86 PC System Disk Directory Tree
I

Table 1. IRMXTM 86 PC Commands
Command
AITACHDEVICE
BACKUP
COpy
CREATEDIR
DATE
DELETE
DEBUG
DETACH DEVICE
DIR
FORMAT
RENAME
RESTORE
SUBMIT
TIME
VERIFY

Function
Gives a logical name to a specific disk, CRT, or Printer device
Copy directories and files from one device to another
Copy one or more files to one or more destination files
Create a directory file to store the names of ~ther files
Set the system calendar
Delete a file or directory
Enter the System Monitor
Remove a device from the system
List the names, sizes, owners, etc. of the files. contained in a directory
Prepare a new diskette volume for use
Change the name of a file
Recreates a volume saved by BACKUP
Start the processing of a series of commands stored in a file
Set the system time-of-day clock
Verify the structure of an iRMX 86 Named File volume, and check for possible disk data errors
AFN·02202A

2-32

IRMX™ 86 PC

Figure 2 also shows the siructure of the directories on the iRMX 86 PC system diskette. It contains all the programs and commands that make
up the iRMX 86 PC System. Users may add other
files and directories anywhere in the structure.
Whenever an operator makes a request to use one
of these files, the System will search the appropriate directory tree in order to find the necessary
informati,on about the file's size, access rights,
and specific location on the diskette. Applications
may also refer to a specific file or group of files by
specifying the directory from which to start the
search.

Universal Development Interface (UDI). Figure 1
shows how this interface provides iRMX 86
systems the capability of using many compilers
and language translators. Th~se include the iAPX
86 and 88 Macro Assembler, and the PASCAL
86/88, PLiM 86/88, and FORTRAN 86/88 compilers
available from Intel. They also include a number of
other Intel development tools, and language translators and applications available from independent software vendors.
The standard UDI software interface establishes a
path to future Intel software products and opens
the door to a host of compilers, interpreters, and
application programs available from independent
software vendors. These UDI calls are easy-to-use
and are listed in Table 2. A more complete list of all
the system calls provided by the iRMX 86 PC
System can be found in the iRMX 86 Data Sheet.

Standard Interfaces
The iRMX 86 PC System supports a group of 31
easy-to-use standard system calls known as the

Table 2. UDI System Calls
System Call

Function Performed

Memory Management:
DQ$ALLOCATE
DQ$FREE
DQ$GET$SIZE
DQ$RESERVE$10$MEMORY

Creates a segment of a specified size for use by the application.
Returns the specified segment to the system'.
Returns the size of the specified segment.
Reserves memory for use by 110 operations.

File Management:
DQ$AITACH
DQ$CHANGE$EXTENSION
DQ$CLOSE
DQ$CREATE
DQ$DELETE
DQ$DETACH
DQ$OPEN
DQ$READ
DQ$RENAME
DQ$SEEK
DQ$TRUNCATE
DQ$WRITE
DQ$FILE$INFO
DQ$CHANGE$ACCESS

Creates a connection to a specified file.
Changes or adds an extension to a file name.
Closes the specified file connection.
Creates a Named File for use by the application.
Deletes a Named File.
Closes a file and deletes its connection.
Opens a file for a particular type of access.
Reads the next sequence of bytes from a file.
Renames the specified Named File.
Moves the current position pointer of a file.
Truncates a file.
Writes a sequence of bytes to a file.
Returns information about the specified file.
Changes the access rights of the specified file.

Process Management:
DQ$EXIT
DQ$GET$CONNECTIONS$STATUS
DQ$OVERLAY
DQ$SPECIAL

Exception Handling:
DQ$GET$EXCEPTION$HANDLER
DQ$DECODE$EXCEPTION

Exits from the current application job.
Returns the current status of the specified file connection.
Causes the specified overlay to be loaded.
Performs speci,al 1/0 related functions on terminals with special control
features.

Returns a pointer to the program currently being used to process errors.
Returns a short description of the specified error code.
AFN 02202A

2-33

IRMX™86 PC

Table 2. UOI System Calls (con't.)
Function Performed

System Can
Exception Handlirig (con't.)
DO$TRAP$EXCEPTION

Identifies a custom exception processing program for a particular type of
error.
Identifies a custom handler for processing CNTUC keyboard inputs.

DO$TRAP$CC
Application Assistance:
DO$GET$ARGUMENT

Returns the next argument from the character string used to invoke the
application program.
Returns the name of the underlying operating system supporting the UDI.
Returns the current time of day as kept by the underlying operating
system.
Selects a new buffer from which to process commands.
Returns date and time in ASCII characters.

DO$GET$SYSTEM$ID
DO$GET$TlME
DO$SWITCH$BUFFER
DO$DECODE$TIME

iRMX 86 System directly. The iRMX 86 PC System
includes a separate diskette with the complete set
of iRMX 86 multitasking system call declarations for
those programmers requiring more function than is
supplied by the UDI.

Simple System Start-Up
The iRMX 86 PC system includes a comprehensive
Monitor and Bootstrap Loader in four 2732A
EPROMs. These programs have been configured
to support the hardware shown in Figure 3. As
shown, the Monitor is capable of communicating
with an Intellec Microcomputer Development
System. This communications link can be used to
transfer programs and data between an iRMX 86
System and the Intellec Development System.

Debugging Aids
The iRMX 86 PC System includes a System
Monitor that provides the capability of debugging
one task at a time. The monitor includes instructions for examining and modifying the contents of
all 8086 and 8087 registers, setting system breakpOints, single-stepping, examining and modifying
system memory, executing CPU I/O, and disassembling program instructions.

This start·up system provides a perfect environment for the development and efficient execution
of applications programs. When these programs
require different I/O devices or a different software
configuration, they can be moved to any other

INTEllEC"
DEVELOPMENT
SYSTEM

PARAllEL
PORT
2732A EPROMS

(WITHl~~~~~T:~~ _ _-H,--_..j.
MONITOR)

MEMORY BOARD(S)

Figure 3. Hardware Configuration of PC System
AFN·02202A

2-34 .

IRMX™ 86 PC

SPECIFICATIONS

Getting Started with the iRMX 86 System
(144340-001) (Included in PC System Package)

Optional Intel@ Software Products

Introduction to the iRMX 86 Operating System
(9803124-03)

iRMX 86

Fully configurable iRMX 86 Realtime
Operating System
iRMX 860 iRMX 86 Development Utilities Package including the iAPX 86 and 88
linker, Locater, and Macro Assembler,
librarian, and the iRMX 86 Editor
iRMX 861 PASCAL 86/88 Compiler for execution
on iRMX 86 Systems
iRMX 862 FORTRAN 86/88 Compiler for execution on iRMX 86 Systems
iRMX 863 PUM 86/88 Compiler for execution on
iRMX 86 Systems
iSBC 957B iAPX 86 System Monitor and Microcomputer Development System Com·
munications link

iRMX 86 Installation Guide (9803125-04)
iRMX 86 Configuration Guide (9803126-04)
iRMX 86 NUCLEUS Reference Manual (9803122-03)
iRMX 86 Terminal Handler Reference Manual
(143324-01)
iRMX 86 Debugger Reference Manual (143323-01)
iRMX 86 Basic 1/0 System Reference Manual
(9803123-04)
iRMX 86 Loader Reference Manual (143318-01)
iRMX 86 Extended 1/0 System Reference Manual
(143318-001)
iRMX 86 Human Interface Reference Manual
(9803202-002)

Supported Hardware Products
ISBC® MULTIBUS® PRODUCTS

iRMX 86 System Programmer's Reference Manual
(142721-003)

iSBC 86/12A, 86/14, and 86130 Single Board Com·
puters

Guide to Writing Device Drivers for the iRMX 86
and iRMX 88110 Systems (142926-003)

iSBC 208 Flexible Disk Controller

iRMX 86 Programming Techniques (142982-002)
User's Guide for the iSBC 8578 iAPX 86,88 Interface and Execution Package (143979-002)

PERIPHERAL DEVICE
CRT -

RS232 at 9600 Baud

Printer - Centronics-type Parallel Interface

iRMX 86 Disk Verification Utility Reference Manual
(144133-001 )

Diskettes - 2 to 4 Single- or Double-Density,
Single- or Double·Sided

iRMX 86 Pocket Reference (142861-002)
Edit Reference Manual (143587-001)

Memory Requirements

Runtime Support Manual for iAPX 86,88 Applications (121776-001)

200K Bytes to support applications less than 16K
Bytes.
.

Guide to Using iRMX 86 Languages (143907-001)

384K Bytes to support Intel's PASCAL 86 Compiler.

Reference material may be ordered from any Intel
sales representative, distributor oftice, or from
Intel literature Department, 3065 Bowers Avenue,
Santa Clara, CA 95051.

256K Bytes to support Microsoft's Basic Interpreter and a 32K Byte user program and data
space.

Training Courses

Reference Material

Introduction to the iRMX 86 Operating System

iRMX 86 Operating System Data Sheet (210330)

iRMX 86 1/0 System Concepts

AFN 02202A

2-35

ORDERING INFORMATION
The IRMX 86 PC System Is provided on a doubledensity, iRMX 86 compatible system diskette (format type E). The iRMX 86 PC System is shipped
with a comprehensive users' manual ("Getting
Started With The iRMX 86 System), Bootloader and
Monitor EPROMs, and the complete iRMX 86 Interface Libraries contained on a second diskette. A
full year of Intel Support Level D (Software Problem
Report Service) is included. This Intel copyrighted
system is licensed as a single-use software product
as defined by Intel's Master Software Licenses.

Order Code

Description

RMX 86PC E

Complete Preconfigured iRMX
86 Operating System with interface libraries, bootstrap monitor,
and user documentation. \

2-36

inter
iOSP™ 86
iAPX 86/30 AND iAPX 88/30 SUPPORT PACKAGE
• Compatible with Intel PL/M 86/88,
PASCAL 86/88, FORTRAN 86/88, and
iAPX 86/88 ASSEMBLER

• Development and run·time support for
iAPX 86/30 and 88/30 Operating
System Processors

• Supports (P)ROM or RAM based
system

• Total iRMX™ 86 Operating System
software compatibility

• Complete system initialization aids
• Complete system configuration aids

• Extendable with iRMX™ 86 Operating
System calls

• OSP Interactive. Configuration Utility

The Intel iOSP 86 Support Package for the iAPX 86/30 and 88/30 Operating System Processors contains a
comprehensive set of easy-to-use tools necessary to develop (P)ROM or RAM-based applications that use
the 80130 Operating System Firmware component. All of the system initialization and run-time facilities
are provided in libraries that may be configured to specific requirements, and linked to application programs 'written in either iAPX 86 or iAPX 88 Assembler or a high level programming language such as
PASCAL 86 and PUM 86. The iOSP 86 Package provides users with the basic initialization and interface
routines needed to build application software based on the fundamental operating system functions of the
iAPX 86/30 and 88/30 Operating System Processors. The iOSP 86 Package also enables users to add higher
level I/O functions from the fully compatible iRMX 86 Operating System, or to form custom, real-time
systems.

-

The fOllOWing are trademarks of Intel Corporation and may be used only to describe Intel products Intel, CREDIT, Index, Inslte, 1ntellee, Library Manager, MegachasSl5.
Mlcromap. MULTISUS, PROMPT, UP!, p.Scope. Promware, MeS, ICE, ,RMX, ,sac, tSBX, MUlTIMODULE, IOSP and les Intel Corporation assumes no responsibilIty for the useel
any circUitry other than Circuitry embodied In an Intel product No other Circuit patent hcense~ afe ~n1phed
,
t

OCIO~', 1881
Order Numb.r: 2102,..001

INTELCORPORATION.1981

2-37

iOSP™ 86

FUNCTIONA,L DESCRIPTION
The iAPX 86/30 and iAPX 88/30 Operating System,
Processors (OSPs) provide an easy-to-use foundation on which many real-time applications may be
built. They provide the functions and system support needed to implement bot~ simple and complex applications that require multiple tasks to run
concurrently (see Figure 1). These services are
made possible by the addition of the five new data
types integrated into the 80130 Operating System
Firmware (OSF) component. The 80130 OSF extends the basic data types of the CPU (integer,
byte, character, etc.) by adding new system data
types (JOB's, TASK's, MAILBOX's, SEGMENT's,
and REGION's), and extensive timer, interrupt,
memory, and error management designed to give
real-time response to multitasking and multiprogramming applications. As shown in the second half of the figure, other operating system functions such as mass storage 1/0 services and an
easy·to-use Human Interface can be added easily,
by using modules from the complete operating
system services of the i RMX 86 Operating System.
The iOSP 86 Support Package provides both an interface between application software and the
Operating System Processors, and development
tools designed to make the implementation and
initialization of real-time, multitasking systems
much simpler.
The iOSP 86 Support Package provides system
developers with the configuration options necessary
to tailor the iAPX 86/30 and 88/30 Operating System
Processors to custom applications. Central to the entire configuration process is the OSP Interactive
Configuration Utility (OSPICU). This utility is an easyto-use tool which allows you to make configuration
decisions by responding to screen-oriented displays.
Using the ICU, users can form easy-to-use initializa-

tion routines, and support code. The interface
libraries form a simple interface between application
software and the operating system primitives of the
80130 OSF component. The various configuration
options include:

Memory and 110 Addressing
The 80130 OSF requires a 16K byte block of
memory address space to be reserved for accessjng
internal functions. The iOSP 86 Support Package
is used to specify the base address of the 80130
and the beginning of the initialization routines.
All, Interrupt and Timer management of the OSF is
controlled via a reserved 16-byte I/O address block
that may be selected by the user. In addition, from
1 to 7 slave 8259A interrupt controllers can be
specified in order to provide the system with up to
57 priority interrupt sources. The OSF baud rate
generator may also be configured to support an
optional terminal interface.
Ex~ending the 80130 OSF

The 80130 OSF allows users to add their own
operating system extensions. These extensions
may take advantage of the detailed and efficient
intertask communication and synchronization
primitives already provided by the 80130, and/or
may utilize custom functions tailored to specific
applications. The Support Package also enables
users to extend the OSF with the extensive services of Intel's iRMX 86 Operating System, thereby
allowing applications to grow without having to
change or alter application software already written, or having to write other operating system software. Use of the 80130 with the iRMX 86 Operating
system greatly reduces the amount of memory
needed for the i RMX 86 Nucleus layer, and enables
applications to take advantage of the increased

COMPLEX
APPLICATION SOFTWARE

COMPILERS
MULTITASKING. REAL·TlME
APPLICATION SOFTWI.RE

HUMAN INTERFACE
EIOS
BASIC 110 SYSTEM
IRMX" 86 NUCLEUS

10SP" ,6 INTERFACE LIBRARIES

~7

(OPTIONAL)

I

10SP" 86 INTERFACE LIBRARIES

~6

OR
~6

I

80130

8087
(OPTIONAL)

I

8086
OR
~8

I

80130

Figure 1_ Structure of Typical Systems
AFN-- 60
THEN 00,
AC*CVCLE.cDUNT-o.
CM.L. RCiISIGNALIINTERRUPTCACIINTERRUPTILEVEL.
eAC'EXCEPT~OOE) •
END.
aBE CALL RClM:X]TIINTERRUPT(ACIINTERRUPTILEVEL.
IACtEXCEPTICODE) I
END At.HANDLER,

Example 5.

eG-l1z A.c' Interrupt Handler

, In its initialization phase, TIME$TASK sets up the
interrupt handler by calling the RQ$SET$
INTERRUPT routine. The body ofTIME$TASK (the
execution phase) is just a series of nested loops counting hours, minutes, and seconds. When TIME$TASK
calls .RQ$WAIT$INTERRUPT inside its biner-most
loop, the OSP suspends execution of the task until
AC$HANDLER signals that another second's worth
of A.C. cycles has elapsed. Thus, interrupt handlers
can serve to "pace" interrupt tasks. After a day,
TIME$TASK completes and deletes itself.
DECLARE SECONDtCOUNT BYTE.
PlINVTE.CDUNl' BVTE.
HOURtcOUNT BVTE.
Tlf'tE'TASK • PROCEDURE.
DECLARE Tlf1E.EXCEPT'CDDE WORD.
AC.CYCLE'COUNT-O.
CALL RGUET.INTERRUPTCAC.INTERRUPT.LEVEL.01H.
INTERRUPTfPTR (ACfHANDLER ). DATA.BEQ.AImR BASE.
tTItE.EXCEPT.CODE) •
CALL "GtRESUI1E'TA~K( INlT.TASK.TOKEN. tTIME'EXCEPT.CODE).
DO HOURfCOUNT=O TO 23.
DO l'lINUTE'COUNT-= '0') AND (CONSOLEtCHAR
THEN DO.

Initialization Task

DO CASE

'9')

(CONSOLE.CHAR- '0'),

CALL PRINT_TOO,
CALL PRINT.STATUS,

Now that the application tasks have been written, we
can write the initialization task.

CALL RO.SUSPENDtTASK(CRTtOUTtTASKtTOKEN.
.COMMANDtEXCEPT.CODE) ,
CALL RO.RESUME$TASK (CRT$OUT.TASK.TOKEN,
.COMMANDSEXCEPTSCODE) ,
CALL RQSDISABLE(AC.INTERRUPTSLEVEL,
@COMMAND.EXCEPT$CODEl,
CALL RQ.ENABLE(AC.INTERRUPT.LEVEL,
@COMMAND.EXCEPT$CODEl,
CALL ROSSUSPEND.T ASK (MOTORST ASKSTOKEN,
aCOMMAND.EXCEPTtCODE) ,
CALL RO$RESUME.TASK (MOTOR$TASK$TOKEN,
@COMMAND.EXCEPTtCODE).
CALL RQ$SUSPEND$TASK(STATUS.TASK.TOKEN,
aCOMMANDSEXCEPTtCODE) •
CALL ROSRESUMESTASK (STATUS$TASK$TOKEN,
ctCOMMAND.EXCEPTtCODE) •
END,
1* OF CASE-LIST *1
1* OF COMMAND PROCESSING *1

All applications require a special type of task to initialize system variables and peripherals and create tasks
and other objects used by the application. It, too, is
written as a PUM procedure, and can thus be divided
conceptually into the same three phases.
Example 12 shows such a task for the demonstration
system. The first thing INIT$TASK does is determine
the base address of the job data segment by assigning
pointer DATA$SEG$PTR with its own address. Next it
calls the RQ$GET$TASK$TOKENS routine, which
tells the task what token value the OSP assigned it at
run time. It then initializes the system peripherals by
creating the hardware initialization task discussed
above; this code could have been integrated into
INIT$TASK itself just as easily. During its own
"execution" phase, INIT$TASK calls routines to
create the OSP data structures shared by the application tasks: the REGION controlling access to the
USART, and the MAILBOX repository for output messages. INIT$TASK creates the application tasks themselves by calling RQ$CREATE$TASK.

END

END;
END,
COMMAND"TASK,'

Example 11. Task to Accept and Process Keyboard
Commands
INITSTASK PROCEDURE PUBLIC.
DECLARE INIT'EXCEf!TSCODE WORD,
DATA.SEGSPTR=@INITSTASKSTOKEN.
I*LOAD DATA SEGMENT BASE*I
CRT.MAILBOX$TOKEN=ROSCREATE$MAILBOX (0, I1INIT$EXCEPTSCODE),
CRT.REG ION$TOKEN=RQSCREATESREGION( 0, ItINITSEXCEPTSCODE),
INIUTASK.TOl'.EN=RG.GETSTASK.TOKENS (a. (tINJ T'iiEXCEPT.CODE),
HARDWARE. I N I T.T ASK.TOKEN=RO$CREATE.TASK
(110. I1HARDWARESINIT.TASK. DATA.SEG.ADDR BASE. O. 300.
O.I:INlTtEXCEPT.CODEl,
CALL RG.SUSPEND$TASK (0, (UNIT.EXCEPT.CODE)!
STATUS.TASKSTOKEN=RG.CREATE.TASK( 110•• STATUS.TASK,
DATAtSEG.ADOR BASE. 0. 300, 0. GtINIT.EXCEPTSCOOE) j
CALL ROtSUSPENO.TASK(O, (!INIT.EXCEPTtCODEl,
MOTORSTASK$TOKEN-RQ$CREATE'TASK( 110, IMOTORtTASK,
DATAtSEGSADDR BASE, 0, 300. 0. (fINITtEXCEPT$COOE).
CALL RG.SUSPEND.TASK(O, Cl:INIT$EXCEPT.CODEl.
TIME$TASKSTOKEN""ROSCREATE$TASK (I~O.I!TIME'TASK,
DATA$SEG$ADDR BASE. 0, 300, 0, .INIT$EXCEPTSCODE),
CALL ROSSUSPENO$TASK(O.@INIT.EXCEPTSCOOE),
CRTSOUT.TASK.TOKEN"'ROSCREATESTASKC 120, IICRTSOUT$TASK,
DATASSEGSADOR BASE, 0, 300, O. (!INITSEXCEPT$CODE).
CALL RQ.SUSPEND$TASKCO,@INITSEXCEPT$CODE),
COMMANOtTASKSTOKEN=RQ.CREATE.TASK( 130. (!CQMMAND$TASK.
DATASSEGSADDR BASE, 0. 300. O. \lINITtEXCEPT$CODEl,
CALL RGSSUSPENDSTASK C0, @INIT.EXCEPT$COOE).
CALL RQSENO$INITSTASK,
CALL RQSDELETESTASK (0, @INIT.EXCEPT$COOE),
END
INIT$TASK.

Though not always required, it is common practice for
the overall initialization task to suspend itself after
creating each offspring, to let the newborn task get
started. Under this convention, each offspring task
must resume the initialization task by calling the

Example 12. Task to Initialize System Software

Table 2. Special Console Commands
--- -- ----

Key

Function

0

Send Time-of-day message to CRT.

-

-~

.. -

---

1

Send status update message to CRT.

2

Suspend CRT output task. The OSP will automatically save messages tll the task
in the CRT mailbox queue.

3
4
5
6
7

Resume CRT output task. Queued messages will be displayed.
Disable 6O-Hz interrupt-driven time base. Time-of-day clock will stop.
Enable 6O-Hz time base to resume clock execution.
Suspend motor control task. Motor will stop.
Resume motor control task. Note that if task was suspended 17 times, it must be
resumed 17 times.
Suspend status polling task. Lights indicating system status will freeze in current state.
Resume status polling task.

8
9

<'""

CAll PROTECTED.CRT.CUT(eR),
CALL PROTECTED.CRT.O~T (IF),

2-73

AP-130

RQ$RESUME$TASK routine when its own local initialization is complete. This convention is called
synchronous initialization; its purpose is to ensure that
each task is allowed to complete its own start-up phase
before the next task is created. Otherwise, there's a risk
that higher-priority tasks created later could start executing before earlier tasks were ready for them, with (at
best) unpredicatable results.

Functions which return a byte or word value (i.e., typed
procedures) do so in the CPU AL or AX registers.
Pointers are returned through the ES:AX register pair.
The PLiM Programming Manual explains these conventions more fully.
One way to see how an assembly language routine
would interface with PUM is to first write a dummy
PUM procedure using th.e same parameter sequence as
the desired assembly language routine. Compile this
procedure with the compiler CODE switch set. The
listing will then include the appropriate assembly language instruction sequence, and may be followed as a
pattern for the final routine.

When all the tasks have been created, INIT$TASK has
served its purpose. It must then call RQ$SEND$
INIT$TASK. This short procedure (actually selfcontained in an OSP Support Package interface library,
not built into the 80130) tells the OSP that all the offspring tasks have been created for a given job. At this
point, INIT$TASK could continue with non-initialization activities. The code for KEYBOARD$TASK might
have been implemented here, for example. Since this
example has nothing more to do, INIT$TASK deletes
itself with a final call to RQ$DELETE$TASK.

SOFTWARE CONFIGURATIONS &
INTEGRATION
When the application code has been written and compiled, the hardest part of program development is over.
Before the code may be executed, though, the OSP
must be told various things about the system hardware
environment, desired software options, application job
characteristics, and so forth.

Code Translation
That's all, folks. Mix together the above code fragments, declare literals and global variables, and compile until done (about four minutes). The source file
name selected for this example is AP130.PLM. The
compiler will produce two files: an annotated source
listing (named AP130.LST) reproduced in toto in Appendix B, and a relocatable object file (AP130.0BJ)
which will be used in the installation procedure discussed next.

High-Level Parameter Passing
Conventions

This information is conveyed during a multi-phase sequence of steps collectively called the Configuration
process. Though the process is somewhat lengthy and
time-consuming, it is also v.ery "mechanical"; the person doing the work d,oes not need to understand any of
the application code or even know what it does. Normally, configuration would be performed by a technician or a single member of the programming team, aided
. by appropriate SUBMIT command files. This chapter
shows the full configuration and installation process for
the demonstration system. For more details, refer to
the osp User's Manual.

Well-designed programs generally rely on subprograms
("procedures" in PLiM terminology) for oftenrepeated instruction sequences, or to perform
machine-Ievel.operations within High-Level Language
programs. PUM-86 and other Intel high-level languages
use a standard set of conventions to pass parameters
and results between procedures; assembly language
. programmers are advised to adhere to these conventions for software compatibility.

The three phases of the configuration are:
I. Generating, linking, and locating OSP support code
.required for the EPROM immediately above the
80130 address space;
2. Linking and locating the object file for the application job developed in Section IV;
3. Creating, linking, and locating a short module
(called the Root Job) which initializes the OSP and
application jobs when system is reset.

Before calling a subroutine or function, input
parameters must be pushed sequentially onto the stack,
in the order (Ieft-to-right) they appear in the procedure
parameter list. When eight-bit parameters are pushed,
the high-order byte associated with them is undefined.
Thirty-two-bit pointer values are pushed in two steps,
offset word before base word. The stack "grows"
down, so the left-most parameter will have highestnumbered address.

Finally, of course, the absolute code resulting from each
phase must be programmed into EPROMs or loaded
into a test system before it can be executed.
Before starting, though, it is beneficial to draw up a
memory map for host system hardware, to determine
what sections of memory are available. This map will be
filled in as each module is linked and located.
2-74
AFN-02058A

AP·130

The prototype system memory space has two areas of
interest: addresses OOOOOH through 01FFFH contain
RAM, while OFCOOOH through OFFFFFH contain
EPROM. Since the CPU uses the first lK bytes of RAM
for the CPU interrupt pointers, and the last 16 bytes for
the restart sequence, these areas should be recorded on
the map. For reference purposes, Figure 11 also indicates that addresses OF8000H through OFBFFFH
enable the 80130 firmware. All this is shown in
Figure 11.

Generating the OSP Support Code
The OSP support code "customizes" the OSP firmware
for a particular hardware environment, initializes the
system, and supports extended software capabilities.

To define the hardware environment, the user creates a
source file which invokes a series of Intel-supplied
macros. Parameters for these macros specify the 80130
I/O base address, SYSTICK interval (in system clock
cycles), and how the interrupt request pins will be used.
For instance, the code example in Figure 12 defines the
prototype system hardware. This source file must be
assembled, linked with several libraries from the OSP
support disk, and located to produce the actual OSP
support code. Figure 13 shows the actual sequence of
commands needed. The DATA starting address specified within the LOC86 parameter list (00400H) is the
first free byte of system RAM (see Figure 11); the
CODE address (OF8000H) is simply the 80130 firmware
starting address.

{---

STARTING ENDING
ADDRESS ADDRESS
OFFFF:O OFFFF:F

MEMORY MODULE

EPROM
(212764)

OFCOO:O
80130 MEMORY SPACE

OF8OO:O

OFBFF:F
O1FF:F

"

RAM

8088 INTERRUPT VECTOR

0000:0

003F:F

APPLICATION JOB STARTING ADDRESS: _ _ _ __
~JOBSTARTlNGA~ESS: _____________

Figure 11. Example System Memory Map

'TITLE(S0130 DEVICE CONFIQURATION TABLE)
NAMEODEVCF

SINCLUDE( Fl NDEVCF MAC)
l(,MASTER_PIC(80130. 2000H. O. 0)
,SLAVE_PIC( SLAVE_TYPE.

BASE_PORT.

EDGE_VSj.EVEL.

MASTER .LEVEL )

l(,TIMER (80130. 2008H. 28H. 12500)
• NDP _SUPPORT ( ENCODED,.LEVEL )
END

Figure 12. 80130 Device Configuration Table
2-75

AP-130

FO ASMB6 . Fl' SUP 130 AS6 F'RINT( Fl SUP130 Lsn ERRORPRINT t,.

MACRO(BO) PAQEWIDTH( 132)
FO LIN~B6 eFI OSX LIB (OSX96. OSXCNF).
FI NUCI LIB(NBEQINl.
FI ODEVCF OB~.
FI OSX LIB.
Fl NUCl LIB.
FI.OSX LIB.
FI. NUC2 LIB.
. FI OSX LIB.
FI NUC4 LIB.
Fl OSX LIB,
Fl. NURSLV LIB.

a.
"

a.
a-

"

I<

I<
8<
I<
8c
8c
8c

Fl OSX LIB
TO FI SUPI30 LNK MAP PRINT( FI SUPI30 MPI) NAME (MINIMAL_BOI30)
FO LOCS6

FI SUPI30 LNK TO
SEQSIZE(STACK(O»

•

&:

FI SUPI30 MAP PRINT( FI SUPI30 MP2) SC(3) 8<
I<

ADDRESSESCCLASSES(CODE COFSOOOH), DATAC00400H»)
ORDER (CLASSES (DATA. STACK) )
OB~ECTCONTROLS(NOLINES.

8c
&:

NOCOMMENTS. NOSYMBOLS)

Figure 13. Support Code Conflguratlon'Commands

A reliable and relatively straightforward way to perform this step is to create a file containing the exact
command sequence shown in Figure 13 and execute
this file using the SUBMIT utility program. Of course,
the example assumes SUBMIT, ASM86, LlNK86,
and LOC86 are all on drive :FO:, and that the various
libraries have been copied from the support disk to
drive :Fl:. /
(An alternate, support-code configuration scheme lets
the user modify the OSP software characteristics in
special situations. A programmer working with iRMX
86; for instance, may wish to augment the OSP
firmware to support all the iRMX Nucleus primitives.
This would be done by editing and assembling file
OTABLE.A86 to select from a menu of software options, and modifying the linkage step slightly to include
one of the iRMX 86 libraries. The OSP built-in features
are more than sufficient for the purposes of this note,
though, so only the first approach is illustrated.)
Appendix D reproduces the Locate map file produced
during this phase. Near the end of file SUP130.MP2 is a
table of memory usage, showing that the last bytes of
RAM and ROM consumed are OOA6: FH and OFC61:
FH, respectively. Update Figure 11 with this information. (The final version 'of the demonstration-system
memory map appears in Appendix C.) This phase
needn't be repeated unless the system hardware characteristics change.

Application Code Configuration
After compiling the application job, it must be linked
with a library of interface routines from the support
diskette; and located within· available memory. Use
RPIFC.LlB or RPIFL.LlB, depending on whether the
job was compiled with the Compact or Large software
model. Figure 14 is a command sequence file suggested
for this purpose. Again, the starting addresses specified
for LOC86 are taken from the system memory map.

Whenever the support code is reconfigured, check
SUP130.MP2 to see if its memory needs have changed.
If so, the application-job-configuration command file
. will need to be edited. This is still aJot simpler (not to
mention more reliable) than retyping ~e whole sequence each time application jobs are revised. Readers
familiar with the capabilities of the SUBMIT program
may prefer to represent these variables by parameters,
such that they may be easily specified each time the
command file is invoked.
As in the first phase, examine the locate map
("AP130.MP2", reproduced in Appendix E) after the
application code has been configured and update the
memory map. Also, note the segment and offset values
assi8ned to the initialization task. These will be needed
later.
2-76

AP-130

Creating the Root Job
By now, all of the code needed to execute the application program has been prepared and is ready to run
-except it has no way to get it started! The OSP hardware and system data structures must be initialized
before INIT$TASK can be created. A short module
called the Root Job performs this function.

Figure 15 is the Root Job source file for the demonstration system, dubbed RJB130.A86. It consists ofjust five
macro calls. The %JOB macro defines certain characteristics of the applicationjob; for a full description see
the asp User's Manual. One of these parameters is the
initialization-task starting address (noted in the last
step), which will likely change with each iteration of the
application software.

The process closely resembles the one which produced
the OSP support code. First, determine various system
characteristics. Then create a file defining these characteristics as macro input parameters. Finally, assemble,
link, and locate the file to produce the final code.

The two %SAB macros define "System Address
Blocks" -sections ofthe overall memory space which
the OSP should not consider "free space." Note that
the first invocation blocks off the RAM addresses consumed so far in the memory map, plus an extra 140H
bytes reserved for the Root Job initialization stack.

SUBMIT FILE TO LINK APPLICATION ..JOB TO INTERFACE LIBRARY
AND LOCATE RESULTING OUTPUT.
REVISED 10/23/91 - .JHW

LINK86 Fl AP130.0BJ.
Fl'RPIFC LIB TO
MAP PRINT(' Fl' AP130 MPl)

Fl.AP130 LNK

&:

LOC86 Fl AP130 LNK TO : Fl AP130
&
ORDER CCLASSES(DATA, STACK. MEMORY»
@,
SEQSIZE (STACK (0»
&!
ADDRESSES (CLASSES (DATA (OOA70H).
~
CODE (OFC620H»)
&
MAP PRINT ( Fl AP130 MP2)
&:
OB,JECTCONTROLS (NOLINES. NOCOMMENTS. NOPUBLICS. NOSYMBOLS)
OHB6

Fl AP130 TO

COPY

Fl AP130 MPl TO . LP:

Fl AP130. H86

COPY

Fl AP130 MP2 TO

LP

Figure 14. Job Configuration Commands

,SOURCE PROGRAM DEFINING CHARACTERISTICS OF ROOT .JOB FOR
,AP-130 DEMONSTRATION PROGRAM
(JHW - 10/2'/81)
SINCLUDE( Fl CTABLE MAC)
'Y.SAB(O. ooeo. U)
'Y.SAB C0200. FFFF. U)
'Y.JOBCO. DeOH. loaH. OFFFFH. OFFFFH. 1.00.1. 0,100. OFC62' 06B5. O. 0 0, 200H. 0)
'Y.DSX
WFBOOOH, N)
'Y.SYSTEM(FBOQ, Q, 4. N. N. 1)

END

Figure 15. Root Job Configuration File
2-77
AFN-0206IIA

AP-130

(After completing this phase, examine RJB130.MP2 to
confirm that 140H is the correct number.) The second
%SAB invocation excludes addresses 02000H through
OFFFFFH, all of which is non-RAM, either EPROM,
80130 firmware, or non-existent. The %SYSTEM
macro defines system-wide software parameters.

UPM memory buffer. The three commands in Figure 18
perform this function.
When the final system is reset, execution must branch
into the root job initialization sequence. When the absolute code modules have finished loading, manually
patch a jump instruction into the buffer area corresponding to the CPU reset vector. The opcode for the
8086 or 8088 intersegmentjump is OEAH; the instruction's address field must contain the address assigned to
label RQ$START$ADDRESS (read from the root job
locate map), the 16-bit segment offset (low byte first)
followed by the segment base address (ditto). The UPM
CHANGE command shQuld be used to make this
patch, as illustrated in Figure 19.

Figure 16 is a command file to translate, link, and locate
the root job. Once again, the LOC86 parameters come
from Figure 11. The listings produced during this phase
are reproduced in Appendix R The final memory map
appears in Appendix C.

EPROM Programming
We are now ready to program EPROMs with the program modules linked and located above. Intel's Universal PROM Programmer (UPP) and a control program
called the Universal Prom Mapper (UPM) will be used
in this step. Particular commands to the UPM will vary
with program size, memory location, and EPROM type,
but the general sequence should resemble that shown
here.
'

The UPM memory buffer now contains a complete
image of the code needed for the system EPROMs. Up ,
until now, all software-related steps-'-source code
preparation, translation, linking and locating-have
been the same for 8086- or 8088-based systems. At this
point, however, the software installation procedures
diverge slightly.

The first step is to invoke UPM and initialize the programming system, following a command sequence
similar to that in Figure 17. The example system incorporates two 2764 devices, so 16K bytes of memory
buffer are cleared.

Recall that the 8086 fetches instructions 16 bits at a
time, from coordinated pairs ofEPROMs. One contains
only even-numbered program bytes, the other, odd. To
separate the linear UPM buffer into high- and low-order
bytes for iAPX 86/30 designs, use the UPM STRIP
command as shown in Figure 20.

Next, all the final code modules produced above (e.g.,
SUP130, AP130, and RJB 130) must be loaded into the

Now "burn" the EPROMs with the PROGRAM command in Figure 21.

LINK AND LOCATE THE lRMX 86 ROOT JOB

MODIFIED FOR TWO-DRIVE OPERATION
REVISED 10/25 - JHW
ASM86

f1 RJB130 AB6 MACRO(75)

LINK86

.p1 CT'oot 11b(root),
~
.p1 RJB13Q obJ.
&
fi croot llb
&:
TO
.pi RJD130 1nk
&
MAP PRINT( fl1 RJB130 mp 1)
LoeS6

f:1 RJB130 Ink
TO
Fl RJIiI130
MAP PRINT( f l RJB130 mp2)

De

Figure A-1. Example System Schematics

I

AP-130

G1
1
A11

EN1G
2 S1A

A12

3 S1B

ElilCS

11

~

• ,VO
5 IV1

mcs

6 IY2

EIi4CS

7 IV3

GN~

Vee

~+5
•

15
EN2G
S2A ,.

O!
r!!1
f8

S2B 13
2YO 12

OR1CS

2V1 11

OR2CS

2Y2 10

OR3CS
OR.CS

2V3 9

GND

3
D3

03

AO

13

12

1

2

8
03
12
13

04

11

10
9
F1

A15
A13

A1'
(80130)=
USART

1

•
3

f---1

EN1G

S1A
S1B
IVO
IV1

e-s

6 IY2

.PRll'e-s

7 IV3

~

f8

~GNO

Vee JL+5
15
EN2G
S2A 1L-A1.
S2B ~A15
12
'VO
2Y1 11

2Y2 10
2V3 9

?

LEPCS (2764)
MEMCS (80130)
MEPCS (2764)

Figure A-1. Example System Schematics (continued)

2-82
AfN.()2058A

AP-130

APPENDIX B
,
SOURCE CODE LISTINGS

2-83
AFN-GaoIl8A

AP-130

ISIS-II PIJM-86 V2.0 COMPILATION OF MODULE DEM0130
OBJECT MODULE PLACED IN :F1:AP130.0BJ
COMPILER INVOKED BY' PLM86 :F1:AP130.PLM DATE(12/21)

tDEBUG COMPACT ROM TITLE('AP-130 APPENDIX B
DEMOt130:
1*

12/21/81')

DO;

SYSTEM-WIDE LITERAL DECLARATIONS:

*1

DECLARE FOREVER LITERALLY 'WHILE OlH';
1*

110 PORT DEFINITIONS:

*1

3

DECLARE CHARtS1 LITERALLY '4000H',
CMDtS1 LITERALLY '4002H',
STAT$Sl LITERALLY '4002H';

4

DECLARE PPI$A LIlERAlLY '6001H',
PPItB LITERALLY '6003H',
PPItC LITERALLY '600SH',
PPItCMD LITERALLY '6007H',
PPISSTAT I.ITERA'LLY '6007H';

5

DECL.ARE TI MERtCMD LI TERALL Y '200EH',
BAUDtTIMER LITERAL.LY '200CH';

6

DECLARE ACtINTERRUPTtLEVEL LITERALLY '00111000B';

7

DECLARE CR LITERALLY 'ODH',
LF,LITERALLY 'OAH',
BEL LITERALLY '07H';

8

DECLARE ASCIltCODE (16) BYTE DATA ('01234S6789ABCDEF');

$EJECT
$INCLUDE (.Fl:NUCLUS.EXT)
tSAVE NOLIST
tINCLUDE (: r1: NEXCEP. LIT>
tsave nolist
1*

GLOBAL VARIABLE 'DECLARATIONS:

*1

299

DECLARE DATAtSEGtPTR POINTER,
DATAtSEGtADDR STRUCTURE (OFFSET WORD, BASE WORD)
AT (@DATAtSEG$PTR);

300

DECLARE HARDWARE$INIT$TASK$TOKEN WORD,
STATUStTASKtTOKEN WORD,
MOTOR$TASK$TOKEN WORD,
TIME$TASKtTOKEN WORD,'
AC$HANDL.ER$TOKEN WORD,
CRT$OUT$TASK$TOKEN WORD,
COMMAND$TASK$TOKEN WORD,
INIT$TASK$TOKEN WORD;

301

DECLARE CRl$MAlL.BOX$TOKEN WORD,
CRT$REGION$TOKEN WORD;

2-84
AFN-ll2058A

AP-130

SEJECT
1*
302
303
304

2
2

30t?
306
30'7

2
2

308
30Y

~
~

310
31J
312

1

3

3
2
2

CODE EXAMPLE 2, SIMPLE CRT INPUT AND OUTPUT ROUTINES, *1

CSOUT, PROCEDURE (CHARII
DECLARE CHAR BYTE I
DO WHILE (INPUT(STATSS11 AND 01HI=01
1* NOTHING *1
ENDI
OUTPUT(CHARS511=CHARI
END CSOUTI
CSIN' PROCEDURE BYTE.
DO WHILE (INPUT(STATS51I AND 02HI=01
1* NOTHING *1
ENDI
RETURN INPUT (CHARSS1 I;
END CUN;

SEJECT
1*
31:.3
314

1
"2

31~

:2

316
317

2
2

318

2

319
320
321
322
3"23
3;:4

2

:1~5

, 20

"27
;,';>8

329
330
331

CODE EXAMPLE 1,

HARDWARE INITIALIZATION TASK,

*1

HARDWARESINITSTASK: PROCEDUREI
DECLARE HARDSINITSEXCEPTSCODE WORDl
DECLARE PARAMSSI (*1 BYTE DATA (40H.,9DH. OOH. 40H. 4EH. 27HI;
DECL.ARE PARAMS51$INDEX BYTE;
DECLARE SIGNSONSMESSAGE (*1 BYTE DATA
(CR. LF. 'iAPX 96/30 HARDWARE INITIALIZED'. CR. LFII
DECLARE'. SIGNSONSINDEX BYTE;
OUTPUT (PP ISCMD I =90Hl
OUTPUT(TIMERSCMDI=OB6HI
OUTPUT(BAUDSTIMERI=331 I*GENERATES 9600 BAUD FROM 5 MHZ*I
OUTPU1(BAUDSTIMERI=01
DO PARAMS51SINDEX=0 TO (SIZE(PARAMS511-111
OUTPUT (CMDSS1 I=PARAMSS1 (PARAMSS1SINOEXII
END.
I*OF USART INITIALIZATION DO-LOOP*I
DO SIGNSONSINDEX=O TO (SIZE(SIGNSONSMESSAGEI-111
CAI.L CSOUT< SIGNSONSMESSAGE (SIGNSONSINDEX 1)1
ENOl
I*OF SIGN-ON DO-LOOP*I
CALL RGSRESUMESTASK(INITSTASKSTOKEN.eHAROSINITSEXCEPTSCODE)I
CALL RGSDELETESTASK(o.eHAROSINITsEXCEPTSCOOEII
eND HARDWARESINITSTASKI

2
2
;<

2

3
:.;
2

:i
3
"2
2
2

SEJe-CT
1*
3a2
333
334
335
336
337
338
339
340
341
34"2

1
2

2
2

2
2

3
3
3
3
2

CODE EXAMPLE 3.

STATUS POLLING AND REPORTING TASK.

*1

STATUSSTASK' PROCEDUREI
DECLARE STATUSSCOUNTER BYTEI
DECLARE STATUSSEXCEPTSCODE WORDI
STATUSSCOUNTER=OI
CALL RGSRESUMESTASK(INITSTASKSTOKEN.eSTATUSSEXCEPTSCOOEII
DO FOREVER.
OUTPUT(PPISBI=INPUT(PPI.AI XOR STATUSSCOUNTERI
STATUSSCOUNTER=STATUS.COUNTER+l1
CALL RG.SLEEP(100.eSTATUS.EXCEPT.COOEII
END;
END STATUS.TASKl

2-85
AFN-02QII8A

AP.130

$E.JECT
1*

CODE EXAMPLE 4.

STEPPER MOTOR CONTROL TASK.

*1

DECLARE CW$STEP$DELAY BYTE.
CCW$STEP$DELAY, BYTE.
CW$PAUSE$DELAY BYTE.
CCWSPAUSESDELAY BYTE,

343

344
345
346

1
2
2

347

2

348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367

2
2
2
2
:2

MOTOR$TASK: PROCEDUREI
DECLARE MOTORSEXCEPT$CODE WORD,
DECLARE MOTOR$POSITION BYTE.
MOTOR$PHASE BYTE,
DECLARE PHASE$CODE (41 BYTE
DATA (00000101B;0000~110B.00001010B.00001001Bl'

=

CW$STEP$DELAY=501
I*INITIAL STEP DELAYS
1/4 SECOND*I
CCWSSTEP$DELAY=50,
CWSPAUSE$DELAY=:200,
I*PAUSES AFTER ROTATION = 1 SECOND*I
CCWSPAUSESDELAY-200,
CALL ROSRESUMESTASK(INITSTASKSTOKEN.@MOTORSEXCEPTSCODEl,
DO FOREVER,
DO MOTORSPOSITION=O TO 100,
MOTOR$PHASE-MOTORSPOSITION AND 0003H,
OUTPUT(PPISC I =PHASESCODE (MOTOR$PHASE I ,
CALL ROSSLEEP(CWSSTEP$D~LAY.@MOTORSEXCEPT$CODEl'
END,
CALL RO$SLEEP(CW$PAUSESDELAY.@MOTORSEXCEPTSCODEl,
DO MOTORSPOSITION~O TO 100,
MOTORSPHASE=(100-MOTORSPOSITIONI AND 0003H,
OUTPUT(PPISCl=PHASESCODE(MOTOR$PHASEl,
CALL ROSSLEEP(CCW$STEP$DELAY.@MOTOR$EXCEPTSCODEl,
END,
\
CALL ROSSLEEP(CCWSPAUSESDELAYj@MOTORSEXCEPT$CODE),
END,
END MOTORSTASK,

2

3
4
4

4
4

3
3
4
4
4
4
3
3
:2

$E.JECT
1*

368

INTERRUPT HANDLER TO TRACK 60 HZ INPUT.

*1

DECLARE AC$CYCLESCOUNT BYTE;

369
370

2

371
372
373

2
2

2

376

3
3

377
378

3

379

2

375

CODE EXAMPLE 5.

2

ACSHANDLER: PROCEDURE INTERRUPT 59,
DECLARE ACSEXCEPTSCODE WORDI

I*VECTOR FOR 80130 INT3*1

CALL ROSENTER$INTERRUPT(AC$INTERRUPT$LEVEL.@AC$EXCEPT$CODEl'
AC$CYCLE$COUNT=AC$CYCLE$COUNT+l,
IF AC$CYCLE$COUNT >= 60
THEN DO,
AC$CYCLE$COUNT=OI
CALL RO$SIGNAL$INTERRUPT(AC$INTERRUPT$LEVEL.
@ACSEXCEPT$CODEl;
END,
ELSE CALL RO$EXIT$INTERRUPT(AC$INTERRUPT$LEVEL.
@AC$EXCEPT$CODEl,
END AC$HANDLERI

2-86

AP-130

$EJECT
I~

380
381
382
383
384
385
386
387
388

2
2
2

2
3
2

2
2

CODE EXAMPLE 7.

PROTECTED CRT OUTPUT SUBROUTINE.

*1

PROTECTED$CRT$OUT:
PROCEDURE (CHAR) REENTRANT.
DECLARE CHAR BYTE.
DECLARE CRT$EXCEPTSCODE WORD;
CALL RGSRECEIVESCONTROL(CRTSREGIONSTOKEN.@CRT$EXCEPTSCODE),
DO WHILE (INPUT(STAT$51) AND 01H)=O.
1* NOTHING *1
END.
OUTPUT(CHAR$51)=CHAR;
CALL RGSSENDSCONTROL(@CRTSEXCEPTSCODE);
END PROTECTED$CRTSOUT;

$EJECT
1*

389

INTERRUPT TASK TO MONITOR CLOCK TIME.

*1

DECLARE SECONDSCOUNT BYTE.
MINUTESCOUNT BYTE.
HOlJR$COUNT BYTE;

390
391

1
2

392
393

2
2

394
395
396
397
398

2

2
3
4
5

399

5

401
402
403
404

5
4
3

405
406

CODE EXAMPLE O.

2
2

2

TIMESTASK:
PROCEDURE;
DECLARE TIMESEXCEPTSCODE WORD;
ACSCYCLESCOUNT=O.
CALL RGSSET$INTERRUPT(ACSINTERRUPTSLEVEL.01H.
INTERRUPT$PTR(ACSHANDLER).DATASSEGSADDR.BASE.
@TIMESEXCEPTSCODEl;
CALL RGSRESUME$TASK(INITSTASKSTOKEN.@TIMESEXCEPTSCODE);
DO HOUR$COUNT=O TO 23.
DO MINUTESCOUNT=O TO 59.
DO SECONDSCOUNT=O TO 59.
CALL RGSWAITS INTERRUPT (ACSINTERRUPT$LEVEL,
@TIMESEXCEPTSCODE) •
IF SECONDSCOUNT MOD 5 = 0
THEN CALL PROTECTEDSCRTSOUT(BEL).
END;
1* SECOND LOOP *1
END;
1* MINUTE LOOP *1
END.
1* HOUR LOOP *1
CALL RGSRESETSINTERRUPT(ACSINTERRUPTSLEVEL.
@TIMESEXCEPTSCODE).
CALL RGSDELETESTASK(O.@TIMESEXCEPTSCODE).
END TIMESTASK.

2-87

$E.JECT
1*

407
408
409
410

2
2
2

411
412

2

413
414

2

2
~:

415
416
417
418
419

2
2
2

420

3
2

422

2
2
2

423

424
425

2

427

2
2

428

2
2

426

42<'1J

SUBROUTINE TO CREATE TIME-OF-DAY MESSAGE. *1

TOD$MESSAGE$TOKEN=RQ$CREATE$SEGMENT(2S.@TOD$EXCEPT$CODE);
TOD$SEGMENT$BASE=TOD$MESSAGE$TOKEN;
TDD$SEGMENT$OFFSET=O;
DO TOD$STRING$INDEX=O TO 27;
TOD$STRING(TOD$STRING$INDEX)=
TOD$TEMPLATE(TOD$STRING$INDEX);
END;
TOD$STRING(17)=ASCII$CODE(HOUR$COUNT/I0);
TOD$STRING(18)=ASCII$CODE(HOUR$COUNT MOD 10);
TOD$STRING(20)=ASCII$CODE(MINUTE$COUNT/I0);
TOD$STRING(21i=ASCII$CODE(MINUTE$COUNT MOD 10);
. TOD$STR I NG (23) =ASC I I $CODE (SECOND$COUNT 110) ;
TOD$STRING(24)=ASCII$CODE(SECOND$COUNT MOD 10);
CALL RQ$SEND$MESSAGE(CRT$MAILBOX$TOKEN.
TOD$MESSAGE$TOKEN.O.@TOD$EXCEPT$CODE);
RETURN;
END PRINT$TOD;

2
3

421

CODE EXAMPLE S.

PRINT$TOD: PROCEDURE;
DECLARE TOD$MESSAGE$TOKEN WORD;
DECLARE TOD$EXCEPT$CODE WORD;
DECLARE TOD$SEGMENT$OFFSET WORD.
TOD$SEGMENT$BASE WORD;
DECLARE TOD$SEGMENT$PNTR POINTER AT (@TOD$SEGMENT$OFFSET);
DECLARE TOD$TEMPLATE (2S) BYTE
DATA (27. 'THE TIME IS NOW hh:mm:ss. '.CR.LF);
DECLARE TOD$STRING BASED TOD$SEGMENT$PNTR (2S) BYTE;
DECLARE TOD$STRING$INDEX BYTE;

$E.JE·CT
1*

430
431
432

:2
2

433

~

434

2

435

2

4:l6
437
438

:2

439

2

440
441

-,

-,

2
2

2

442

2

443

3

444
445
44"
447

3

448
449
4:;0

3

451

2

2

2
3

3

2

CODE EXAMPLE 9. SUBROUTINE TO CREAT,E SWITCH STATUS MESSAGE. *1

PRINT$STATUS: PROCEDURE;
DECLARE STATUS$MESSAGE$TOKEN WORD;
DECLARE STATUS$EXCEPT$CODE WORD;
DECLARE STATUS$SEGMENT$OFFSET WORD.
STATUS$SEGMENT$BASE WORD;
DECLARE STATUS$SEGMENT$PNTR POINTER
AT (@STATUS$SEGMENT$OFFSET);
DECLARE STATUS$TEMPLATE (40) BYTE DATA
<:39. 'THE SW ITCHES ARE NOW SET TO ........ B •• CR. LF);
DECLARE STATUS$STRING BASED STATUS$SEGMENT$PNTR (40) BYTE;
DECLARE STATUS$STRING$INDEX BYTE;
DECLARE BIT$PATTERN BYTE;
STATUS$MESSAGE$TOKEN=RQ$CREATE$SEGMENT(40.
@STATUS$EXCEPT$CODE);
STATUS$SEGMENT$BASE=STATUS$MESSAGE$TOKEN;
STATUS$SEGMENT$OFFSET=O;
DO STATUS$STRING$INDEX=O TO 39,
STATUS$STRING(STATUS$STRING$INDEX)=
STATUS$TEMPLATE(STATUS$STRING$INDEX);
END;
BIT$PATTERN=INPUT(PPI$A);
DO STATUS$STRING$INDEX=29 TO 36;
STATUS$STRING(STATUssSTRINGsINDEX)=
ASCII$CODE(BITsPATTERN AND OlH).
BIT$PATTERN=ROR(BITsPATTERN.1);
END;
CALL RQ$SENDsMESSAGE(CRTsMAILBOX$TOKEN.
STATUS$MESSAGEsTOKEN.O.@STATUS$EXCEPTsCODE);
END PRINTsSTATUS;
2-88
AFN-Q20S8A

Ap·130

SEJECT
/.*

2
2
;:>

'"
2

;8

;;>

4:,9

:2

46()

"'

4

c

461

3

46:3
464
46:,
466
467
468

3

46 C?

::J
3
2

470
4"11

CAL.L RGSRESUMESTASK(INITSTASKSTOKEN.@MESSAGESEXCEPTSCODE),
DO FOREVER.
MESSAGESTOKEN=RGSRECE I VESMESSAGE (CRTSMAILBOXSTOKEN. OFF FFH.
@RESPONSESTOKEN.@MESSAGESEXCEPTSCODE),
MESSAGESSEGMENTSOFFSET=O,
MESSAGESSEGMENTSBASE=MESSAGESTOKEN.
MESSAGESLENGTH=MESSAGESSTRINGSCHAR.
DO MESSAGESSEGMENTSOFFSET=l TO MESSAGESLENGTH.
CALL PROTECTEDSCRTSOUT(MESSAGESSTRINGSCHAR),
END.
CALL RGSDELETESSEGMENT(MESSAGESTOKEN.@MESSAGESEXCEPTSCODE),
END)
1* OF FOREVER-LOOP *1
END CRTSOUTSTASK,

2

46Z!

TASK TO RECEIVE MESSAGES AND TRANSMIT THEM TO CRT.

CRTSOUTSTASK' PROCEDURE.
DECLARE MESSAGESLENGTH BYTE,
DECLARE MESSAGESTOKEN WORD,
DECLARE RESPONSESTOKEN WORD.
DECLARE MESSAGESEXCEPTSCODE WORD,
DECLARE MESSAGESSEGMENTSOFFSET WORD.
MESSAGESSEGMENTSBASE WORD,
DECLARE MESSAGESSEGMENTSPNTR POINTER AT (@MESSAGESSEGMENTSOFFSET),
DECL.ARE MESSAGESSTRINGSCHAR BASED MESSAGESSEGMENTSPNTR BYTE,

452

45:l
454
45 c,
456
457

CODE EXAMPLE 10.

~:::

3
:J

4
4

SEJECT
/*

472
473
474
4"15
476
477

:;'

d

478

479

:l

481

J

483
484
48:5
48"
487
488

4
4
4

489

5

490

5

491

5

492

5

~

5
5

493

5

494

5

49::;

5

496
497
498
499

4
3
2

TASK TO POLL KEYBOARD AND PROCESS COMMANDS.

COMMANDSTASK: PROCEDURE,
DECLARE CONSOLESCHAR BYTE,
DECLARE COMMANDSEXCEPTSCODE WORD.

;:>

2
3
3

CODE EXAMPLE 11.

5

,

CALL RGSRESUMESTASK(INITSTASKSTOKEN.@COMMANDSEXCEPTSCODE»)
DO FOREVER,
CONSOLESCHAR=CSIN AND 7FH,
CAL.L PROTECTEDSCRTSOUT(CONSOLESCHAR),
IF CONSOLESCHAR=CR
THEN CALL PROTECTEDSCRTSOUT(LF),
IF (CONSOLESCHAR >= '0') AND (CONSOLESCHAR <= '9')
THEN DO,
CALL PROTECTEDSCRTSOUT(CR),
CALL PROTECTEDSCRTSOUT(LF),
DO CASE (CONSOLESCHAR-'O'),
CALL PRINTSTOD,
CALL PRINTSSTATUS,
CALL RGSSUSPENDSTASK(CRTSOUTSTASKSTOKEN.
@COMMANDSEXCEPTSCODE),
.
CALL RGSRESUMESTASK(CRTSOUTSTASKSTOKEN.
@COMMANDSEXCEPTSCODE),
CALL RGSDISABLE(ACSINTERRUPTSLEVEL.
@COMMANDSEXCEPTSCODE),
CALL RGSENABLE(ACSINTERRUPTSLEVEL.
@COMMANDSEXCEPTSCODE),
CALL RGSSUSPENDSTASK(MOTORSTASKSTOKEN.
@COMMANDSEXCEPTSCODE).
CALL RGSRESUMESTASK(MOTORSTASKSTOKEN.
@COMMANDSEXCEPTSCODE),
CALL RGSSUSPENDSTASK(STATUSSTASKSTOKEN.
. @COMMANDSEXCEPTSCODE),
CALL RGSRESUMESTASK(STATUSSTASKSTOKEN.
@COMMANDSEXCEPTSCODE»)
END,
1* OF CASE-LIST *1
END,
1* OF COMMAND PROCESSING *1
END,
END COMMANDSTASK,
2-89

*1

*1

AP-130

SEJECT
1*

500
501

1
2

502
503
504
505
506

2
2
2
2

50~'

508

2
2

509
510

2

511
512

2

513
514

2
2

515
516

2
2

517
518
519
520

2
2
2
2

TASK TO INITIALIZE OSP SOFTWARE.

*1

INITSTASK: PROCEDURE PUBLIC.
DECLARE INITSEXCEPTSCODE WORD,
DATASSEGSPTR=@INITSTASKSTOKEN.
I*LOAD DATA SEGMENT BASE*I
CRTSMAILBOXSTOKEN=ROSCREATE$MAILBOXCO.@INITSEXCEPTSCODEl.
CRTSREGIONSTOKEN=ROSCREATESREGIONCO.@INITSEXCEPTSCODEI,
INITSTASKSTOKEN=ROSGETSTASKSTOKENSCO.@INITSEXCEPTSCODEI;.
HARDWARESINITSTASKSTOKEN=RO_CREATESTASK
(110.@HARDWARESINITSTASK.DATASSEGSADDR.BASE.O.300.
O.@INITSEXCEPTSCODEI.
CALL RO$SUSPENDSTASKCO.@INITSEXCEPTSCODEI.
STATUSSTASKSTOKEN=ROSCREATESTASKCII0.@STATUSSTASK.
DATASSEGSADDR. BASE.O.300.0.@INITSEXCEPTSCODEI.
CALL ROSSUSPENDSTASKCO,@INITSEXCEPTSCODEI.
MOTORSTASKSTOKEN=ROSCREATESTASKCI10.@MOTORSTASK.
DATASSEGSADDR. BASE.O.300.0.@INITSEXCEPTSCODEI.
CALL ROSSUSPENDSTASK(O.@INITSEXCEPTSCODEI.
TIMESTASKSTOKEN=ROSCREATESTASKC120.@TIMESTASK.
DATASSEGSADDR. BASE.0.300.0.@INITSEXCEPTSCODEI.
CALL ROSSUSPENDSTASKCO.@INITSEXCEPTSCODEI.
CRTSOUTSTASKSTOKEN=RQSCREATESTASKC120.@CRTSOUTSTASK.
DATASSEGSADDR.BASE.O.300.0.@INITSEXCEPTSCODEI.
CALL ROSSUSPENDSTASK(O.@INITSEXCEPTSCODEI.
COMMANDSTASKSTOKEN=ROSCREATESTASKCI30.@COMMANDSTASK.
DATASSEGSADDR.BASE.0.300.0.@INITSEXCEPTSCODEI.
CALL ROSSUSPENDSTASKCO.@INITSEXCEPTSCODEI.
CALL ROSENDSINITSTASK.
CALL ROSDELETESTASKCO.@INITSEXCEPTSCODEI.
END INITSTASK,

2

2

2

521

CODE EXAMPLE 12.

END

DEMO' 130.

MODULE INFORMATION.
CODE AREA SIZE
- 084CH
CONSTANT AREA SIZE • OOOOH
VARIABLE AREA SIZE • 0052H
MAXIMUM STACK SIZE
0026H
848 LI NES READ
PROGRAM ERRORCS)

21240
00
820
380

°

END OF PL/M-86 COMPILATION

2-90
AFN-020S8A

AP-130

APPENDIXC
SYSTEM MEMORY MAP

2-91

AP~130

EXAMPLE SYSTEM MEMORY MAP
MEMORY MODULE
8088 RESiART VECTOR
ROOT JDB CODE AREA

STARTING
ADDRESS
OFFFF:O
OFD18:0

ENDING
ADDRESS
OFFFF:F
OFD36:6

OFC62:0

OFD17:B

{

RAM

OFCOO.o

OFC61:F

80130 MEMORY SPACE

0F800:0

OFBFF:F

FREE SYSTEM RAM)

OOGO:O

01 FF:F

ROOT JOB DATA AREA

OOAD:O

OOBF:F

APPLICATION JOB DATA AREA

OOA7:0

OOAC:1

DSP SUPPORT DATA AREA

0040:0

OOA6:F

8086 INTERRUPT VECTOR

0000:0

INITIALIZATION TASK STARTING ADDRESS:

003F:F
FC62:06B5

ROOT JOB STARTING ADDRESS: _ _..!FD=18"':001=1'--_ _

2-92
AFN-02QSBA

AP·130

APPENDIX D
SUPPORT CODE LOCATE MAP

2-93
AFN'()2068A

AP-130

ISIS-I I Me8-86 LOCATER. VI 2 INVOKED BY
FO LOCBb
&
FI SUPI30 LNK TO FI SUPI30 MAP PRINT( FI SUP130 1'1P2) SC(3) ..
SEOSIZE(STACK(O) )
ADDRESSES (CLASSES (CODE (OF8000H) , OAT /lit (00400H) ) }
ORDER (CLASSES(DATA, STACK»
OBJECTCONTROLS(NOLINES, NOCOMMENTS, NOSYMBOLS)
WARNING 2b
DECREASING SIZE OF SEGMENT
SEOMENT
STACK

. .

"

SYMBOL TABLE OF 110DULE MINIMAL_BOI30
READ FROM FILE Fl SUPI30 LNK
WRITTEN TO FILE FI SUPI30
BASE

OFFSET TYPE SYMBOL

BASE

OFFSET TYPE SYMBOL

BASE

OFFSET TYPE SVt'llDL

0040H
0040H

OOOOH
014BH

PUB
PUB

0040H
0040H

0120H

0040H
0040H

0144H

0040H

01~l!H

PUB

0040H

0"4H

0040H
0040H

01~BH

015EH

PUB
PUB

0040H
0040H

015AH
OlbOH

0040H

0164H

0040H

0166H

0040H

017BH

0040H

01EBH

DEFAULTJOBH
05lSH
052FH
053FH
055AH
OS68H
Q5S8H
059DH
05ADH
OSB2H
OSBFH
05DOH
O~EOH
O~FAH

0610H
661CH
063CH
Ob5CH
Ob7CH
069CH
06B3H
06SSH

MESSAGESEGMENl SA

-SE
BAS , MESSAGESTR I NGCHA
LR
SYM CONSOLECHAR

LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN

LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN

INITTASK

\4--, INITIALIZATION TASK STARTING ADDRESS

302
30.
307
309
311
313

320
322
324
326
328
330
332
336
338
340
342
348
350
352
354
356
358
360
362
364
366
369
372
37'
377
379
383
385
387
::190
393

395
397
399
401
403
40'
407
416
418
420
422
424
426
428
430
440
442
444
446
448
4.0
452
461
463
465
467
469
471
475
477
479
481
484
486
488
490
492
494
496
499
502

2-98
AFN-oaoSBA

AP·130

FC62H
FC62H
FC62H
FC62H
FCocH
FC62H
FC62H
FC6~H

FC62H
FC6.;!H

06C4H
06E6H
071FH
075SH
07BBH
07C1H
07F7H
OB2DH
OB3DH
0084H

LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN
LIN

~03
~O~
~07

509
511
~13
~1~

517
519
521

FC62H
• FC62H
FC62H
FC62H

06D5H
06.6H
072CH
0762H

FC62H
FC62H
FC62H

079BH
OB04H

LIN
LIN
LIN
LIN
LIN
LIN
LIN

FC62H
FC62H

OB3AH
OEl4AH

LIN

07CEH

LIN

504
506
~OB

510
512
514
.16
51B
520

MEHORY MAP OF MODULE DEM0130
READ FROM FILE Fl AP130 LNK
WRITTEN TO FILE Fl AP130

SEGMENT MAP
START

STOP

LENGTH AL I GN NAME

CLASS

W
DATA
00AC1H
0052H __________
100A70H
L;.;:~=-----,==~_.:..:..:=
DA_t_A..J~ LAST DATA BYTE OF APPLICATION JOB
OOAC2H

OOADOH

00AC2H
OOADOH

OOOOH

W

STACK

OOOOH

G

........SEG

STACK

_ _ _ _ _ _ _ OB5CH
____
---,_ _ _ _ _ _ _ _
C_OD_E..J~WUITCODE~EOFA~TION~OB
I~FC620H
W _
CODE
FD17BH

FD11CH

FD17CH

OOOOH

W

GROUP MAP

ADDRESS
FC620H

QROUP OR SEGMENT NAME
CGROUP

00A70H

CODE
DQROUP

DATA

MEMORY

MEMORY

AP-130

APPENDIX F
ROOT JOB LOCATE MAP

2-100
AFN-02058A

Ap·130

ISIS-II MCS-8b LOCATER. Vl 2 INVOKED BY
LDC86
fl R.JB130 lnk
L
TO . Fl RJB130
MAP PRINT( fl'R.JB130 mp2)
&
ac (no1 i. 1'I0p L 11oc:m. no.b) &
PC(noll. pI. nocm, nosb)
&
&
SEGSIZE (9tilC k (0»
ORDER(cl ••••• (d.t •• stack. memoT'Y»
ADDRESSES ( c 1a5 ••• (code (OFDIBOH),
d.tilCOOADOH» )
WARNING 26
DECREASING SIZE OF SEGMENT
SEGMENT
STACK

"

~

&

SYMBOL TABLE OF MODULE ROOT
READ FROM FILE

Fl R.JB130 LNK

WRITTEN TO FILE

Fl RJB130

BASE

OFFSET TYPE SYMBOL

BASE

OFFSET TYPE SYMBOL

FD18H

OlSOH

FD18H

0184H

IFD18H

PUB
PUB

0Ol1H

ooaOH

FDIBH
FOIBH
FD18H
FDIBH

0030H
OllaH
0124H

FD18H
OOADH

014bH
OOOOH

PUB
PUB
PUB
PUB
PUB
PUB

NUC_INIT _ENTRY

RGSTARTADDRES6'~
CRASH
ROOTTASK

RGCREATEJOB
ROSUSPENDTASK
RG_N_C_RETURN_40
-JQBNUMBER

ROOT JOB

FD18H
FD18H
FD1BH
FD18H
FD18H

OO:;zAH
OlOCH
011EH
012AH
0162H

OOADH

0OO2H

PUB

CODEDATA

STARTING ADDRESS
PUB
PUB
PUB
PUB
PUB
PUB

FD18H

OOlOH

PUB

RGROOT JOBVERSION
SYSTEMSUIC IDE
RQGETTASKTOKENS
RG_N_C_RETURN_Q
RGERROR
ROaTT ASKSTATUS

t1EMORY MAP OF MODULE ROOT
READ FROM FILE Fl R-J)H30 LNK
WRITTEN TO FILE
Fl RJB130

MODULE START ADDRESS
SEGMENT MAP
START
OOADOH

IOOAD4H
OOCOOH
OOcaOH
FD1S0H
FD33AH

STOP
OOAD3H
OOBFFH
aocaOH
OOCOOH
FD339H
F034SH

PARAGRAPH

=

F01BH

OFFSET

LENGTH AL I ON NAME
0OO4H
012CH
OOOOH

OOOOH
OlSAH

OOOCH

W
W
W
G
W
W

DATA
INIT_STACK

= OOllH
CLASS
DATA

STACK

STACK

STACK

"''''SEG
CODE
SAB...oESCRIPTOR

CODE

t--

LAST DATA BYTE OF ROOT JOB

CODE

-5
FD346H

FD368H

FD366H

FD368H

0021H

OOOOH

W

W

_~_J_DESCRIPTOR
MEMORY

CODE

i'4---LAST CODE BYTE OF RDDT JOB

MEMORY

GROUP MAP

ADDRESS
OOADOH

GROUP OR SEGMENT NAME
DGROUP

DATA

FD180H

COROUP

CODE
SAB OESeR IPTQRS
U_,·COESCRIPTORS

2-101

INTERROR

. ARTICLE
. REPRINT

AR-236

November, 1982

AopttnIOd _

permloolan from Com"",", Deoign - September 1882. _ ; CGpyrIgId 11182 by eornp.- Doooan Pubilohing Co.

2-102

LET OPERATING SYSTEMS
AID IN COMPONENT
DESIGNS
The iRMX 86 operating system processor package offers
hardware designers a set of thoroughly tested software
primitives upon which to build present and future custom
hardware designs
by George Heider

C

omponent users build application systems by
integrating standard and custom hardware, software, and packaging. Microprocessors and other
very large scale integration cOPlponents are replacing
much custom hardware with larger, more powerful
standard hardware modules. Microprocessors lead to
powerful systems, but they often require complex
system management software. While this complex software often comprises one third or less of the final
system software, it may require two thirds or more of
the storage development effort. Worse, bugs in system
management software sometimes do not show up until
late in development or after the product is at the
customer's site.
One solution to this problem is to employ standard
management software such as operating systems. More.
complex, multifunction applications in a realtime
environment benefit greatly from operating systems.
Examples of these applications include file subsystems,
public automatic branch exchange (PABX) systems, and
transaction processing systems. But implementing

George Heider is a senior applications engineer at
Intel's OEM Microcomputer Systems Div, 5200 NE
Elam Young Pkwy, Hillsboro. OR 97123. He works
primarily with 16-bit software applications, including
the iRMX 86 operating system. Previous experience
includes telecommunications systems engineering.
microprocessor systems, microprocessor operating
system development, and disk storage system
software. Mr Heider holds an MS in computer science
from the University of California, Santa Barbara and
a BSEEfrom Oregon State University.
.

Fig 1 iRMX operating system arcbltectnu. Kernel consists
of primitives also implemented In bardware In iAPX 16/30 and
iAPX 18/30 OSP.

operating system functions in a component design requires
new software tools, education, and expertise. Also, these
functions are often specific to the particular design, so tools
and expertise developed for one application are not suitable
for subsequent designs.
.
These problems are directly addressed by the Intel iAPX
86/30 and iAPX 88/30 operating system processors (OSP) and
the iRMX· 86 operating system. The iRMX 86 is a ful!featured, realtime multitasking operating system for iAPX
86 or iAPX 88 based systems. The Intel OSP implements the
iRMX 86 kernel functions in hardware consisting of an iAPX
86 or iAPX 88 central processor coupled with an operating
system firmware (OSF) component, the Intel 80130. The
OSF extends the base iAPX 86 and iAPX 88 architecture by
adding 37 operating system primitive instructions to the
base iAPX 86 or iAPX 88 instruction set; systems can be
built directly on the OSP. System implementation time is
thus decreased by having fully debugged operating system
functions in hardware. Further capabilities can be added by
IRMXTM is a trademark of Intel Corp

Compute, Deelgn • September, 1982

2-103

AR-236

extending the set of the OSP primitives
or by integrating portions of the iRMX
86 on top of the OSP.

Operating syllam architecture

TABLE 1
OSPprlmitivea
Primitive
JOB
CREATE JOB

Description

Creates a iob partition including memory pool, task list.
The iRMX 86 architecture shown in
and stack area.
Fig I consists of the nucleus and
layers for the basic input/output
TASK
CREATE TASK
Creates a task with specified environment and priority.
(I/O) system, extended I/O system,
Task is created in ready state. Checks for insufficient
application loader, and human
memory available within containing job.
interface. The system also provides
DELETE TASK
Deletes a task from system as well as from any queues
a debugger, a terminal handler, a
it is awaiting. Task's state and stack segment are
bootstrap loader, and a patch
deallocated.
facility.
SUSPEND TASK
Suspends a task (changes its status to suspended) or
While the nucleus is the lowest
increases task's suspension count by 1. A sleeping task
layer of the operating system, funmay also be suspended and will awaken suspended
damental system functions are
unless resumed.
handled by the nucleus kernel,
RESUME TASK
Decreases suspension count of a task by 1. If at that
point count is reduced to 0, task state is made ready. If
which is the core of any operating
it was suspend-asleep, it is put backJo sleep.
system. The kernel controls memory
SLEEP
Puts task in asleep state; up to 10 ms units can be
allocation, allocates processor
specified.
resources, communicates between
GET TASK TOKENS Gives token for a task or task's job partition.
processes, and manages interrupts.
In the Intel OSP these functions are
INTERRUPT
implemented in hardware. (OSP
SET PRIORITY
, Changes task's priority to value passed in primitive.
functions are described in Table I;
Assigns an interrupt handler to a level. Task that makes
·SET INTERRUPT
additional functions supported by
this call is made interrupt task for same level. unless call
the iRMX 86 nucleus are shown in
indicates there is no interrupt task.
Table 2.) Software development can
Disables an interrupt level; cancels interrupt handler;
RESET INTERRUPT
deletes interrupt task for level if assigned.
be based on either the OSP or the .
iRMX 86, allowing software developReturns number of, the interrupt level for highest priority
GET LEVEL
interrupt handler currently in operation (several interrupt
ment to proceed in parallel with
handlers can be operating).
hardware development.
Completes interrupt processing and sends end of
EXIT INTERRUPT
In addition to the operating system
interrupt signal to hardware.
primitives, the OSP contains timers
Invokes interrupt task aSSigned to a level from that
SIGNAL
INTERRUPT
and interrupt control logic expandable
level's interrupt handler.
from 8 to 57 interrupt levels. The
Suspends interrupt task state pending a signal interrupt
WAIT INTERRUPT
timers include a system clock, Refrom an interrupt handler. Used by an interrupt task to
served delay timer, and baud rate
signal its readiness to service an interrupt.
generator. The 40-pin OSP has bus bufSets dala seg";ent base for an interrupt handler.
ENTER INTERRUPT
fers and demultiplex logic, which
Enables external interrupt level.
ENABLE
allows it to interface directly to the
Disables an external interrupt level.
DISABLE
iAPX 86 or iAPX 88 multiplexed bus.
Reads location and exception handling mode of current
GET EXCEPTION
The OSP can be located at any 16 byte
OSP exception handler for a task.
HANDLER
address boundary in the 1M-byte
Establishes location and exception handling mode of
SET EXCEPTION
system address space. Application incurrent OSP exception handler for task.
HANDLER
terface to OSP stepping and revision
SIGNAL EXCEPTION Notifies current OSP exception handler of exception.
levels is independent. A block diagram
of the 80130 is shown in Fig 2.
Minimum hardware· requirements for the iRMX 86 requests are made by system calls, or primitives, which
operating system shown in Fig 3 are 1.8k bytes of random are comparable to subroutine calls for system actions.
access memory (RAM), about 16k bytes of kernel code Since the kernel manages much of the system hardware,
memory, and integrated circuits. By comparison, the OSP the application code need not concern itself with many
shown in Fig 4 stilI requires I.8k bytes of RAM, but does hardware details. This independence is not absolute,
not require the kernel code, the programmable interrupt however: system hardware or resources not managed by
controller, or the programmable interrupt timer. These are the kernel still require application code.
Basic kernel concepts can be explained using a general
all replaced by the OSP. Approximately I k bytes of required
system configuration code are not shown in Figs 3 and 4. purpose system (Fig S). Input data can be characters.
analog signals, or digital signals; processing can be
numerical analysis, editing, spectrum analysis, process
Karnal functions
Since it defines system architecture, application requests control algorithms, or virtually any other transformafor system operations like interrupt management and tion. Processed data must be sent to an interrupt driven
memory allocation must go through the kernel. These output device-a display, a communications line, '
Computer D..llln

•

September, 1982

2-104

AR-236

Prlmltlve
SEGMENT
CREATE SEGMENT

DELETE SEGMENT

Oe.crlptlon

Dynamically allocates area of memory of specified length
In 16·byte paragraph units up to 64k·byte maximUm leg,
for use as buffer). Returns location token for segment
allocated.
Deallocates memory segment Indicated by parameter

token.
ENABLE DELETION

Allows deletion of system data type value Indicated by

location token.
DISABLE DELETION
MAILBOX
CREATE MAILBOX

DELETE MAILBOX

Prevents deletion of system data type value Indicated by
location token.
Creates a mailbox With specified task queuing dlsclplone.
Returns location token.
Deletes a mailbox and returns Its memory. If tasks are
waiting for mailbox, they are awakened (Ie, their state
made ready) with appropriate exception condition. If
messages are waiting for tasks, they are discarded

IS

system initialization, The input task
requests each buffer, or memory
segment, from the kernel by making
the kernel system call "create segment" with 128 bytes, If a larger
buffer is needed, the create segment
call needs a larger value for the size
parameter, When the buffer is full,
the input task gives the segment to
the process task, When the buffer is
no longer needed, it can be returned
to the system memory pool by a
"delete segment" system call,
Because the kernel dynamically
manages memory allocation and
buffer access, no additional code
for these functions is necessary,

Communication and synchronization
through mailboxes

The sample system needs a dispatching algorithm to send the
segments from task to task, Such an
Sends message segment to mailbox.
SEND MESSAGE
algorithm can be written without an
RECEIVE MESSAGE
Task IS ready to receive message at mailbox. Task IS
operating system, For example, the
placed on mailbox task queue. Task can walt for
response Indefinitely, walt (generally 10 ms) Units, or
input task can fill a buffer and call
not wait. When complete, primitive returns to task the
the process task, When the process
location token of message segment received.
task finishes, it can call the output
task; the output task can finish with
REGION
CREATE REGION
data
type
value,
specifying
queUing
Creates region
the buffer and return, When control
discipline. Returns token for region.
returns to the input task, system
Deletes region If the region IS not In use.
DELETE REGION
processing for that buffer is comGains control of regIOn if region immediately' available,
ACCEPT CONTROL
plete, Another method is to have a
but does not wait If not available.
polling task occasionally check if
RECEIVE CONTROL
Same pnrvitlve as accept control but task that performs
buffers are ready to be sent to other
it may elect to walt.
tasks. Both methods are inefficient
and rigid, requiring that each task
SEND CONTROL
Relinquishes region,
finish processing data in each buffer
OTHER
before another task can run,
SET OS EXTENSION Links new primitive With kernel.
With an operating system, the
GET TYPE
Gives system type code of a system data type.
buffers can be sent from task to task
through "mailboxes" -places
where tasks can send or receive
data. (See Fig 6.) Task A sends a
message (segment) to mailbox I and
specifies mailbox 2 as a return
mailbox, Task A then waits for a
return message at mailbox 2, Task B
receives the message (segment) from
mailbox I, then sends a return
message with status to mailbox 2.
control hardware, or mass storage, In this general pur- Task A receives the return message, which contains task
pose system, input, process, and output are the only B status, and synchronizes the two tasks,
functions, or tasks, that make up the system,
In general, each task o,Ptains a segment, modifies its
contents, sends the segment to the next task, and waits
Buffer management
.
for another segment. The input task first gets a segment
Assume input data wiJI be placed into 128-byte buffers using "create segment." When the segment is full, the
by the input task. Without help from the operating input task uses the kernel call "send message" to send
system, the buffers must be prelocated in RAM. Soft- the segment to mailbox A, The process task uses .the
ware is needed to manage the buffers, which must be "receive message" system call to wait at mailbox A for
given to the tasks.in the correct sequence and returned the segment. The process task receives the segment, pro. for reuse when empty, If the buffers are too small, or if cesses the data, puts the new data in the segment, and
RAM is moved, the software must handle these changes,
sends the segment to mailbox B, The process task then
If an operating system or osp is used, the locations waits at mailbox A for the next segment from the input
and sizes of RAM are made known to the kernel during task, The output task takes the segment from mailbox B
Computer Design • September, 1982

2-105

inter

AR-236

TABLE 2
AcIcIltional primitive•• upported by Ihe iRMX B6 nucleus
CATALOGING SYSTEM
DATA TYPES
CATALOG OBJECT
UNCATALOG OBJECT
LOOKUP OBJECT

Catalogs "system data type token under name gIven
bV task In Job partition directory.
Removes name and token from Job partition
directory.

Uses name to fInd token cataloged in Job partItIon
Idirectory.

NEW SYSTEM
DATA TYPES
CREATE EXTENSION

Notifies kernel of new system data type code for

new system data type.
DELETE EXTENSiON

Removes ~ystem data type code and deletes aJI
composite sy'stem data types with that system data
type code.

CREA TE COMPOSITE

Creates new system data type from list of current
system data types and system data type code
received from create extension.

DELETE COMPOSITE

Deletes new syste,m data type.

INSPECT COMPOSITE

Gives list of system data types that form new

ALTER COMPO'SiTE

Changes Itst of svstem data types that form new
system data type.

system data type.

SEMAPHORES
CREA TE SEMAPHORE

Creates semaphore system data type.

DELETE SEMAPHORE

Deletes semaphore system data type

SEND UNITS

Task adds a number of Units to semaphore.

RECEIVE UNITS

Task asks for a number of units from semaphore
Task can walt for response indeflnately, walt

appear, an error routine can alert
the system operator that processing
has stopped.
The mailbox method has several
advantages over synchronization
algorithms and polling tasks. The
entire process is synch,ronized by the
availability of data in segments,
eliminating the need for algorithms
and extra code; the same process
applies whether the tasks operate at
the same or different speeds. Also,
burst input or output rates can be
handled by adding buffers. For instance, if too much data arrives for
the process or output tasks to handle
immediately, the input task fills
multiple buffers and passes them to
mailbox A. The process task takes
each segment in turn. After processing is completed, the segments
are all sent to mailbox C, and the
process waits for the next burst of
data. The only interfaces between
the tasks are mailboxes and segments, so tasks can be easily replaced or added to the processing
loop; the same scheme works for
larger or smaller segments.

Tasks and task scheduling
Tasks are independent bodies of
executing code, initialized and
(generally 10 ms). or not wait.
scheduled by the kernel. Therefore,
OTHER
tasks must have iRMx 86 parameters
PRIMITIVES
like priority, initi'll memory
Gives priority level of task.
GET PRIORITY
resources, entry address, and other
Deletes system data type even if disabled delete has
FORCE DELETE
iRMX 86 data. A task is like an
been called for system data type.
expanded subroutine managed by
Gives byte size of memory segment.
GET SIZE
an operating system. The actual
application code is written much the
ADDITIONAL JOB
PRIMITIVES
same as it is without an operating
Returns child Job partitions created by a task In
OFFSPRING
system except that requests are
parent Job partition.
made using kernel calls.
GET POOL ATTRIBUTES Gives memory pool attributes of job partition,
Even though the system's multiincluding pool minimum, pool maximum, iOitlal Size,
ple independent tasks appear to run
number of bytes used, and number of bytes
simultaneously, only one task
available.
actually runs at one time. Some
Changes p'ool minimum for Job partitIOn.
SET POOL MINIMUM
method of scheduling is needed to
Deletes job partition and returns Its memory to parent
DELETE JOB
decide which task receives control of
job partition.
the system processor; this schedand outputs the data. The output task has two choices: uling depends on the task priority. Since data coming
it can either delete the segment, letting the input task into a system must not be missed, the input task has the
create more segments, or it can send the segment to hi~hest priority. Data going out of the system are next in
mailbox C. After sending or deleting the segment, the importance, so the output task has second priority; the
output task waits at mailbox B for the next segment sequential process task has the lowest priority. The
from the process task. If the output task sent the seg- scheduling algQrithm is simple-the highest priority task
ment to mailbox C, the input task segments from the that is ready to run will get control of the processor.
output task, synchronizing the input task with the out- This is an example of preemptive priority. In this case,
put task. If the output task deleted the segment, the ready to run means that a task is complete-it has a seginput task creates a new segment and waits for input ment to fill and data coming in (input task), data to prodata. - The entire process runs continuously, synchro- cess (process task), or data to output (output task). For
nized by mailboxes and segment availability. Addi- instance, if input data arrives when the process task is
tionally, the tasks can elect to wait for a specified running and the input task has a buffer waiting for data,
amount of time at mailboxes, and if no segments the input task will preempt the process task to receive
Computer Dallign • September, 1882

2-106

inter

AR-236

scheduling functions. A system with work balanced
among the tasks runs as though all tasks perform
simultaneously.
The net result of task scheduling is that the system
runs as fast as it can. When data come in, the input task
will always get control of the processor. The output task
will execute whenever it has data to send and the input
task is not running. The process task will run whenever
it has data and no other tasks are running. Also, tuning
the system is easier with the standardized mailbox interfaces: slower tasks can be easily removed and replaced
, with faster tasks, and remaining tasks will not be
affected.
In a multitasking system, multiple independent tasks
execute concurrently. Buffer transfers occur through
mailboxes rather than through a direct interface to
tasks. and system functions not related to the primary
data processing functions can be handled by other tasks.
For example. a supervisory task that monitors a system
console for operator requests can be added to the system
at a lower priority than the process task. No changes to
any scheduling algorithm would be required.

r------OPFRAr;G~~TT\4V;;;i------l

I,

KERNEL
CON1ROl
STORE

DllA¥

BAUD RAn

3 ClUCK
<;IAruS

ADDRESS :

_

DATA BUS I

L ________

~~~~~

_______

I

~:A~ONTROl
!NTERRUPT

~

Fit 1 101:10 Brmware eomponent performs clock and
Interrupt control funellons, and supplies operatin& system
primitives.

Interrupt management

the data. If the input task is not running and the hardware driven by the output task is ready to output
another data value, the output task will receive control
of the processor.
Since the operating system schedules the tasks, each
task is designed as though it has sole control of the processor. Tasks make system calls such as receive message,
which may cause another task to run because no
message is waiting. In addition, interrupts will likely
cause a different task to run. ');he kernel can schedule
the tasks because only interrupts or system calls can
cause a higher priority task to become ready, and both
of these are handled by the kernel. Thus any time an
interrupt occurs or a "System call is made, the kernel runs
the highest priority task that is ready. The tasks are
written without any code to manage scheduling. The
kernel scheduling is general purpose, so adding new
tasks to the system does not require modifying the

The iRMX 86 kernel and the OSP provide two classes of
interrupt management: interrupt handlers and interrupt
tasks. An interrupt handler is a short procedure whose
only function is to respond to the interrupt as quickly as
possible. All interrupts become disabled in order to let
the interrupt handler execute at top speed. Interrupt
handlers can make only a few system calls. In the
sample system. the interrupt procedure receives a data
value, places it in a buffer, and returns. When the
buffer is full, the interrupt handler notifies the interrupt
task. Typical response time for an 8-MHz iAPX 86 processor, from the time an interrupt occurs until the interrupt handler gets control is 30 to SO ,.s. In the unlikely
event of a worst-case time, response time is about 160 ,.s.
Higher priority interrupts are enabled when an interrupt handler gets control, is 30 to SO
In the unlikely
task uses a mailbox to pass the fun buffet on to the next
task. Since both interrupts and tasks have priorities
assigned to them, the kernel uses the task priority to

,.5.

,APX 86110

OR
,APX 88110
INT£RRUPT

INTERRUPT LINES

FIt 3 Iwx .. lIardware requlremenll. Operatin& system iiroeeuor fill Into basic hardware system
for Iwx .. and brillp wltll It fllllCtions of kemel .._ory, I259A proarammable inlenapt controller,
ud 1253 proarammable Interrupt timer.
Computer DMlgn • SepI8mIIet, 11112

2-107

inter
r:-----'
I
I

I

I
:

CLOCK

INTERRUPT

--~

I
I
I
I
I

.

,APX 86110
OR
,API 88110

STATUS

PROGRAM
MEMORY

DATA
MEMORY

I
I r--...l..--~_ _---lw:;""
INTERRUPT

STATUS

I
I

80130

I

BAUD RATE

DELAV

TIMER

TIMER

SYSTEM
TIMER

,APX 86/30,88/30

Fla 4 Billie hardware system with iAPX OSP. OSP replaces kernel code, programmahle interrupt
'
controUer, and pro....mmable interval timer.
determine if interrupts should be disabled or enabled. If
the task priority is higher than an interrupt priority, that
interrupt is disabled while the task is running. A priority
level can be given to a task that disables all. some, or
none' of the interrupts: ie, defining a task that is more
important than all interrupts (initialization task), more
important than some interrupts (input task), or less important than all interrupts (processing task).

Multiprogramming
System parameters in a component system are normally
well defined: RAM locations are fixed, code addresses
are known, and address and I/O ports are specified.
Application code usually depends on these parameters.
If the system changes, substantial alterations are often
needed in the application code. However, if an iRMX 86
operating system is used, the kernel is made aware of
system resources during system configuration. System
configuration assigns these resources to "jobs."
Jobs do not do work but instead serve as resource
boundaries, containing tasks that accomplish system
functions. Many component applications systems,
including the sample system, will have only one job. All
system resources are given to the job and all tasks are
contained there. When the system is initialized, the job
is created and control is passed to the first task in
the job . .

Multiprogramming occurs when a system has two or
more 'jobs. The system boundari~s provided by jobs
confine errors and define limits for system resources
such as memory. These boundaries limit the effect of
one job on another. For instance, the system debugger is
a separate job. During development, the sample processing system would look like Fig 7. After'development, the debugger would be removed, leaving only the
application system. The job environment of the processing system IS not affected by adding or removing the
debugger. The overall system will, of course, be affected

la)

MAILBOX

Ib)

Fig 5 General purpose system consists of 3 basic functions.
AppUcadon code receives data, places data in buffer, then
proceues it. Processed data are sent to interrupt driven
output devices.

Fig 6 MaDboxes allow intertask communication by
providing places to send and receive messages (a).
Synchronization is easy since tasks can poll a maDb'ox and
walt for messageS. Mailboxes also form interfaces between
tasks in application system (b) so tasks can be easUy added
or removed without changing code.
.

Computer De8ign • September, 1982

2-108

AR-236
because removing the debugger will
cause more. system resources to be
available for other jobs.
The jobs, tasks, segments, and
mailboxes are part of a large set of
system data types which are data
structures managed by the operating
system. System data types are manipulated only through system calls,
which enforce the rules that govern
their use. Together system data
types and system calls form the application interface to the operating

1.1

101

APPLICATION S¥STEM

Fig 7 Job structure for development provides distinct boundaries so tbat a
debugger (a) or otber piece of development software can be used during system
system. This interface provides not
development and later removed wltbout disturbing application job (b).
only a good boundary for error
detection and debugging, but also common architecture process can be in the same job and use the mailbox
that can be carried from application to application.
interfaces to send data to one output task. If system
designers are careful, they can design systems whose
functions can be added in the field. Thus, expensive
Debugging
The i RMX 86 operating system has a debugger that inter- custom software will not have to be rewritten for each
prets and uses system data types, and manipulates them new application.
to control the system. For example, the processing flow
Users with a wide range of applications will find that
in the sample system can be halted by the debugger this approach allows them to implement a correswhen a segment is sent to mailbox A. Data flow through ponding range of capabilities, expanding an OSP based
the system can be traced by halting or break pointing the system up to a high level human interface. A complete
system as the segment goes from mailbox to mailbox.
iRMX 86 operating system includes extensive 110
Debugging is further aided by the modularity of the capabilities, a debugger, an application loader, a
tasks and jobs. Modules limit error effects; the inter- bootstrap loader, and integrated user console functions.
faces between the modules are well defined; and the Such a system can perform general purpose processing
modules are easily inserted or removed. A standard and still provide all iRMX 86 facilities. With these
system debugger can be used for all applications, features, one operating system can be used for current
avoiding the need to develop specific diagnostic tools.
projects and expanded for future ones, minimizing software learning curves for new applications.

Conclusion

Multiprogramming and multitasking promote application code modularity, allowing applications to be
created by adding new functions to old software. The
same scheduling and kernel interfaces work for systems
with only a few tasks, or systems 'with many tasks performing multiple processes. An entirely new process can
be added to the example by adding more tasks. If the
new and existing processes have nothing in common, the
new process can be in a different job. If both processes
can share general purpose tasks, such as output, the new

Bibliography
Introduction to the iRMX 86 Operating System. no 9803124,
Intel Corp, Santa Clara, Calif. 1982
iRMX 86 Nucleus Reference Manual. no 9803122. Intel Corp.
Santa Clara, Calif, 1981
Using the iRMX 86 Operating System on iAPX 86 Component
Designs, Application Note APIIO. Intel Corp, Santa Clara,
Calif, 1981
J. Zarella, Operating Systems Concepts and Principles,
Microcomputer Applications, Suisun City, Calif, 1979

2-109

intJ

ARTICLE
REPRINT

AR-286

June 1983

Reprinted with permission from VLSI Design magazine.
MarchiAprill983. Copyrlght© 1983.

2-110

210341-004

inter

AR-286

Software That Resides In SUlcon
Ron Slamp and Jim Person, Intel Corporation

S

ilicon software sounds like a contradiction in terms. The
casting of software in silicon implies that the software
cannot be changed; yet software does and must change.
For example, it must be possible to alter a microprocessor
operating system so that the system will support different hardware and software designs, as well as accommodate new hardware components and applications. And if the software has
been committed to silicon, then a way must exist to overcome
any bugs that are discovered later.

Design Considerations
Silicon software consists of two kinds of code; on-chip code
and off-chip code (see Figure I). In a typical case, some of the
off-chip code works closely with the on-chip code, and IS developed as part of the silicon software package. This special offchip (or "support") code might contain initialization, interface,
system, and version update codes. For silicon software to
tolerate change and be usable In more than one system, the
on-chip code must have three qualities: position independence,
configuration independence and stepping independence.
Position Independence

Because the most advanced microprocessors address at least
I megabyte of memory, system software that resides in silicon
must work right regardless of its location in memory. Absolute
addresses in the read-only, on-chip code or data restricts the
configuration of the system. Because the on-chip code recognizes only offsets, absolute addresses are unacceptable. On·
chip code cannot presume to know the location of any code or
data, it can only presume to know the structure of the data
which it accesses. It cannot know, except relatively, where in
memory it (or any other code) resides. If the on-chip code is to
be position independent, then any absolute addresses needed
by the on-chip code must be obtained via the processor's
registers.
Position independence is not a new concept; in fact, it is'
rather an obvious requirement for silicon software. Compilers
and relocatable assemblers allow linking and locating, thus
making it easier to produce positIOn-independent code. But
most of these tools can also produce code that is not position
independent. Silicon software developers need to be aware of
the positIon-Independence reqUIrement throughout the design,
implementation and test phases for their products.
Configuration Independence

The second requirement for silicon-resident software is that
the on-chip code must not depend on the underlying hardware
and software configuration of the system. Instead, the on-chip
code must have indirect access to other code or data, and must
then check the run-time data to deduce the system
configuration.

VLSI DESIGN March/April 1983

On-Chip Code

Oft-Chlp Code

r---.,

I

I
SlilCOfl

Software

I

~~J:~r~

Other Code

I

I
I

I

I

I

System Memory

IL _ _ _ JI
FIGURE I. SlllcOD software Is divided IDtO oD-chip code and offchip code. The off-chip code either directly supports the
oD-chlp code or contains other appllcailons code.

Because of the read-only nature of silicon software, constants can cause problems when they are located within the
on-chip code. Values representing a hardware device must not
reside on-chip if that device can be located anywhere in the
system, or when values support several devices having similar
functions but different programming interfaces. Indirect access
is necessary for all values that vary depending on the configuration of the system.
Slepping Independence

Stepping independence is an expansion of configuration independence, and is perhaps the most elusive of the
requirements to be met by software intended for residence in
silicon. A "step" is an updated version of the on-chip code. The
on-chip code and the off-chip code must remain compatible,
regardless of changes in either of them. Stepping independence
exists when all vc"ions of the on-chip code work with all
versions of the off-chip code.
If stepping indepcndence is taken into consideration when
the silicon software i, developed, then provisions can be made
for the subsequent additions of options without changing the
on-chip code. Otherwise, the static nature of the on-chip code
might make it impossible to add options. Although configuration independence can be designed into software from the start,
stepping independence can be achieved only if a system's existII1g silicon software does not include features that p~event it.
One type of data that is likely to change between steps is the
value representing the size of a data area. If the software is to be
stepping independent, it cannot know the sizes of the data areas
accessed by on-chip code prior to run time. (No problems arise
if on-chip and off-chip code agree on the size of the data area.)
But what happens if the on-chip code is not from the same
version of the product as the off-chip code, and if the size of the
data area has changed between versions'! If the size of the data
area is defined by a constant in the on-chip code, then that area
might be smaller than the off-chip code expects it to be. This
misunderstanding can lead to disaster as the off-chip code reads
and writes beyond the data area.

2-111
210341_

AR-286

This problem is solved when the on-chip code ascertains the
size of the data area from off-chip data. Thus, the size of the
data areas for the system becomes a configuration option.

Getting the Bugs Out of Sll1con Software
Every large program contains bugs. Designers usually
remove bugs by modifying the program to correct the problem,
and then discarding the old program. However, a program in
silicon cannot be modified without stepping the component.
And even so, it is undesirable to discard the outdated
component.
Software designed for silicon should include a facility for
fixing bugs in on-chip code. One way to fix an on-chip bug is to
prevent access to the routine containing the bug. A correct
version of the routine is provided off-chip, and program execution is forced to branch to the off-chip version whenever the
routine is invoked. Modular programming practices during development help reduce the cost of such off-chip duplication.
This on-chip bug-fix works well over time. Each component
step has an associated collection of bug-fix modules. The collection is updated for each new version of the product, as
component steps fix known bugs. During system configuration,
the user specifies which component step is being used; the fixes
for that step are included automatically in the off-chip code.
Because of this facility, one step looks just like another to the
user.

nGURE 2. The OSF componenl works With systems that use Ihe
IAPX 86, 88, 186, or 188 microprocessor. Close coupling of Ihe
CPU and Ihe OSF allows maximum .ero-watl-slate performance
of Ihe OSF software.
On-Chi p Code

Ofl-GhlpCocIe

r

I
80130
Kernel

Control
Store

Intel's OSF: A Software Component

The 80130: The

iRMX~M

86 Kernel in Silicon

Intel's first software-on-silicon product is the 80130. It provides a fUl)ctional subset of the iRMX™ 86 Nucleus, which is
the heart of the iRMX 86 operating system (OS). The iRMX 86
OS is a real-time, multi-tasking, mUltiprogramming operating
system intended for 16-bit microprocessor designs. The iRMX
86 family of standard software modules includes a nucleus, a
stand-along terminal handler, a stand-alone debugger, an asynchronous 110 system, a synchronous 110 system, a loader, a
human interface, ahd options required for real-time applications. The nucleus manages the creation and dynamic deletion
of all system architectural features (tasks, program environments, memory segments,

data~communication

managers,

etc.). It also schedules tasks, based on priority, interrupt management, memory management, validation of parameters,
management of exceptional conditions, and co-processor
support.
How the 80130 Satisfies
the Silicon Software Criteria
The iRMX 86 Nucleus provides both the on-chip and off-chip
codes needed to implement the operating system. The on-chip
code resides in the 16K-byte ROM space of the 80130. It is the
main portion of the Nucleus code, and includes the kernel of the

Software

,

I

I

,

User ExecutoO!"l

I
~ ~~u,estfor
. . _ I ~~~I~g~ment ! ~servlce
~
I

L....._ _ _---'

The Operating System Firmware (OSF) component consists
of several hardware modules (see Figure 2). These modules
provide two functions that are essential to operating systems:
interrupts and timers. The OSF modules include a Control
Store (16K bytes of fast RO M) to contain the silicon software,
three programmable interval timers, an eight-input programmable interrupt controller, a bus interface, control logic, a data
buffer, and address latch logiC.

Su~rt-

_K."m
~
L _?:::J
+

nGURE 3. The posltion·lndependenl Inlerface supplies data
locatIOn and run-time values, and slart. on·chlp ezecution of
Ihe software.

operating system and the primitives, which are present in the
basic 80130 configuration. The off-chip code is stored in external RAM or ROM. It consists of initialization code, and code
that either cannot be position independent or cannot be known
before a given system is configured.
Position independence is guaranteed if entry to the on-chip
code is possible only through an interface in the off-chip code
that sets up the necessary registers. The off-chip positionindependence interface (see Figure 3) provides an absolute
data location and begins on-chip execution by the siliconresident code. All run-time values can be determined based on
the data location. On-chip execution gives the processor a
location in the on-chip code from which other on-chip locations
can be calculated.
It was relatively easy to make the 80130 configuration independent, because (like most operating-system kernels) it contains only general-purpose functions. The off-chip code
contains all the drivers for particular peripheral chips. The
Interactive Configuration Utility integrates the drivers with the
80130.
The interface between the off-chip and on-chip codes
remains stable across component steps. The steppingindependence interface (see Figure 4) resides on the chip, and
is a map of the on-chip code. This interface gives the off-chip
code indirect access to all on-chip "publics" (e.g., externally
accessible routines, modules, and labels). It is also a chart that
routes execution to the proper on-chip location. The off-chip
code uses an index of this chart to specify which public should

2-112
VLSI DESIGN

March/April 1983

210341·004

inter

AR-286

On-chipCod.

0

11i:r.fI

.......

80'30

I

T.....

I

'-"'=-......-:

I

1~.:utlon
'

Logoca' 0

I.ocatlon

CCP
Code

~
...~...
Set:Up I~

I

CCP
Code

CCP
Data
+800

BOOS

Coda

"IilURE 4. All on-chip acce._ are routed through the on-c:lI.lp
.t.pplng-lDd.pend.nce Int.dace, wll.tcll. proYld•• compatl·
bUlt, betw••n on-c:1I.1p and oU-cll.1p cod.: B.cau•• til..
Int.dac. stnrc:ture stays const_t, til.. ext.mal referenc.
also stays coDltant, wlI.Ue til.. on-cII.Ip OFFSET change. to
point to til.. DeW location of til.. on·cll.tp cod•.

BOOS

Code

be accessed. The index of a given routine remains the same

BIOS

across component steps, even though the actual address (offset
into the component) of the public has changed. For different
versions of the on-chip and off-chip codes to work correctly, all
access from outside the component must be routed through the
stepping-independence interface.

BOOS

Constants and mnaag_

BIOS

Const.nt. and meueges

+,61<

(a)

16-byta cold-boot
initialization

(11.)

"GURE 5. (a) Til.••tandard disk-based CP IM-16 modul.1I on.
long structur. contalD1ng both cod. and data. (b) IDt.1
reorgaDII.d til.. ballc CP IM-a6 arcll.ttecture to fit th. op.ratlng
.,st.m Into til.. 80150 OS flrmwar. compon.nt.

I. A preconJigured-mode system, for which the system de-

signer needs to do no operating-system code development
or extension.
2. A configurable-mode system, for which the designer makes
a selection from among the Intel drivers supplied, and
makes changes as required to meet hardware needs.

8251A Universal Asynchronous Receiver/Transmitter
(UART)
8274 Multi-Protocol Serial Controller (MPSC)
825SA Programmable Parallel Interface (PPI)
8275 Floppy-Disk eontroller
8237 Direct Memory Access (DMA) Controller
If the 80150 is used as a co-processor with the iAPX 186 or
the 188, then the on-chip peripherals of these processors
(DMA, timers, interrupt controller, chip-select logic) are also
used.
Configuration independence is achieved via the Configuration Block (CB), with which whole BIOS drivers, data structures, and built-in utilities can be selected independently by the
system integrator.
CP/M-86 n-ansformations

Intel and Digital Research together addressed the issues of
position dependence and intermixed code, dllta, buffers, and
stacks. The CCP and BDOS were reorganized to consolidate
code and to use the 80150's ROM space efficiently.
CP/M-86 was originally developed using an 8080 model structure. The use of this structure implied that the code and data
groups would overlap, as they do in the classical 8080-based
CP/M design. Each module contained set-aside buffer areas,
and included separate data stacks. Therefore, all variable areas

2-113
March/April 1983

CCP

~

The CP/M-86 operating system consists of three modules.
The Console Command Processor (CCP) handles command
line processing, and executes built-in utilities. The Basic Disk
Operating System (BDOS) performs logical disk I/O, including
disk reading and writing, directory management, and sector
allocation. The Basic Input/Output System (BIOS), which contains the configuration-dependent code and data, also provides
I/O for specific peripheral chips.
CP/M-86 is a single-user, single-tasking operating system
written in position-dependent code. The 80150 contains the
entire CP/M-86 operating system; for many configurations, it
requires no off-chip code. Intel's goal was to use the
configuration-independent CCP and BDOS elements as a base,
and add to them a BIOS that supported a variety of peripheral
components but was still configuration independent.
The 80150 BIOS supports the following two functional configuration options:

VLSI DESIGN

Constants and meuages

Code

The CP/M-86 Architecture

tnuhmarlt. of Org,'al R~'('a,cll. 1m

BIOS

Data

Intel's decision to implement CP/M-86 operating system in
silicon (the 80150) raised a different design problem. With the
80130, Intel only had to deal with Intel-designed software. Code
design, implementation, extensions, corrections, support, and
the subsequent effect on the end user were all under Intel's
control. The selection of an independent software system such
as CP/M-86 (a product of Digital Research, Inc.) introduced
new factors into the implementation.

~PIM-86 16 II

Coda

+2500

The 80150: CP/II-86* 1D SWC:OD

The 80150 BIOS includes drivers for the following chips:

BOOS

inter

AR-286

;'

.

CCP
Constants and Messages
BOOS
Constants and Messages

/

/

/

/

E~or

BIOS
and Stack

(a)

_

_

Start of 810S
-t---==:..::.:.==--t

" " ' , ............. ' ............
.......
~ I'............
............
............
...........

!'-.., ............

messages

.......... """ .............

Input/output control blocks
CRT

1'-.

-""

\ -

'---............
.......................: : : : ............

~~~~UT

.........
.....

BIOS code
CONIN

_____

CONOUT _____ _

--------

CONST--~--

Keyboard
Printer
Disk
Disk-parameter header
Disk-parameter block
Olsk~skew tables

BOOS

Van ables, Buffer

~~~ST " "
AUXST
Disk read
DI.Sk write

Vanables, Bu Her

and Stack

Addres&-BIOS - ,_ _

Addresses of user entry POIn~ CONIN ~
CONOUT ,""'-..c

LlSTST

BIOS
Constants and Messages
CCP
Vanables. Buffer
and Stack

Address-BOOS

BIOS stack

""

l&-dlsk-dnve disk-parameter headers
All dlsk-pararneter blocks
Check vectors
Allocation vectors
Track/sector disk buffers
' L____________
__
~.----

--~

(e)

(b)

nGOE 6. The Configuration Block (CB) reconfigures the 80150 for specific hardware systems. a) The CB constants read
down from the 80150, and vanables used at run-time. b) The BIOS portion of the CB conta1Ds configuration-dependent data.
c)These addres.es proTide access to the 80150 on-chip code, to alter e"ecullon paths for different coDfiguratlons and stepplngl.

and stack areas had to be removed from code that would reside
in ROM.
Figure 5(a) shows the general structure of the original CCP
and BOOS. Although a natural separation between code and
data is clear, Digital Research did not distinguish between
constants, literal messages, and pure scratch storage.
Intel's first step in the transformation of CP/M-86 was to
group all variables within each module, including buffers and
stacks. We then placed thIS data grouping at the end of the
constants and literal mes,age, for each of the CCP and BOOS
modules.
The new structure (Figure 5(b)) includes all code, constants,
and internal messages, as well as a 16-byte initial-programo·load
(IPL) boot resident in the 16K-byte OSF ROM; We removed all
variables from the body of CP/M-86, and put them in an eXternal RAM-based structure.
.
Second, the implementation of CP/M via the Intel 8086
"small model" (separate code and data segments) rather than
via the 8080 model (intermixed code and data), meant that the
necessary additional variable data space would be available at
80150 execution time. The segmented architecture of the iAPX
86 family made this implementation easy, because separate
CPU registers were available for data and code addresses. As
part of the BIOS initialization, we moved the constant data
structures for the CCP, BDOS, and BIOS to the base of a
RAM-resident Configuration Block (CB). An additional
amount of RAM equivalent to the total variable space was also
allocated and preset to zero. This 8086 "small-model" transformation not only made it easy to separate code and data, but also

made the code more efficient and eliminated approximately
2100 bytes.
We achieved configuration and stepping independence via
the off-chip RAM-based Configuration Block. Figure 6(a)
shows the overall structure of the CB as constructed during
BIOS initialization. During initializatiOJi, the 80150 BIOS
copies the CCP, BOOS, and BIOS constant and literal structures into the Configuration Block, and appends additional
space for variable and scratch-pad storage. Even the location of
the CB is alterable, based on the address stored in locations
0:3FE-3FF.
Figure 6(b) shows expanded portions of the CB. The data
area contains pointers that can be changed to select custom
off-chip code instead of the standard on-chip code. The entire
BIOS can be replaced. (The BIOS code insert in Figure 6(c) and
the various code labels are reflected back to the CB.) Complete
I/O control block structures are Pcovided for each CP/M logical
device, including CRT, keyboard, list, auxiliary, and disk. The
control block includes port addresses, protocol support, and
other default data needed to detect and control the status of
each peripheral. Figure 6(b) also expands the systems 'tables
and buffers created for disk support.
The addresses in Figure 6(b) indicate how stepping independence is achieved. Any off-chip routines changed by the user
can be selected by altering the address of the CB. If Intel
updates an on-chip routine, the address in the CB is updated
automatically when the 80150 copies its constant structures
into the CB. As explained above, full stepping independence is
maintained, because any ROM changes can also be imple-

2-114
VLSI DESIGN March/April 1983

210341·004

intJ

AR-286

men ted off-chip by- having the address in the CB point to an
off-chip patch. (The CB contains BDOS entry points (shown in
Figure 6(b» that make thiS change possible.)

RAM data is somewhat more innovative. One silicon-related
specter that haunts software designers is the fear of
"committing code before its time." But software designers can
never expect to produce bug-free code the first time: And system designers cannot always predict the capabilities or the
implementation requirements of peripheral devices that have
yet to be built. Nevertheless, software designers who use the
general silicon-implementation strategies of position independence and configuration independence, and who provide for
stepping independence, can create standard silicon hardware
0
without fear of component obsolescence.

The Configuration-Independent Interlace

Use ofthe predefined configuration requires that the 80150 be
installed at the top of the 8086 memory address space (FCOO:O).
The I6-byte internal hardware boot is activated at all POWER
ON and hardware resets. and passes control to the 80150. The
80150 initialization sequence uses this positioning to indicate
the default hardware configuration (floppy disk, printer port,
serial console, or auxiliary port). Each device has predefined
port addresses, interrupt assignments, and protocols. The
iAPX 186 or 188 CPU supports programmable chip-selection
and the on-chip DMA drives the floppy disk controller.
If the configuration must be altered, or if the BIOS code
needs revision, the 80150 can be installed on any 16K code
boundary except at the very top or bottom of memory. A
PROM that contains off-chip code and data for a user's particular configuration is also installed at the top of memory.
The 80150 initializes the default system hardware tables,
then calls an EPROM to complete or revise the existing data in
the off-chip CB RAM area. At this point, the CB contains the
addresses that select either on-chip or off-chip code. When the
configuration is complete, control is returned to the 80150. The
80150 completes the CP/M initialization, displaying the familiar
CP/M "A" sign-on.

About the Authors
Ron Stamp received the AS. degree in
software technology from Portland Community College, and gained much of his skill in
electronics at Clark Community College in
Vancouver, Washington. He has worked In
Intel's OEM Module Operation III Hawthorne, Oregon since 1978 and IS currently
the project leader for component software.

Jim Person received the B. S degree

Conclusion
Converting software to silicon is not new. But redesigning
software to consist of on-chip ROM code and configurable

In mathemattcs in 1962 from the UOIverslty of
Arizona. He was the engmeenng project
manager at Intel for the 80150 "CP/M-on-achip."

2-115
210341·004

inter

. ARTICLE
REPRINT·

AR·287

June 1983

Reprinted with permission from Electronics,
March 24,1983. Copyrlght© 1983. McGrayrHllllnc. All nghts reserved

2-116

210341-004

intJ

AR-287

SPECIAL REPORT
Punching in for real-time jobs
in industry, R&D, and offices,
operating systems use special
software structures to squeeze
better-than-ever performance
out of 16-bit microprocessors
by Stephen Evanczuk, Software Editor

oA

special class of operating systems is hard at
work in the 16-bit microsystem world. For controlling
environmental processes, acquiring data at high
speed, or even handling transactions at a commercial bank, these operating systems contain mechanisms that enable them to respond rapidly to external events and that differentiate them from the more
familiar general-purpose operating systems.
In fact, all the operating systems for 16-bit microprocessors respond in a reasonable period of time.
But the general-purpose, or developmental, operating
systems like CPIM, Bell Laboratories' Unix, and MSDOS are intended for standard programming activities like editing, compiling, and file management
[Electronics, March 24, 1982, p. 113]. As such, they
lack certain software structures needed for reliable
control of processes producing data at a high speed.
Real-time operating systems tend to fall into two
general categories-multipurpose and embedded, reflecting the type of hardware they run on. Multipurpose real-time systems are typically built around fullfledged microcomputer systems with terminal,
keyboard, plenty of system memory, and mass storage. Furthermore, in process-control or data-acquisition applications, some special-purpose hardware is
usually included in these systems to serve equipment
or high-speed data input operations. Besides the familiar applications for research and development,
transaction-processing environments are an' example
of situations needing multipurpose real-time systems.
No doubt the largest class in volume because of
their growing use in consumer items, embedded systems are minimal hardware systems, often just onechip microprocessors that control limited parts of a
larger system. Programmers ordinarily employ a special development system to create the software,
which is loaded into the target system for use and
ideally is never seen again.
To meet the needs of these two classes of applications, real-time operating systems 'come in three
flavors for 16-bit microprocessors. Serving multipurpose real-time systems, one type-discussed in the

first part of this report (see p. 106)-includes all the
software development support found in their generalpurpose counterparts. Furthermore, many can be
stripped of the layers needed in the developmental
environment and placed in programmable read-only
memory for use in an embedded system.
For "'ose who swear by Unix, the group of Unixbased operating systems discussed in the second
part (see p. 111) may mean no need to swear at it in
real-time applications. A growing number of vendors
are starting to convert this admittedly non.:..real-time
operating system into versions that can be used to
handle external processes. Although the industry is
cautious, if not downright skeptical, of real-time versions of Unix, the fact that C-the language of
Unix-is so highly regarded for use in real-time applications may help swing this group iDto the forefront.
The potential for distributed-control systems based
on embedded microprocessors hinges largely on the
availability of high-performance real-time operating
systems that can be plugged into the application with
the same ease as an integrated circuit. Called silicon
software, these operating systems discussed in the
last part (see p. 114) have been deSigned to be
stored in read-only memory. Providing a fixed set of
system calls, they present programmers with a consistent set of high-level commands to perform the
low-level functions usually built from scratch.
Building system-level software from scratch has
long been the hallmark of real-time programmers,
even a mark of honor. Fortunately, however, the increased acceptance of ready-made operating systems using well-understood algorithms (described in
the first part) is helping to replace this software "random logiC" with rather more standardized packages.
On still another level, the unique responsiveness
and throughput demonstrated by real-time operating
systems is a truly user-friendly feature. For this reason, these systems should find their way into less
obvious real-time applications, such as transaction
processing, word processing, and personal work stations for office automation.

2-117
IIMlronlcal March 24, 1983

210341-<10<

AR·287

AI90rithms star in
multipurpose slJstems
o Whatever environment it finds itself in, the function of
an operating system is the efficient management of
shared resources by a number of users, whether these are
human beings accessing a computer through teiminals or
programs vying for a single central processing unit. In
fact, the degree of sophistication of an operating system
is reflected by the number and types of physical resources it manages and by the fineness of control it
exercises in their management. And operating systems
targeted for control of the external environment must
wrestle with the most demanding resource of all-time.
The degree of care with which such software is designed
to manage time is what determines its suitability for the
real-time environment.

Schedule,. and queu••
Two critical aspects of the r~-time environment are
the random nature of physical events and the simultaneous occurrence of physical processes. Consequently,
interrupt handling and multitasking are primary attributes of a real-time operating system. In fact, it might be

EXECUTING
PROCESS

Cl

TASK WAITING
TO EXECUTE

RELATIVE
PRIORITY
I.) ROUND·RDBIN SCHEDULING

EXECUTING
PROCESS

Ib) PRIORITY'BASED PREEMPTIVE SCHEDULING

1. PriOrlti.s.)n round-robin scheduling (a), tasks (or processes) talle
equal turns executing, while a higher-priority task Will supersede a
lower-priority one in priority-based preemptive scheduhng (b) Most
schedulers employ some combination of these techniques.

argued that the mechanism for handling multitaskingthe scheduler-is the heart of the operating system. The
rest of the operating system lies atop this kernel and
serves the specific demands of the application
environment.
In particular, the lists, or queues, and their managers
that surround the scheduler are constructed to deal with
the different physical resources supported by the operating system, Thus, one queue may contain those tasks
(processes, or programs in the course' of being run) that
are ready to execute on the processor, another queue
may be tasks waiting for access to input/output hardware, and another queue may contain tasks waiting for
some specified event to occur.
In any multitasking operating system, the scheduler
uses the queues as input. Its output, on the other hand, is
a single task that has been activated and allowed to
execute on the central processing unit. The scheduling
algorithm in large part defines the operating system.
In one system, the scheduler may simply select a task
on a first-come, first-served basis, allowing it to run until
completion or, until some specified period of time has
elapsed. This type of relatively primitive algorithm was
commonly used in mainframe computers running simple
batch-oriented operating systems.
In a slightly more sophisticated operating system that
can be used interactively through terminals, the scheduler may select tasks on a round-robin basis and permit
each of them to run for a specified period -of time (Fig.
1). Once the task exceeds its time slice, it is placed at the
end of the queue and forced to wait until all other tasks
have had a chance to execute.
Round-robin scheduling with equal time slices is adequate if every task is no more important than any other
task. However, if some are considered to possess a higher
priority, then a more sophisticated scheduling algorithm
must be used-one that recognizes that some tasks are
more important, but that no task should be excluded
from using the CPU.
One solution is the use of several queues, where the
length of the time slice is related to the priority of
elements in the queue. In this case, the scheduler would
allow all tasks in each queue of a different priority to
execute on the cPu, but lower-priority tasks would be
given less time.
A further refinement permits higher-priority tasks to
suspend a running task. This technique, called preemptive scheduling, is an important feature for real-time
environments, in which the delayed execution of a highpriority task could have disastrous results, rather than
simply disappointing the user.
In scheduling algorithms, tasks may exist in a number
of logical states, depending on their readiness to run. In
the Versatile Real-TimeExecutive (VRTX) from Hunter

2-118
Ilectronlcsl March 24. 1983

210341-004

AR·287

& Ready Inc .• Palo Alto. Calif.• for example. tasks are

the task may be reactivated. Thus at each clock tick only
the counter in the element at the head of the queue need
be decremented, rather than every counter in every queue
element. This method takes longer to insert new elements
into the queue and so requires slightly higher overhead
for insertion than when the total time is maintained by
each counter; however. that overhead is more than offset
by the time saved by Updating only a single counter.
Real-time environments pose a special set of problems
for resource allocation. Besides all the more familiar
problems of scheduling. a real-time operating system
must maintain reliable behavior under extremes of load
when it is driven by a high rate of external stimuli. From
the system user's point of view, the system must maintain a predictable level of respOnse and throughput.
In an interactive environment, users sitting at terminals measure response as the time the system needs to
react to a keystroke. In general, system response is the
time that the system needs to detect and collect data
from some external stimulus. Throughput, in an interactive environment. is seen as the number of users able to
utilize the installation simultaneously. In a more general
Another u.. for queu..
real-time environment. throughput is the rate at which
In addition to having queues serving the scheduler the system is able to collect, proces$, and store data.
directly. most systems use them as the preferred means
In fact, although response and throughput share some
of associating a task with a required resource. For exam- common software elements, operating-system designers
ple. one capability commonly found in real-time operat- will invariably find themselves forced to make choices
ing systems is the ability to suspend a task for a specified that will tend to optimize one at the expense of the other.
period of time. Typically. the operating system contains a Often. the interrupt-handling requirements of a real-time
special queue for this function. Each element in the operating system force this choice.
Interrupt processing is hardware and software integraqueue is a task in a suspended state. Associated with
each task is a counter that contains the number of clock tion at its most demanding (see "Handling hardware
interrupts," p. 108). To handle interrupts, operating systicks remaining until it should be reactivated. ,
For example. in iRMX-86 from Intel Corp., Santa tems often place layers of software between the user and
Clara. Calif.. the counters keep track of the incremental the microprocessor in order to allow different levels of
time remaining with respect to the previous element in performance and capability.
Intel's RMX-86 is a typical example of distinct levels
the queue. rather than the total time remaining before
of software used to perform basic interrupt processing.
At the lowest level. an interrupt handler works intimately with the hardware to execute some operation, such as
sending a message character by character to a printer.
Code for interrupt handlers is kept compact and simple,
since system interrupts afe disabled during their operation. The higher level, called the interrupt task. works at
a prionty a.~sociated with the particular hardware it services. Interrupt tasks act as interfaces between application tasks, working with specific interrupt handlers to
complete execution of operations dealing with external
devices. RMX makes this interrupt-handling mechanism
available to application programs through a special set of
system calls.

driven through four possible states by external events. by
other tasks and system utilities. or by their own system
calls (Fig. 2). For example. an executing task may delete
itself-in which case it enters a dormant state-or may
cause itself to be blocked either explicitly through a call
to suspend itself or implicitly through a call to perform
some I/O function. On the other hand. once suspended. a
task may reschedule itself through a system call. or ·an
external real-time event may bring the task back into the
ready queue.
Recognizing the importance of scheduler design. at
least one software vendor has made it easier for real-time
users to build systems around a prepared kernel. yPited
States Software of Portland. Ore.. is offering a basic
scheduler that assembles into less than 100 bytes of object code for the target microprocessor [Electronics. Nov.
17. 1982. p.206]. Furthermore. in anticipation of realtime systems targeted for specific application areas. U. S.
Software supplies a list of design notes detailing extensions to the basic kernel.

2. T,... ...... As one task (or process) runs, others may be in
various states of readiness. In Hunter & Ready's VRTX, for example,
tasks can be ready (able to run immediately), suspended (waiting for a
resource), or dormant (deleted by a system call).

Protection and communication
Once the interrupt software has completed its function.
tasks that use the data are indistinguishable from any
other task in the system as far as the operating system is
concerned. Unless special care is taken, conflicts could
still arise between two separate tasks that might need to
use the same resource, such as the same location in
memory. MP/M-86. for example. employs a special
queue. called a mutual exclusion queue, that contains a
unique message representing the shared resource. In or-

2-119
Electronlc./March 24. 1983

210:141 __

inter

AR-287

der to use the resource, a,
task must first capture
the message, much as a
node in a token-passing
network must first obtain
the token before being at
liberty to trapsmit.
Per Brinch Hansen l
identified such shared resources as key elements in multitasking systems. Sections of code that access critical resources are called critical regions. The simple expedient
of ensuring that only one task at a time is allowed in a
critical region guarantees that multiple tasks may share
the same critical resource without fear that its integrity
may be compromised when two of them attempt to access it simultaneously (Fig. 3).
This concept of the mutual exclusion of tasks from
critical regions is implemented in a structure called a
monitor, in which critical regions are gathered in one
section of code and protected from use by more than one
task at a time. The MSP operating system from Hemenway Corp. of Boston [Electronics, Jan. 27, 1983, p. 119]
explicitly supports mutual exclusion through monitors in
its internal structure.
Furthermore, user-written routines needing monitor
protection are provided with four functions in MSP that
are implemented using hardware traps for rapid access:
Entermon, Exitmon, Wait, and Signal. Entermon and
Exitmon serve as monitor entry and exit points, respectively, performing required housekeeping functions. Entermon disables system interrupts and preserves all registers, while Exitmon reverses these actions. Wait and
Signal, on the other hand, work in tandem to control
access to a critical resource. Wait queues up tasks needing an unavailable resource. Signal releases them from
the queue when the resource becomes available.
Wait and Signal are examples of an intertask communication mechanism, called semaphores, found in most
real-time operating systems. As noted, these commands
simply queue up and release tasks needing a critical
resource. Such a resource may be an 110 device, a memory location, or simply a go-ahead' signal that synchronizes a pair of tasks. For example, task A may execute
only after task B, has completed. In this case, task A
would begin with a Wait (flag) command, where the flag
is used as an associated variable. Task B, on the other
hand, would end with a Signal (flag) command. In this
way, task A would be blocked until task B had executed
its Signal command at the end of its processing. But
exchanging simple go-no-go signals is not sufficient for
many multitasking environments.
For longer messages, real-time operating systems offer
extensive intertask communication facilities called mailboxes. Mailboxes are essentially semaphores with storage.
As such, tasks needing data from another task will wait
until the other has loaded the mailbox with the information. Intel's object-oriented RMX-86 transfers any of the
defined objects in the system through mailboxes. Hemen, way's MSP, on the other hand, provides a buffer of fixed
size that may be used without restriction on its contents,
as long as the 256-byte buffer is not exceeded. With its'
Multibus message exchange (iMMX) extension to RMX for

=~/IOIiOn:,' "', ", .

, i

",i""".,·'"",'

""!~ 'lMf:detail$ol 'slmJM.~1!ht _01111",'
Dies theeoll'lPlelc nal.l;lteol '~~' ,'"

';'w-- as

II v9h1c~

tor lotf~""

'~~In1hillfiekl, '

',I

'. , "

' , '~;llf_~i';!:"

'

",~,~_

'>'

'.

' , ' "" :"'"

,

AMandard $01Iwaf',~systemlna mi«~''':',:

_(l'$dthekeyb~dMOnltor, ilI~"fOf;~' ,;

wlIh the harGware in.,. sy&lem to wIil!

,~ ~pOiIIIS by I'IIturnlnfll\ltli: 'MemorY add",_, oI'boftI;,,;,
~he Inltrru,,-h8ndIing aubrOllllhe anased
software has evolved into complete operating systems in
memory, engendering the term silicon software. Complementing hardware for distributed-processing architectures, such silicon-software systems signal a migration of
application software into dedicated microcomputers previously considered unable to gain full systems capability.
For developers of dedicated microcomputers embedded
in some larger real-time system, silicon software spells
the end of the need to reinvent the wheel to carry out the
fundamental functions of a real-time operating system.

protection, timing, and communication problems (see
pp. 106-111). In fact, the development problems extend
beyond the purely logistical exercise of maintaining a
separate ROM-based instruction store and one for variables that need to be placed in system read-write memory. Treading a fine edge between the full function of a
general operating system and the fine-tuned performance
of special-purpose software, silicon systems need to balance the need for a wide range of system functions with
the requirement that they squeeze into a minimal amount
of ROM.

Flexlbll~ for exPansIon

Still, once a system meets a reasonable compromise
between capahility and size, it should not irrevocably
lock the user into accepting its choices. For example,
many real-time applications require some custom peripheral-device drivers and system-level functions. Consequently, the program should provide a mechanism for
logically incorporating user-written extensions to the operating system, such as the user-defined pointers in the
VRTX system from Hunter & Ready, Palo Alto, Calif.
lldendlng the mlcroproceaor
In VRTX, a configuration table (Table 2) in system
Functionally, silicon operating systems extend the mi- random-access memory allows specification of a custom
croprocessor's instruction set to include system-level in- routine that is to be executed whenever the system is
structions that perform operations on software structures, initialized. For even more delicate control of system oplike queues and tables, rather than on hardware registers. erations by custom software, a trio of pointers in the
Application-program developers are then presented with table specifies user-written routines to be accessed whena virtual machine-one that is perceived by the program- ever a task is created or deleted or whenever a context
mer as different from the actual host processor. In these switch is performed. Hunter & Ready also includes a
virtual operating-system machines, their instruction set location in this baseline configuration table for its anticiincludes a well-defined set of system calls as well as the pated file-management extensions to VRTX.
basic machine instructions of the host microprocessor.
The 80130, an RMX-86 kernel in silicon from Intel
For example, with systems like VRTX and RMX, the virtu- Corp., Santa Clara, Calif., generalizes this approach
al microprocessor has a special set of instructions for through an index table containing pointers to system
handling interrupts (see Table I).
routines. If circumstances require the replacement of an
For system developers, however, the problems in devel- existing system routine, the index-table pointer is merely
oping reliable silicon software extend beyond resource altered to indicate the address of the new routine. In an

Ileotronlca/March 24, 1983

2-126
210341.(104

AR·287

TABL l 1 SYSTE:-M (ALl S FOR HANDIINC, JNHRHlJP1S

TABLE 2 VRTX CONFIGURATION TABLE

J£~H~~:~~~::~~
Versatile Real Time Executive (VRTX)
UI POST

sys RAM addr

deposit message from Interrupt

system beginning address

handler

UI EXIT
UI TIMER

timer mterrupt

UI RXCHR

receiver ready Interrupt

UITXRDY

transmitter ready mterrupt

assign Interrupt handler

ROSRESETSINTER RUPT

deassign Interrupt handler

ROSGETSLEVEL

return number of highest-priority
mterrupt level currently belOg

processed
ROSSIGNALSI NTE R RUPT

system memory size

system stack size

user RAM-addr

starting address for available memory

In

Initial partition

oRMX-86
ROSSETSI NTE R R UPT

sys RAM-Size

sys-stack-slze

eXit from mterrupt handler

signal from mterrupt handler that

user-RAM-size

size of Inlt.al partition

user-block-size

size of memory block for dynamiC allocation

user-stack-slze

size of stack for user tasks

user-task-addr

address of first user task

user-task-count

maximum number of tasks

Sys-Inlt-addr

address of user-supplied Initialization routine

sys-tcreate-addr

address of user-supplied routme accessed
when a task IS created

sys-tdelete-addr

address of user·supplted routine accessed
when a task IS deleted

sys·tswap-addr

address of user-supplied routme accessed
when a context SWitch occurs

(RESERVEDI

address of Hunter & Ready future
extensions to VATX

event has occurred
ROSWAITSINTERRUPT

walt for occurrence of event

ROSEXITSINTERRUPT

relinquish control of the system

ROSENABLE

enable hardware to accept mterrupts

ROSDISABLE

disable hardware from acceptmg
Interrupt!>

embedded system, this new routine could be placed in
ROM along with application software.
Now that programs in ROM have matured into silicon
systems, the development of software for embedded systems may now follow a more hospitable development
cycle. The particular method used to create embedded
systems will, in general, fall into one of two paths represented by the two major camps.
On one hand, kernels in silicon from systems such as
RMX-86 or the MSP from Hemenway Corp., Boston,
Mass., for the 68000 or Z8000 are self-contained subsets
of the full operating system. Consequently, software programmers may use the full development version of the
same operating system as that in the eventual target to
create the application package. On the other hand, development of application programs around the ZRTS system
from Zilog Corp., Cupertino, Calif., or Hunter &
Ready's VRTX for the Z8002, iAPX-86 family, or 68000
relies on the use of a separate development system to
create software for the target microprocessor, since this
software does not have development versions.

Two approach.s
The significance of these two approaches as usual depends on the intended application. Hunter & Ready
views VRTX as a set of processor-independent building
blocks that programmers use to construct application
packages for embedded systems. As such, the programmers employ the same development systems that they
might use to build application code, but now with the
benefit of a sophisticated set of ready-made system-software components.
In playing its part in Intel's systematic drive toward

providing an Integrated enVironment around the iAPX86 family, the K0130 holds the anchor position in an
interlocked set of components. Able to function independently of the upper layers of the operating system, it
provides a hardware base for the rest of RMX-86. Serving as a viewport IIlto this system-software base for the
central processing unit, Intel's universal run-time and
development interfaces offer the mechanism for software
portability needed for the next stage in the company's
plan to grow into higher-performance microprocessors,
such as the 186, 286, and 386.
While interlocking with the software in this way, the
80130 also must play its role in the complementary relationships being established at the hardware level. As
such, it includes on-chip hardware support for systemlevel functions, including timers, interrupt controller, bus
control, and bus interface.
Meanwhile, Intel's plan for software-in-silicon becomes
evident as it gathers the other pieces of the puzzle, such
as the 82730 text-coprocessor chip, the 82586 local-network coprocessor, and the 82720 graphics processor
chip. Similar to the 80130 software connection, the 82720
graphics part interlocks with the rest of the system at the
software level through its support of another well-defined
software interface-the virtual device interface. Yet to
come are pieces for voice 1/0 support, as well as some
level of hardware support for data-base access.
0

2-127
Electronics/ March 24, 1983

210341-004

ARTICLE
REPRINT

AR-288

June 1983

Copynght© 1983. CMP PublicatIOns. Inc I 111 E Shore, Rd, Manhasset, NY 11030
Repnnted wIth permission from Electronic Englneenng TImes.

2-128

210341·004

AR-288

Intel's Matchmaking Strategy: Marry
iRMXTM Operating System With Hardware

Intel's major software product, the iRM)(TM-86 I6-bit
operating system, which is now in its fifth release,
represented a three-year development investment which
most independent software vendors would have found a
daunting prospect in 1978 when the project was conceived.
The investment was essential. By the mid-I970s, feedback
from OEMs working with Intel's hardware revealed problems with system integration-the marriage of software
with hardware. It consequently slowed sales, with the
prospect of even greater problems at higher levels of circuit integration. Intel management, looking for ways of
coping with the ballooning software requirements of the
rapidly accelerating hardware program, began stepping up
software development programs in the mid-I970s.

Object-oriented programming is a method which has
worked best in creating a software program blending with
the component approach. By hiding data representation
within an object with its own object manager, changes in
the hardware environment that affect the data can be accommodated without having to change the rest of the
software.

"The RMX program illustrates a number of things one
needs to keep in mind with developing a real-time
operating system;' explained Bill Lattin, Intel's OEM
microcomputer systems manager. "Foundations must be
well laid so the system can grow and evolve over time. And
there is a need for the system to be open to modification
by typical OEM-specific applications.
"Although the RMX program has been around since
1978, it has only recently hit its stride, as processor
technology has advanced to use the full range of its
features;' Lattin said.
The fast-paced microcomputer market had created a new
situation for systems designers in terms of a radical shift
in the hardware/software cost ratio. Earlier hardware
generations involved various expensive centralized
facilities. Not only was software cheap in comparison, but
the hardware environment changed slowly, so that it was
also feasible to rewrite systems as needed.

A price is paid in terms of program size with this approach, however. And it was difficult at the time to justify
this kind of liability with the existing onboard memories
of the 8-bit generation.
Bill Stevens, iRMX-86 program manager for release five,
explained the difficult decisions that had to be made at the
outset of the program. "Every engineering decision
involves a trade-off. We wanted to optimize program productivity and we had to have modularity. The consequence of this was large size. It turned out that a minimum
configuration was 12 kbytes wide and the full configuration was 128 kbytes. At the time we did not have 64k
dynamic RAMs and 64k EPROMs, so we didn't have the
technology to realize the systems of initial specifications
times. Bruce Schafer has to take credit for making that
decision to go ahead anyway, early on. . . it was a gutsy
decision, and it turned out to be absolutely righe'

But when the price of a computer drops to as low as $5,
the hardware environment becomes volatile and software
turns into a major investment. Intel was finding that
customers might invest as much as two-thirds of their
development costs in software, only to see it eclipsed by
evolving VLSI technology.
It became evident that merely supplying components

would become increasingly counterproductive. Thus, the
Intel "total solution" emerged-a consistent systems approach to hardware sales, which naturally depends heavily
on a viable software program.
2-129

210341.004

AR-288
Had Intel known of th~ difficulty it was about to encounter in producing its 64-kbyte RAM, Schafer may have
had second thoughts.

processing aspects of real-time applications required a
special test apparatus to simulate a real-world
environment.

Schafer joined Intel in 1976 and began working on
iRMX-80. "It was a nice little system;' Schafer said. "A
miniature dispatcher had evolved to handle multiple asynchronous events and became a primitive OEM operating
system. It was tempting to do an enlarged version of it,
mainly because I was already working on it for the 16-bit
generation!'

What they came up with is a nucleus executing directly on
the 8086 and 8088 processors as the basic building block
of the system. Together with the next Iayer-a basic I/O
system-a minimal operating system can be configured,
which has been found useful in many applications.

Schafer soon found himself centrally involved in the task
of heading off the 16-bit software crunch, laying groundwork for a system that could cover a wide range of applications, many of them unknown at the time, and a
system which could also evolve with hardware advances.
"When you set out to design a system of that scope, you
don't just sit down and start writing code. It's definitely
a top-down process;' explained Schafer. He discovered
early in the project that the purely technical hurdles in
writing software were minor compared to orchestrating a
team of engineers on such a comprehensive project.
The iRMX-86 system is multi-layered, and the project had
to be coordinated across these layers along with the sequence of planning, design and implementation. On top
of that, a thorough testing program had to be coordinated
with all phases.
"I had a difficult time convincing engineers on the project that documentation of their work was as important
as the work itself. Specifications were absolutely crucial
to the development phase!' said Schafer.
Schafer began with a customer survey to discover the kind
of problems OEMs were experiencing with system design.
He wrote a production implementation plan, which was
critiqued by marketing and engineering personnel. This
was approved in June 1978 and formed the basis for
engineering specifications. A critiquing process evolved as
the organizing principle behind initial product design;
engineers on the project would exchange qocumentation
and then meet to evaluate the progress of the system.
The sessions were lively and the problems of coordinating
implementation, testing and design along with the pressure
of deadlines for the whole progr"ilm generated quite a bit
of excitement.
Development testing turned out to be a particularly thorny problem-the asynchronous interrupts and multiple-

However, it was necessary to develop an application on
the Series-III development system even though the target
was going to be RMX. "We quickly realized that users
want to be able to do development work on the machine
they target on;' said Schafer. "This is particularly important for field maintenance ... you can't drag a Series-III
out to an oil derrick!' To realize this goal, Intel built higher
layers around iRMX so that program development could
be done without a Series-III. Higher layers involve extended I/O and human interface facilities. After this,
customer-written software can be added in high-level
languages.
A major objective has been to provide a stable base for
independent software vendors; with its latest release,
Intel also announced an ISV program initially involving
three major vendors; Microsoft, Digital Research and
Mark Williams Inc.
The first release of iRMX-86 came out in April 1980. Since
then, the system has been refined and released four more
times, with release five al?pearing last December. An Interactive Configuration Utility appeared for the first time
with release five, a further attempt to aid OEMs in putting their systems together. The system designer runs the
ICU program on a terminal and is quizzed on his requirements, after which the program generates the unique
iRMX software for his application.
"It has been a successful product in its own right, apart
from its role in the hardware program, but I doubt that
anyone would have wanted to invest in a three-year
development process before, there was a chance at some
return;' observed Stevens, who has been most excited by
the diverse applications he has seen. "I've really enjoyed
the iRMX symposiums. There is always some new system
demonstrated. In Tokyo, I just saw an 8086-based scientific system with really first-class graphics put together by
Seiko. Another time I saw a blood analyzer based on the
system. There are even RMX-based personal computers!'

2-130
21OM1.Q04

ARTICLE
REPRINT

AR-289

June 1983

21034'-004

Copynghl© 1983 by Techntcal Pubhshmg, a dlVls10n of Dun-Donnelley Publication Corp,
a company of Dun & Bradstreet Corp, Hudson, Mass 01749

2-131

intel·

AR-289

iRMX™ 86 Has Functionality, Configurability

The iRMXTM 86 operating system provides a modular set
of building blocks from which users can create a wide
variety of applications. iRMX 86 features include:
multitasking; interrupt support; multiprogramming support; device independence; tree-structured directories, file
access control; and interactive debugging.
The iRMX 86 operating system combines the concepts of
objects, types, and type extension to form a highlyfunctional and highly-configurable foundation for applications software. The operating system is designed for
use with programs executing on the iAPX 86 and iAPX
88 processors. The 8087 numeric data processor is supported as on option.
Execution Environment
The iRMX 86 Operating System can be used with a variety
of hardware configurations. Interactive disk-based
systems as well as ROM-resident systems can be
constructed.
Any part of the operating system's code can reside in
ROM/PROM memory. Alternatively, ail or part of this
code can be "bootstrapped" into RAM using a small,
configurable bootstrap loader provided with the product.
The application code can similarly be committed to
PROM or bootstrapped into RAM.
The operating system divides the execution envirqnment
into jobs and tasks. A task is described by a set of processor registers, a stack, a priority, and a state. Jobs provide resources for tasks. A job can be viewed as a task
environment. In the simplest case a job represents a
memory pool. Tasks executing in the same lob share the
same pool of memory. When a job is deleted, all tasks
within the job are also deleted and all memory allocated
to these tasks is deallocated.

The design of the iRMX 86 Operating System is based on
a set of objsct types. The operating system supports
dynamic object creation. Each time an object is created,
the operating system allocates the proper resources to the
object and returns a 16-bit virtual address called the object's token. This token is subsequently used by the application to identify the specific object.
By implementing this object-oriented approach, the
iRMX 86 Operating System hides implementation details
from the application software. The iRMX 86 Nucleus also
allows users to add custom object types without changing
the Nucleus.
I/O Devices
I/O devices can be manipulated in two ways. The first approach allows the application to receive interrupts directly
from the I/O device. The second approach utilizes the
iRMX 86 Basic I/O System. With this approach, a device
driver must be written for initiation of I/O requests and
for interrupt handling. The application software interfaces
to these drivers through the Basic 110 System by making
read, write, seek, and special-function requests.
The iRMX 86 Operating System currently includes device
drivers for diskettes, Winchester disks, magnetic bubble
storage devices, and Storage Module Device (SMD)
interfaces.
The iRMX ,6 Extended 110 System defines the concept
of a logical device. Using this feature, each device is
assigned a logical name. Application programs refer to
logical devices without knowing which physical device is
associated witl) each logical device. In this manner, the
physic'al devic~ can be changed without changing the application programs.

The iRMX 86 system is composed of several layers. The
innermost layer is the Nucleus, which provides multitasking, interrupt control, and multiprogramming support.
The first optional layer , the Basic I/O System, supports
device-independence, directories, random access, and file
access control.

The Basic 110 System provides asynchronous 110 functions. Each asynchronous function is initiated by a procedure call that queues the request. The procedure call
returns immediately with an indication of whether the request was successfully queued. When the request is actually completed, a response message is sent to the mailbox
specified.

"On top" of this layer, users may add the Extended I/O
System (providing services such as automatic buffering)
or the Application Loader (which supports loading both
absolute code and locatable code). The Human Interface
uses these inner layers to support user-defined commands
in addition to a set of standard commands.

The Extended I/O System automatically synchronizes I/O
requests. Again, a procedure call is used to initiate 110.
The procedure, however, does not return until the request
is complete. To enhance efficiency when this automatic
synchronization is used, the Extended I/O System permits
read-ahead and write-behind.
210341-004

2-132

AR-289

The iRMX 86 Human Interface automatically parses input lines and invokes the appropriate program based on
the first word in each line. A program executing under the
iRMX 86 Human Interface can request command execution by providing the text for these commands to the command line interpreter.

Scheduling requires changing the state of the task and
placing the task in a queue of ready tasks. Whenever a task
is scheduled or descheduled, the Nucleus checks the ready
queue and allocates the processor to the highest priority
ready task. In order to ensure event-driven scheduling, the
iRMX 86 Nucleus is designed to place an absolute limit on
the interval during which interrupts are masked.
One attribute of the job type is a memory pool. Each
memory pool represents the memory resources available
to the tasks executing within a job. All objects created by
these tasks are allocated memory from the pool.

The iRMX 86 Human Interface is supplied with a basic
set of commands to manipulate files. These commands include directory display, create directory, rename file, copy
file, delete file, and submit a set of commands. Users can
add custom commands to this set.
The iRMX 86 Debugger provides the capability to debug
one or more tasks while the rest of the system continues
to execute. The Debugger allows a user to specify that a
task be suspended when the task executes a particular instruction and when the task communicates with other
tasks.

The iRMX 86 Operating System supports three file types.
In all cases, application programs read and write data
without knowing the device or the file type that is used.
The following file types are supported:

The most general communication mechanism provided by
the iRMX 86 Nucleus is the mailbox object type. Each object of this type is described by two queues-a queue of
messages waiting to be handled by tasks and a queue of
tasks waiting for messages. An additional attribute of a
mailbox is the specification of whether the queue of tasks
is to be handled first-in, first-out or on a relative priority
basis.

2) Stream-Stream files do not exist on actual physical
devices; rather, data is transmitted directly from one program to another.

The iRMX 86 Operating System also provides a
semaphore object type. Each semaphore is described by
a queue of waiting tasks and a unit count. This unit count
is equivalent to a count of empty messages at a mailbox,
but, because no actual messages are involved, a
semaphore is a more efficient mechanism than a mailbox.
Since semaphores allow multiple units to be sent at the
same time, semaphores are used to create deadlock allocation functions.
To provide additional efficiency, the iRMX 86 Nucleus
also provides a special type of semaphore called a region.
Each iRMX 86 task has a dynamic priority attribute. This
priority describes the relative importance of the Task's
function with respect to other system functions. The
iRMX 86 Nucleus always runs the highest priority ready
task. When several tasks of the same priority are ready,
the Nucleus arbitrarily chooses between them.

1) Physical-A device accessed as a physical file is treated
as a contiguous sequence of bytes.

3) Named-Named files represent the traditional notion
of files. Named files are described by a path through a
tree-structured network of directories.
The name of an iRMX 86 file is given as a path through
a tree-structured network of directories. Each directory in
this structure can point directly to data files and to other
directories. One directory on each device is considered the
root directory. All paths on a particular device begin in
this directory.
The basic file functions for all three file types are: open,
close, read, and write. When random file access is required, the seek system call is added to this set. For named files, additional functions are needed. These functions
include the rename function, the truncate function, and
the change-access funcHon.
When a file is opened, the calling program specifies the
type of file access required. For a data file, three types of
access are permitted: read, write, and the read/write combination. The 110 system verifies that the specified access
is available and grants the open request only if the requested access is available.

210361-004

2-133

,.

Translators and Utilities
for Program Development

3

inter
TRANSLATORS AND UTILITIES
FOR PROGRAM DEVELOPMENT
Intel offers an extensive selection of program development tools for its microprocessor (8080, 8086, 8088,
80186, 80286) and microcontroller (8048, 8051, 8096 etc.) families. These tools include translators and
programming utilities such as linkers, relocators, and library managers. These program development tools are
high quality, time tested tools for the professional. Based on a set of well-defined standards, they provide an
integrated development environment. The result is an extremely flexible and prod uctive program development
environment.

A LANGUAGE FOR EVERY NEED
The iAPX-86 family has the most comprehensive set of translators available for a microprocessor. These
include a macro assembler and compilers for PUM, Pascal, FORTRAN, and C (see Table 1). The macro
assembler produces the most optimum code. PL/M is the most popular 8086 language for systems
programming and provides the best of both optimal code and high level language capabilities.
The main advantage of 'C' is portability across different target machines. Pascal and FORTRAN are used
extensively for applications programming. To allow applications to be portable, Pascal and FORTRAN conform
to ISO and ANSI77 standards respectively, with many useful extensions for microprocessor applications.
Intel's microcontrollerfamily (8048, 8051, 8096 etc.) is similarly the best supported in the industry. PUM-51 was
the first high level language ever to be introduced for a microcontroller. The 8096 is similarly supported with
PUM-96. Every microcontroller in the family is supported with an assembler and linkage utilities.

USE A MIXTURE OF LANGUAGES FOR MAXIMUM FLEXIBILITY
Programs are typically decomposed into modules to exploit the many benefits of modular programming. Intel's
integrated programming technology allows different modules of the same program to be programmed in a
variety of languages. For instance, the most performance-sensitive system modules may be coded in assembler
or in PUM. The application modules, on the other hand, can be written in Pascal to speed up programming. The
system and application modules can then be linked into one program using the linker. Hence, the various
modules of a program can each be coded in the most suitable-programming language.

UTILITIES ENHANCE PROGRAMMING PRODUCTIVITY
A set of utilities is provided to support modular and position independent programming. The linkers combine
the constituent modules of a program into one system. A locator is provided to position the code in memory.
This allows code to be placed in appropriate ROM and RAM locations. Also, coding can be done in a
position-independent way. The librarian provides a structured way of organizing frequently used routines. The
routines needed by a particular program can be linked in by the linker. The linker automatically selects only
those modules from the libaray that are needed by the program. For the protected, virtual-memory, and
multi-tasking processor iAPX 286, a sophisticated operating system configuration utility BUILD-286, is
provided.

FULL RANGE OF DEBUG SUPPORT
The programming tools are integrated with the debugging tools via the well-defined Intel object module format
standard. iAPX-86 family programs may be debugged using any of the Intel 8086 debug tools. This includes
PSCOPE which provides source level software debug, and' the ICE products which provide in-target real-time
debug. Microcontroller software is similarly supported by the various emulators and ICE units.

CHOOSE FROM A VARIETY OF HOST CONFIGURATIONS
The programming tools are provided on a variety of development host environments to meet the needs of
different project sizes and development budgets (see Table 1). The environments span personal development
systems (iPDS), stand alone development systems (Series III, Series IV), network development systems
(NDS-II) and even theWAXNMS microcomputer. The programming tools work identically, no matter which of
the available host configuratons is chosen. This allows the user to grow his development environment, as his
needs grow, without impacting previous investment in software.

* VAXNMS is a trademark of Digital Equipment Corporation.

3-1

inter
Table 1. Intel Translator/Host Summary
Language

Component Family

Macro Assembler + Utilities

2920
MCS-85 Family
MCS-48 Family
MCS-51 Family
iACX-96 Family
iAPX-86 Family
iAPX-286 (Protected Mode)

1,2
1
1
1
2
1,2,3,
2,3*

PUM

MCS-85 Family
MCS-51 Family
iACX-96 Family
iAPX-86 Family
iAPX-286 (Protected Mode)

1
1
2*
1,2,3,
2,3*

PASCAL

MCS-85 Family
iAPX-86 Family
iAPX-286 (Protected Mode)

1
2,3
2,3*

FORTRAN

MCS-85 Family
iAPX-86 Family
iAPX-286 (Protected Mode)

1
2
3*

lie"

iAPX-86 Family
iAPX-286 (Protected Mode)

2,3*
2*,3*

Ada

iAPX-86 Family
iAPX-286 (Protected Mode)

3*
3*

NOTE: • = Planned
HOST CODES
1 = Intel 8085 Based Development System (iPDS, MDX Series liE)
2 = Intel iAPX-86 Based Development System (Series III, Series IV)
3 = VAX/VMS Minicomputer

3-2

Host Code

PL/M 80
HIGH LEVEL PROGRAMMING LANGUAGE
• Provides Resident Operation on
Intellec® Microcomputer Development
System and Intellec® Series"
Microcomputer Development Systems

• Speeds Project Completion with
Increased Programmer Productivity

• Produces Relocatable and Linkable
Object Code

• Improves Product Reliability with
Simplified Language and Consequent
Error Reduction

• Cuts Software Development and
Maintenance Costs

• Sophisticated Code Optimization
Reduces Application Memory
Requirements

• Eases Enhancement as System
Capabilities Expand

The PLIM SO High Level Programming Language Intellec Resident Compiler is an advanced, high level programming language for Intel SOSO and SOS5 microprocessors, iSBC-SO OEM computer systems, and Intellec
microcomputer development systems. PL/M has been substantially enhanced since its introduction in 1973
and has become one of the most effective and powerful microprocessor systems implementation tools available. It is easy to learn, facilitates rapid program development and debugging, and significantly reduces maintenance costs. PL/M is an algorithmic language in which program statements naturally express the algorithm
to be programmed, thus freeing programmers to concentrate on system development rather than assembly
language details (such as register allocation, meanings of assembler mnemonics, etc.). The PLIM compiler effiCiently converts free-form PLIM programs into equivalent SOSO/SOS5 instructions. Substantially fewer PLIM
statements are necessary for a given application than would be using assembly language or machine code.
Since PL/M programs are problem oriented and thus more compact, programming in PLIM results in a high
degree of productivity during development efforts, resulting in Significant cost reduction in software development and maintenance for the user.

MAY 1983

© INTEL CORPORATION. 1983 '

ORDER NUMBER:210327-G02

3-3

inter

PLIM 80

FUNCTIONAL DESCRIPTION

Block Structure - aids in utilization of structured programming techniques.

The PUM compi-Ier is an efficient multi phase compi.ler
that accepts source programs, translates them into
object code, and produces requested listings. After
compilation, the object program may be first linked to
other modules, then located to a specific area of memory, and finally executed. The diagram shown-in Figure 1
illustrates a program development cycle where the program consists of three modules: PUM, FORTRAN, and
assembly language. A typical PUM compiler procedure
is shown in Table 1.

Access - provided by high level PUM statements to
hardware resourc.es (interrupt systems, absolute
addresses, CPU input/output ports).
Data Definition - enables complex data structures to
be defined at a high level.
Re-entrant Procedures option.

may be specified as a user

Benefits
PUM is designed to be an efficient, cost-effective solution to the speCial requirements of microcomputer soft~
ware development as illustrated by the following benefits of PUM use:

Features
Major features of the Intel PUM 80 compiler and programming language include:

Low Learning Effort - even for the novice programmer,
because PUM is easy to learn.

Resident Operation - on Intellec microcomputer development systems eliminates the need for a large inhouse computer or costly timesharing system.

Earlier Project Completion - on critical projects,
because PUM substantially increases programmmer
productivity while reducing program development time.

Object Code Generation - of relocatable and linkable
object codes permits PUM program development and
debugging in small modules, which may be easily linked
with other modules and/or library routines to form a
complete application.

Lower Development Cost - because increased programmer productivity requiring less programming
resources for a given function translates into lower software development costs.

Extensive Code Optimization - including compile time
arithmetic, constant sUbscript resolution, and common
subexpression elimination, results in generation of
short, efficient CPU instruction sequences.

Increased Reliability - because of PUM's use of simple
statements in the program algorithm, which are easier
to correct and thus substantially reduce the risk of
costly errors in systems that have already reached full
production status.

Symbolic Debugging - fully supported in the PUM
compiler and ICE-85 in-circuit emulators.

Easier Enhancement and Maintenance - because programs written in PUM are easier to read and easier to
understand than assembly language, and thus are easier to enhance and maintain as system capabilities
expand and future products are developed.

Compile Time Options - includes general listing format commands, symbol table listing, cross reference
listing, and "innerlist" of generated assembly language
instructions.

I

Figure 1_ Program Development Cycle Block Diagram

3-4

AFN-008188

PUM 80
ging software for 8080 and 8085 microcomputers, and
the use of expensive (and remote) timesharing or large
computers is consequently not required.

Simpler Project Development - because the Intellec
microcomputer development system with resident
PUM 80 is all that is needed for developing and debug·

Table 1. PUM·80 Compiler Sample Factorial Generator Procedure

$OBJECT(:F1 :FACT.OB2)
$DEBUG
$XREF
$TITLE('FACTORIAL GENERATOR $PAGEWIDTH(80)

PROCEDURE')

FACT:
DO;
2

DECLARE NUMCH BYTE PUBLIC;

3
4
5
6

1
2
2
2

FACTORIAL: PROCEDURE (NUM,PTR) PUBLIC;
DECLARE NUM BYTE, PTR ADDRESS;
DECLARE DIGITS BASED PTR (161) BYTE;
DECLARE (I,C,M) BYTE;

7
10
11
12
13
14
15

2
2
3
3
4
4
4
4

NUMCH = 1; DIGITS(1)= 1;
DO M = 1 TO NUM;
C=O;
DO 1=1 TO NUMCH;
DIGITS(I) = DIGITS(I)*M + C;
C= DIGITS(I)/10;
DIGITS(I)= DIGITS(I) - 10*C;
END;

16
17
18
20
21
22

3
3
4
4
4
4

IF C<>O THEN
DO;
NUMCH = NUMCH + 1; DIGITS(NUMCH) = C;
C= DIGITS(NUMCH)/10;
DIGITS(NUMCH)= DIGITS(NUMCH) - 10*C;
END
END;

24

2

9

END FACTORIAL;

25

END;

SPECIFICATIONS
OPERATING ENVIRONMENT

DOCUMENTATION

Intel Microcomputer Development Systems
(Series II, Series III, Series IV)
Intel Personal Development System

PLiM 80 Programming Manual
ISIS-II PL/M 80 Compiler Operator's Manual

ORDERING INFORMATION

SUPPORT:

Product Code
MDS *-PLM

Hotline Telephone Support. Software Performance
Report (SPR), Software Updates. Technical Reports. and
Monthly Technical NeWSletters are available.

Description
PLiM 80 High Level Language
Compiler. Needs Software License.

*MDS is an ordering code only and is not used as a product or trademark MDS@ is a registered trademark of Mohawk Data Sciences
Corporation.

3-5

AFN·00818B

FORTRAN 80
8080/8085 ANS FORTRAN 77
INTELLEC® RESIDENT COMPILER
• Meets ANS FORTRAN 77
Subset Language Specification plus
adds Intel~ microprocessor extensions

• Supports full symbolic debugging with
ICE-SOTM and ICE-S5™
• Produces relocatable and linkable
object code compatible with resident
PL/M SO and SOSO/SOS5 Macro
Assembler

• Supports Intel Floating Point
Standard with the FORTRAN 80 software routines, the iSBC-310™ High
Speed Mathematics Board, or the
iSBC-332™ math multimodule

• Provides optional run-time library to
execute in RMX-SOTM environment

• Executes on Intellec Microcomputer
Development System, Intellec Series
" Microcomputer Development System,
, and Personal Development System

• Has well defined I/O interface for
configuration with user-supplied
drivers

FORTRAN 80 is a computer industry-standard. high-level programming language and compiler that translates FORTRAN
statements into relocatable object modules, When the object modules are linked together and located into absolute
program modules. they are suitable for execution on Intel 8080/8085 Microprocessors. iSBC-~O OEM Computer Systems.
Intellec Microcomputer Development Systems and Personal Development Systems, FORTRAN 80 meets the ANS
FORTRAN 77 Language Subset Specification1 , In addition. extensions designed specifically for microprocessor applications are inc,luded. The compiler operates on the Intellec Microcomputer Development System and Personal Development
System under the ISIS-II Disk Operating Systems and produces efficient relocatable object modules that are compatible
for linkage with PL/M 80 and 8080/8085 Macro Assembler modules,
The ANS FORTRAN 77 language specification offers many powerful extensions to the FORTRAN language that are
, especially well suited to Intel 808018085 Microprocessor software development. Because FORTRAN 80 conforms to
the ANS FORTRAN 77 standard. the user is assured of compatibility with existing FORTRAN software that meets the
standard as well as a guarantee of upward compatibility to other computer systems supporting an ANS FORTRAN 77
Compiler.
1ANSI X3J3190

MAY 1983

(9INTEL CORPORATION. 1983

ORDER NUMBER:40061o-001

3-6

intJ

FORTRAN 80
• The INCLUDE control permits specified source
files to be combined into a compilation unit at compile lime.

FORTRAN 80 LANGUAGE FEATURES
Major ANS FORTRAN 77 features supported by the Intel
FORTRAN 80 Programming Language include:
• Structured Programming is supported with the IF ...
THEN ... ELSE IF ... ELSE ... END IF constructs.

• Transparent Interface for software and hardware
floating pOint support, allowing either to be chosen
at time of linking.

• CHARACTER data type permits alphanumeric data
to be handled as strings rather than characters
stored in array elements.
• Full 1/0 capabilities include:
Sequential and Direct Access files
Error handling facilities
Formatted, Free-formatted, and Unformatted
data representation
Internal (in-memory) file units provide capability to format and reformat data in internal
memory buffers
List Di rected Formatting
• Supports arrays of up to seven dimensions.
• Supports logical operators
.EOV.
- Logical equivalence
.NEOV. - Logical nonequivalence
Major extensions to FORTRAN 77 in Intel FORTRAN-80
Include:
• Direct 8080/8085 port 1/0 supported by intrinsic
subroutines.
• Binary and Hexadecimal integer constants.
• Well defined interface to FORTRAN-80 1/0 statements (READ, OPEN, etc.), allowing easy use of
user-supplied 1/0 drivers.
• User-defined INTEGER storage lengths of 1, 2 or 4
bytes.
• User-defined LOGICAL storage lengths of 1, 2 or 4
bytes.
• REAL STORAGE lengths of 4 bytes.
• Bitwise Boolean operations using logical operators
on integer values.
• Hollerith data constants.
• Implicit extension of the length of an integer or
logical expression to the length of the left-hand
side in an assignment statement.
• A format descriptor to suppress carriage return on
a terminal output device at the end of the record.

FORTRAN 80 BENEFITS
FORTRAN 80 provides a means of developing application software for Intel MCS-80/85 products in a
familiar, widely accepted, and computer Industrystandardized programming language. FORTRAN 80 will
greatly enhance the user's ability to provide costeffective solutions to software development for Intel
microprocessors as illustrated by the following:
• Completely Complementary to Existing Intel Software Design Tools - Object modules are linkable
with new or existing Assembly Language and PUM
Modules.
• Incremental Runtime Library Support - Runtime
overhead is limited only to facilities required by the
program.
• Low Learning Effort - FORTRAN 80, like PUM, Is
easy to learn and use. Existing FORTRAN software
can be ported to FORTRAN 80, and programs
developed in FORTRAN 80 can be run on any other
computer with ANS FORTRAN 77.
• Earlier Project Completion - Critical projects are
completed earlier than otherwise possible because
FORTRAN 80 will substantially increase programmer productivity, and is complementary to PUM
Modules by providing comprehensive arithmetic,
I/O formatting, and data management support in
the language.
• Lower Development Cost - Increases in programmer productivity translates into lower software
development costs because less programming
resources are required for a given function.
• Increased Reliability - The nature of high-level
languages, including FORTAN 80, IS that they lend
themselves to simple statements of the program
algorithm. This substantially reduces the risk of
costly errors in systems that have already reached
production status.
• Easier Enhancements and Maintenance - Like
PUM, program modules written in FORTRAN 80 are
easier to read and understand than assembly
language. This means it is easier to enhance and
maintain FORTRAN 80 programs as system
capabilities expand and future prod\lcts are
developed.

FORTRAN 80 COMPILER FEATURES
• Supports multiple compilation units in single
source file.
.
• Optional Assembly Language code listing.
• Comprehensive cross-reference, symbol attribute
and error listing.
• Compiler controls and directives are compatible
with other Intel language translators.
•
•
•
•

• Comprehensive, Yet Simple Project Development The Intellec Microcomputer Development System
and Personal Development System, with the
8080/8085 Macro Assembler, PL/M 80 and FORTRAN
80 are the most comprehensive software design
facilities available for the Intel MCS-80/85 Microprocessor family. This reduces development time and
cost because expentive (and remote) timesharing or
large computers are not required.

Optional Reentrancy.
User-defined default storage lengths.
Optional FORTRAN 66 Do Loop semantics.
Source files may be prepared in free format.

3-7

AFN-00241C

FORTRAN 80
SAMPLE FORTRAN·aO SOURCE PROGRAM
LISTING

•
•

•• THIS PROGRAM IS AN EXAMPLE OF ISIS-II FORTRAN-80 THAT
•• ,CONVERTS TEMPERATURE BETWEEN CELSIUS AND FARENHEIT
PROGRAM CONVRT
CHARACTER·1 CHOICE, SCALE
PRINT 100
•• ENTER CONVERSION SCALE (C OR F)
PRINT 200
READ (5,300) SCALE

•
10

IF (SCALE ,EQ. 'C')
THEN,
PRINT 400
•• ENTER THE NUMBER OF DEGREES FARENHEIT
READ (5,.) DEGF
DEGC = 5./9 .• (DEGF-32)
•• PRINT THE ANSWER
WRITE (6,500) DEGF,DEGC
•• RUN AGAIN?
PRINT 600
READ (5,300) CHOICE
IF (CHOICE .EQ. 'Y')
+
THEN
GOTO 10
ELSE IF (CHOICE .EQ. 'N')
+
THEN
CALL EXIT
ELSE
GOTO 20
END IF
ELSE IF (SCALE .EQ. 'F')
+
THEN
-- CONVERT FROM FARgNHEIT TO CELSIUS
PRINT 100
,
READ (5,-) DEGC
DEGF = 9./5.-DEGC+32.
-. PRINT THE ANSWER
WRITE (6,800) DEGC,DEGF
GOTO 20
ELSE
•• NOT A VALID ENTRY FOR THE SCALE
WRITE (6,900) SCALE
GOTO 10
END IF
FORMAT(' TEMPERATURE CONVERSION PROGRAM',II,
+' TYPE C FOR FARENHEIT TO CELSIUS OR' ,I,
+' TYPE F FOR CELSIUS TO FARENHEIT',II)
FORMAT(/,' CONVERSION? ',$)
FORMAT (A 1)
FORMAT(/,'ENTER DEGREES FARENHEIT: ',$)
FORMAT(/,F1.2, DEGREES FARENHEIT = ',F1.2,' DEGREES CELSIUS')
FORMAT(/,' AGAIN (Y OR N)? ',$)
FORMAT(/,' ENTER DEGREES CELSIUS: ',$)
FORMAT(/,F1.2,' DEGREES CELSIUS = ',F1.2,' DEGREES FARENHEIT' ,I)
FORMAT(/,1H ,A1,' NOT A VALID CHOICE - TRY AGAIN I , ,I)
END
'
+

•
•
•
20

-

-

-

100
200
300
400
500
600
100
800
900

3-8

intJ

FORTRAN 80

The FORTRAN 80 Compiler is an efficient, multi phase compiler that accepts source programs, translates them into
relocatable object code, and produces requested listings. After compilation, the object program may be linked to other
modules, located to a specific area of memory,. then executed. The diagram shown below illustrates a program devel·
opment cycle where the program consists of modules created by FORTRAN 80, PUM 80 and the 808018085 Macro
.
Assembler.

ISI5-11
LOADER

ISIS·II
TEXT
EDITOR

FORTRANBO
SOURCE

DEBUG
VIA
MONITOR

ISIS·II

PUMBO
SOURCE

TEXT
EDITOR

LOCATE

DPTIONAL
ICE-IO™
ICE-I5™
IN·CIRCUIT
EMULATOR
ISI5-11
TEXT
EDITOR

ASSEMBLY
LANGUAGE
SOURCE

RELOCATABLE
OBJECT
MODULE

PROM
PROGRAMMER

SPECIFICATIONS

DOCUMENTATION PACKAGE

OPERATING ENVIRONMENT

FORTRAN-SO Programming Manual

Required Hardware:

ISIS-II FORTRAN-SO Compiler Operator's Manual

•1.

Intel Microcomputer Development Systems
-MDS-800 and Series II

FORTRAN-SO Programming Reference Card

or
2. Personal Development System

ORDERING INFORMATION
PART NO.

DESCRIPTION

Model MDS-301

FORTRAN 80 Compiler for
Intellec Microcomputer Development Systems

SUPPORT
Intel offers several levels of support for this product
which are explained in detail in the price list. Please
consult the price list for a description of the support
options available.

Requires Software License.
*MDS is an ordering code only and is not used as a product name or trademark. MDS is a registered trademark of
Mohawk Data SCiences Corporation.

3-9

AFN·OO2<1C

MICROSOFT*~

INC. MACRO-80 UT,ILITY
SOFTWARE PACKAGE

• Includes the MACRO-SO macro
assembler, LINK-SO linking loader, and
CREF-SO cross-reference facility

• Assembly rate of over 1000 lines per
minute
• Provides "big computer"
assembler
I
features without sacrificing speed or
memory space

• Supports a complete, Intel-standard
MACRO facility, including IRP, IRPC,
REPEAT, local variables, and EXITM

• Provides a complete set of listing
controls

• Supports conditional assembly,
including testing of assembly pass,
, symbol definition, and parameters to
MACROs

• LINK-SO loads relocatable modules at
user-specified locations
• CREF-SO cross-reference facility
alphabetizes program variables and
shows where each is defined and
referenced

• Code is assembled in relocatable
modules for easy manipulation by the
LINK-SO linking loader

The Microsoft Utility Software Package is a complete system for developing assembly language programs,
routines, and subroutines. The Utility Software Package includes the MACRO-80 macro assembler, the LlNK-80
linking loader, and the CREF-80 cross-reference facility. The CP/M' version also includes the LlB-80 Library
Manager.
The Utility Software Package is supplied with all Microsoft compiiers to provide assembly language subroutine
support to main programs in the high-level programming languages. The LlNK-80 linking loader is used
by all Microsoft compilers for linking and loading compiled relocatable modules. Thus, LlNK-80 allows the
programmer to link together relocatable modules from different Microsoft languages.

FEATURES
MACRO-SO Macro Assembler

More MACR0-80 features:

MACRO-80 incorporates almost all "big computer"
assembler features without sacrificing speed or
memory space. The assembler supports a complete,
Intel-standard macro facility, including IRP, IRPC,
REPEAT, local variables, and EXITM. Macro names
take precedence over instruction mnemonics and
pseudo operations. Nesting of macros is limited only
by memory. Code is assembled in relocatable
modules that are easily manipulated with the flexible
linking loader. Conditional assembly capability is
greatly enhanced by an expanded set of conditional .
pseudo operations that include testing of assembly
pass, symbol definition, and parameters to macros.
Conditionals may be nested up to 255 levels.

© INTEL CORPORATION, 1983

3-10

-Comment blocks
-Variable input radix from base 2 to base 16
-Octal or hex listings
-INCLUDE statement assembles an alternate
source file into the current program
-PRINTX statement for printing assembly or
diagnostic messages
-PHASE/DEPHASE statements allow code to
reside'in one area of memory but execute in
another
-Complete set of listing controls

MAY 1983

ORDER NUMBER:210243-003

inter

MICROSOFT, INC.
MACRO-aO UTILITY

LlNK-ao linking Loader

CREF-ao Cross-Reference Faclllt~

With LINK-SO, any number of programs may be
loaded with one command, relocatable modules may
be loaded in user-specified locations, and external
references between modules are resolved automatically by the loader. The loader also performs library
searches for system subroutines and generates a
memory load map showing the locations of the main
program and subroutines.

The Cross-Reference Facility that is included with the
Utility Software Package supplies a convenient alphabetic list of all program variable names, along
with line numbers where they are referenced and
defined.

SPECIFICATIONS
Operating Environment

Required Software

MACRO-SO resides in approximately 19K bytes of
memory. LlNK-80 resides in approximately 14K bytes
of memory. CREF-SO requires about 6K bytes. The
MACRO-SO Utility Software Package is compatible
with the CP/M" operating system.

CP/M Operating System or MP/M-U* Operating
System.

Required Hardware

One copy of each manual is supplied with the
software package.

Documentation Package

Intellec® Microcomputer Development System
-iPDS (Personal Development System)
-minimum of 1 diskette drive

Description
Microsoft Utility Software Manual

ORDERING INFORMATION
Order Code

SD106CPMSOF

Description

Microsoft MACRO-SO Utility Software Package. CP/M v~rsion (iPDS Format)

SUPPORT:
Intel offers several levels of support for this product, depending on the system configuration in which it is used.
Please consult the price list for a detailed description of the support options available.
An Intel Software License reqUired.
"Microsoft is a trademark of Microsoft. Inc.
"CP/M is a registered trademark of Digital Research. Inc.
"MP/M-II is a trademark of Digital Research. Inc.

3-11

AFN·0208SC

MICROSOFT*, INC. BASIC-SO INTERPRETER
SOFTWARE PACKAGE
'
Ii Meets the requirements for the ANSI

• Compatible with other Microsoft BASIC
compilers and interpreters

subset standard for BASIC, and
supports many enhancem~nts

• Sophisticated string handling and
structured programming features for
applications development

• Extensive text edIting features built-in
• Automatic line number generation and
renumbering

• Direct transfer of BASIC programs to
the 8085, 8086 and 8088

• Supports assembly language
subroutine calls

• Random and sequential file
manipulation where random file record
length is user-definable

• Trace facilities for easier debugging

• Read or write memory location
capabilities
BASIC Release 5.0 from Microsoft is an extensive implementation of BASIC. Microsoft BASIC gives users what
they want from a BASIC-ease of use plus the features that are comparable to a minicomputer or large
mainframe.
BASIC-80 meets the requirements for the ANSI subset standard for BASIC, as set forth in document BSRX3.601978. It supports many unique features rarely found in other BASICs.

FEATURES
-Four variable types: Integer (-32768, +32767),
String (up to 255 characters), Single-Precision
Floating Point (7 digits), Double-Precision
Floating Point (16 digits).

-Formatted output using the PRINT USING facility,
including asterisk fill, floating dollar sign,
scientific notation, trailing sign, and comma
insertion.

-Trace facilities (TRON/TROFF) for easier
debugging.

-Direct acCess to I/O ports with the INP and OUT
functions.

-Error trapping l:lsing the ON ERROR GOTO
statement.

-Extensive program editing facilities via EDIT
command and EDIT mode subcommands.

-PEEK and POKE statements to read or write any
memory location.

-Assembly language subroutine calls (up to 10 per
program) are supported.

-Automatic line number generation and
renumbering, including reference line numbers.

-IF/THEN/ELSE and nested IF/THEN/ELSE
constructs.

-Matrices with up to' 255 dimensions.

-Supports variable-length random and sequential
disk files with a complete set of file manipulation
statements: OPEN, CLOSE, GET, pur, KILL,
NAME, MERGE.

-Boolean operators OR, AND, NOT, XOR, EQV,
IMP.

MAY 1983
©INTEL CORPORATION. 1983.

AFN-02086C

3-12

inter

MICROSOFT, INC.
BASIC-80 INTERPRETER

Arithmetic Functions

BASIC-80 Commands, Statements,
Functions
AUTO'
LIST
NULL
TROFF
CLEAR
LOAD

RENUM
WIDTH
CONT
MERGE
RUN
DELETE

RANDOMIZE
COMMON
DEF FN
ERROR
POKE
, RESUME
SWAP
DEFDBL
DEFSTR
DEFSNG
DEFINT

LOG
FIX
COS
RND
TAN

String Functions

Program Statements
CALL
GOSUB
END
GOTO
STOP
WHILE/
WEND
CHAIN
DEF USR
LET
REM

SIN
CDBL
CSNG
CINT
SOR

ABS
INT
SGN
ATN
EXP

NAME
SAVE
EDIT
NEW
TRON

ASC
LEN
STRING$
CHR$
LEFT$

RETURN
WAIT
ON GOSUB
DIM
FOR/NEXT/
STEP
IF/THEN/
ELSE
ON ERROR
GOTO
OPTION BASE

INSTR
RIGHT$
MID$
SPACES

STR$
HEX$
OCT$
VAL

Operators
II

<=

<
>

<>

XOR
NOT
EOV
MOD
IMP
OR
AND

+
\

>=

Input/Output Statements and Functions
CLOSE
KILL
OUT
RESTORE
READ
TAB
DATA
LINE
INPUT
PRINT
WRITE
LPRINT

GET
POS
FIELD
LSET/RSET
PRINT
USING
LOC
MKI$
MKS$
MKD$
LLiST
LPOS

NAME
PUT
EOF
SPC
INKEY$
INPUT
OPEN
CVD
CVI
CVS

Special Functions
ERL
USR

VARPTR
PEEK

ERR
FRE

SPECIFICATIONS
Operating Environment

Required Software

The standard disk version of Microsoft BASIC-80
occupies 24K bytes of memory. Microsoft BASIC-80
Interpreter is compatible with Intel's ISIS operating
system or CP/M" operating system.

ISIS Operating System or CP/M Operating System.

Documentation Package
Required Hardware.

One copy of each manual is supplied with the
software package.

Intellec Microcomputer Development System
-iPDS (Personal Development System)
-minimum of 1 diskette drive

Description
BASIC-SO Reference Manual
BASIC Reference Book

3-13

AFN·02086C

MICROSOFT, INC.
BASIC-80 INTERPRETER
ORDERING INFORMATION
Order Code

Description

SD102CPM80F

Microsoft BASIC-BO Interpreter Software Package, CP/M version (Double-Sided,
Double Density 5W Floppy) iPDS format

SD1021SS80F

Microsoft BASIC-80 Interpreter Software Package, ISIS version (Double-Sided,
Double Density 5W Floppy) iPDS format

SUPPORT
Int~1 offers several levels of support for this product,
depending on the system configuration in which it is
used. Please consult the price list for a detailed
description of the support options available.

An Inlel Software License required.
'MIcrosoft IS a trademark of Microsoft, Inc.
'CP/M is a regIstered trademark of Digital Research, Inc.
'MP/M-II is a trademark of DIgital Research, Inc.

3-14

AFN-Q2086C

MICROSOFT*, INC. PASCAL-80
SOFTWARE PACKAGE
• Native code compiler with language
extensions designed for system
software implementation

• Assembly language routines callable
from PASCAL programs
• Global optimizer produces compact,
fast compiled code

• Meets current ISO draft standard
• Fully portable, with machineindependent front end

• Three levels of implementation- •
standard, extended and system
-to conform to different levels of
standardization and levels of machine
interface

• Can replace assembly language for
most system software programming
tasks

A critical need is emerging for more and more software "tools"-compilers, jnterpreters, operating systems,
database managers, and dedicated application programs. The demand for system software with ashor!
development time and a long lifespan is rapidly making assembly language impractical: As a result, the trend in
system software is toward a new "tool maker"-a system-oriented language.
Microsoft Pascal-SO is a high-level language compiler specifically designed for microprocessor system
software implementation. The language is ISO-standard Pascal, with the addition of many system-oriented
extensions. The compiler includes a global optimizer and modular code generator identical to other Microsoft
Pascal products.
With Pascal-SO, system software is highly readable, modular, and transportable. Plus, Pascal's clean block
structure and procedure orientation make system programming more efficient than with assembly language.

FEATURES

THE PASCAL-80 COMPILER
DESCRIPTION

Pascal-SO was designed to generate state-of-the-art
compact system software. Many extensions have
been made to the language that not only adapt it to
system programming, but make it easier to use in any
application ..
-Expanded string support with variable-size
LSTRING type
-UNITS and USES interfaces for clean separate
compilation
-Machine-oriented WORD type and operators
-Dynamic and conform ant arrays using SUPER
array types
-Attributes for variables and procedures
-Machine address types and operators
All the enhancements to Pascal:SO are natural extensions of the existing language. Care has been taken
to maintain the structured nature of Pascal while
assimilating new features. Many low-level escapes
have also been provided, such as direct access to
memory locations, calls to assembly language subroutines, and a RETYPE function.

©INTELCORtORATION,1983

3-15

The compiler operates in three phases. The front-end
phase translates the source into an intermediate
form and does all error checking and listing generation. The global optimizer phase analyzes the intermediate code and does constant folding, common
subexpression elimination, strength reduction, and
other optimizations. The code generator phase
translates the intermediate code into relocatable object code and does register allocation and peephole
optimizations. All phases are written in Pascal.
The runtime system handles program initialization
and termination, runtime error reporting, floating
point arithmetic, string handling, set operations,
dynamic variable allocation, input/output interfacing
to the operating system, and low-level utility
routines. Pascal-SO is designed to interface easily to
operating system and floating point packages.
Pasca1-S0 uses Microsoft's Linking Loader which allows independent code and data segment Iqcation,

MAY 1983

ORDER NO: 2102_

MICROSOFT, INC.
PASCAL-80

library searching, global memory maps, and combination of Pascal-SO output with the output of
Microsoft's other compilers and assembler.

-Attributes can be given to variables and
procedures:
Variables: STATIC READONLY PORT
Procedures: INTERRUPT PURE
Either: PUBLIC EXTERN ORIGIN.

Language Description
OPERATORS AND INTRINSICS

The Pascal-80 language is organized into three levels
(Standard, Extended, and System) based on the
degree of portability provided. Standard level includes all features in the pending ISO standard
DP7185. Standard level also contains the metalanguage, which controls error checking, listing format, and other options. Programs using only
Standard level are portable across all Pascals that
conform to the standard.

-Bitwise AND, OR, and NOT on WORDs and
INTEGERs
-String constants can be concatenated with "*"
-String-oriented intrinsics:
STRING/LSTRING: POSITN SCAN EO SCANNE
LSTRING only: CONCAT INSERT DELETE
-Standard library includes 19 more routines
-FORTRAN library includes 17 more REAL
functions
-Extended instrinsic procedures and functions:
LOWER, UPPER get bounds of array, set,
subrange
.
ABORT invokes runtime error handler
SIZEOF returns size of variable in bytes

MicrosoFT's extensions to Pascal appear in the Extended level and the System level. The Extended level
contains high-level features that are natural to Pascal and are machine independent. Programs using
only Standard and Extended levels are portable
across Microsoft Pascal target machines. The System level contains 10w~level extensions that provide
an escape from Pascal restrictions or are machine
dependent.

CONTROL FLOW AND STRUCTURE

-CONST, TYPE, VAR, VALUE sections in any order
-MODULE source' file for separate compilation

Standard Level Features
INPUT/OUTPUT AND FILES

-READ enumerated, pointer, BOOLEAN, STRING,
LSTRING
-WRITE enumerated, pOinter, LSTRING
-READ and WRITE for hexadecimal, octal and
binary
-Negative field width justifies left instead of right
-Temporary files, file name created automatically
-ASSIGN and CLOSE procedures
--FILEMODES type, access with file.MODE
-Error trapping, access with file.TRAP and
file.ERRS

LISTING INFORMATION

-Object listing shows generated code, with line
numbers.
METALANGUAGE DIRECTIVES

-7 directives control specific runtime error checks.

Extended Level Features
DATA TYPES AND MODES

-Numeric constants in hexadecimal, octal, or
binary
-BYTE/WORD types for S/16-bit unsigned
operations
-SUPER array types permit passing any size array
to a procedure or allocating any size array on
the heap
-LSTRING type provides variable-length array of
characters; current length access with Istring.
LEN
-STRING and LSTRING predeclared super array
types
-CONST parameter type passes long constant by
reference
-Functions can return arrays, records, or sets

3-16

SYSTEM LEVEL FEATURES

-Record types can give explicit byte offset to
fields
-All file types identical to special FCBFOO record
type
-System intrinsic byte movers: MOVEL MOVER
FILLC
-Address types permit low-level machine access
ADR OF type declares address (all ADRs
compatible)
ADR prefix operator gets variable or constant
address
adr. R gives WORD address value, adr gives
data at address

AFN-02093C

MICROSOFT, INC
PASCAL·80

Utility Software Package

LINK-SO linking loader, and the CREF-SO CrossReference Facility. Refer to the description of the
Microsoft Utility Software Package for full details.

The PASCAL-SO package includes the Microsoft
Utility Software Package. The Utility Software Package includes the MACRO-SO macro assembler, the

SPECIFICATIONS
Operating Environment

Required Software

The Pascal compiler running under CP/M resides in
approximately 40K bytes of memory and requires an
additionalSK byte minimum (or4BK bytes minimum)
plus symbol table space when compiling. '

CP/M* Operating System or MP/M-II* Operating
System.

Documentation Package
Required Hardware

One copy of each manual is provided with the
software package.

Intellec Microcomputer Development System
-iPDS (Personal Development System)
-minimum of 1 diskette drive

Description

PASCAL-SO Reference Manual
Microsoft Utility Software Manual

ORDERING INFORMATION
Description

Order Code

SD105CPMSOF

Microsoft Pascal-SO Software Package, CP/M version (iPDS Format)

SUPPORT
Intel offers several levels of support for this product,
depending on the system configuration in which it is
used. Please consult the price list for a detailed
description of the support options available.

An Intel Software License required
'Microsoft is a trademark of Microsoft, Inc.
'CP/M IS a registered trademark of Digital Research, Inc.
'MP/M-II IS a trademark of Digital Research. Inc

3-17

AFN·02093C

iAPX 86,88
SOFTWARE DEVELOPMENT PACKAGES
FOR SERIES II/PDS
• PLIM 86/88 High L.:evel Programming
Language
• ASM 86/88 Macro Assembler for
iAPX 86,88 Assembly Language
Programming
• LINK 86/88 and LOC 86/88 Linkage and
Relocation Utilities

• CONY 86/88 Converter for Conversion
of 8080/8085 Assembly Language
Source Code to iAPX 86, 88 Assembly
Language Source Code
• OH 86/88 Object-to-Hexadecimal
Converter
• LIB 86/88 Library Manager

. The iAPX 86,88 Software Development Packages for Series II provide a set of software development tools for
the iAPX 86/88 CPUs and the iSBC 86/12A single board computer. The packages operate under the ISIS-II
operating system on Intel Microcomputer Development Systems-Model 800, Series II or the Personal Development System (PDS)-thus minimizing requirements for additional hardware or training for Intel Microcomputer Develbpment System users.
These packages permit 8080/8085 users to efficiently upgrade existing programs into iAPX 86/88 code from
either 8080/8085 assembly language source code or PLIM 80 source code.
For the new Intel Microcomputer Development System user, the packages operating on a PDS or an Intellec
Series II, such as a Model 235, provide total iAPX 86,88 software development capability.

© INTEL CORPORATION. 1983

MAY 1983

3-18

AFN·01239E

inter

iAPX 86,88 SOFTWARE DEVELOPMENT PACKAGES FOR SERIES II/PDS

PUM 86/88 COMPILER
FOR SERIES II/PDS
• Language is Upward Compatible from
PUM 80, Assuring MCS®-80/85 Design
Portability

• Produces Relocatable Object Code
Which is Linkable to All Other 8086
Object Modules

• Supports 16-blt Signed Integer and
32-blt Floating Point Arithmetic in
Accordance with IEEE Proposed
Standard

• Supports Full Extended Addressing
Features of the iAPX 86/10 and 88/10
Microprocessors (Up to 1 Mbyte)

• Easy-to-Learn, Block-Structured
Language Encourages Program
Modularity

• Code Optimization Assures Efficient
Code Generation and Minimum
Application Memory Utilization

Like its counterpart for MCS-80/85 program development, PL/M 86/88 is an advanced, structured high-level
programming language. The PL/M 86/88 compiler was created specifically for performing software development for the Intel iAPX 86,88 Microprocessors.
PL/M 86/88 has significant new capabilities over PL/M 80 that take advantage of the new facilities provided by
the iAPX 86,88 microsystem, yet the PL/M 86/88 language remains compatible witli PL/M 80.
With the exception of hardware-dependent modules, such as interrupt handlers, PL/M 80 applications may be
recompiled with PL/M 86/88 with little r,eeed for modification. PL/M 86/88, like PL/M 80, is easy to learn,
facilitates rapid program development, and reduces program mai~tenance costs.
PLIM is a powerful, structured, high-level system implementation language in which program statements can
naturally express the program algorithm. This frees the programmer to concentrate on the logic of the
program without concern for burdensome details of machine or assembly language programming (such as
register allocation, meanings of assembler mnemonics, etc.).
The PLIM 86/88 compiler efficiently converts free-form PL/M language statements into equivalent 86/88
machine instructions. Substantially fewer PLIM statements are necessary for a given application than if it were
programmed at the assembly language or machine code level.
The use of PLIM high-level language for system programming, instead of assembly language, results in a high
degree of engineering productivity during project development. This translates Into significant reductions in
initial software development and follow-on maintenance costs for the user

FEATURES

structure allows the use of REENTRANT which is
especially useful in system design.

Major features of the Intel PLIM 86/88 compiler and
programming language include:

Language Compatibility

Block Structure

PL/M 86/88 object modules are compatible with object modules generated by all other 86/88 translators.
This means that PLIM programs may be linked to
programs written in any other 86/88 language.

PLIM source code is developed in a series of modules, procedures, and blocks. Encouraging program
modularity in this manner makes programs more
readable, and easier to maintain and debug. The
language becomes more flexible by clearly defining
the scope of user variables (local to a private procedure, global to a public module, for example).

Object modules are compatible with ICE-88 and
ICE-86 units; DEBUG compiler control provides the
In-Circuit Emulators with symbolic debugging
capabilities.
PLIM 86/88 Language is upward-compatible with
PL/M 80, so that application programs may be easily
ported to run on the iAPX 86 or 88.

The use of procedures to break down a large problem is paramount to productive software development. The PL/M 86/88 implementation of a block
3-19

AFN·01239E

inter

iAPX 86,88 SOFTWARE DEVELOPMENT PACKAGES FOR SERIES II/PDS

Supports Five Data Types

Interrupt Handling

PUM makes use of five data types for various applications. These data types range from 'one to four
bytes, and facilitate various arithmetic, logic, and
addressing functions:

PUM has the facility for generating interrupts to
the iAPX 86 or 88 via software. A procedure may be
defined with the INTERRUPT attribute, and the
compiler will automatically initialize an interrupt
vector at the appropriate memory location. The
compiler will also generate code to same and restore the processor status', for execution of the
user-defined interrupt handler routine. The procedure SET$INTERRUPT, the function retuning
an INTERRUPT$PTR, and the PL/M statement
CAUSE$INTERRUPT all add flexibility to user programs involving interrupt handling.

-Byte:
-Word:
-Integer:
-Real:
-Pointer:

8-bit unsigned number
16-bit unsigned number
i6-bit signed number
32-bit floating point number
16-bit or 32-bit memory address
indicator

Another powerful facility allows the use of BASED
variables that map more than one variable to the
same memory location. This is especially useful for
passing parameters, relative and absolute addressing, and memory allocation.

Two Data Structuring Facilities
In addition to the five data types and based variables,
PL/M supports two data structuring facilities. These
add flexibility to the referencing of data stored in
large. groups.
-Array:
-Structure:

Indexed list of same type data
elements
Named collection of same or different type data elements

-Combinations
of Each:
Arrays of structures or
structures of arrays

8087 Numerics Support
PUM programs that use 32-bit REAL data may be
executed using the Numeric Data Processor for improved performance. All floating-point operations
supported by PUM may be executed on the 8087
NDP, or the 8087 Emulator (a software module)
provided with the package. Determination of use of
the chip or emulator takes place at link-time, allowing compilations to be run-time independent.

Segmentation Control
The PUM 86/88 compiler takes full advantage of
program addressing with the SMALL, COMPACT,
MEDIUM, and LARGE segmentation controls. Programs with less than 64KB total code space can
exploit the most efficient memory addressing
schemes, which lowers total memory requirements.
Larger programs can exploit the flexibility of extended one-megabyte addressing.

Code Optimization
The PUM 86/88 compiler offers four levels of optimization for Significantly reducing overall program
size.
-Combination or "folding" of constant expressions; and short-circuit evaluation of Boolean expressions.
-"Strength reductions" (such as a shift left rather
than multiply by 2); and elimination of common
sub-expressions within the same block.
-Machine code optimizations; elimination of
superfluous branches; re-use of duplicate code;
removal of unreadable code.
-Byte comparisons (rather than 20-bit address calculations) for pointer variables; optimization of
based-variable operations.

Compiler Controls

Built-In String Handling Facilities

The PUM 86/88 compiler offers more than 25 controls that facilitate such features as:

The PUM 86/88 language contains built-in functions
for string manipulaiton. These byte and word functions perform the following operations on character
strings: MOVE, COMPARE, TRANSLATE, SEARCH,
SKIP, and SET.

-Conditional compilation
-Intra- and Inter-module cross reference
-Corresponding assembly language code in the
listing file
-Setting overflow conditions for run-time handling

3-20

AFN-01239E

inter

iAPX 86,88 SOFTWARE DEVELOPMENT PACKAGES FOR SERIES II/PDS

BENEFITS

because less programming resources are required
for a given programmed function.

PL/M 86/88 is designed to be an efficient, costeffective solution to the special requirements of
iAPX 86 or 88 Microsystem Software Development,
as illustrated by the following benefits of PUM use:

Increased Reliability
PUM 86/88 is designed to aid in the development of
reliable software (PUM 86/88 programs are simple
statements ofthe program algorithm). This substantially reduces the risk of costly correction of errors in
systems that have already reached full production
status, as the more simply stated the program is, the
more likely it is to perform its intended function.

Low Learning Effort
PUM 86/88 is easy to learn and to use, even for the
novice programmer.

Earlier Project Completion
Critical projects are completed much earlier than
otherwise possible because PL/M 86/88, a
structured high-level language, increases programmer productivity.

Easier Enhancements and Maintenance
Programs written in PL/M tend to be selfdocumenting, thus easier to read and understand.
This means it is easier to enhance and maintain
PUM programs as the system capabilities expand
and future products are developed.

Lower Development Cost
Increases in programmer productivity translate immediately into lower software development costs

iAPX 86,88 MACRO ASSEMBLER
FOR SERIES II/PDS
• Powerful and Flexible Text Macro
Facility with Three Macro Listing
Options to Aid Debugging

• High-Level Data Structuring Facilities
Such as "STRUCTUREs" and
"RECORDs"

• Highly Mnemonic and Compact
Language, Most Mnemonics Represent
Several Distinct Machine Instructions

• Over 120 Detailed and Fully Documented Error Messages

• "Strongly Typed" Assembler Hetps
Detect Errors at Assembly Time

• Produces Relocatable and Linkable
Object Code

ASM 86/88 is the "high-level" macro assembler for the iAPX 86,88 assembly language. ASM 86/88 translates
symbolic 86/10, 88/10 assembly language mnemonics into 86/10, 88/10 relocatable object code.
ASM 86/88 should be used where maximum code effici~ncy and hardware control is needed. The iAPX 86,88
assembly language includes approximately 100 instruction mnemonics. From these few mnemonics the
assembler can generate over 3,800 distinct machine instructions. Therefore, the software development task is
simplified, as the programmer need know only 100 mnemonics to generate all possible 86/10, 88/10 machine
instructions. ASM 86/88 will generate the shortest machine instruction possible given no forward referencing
or given explicit information as to the characteristics of forward referenced symbols.
ASM 86/88 offers many features normally found only in high-level languages. The iAPX 86,88 assembly
language is strongly typed. The assembler performs extensive checks on the usage of variables and labels.
The assembler uses the attributes which are derived explicitly when a variable or I~bel is first defined, then
makes sure that each use of the symbol in later instructions conforms to the usage defined for that symbol.
This means that many programming errors will be detected when the program is assembled, long before it is
being debugged on hardware.

3-21

AFN-01239E

,inter

iAPX

86~88 SOFTWARE ,DEVELOPMENT PACKAGES FOR SERIES II/PDS

FEATURES

Over 120 Detailed Error Messages

Major featu res of the Intel iAPX 86,88 assembler and
assembly language include:

-

Powerful and Flexible Text Macro Facility
-

-

Macro calls may appear anywhere
Allows user to define the syntax of each macro
Built-in functions
conditional assembly (IF-THEN-ELSE, WHILE)
repetition (REPEAT)
string processing functions (MATCH)
support of assembly ti me I/O to console (IN, OUT),
Three Macro Listing Options include a GEN
mode which provides a complete trace of all
macro calls and expansions

High-Level Data Structuring Capability
-

-

STRUCTURES: Defined to be a template and
then used to allocate storage, The familiar dot
notation may be used to form instruction
addresses with structure fields.
ARRAYS: Indexed list of same type data elements.
RECORDS: Allows bit-templates to be defined
and used as instruction operands and/or to alloc~te storage.

Appear both in regular listfile and error print file.
User documentation fully explains the occurrence of each error and suggests a method to
correct it.

Support for ICE-86 Emulation and
Symbolic Debugging
-

Debug options for inclusion of symbol table in
object modules for In-Circuit Emulation with
symbolic debugging,

Generates Relocatable and Linkable
Object Code-Fully Compatible with
LINK 86/88, LOC 86/88 and LIB 86/88
-

Permits ASM 86/88 programs to be developed
and debugged in small modules. These modules
can be easily linked with other ASM 86/88 or
PL/M 86/88 object modules and/or library
routines to form a complete application system.

Fully Supports iAPX 86,88
Addressing Modes
-

-

BENEFITS

Provides for complex address expressions involving base and indexing registers and
(structure) field offsets.
Powerf,ul EQU facility allows complicated expreSSions to be named and the name can be used
as a synonym for the expression throughout the
module.

The iAPX 86,88 macro assembler allows the extensive capabilities of the 86/88 CPU's to be fully exploited. In any application, time and space critical
routines can be effectively written in ASM 86/88. The
86,88 assemqler outputs relocatable and linkable object modules, These object modules may be easily
combined with object modules written in PLIM
86/88-lntel's structured, high-level programming
language. ASM 86/88 compliments PLIM 86/88 as the
programmer may choose to write each module in the
language most appropriate to the task and then combine the modules into the complete applications program using the iAPX 86,88 relocation and linkage
utilities.

Powerful STRING MANIPULATION
INSTRUCTIONS
-

Permit direct transfers to or from memory or the
accumulator.
Can be prefixed with a repeat operator for repetitive execution with a count-down and a condition test.

3-22

N'N-01239E

'

inter

IAPX 86,88 SOFTWARE DEVELOPMENT PACKAGES FOR SERIES II/PDS

CONV 86/88
MC~·80/85 to iAPX 86,88 ASSEMBLY LANGUAGE
CONVERTER UTILITY PROGRAM
• Translates 8080/8085 Assembly
Language Source Code to iAPX 86,88
Assembly Language Source Code

• Automatically Generates Proper ASM
86/88 Directives to Set Up a "Virtual
8080" Environment that is Compatible
with PL/M 86/88

• Provides a Fast and Accurate Means to
Convert 8080/8085 Programs to the
iAPX 86/88 Facilitating Program
Portability

In support of Intel's commitment to software portability, CONV 86/88 is offered as a tool to move 8080/8085
programs to the iAPX 86/88. A comprehensive manual, "MCS-86 Assembly Language Converter Operating
Instructions for ISIS-II Users," covers the entire conversion process. Detailed methodology of the conversion
process is fully described therein.

-

CONV 86/88 will accept as input an error-free
8080/8085 assembly-language source file and
optional controls, and produce as output, optional PRINT and OUTPUT files.

-

The PRINT file is a formatted copy of the
8080/8085 source and the 86/88 source file with
embedded caution messages.

•

Because CONV 86/88 is a transliteration proc'ess,
there is the possibility of as much as a 15%-20%
code expansion over the 8080/8085 code, For compactness and efficiency it is recommended that critical portions of programs be re-coded in iAPX 86,88
assembly language.

- The OUTPUT file is an 86/88 source file.

Also, as a consequence of the transliteration, some
manual editing may be required for converting instruction sequences dependent on:

- CONV 86/88 issues a caution message when it
detects a potential problem in the converted
86/88 code.

-instruction length, timing, or encoding
-interrupt processing"
-PL/M parameter passing conventions"

-

A transliteration of the 8080/8085 programs occurs, with each 8080/8085 construct mapped to its
exact 86/88 counterpart:

"Mechanical editing procedures for these are suggested in the converter manual.

Registers
Condition flags
Instruction
Operands
Assembler directives
Assembler control lines
Macros

The accompanying figure illustrates the flow of the
conversion process. Initially, the abstract program
may be represented in 8080/8085 or iAPX 86,88 assembly language to execute on that respective target
machine, The conversion process is porting a source
destined for the 8080/8085 to the 86/88 via CONV
86/88.

3-23

AFN·01239E

inter

IAPX 86,88 SOFTWARE DEVELOPMENT PACKAGES FOR SERIES jl/PDS

ABSTRACT PROGRAM

SOURCE CODE
IN 8080/1085
ASSEMBLY LANG

-~
-----------------------

ASSEMBLE
FOR
88110,88110

CONV88/88

FOR
8080/1085

EXECUTE
ON
8080/8085

SOURCE CODE
IN 88110, 88110
ASSEMBLY LANG

-

ALGORITHM

EQUIVALENT

FUNCTION

-------------------_ _.....

EXECUTE
ON
88110,88110

Figure 1. Porting 8080/8085 Source Code to the IAPX 86/10 and 88/10

LINK 86/88
• Automatic Combination of Separately
Complied or Assembled IAPX 86, 88
Programs Into a Relocatable Module

• Automatic Generation of a Summary
Map Giving Results of the LINK 86/88
, Process

• Automatic Selection of Required
Modules from Specified Libraries to
Satisfy Symbolic References

• Abbreviated Control Syntax
• Reloca.able Modules may be Merged
Into a Single Module Suitable for
Inclusion in a Library
• Supports "Incremental" Linking
• Supports Type Checking of Public and
External Symbols

• Extensive Debug Symbol
Manipulation, Allowing Line Numbers,
Local Symbols, and Public Symbols to
be Purged and Listed Selectively

LINK 86/88 combines object modules specified in the LINK 86/88 input list into a single output module, LINK
86/88 combines segments from the input modules according to the order in which the modules are listed.
LINK 86/88 will accept libraries and object modules built from PL/M 86188, ASM 86/88, or any other translator
generating Intel's iAPX 86/88 Relocatable Object Modules.
'
Support for incremental linking is provided since an output module produced by LINK 86/88 can be an input to
another link. At each stage in the incremental linking process, unneeded public symbols may be purged.
LINK 86/88 supports type checking of PUBLIC and EXTERNAL symbols reporting an error if their types are not
consistent.
'
LINK 86/88 will link any valid set of input modules without any controls. However, controls are available to control the output of diagnostic information in the LINK 86/88 process and to control the content of the output
module.
o

LINK 86188 allows the user to create'a large program as the combination of several smaller, separately compiled modules. After development and debugging of these component modules the user can link them
together, locate them using LOC 86/88 and enter final testing with much of the work accomplished.

3-24

AFN-Q1239E

Inter

iAPX 86,88 SOFTWARE DEVELOPMENT PACKAGES FOR SERIES II/PDS

LIB 86/88
• LIB 86/88 is a Library Manager
Program which Allows You to:

• Libraries Can be Used as Input to
LINK 86/88 Which Will Automatically
Link Modules from the Library that
Satisfy External References in the
Modules Being Linked

Create Specially Formatted Files to
Contain Libraries of Object Modules
Maintain These Libraries by Adding or
Deleting Modules
Print a Listing of the Modules and
Public Symbols in a Library File

• Abbreviated Control Syntax

Libraries aid in the job of building programs. The library' manager program LIB 86/88 creates and maintains
files containing object modules. The operation of LIB 86/88 is controlled by commands to indicate which operation LIB 86/88 is to perform. The commands are:
CREATE:
ADD:
DELETE:
LIST:
EXIT:

creates an empty library file
adds object modules to a library file
deletes modules from a library file
lists the module directory of library files
terminates the LIB 86 program and returns control to ISIS-II

When using object libraries, the linker will call only those object modules that are required to satisfy external
references, thus saving memory space.

Loe 86/88
• Automatic Generation of a Summary
Map Giving Starting Address, Segment
Addresses and Lengths, and Debug
Symbols and their Addresses

• Automatic and Independent
Relocation of Segments. Segments
May Be Relocated to Best Match
Users Memory Configuration

• Extensive Capability to Manipulate the
Order and Placement of Segments in
iAPX 86/88 Memory

• Extensive Debug Symbol
Manipulation, Allowing Line Numbers,
Local Symbols, and Public Symbols to
be Purged and Listed Selectively

• Abbreviated Control Syntax

Relocatability allows the programmer to code programs or sections of programs without having to know the
final arrangement of the object code in memory.
LOC 86/88 converts relative addresses in an input module to absolute addresses. LOC 86/88 orders the segments in the input module and assigns absolute addresses to the segments. The sequence in which the segments in the input module are assigned absolute addresses is determined by their order in the input module
and the controls supplied with the command.
LOC 86/88 will relocate any valid input module without any controls. However, controls are available to control
the output of diagnostic information in the LOC 86/88 process, to control the content of the output module, or
both.
The program you are developing will almost certainly use some mix of random access memory (RAM), readonly memory (ROM), andlor programmable read-only memory (PROM). Therefore, the location of your program affects both cost and performance in your application. The relocation feature allows you to develop your
program on the Intellec development system and then simply relocate the object code to suit your application.

3-25

AFN-01239E

inter

iAPX 86,88 SOFTWARE DEVELOPMENT PAC.KAGES FOR SERIES' II/PDS

OH 86/88
• Converts an iAPX 86/88 Absolute
Object Module to Symbolic
Hexadecimal Format

• Converts an Absolute Module to a
More Readable Format that can be
Displayed on a CRT or Printed for
Debugging

• Facilitates Preparing a File for Later
Loading by a Symbolic Hexadecimal
Loader, such as the iSBC™ M9nitor
SDK-86 Loader, or Universal PROM
Mapper
The OH 86/88 utility converts an 86/88 absolute object module to the hexadecimal format. This conversion may
be necessary to format a module for later loading by a hexadecimal loader such as the iSBC 86/12 monitor or
Universal PROM Mapper. The conversion may also be made to put the module in a more readable format than
can be displayed or printed.
The module to be converted must be in absolute format; the output from LaC 86/88 is in absolute format.

Figure 2. iAPX 86,88 So.ftware Development Cycle

3-26

AFN-01239E

·inter

iAPX 86,88 SOFTWARE DEVELOPMENT PACKAGES FOR SERIES II/PDS

ORDERING INFORMATION

SPECIFICATIONS
Operating Environment

iAPX 86,88 Software Development
Packages for Series II:

Intel Microcomputer Development Systems
Intel Personal Development System

Part No.

Documentation

Description

PL/M-86 Programming Manual
MDS-30S*

Assembler and Utilities
Package

MDS-309*

PUM compiler and Utilities
Package

MCS-86 Assembly Language Converter Operating
Instructions for 1515-1/ Users

MDS-311*

PUM compiler, Assembler,
and Utilities Package

Universal PROM Programmer User's Manual

All Packages Require Software Licenses

1515-1/ PL/M-86 Compiler Operator's Manual
MCS-86 User's Manual
MCS-86 Software Development Utilities Operating
Instructions for 1515-1/ Users
MCS-86 Macro Assembly Language Reference
Manual
MCS-86 Macro Assembler Operating Instructions
for 1515-1/ Users

SUPPORT:
Hotline Telephone Support, Software Performance Reports (SPR), Software Updates, Technical Reports,
Monthly Newsletters are available.

*MDS is an ordering code only and is not used as a product name or trademark. MDS® is a registered trademark of Mohawk Data Sciences Corporation.

3-27

AFN-01239E

PL/M 86/88/186/188 Software Package
Systems Programming Language for
• the
iAPX 86/88/1861188 Processors

Improved Compiler Performance Now
• Supports
More User Symbols and
Faster Compilation Speeds

Language Is Upward COn:'patible from
• PUM
80, Assuring MCS®·80185 Design

.

Produc!Js Relocatable Object Code
• Which
Is Linkable to All Other 8086

Portability

Object Modules

Structured System Imp/a• Advanced
mentation Language for Algorithm

Optimization Assures Efficient
• Code
Code Generation and Minimum

Development

Application Memory Utilization

Supports 16·Bit Signed Integer and
• 32·Bit
Floating Point Arithmetic in

Built·ln Syntax Checker Doubles Per·
• formance
for Compiling Programs

Accordance with IEEE Proposed
Standard

Containing Errors
Resident on iAPX 86 Intel Micro• computer
Development Systems

Easy-to-Learn Block-Structured
• Language
Encourages Program
Modularity

PUM 86 is an advanced, structured, high-level systems programming language. The RUM 86 compiler was
created specifically for performing software development for the Intel 8086, 8088, 80186 and 80188 Microprocessors. PL/M was designed so that program statements naturally express the program algorithm. This frees the
programmer to concentrate on the logic of the program without concern for burdensome details of machine or
assembly language programming (such as register allocation, meanings of assembler mnemonics, etc.).
The PUM 86 compiler efficiently converts free-form PUM language statements into machine instructions. Substantially fewer PLiM statements are necessary for a given application than if it were programmed at the assembly
language or machine code level.
The use of PUM high-level language for system programming, instead of assembly language, results in a
high degree of engineering productivity during project development. This translates into significant reductions in initial software development and follow-up maintenance costs for the user.

NOTE' The Intellec~ Development System pictured here IS not Included with the PlfM 86/88 Software package but merely depIcts a language In Its operating environment.
The following are trademarks of Intel Corporation and Its afflhates and may be used only to Identify Intel products. exp, CREDIT, I, ICE, ICS, 1m, In site, intel, INTEL, IntelevlSlon,
Intel ink, Intellec, IMMX, IOSP, IPDS, IRMX, ISBC, ,SBX, library Manager, MeS, MULTI MODULE, Megachassis Micromainframe, MULTlaUS, Multichannel, Plug·A-Bubble,
PROMPT, Promware, AUPI, RMX/80, System 2000, UPI, and the combination ICS, iAMX, ISaC, iSBX, ICE, ,2ICE, MCS, or UPI and numerical suffix Intel Corporation Assumes NoResponsibility for the use of Any Circuitry Other Than Circuitry Embodied In an Intel product No Other Patent licenses are Implied ©INTEL CORPORATION. 1983
MAY 1983

ORDER NUMBER:210689-002

3-28

PL/M 86188/186 SOFTWARE PACKAGE

Another powerful facility allows the use of BASED
variables that map more than one variable to the
same memory location. This is especially useful
for passing parameters, relative and absolute addressing, and memory allocation.

FEATURES
Major features of the Intel PLIM 86 compiler and
programming language include:

Block Structure
Two Data Structuring Facilities

PLIM source code is developed in a series of
modules, procedures, and blocks. Encouraging
program modularity in this manner makes programs more readable, and easier to maintain and
debug. The language becomes more flexible, by
clearly defining the scope of user variables (local
to a private procedure).

In addition to the five data types and based
variables, PLIM supports two data structuring
facilities. These help the user to organize data into logical groups.
- Array: Indexed list of same type data elements
- Structure: Named collection of same or different type data elements
~ Combinations of Each: Arrays of structures or
structures of arrays

The use of procedures to break down a large
problem is paramount to productive software
development. The PLIM 86 implementation of a
block structure allows the use of REENTRANT
(recursive) procedures, which are especially useful in system design.

8087 Numerics Support
PLIM programs that use 32-bit REAL data may be
executed using the Numeric Data Processor for
improved performance. All floating-point operations supported by PLIM may be executed on the
iAPX 86/20 or 88/20 NDP, or the 8087 Emulator (a
software module) provided with the package.
Determination of use of the chip or Emulator
takes place at linktime, allowing compilations to
be run-time independent.

Language Compatibility
PLIM 86 object modules are compatible with object modules generated by all other iAPX 86
translators. This means that PLIM programs may
be linked to programs written in any other iAPX 86
language.
Object modules are compatible with In-Circuit
Emulators; DEBUG compiler control provides the
In-Circuit Emulators with symbolic debugging
capabilities.
.

Built·ln String Handling Facilities

PLIM 86 Language is upward compatible with
PLIM 80, so that application programs may be
easily ported to run on the iAPX 86.

The PLIM 86 language contains built-in functions
for string manipulation. These byte and word
functions perform the following operations on
character strings: MOVE, COMPARE,
TRANSLATE, SEARCH, SKIP, and SET.

Supports Seven Data Types

Interrupt Handling

PL/M makes use of seven data types for various
applications. These data types range from one to
four bytes, and facilitate various arithmetic, logic,
and addressing functions:

PL/M has the facility for handling interrupts. A
procedure may be defined with the INTERRUPT
attrioute, and the compiler will automatically initialize an interrupt vector at the appropriate
memory location. The compiler will also generate
code to save and restore the processor status, for
execution of the user-defined interrupt handler
routine. The procedure SET$INTERRUPT, the
function retuning an INTERRUPT$PTR, and the
PLIM statement CAUSE$INTERRUPT all add flexibility to user programs involving interrupt and
handling.

-Byte: 8-bit unsigned number
-Word: 16-bit unsigned number
-DWORD: 32-bit unsigned number
-Integer: 16-bit signed number
-Read: 32-bit floating point number
-Pointer: 16-bit or 32-bit memory address
indicator
-Selector: 16-bit base portion of a pointer

3-29

AFN·01881C

inter

PL/M 86/88/186 SOFTWARE PACKAGE

Compiler Controls
Including several that have been mentioned, the
PLIM 86 compiler offers more than 25 controls
that facilitate such features as:
- Conditional compilation
- Including additional PLIM source files from
disk
- Corresponding assembly language code in the
listing file
- Setting overflow conditions for run-time
handling

- Combination or "folding" of constant expressions; and short-circuit evaluation of Boolean
expressions
- "Strength reductions" (such as a shift left
rather than multiply by 2); and elimination of
common sub-expressions within the same
block
- Machine code optimizations; elimination of
superfluous branches; re-use of duplicate
code; removal of unreachable code
- Byte comparisons (rather than 20-bit address
calculations) for pointer variables; optimization
of based-variable operations

Segmentation Control
The PLIM 86 compiler takes full advantage of program addressing with the SMALL, COMPACT,
MEDIUM, and LARGE segmentation controls_ Programs with less than 64KB total code space can
exploit the most efficient memory addressing
schemes, which lowers total memory requirements. Larger programs can exploit the flexibility
of extended one-megabyte addressing.

Error Checking
The PLIM 86 compiler has a very powerful feature
to speed up compilations. If a syntax or program
error is detected, the compiler will skip the code
generation and optimization passes. This usually
yields a 2X performance increase for compilation
of programs with errors.
A fully detailed set of programming and compilation errors is provided by the compiler.

Code Optimization
The PLIM 86 compiler offers four levels of optimization for significantly reducing overall program size.

MOO. 1* Beglnnmg of module 'I

SORTPROC PROCEDURE (PTR. COUNT. RECSIZE. KEYINDEX) ~ I PUBLIC and EXTERNAL attributes promote
~L___
programmodulanty
DECLARE PTR POINTER. (COUNT. RECSIZE. KEYINDEX) INTEGER.

l

j*

Parameters
PTA IS pOinter to ftrst record '

COUNT IS number 01 records to be sorted
RECSIZE IS number of bytes In each record-max IS 128
KEYINDEX IS byte pOSItion wlthm each record of a BYTE scalar
\' "Based" Vanables allow manipulation of external data by
to be used as sort key '/
-~--~ ~~~~~I~~~~h~a~~~bW:~aa~: ~~~J\~~ep~r~~I~tt;Pp:s~~g, and
DECLARE @ECORDBASEDPTBJ(1) BYTE,
the execution time to perform many STACK operatIons
CURRENT (128) BYTE,
(I. J) INTEGER.
SORT

FIND

DO

J~

1 TO COUNT-l.
CALL MOVB(@RECORD(J'RECSIZE). ""'.:..::....:.-_,
I""J,

- __

DO WHILE I ,0
AND RECORD((I- WRECSIZE-KEYINDEX)
·CURRENT(KEYINDEX).
CALL MOVB(@RECORD((I-l)'RECSIZE).
@RECORO(I·RECSIZE).
RECSIZE).

The "AT" operator returns the address of a
variable, Instead of Its contents Th,s IS very useful
In passIng pOInters for based variables.

I~I-l.

END FIND.

CALLCM~B~CURRENT. @RECORD(I·RECSIZE). RECSIZE).

END SORT.

One of several PL/M bwltMtn procedures for stnng
manIpulatIon

END SORTPROC.
END M.

rEnd of module"!

Figure 1. Sample PLIM 88 Program.

3-30

AFN-Ol661C

PLIM 861881186 SOFTWARE PACKAGE

BENEFITS

Lower Development Cost

PLIM 86 is designed to be an efficient, cost-effective solution to the special requirements of iAPX
86 Microsystem Software Development, as illustrated by the following benefits of PLIM use:

Increases in programmer productivity translate
immediately into lower software development
costs because fewer programming resources are
required for a given programmed function.

Increased Reliability

Cost· Effective Alternative to
Assembly Language

PLiM 86 is designed to aid in 'the development of
reliable software (PLIM 86 programs are simple
statements of the program algorithm). This
substantially reduces the risk of costly correction
of errors in systems that have already reached full
production status, as the more simply stated the
prograll1 is, the more likely it is to perform its intended function.

PLIM 86 programs are code efficient. PLIM 86
combines all of the benefits of a high-level
language (ease of use, high productivity) with the
ability to access the iAPX 86 architecture. Consequently, for the development of systems software,
PLiM 86 is the cost-effective alternative to
assembly ianguage programming.

Easier Enhancements
and Maintenance

Low Learning Effort
PLiM is easy to learn and to use, even for the
novice programmer.

Programs written in PLiM tend to be selfdocumenting, thus easier to read and understand.
This means it is easier to enhance and maintain
PLiM programs as the system capabilities expand
and future products are developed.

Earlier Project Completion
Critical projects are completed much earlier than
otherwise possible because PLiM 86, a structured
high-level language, increases programmer productivity.

SPECIFICATIONS

Documentation Package

Operating Environment

PLlM-86 User's Guide for 8086-based Development Systems (121636)

REQUIRED HARDWARE:
Intel Microcomputer Development Systems (Series
III/Series IV)

SUPPORT:
Hotline Telephone Support, Software Performance
Reporting (SPR), Software Updates, Technical
Reports, Monthly Newsletter available.

ORDERING INFORMATION

Requires Software License

Part Number
MDS-313*

'MDS IS an ordering code only and is not used as a product
name or trademark. MDS'" is a registered trademark of
Mohawk Data Sciences Corporation.

Description
PLiM 86 Software Package

3-31

AFN·OI661C

intJ
PASCAL 86/88
SOFTWARE PACKAGE
• Resident on IAPX 86 Based Intel
Microcomputer Development Systems
• Object Compatible and Linkable with
PLIM 86/88, ASM 86/88 and FORTRAN
86/88
• ICE™ Symbolic Deb~gglng Fully
Supported
• PSCOPE Source Level Debugging Fully
Supported
• Implements REALMATH for Consistent
and Reliable Results

• Unlimited User Program Symbols
• Supports iAPX86/20, 88/20 Numeric
Data Processors
• Strict Implementation of ISO Standard
Pascal
• Useful Extensions Essential for
Microcomputer Applications
• Separate Compilation with TypeChecking Enforced Between Pascal
Modules
• Complier Option to Support Full RunTime Range-Checking

PASCAL 86{88 conforms to and implements the ISO Draft Proposed Pascal standard. The language is
enhanced to support microcomputer applications with special features, such as separate compilation, interrupt handling and direct port I{O. To assist the development of portable software, the compiler can be directed
to flag all non-standard features.
The PASCAL 86/88 compiler runs on Series III and Series IV Microcomputer Development Systems. A well-defined I/O interface is
provided for run-time support. This allows a user-written operating system to support application programs as an alternate to the
development system environment. Program modules compiled under PASCAL 86/88 are colllpatible and linkable with modules
written in PUM 86/88, ASM 86/88 or FORTRAN 86/88. With a complete family of compatible programming languages for the iAPX
86,88, 186, 188 one can implement each module in the language most appropriate to the task at hand.

PASCAL 86{88 object modules contain symbol and type information for program debugging using ICE™
emulators and PSCOPE source language debugger. For final production version, the compiler can remove this
extra information and code.

MAY 1983

@INTEL CORPORATION. 1983

ORDER NUMBER:400670-001

3-32

PASCAL 86/88

FEATURES

Supports numerous compiler options to control the
compilation process, to INCLUDE files, flag nonstandard Pascal statements and others to control
program listings and object modules.

Includes all the language features of Jensen & Wirth
Pascal as defined in the ISO Draft Proposed Pascal
Standard.
Supports required extensions for microcomputer
applications.

Utilizes the IEEE standard for Floating-Point Arithmetic (the Intel REALMATH standard) for arithmetic
operations.
Well-defined and documented run-time operating
system interfaces allow the user to execute the applications under user-designed operating systems.

-Interrupt handling
-Direct port I/O
Separate compilation extensions allow:

Predefined type extensions allow:

-Modular decomposition of large programs

-Create precision in read, integer, and unsigned
calculations.

-Linkage with other Pascal modules as well as PUM
86/88/186/188, ASM 86/88/186/188 and FORTRAN
86/88.

-Means to check 8087 erl'Ors
-Circumvention of rigid type checking on calls to
non-Pascal routines

-Enforcement of type-checking at LINK-time

Provides run-time support for co-processors. All
real-type arithmetic is performed on the 86/20 numeric data processor unit or software emulator.
Run-time library routines, common between Pascal
and other Intel languages (such as FORTRAN), permit efficient and consistently accurate results.

BENEFITS
Provides a standard Pascal for iAPX 86, 88,186,188
based applications.
-Pascal has gained wide acceptance as the portable application language for microcomputer
applications

Extended relocation and linkage support allows the user to
link Pascal program modules with routines written in other
languages for certain parts of the program. For example, realtime or hardware dependent routines written in ASM
86/88/186/188 or PUM 86/88/186/188 can be linked to Pascal
routines, further extending the user's ability to write structured
and modular programs.

-It is being taught in many colleges and universities
around the world
-It is easy to learn, originally intended as a vehicle
for teaching computer programming
-Improves maintainability: Type mechanism is
both strictly enforced and user extendable
-Few machine specific language constructs

PASCAL 86/88 programs "talk" to the resident
operating system using Intel's standard interface for
translated programs. This allows users to replace
the development operating system by their own
operating systems in the final application.

Strict implementation of the proposed ISO standard
for Pascal aids portability of application programs. A
compile time option checks conformance to the
standard making it easy to write conforming
programs.

PASCAL 86/88 takes full advantage of iAPX 86, 88, 186, 188
high level language architecture to generate effiCient machine
code.

PASCAL 86/88 extensions via predefined procedures for interrupt handling and direct port I/O make
it possible to code an entire application in Pascal
without compromising portability.

Compiler options can be used to control the program
listings and object modules. While debugging, the
user may generate additional information such as the
symbol record information required and useful for
debugging using PSCOPE or ICE emulation. After
debugging, the production version may be streamlined by removing this additional information.

Standard Intel REALMATH is easy to use and provides reliable results, consistent with other Intel
languages and other implementations of the IEEE
proposed Floating-Point standard.

3-33

AFN.()1652B

PASCAL 86/88

SPECIFICATIONS
Operating Environment

Documentation Package

REQUIRED HARDWARE

PASCAL 86 User's Guide

Intel Microcomputer Development Systems (Series III, Series
IV)

ORDERING INFORMATION
Part Number

Description

MDS*-314

PASCAL 86/88 Software Package

Requires software license .
• MDS is an ordering code only and is not used as a product name or trademark. MDS" is a registered trademark of Mohawk Data Science.

SUPPORT:
Hotline Telephone Support, Software Performance Report (SPR), Software Updates, Technical Reports, and
Monthly Technical Newsletters are available.

3-34

AFN·01652B

intJ
FORTRAN 86/88
SOFTWARE PACKAGE
• Features high-level language support
for floating-point calculations,
transcendentals, Interrupt procedures,
and run-time exception handling

• Offers powerful extensions tailored to
microprocessor applications

• Meets ANS FORTRAN 77 Subset
Language Specifications

• Provides FORTRAN run-time support
for iAPX 86,88,186,188-based design

• Offers upward compatibility with
FORTRAN 80

• Supports IAPX 86/20, 88/20 Numeric
Data Processor for fast and efficient
execution of numeric instructions

• Provides users ability to do formatted
and unformatted 1/0 with sequential or
direct access methods

• Uses REALMATH Floating-Point
Standard for consistent and reliable
results

• ICE™ Symbolic Debugging Fully
Supported

• Supports Arrays Larger Than 64K

• PSCOPE Source Level Debugging Fully
Supported

• Unlimited User Program Symbols
FORTRAN 86{88 meets the ANS FORTRAN 77 Language Subset Specification'and includes many features of
the full standard. Therefore, the user is assured of portability of most existing ANS FORTRAN programs and of
full portability from other computer systems with an' ANS FORTRAN 77 Compiler.
FORTRAN 86{88 programs developed and debugged on the Intel Microcomputer Development Systems may be
tested with the prototype using ICE symbolic debugging, and executed on an RMX-86 operating system, or on a
user's iAPX 86,88,186,188-based operating system.
FORTRAN 86{88 is one of a complete family of compatible programming languages for iAPX 86,88,186,188
development: PL)M, Pascal, FORTRAN, and Assembler. Therefore, users may choose the language best suited
for a specific problem solution.

MAY 1983

@INTELCORPORATION. 1983

ORDER NUMBER:400630-001

3-35

FORTRAN 86/88 SOFTWARE PACKAGE

FEATURES

Intel® MicroproCeSsor Support

Extensive High-Level Language
Numeric Processing Support

FORTRAN 86/88 language features sUPPort of iAPX
86/20, 88/20 Numeric Data Processor

Single (32-bit), double (64-bit), and double extended
precision (80-bit) floating-point data types

Compiler generates in-line iAPX 86/20, 88/20 Numeric Data Processor object code for floating-point
arithmetic (See Figure 1)

REALMATH Proposed IEEE Floating-Point Standard) for consistent and reli@ble results

Intrinsics allow user to control iAPX 86/20, 88/20
Numeric Data Processor,

Full support for all other data types: integer, logical,
character

iAPX 86,88,186,188 architectural advantages used
,
for indexing and character-string handling

Ability to use hardware (iAPX 86/20, 88/20 Numeric
Data Processor) or software (sin:1Ulator) floatingpoint support chosen at link time

Symbolic debugging of application using ICE
emulators

ANS FORTRAN 77 Standard

Source level debugging using PSCOPE.

FLOATING-POINT-STATMENT

TEMPER = (PRESS - VOLUM I ~UEK) - i.45 I (PRESS - VOLUM
- (PRESS - VOLUM I QUEK) • (PRESS - VOLUM I QUEK)

&

I

QUEK)

OBJECT CODE GENERATED

Intel FDRTRAN-86 Compl.ler
IAPX 86/20, 88/20
MACHINE CODE

0013
0018
0010
0022
0025
0028
002E
0031
0034
0037
003A
0030
0040
0045

9809060COO
9808360000
9B082E0800
980001
9B2E083EOOaO
9B09C9
980002
980EE9
9B09C1
9808C8
9BOOC2
9BOEE1
98091E0400
98

ASSEMBLER MNEMONICS

FLJ
FDIV
,F sus ~
FST
FOIV~

FXCIiG
r:ST
FSUBRP
FLO
FMUL
FFREE
FSUSP
FSTP

I.,

IIOLUM

STATEMENT " 2

~UEK

PRESS
T:JS+1H
CS:iilCONST
TOS+1H
TOS+2H
T:JS+1H
TOS
TOS+2H
TEMPER

lolA IT

Figure 1. Object Code Generated by FORTRAN 86/88 for a Floating-Point Calculation Using IAPX 86/20,
88/20 Numeric Processor

3-36

AFN-Ol6S38

inter

FORTRAN 86/88 SOFTWARE PACKAGE

Microprocessor Application Support

Early Project Completion

-Direct byte- or word-oriented port 1/0

FORTRAN is an industry-standard, high-level
numerics processing language. FORTRAN programmers can use FORTRAN 86/88 on microprocessor projects with little retraining. Existing FORTRAN software can be compiled with FORTRAN
86/88 and programs developed in FORTRAN 86/88
can run on other computers with ANS FORTRAN 77
with little or no change. Libraries of mathematical
programs using ANS 77 standards may be compiled
with FORTRAN 86/88.

-Reentrant procedures
-Interrupt procedures

Flexible Run-Time Support
Application object code may be executed in iAPX 86,
88,186,188-based environment of user's choice:
-a Series III or Series IV Intellec Development System
-an iAPX 86,88,186,188-based system with iRMX-86
Operating System

Application Object Code
Portability for a Processor Family

-an iAPX 86,88,186,188-based system with userdesigned Operating System

FORTRAN 86/88 modules "talk" to the resident Intellec development operating system using Intel's standard interface for all development-system software.
This allows an application developed under the ISIS\I operating system to execute on iRMXl86, or a usersupplied operating system by linking in the iRMXl86
or other appropriate interface library. A standard
logical-record interface enables communication
with non-standard I/O devices.

Run-time exception handling for fixed-point numerics, floating-point numerics, and 1/0 errors
Relocatable object libraries for complete run-time
support of I/O and arithmetic functions. In-line code
execution is generated for iAPX 86/20, 88/20 Numeric Data Processor

BENEFITS
FORTRAN 86/88 provides a means of developing ap- '
plication software for the Intel iAPX 86,88,186,188
products lines in a familiar, widely accepted, and
industry-standard programming language. FORTRAN 86,88 will greatly enhance the user's ability to
provide cost-effective software development for
Intel microprocessors as illustrated by the following:

I

Comprehensive, Reliable
and Efficient Numeric Processing
The unique combination of FORTRAN 86/88, iAPX
86/20, 88/20 Numeric Data Processor, and
REALMATH (Proposed IEEE Floating-Point Standard) provide universal consistency in results of
numeric computations and efficient object code
generation.

SPECIFICATIONS

Documentation Package

Operating Environment

FORTRAN 86/88 User's Guide

Intel Microcomputer Development Systems (Series
III/Series IV)

3-37

AFN·01Ml8

intJ

FORTRAN 86/88 SOFTWARE PACKAGE

ORDERING INFORMATION
Part Number Description
MDS*-315

FORTRAN 86/88 Software Package

Requires Software License

SUPPORT
Intel offers several levels of support for this product
which are explained in detail in the price list. Please
consult the price list for a description of the support
options available.
*MDS is an ordering code only and is not used as a product name or trademark. MDS is a registered trademark of
Mohawk Data Sciences Corporation.

3-38

AFN·01653B

C-86

C COMPILER FOR THE 8086
• Implements full C Language
•. Produces high density code rivaling
assembler
• Supports Intel Object Module Format
(OMF)

• Supports both small and large models of
computation
• Supports ICE ™ 86 and DEBUG- 86/88
• Supports IEEE Floating Point Math with
8087 coprocessor
• Supports Bit Fields
• Supports full standard 110 Library (STDIO)
• Written in C

• Runs under the Intel UDI on
Intel Development Systems and
iRMX™ 86
• Available for the VAX/VMS* Operating
System

The C Programming Language was originally designed in 1972 and has become increasingly popular as a
systems development language. C is not a "very high level" language and is not tied to any specific application
area. Although it is used for writing operating systems, it has been used equally well to write numerical, textprocessing and data base programs. C combines the flexibility and programming speed of a higher level
language with the efficiency and comrol of assembly language.
Intel C-86 brings the full power of the C programming language to 8086 and 8088 based microprocessor
systems.
Intel C-86 supports the full C language as described in the Kernighan and Ritchie book, "The C Programming
Language," (Prentice-Hall, 1978). Also included are the latest enhancements to the C language: structure
as~ignments, functions taking structure arguments and returning structures, and the "void" and "enum" data
types.
C is rapidly becoming the standard microprocessor system implementation language because it provides:
1. the ability to manipulate the fundamental objects of the machine (including machine addresses) as easily
as assembly language.
2. the power and speed of a structured language supporting a large number of data types, storage classes, expressions and statements,
3. processor independence (most programs developed for other processors can be easily transported to the
8086), and
.
4. code that rivals assembly language in efficiency

INTEL C-86 COMPILER DESCRIPTION
semantic error checking. The code generator phase
converts the parser's output into an efficient intermediate binary code, performs constant folding, and
features an extremely efficient' register allocator,
ensuring high quality code. The optimizer phase
converts the output of the code generator into

The C-86 compiler operates in four phases: preprocessor, parser, code generator, and optimizer. The
preprocessor phase interprets directives in C source
code, including conditional compilations (#define).
The parser phase converts the C program into an
intermediate free form and does all syntactic and

MAY 1983

ORDER NUMBER:210768-002

3-39

intJ

C-86*
C COMPILER FOR THE 8086

relocatable Intel Object Module Format (OMF) code,
without creating an intermediate assembly file. Optionally, the C-86 compiler can produce a symbolic
assembly like file. The C-86 optimizer eliminates
common code, eliminates redundant loads and
stores" and resolves span dependencies (shortens
branches) within a program.
The C-86 runtime library consists of a number of
functions which the C programmer can call. The runtime system includes the standard lIO library

(STDIO), conversion routines, routines for manipulating strings, special routines to perform functions
not available on the 8086 (32-bit arithmetic and
emulated floating point), and (where appropriate)
routines for interfacing with the operating system.
C-86 uses Intel's linker and locator and generates
debug records for symbols and lines on request,
permitting access to Intel's ICE-86 and DEBUG-86 to
aid in program testing.

FEATURES
Support for Small and Large Models
Intel C-86 supports both the SMALL and LARGE
modes of segmentation. A SMALL model program
can have up to 64K bytes of code and 64K bytes of
data, with all pointers occupying two bytes. Because
two byte pointers permit the generation of highly
compact and efficient code, this model is recommended for programs that can meet the size restrictions. The LARGE segmentation model is used by
programs that require access to the full addressing
space of the 8086/8088 processors. In this model,
each source file generates a distinct pair of code and
data segments of up to 64k bytes in length. All point.
ers are four bytes long.

ments from arrays, and extract fields from structures
or unions
Arithmetic operators: add, subtract, multiply, divide,
modulus
,Relational operators: greater than, greater than or
equal, less than, less than or equal, not equal
Unary operators: indirect through a pOinter, compute
an address, logical negation, ones complement, provide the size in bytes of an operand. •
Logical operators: AND, OR
Bitwise operators: AND, exclusive OR, inclusive OR,
bitwise complement

Preprocessor Directives

Data Types and Storage Classes

#define-defines a macro

Data in C is described by its type and storage class.
The type determines its representation and use, and
the storage class determines its lifetime, scope, and
storage allocation. The following data types-are fully
supported by C-86:

#include- includes code outside of the program
source file
#if - conditionally includes or excludes code
Other preprocessor directives include #undef, #ifdef,
#ifndef, #else, #endif, and #line.

char

Statements

int

an 8 bit signed integer
a 16 bit signed integer

The C language supports a variety of statements:

short

Conditionals: IF, IF-ELSE

same as int (on the 8086)

Loops: WHILE, DO-WHILE, FOR

long

Selection of cases: SWITCH, CASE, DEFAULT

a 32 bit signed integer

Exit from a function: RETURN

unsigned

a modifier for integer data types (char, int,
short, and long) which doubles the positive
range of values

Loop cqntrol: CONTINUE, BREAK
Branching: GOTO

float

Expressions and Operators

a32 bit floating point number which utilizes the
8087 or a software floating point library

The C language includes a rich set of expressions
and operators.

double

Primary expression: invoke functions, select ele-

a 64 bit floating point number

3-40

AFN-Q0144B

inter

C-S6·
C COMPILER FOR THE SOS6

void
a special type that cannot be used as an
operand in expressions; normally used for
functions called only for effect (to prevent their
use in contexts where a value is required).

extern
a variable defined outside of the function where
it is declared; retaining its value throughout the
entire program and accessible to other
modules

enum
an enumerated data type

auto
a local variable, created when a block of code is
entered and discarded when the block is
existed

These fundamental data types may be used to
create other data types including: arrays, functions, structures, pointers, and unions.

static
a local variable that retains its value until the
termination of the entire program

The storage classes available in C-86 include:
register
suggests that a variable be kept in a machine
register, often enhancing code density and
speed

typedef
defines a new data type name from existing
data types

BENEFITS
variety of machines can easily be transported to the
8086.

Faster Compilation
Intel C-86 compiles C programs substantially faster
than standard C compilers because it produces Intel
OMF code directly, eliminating the traditional intermediate process of generating an assembly file.

Rapid Program Development
Intel C-86 provides the programmer with detailed
error messages and access to ICE-86 and DEBUG-86
to speed program development.

Generates High Quality Code
For typical programs using the SMALL model, the
Intel C-86 Compiler produces code that is 14-16%
smaller than on a Digital Equipment PDP-11.

Full Manipulation of the 8086
Intel C-86 enables the programmer to utilize features
of the C language to control bit fields, pointers, addresses and register allocation, taking full advantage
of the fundamental concepts of the 8086. '

Portability of Code
Because Intel C-86 supports the .STDIO and produces Intel OMF code, programs developed on a

SPECIFICATIONS
Operating Environment
-Dual Diskette Drives, Single or Doubl~ Density

The C-86 compiler runs host resident on both the
Intel Series III Microcomputer DevelopmentSystem
under ISIS-II and on the System 86/330 under the
iRMX 86 operating system. C-86 can also run as a
cross compiler on a VAX 11/780 computer under the
VMS operating system. 96 KBytes of User Memory is
required on all versions. Specify desired version
when ordering.

-System Console; CRT or Hardcopy Interactive
Device
iRMX 86 version:
-Any iAPX 86/88, iSBC'" 86/88, iTPS 86/XXX, or
SYS 86/3XX based system capable of running the
iRMX 86 Operating System

Required Hardware
Development System Version

VAX version:

-Intellec® Microcomputer Development System; Series III
or Series IV

-Digital Equipment Corporation VAX 11/780 or
compatible computer

3-41

AFN-001''''8

inter

C-86*
C COMPILER FOR THE 8086

Optional Hardware

iRMX 86 version:

ISIS-II version:

-No,ne

-ICE-86

VAX version:

iRMX 86 version:

-MDS·-384 Kit-Mainframe Link for distributed development, or
iMDX-394'Asynchronous Communications Link.

-Numeric Data Processors for support of the
REALMATH standard

-VAX-IAPX 86/88/186 MACRO Assembler and
utilities package (iMDX-341VX)

VAX version:
-None

Documentation Package

Required Software
ISIS-II version:

The C Programming Language by Kernighan and
Ritchie (1978 Prentice-Hall)

-ISIS-II Diske!te Operating System

C-B6 User Manual

-Series III Operating System

Shipping Media
iRMX 86 version:

Development System Version:
-One single and one douQle density ISIS-II format
8" diskette, one S-25" Series IV Format

-iRMX 86 Realtime Multiprogramming Operating
System
-iRMX 860 Utilities Package

iRMX 86 version:
VAX version:

-Double Density iRMX 86 format 8" diskette

-VMS Operating System

-Double Density iRMX 86 format 5V4' diskette
VAX version:

Optional Software

-1600 bpi, 9 track Magnetic tape

Development System Version:

-One single and one double density ISIS-II format
8" diskette

-None

ORDERING INFORMATION
Order Code

iMDX-317

SUPPORT
Intel offers several levels of support for this product
which are explained in detail in the price list. Please
consult the price list for a description of the support
options available.

Description
C-86 Compiler for ISIS-II

iRMX-866

C-86 Compiler for iRMX 86

IMDX-347

C-86 Cross Compiler for
VAXNMS

Intel Software License required.

*MDS is an ordering code only and is not used as a product name or trademark. MDS is a registered trademark of
Mohawk Data Sciences Corporation.

3-42

AFN-00144B

8087
SOFTWARE SUPPORT PACKAGE
• Program Generation for the 8087
Numeric Data Processor on 8080/8085
Based Intel Microcomputer
Development Systems

• 8087 Emulator Duplicates Each 8087
Floating-Point Instruction in Software,
for Evaluation of Prototyping, or for
Use in an End Product
• Macro Assembler and 8087 Emulator
are Fully Compatible with Other
8086/8088 Development Software

• Consists of: 8086/8087/8088 Macro
Assembler, 8087 Software Emulator
• Macro Assembler Generates Code for
8087 Processor or Emulator, While
Also Supporting the 8086/8088
Instruction Set

• Implementation of the IEEE Proposed
Floating-Point Standard (the Intel®
Realmath Standard)

The 8087 Software Support Package is an optional extent ion of Intel's 8086/8088 Software Development
Package that runs under ISIS-II.
The 8087 Software Support Package consists of the 8086/8087/8088 Macro Assembler, and the Full 8087
Emulator. The assembler is a functional superset of the 8086/8088 Macro Assembler, and includes instructions for over sixty new floating-point operations, plus new data types supported by the 8087.
The 8087 Emulator is an 8086/8088 object module that simulates the environment of the 8087, and executes
each floating-point operation using software algorithms. This emulator functionally duplicates the operation
of the 8087 Numeric Data Processor.
Also included in this package are interface libraries to link with 8086/8087/8088 object modules, which are
used for specifying whether the 8087 Processor or the 8087 Emulator is to be used. This enables the run-time
environment to be invisible to the programmer at assembly time.

The followmg are trademarks of Intel Corporation and may be used only to Identify Intel products exp, CREDIT, Intellee, Multlbu$, I, .SBC, Multlmodule, ICE, ISBX, PROMPT, IRMX,
IGS. Library Manager, Promware, Inslte, MeS, RMX, Intel, Megachassls, UPI, InteleVISlon, Mlcromap, IJ.Scope and the combination of ICE, IGS, .SBC, [SBX, MeS, or RMX and a
numerical suffix
@INTELCORPORATION. 1983
MAY 1983

3-43

ORDER NUMBER:402150-001

8087 SOFTWARE SUPPORT PACKAGE

floating-point instructions, the macro assembler
also introduces two new 8087 data types: QWORD
(8 bytes) and TBYTE (ten bytes). These support the
highest precision of data processed by the 8087.

FUNCTIONAL DESCRIPTION

8086/8087/8088 Macro Assembler
The 8086/8087/8088 Macro Assembler translates
symbolic macro assembly language instructions
into appropriate machine instructions. It is an extended version of the 8086/8088 Macro Assembler,
and therefore supports all of the same features and
functions, such as limited type checking, conditional assembly, data structures, macros, etc. The
extensions are the new instructions and data types
to support floating-point operations. Realmath
floating-point instructions (see Table 1) generate
code capable of being converted to either 8087 instructions or interrupts for the 8087 Emulator. The
Processor/Emulator selection is made via interface
libraries at LINK-time. In addition to the new

Full 8087 Emulator
The Full 8087 Emulator is a 16-kilobyte object module that is linked to the application program for
floating-point operations. Its functionality is identical to the 8087 chip, and is ideal for prototyping and
debugging floating-point applications. The
Emulator is an alternative to the use 01 the 8087 chip,
although the latter executes floating-point applications up to 100 times faster than an 8086 with the
8087 Emulator. Furthermore, since the 8087 is a
"co-processor," use of the chip will allow many operations to be performed in parallel with the 8086.

Table 1. 8087 Instructions
Processor Control Instructions

Arithmetic Instructions
Addition
FADD
FADDP
FIADD

Add real
Add real and pop
Integer add
Subtraction

FSUB
FSUBP
FISUB
FSUBR
FSUBRP
FISUBR

Subtract real
Subtract real and pop
Integer subtract
Subtract real reversed
Subtract real reversed and
pop
Integer subtract reversed
Multiplication

FMUL
FMULP
FIMUL

Multiply real
Multiply real and pop
Integer multiply
Division

FDIV
FDIVP
FIDIV
FDIVR'
FDIVRP
FIDIVR

Divide real
Divide real and pop
Integer divide
Divide real reversed
Divide real reversed arid
pop
Integer divide reversed

FABS
FCHS

Initialize processor
Disable interrup,ts

FENI/FNENI

Enable interrupts

FLDCW

Load control word

FSTCW/FNSTCW

Store control word

FSTSW/FNSTSW

Store status word

FCLEX/FNCLEX

Clear exceptions

FSTENV/FNSTENV

Store environment

FLDENV

Load environment

FSAVE/FNSAVE

Save state

FRSTOR

Restore state

FINCSTP

Increment stack pointer

FDECSTP

Decrement stack pointer

FFREE

Free register

FNOP

No operation

FWAIT

CPU wait

Comparison Instructions
FCOM

Other Operations
FSQRT
FSCALE
FPREM
FRNDINT
FXTRACT

FINIT/FNINIT
FDISI/FNDISI

Square root
Scale
Partial remainder
Round to integer
Extract exponent and
significand
Absolute value
Change sign

Compare real and pop

FCOMPP

Compare real and pop
twice
Integer cOl}1pare

FICOM

3,-44

Compare real

FCOMP

FICOMP

Integer compare and pop

FTST

Test

FXAM

Examine

AFN·01574B

8087 SOFTWARE SUPPORT PACKAGE

Table 1. 8087 Instructions (cont'd)
Data Transfer Instructions

Transcendental Instructions
FPTAN

Partial tangent

FPATAN

Partial arctangent

F2XM1

2'-1

FYL2X

y. 10g,X

FYL2XP1

y. log2(X+ 1)

Real Transfers
FLO
FST
FSTP
FXCH

Constant Instructions
Load +00

FLD1

Load + 1.0

FLDPI

Load rr

FLDL2T

Load log21O

FLDL2E

Load log2e

FLDLG2

Load log '02

FLDLN2

Load log,2

Integer load
Integer store
Integer store and pop
Packed Decimal Transfers

FBLD
FBSTP

Packed decimal (BCD)
load
Packed decimal (BCD)
store and pop

SPECIFICATIONS

Documentation Package

Operating Environment

BOB6/BOB7/B08B Macro Assembly Language Reference Manual for BOBO/BOBS-Based Development
Systems

REQUIRED HARDWARE
Intel Microcomputer Development Systems
-Model BOO
-Series II
-Personal Development System
-Series IV

BOB6/BOB7/BOBB Macro Assembler Operating Instructions for BOBO/B08S-Based Development Systems
The 8086 Family Users Manual Supplement for the
8087 Numeric Data Processor

REQUIRED SOFTWARE
BOB6/BOBB Software Development Package

ORDERING INFORMATION
Part Number

Description

MDS*-3B7

BOB7 Software Support Package

;

Integer Transfers
FILD
FIST
FISTP

FLDZ

I

Load real
Store real
Store real an d pop
Exchange registers

Requires Software License

SUPPORT
Intel offers several levels of support for this product
which are explained in detail .in the price list. Please
consult the price list for a description of the support
options available.
*MDS is an ordering code only and is not used as a product name or trademark. MDS is a registered trademark of
Mohawk Data Sciences Corporation.

3-45

I
I
I

i

8087 SUPPORT LIBRARY
• Full 8087 Software Emulator for soft·
ware debugging without the 8087
component

• Library to support floating point
arithmetic in PUM·86 and ASM·86

• Common elementary function library
provides trigonometric, logarithmic
and other useful functions

• Accurate, verified and efficient imple·
mentation of algorithms for functions

• Decimal conversion module supports
blnary·decimal conversions
• Supports proposed IEEE Floating
Point Standard for high accuracy and
software portability

• Error·handler module simplifies
floating point error recovery

The 8087 Support LibrarY provides PUM-86 and ASM-86 users with the equivalent numeric data processing capability
of Fortran-86. With the Library, it is easy for PUM-86 and ASM-86 programs to do floating point arithmetic. Programs
can link in modules to do trigonometric, logarithmic and other numeric functions, and the user is guaranteed accurate,
reliable results for all appropriate inputs. The 8087 Support Library implements Intel's REALMATH standard and also
supports the proposed IEEE Floating Point Standard. Consequently, by using this Library, the PUM-86 user not only
saves software development time, but is guaranteed that the numeric software meets industry standards and is
portable-his software investment is maintained.
The 8087 Support Library consists of the common elementary function library, the decimal conversion module, the
error handler module, the full 8087 Software emulator and interface libraries to the 8087 and to the 8087 emulator.

B.PLM
A.PLM

DECLARE (INPUT

VALUE OUTPUT

VALUE) REAL

1----1
OUTPUT

VAWE.mqe,TNN(INFUT

,. Now .. "h,h.,e01.npu' OUTPUT
o 5511290J,

PLM·86

1---1

VALUE)

VALUE .. a.bou'

D.ASM
C.ASM
'l'!tloEXTIIM mu"oppe.,ou, .. deoloIiSEGMEMTEHDS
pa".
UTRNmq.,TNH FAR

INPUT

VALVE

OUTPUT

DO 40 62

VALUE DO

I--'-----I~ LINK 86

~:;~:ll"Hon " • I.ot

1---1
LINKED USER
OBJECT MODULE

'

The loU"",ngcode duphcate.th •• bovePLtN

''''gnmenl
.aIlWie,

sla'.m~nt

.,a.p' ",lit LONG /lEAL
Loodthpo,ome,e,Onlo ,h. SOS1

.,.cI:
CALLmqlt,TNH
fSTPOUTPUT VALUE

, ••• ,heh".."bo],cl."Q_nt
,Io,elheon.we,ondpoplh.
a087.'ack

W,th ,h. le,l InP"! OUTPUT VALUE,st>O",,,bou1
055112603

©INTEL CORPORATION, 1983

MAY 1983

ORDER NUMBER:121653-001

3-46

8087 SUPPORT LIBRARY

CEL87.LIB
THE COMMON ELEMENTARY FUNCTION LIBRARY
CEl87.LlB contains commonly used floating pOint functions. It is used along with the 8087 numeric coprocessor or
the 8087 emulator and it provides a complete package of elementary functions, giving valid results for all appropriate
inputs. This library provides PUM·86 and ASM·86 users all the math functions supported intrinsically by the
Fortran-86. Following is a summary of CEl87 functions, grouped by functionality.
Rounding and Truncation Functions:
mqerlEX, mqerlE2, and mqerlE4 round a real number to the nearest integer; to the even integer if there is a tie. The
answer returned is real, a 16-bit integer or a 32-bit integer respectively.
mqerlAX, mqerlA2, mqerlA4 round a real number to the nearest integer, to the integer away from zero if there is a tie;
the answer returned is real, a 16-bit integer or a 32-bit integer, respectively.
mqerlCX, mqerlC2, mqerlC4 truncate the fractional part of a real input; the answer is real, a 16-bit integer or a 32-bit integer, respectively.
Logarithmic and Exponential Functions:
mqerlGD computes decimal (base 10) logarithms.
mqerLGE computes natural (base e) logarithms.
mqerEXP computes exponentials to the base e.
mqerY2X computes exponentials to any base.
mqerYI2 raises an input real to a 16-bit integer power.
mqerYI4 is as mqerYl2, except to a 32-bit integer power.
mqerYIS is as mqerYl2, but it accommodates PUM-86 users.
Trigonometric and Hyperbolic Functions:
mqerSIN, mqerCOS, mqerTAN compute sine, cosine, and tangent.
mqerASN, mqerACS, mqerATN compute the corresponding inverse functions.
mqerSNH, mqerCSH, mqerTNH compute the corresponding hyperbolic functions.
mqerAT2 is a special version of the arc tangent function that accepts rectangular coordinate inputs.
Other Functions:
mqerDIM is FORTRAN's positive difference function.
mqerMAX returns the maximum of two real inputs.
mqerMIN returns the minimum of two real inputs.
mqerSGH combines thE! sign of one input with the magnitude of the other input.
mqerMOD computes a modulus, retaining the sign of the dividend.
mqerRMD computes a modulus, giving the value closest to zero.

DCON87.LlB
THE DECIMAL CONVERSION LIBRARY
DCON87.LlB is a library of procedures which convert binary representations of floating point numbers and ASCIIencoded string of digits.
The binary-to-decimal procedure mqcBIN DECLOW accepts a binary number in any of the formats used for the
representation of floating point numbers in the 8087. Because there are so many output formats for floating point
numbers, mqcBIN_DEClOW does not attempt to provide a finished, formatted text string. Instead, it provides the
"building blocks" for you to use to construct the output string which meets your exact format specification.

3-47

AFN-02063B

8087 SUPPORT LIBRARY

7

.

The decimal-ta-binary procedure mqcDEC_BIN accepts a text string which consists of a decimal number with
optional sign, decimal pOint, and/or power-of-ten exponent. It translates the string into the caller's choice ·of binary
formats.
.
Decimal-to-binary procedure mqcDECLOW_BIN is provided for callers who have already broken the decimal number
Into its constituent parts.
The procedures mqcLONG_TEMP, mqcSHORT_TEMP, mqcTEMP_LONG, and mqcTEMP_SHORT convert floating
point numbers between the longest binary format, TEMP_REAL, and the shorter formats ..

EHS7.LlB
THE ERROR HANDLER MODULE
EH87.LlB Is a library of five utility procedures which a user can utilize for writing trap handlers. Trap handlers are
called when an unmasked 8087 error occurs.
The 8087 error reporting mechanism can be used not only to report error conditions, but also to let software implement
IEEE standard options not directly supported by the chip. The three such extensions to the 8087 are: normalizing
mode, non-trapping not-a-number (NaN), and non-ordered comparison. The utility procedures support these extra
features.
DECODE is called near the beginning of the trap handler. It preserves the complete state of the 8087, and also identifies what function called the trap handler, and returns available arguments and/or results. DECODE eliminates much
of the effort needed to determine what error caused the trap handler to be called.
NORMAL provides the "normalizing mode" capability for handling the "D" exception. By calling NORMAL in your trap
handler, you eliminate the need to write code in your application program which tests for non-normal inputs.
SIEVE provides two capabilities for handling the "I" exception. It implements non-trapping NaN's and non-ordered
comparisons. These two IEEE standard features are useful for diagnostic work.
ENCODE is called near the end of the trap handler. It restores the state of the 8087 saved by dECODE, and performs a
choice of concluding actions, by either retrying the offending function or returning a specified result.
FILTER calls each of the above four procedures. If your error handler does nothing more than detect fatal errors and
implement the features supported by SIEVE and NORMAL, then your interface to EH87.LlB can be accomplished with
a single call to FILTER.

ESOS7
THE FULL SOS7 EMULATOR
E8087 is an object module that functionally emulates the 8087 coprocessor chip. It is ideal for use during prototyping
and debugging floating point programs. However, the target system should use the 8087 component because it executes 1000 times faster and uses Significantly less memory.

3-48

AFN·02063B

inter

8087 SUPPORT LIBRARY

E8087.L1B, 8087.L1B, 87NULL.LIB
INTERFACE LIBRARIES
EBOB7. LIB, BOB7.LlB and B7NULL. LIB libraries configure a user's application program for his run·time environment:
running with the emulator, with the BOB7 component or without floating point arithmetic, respectively.

SPECIFICATIONS
TARGET ENVIRONMENT

Required Software

BOB6/BOBB Based Microcomputer System

For Series II:
BOB6/80BB Software Development Package

DEVELOPMENT ENVIRONMENT
Required Hardware

Documentation Package

All Intel Microcomputer Development Systems (Series II.

Numeric Support Library Manual

Series III/Series IV)

• Recommended

ORDERING INFORMATION
Part Number

Description

MDS*·319

BOB7 Support Library

Requires Software License

SUPPORT
Intel offers several levels of support for this prodiJct
which are explained in detail in the price list. Please
consult the price list for a description of the support
options available.
*MDS is an ordering code only and is not used as a product name or trademark. MDS is a registered trademark of
Mohawk Data Sciences Corporation.

3-49

AFN-02063B

8089 lOP
SOFTWARE SUPPORT PACKAGE
#407200

• Program Generation for the 8089 1/0
Processor on the Intellec®
Microcomputer Development System

• Supports 8089·Based Addressing
Modes with a Structure Facility that
Enables Easy Access to Based Data

• Contains 8089 Macro Assemhler, plus
Relocation and Linkage Utilities

• Powerful Macro Capabilities

• Relocatable Object Module
Compatible with All iAPX 86 and iAPX
88 Object Modules

• Provides Timing Information in
Assembly Listing

• Fully Supports Symbolic Debugging
with the RBF·89 Software Debugger

• Fully Detailed Set of Error Messages

The lOP Software Support Package extends Intellec Microcomputer Development System support to the 8089
I/O Processor. The macro assembler translates symbolic 8089 macro assembly language instructions into
relocatable machine code. The relocation and linkage utilities provide compatibility with iAPX 86, iAPX 88, and
8089 modules. and make structured, modular programming easier.
'
The macro assemb.ler also provides symbolic debugging capability when used with the RBF-89 software
debugger. 8089 program modularity is supported with inter-segment jumps and calls. The macro assembler
also provides instruction cycle counts in the listing file, for giving the programmer execution timing information. The programs in the 8089 Software Support Package run on any Intellec Series II or Model 800 with 64K
bytes of memory.

•

•

The following are trademarks of Intel Corporation and may be used only to Identify Intel products exp, CREDIT, Intallee, Multlbus. I, ,sec, Multlmodule, ICE, ,sex, PROMPT, les,
tRMX, l-Ibrary Manager, Promware,lnslte, MeS, RMX, Intel, Megachassts, UP!, InteleVISlon, Mlcromap, /-,Scope and the combination of ICE, .sec, ISBX, MeS. or RMX and a numerical
suffiX

MAY 1983

ORDER NUMBER:210853-002

© INTEL CORPORATION 1983

3-50

8089 lOP SOFTWARE SUPPORT PACKAGE

so that any changes to that sequence need to be
made in only one place in the program. Common
code sequences that differ only slightly can also be
referred to with a macro call, and the differences can
be substituted with macro parameters.

FUNCTIONAL DESCRIPTION
The lOP Software Support Package contains:
ASM89 -The 8089 Macro Assembler.
LlNK86 - Resolves control transfer references between 8089 object modules, and data references in 8086, 8088, and 8089
modules.

ASM89 provides symbolic debugging information in
the object file. The RBF-89 debugger makes use of
this information, so the programmer can symbolically debug 8089 programs. ASM89 also provides
cycle counts for each instruction in the assembly
listing file (see Table 1). These cycle counts help the
programmer determine how long· a particular
routine or code sequence will take to execute on the
8089.

LOC86 -Assigns absolute memory addresses to
8089 object modules.
OH86

-Converts absolute object modules to
hexadecimal format.

UPM

- The Universal PROM Mapper, which supports PROM programming In all IAPX
86/11 and iAPX 88/11 applications.

ASM89 provides relocatable object module compatibility with the 8086 and 8088 microprocessors.
This object module compatibility, along with the
8086/8088 relocation and linkage utilities, facilitates
the designing of iAPX 86/11 and iAPX 88/11 systems.

ASM89 translates symbolic 8089 macro assembly
language instructions into the appropriate machine
codes. The ability to refer to both program and data
addresses with symbolic n'ames makes it easier to
develop and modify programs, and avoids the errors
of hand translation.
The powerful macro facility allows frequently used
code sequences to be referred to by a single name,

ASM89 fully supports the based addressing modes
of the 8089. A structure facility allows the user to
define a template that enables accessing of based
data symbolically.

SPECIFICATIONS

Shipping Media

Operating Environment

-Single and Double Density Diskettes

Intel Microcomputer Development Systems (Model
800, Series II, Series III, Series IV)

ORDERING INFORMATION
Support
Hotline Telephone Support, Software Performance
Report (SPR), Software Updates, Technical Reports,
and Monthly Technical Newsletters are available.

Part Number

Description

MDS*-312

8089 lOP Software Support Package

Requires Software License

Documentation Package
8089 Macro Assembler User's Guide (9800938)
8089 Macro Assembler Pocket Reference (9800936)
MCS-86 Software Development Utilities Operating
Instructions for ISIS-II Users (9800639)

'MDS is an ordering code only and IS not used as a product name
or trademark MDS'" IS a registered trademark of Mohawk Data
Sciences Corporation

Universal PROM Programmer .User's Manual
(9800819)

3-51

AFN·OO8408C

8089 lOP SOFTWARE SUPPORT PACKAGE

Table 1. Sample Program Listing

i~rS-11 H83 ttR(,I(oJ .. 3)t:"8!.E~ 1005 IolS~Ett8L{ OF ItOflUL£ TASk
oe'Ef '40DUlf PLACEiJ !'I
rl r",s. OS)
1I4YOt

"'~~E~81.fR

OilHl.T CO[fE

!I'4C

"lie

L rHE

souitC£

....... "" , ........... ~ ...... ~ .. '1· .......... •• .. •• ...... •• ...... •••• ...... • .. :
e86~

BIIB

iI

!'Ill.!'!'

TASK

T >I Sf.

£grams can use built-in functions and predefined
p rocedu res-I N I T$R E AL$ M ATH$ UNIT,
SET$REAL$MODE. GET$REAL$ERROR,
SAVE$REAL$STATUS, RESTORE$REAL$STATUS
-to control the operation of the 80287 within the
scope of the language.

Language Compatibility
PL/M 286 object modules are compatible with object
modules generated by all other 286 translators. This
means that PL/M programs may be linked to programs written in any other 286 language.
Object modules are compatible with In-Circuit
Emulators; DEBUG compiler control prol(ides the InCircuit Emulators with full symbolic debugging
capabilities.

Built-In String Handling Facilities

PL/M 286 language is upward compatible with PLiM
86 and PL/M 80 so that application programs may be
easily ported to run on the protected mode iAPX 286.

The PL/M 286 language contains built-in functions
for string manipulation. These byte and word functions perform the following operations on character
strings: MOVE, COMPARE, TRANSLATE, SEARCH,
SKIp, and SET.

Supports Seven Data Types
PL/M makes use of seven data types for various
applications. -These data types range from one to
four bytes and facilitate various arithmetic, logic,
and addressing functions:

Built-In Port I/O
PL/M 286 directly supports input and output from the
iAPX 286 ports for single BYTE and WORD transfers.
For BLOCK transfers, PLiM 286 programs can make
calls to predefined procedures.

-Byte: 8-bit unsigned number
-Word: 16-bit unsigned number
-Dword: 32-bit unsigned number
-Integer: 16-bit signed number
-Real: 32-bit flo~ting-point number
-Pointer: 16-bit or 32-bit memory address
indicator
-Selector: 16-bit pointer base.

Interrupt Handling
PL/M 286 has the facility for generating and handling
interrupts on the iAPX 286. A procedure may be
defined as an interrupt handler through use of
the INTERRUPT attribute. The compiler will
then generate code to save and restore the processor status on each execution of the user-defined

Another powerful facility allows the use of BASED
variables which permit run-time mapping of var-

3-61

AFN-OOM3B

infel'

PUM 286 SOFTWARE PACKAGE

interrupt handler routine. The PLIM statement
CAUSE$INTERRUPT allows the user to trigger a software interrupt from within the program.

-"Strength reductions": a shift left ratheT than
multiply by 2; and elimination of common subexpressions within the same block
-Machine code optimizations; elimination of
superfluous branches; reuse of duplicate code;
removal of unreachable code
-Optimization of based-variable operations and
cross-statement loadl store.

Protection Model
PLIM 286 supports the implementation of protected
operating system software by providing built-in procedures and variables to access the protection
mechanism of the iAPX 286. Predefined variablesTASK$REGISTER, LOCAL$TABLE, MACHINE$
STATUS, etc.-allow direct access and modification
of the protection system. Untyped procedures and
functions-SAVE$GLOBAl$TABLE, RESTORE$
GLOBAL$TABLE, SAVE$INTERRUPT$TABLE,
RESTORE$INTERRUPT$TABLE, ClEAR$TASK$
SWITCHED$FLAG, GET$ACCESS$RIGHTS, GET
$SEGMENT$lIMIT, SEGMENT$READABLE,
SEGMENT$WRITABLE, ADJUST$RPL-provide all
the facilities needed to implement efficient operating
system software.

Error Checking
The Pl/M 286 compiler has a very powerful feature
to speed up compilations. If a syntax or program
error is detected, the compiler will skip the code
generation and optimization passes. This usually
yields a 2X performarce increase for compilation of
programs with errors.
A fully detailed and helpful set of programming and
compilation error messages is provided by the compiler and user's guide.

.:1"'"

BENEFITS

Complier Controls

PLIM 286 is designed to be an efficient, costeffective solution to the special requirements of
protected mode iAPX 286 Microsystem Software Development, as illustrated by the following benefits of
PLIM use:

The PL/M 286 compiler offers controls that facilitate
such features as:
-Optimization
-CQnditional compilation
-The inclusion of additional PL/M source files
from disk
-Cross-reference of symbols
-Optional assembly language code in the
listing file
- The setting of overflow conditions for run-time
handling.

Low Learning Effort
PL/M 286 is easy to learn and use, even for the novice
programmer.

Earlier Project Completion

Addressing Control

Critical projects are completed much earlier than
otherwise possible because PL/M 286, a structured
high-level language, increases programmer
productivity.

The PL/M 286 compiler uses the SMALL, COMPACT,
MEDIUM, and LARGE controls to generate optimum
addressing instructions for programs. Programs
of any size can be easily modularized into
"subsystems" to exploit the most efficient memory
addressing schemes. This lowers total memory requirements and improves run-time execution of
programs.

Lower Development Cost
Increases in programmer productivity translate immediately into lower software development costs because less programming resources are required for a
given programmed function.

Code Optimization

Increased Reliability

The PL/M 286 compiler offers four levels of optimization for significantly reducing overall program size.

PL/M 286 is designed to aid in the development of
reliable software (PL/M 286 programs are simple
statements of the program algorithm). This substantially reduces the risk of costly correction of errors in

-Combination or "folding" of constant
expressions; and short·circuit evaluation of
Boolean expressions

3-62

AFN-00643B

PL/M 286 SOFTWARE PACKAGE

systems that have already reached full production
status, as the more simply stated the program is, the
more likely it is to perform its intended function.

Cost-Effective Alternative to
Assembly Language

Programs written in PL/M tend to be saitdocumenting, thus easier to read and understand.
This means it is easier to enhance and maintain
PL/M programs as the system capabilities expand
and future products are developed.

PL/M 286 programs are code efficient. PLIM 286
combines all of the benefits of a high-level language
(ease of use, high productivity) with the ability to
access the iAPX 286 architecture, This includes language features for control of the iAPX 286 protection
mechanism. Consequently, for the development of
systems software, PLIM 286 is the cost-effective alternative to assembly language programming.

SPECIFICATIONS

Documentation Package

Operating Environment

PL/M 286 User's Guide

Easier Enhancements and Maintenance

Intel Microcomputer Development System (Series
III/Series IV)

ORDERING INFORMATION

SUPPORT:

Part Number

Description

iMDX 323

PL/M 286 Software Package

Hotline Telephone Support. Software Performance
Report (SPR). Software Updates. Technical Reports.
and Monthly Technical Newsletters are available.

Requires Software License

3-63

AFN-CKMI438

inter
VAX*/VMS* RESIDENT
iAPX-86/88/186
SOFTWARE DEVELOPMEN.T PACKAGES
•

Execut~s on DEC VAX· MInicomputer
under VMS· Operating System to
translate PUM-86, Pascal-86 and
ASM-86 Programs for iAPX-86, 88
and 186 Microprocessors.

• Packages include Pascal-86; PUM-86;
ASM-86; Link and Relocation Utilities;
OH-86 Absolute Object Module to
Hexadecimal Format Converter; and
Libra.ry Manager Program.
• Output linkable with Code Generated
on Intellec® Development Systems.

The VAX.NMS Resident Software Development Packages contain software development tools for the iAPX-86,
88, and 186 microprocessors. The package lets the user de~elop, compile, maintain libraries, and link and
locate programs on ~ VAX. running the VMS operating system. The translator output is object module compatible with programs translated by the corresponding version of the translator on an Intellec Development System.
Three packages are available:
1. An ASM-86 Assembler Package which includes the Assembler, the Link Utility, the Locate Utility,
the absolute object to hexadecimal format conversion utility and the Library Manager Program.
2. A PLlM-86 Compiler Package which contains the PLlM-86 Compiler and Runtime Support Libraries.
3. A Pascal-86 Compiler Package which contains the Pascal-86 Compiler and Runtime Support Libraries.
The VAXIVMS resident development packages and the Inteliec Development System development packages
are built from the same technology base. Therefore, the VAXIVMS resident development packages and the
Intellec Developmerrl System development packages are very similar. .
Version numbers can be used to Identify features correspondence. The VAXNMS resident development
packages will have the same features as the Intellec Development System product with the same version
.
number.
Support for the iAPX-186 processor will be provided as an update to the iAPX-86, 88 software.
The object modules produced by the translators contain symbol and type information for programming
debugging using ICET• translators and/or the PSCOPE debugger. For final production version, the compiler
can remove this extra information and code.

·VAX, DEC, and VMS are trademarks of DIgital EqUipment Corporation

@INTEL CORPORATION. 1983

ORDER

3-64

MAY 1983
NUMBER:21~

VAX*IVMS* RESIDENT

VAX*-PL/M-86/88/186 SOFTWARE PACKAGE
• Executes on VAX*Minicomputer Under
the VMS* Operating System
iii

Supports 16~Bit Signed Integer and
32-Bit Floating Point Arithmetic in
Accordance with IEEE Proposed
Standard

• Code Optimization Assures Efficient
Code Generation and Minimum
Application Memory Utilization
• Bunt-In Syntax Checker Doubles
Performance for Compiling Programs
Containing Errors

• Easy-To-Learn Block-Structured
Language Encourages Program
Modularity

• Source Input/Object Output Compatible
with PL/M-86 Hosted on an Intellec®
Development System

• Produces Relocatable Object Code
Which is Linkable to All Other Intel 8086
Object Modules, Generated on Either a
VAX* or Intellec® Development Systems

• ICE™, PSCOPE Symbolic Debugging
Fully Supported

Like its counterpart for MCS®-80/85 program development, and Intellec® hosted IAPX-86 program development, VAX-PL/M-86 is an advanced, structured high-level programming language. The VAX-PLlM-86
compiler was created specifically for performing software development for the Intel iAPX-86, 88, and 186
Microprocessors.
PL/M is a powerful, structured, high-level system implementation language In which program statements can
naturally express the program algorithm. This frees the programmer to concentrate on the logic of the
program without concern for burdensome details of machine or assembly language programming (such as
register allocation, meanings of assembler mnemonics, etc.).
The VAX-PLlM-86 compiler efficiently converts free-form PLiM language statements into equivalent
iAPX-86/88/186 machine instructions. Substantially fewer PLiM statements are necessary for a given application than if it were programmed at the assembly language or machine code level.
The use Qf PLiM high-level language for system programming, instead of assembly language, results in a high
degree of engineering productivity during project development. This translates into significant reductions in
initial software development and follow-on maintenance costs for the user.

'VAX, DEC. and VMS are trademarks of Digital Equipment Corporation

3-65

AFN·OO680C

VAX·NMS· RESIDENT

VAX*-PASCAL-86/88 SOFTWARE PACKAGE
• Executes on VAX· Minicomputer Under
the VMS· Operating System

• Strict Implementation of ISO Standard
Pascal

• Produces Relocatable Object Code
Which Is Linkable to All Other Intel 8086
Object Modules, Generated on Either a
VAX· or Intellec® Development Systems

• Useful Extensions Essential for Microcomputer Applications
• Separate Compilation with TypeChecking Enforced Between Pascal
Modules

• ICE™, PSCOPE Symbolic Debugging
Fully Supported

• Compiler Option to Support Full RunTime Range-Checking

• Implements REALMATH for Consistent
and Reliable Results

• Source Input/Object Output
Compatible with Pascal-86 Hosted on a
Intellec Development System

• Supports iAPX-86/20, 88/20 Numeric
Data Processors

VAX-PASCAL-86 conforms to and implements the ISO Pascal standard. The language is enhanced to
support microcomputer applications with special features, such as separate compilation, interrupt
handling and direct port I/O. Other extensions include additional data types not required by the standard
and miscellaneous enhancements such as an allowed underscore in names, an OTHERWISE clause in
CASE construction and so forth. To assist the development of portable software, the compiler can be
directed to flag all non-standard features.
The VAX-PASCAL-86 compiler runs on the Digital Equipment Corporation VAX under the VMS
Operating System A well-defined I/O interface is provided for run-time support. This allows a userwritten operating system to support application programs on the target system as an alternate to the
development system environment. Program modules compiled under PASCAL-86 are compatilble and
linkable with modules written in PUM-86, and ASM-86. With a.complete family of compatible programming languages for the iAPX-86, 88, and 186 one can implement each module in the language most
appropriate to the task at hand.

'VAX, DEC, and VMS are trademarks of Dlgllal Equipment Corporation

3-66

AFN-0068OC

VAX*/vMS* RESIDENT

VAX*-iAPX-86/88/186 MACRO ASSEMBLER
• Executes on VAX· Minicomputer Under
The VMS· Operating System

• "Strongly Typed" Assembler Helps
Detect Errors at Assembly Time

• Produces Relocatable Object Code
Which Is Linkable to All Other Intel
iAPX-86/88/186 Object Modules,
Generated on Either a VAX· or Intellec®
Development Systems

• High-Level Data Structuring Facilities
Such as "STRUCTURES" and
"RECORDS"
• Over 120 Detailed and Fully Documented
Error Messages

• Powerful and Flexible Text Macro Facility
with Three Macro Listing Options to Aid
Debugging

• Produces Relocatable and Linkable
Object Code
• Source Input/Object Output Compatible
with ASM-86 hosted on an Intellec
Development System

• Highly Mnemonic and Compact
Language, Most Mnemonics Represent
Several Distinct Machine Instructions

VAX-ASM-86 is the "high-level" macro assembler for the iAPX-86/88/186 assembly language. VAX-ASM-86
translates symbolic iAPX-86/88/186 assembly language mnemonics into iAPX-86/88/186 relocatable
object code.
VAX-ASM-86 should be used where maximum code efficiency and hardware control is needed. The
iAPX-86/88/186 assembly language includes approximately 100 instruction mnemonics. From these few
mnemonics the assembler can generate over 3,800 distinct machine instructions. Therefore, the software
development task is simplified, as the programmer need know only 100 mnemonics to generate all
possible iAPX-86/88/186 machine instructions. VAX-ASM-86 will generate the shortest machine instruction
possible given no forward referencing or given explicit information as to the characteristics of forward
referenced symbols.
VAX-ASM-86 offers many features normally found only in high-level languages. The iAPX-86/88/186
assembly language is strongly typed. The assembler performs extensive checks on the usage of variable
and labels. The assembler uses the attributes which are derived explicity when a variable or label is first
defined, then makes sure that each use of the symbol in later instructions conforms to the usage defined for
that symbol. This means that many programming errors will be detected when the program is assembled,
long before it is being debugged on hardware.

·VAX, DEC. and VMS are trademarks of Ol91tal Equipment Corporatlon

3-67

AFN-0068OC

VAX*IVMS*RESIDENT

VAX*-LIB-86
• Executes on VAX* Minicomputer Under
the VMS* Operating System

• Libraries Can be Used as Input to
VAX*-LINK-86.Which Will Automatically
Link Modules from the Library that
Satisfy External References in the
Modules Being Linked

• VAX*-LIB-86 is a Library Manager
Program which Allows You to:
Create Specifically Formatted Files to
Contain Libraries of Object Modules
Maintain These Libraries by Adding or .
Deleting Modules
Print a Listing of the Modules and
Public Symbols in a Library File

• Abbreviated Control Syntax

Libraries aid in the job of building programs. The library manager program VAX-LlB-86 creates and
maintains files containing object modules. The operation of VAX-UB-86 is control/ed by commands to
indicate which operation VAX-LlB-86 is to perform. The commands are:
CREATE:
ADD:
DELETE:
LIST:
EXIT:

creates an empty library file
adds object modules to a library file
deletes modules from a library file
lists the module directory of library files
terminates the LlB-86 program and returns control to VMS

When using object libraries, the linker will call only those object modules that are required to satisfy external
references, thus saving memory space.

VAX-OH-86
• Facilitates Preparing a file for Loading
by $ymbolic Hexadecimal Loader (e.g.
iSBC™ Monitor SDK-86 Loader), or
Universal PROM Mapper

• Executes on VAX* Minicomputer Under
the VMS* Operating System
• Converts an iAPX 86/88/186 Absolute
Object Module to Symbolic
Hexadecimal Format

• Converts an Absolute Module to a More
Readable Format that can be Displayed
on a CRT or Printed for Debugging

The VAX-OH-86 utility converts an 86/88 absolute object module to the hexadecimal format. This conversion
may be necessary for later loading by a hexadecimal loader such as the iSBC 86/1·2 monitor or the Universal
PROM Mapper. The conversion may also be made to put the module in a more readable format that can be
displayed or printed.
The module to be converted must be in absolute form; the output from VAX-LOC-86 is in absolute format.

'VAX, VMS are trademarks of Digital Equipment Corporation.

3-68

AFN·OO68QC

intJ

VAX*IVMS*RESIDENT

VAX*-LINK-86
• Automatic Generation of a Summary
Map Giving Results of the LINK-86
Process

• Executes on VAX* Minicomputer Under
the VMS* Operating System
• Automatic Combination of Separately
Compiled or Assembled 86/88/186
Programs Into a Relocatable Module,
Generated on Either a VAX or an Intellec®
Development System

• Abbreviated Control Syntax
• Relocatable modules may be Merged into
a Single Module Suitable for Inclusion in
a Library

• Automatic Selection of Required
Modules from Specified Libraries to
Satisfy Symbolic References

• Supports "Incremental" Linking
• Supports Type Checking of Public and
External Symbols

• Extensive Debug Symbol Manipulation,
allowing Line Numbers, Local Symbols,.
and Public Symbols to be Purged and
Listed Selectively

VAX-lINK-86 combines object modules specified in the VAX-lINK-86 input list into a single output module.
VAX-lINK-86 combines segments from the input modules according to the order in which the modules are
listed.
'
VAX-lINK-86 will accept libraries and object modules built from VAX-PLlM-86, VAX-PASCAL-86, VAX-ASM86, or any other Intel translator generating 8086 Relocatable Object Modules, such as the Series III resident
translators.
Support for incremental linking is provided since an output module produced by VAX-lINK-86 can be an
input to another link. At each stage in the incremental linking process, unneeded public symbols may be
purged.
VAX-lINK-86 supports type checking of PUBLIC and EXTERNAL symbols reporting a warning if their
types are not consistent.
VAX-lINK-86 will link any valid set of input modules without any controls. However, controls are available
to control the output of diagnostic information in the VAX-lINK-86 process and to control the content of
the output module.
VAX-lINK-86 allows the user to create a large program as the combination of several smaller, separately
compiled modules. After development and debugging of these component modules the user can link them
together, locate them using VAX-LOC-86 and enter final testing with much of the work accomplished.

·VAX, DEC, and VMS are trademarks of Digital EqUipment Corporation

3-69

AFN·OO8IOC

VAX*/VMS*RESIDENT

VAX*-LOC-86
• Executes on the VAX* Minicomputer
Under the VMS* Operating. System

• Abbreviated Control Syntax
• Automatic and Independent Relocation
of Independent Relocation of Segments.
Segments May be Relocated to Best
Match Users Memory Configuration

• Automatic Generation of a Summary
Map Giving Starting Address, Segment
Addresses and Length, and Debug
Symbols and their Addresses

• Extensive Debug Symbol Manipulation,
Allowing Line Numbers, Local Symbols,
and Public Symbols to be Purged and
Listed Selectively

• Extensive Capability to Manipulate the
Order and Placement of Segments in
8086/80$8 Memory

ReJocatability allows the programmer to code programs or sections of programs without having to know the
final arrangement of the object code in memory.
VAX-LOC-B6 converts relative addresses in an input module in iAPX-B6/BB/1B6 object module format to
absolute addresses. VAX-LOC-B6 orders the segments in the input module and assigns absolute addresses
to the segments. The sequence in which the segments in the input module are assigned absolute
addresses is determined by their order in the input module and the controls supplied with the command.
VAX-LOC-B6 will relocate any valid input module without any controls. However, controls are available to
control the output of diagnostic information in the VAX-LOC-B6 process, to control the content of the
output module, or both.
The program you are developing will almost certainly use some mix of random access memory (RAM),
read-only memory (ROM), and/or programmable read-only memory (PROM). Therefore, the location
of your program affects both cost and performance in your application. The relocation feature allows you to
develop your program and then simply relocate the object code to suit your application.

SPECIFICATIONS

Documentation Package

Operating Environment

iAPX-B6, BB Development Software Installation
Manual and User's Guide for VAXNMS, Order
number 121950-001

Required Hardware
VAX' 11/7BO, 11/7B2, 11/750, or 11/730
9 Track Magnetic Tape Drive, 1600 BPI

Shipping Media
9 Track Magnetic Tape 1600 bpi

Required Software
ORDERING INFORMATION

-VMS Operating System V3.0 or Later. All of the development packages are delivered as unlinked VAX object code which can be linked to VMS as designed for
the system where the development package is to be
us",d. VMS command files to perform the link are
provided.

Part Number Description
iMDX-341VX

VAX-ASM-86, VAX-LiNK-B6, VAXLOC-B6, VAX-LlB-B6, VAX-OH-86,
Package
iMDX-343VX VAX-PLM-B6 Package
IMDX-344VX VAX-PASCAL-B6 Package
REQUIRES SOFTWARE LICENSE

'VAX, DEC, and VMS are trademarks of Digital Equipment Corporation

3-70

AFN-0068OC

iSDM™ 86
SYSTEM DEBUG MONITOR
• Supports application access to ISIS-II
files

• Supports target system debugging 10r
iSBC® liAPX 86,88,186 and 188-based
applications
• Provides interactive debugging
commands including single-step code
execution and symbolic displays of
results
• Supports 8087 Numeric Processor
Extension (NPX) for high-speed math
applications
• Allows building of custom commands
through the Command Extension
Interface (CEI)

• Provides program load capability from
an Intellec® Development System
• Contains configuration facilities which
allow an applications bootstrap from
iRMX™ 86 and 88 file compatible
peripherals
• Modular to allow use from an Intellec
Development System or from a stlJndalone terminal

The Intel iSDMTM 86 System Debug Monitor package contains the necessary hardware, software, cables, EPROMs
and documentation required to interface, through a serial or parallel connection, an iSBC® 86/05, 86/12A, 86/14,
86/30,88/25,88/40,88/45,186/03,186/51,188/48, or iAPX 86, 88,186 or 188 target system to an MDS 800, Series
II or Series IIIlntellec® Microcomputer Development System for execution and interactive debugging of applications
software on the target system. The Monitor can: load programs into the target system; execute the programs instruction by instruction or at full speed; set breakpoints; and examinelmodify CPU registers, memory content, and other
crucial environmental details. Additional custom commands can be built using the Command Extension Interface
(CEI). The Monitor supports the OEM's choice of the iRMXTM 86 Operating System, the iRMX 88 Real-Time MUltitasking Executive or a custom system for the target application system. OEM's may utilize any iRMX 86,88 supported
target system peripheral for a bootstrap of the application system or have full access to the ISI8-11 files of the Intellec
System.

The following are trademarks of Intel Corporation and may be used only to describe Intel products" Intel, ICE, IMMX, lRMX, iSBe, Isex, ISXM, MUl TI8US, Multichannel and MULTIMODULE
Intel Corporation assumes no responsIbility for the use of any circuitry other than circuitry embodied In an Intel product. No other Circuit patent He.nses are Implied Information contained
heretn supercedes previously published specifICations on these deVices from Intel

© INTEL CORPORATION. 1983

3-71

October. 1983

Order Number: 230812-001

inter

iSDM™ 86

FUNCTIONAL DESCRIPTION

features included are: bootstrap of application software;
selective execution of program modules based on breakpoints or single stepping requests; examination, modification and movement of memory contents; examination
and modification of CPU registers, including NPX registers. All results are displayed in clearly understandable
formats. Refer to Table 1 for a more detailed list of the
iSDM 86 monitor commands.

Overview
The iSDM 86 Monitor extends the software development
capabilities of the Intellee system so the user can effectively develop applications to ensure timely product availability.
The iSDM 86 package consists of ,four parts:

Numeric Data Processor Support

• The loader program

Arithmetic applications utilizing the 8087 Numeric Processor Extension (NPX) are fully supported by the iSDM
86 Monitor. In addition to executing applications with the
full NPX performance, users may examine and modify
the NPX's registers using decimal and real number format.

• . The iSDM 86 Monitor
• The Command Extension Interface (CEI)
• The ISIS-II Interface
The user can use the ISDM 86 package to load programs
into the target system from the development system,
execute programs in an instruction-by-instruction manner,
and add custom commands through the command extension interface. The user also has the option of using
just the iSDM 86 Monitor and the CEI in a stand-alone
application, without the use of an Intellec development
system.

This feature allows the user to feel confident that correct
and meaningful numbers are entered for the application
without having to encode and decode complex real,
integer, and BCD hexadecimal formats.

Command Extension Interface (CEI)
The Command Extension Interface (CEI) allows the addition of custom commands to the i8DM 86 Monitor commands. The CEI consists of various procedures that can
be used to generate custom commands. Up to three
custom commands (or sets of commands) can be added.

Powerful Debugging"Commands
The iSDM 86 Monitor contains a powerful set of como.
mands to support the debugging process. Some of the

Table 1. Monitor Commands
Command
B

Function
Bootstrap application program from target systems peripheral device

C

Compare two memory blocks

D

Display contents of memory block

E'

Exit from loader program to ISIS-II Interface

F
G

Find speCified constant in a memory block

I

Execute application program
Input and display data obtained from input port

L'

Load absolute Intellec® object'file into target system memory

M

Move contents of memory block to another location

N

Display and exec::ute single instruction

0

Output data to output port

P

Print values of literals

R'

Load and execute absolute Intellec® object file in target system memory

S

Display and (optionally) modify contents of memory

T'

Transfer block of memory'to anlntellec® file

U,V,W
X

User defined custom commands extensions
Examine and (optionally) modify CPU and NPX registers

• Commands require an attached Series II/Series III.

3-72

inter

iSDM™ 86

of the target system. Pre-configured EPROM-resident
monitors are supplied by Intel for the iSBC 86105, 86/12A,
86/14,86/30,88/45,186/03,186/51, and 188/48 boards.
The monitor must be configured by the user for the iSBC
88/25, 88/40 boards and for other iAPX 86, 88, 186, 188
applications. iRMX 86 and iRMX 88 system users may
use the configuration facilities to include the iAPX 86,
88 Bootstrap Loader (V5.0 or newer) in the monitor.

to the monitor without programming new EPROMs or
changing the monitor's source code.

iSiS-ii Interface
The ISIS-II interface consists of libraries which contain
interlaces to ISIS-II 1/0 calls. A program running on an
iAPX 86, 88, 186 or 188-based system can use the ISIS-II
interlace and access the individual ISIS-II 110 calls. The
interlace allows the inclusion of these calls into the program; however, most of the calls require a Series III
Series III system. Table 2 contains a summary of the
major 1/0 calls and parameters.

Variety of Connections Available
The physical interface between the Intellec Microcomputer Development System and the target system can'
be established in one of three ways. The systems can
be connected via a serial link, a parallel link or a fast
paraliellink. The fast parallel link requires the use of an
iSBC 108(A), 116(A), 517 or 5191/0 expansion board in
the Inteliec system and is only available for connections
with the Series IIISeries III systems. The cabling arrangement is different depending upon the development system being used. Figure 1 displays the cable connections
needed between an Inteliec Series III system and a target
system for a serial interlace.

Program Load Capability
The iSDM 86 loader allows the loading of iAPX 86, 88,
186 or 188-based programs into the target system. It executes on a Intellec Microcomputer Development System
and communicates with the target system through a
serial or a parallel load interlace. If a Series IIISeries III
system containing an Intel 1/0 expansion board is being
used, the board can be used as a fast parallel load interface, freeing up the UPP port for application use.

The iSDM 86 Monitor does not require the use of a development system. The monitor can be used by simply
attaching a stand-alone terminal to the target system.
Figure 1 also displays the cable connections needed for·
this arrangement.

Configuration Facility
The monitor contains a full set of configuration facilities
which allow it to be carefully tailored to the requirements

Table 2. Routines for ISIS·II Services Available to Target System Applications
Target System Function

Routine
ATTRIB

Changes to ISIS-II file attribute

CI

Returns a character input from the console

CO

Transfers a character for console output

CLOSE

Clo~es

DELETE

Deletes the specified ISIS-II file

DQ$CFG

Returns information about monitor's communication link and type

an opened ISIS-II file

ERROR

Displays an error message on the Intellec@ console

EXIT

Exits to the target system monitor

LOAD

Loads target system memory with ISIS-II object code file

OPEN

Opens an ISIS-II file for access

READ

Reads up to 4096 bytes from an ISIS-II file to memory

RENAME

Renames an ISIS-II disk file

SEEK

Seeks to the specified ISIS-II file location

WRITE

Writes up to 4096 bytes from memory to an ISIS-II file

3-73

iSDMTM 86

SERIAL 110
PORT

A

fo
/'

I

APPROPRIATE
ISBC· BOARD

OEM RS232C
CABLE

INTELLEC® SERIES '"
DEVELOPMENT SYSTEM

Figure 1. Typical iSDM ™ 86 Serial Connection Environment

SPECIFICATIONS

• For Serial link:
- 8251A USART or 8274 Multiprotocol Serial Controller, and 8253/4 or 80130 or iAPX 186/188 timer,
or

Development System Environment
The Intellec Microcomputer Development System may
be utilized for application program development and, if
used, requires the following to support the iSDM 86
package:

- 82530 Serial Communications Controller, including
82530 timer

Hardware

• 48 Kbytes memory

• Supported iSBC Microcomputers:

• Double density or single density diskette subsystem

iSBC 86/05

Single Board Computer

• ISIS-II Operating System and associated language
translators

iSBC86/12A
iSBC 86/14

Single Board Computer

iSBC 86/30

Single Board Computer

iAPX 86, 88, 186, 188 TARGET SYSTEM
ENVIRONMENT
To support the iSDM 86 package, the target system must
contain the following:
• 2K read-write memory beginning at location OH
• 16K read-only memory beginning at location FCOOOH

Single Board Computer

iSBC 88/25

Single Board Computer

iSBC 88/40
iSBC 88/45

Single Board Computer

iSBC 186/03

Single Board Computer

iSBC 186/51

Single Board Computer

iSBC 188/48

Single Board Computer

Single Board Computer

• Supported iSBX MULTIMODULETM Boards:
iSBX 350 Parallel I/O MULTIMODULE Board

• For Parallel link:
- 8255A Programmable Peripheral Interface

iSBX 351 Serial I/O MULTIMODULE Board
3-74

inter

iSDMTM 86

System Monitor EPROMs:

iSDM™ 86 Package Contents
Cables:

Microcomputer

1-

Parallel I/O Cable (upload/download)

iSBC®86/05

2-

RS232 Cables

iSBC® 86/12A

Adaptors:

iSBC® 86/14

1-

Parallel Status Adaptor

iSBC® 86/30

1-

Parallel Adaptor

iSBC® 88/45

I/O Drivers and Terminators:

iSBC® 186/03

4-

Pull-up Resistor Packs

iSBC® 186/51

4-

Pull-up/down Resistor Packs

iSBC® 188/48

4-

Line Driver Packs

Single Density, ISIS Compatible

1-

Double Density, ISIS Compatible

Description

iSDM 86

Intellec to target system interface
and target system monitor, suitable
for use on iSBC 86, 88, 186, 188
computers, or other iAPX 86, 88,
186, 188 microcomputers. Package
includes cables, EPROMs, software and operator manual.
The iSDM 86 package includes
SPR Service for, 90 days after
shipment.

As with all Intel Software, purchase
of any of these options requires
execution of a standard Intel
Master Software License.
iSDM 86 RO

Object Software

iSDM 86 BSR

Machine Readable Source

Two 2764 EPROMs
Two 2764 EPROMs
Two 2764 EPROMs

146165-001 - iSDM 86 System Debug Monitor Reference Manual

ORDERING INFORMATION
Part Number

Four 2732A EPROMs

Reference Manual (Supplied):

Interface and Execution Software Diskettes:
1-

EPROM

3-75

iSDM™ 286
iAPX 286 SYSTEM DEBUG MONITOR
,
• Development support of iSBC® 286·and
iAPX 286·based applications

• Supports 80287 Numeric Processor
Extension (NPX) for high-speed math
applications

• Real Address Mode (RAM) and
Protected Virtual Address Mode
(PVAM) support
• Universal Development Interface (UDI)
support via development system
connection
• Underlying debugging tool for
iRMX™ 286R applications

• Program load capability from Intellec®
Series III Development Systems
• Bootstrap Loader for iRMX™ 286R, 86,
and 88 file compatible peripherals
• iAPX 286 single step operation allowed

The Intel iSDMTM 286 System Debug Monitor package contains the necessary hardware, software, cables,
EPROMs, and documentation required to interface in iSBC® 286 board or iAPX 286 component applications to
an Intell'ec® Series III through a high-speed link. The System Debug Monitor supports an OEM's choice of .the
iRMXTM 286R Real-Time Multitasking Operating System or custom operating system, with debugging tools to examine CPU registers, memory content, CPU descriptor tables, and other crucial environmental details. The Monitor
also allows programs to access files on the development system via the internal UDI support and the serial communication link .

..

3-76

iSDM™ 286

FUNCTIONAL DESCRIPTION

Single-step CPU operation

Overview

Change between Real Address Mode and Protected
Virtual Address Mode

The iSOM 286 System Oebug Monitor provides programmers of iAPX 286-based applications with the debugging tools needed to test new applications ranging
from single-user systems to complex operating
systems. Programmers are given direct access to both
the Real Address (ram) and Protected Virtual Address
(pvam) Modes of the CPU via a simple terminal interface, or via an Intellec Series'" Oevelopment System.

data structures Into clearly understandable displays.
ThiS display gives programmers a formatted view of
CPU registers such as LOTs, GOTs, lOTs, Segment
Selectors, and Task State Segments - not Just a senes
of unconnected digits.

Universal Development Interface

Numeric Data Processor Support

Any iRMX 86, Series III, or other UOI-based application
can be supported by the iSOM 286 Monitor. The Monitor
emulates many of the UOI calls (ram or pvam), and
passes all requests for a file system to the host development station. UOI applications such as compilers and
other programs available from Independent Software
Vendors can be tested in the target iAPX 286 environment Immediately.

In addition to executing 80287 Numenc Processor Extension (NPX) applications with full NPX performance,
programmers may examine and modify NPX registers
using decimal and real number format. Any locallon In
memory known to contain numenc values in standard
real format (IEEE P754) may be examined or modified
using normal decimal notation. In thiS manner programmers may feel confident that correct and meaningful
numbers are available to applications without having to
encode and decode complex real, integer, and BCO
hexadecimal formats.

Formatted Displays
The 150M 285 MonItor formats all iAPX 286 pre·defined

Powerful. Debugging Commands
A powerful set of user functions includes commands to:
Examine and Modify CPU Registers

High-Speed Serial Connection

Examine, Modify, and Move memory locations

Target application hardware is connected to the development system via a serial link cap~ble of 19.2K baud. •
All control operations and UOI file manipulations occur
over this link through the cables supplied. As shown in
Figure 1, the serial link is supported by the iSBC 86
USART port of the ~evelopment system.

Symbolic reference to variable names
Find and compare memory contents
Set program breakpoints
Bootstrap load application software

SERIAL I/O
PORT

,sec

286/10

Figure 1. Typical i5DM Til 286 Environment
AFN-01B04A

3-77

iSDM™ 286

SPECIFICATIONS
Development System Environment
Intellec MOS Series III with 64 KBytes.

Target System Environment
Any iAPX 286 system with 8274 (non-vectored mode)
serial link and 8254 timer, such as the iSBC 286110 Single
Board Computer. The 8259A interrupt controller is
optional.
EPROMs are supplied for locations OFF8000H through
OFFFFFFH.

ORDERING INFORMATION
Part Number

Description

SDM 286

iSBC 286 and iAPX 286 System Debug
Monitor package including cables,
EPROMs, software, and operator
manual.
Also available with the iSBC 286/10
ES Kit or with the iRMX 286R Kit.
A Software License Agreement
must be or have been executed.

SDM 286 BSR

Machine Readable source for SOM
286.
Special source code license agreement is required in addition to Soft\ ware License Agreement.

AFN·1804A

3-78

intJ
iRMX™
LANGUAGES

• Industry-standard languages and
utilities for developing applications on
iRMX-based systems. Includes
FORTRAN, Pascal, C, BASIC, PL/M,
assembler, text editor
• Complete set of utilities to create and
manage object modules
• Mix languages on single application
system with VDI standard
• Intel 8087 math coprocessor support
• Worldwide post-sales service and
support organization

;~~~~~~~ trademark of Bel! Laboratones

3-79

Because the high-level languages are
actually resident on the iRMX-based
system, OEMs can pass application
software directly on to end users. End
users may then tailor the OEM's system
to better meet application needs by writing programs uSing the same languages.

Language-Independent
Application Development
Intel's Universal Run-time Interface
(URI) and Object Module Format (OMF)
enable several users to write different
modules of an application, in different
languages, then link them together.

Full Language Support
for iRMXTM -Based Systems
Intel's iRMX™ 86 and 286R-based systems are completely supported by a wide
variety of popular languages and utilities
with which to build fast, real-time,
multi-tasking applications. Included are
the latest versions of FORTRAN, Pascal,
BASIC, C, PUM and Assembler for
Intel's iAPX 86 and iAPX 286 processors. Previously developed applications using any of these languages port
easily to iRMX-based systems with
minimal source code modifications.
In addition to the wealth of languages
available, iRMX-based systems are complemented by utilities with which to
create and manage object modules. This
latitude in configurability allows programmers to team their efforts in order to
achieve a shorter development time than
would otherwise be possible.

The OMF provides users with the ability
to mix languages on a single application
system, affording the luxury of choosing
exactly the right language tools for
specific pieces of the application, rather
than compromising specialized tasks for
the sake of one, project-wide language.
iRMX languages are fully compatible
with the Intel Series III Development
System, should the ilser choose to develop
applications on a specialized development system. Applications are easily
moved to the final target system for test,
debug and· minor redevelopment.

Fast, Lean Programs
For Rapid Processing
The iRMX language products enable
programmers to write the smallest, fastest programs available in high-level languages, due to the compiler's superior
ability to optimize code.
It is also possible to make iRMX
operating system calls directly from
FORTRAN, PASCAL and PUM. This
means that application developers can
take full advantage of the iRMX multiiasking capability, whereby multiple
applications execute concurrently on
the operating system. Multi-tasking, a
requirement of most real-time systems, is
sometimes as necessary in application
software development as in an operating
system environment.

3-80

Standardized REALMATH
Support
All the iRMX languages (except BASIC
and C) support the REALMATH floating
point standard. This ensures universal
consistency in numeric computation

results and enables the user to take
advantage of the Intel iAPX 86/20 and
iAPX 88/20 Numeric Data Processor or
iSBC® 337 MULTIMODULpM boards,
which boost performance two to four
times over that possible on a minicomputer.

All the Utilities Needed to
Link Languages
Utilities for iRMX operating
systems include Intel's own
EDIT, LINK, LOCATE
and LIBRARIAN. The
iRMX EDIT program
meets the needs of both
novice and sophisticated
users with powerful lineoriented editing facilities.
Using the iRMX LINK program, users
may link individually compiled object
modules to form a single; relocatable
object module. This provides the ability
to merge work from several programmers
into one cohesive application system.
The iRMX LOCATE utility maps
relocatable object code into the processor
memory segments, allowing user definition of module/memory type allocation.
For example, often-used portions of an
application may be mapped to (P)ROM.
The LIBRARIAN object code library
manager affords easy creation, collection
and maintenance of related object code to
reduce the overhead of separately maintained modules.

I
I

TARGET

Finally, the iRMX Assembler for the
iAPX 86 and iAPX 286 processors generate extremely efficient code and invoke
8086/8087 machme instructions,

iRMXTM 86 Pascal
iRMX Pascal meets the proposed ISO
language standard and implements
several mIcrocomputer extensions. A
compile-time option checks conformance
to the standard, making it easy to write
uniform code. Industry-standard specifications contribute to portability of application programs and provide greater
reliability.
.
iRMX 86 Pascal supports extensions,
such as an interrupt-handler and direct

port I/O extension, that allow programs
to be written specifically for microcomputers. Separate module compilation
allows linkage of Pascal modules with
modules written in other high-level
languages.
For more information on iRMX 86 Pascal see the Pascal 86 Software Package
data sheet (Intel order number 400670).

iRMXTM 86 FORTRAN
The iRMX 86 FORTRAN compiler provides total compatibility with FORTRAN

3-81

66 language standards, plus most new
features provided by the FORTRAN 77
language standard (the only significant
exception is complex numbers). iRMX
86 FORTRAN includes extensions specifically for microcomputer application
development. Programming is simplified
by relocatable object libraries, which
provide run-time support for execution
time activities.
.
iRMX 86 FORTRAN supports the 8087
math coprocessor for the most powerful

microcomputer solution available in
number-intensive applications. For more
information on iRMX 86 FORTRAN see
tbe FORTRAN 86 Software Package
data sheet (Intel order number 400630).

iRMX™ 86 PL/M
PLiM offers full access to micro com• puter architecture while simultaneously
offering all tbe benefits of a high-level
language. Invented by Intel in 1976,
PLiM 80 was the first microcomputerspecific; block-structured, high-level
language available. Since then, tbousands of users have generated
code for millions of microcomputerbased systems using PLiM 80 and
PLiM 86.
Software written for 8-bit
processors (PLIM 80)
are easily ported to the
more powerful 16-bit
(PLIM 86) environment. The
same portability will be available
future VLSI.
For more information about iRMX 86
PLiM see tbe PLiM 86/88 Software
Package data sheet (Intel order number
210689).

segmentation models, enabling applications to be written efficiently. The iRMX
86 C compiler combines assembly
language efficiency witb high-level language convenience; it can manipulate on
a machine-address level while maintaining tbe power and speed of a structured
language.
The iRMX 86 C compiler affords easy
portability of existing C programs to
iRMX-based systems. For more information on tbe iRMX C compiler see tbe
iRMx 86 C Software Package data sheet
(Intel order number 210768).

iRMXTM 86 Text Editor
The iRMX 86 Text Editor is screenoriented, menu-driven and easy to learn.
Guided by tbe menu of commands always before him, tbe user can edit text
and programs easily and efficiently.
iRMX 86 Text Editor allows tbe simultaneous edit of two files. This allows
easy trans(erral of text between files and
use of existing material in tbe creation of
new files. Creating macros, strings of
freqnently-used commands, is also very
simple. The editor' 'remembers" tbe
selected commands and allows the user to
re-use them repeatedly.

iRMX™ 86 BASIC
Intel's offering of Microsoft BASIC is a
standardized version of tbe most popular
high-level language in the world. Existing BASIC programs are easily ported to
iRMX-based systems. BASIC is an excellent pass-through language by which
an OEM can offer customers the ability
to wri te and modify their own
applications.

iRMX™ 86 C Compiler
l'

The popular new programming language,
C (Mark William's Company version), is
fully supported on iRMX-based systems.
iRMX 86 C offers both small and large

Intel Has Total Solutions
for Real-Time Systems
iRMX 86 and 286R are the fastest, most
powerful operating systems available for
multi-tasking, multi-user, real-time
applications. Complemented by a wide
range of industry-standard languages and
utilities, 'the iRMX-based systems are
highly flexible and configurable .
Application development for iRMXbased systems is possible at tbe board or
tbe system level. OEMs can integrate
functionality at the most profitable level
of product design, using one system for
both development and target use. Intel's
choice of industry standard high-level
languages enables the end user to extend
OEM-provided functionality even
further, if desired.
Who is better qualified to write and supply software for Intel VLSI tban Intel?
Today you have the ability to tap into
hundreds of available application software packages, languages and utilities,
peripherals and controllers and
MULTIBUS® boards.
Tomorrow, and ten years down the road,
you will be able to tap into tbe latest,
high-performance VLSI - without losing
today's software i~vesttnent.

Worldwide Service
and Support
All iRMX systems are completely supported by Intel's worldwide staff of
trained hardware and software engineers.
iRMX Language customers receive a
warranty that includes Hotline Support,
Software Updates, and Subscription
Service.
Complete documentation is provided for
all operating system and application
software languages, as well as for system
hardware components. An Intel system is
not a collection of hardware and software
pieces as much as a cohesive whole that
is supported and serviced as such.

,-•-

~~iRMXLANGUAGES@---3-82

Specifications
Required Hardware

Required Software

• Any iAPX 861286 based or iSBC 861
286 based system including Intel's
System 86/300 and 286/300 family. In
addition, object code from the compilers will run on iAPX 88 based systems.

The lKMX 86 Operanng Syslem Rdea,e
5 or later including the nucleus, basic I/O
system, extended I/O system and human
interface

• I40KB of memory

The iRMX 286 Operating System Release 2 or later including the nucleus,
basic I/O system, extended I/O system
and human interface

• Two iRMX 86 compatible floppy disks
or one hard disk
• One 8" double density or 5.25" doubledensity floppy disk drive for distribution of software
• System console device

-Of-

Purchase of any RMX language requires
signing of Intel's OEM License
Agreement (OLA).

Ordering Information
Language

Order Code

Product Contents

Warranty

ASM86,
Utilities

RMX860

Two 8" disk and two 5.25" diskettes
Edit Reference Manual-143587
iAPX 86/88 FamIly Utilities User's
Guide-121616
Macro Assembler Operating Instructions
-121628
ASM 86 Language Reference Manual121703
8087 Support Library Reference Manual
-121725

90 days:

Pascal

RMX861

Two8" diskettes and two 5.25" diskettes
Pascal 86 User's Guide-121539

90 days:
Software Updates, Subscription Service,
Hotline Support

FORTRAN

RMX862

Two 8" diskettes and two 5.25" diskettes
FORTRAN 86 User's Guide-121570

90 days:

One 8" diskette and one 5.25" diskette
PLiM 86 User's Guide-121636

90 days:

PLiM

RMX863

Software Updates, Subscription Service,
Hotline Support

Software Updates, Subscription Service,
HotlIne Support

Software Updates, Subscription Service,
Hotline Support

TX Editor

RMX864

One 8" diskette and one 5.25" diskette
TX Screen Echter User's Guide-14541O

90 days:
Software Updates, SubscnptlOn Service

BASIC

RMX865

One 8" diskette and one 5.25" diskette
BASIC Reference Manual-121806
BASIC 86 User's Guide-121986
One 8" diskette and one 5.25" diskette

90 days:
Software Updates, Subscription Service

One 8" diskette and one 5.25" diskette
C Programming Language by
Kernighan and Ritchie (Prentice Hall)
C 86 Compiler User's Guide-122085

90 days:

C

RMX866

3-83

•
Software Updates, Subscription Service,
Hotline Support

intJ
iRMX™

• High performance, real-time, multitasking operating system for Intel's
861300 and 2861300 microcomputer
systems.

OPERATING
SYSTEMS

• Highly configurable, modular structure
for easy system expansion.
• Wealth of desigu facilities and industrystandard languages to support fast, easy
development.
• Application software portable to next
generation of Intel VLSI •
• Supported by Intel's post-sales software
support organization.

© INTEL CORPORATION, SEPTEMBER 1983

3-84

ORDER NUMBER' 230751-001

with tasks running on other boards, even
if they operate under different Intel oper
ating systems or microprocessors.

The Total Solution for the
Real-Time Application OEM
Intel's iRMXTII 86 and iRMX 286R
Operating Systems are real-time, multitasking, multiuser, multiprogramming
operating systems designed to support
high performance, time-critical applications such as factory automation, industrial control and communications networks. The iRMX operating systems
serve as optimized event-driven executives for managing and extending the
resources of Intel's 861300 and 286/300
systems in real-time applications where
high speed and low interrupt latency are
required. Added performance for demanding numeric-intensive tasks comes
from support of Intel's floating point
math coprocessors.
Comprised of modular layers, Intel's
iRMX operating systems are highly configurable, allowing the OEM to easily
customize the system to meet the needs
of target applications. In addition to
application customization, the iRMX
operating systems provide OEMs with
complete development capabilities. They
have systems debuggers, crash analyzers,
screen editors, utilities, and an Interactive Configuration Utility (ICU)everything the development engineer
needs to design and configure efficiently.

possible the utilization of the highperformance capabilities of Intel's iAPX
286 microprocessor for those demanding
high-speed applications.
Further accelerating processing power in
number-crunching and floating point
math applications is iRMX operating
system's support of Intel's math
coprocessors .

Modular Software for
Versatile, Easy Configuration
The iRMX operating systems shipped
with Intel's 86/300 and 286/300 hardware
systems are preconfigured at the factory
to support a standard board set; however,
the OEM can additionally configure or

Our 8087 numeric data processor in our

iRMX 86-based systems can perform
floating point operations four times faster
than competitive minicomputers with
hardware math processors. For even
greater performance, OEMs can select
the iAPX 286 and the 80287 coprocessor
working in tandem in iRMX 286R-based
systems.

A complete set of industry-standard
languages enables OEMs to take advantage
of existing application software which
further reduces development time.
Shaving months off development time is
a key advantage to the competitive OEM.

The superior price/performance ratio that
results from combining Intel's iRMX
operating systems and the System 300
family makes the choice clear: a more
competitive Intel micro-based system
over a more expensive minicomputerbased system.

Speed, the Name of the
Real-Time Game

Add More Processors for
More Power, More Speed

In a real-time system the computer must
respond to interrupts instantly; time is
always at a premium. Intel's iRMX
operating systems deliver superior realtime performance, thanks to ultra-fast
context switching, task synchronization
and memory-based message passing.

Need still more micro-muscle in your
application? In an iRMX-based system.
additional intelligent boards can be
added to enhance system throughput.

The iRMX 286R Operating System manages the resources of the 286/300 systems
in real-address mode. iRMX 286R makes

MUltiprocessing is possible due to the
hardware capabilities of Intel's System
300 MULTIBUS System Bus and the
software support provided by iMMX
800. Overall system performance and
flexibility can be greatly enhanced by
off-loading the main CPU with such intelligent llO boards as Intel's quad serial
communication controller, digital controller or Ethernet communications
controller.

With the iMMX™ 800 (MULTIBUSiIIl
, Message Exchange) software package,
the iRMX 86 and iRMX 286R Operating
Systems support a loosely-coupled
multiprocessing environment. Tasks running on one board may communicate

3-85

HUMAN
INTERFACE

USER APPLICATIONS

extend the operating system to meet
specific needs.

standard peripherals. You simply select
the ones you need.
The Interactive Configuration Utility
(ICU) is a built-in facility for assisting
the OEM in the configuration'process.
The lCU prompts the user for system
parameters and requirements, then builds
a command file to compile, assemble,
link, and locate necessary files.

Intel's iRMX operating systems are configurable by system layer and by system
call within each layer. Such flexibility
gives designers the ability to choose
software featores that best suit their application's size and functional requirements. The iRMX operating systems also
include I/O drivers for many of Intel's
MULTIBUS boards and industry-

The net results for the OEM: fast, easy
system configuration with quick timeto-marke~ benefits.
For customizing and extending your
iRMX system, Intel has provided all the
"hooks" necessary to make the job easy.
The iRMX 86 and iRMX 286R Operating Systems contain extendability features that enable the OEM to add custom
operating system calls, custom features,
and custom functionality to his application-at any time in the application's
life. The ability to add functions late in a
product's life is key to an OEM's competitive edge in a fast-changing market.

iRMX™ Operating System
has All the Fundamentals
Too!

The Human Interface function give
users and applications simple access to
the file and system management capabilities. Using the multiterminal support
provided by the Basic I/O system, the
Human Interface can support several
simultaneous users. For example,
multi-terminal support allows one person
to be using the iRMX Editor, while another compiles a FORTRAN or Pascal
program, while several others load and
access applications.

On-Target Development:
One System Does It All
The beauty of Intel systems lies in their
flexibility. Engineers developing an
iRMX-based target system can use the
same iRMX-based system in the development process; the development and
target systems are one in the same. The
bottom-line benefit is low entry-level
costs for the OEM.
On-target development contributes immeasurably to a shorter development
curve and decreased time-to-market,
since it isn't necessary to purchase and
learn separate development systems.
With Intel's iRMX-based system, one
system does it all.

In addition to multiprocessing, Intel's
iRMX operating systems have all the
basics you would expect to find in a
minicomputer operating system ...
capabilities such as multitasking,
mUltiprogramming, and multiterminal
support.
Multitasking requires a method of
managing the different processes of
an application and for allowing
these processes to communicate
with each other. The iRMX Nucleus provides these facilities plus
task scheduling. The Basic I/O
System provides users with the
system calls for direct management ofI/O devices needed for
real-time applications. The Extended I/O System adds a number
ofI/O management capabilities to
simplify access to files, such as
automatic buffering and synchronization ofI/O requests.

3-86

Tap into a Wide Range of
Languages and Utilities
An Intel iRMX-based system supports
many industry-standard and widely
available languages: FORTRAN 77,
Pascal (ISO Draft Standard) and PUM
compilers; Intel Assemblers, and popular
independent vendor products, such as
Microsoft's BASIC and Mark Williams'
Ccompiler.

iRMX operating systems also have a

An OEM who builds his product around

year increments after the initial 90-day

menu-dt~ver.,

ane of !nte! 's RMX -board systems is as-

'''fB-rran!y Hotline servkp- i~ available

sured of multi vendor hardware/software
alternatives and a future upgrade path. In
today's highly competitive markets, that
is the only kind of system to build.

separately to customers needing quick
response software support. All software
is completely documented, and users receive monthly technical reports, newsletters and access to the iRMX users
group and software libraries.

screen oriented text editor

and a varieLy of utilities for manipulating
object code to facilitate the development
process.

Multiple-language support is made
possible by a set of systems calls known
as the Universal Development Interface
(UOl) which enables the iRMX systems
to interface with many compilers and
language translators. UDI ensures that
users will be able to transport applications to future releases of iRMX operating systems as well as use language and
utilities of other software vendors that
support UDL (For more information on
Intel iRMX languages, see the iRMX
Language Fact Sheet)

Intel's Open Systems
Approach Means Freedom
to Grow
At Intel, we believe that systems need to
expand in order to meet the needs. of a
changing market; and that is how we
design our products.
Standards are the key to systems that are
open to future expansion, future technology and future markets.

Today, you'll have the ability to tap into
readily available application software
packages, languages, and utilities,
MULTIBUS boards, and peripherals.
Tomorrow, you will be able to tap into the
latest, high-performance VLSI without
sacrificing today's software investment.
Applications written on iRMX 86 (for
Intel's iAPX 86) are completely portable
to iRMX 286R running on Intel's
iAPX 286-based systems.
Not to be forgotten are the advantages of
starting from the systems level to begin
with. Intel has invested hundreds of
man-years in software and hardware development for its systems products. For
the OEM trying to meet a market window, time-to-market is much faster when
starting with a system instead of boards
or components. It makes good business
sense to let Intel provide the "microengine ", so you can concentrate on your
area of expertise and get to market
sooner!

Worldwide Service and
Support
The iRMX 86 Operating System is a
mature proven product with thousands of
installations at the component, board and
systems levels. Post-sales software support is available to Intel iRMX 86 and
iRMX 286R Operating Systems OEMs
in the form of software updates and
routine systems software maintenance.
Software support is extendable in one-

Intel's iRMX operating systems are
built from the inside-out with industry standards: UDI (Universal
Development Interface), R TI
(Runtime Interface), MULTIBUS
System Bus (IEEE 796), iMMX
800 Package (MULTIBUS multi
processing), Ethernet (IEEE
802.3), extended math format
(IEEE P754), and industry-standard
peripheral device interfaces.

iRMX users can also take advantage
of Intel's worldwide staff of trained
hardware and software engineers for
application design assistance. We offer
. complete training for operating system
.software and associated system
hardware, bringing OEM's up to speed
and helping get their products to market
quickly.

Intel, the Technology Leader
... With the Total Solution
Intel started the microprocessor revolution with the 4004 arid has been the
market leader with every generation of
advanced microprocessor VLSI since.
We not only invented the microprocessor
but MULTIBUS single board computers,
as well.
Intel's technology leadership has, by
necessity, extended from microprocessors into operating system
software. iRMX is recognized as the
industry standard real-time VLSI operating system.

It has evolved since 1978 utilizing the
experience of thousands of installations
to contribute to enhancing the performance and quality of the product.
OEMs can enhance their product's marketability by leveraging their value-added
on top of the solid foundation of an
iRMX -based Intel 300 microcomputer
system. Intel's solution offers the most
price/performance with the least risk to
progressive OEMs ... because we know
the real-time game from the inside out.

•

MX OPERATING

Specifications
Supported Software
Products
iRMX 860

iRMX 86 Development
Utilities Package including
the iAPX 86 and 88 Linker,
LOcator, Macro Assembler,
Librarian, and the iRMX 86
Editor

iSBC254

Bubble Memory System

iSBC534

4-Channel Terminal
Interface

iSBC544

Intelligent 4-Channel
Terminal Interface and
Controller

iRMX 86 Nucleus Reference Manual
(9803122-04)
.
iRMX 86 Terminal Handler Reference
Manual (143324-002)
iRMX 86 Debugger Reference Manual
(143323-002)

iSBX218

Flexible Disk Controller

iSBX350

Parallel Port (Centronix-type
Printer Interface)

iRMX 86 Basic I/O System Reference
Manual (9803123-05)

iRMX 861

Pascal 86/88 Compiler

iRMX 862

FORTRAN 86/88 Compiler

iSBX351

Serial Communications Port

iRMX 86 Loader Reference Manual
(143318-002)

iSBX270

CRT, Light Pen and
Keyboard Interface

iRMX 86 Extended I/O System
Reference Manual (143308-002)

iRMX 863

PUM 86/88 Compiler

iRMX 864

TX-Screen-Oriented Editor

iRMX 865

BASIC Interpreter

iRMX 866

C Compiler

iMMX 800 MULTIBUS® Message
Exchange software package
for iRMX 80, 86, 88, and
286 application systems

Supported Hardware
Products
iSBC· MULTIBUS· Products

iSBC 204

Flexible Disk Controller
Hard Disk Controller

iRMX 86 Human Interface Reference
Manual (9803202-003)

iRMX 286R Operating System
Installation and Configuration Guide
for Release 1 (145556-001)

Guide to Writing Device Drivers for the
iRMX 86 and iRMX 88 I/O Systems
(142926-004)

All of the manuals listed below are
supplied with iRMX 86 Release 5 and are
available separately under the order
numbers shown.

iRMX 86 Programming Techniques
(142982-003)

Introduction to the iRMX 86 Operating
System (9803124-04)

iSBC 86/12A, 86/05, 86/14, 86/30,
88/25,88/40, and 286/10
Single Board Computers
iSBC 206

Available Literature

iRMX 86 Operator's Manual
(144523-001)
Master Index for iRMX 86 Release 5
Documentation (145015-00t)
Getting Started With The Release 5
iRMX 86 System (145073-001)

iSBC 208

Flexible Disk Controller

iSBC 215

Winchester Disk Controller

iSBC 220

SMD Disk Controller

iRMX 86 Installation Guide
(9803125-05)
.

iSBC 251

Bubble Memory System
(iRMX 286R only)

iRMX Configuration Guide
(9803126-05)

User's Guide for the iSBC 957B, iAPX
86, 88 Interface and Execution
Package (143979-002)
iRMX 86 Disk Verification Utility
Reference Manual (144133-002)
Runtime Support Manual for iAPX 86,
88 Applications (1211776-002)
iRMX 86 Crash Analyzer Reference
Manual (144522-001)

iRMX™ 86/286R Configuration Size Chart
System Layer
Bootstrap loader
Nucleus
BIOS
Application loader
EIOS
Human Interface
UDI
Terminal Handler
Debugger
Human Interface Commands
Interactive Configuration Utility
System 86/300 Memory:
Maximum Addressable Memory:
Minimum Memory Required with ICU loaded:
'Usable by System after BooUoadlng

348KB
1MB
448KB
3-88

Min. ROMabie
Size

Max.
Size

Data
Size

0.5K
10.5K
26K
4K
10.5K
22K
11K
3K
28.5K

1.5K
24K
78K
10K
12.5K
22K
11K
3K
28.5K

6K*
2K
1K
2K
1K
15K

o

0.3K
1K
116K
308K

intJ
Ordering Information
Each iRMX operating system includes a preconfigured version
supporting Intel's System 300 standard hardware, a configurable
iRMX operating system, iRMX 860 (Assembler, Linker, Locator,
Libraries, Editor, Utilities), iRMX 863 (PLIM Language), iRMX
System Software License and are prepaid incorporation Fee. Also
included: Software Problem Reporting Service (iPR), and a 90
day System Software Subscription (new s/w release updates).
Also includes System Software documentation.

NOTE: iRMX operating systems for Intel's System 300 mIcrocomputers
are available kltted with System 300 hardware only.
Refer to Intel's OEM price list, OEM Microcomputer System section, for
ordering information.

3-89

inter
XENIX·
LANGUAGES

• COBOL and FORTRAN support for
XENIX·based systems .
• Conformation to international
standards: ANSI 77 subset FORfRAN
and ANSI X3.231974 COBOL to
Federal High Level
•. Powert1\J microcomputer extensions to
ANSI standards
• Easy porting of mainframe and
minicomputer applications to micro
environment
• Intel 8087 math coprocessor support
• Worldwide service and support
organization
'

High-level Language
Support for XENIXBased Systems
Intel's Xenix operating system, aVllllable
for component, board, or system-level
integration, is a multi-user operating
system well suited for both technical and
commercial interactive applications.
Typical applications include small business systems, software development/
engineering workstations, distributed
data processing and graphics.
For OEM and end-user application development on Xenix, Intel has provided
two industry-standard, high-level
languages-FORTRAN and COBOLwith which to build microcomputer-based
solutions for systems products or component and board-level applications. Xenix
FORTRAN and COBOL accommodate
easy porting of existing mainframe and
mini-based applications to the micro
environment.

XENIX FORTRAN for
Scientific and Technical
Applications
FORTRAN is the most popular programming language for scientific and
numerical applications. There are
thousands of existing FORTRAN programs and subroutines written in mainframe and minicomputer environments,
most of which can be ported to a micro
environment via Intel's offering of
Microsoft FORTRAN.
Compliance with the X3.91978 ANSI
standard for FORTRAN at the subset
level ensures portability with minimal
source code modifications. By moving to
a microcomputer-based system, you lose
none of your mainframe and minideveloped software investment.

Speed and Accuracy
Where They're Needed
Scientific, math-oriented applications
usually require fast, highly accurate processing. Xenix FORTRAN delivers accuracy with double-precision arithmetic

which handles numbers containing 14
significant digits.
High speed results from Xenix FORTRAN support of the Intel 8087 floating
point coprocessor, as well as from an
extensive subroutine library, which includes subroutines for 16- and 32-bit
integer arithmetic and 32- and 64-bit
floating-point arithmetic. Because of
Xenix FORTRAN's 8087 math coprocessor support, some programs written in Xenix FORTRAN will execute
from two to four times faster than their
Calls to "c" and ASM 86 are possible, making it easy to interface
non-standard peripherals to Xenix
FORTRAN programs.

FORTRAN
XENIX COBOL for
the Micro Environment
Intel's offering of Microfocus COBOL
is a mainframe-caliber compiler for
ANSI 1974 COBOL programs, enabling
Xenix-based systems to compile and run
existing COBOL programs with minimal
source code modification. Xenix
COBOL aiso contains features specifi- .
cally aimed at facilitating the interactive

I///////////////""""""IIIIIIIIIIIIII~.

defined communications module provides the user with a standard mechanism
for program-to-program messagepassihg in multi-user networks such as
those found in an "office of the future"
setting.

Forms-2™ SUpport for
Screen-Painting

program development of new applications in a microcomputer environment.
These features include a facility for
dynamically loading sub-programs
from disk as required which effectively
removes limits on the size of the application code that can be run. Xenix COBOL
augments the functionality of the ANSI
standard with additional compiler features, such as interactive screenhandling, that further increase convenience and programmer productivity.

Xenix COBOL supports FORMS-2,
a powerful visual programming tool that
speeds the creation of programs involving interactive screen-handling. In an
extremely user-friendly environment, the
user "paints" a form on the screen, and
FORMS-2 generates the COBOL source
code to support it. FORMS-2 results in
greatly improved programmer productivity in a microcomputer, screenbuilding environment.

Worldwide Service
and Support
All Xenix systems are fully supported by
Intel's worldwide staff of trained hardware and software engineers. Complete
documentation is provided for all
, operating systems and application software languages, as well as for system

hardware components. The Xenix and
Xenix Languages warranty includes
Hotline support, Software Updates, and
Subscription Service.

Total Solutions for
Interactive, MultiUser Applications
Intel's Xenix-based systems offer the
most complete solutions for interactive,
multi-user applications requiring fast,
accurate throughput and a friendly,
programming environment. Xenix is
complemented by industry-standard,
high-level languages with which OEMs
can create flexible and open end-user
systems.
Xenix languages are completely portable
- from one level of integration to another (chip to board to system).
Intel is paving the way into the future of
VLSI and pioneering VLSI-based systems. We are committed to providing
customers with smooth, uninterrupted
application development on the latest
VLSI-based systems - today and
tomorrow.

Users can license a separate run-time
support package. This enables OEMs to
pass COBOL applications onto customers at a much lower cost than that involved in transferring full COBOL
packages.
Xenix COBOL is one of only eleven
COBOL compilers in existence-and
the only one for microcomputers-that
has been GSA-certified
as error-free at the
High Level. A
special ANSI-

',IIIIIIIII.'XENIX LANGUAGES
3-92

inter
Specifications
Required Hardware:

Required Software:

• Any iAPX 86/286 based or iSBC®
86/286 based system including Intel's
System 86/300, 286/300 family and
iDIS systems

• Intel's Xenix 86 or Xenix 286"
Operating System

• 128 KB memory
• Two floppy disks or one hard disk

• Purchase of any Xenix Language
requires signing of Intel's OEM
License Agreement (OLA)
*The flrst release of FORTRAN will support only Xenlx 86

• One 8" double-density or 5.25"
double-density floppy disk drive for
distribution of media

Ordering Information
Language

Orc;lerCode

Product Contents

warranty

COBOL

XNX867

One 8" diskette and one 5.25" diskette
Level II COBOL Language Reference
Manual-122l58
Level II COBOL Opentting
Guide-1221S9
Forms II Utility Manual-122l60
Level II COBOL Pocket Guide-122l6l

90 days:
Software Updates, Subscription Service

XNX868

Incorporation Fee for passing through the
COBOL Runtime System

XNX862

One 8" diskette and one 5.25" diskette
Fortran Reference Manual
Fortran User's Guide

,

FORTRAN

FORMS-2 is a trademark of Micro Focus

3-93

90 days:
Software Updates, Subscription Service

2920 SOFTWARE SUPPORT PACKAGE
• Complete software design and
development support for the 2920

• Extends Intellec® Microcomputer
Development System to support 2920
software development

The 2920 Software Support Package furnishes a 2920 Signal Processing Applications Software/Compiler, 2920
Assembler, and 2920 Software Simulator. These three softwilre design and development tools run on the Intellec@
Microcomputer Development System.
The 2920 'Signal Processing Application Software/Compiler is an interactive tool' for designing software to be
executed on the 2920 Signal Processor. The compiler accepts English-like statements from the user and generates
2920 assembly language code.
The assembler tra,lslates symbolic 2920 assembly language programs into the machine operation code. The user can
load the code into the simulator for 2920 simulation or to the Universal PROM Programmer for 2920 EPROM
programming.
The simulator, operating entirely in software, allows the user to test and symbolically debug 2920 programs. The user
can specify input signals, simulate program execution, set up breakpoints, display input and output, and display and
alter the contents of the 2920 registers and memory locations. The simulator can also stop or trace the program and
constructively give the user access to the key elements inside a 2920 for analyzing his program.
The compiler, assembler, and simulator enable the designer to develop and test an entire program without a
complete prototype design. The 2920 designer works on the Intellec® Microcomputer Development System rather
than on' a breadboard. The development system can program, store and recall programs or routines and aid in 2920
program design.

•

•

•

2920 Software Support Package
The foilowlng are trademarks of Intel Corproallon and may be used only to Identify Intel products eXP,lnteliec Mulhbus, I, .SBC, Muilimodule ICE .• sax PROMPT les. library
Manager Prom ware Inslte, MeS RMX Intel. Megachassis UPI JnteleVISlon. Mlcroamp. ~Scope and the combination of tCE. les .SBC ,SBX MeS or AMX and a numerical
suffiX
Sept 1980
1662208
Intel Corporation 1980

3-94

inter

2920 SOFTWARE SUPPORT PACKAGE

2920 SIGNAL PROCESSING APPLICATIONS
SOFTWARE/COMPILER
• Interactive software support tool for
2920 Signal Processor

• Compiler generates 2920 Assembly
Language Code
• Extensive command set for designing
electrical filters

• Extends Intellec® Microcomputer
Development System support of the
2920

• Graphics capability enhances analysis
of filter response or piecewise linear
function approximations

• Contains MACRO library for several
standard filters and Signal processing
functions

• Powerful MACRO capability for
executing frequently used routines

The 2920 Signal Processing Applications Software/Compiler (SPAS20) is an interactive tool for designing
software to execute on the 2920 Signal Processor
The SPAS20 package can be visualized as being comprised of four inter-related sections: A cpmpiler section,
a filter design section, a curve fitting section, and a MACRO section.
Among the abilities of SPAS20 are: ability to generate 2920 assembly language code directly from
specifications of Signal processing building blocks such as filters and waveform generators; ability to
generate 2920 assembly language code for several classes of algebraic equations such as Y C· X, Y C· Y,
and Y C· X + Y where X, Yare variables and C is a constant; ability to generate 2920 assembly language
code for one variable function Y(X) = F(X); ability to examine time and frequency responses of filter sections
specified by continuous or sampled poles and zeroes; ability to examine piecewise linear approximation of
specific function; ability for users to implement more complex commands by grouping sets of commonly
used commands into a MACRO.

=

=

=

The SPAS20 package runs under ISIS-II on any Intellec® Microcomputer Development System with 64K
RAM. The output of SPAS20 can be assembled with the 2920 assembler, tested with the 2920 Simulator, and
programmed into the 2920 chip with the Universal PROM Programmer for prototyping.

3-95

AFN 01386A

intJ

- 2920 SOFTWARE SUPPORT PACKAGE

FUNCTIONAL DESCRIPTION

DATA

The 2920 Signal Processing Applications Software!
Compiler gives the analog designer a "high level
language" for his 2920 applications-it decreases
the need to code 2920 assembly language. Furthermore, the compiler Is interactive. This feature
enables the designer to define a filter, or transfer
function, graph their response, and change their
parameters many times, without having to program
and test in an actual 2920 implementation.

This command allows for specification of a set of vertices (Le. X - Y
coordinate pairs) which determine a
piecewise linear approximation of
some defined function, filter.
response characteristics, etc.

HOLD

Command to correct attenuation
due to sample-and-hold distortion:
if ON, it corrects absolute gain by
sin(x)!x and phase by adding x,
where x=TS*FREQ*". It corrects
group delay by subtracting ,,*TS.

Once a filter is realized by moving poles and zeros
in the continuous and sampled planes, the filter
may be coded and written onto an ISIS file. Similarly, after a function Y = F(X) has been defined, the
code for a piecewise linear approximation can be
stored onto an ISIS file. Several other file commands are available to store and retrieve command
sequences for SPAS20 sessions.

EVALUATE

Gives the decimal numeric value of
any expression.

CODE

Creates 2920 assembly language
code for given poles, and zeros,
equations, and user defined functions.

SPAS20 Command Language

The SPAS20 compiler also recognizes the following commands for file handling:

DEFINE

This command defines a p'ole or
zero by associating it with a
number (Le., POLE 3), and with. real
and imaginary coordinates in the
continuous or sampled plane.
This command also defines a symbol by associating a name with a
numeric value, or a MACRO by providing a pointer to a specified command sequence.

GRAPH!
OGRAPH

MOVE

This command graphically displays
the values of obJect(s) specified,
For example, GRAPH GAIN and
GRAPH PHASE are used to display
filter response. The OGRAPH command will "overgraph", the new
respons.e over the old response,
after any changes have been
made. (Y.ou may also graph Group
Delay, Step, and Impulse.)
Allows the definition of a pole or
zero to be changed-its coordinates, its plane, or both.

REMOVE

Deletes the definition of a pole,
zero, symbol, or macro.

HELP

Types an explanatory message on
the console, pertaining to a command or its attributbs.

FIT

This command performs curve fitting, Le. it approximates an arbitrary
user supplied function with a piecewise linear function.
'

PUT I
APPEND

Writes out objects (commands) to
a specified file, either creating a
new one or appending an existing
one. This enables the user to
store all or' part of a SPAS20 session on a diskette to be brought
back la,ter with the INCLUDE
command.

DISPLAY

Copies the contents of a file to the
console.

INCLUDE

Executes a sequence of
instructions from a diskette file as
if they were typed in fro'm the co'nsole.

LIST

Creates a file containing
conso,le interactions.

all

In addition to naming macros for specific command sequences, compound and conditional
commands may be formed using all of the above
.statements, These compound commands are:
IF

Establishes conditional flow of
control within a block of
commands.

REPEAT

Used for repetition of a block of
commands; executes indefinitely
or until a condition is met (using
WHILE, UNTIL, and END
statements).

COUNT

Establishes the number of times a
command sequence is to, be
executed, in a looping fashion.

3-96

AFN·01386A

intJ

2920 SOFTWARE SUPPORT PACKAGE
Intel also supplies several MACRO library files containing the following commonly needed MACROs:

SPAS20 MACRO Facility
A macro is a sequence of commands that is stored
on a temporary diskette file. The command
sequence is executed when the macro name is
entered as a command. This saves repetitive entry
of the sequence, and permits alogorithms to be
saved or. diskette for future use, This SPAS20
facility allows you to do the following:

Filter design MACROS
- Butterworth filter
- Chebyshev filter
- Bilinear transform
- Evaluate gain or phase of digital filter
In paraliel form
- Time response simulation
Function design MACROs
- Code and error optimization
- Calculate instertitial error
MACROs for generation of 2920 code
- Code for all-POLE filter
- Input and AID conversion
- Multiplication
- Division
- Logarithm functions
- Square-root functions
- Sinewave oscillator

Display the text of any macro.
•

Define a macro, specifying its name and any
parameters that are to be used by the block.
This definition is followed by the contents of
the macro (commands) and the EM statement
to end its definition.

•

Invoke a macro by entering its name and
appropriate values for any parameters.

•

List the names of all defined macros.
Removeanyor~lmacros,

SAMPLE SPAS20 FILTER DESIGN SESSION
-' Fl : SPAS20 • SFT

·
··

ISIS-II 2920 SIGNAL PROCESSING APPLICATIONS COMPILER. V2.0

; CREATE. POLE IN CONTINUOUS i-PLANE

.DEFINE POLE 1 • -707.707

•• :
POcE

1 •

LISI ALL POLES AN~ ZEROS
-707 00000.707 OOOOO.CONTINUOUS

.rS(.ALE •

100.10000

.V'>~HLE

-45,1

; ESTABLISHES .REQUENC'

~ANGE

OF INTEREST

ESTASLISHES "AGNITUDE rESPONSE RANGE OF INTEREST
PLOT "AGNITUDE RESPONSE OF POLE FAIR

G~ i M

LO
-'5""
_"? ••~

- :.J. "
- 1

~.

-!

L'

!

- 1 ':<. ')

-1 L"

-2,. :

- 2(1. ~

- 2'5.

~

-z~,

-

- 3L ~
-H. )
-3.;.2
-33.4
- .1). ':.

- 41'. ~
- .. S. \)
De I

HZ

.........
,

"...

100 150 200

,

........
...

300

A

~oo

"

...

500

..... ' . '
...

,.

700 1000

'"
I~OO

2000

3000

5000

10000

•. THE UNITS USED IN GRAPHING GAIN ARE SHOW~ IH THE LOWER LEFT CORNER
GAIN IN DECIBELS IS GRAPHEO YERSES FREQUENCV IN HERTZ
.; PPEPARE TO "OYE TO THE OIGITAL OO"AIN
•. SA"PLE RATE MUST BE SPEC1FIED
.Ii • 1/13020
TS = 7 .805004/10 •• 5

RATE FOR 1'2 IHSTRUCTION PROGRA" ANO 10"H2 CLOC¥

AFN·01386A

3-97

intJ

2920 SOFTWARE SUPPORT PACKAGE

SAMPLE SPAS20 FILTER DESIGN SESSION (Cont'd.)
COHYE'T FILTER TO

.""VE POLE TO Z

I POLES/ZE'OES "OYED

VIA "ATCHED-Z TRANSFOR"ATION

DIGIT~L

o

oP
LIST TRANSFO'"ED POLE
POLE 1 • 0 71092836,0 341183'9, Z
o

(O"PARE RESPONSES OF THE ANALOG AHD DIGITAL FILTERS BY GRAPNIHG THE
HEW RESPONSE OVER THE OLD

0;
0'

t ................. , ............

t.1

~

.... A

••••

~

................. "

~

•

•

•

••

...,

"

--------------------------- •..

: .~
... '). '*

. . .;
~

+ -.
.. 1 ,). I)
-1 Z. I
- I4•3

+- :

... !

+' +' - •
+ -•
• + ' -- ..
++

~. ~

.. Z(t,

.' .

+' •

... : .~. ::

~

... .? l. ~
-.t'$.7.

•• .+

-H. ... '3 ••
... 3"

~

++

.+

o,t)

-3·;, ~
-H.4
-04;). .:

..

... 4 Z. ::
-0$ I). )

C'BIHZ

••

•••

•

•

•

•

•

•

0,

FLUS SIGNS INDICATE OLO CURVE
HOTE THAT THE DIGITAL FILTER RESPONSE BEGINS TO INCREASE ACAIN
~T HALF THE SA"PLE RATE ( '510 HZ I,

0;

THE PHASE CHARACTERISTICS OF THIS FILTER CAN 8E EXAMINEO

0,

"

•

OY$C~LE
OCR~PH

,

100' i 50 .200' .. 300 .~ 00 . 500' '100' i 00 0 • i .joo . 2000' . 3coo .... 5000 ..... i 00 00

• -PI.PI

, ESTABLISHES RAHGE OF INTE.EST

PHASE

PHttSE
1 .•

I ••••

v" ........................... ~ ................................. A

••••••• A

••••••••• '

2.$4
~.~4

2.24

I."
I •• 5

l.n
I. 05
0.75
0 .• 5
O.! 5
-0.15
-0.45
-0. ~5
-1.05

.,

I
~I

"

.. _ _ _ _ - - ,,'

# - ..

"

.. -

-1.35

-1."
-I. , .
-2.24
-2.54
-2.84
-3'14

RAD I HZ

P.

i 00 . i;o . 200 ... 300 .400' 500 .. 700' i 000 . i 400 . 2000' •iooo .... 5000 ..... i 00 00
)

.....

•
n .17
0.:!7

",'n
n.l~

0.14
0.09
0.(1)

".on
! ............................................................................ !
0.1
0.2
0.1
0.4
n.s
0.6
0.7
n.~
O.?
1.on

*

n,nn

*OGRAPIf '(**3

FllnCTIOtl

;

TIIF. 1l[ltFERANCr.

RF.TI1F.F.N TUE CnlJF:1> Arm Tiff.

ACTUAl. APiJP.ARS

AS

"+".

! ................................................................................... !

I.no

+'

n.qs

+~

o.qn

+ ••

+.
+++ -

n.Rit

O.AI
0.7h

n.7I

++.

0.~7

n. (,2

+ -

++. '

0.~7

n.;2
0.48

+.+++.'

0.41

+.'

n.1R

n.ll

0.29

+.-+

n.~4

n .19

++.-~

++.--'

0.14
n.IO

+ •• --'

+++++++ ••• --' ,

n.OI)

n.no
,

!::::::::::: :::::::: ............. t ..................... ........................... r

n.oo 0.1
0.2
0.1
n.4
o.s
0.6
0.1
O.R
0.9
1.00
(X.*3)-DATA(X)
; T'IR P.RROR WILL Rt CRAP11RO.
FUNCTInN ! .............................................................................. !
0.041
*G~A

0.04)

0.039

n.f)'H,

n.n32

0.n28
0.025
0.021
0.017

0.014
n.O-IO
n.OM

0.001

-o.nol
-0.005
-O.noA

-n.012
-0.016
-0.n20
-0.021

-0.027
-0.n31

*

*r.XlT

! ................................................................................. 1
O.R
0.00 0.1
n.2
0.3
0.4
O. ~
n.7
1.00
T~AT·

S AU FOI.KS

3-100

2920 SOFTWARE SUPPORT PACKAGE

2920 ASSEMBLER
2920 program development on Intellec@
Microcomputer Development Systems

Produces Assembly Listing, Object Code
File, and Error Diagnostics

Translates symbolic assembly language
Instructions into 2920 machine code

Output used for 2920 programming with
the Int~lIec PROM Programmer or the
2920 Simulator for program debug

The 2920 Assembler translates symbolic 2920 Assembly Language instructions into the appropriate machine
operation codes. Through this facility, the programmer is able to symbolically program 2920 hardware operations.
Compared to machine code, these symbolic references provide faster programming, easier debugging, and greater
reliability.
The Assembler produces an object code file (executable machine code), a complete assembly listing, and error
diagnostics. The object code output from the Assembler may be loaded directly into the lnlel Universal PROM
Programmer for programming the 2920 EPROM. The object code may also be loaded to the 2920 Simulator for 2920
system design and debug.
The 2920 Assembler runs under the 1515·11 Operating System on the Intellec Microcomputer Development Systems.

Sample 2920 Assembly Listing
PAGE

ISIS-II 2'20 ASSEMBLEI XI02
RS'EMILER IH¥OKED BY' AS2'20 SAW A'M DEBUG
SAWTOOTH YA¥E GEHER.TOI
LINE

LOC OBJECT SOUICE STATEMENT
$TITLE(' SAYTOOTH . .VE GENERATOR' )
0 OOOOEF

I OOOOEF
2 OOOOH
3 OOeAEB
OOIAOA
0044EF
7A8AEI>
6000EF
7082EF
4044 EF
10 4000EF
11 4000H
12 4000EF
\3 8000EF
14 8000EF
15 8000H
I i 'OOOH
17 8000EF
18 8000EF
8000H

, ,•
8

:0
:1
!2
:3

:4

:5
16
:7

:,:8
10

ZI
12
Z3

24
15

,

I'

SYMBOL:

INO
INO
INO
SUI
SUI
LOR
ADD

cns

) SAMPLE INPUT CHANNEL 0
Y. KPI.INO
Y.KPt.RloIHO
DAI. Y.INO
)
Y. KP7 .CHDS

LDA Y.KPO.CHOS
LOA DAI.Y
HOP
HOP
HOP
OUTO
OUTO
OUTO
EOI'
OUTO
OUTO
OUT a

SIMULTAHEOUSLY CALCULATE SAWTOOTH
IV SUBTRACTING 3/1' FROM V
ALSO CHECK SIGN 81T OF Y
IF V NtGATIVE START HEXT TOOTH
CONYERT SAMPLED INPUT TO DIGITAL (SIGN 81T)
SUPPRESS SAWTOOTH IF IHPUT WAS < 0
PREPRRE TO OUTPUT SAWTOOTH
RNALOG LEYEL MUST SETTLE
OUTPUT SAWTOOTH
PROGRAM WILL END IN THREE MDRE IHSTRUCTIONS

EHD
VALUE'

a
ASSEMBLY COMPLETE
ERROl'S
o
.. A1tHINGS •
o
RIIIHS!ZE
I
lOftS lZE
20

3-101

AFN Q'386A

inter

2920 SOFTWARE SUPPO.,T PACKAGE

2920 SIMULATOR
Speeds test and debug of 2920 programs

Output and, internal data can be saved
on disk for further analysis.

Simulates 2920 Intern~1 operation
Operates on Intellecl!l Microcomputer
Development Systems

Provides ability to set breakpoints and to
collect trace information
Easy·to·learn commands

Allows users to specify 2920 input
signals, and display or alter ROM, RAM,
and system variables

The 2920 Simulator is a software facility that provides testing and symbolic debugging of 2920 programs in an Inteliec
Microcomputer Development Systems environment. The 2920 designers have the capability to specify the 2920 input
signals, to set breakpoints, to coliect and display 2920 input, output, system variables,.and ROM and RAM data values
during simulation. The 2920 Simulator accepts the hex format object files produced by the 2920 assembler. Output
values and internal trace data may be saved on ISIS-II disk files for further analysis.

Functional Description
2920 Input Signal Specification
The four analog signal inputs to the 2920 processor can
be specified as algebraic combinations of basic
functions of time. The basic functions are SIN, COS,
EXP, LOG, SOR, SAW, saw, ABS,

2920 Simulation
The simulation of 2920 machine instructions is performed in software. All 2920 internal registers, memory,
input values, output values, and other sys~em variables
can be examined and modified. The internal processing
of the 2920 is simulated. Time constants for the sample
and hold capacitators are assumed to be zero. Calculation of input signals is performed in single precision
floating point. The speed of simulation varies with the
complexity of the input signal, breakpoinl setting, and
trace condition. Exclusive of 1/0 time requirements,
2920 instructions will be simulated at a rate of approximately several hundred instructions per second.

Breakpoint Capabilities
After' each instruction is Simulated, the breakpoint is
evaluated to determine whether to stop or continue
simulation. Conditional breakpoints are also provided
for debugging purposes. Simulation can be manua1ly
stopped at any time by pressing the ESC key on the
Intellec console.

Trace Capabilities
Based on the qualifier's condition, trace data records
can be collected during simulation. The trace data

records are stored in In!ellec resident memory and ,are
optionally written to the console for display or to a disk,
fi Ie for record.

Symbolic Debugging Capabilities
The 2920 Simulator allows the user to refer to program
addresses symbolically. The user can load or save the
symbols generated from the hex format object files or
created .OOI12 ; ~I"ULATF. FOR TWO CYCLP.~
*RASV.-O
; S~T THF. BAS" Tn OEct~AL
*smULAT .. FROII 0
; BEGIN SlllllLATION
,.
nAR
RA!1 1

3-103

"FN 0'380"

inter

292(1 SOFTWARE SI}PpbRT PACK.A~E

c; l'WT.ATION J\F,r.UN

0.00010000
0.00020000
0.00030000
0.00040000
0.00050000

0.B3QR4175

0.R4277334

0.~R359375

0.~R554~83

0.12734375
0.21093750

0.52R320lh
0.17109370
0.213R6714

0.00060000

O.0546R750

0.0566405~

0.00070000
O.OOOROOOO
0.00090000
0.0 0 10 0000
0.00110000
0.00120000
0.00130000

-0.10156250
0.73828125
0.18203125
0.42578125
0.26953125
0.10937500
-0.046B7500

0.89941396
0.74218745
0.5R496089

0.1~7IR710

o• 'I 2 7 7 371 3 3

0.27050776
0.11328119
0.95605459

SHIULATION TE,RMINAT£n

*GRAPll ON

; qWITCHES TqE DISPLAY '100£ TO CRAPHICS

*TRACF.-T,O,DAR,RA:1.aSC , -I I - l . l , l
; 'iETS ITEMS TO BE TRACED
.ose-ONE
i INITIALIZE THE RAI1 LOCATION
*SHWLATF. FRO~f"O
T
DAR
RAil I
-I
SHfULATION RF.GUN
~AH

-I

-)*

o *

I
I

o •
o *

I
I

o •
I

I

*

•

I
I
I
I·
I

o *
o *

o *
o *

I

2 I

SIMULATION TERMINATED

3

.
*

·EXIT

SPECI FICATIONS

Optional Software

Operating Equipment

FORTRAN·80 (Product Code MDS·301)

Required Hardware

.

.

Intellec® Microcomputer Development System
RUNNING ISIS

Documentation Package
2920 Assembly User's Guide (9800987)
2920 Simulator User's Guide (980098?)
2920 Signal Processing Application Compiler
User's Guide (121529)

Required Software
ISIS·II Diskette Operating System

Optional Hardware

Shipping Media

line Printer
Universal PROM Programmer

Flexible Diskettes

.

ORDERING INFORMATION
Product Code

Description

MCI·20-SPS

2920 Software Support Package
Includes 2920 Signal Processing
Application Software/Compiler and 2920
Assembler/Similator Software

3-104

AFN·01386A

MCS@-48
DISKETTE-BASED SOFTWARE
SUPPORT PACKAGE
• Extends Intellec microcomputer
development system to support MC8-48
development
• MCS-48 assembler provides conditional
assembly and macro capability

• Takes advantage of powerfullSIS·n file
handling and storage capabilities
• Provides assembler output in standard
Intel hex format

The MCS-48 assembler translates symbolic 8048 assembly language instructions into the appropriate machine
operation codes, and provides both conditional and macroassembler programming. Output may be loaded
either to an ICE-49 module for debugging or into the iUP Universal PROM Programmer for 8748 PROM
programming. The MCS-48 assembler operates under the ISIS-II operating system on Intel Development
systems.

MAY 1983

©INTEL CORPORATION, 1983

3-105

AFN·00619D

inter
FUNCTIONAL

MCS@·48

DES~RIPTION

Table 1_ Simple MC8-48 Dlskette-Blsed

The MCS-48 assembler translates symbolic 8048
assembly language Instructions ihto the appropriate
machine operation codes. The ability to refer to program
addresses with symbolic names eliminates the errors of
hand translation and makes it easier to modify programs
when adding or deleting instructions. Conditional
assembly permits the programmer to specify which portions of the master source document should be included or deleted in variations on a basic system deSign,
such as the code required to handle optional external
devices. Macro capability allows the programmer use of
a single label to define a routine. The MCS-48 assembler
will assemble the code required by the reserved routine
whenever the macro label is inserted in the text. Output
from the assembler is in standard Intel hex format. It
may be either loaded directly to an in-circuit emulator
(lCE-49) module for integrated hardware/software
debugging, or loaded into the iUP Universal PROM
Progtammer for 8748 PROM programming. A
sample assembly listing is shown in Table 1.

.... ,

ISI8 "8D4I MACAOASSEMBLEA, V1 0
LOC 0tIJ

SOURCE STATEMENT

. .0

,DECIMAL ADDITION ROUTINE ADO BCD NUMBER
•
5

e

.,."

""
""

0100 881E
0102

Bt28

·
""

,000)
INIT

MaY

'U,IADDNO

•

L1

MOV
ENDM

At.ICNT

"
'3

ALPHA

.

14

BETA

15

COUNT

eQU
eQU
eQU

,

22

FO

01011 11
0108 57
DIOA AI
010a 18
Oloe:;: IV
0100 EA07

USER SYMBOLS
ALPHA ooolE
LI
0102

LP

COUNT 0005

"UOND,ADONe,CNT

AD,'AUGND
I

30

40

OIIG

'OOH

INIT

ALPHA BETA COUNT
AO 'ALPHA
R1 taETA
R2 ICOUNT

MOV

""

BETA 0028

MACAO

MOY

19+Ll

0104 BAU
0108 97
0107

7

..."..."
.".
"

0100

AT LOCATION 'BETA' TO ICD NUMBER AT Al..PHA WITH
,RESULT IN 'ALPHA LENGTH OF NUMBER IS 'COUNT' DIGIT
,PAIAS IASSUME BOTH 8ETA AND ALPHA ARE SAME LENGTH
.AND HAVE eVEN NUMIER OF DIGITS OR M80 IS 0 IF

MOV
.OY
C",

MOY
AOor.:

DA

.OY
INC
INC

OJ""
'NO

C
A ORO
:

.,'"

OR1

ORO A

"' LP

LP 0107

ASSEMBLY COMPLETE NO ERRORS

ISIS II ASSEMBLER SYMBOl CROSS REfERENCE VIO

PAGE 1

SYMBOL CROSS REfERENCE

The MCS 48 assembler supports the 8048, 8049. 8050, 8020.
8021.8022. 8041 and 8042. The MCS 48 assembler can also
support CMOS versions of the 8048 family.

ALPHA 1a.

17

BETA

cOUla 1M

''''

17
17

7.

11

INIT

Ll

1M

LP

221

28

SPECIFICATIONS
Operating Environment
(All)

Documentation Package

Intel Microcomputer Development Systems
(Series II. Series

III/Se~jes

Titles of:

IV)

Intel Personal Development System

Ordering Information
Part Number

User Guides
Operating Instructions
Reference Manuals

SUPPORT:
Hotline Telephone Support. Software Performance
Reports (SPR). Software Updates. Technical
Reports. Monthly Newsletters are available.

~8Crlption

MDS-D48'
MCS-48 Disk Based Assembler
Requires Software License

*MDS is an ordering code only and is not used as a product name or trademark'. MDS is a registered trademark of
Mohawk Data Sciences Corporation.

3-106

AFN-00619D

inter
8051 SOFTWARE DEVELOPMENT PACKAGE
• Symbolic relocatable assembly
language programming for 8051
mlcrocontrollers
• Extends Intellec® Microcomputer
Development System to support 8051
program development
• Produces Relocatable Object Code
which is linkable to other 8051 Object
Modules
• Encourage modular program design
for maintainability and reliability

• Macro Assembler features conditional
assembly and macro capabilities

• CONV51 Converter for translation of
8048 assembly language source code
to 8051 assembly language source
code
• Provides upward compatibility from
the MCS·48™ family of single·chip
microcontrollers

The 8051 software development package provides development system support for the powerful 8051 family of single
chip microcomputers. The package contains a'symbolic macro assembler and MCS·48 source code converter.
The assembler produces relocatable object modules from 8051 macro assembly language instructions. The object
code modules can be linked and located to absolute memory locations. This absolute object code may be used to pro·
gram the 8751 EPROM version of the chip. The assembler output may also be debugged using the ICE-51TM in-circuit
emulator.
The converter translates 8048 assembly language instructions into 8051 source instructions to provide software compatibility between the two families of microcontrollers.

MAY 1983
©INTEL CORPORATION, 1983

ORDER NUMBER:162771-Q01

3-107

inter

8051 SOFTWARE DEVELOPMENT PACKAGE

8051 MACRO ASSEMBLER
• Supports 8051 family program development on IntelleC® Microcomputer
Development Systems
• Gives symbolic access to powerful
8051 hardware features
• Produces object file~ listing file and
error diagnostics

• Object files are linkable and locatable
• Provides software support for many
addressing and data allocation
capabilities
• SymboliC Assembler supports symbol
table, cross·reference, macro
capabilities, and conditional assembly

The 8051 Macro Assembler (ASM51) translates symbolic 8051 macro assembly language modules in.to linkable and
locatable object code modules. Assembly I~nguage mnemonics are easier to program and are more readable than
binary or hexadecimal machine instructions. By allowing the programmer to give symbolic names to memory locations
rather than absolute addresses, software design and debug are performed more quickly and reliably. Furthermore,
since modules are linkable and relocatable, the programmer can do his software in modular fashion. This makes programs easy to understand, maintainable and reliable.
The assembler supports macro definitions and calls. This is a convenient way to program a frequently used code
sequence only once. The assembler also provides conditional assembly capabilities·.
Cross referencing is provided in the symbol table listing, showing the user the lines in which each symbol was defined
and referenced.
ASM51 provides symbolic access to the many useful addressing features of the 8051 architecture. These features include
referencing for bit and byte locations, and for providing 4-bit ope~ations for BCD arithmetic. The assembler also provides symbolic
access to hardware registers, 1/0 ports, control bits, and RAM addresses. ASM51 can support all members of the 8051 family.
Math routines are enhanced by the MUltiply and DIVide instructions.
If an 8051 program contains errors, the assembler provides a comprehensive set of error diagnostics, which are included in the
assembly listing or on another file. Program testing may be performed by using the iUP Universal Programmer and iUP F87/51
personality module to program the 8751 EPROM version of the Chip.
ICE51 and EMV51 are available for program debugging.

RL51 LINKER AND RELOCATOR PROGRAM
• Links modules generated by the
assembler

• Enables modular programming of soft·
ware for effiCient program development

• Locates the linked object to absolute
memory locations

• Modular programs are easy to
understand, maintainable and reliable

The 8051 linker and relocator (RL51) is a utility which enables 8051 programmers to develop software in a modular
fashion. The linker resolves all references between modules and the relocator assigns absolute memory locations to
all. the relocatable segments, co.mbining relocatable partial segments with the same name.
With this utility, software can be developed more quickly because small functional modules are easier to understand,
design and test than large programs.
The number of symbols in the software is very large because the assembler symbol limit applies only per module not
the entire program. Therefore programs can be more readable and better documented.
Modules can be saved and used on different programs. Therefore the software investment of the customer is maintained.
RL51 produces two files. The absolute object module file can be directly executed by the 8051 family. The listing file
shows the results of the link/locate process.

3-108

AFN-OI944C

8051 SOFTWARE DEVELOPMENT PACKAGE

CO NV51
8048 TO 8051 ASSEMBLY LANGUAGE
CONVERTER UTILITY PROGRAM.
• Enables software written for the
MCS·48 family to be upgraded to run
on the 8051

• Preserves comments; translates 8048
macro definitions and calls
• Provides diagnostic information and
warning messages embedded In the
output listing

• Maps each 8048 Instruction to a corre·
spondlng 8051 Instruction

The 8048 to 8051 Assembly Language Converter is a utility to help users of the MCS-48 family of microcomputers
upgrade their delsgns with the high performance 8051 architecture. By converting 8048 source code to 8051 source
code, the software Investment developed for the 8048 is maintained when the system is upgraded.
The goal of the converter (CONV51) is to attain functional equivalence with the 8048 code by mapping each 8048
instruction to a corresponding 8051 instruction. In some cases a different instruction is produced because of the
enhanced instruction set (e.g., bit CLR instead of ANL).
Although CONV51 tries to attain functional equivalence with each instruction, certain 8048 code sequences cannot be
automatically converted. For example, a delay routine which depends on 8048 execution speed would require manual
adjustment. A few instructions, in fact, have no 8051 equivalent (such as those involving P4-P7). Finally, there are a
few areas of possible intervention such as PSW manipulation and interrupt processing, which at least require the user
to confirm proper translation. The converter always warns the user when it cannot guarantee complete co~version.
CONV51 produces two files. The output file contains the ASM51 source program produced from the 8048 instructions.
The listing file produces correlated listings of the input and output files, with warning messages In the output file to
point out areas that may require users' intervention in the conversion.

SPECIFICATIONS
OPERATING ENVIRONMENT

Documentation Package:
MCS-51 Macro Assembler User's Guide
MCS-51 Utilities User's Guide for 8080/8085 Based Development System
MCS-51 8048-to-8051 Assembly Language Converter
Operating Instructions for ISIS-II Users

All Intel Microcomputer Development Systems or Intel
Personal Development System

ORDERING INFORMATION

SUPPORT:

Part Number

Description

MCI-51-ASM

8051 Software Development
Package

Hotline Telephone Support, Software Performance
Reporting (SPR), Software Updates, Technical Reports,
Monthly Newsletter available.

'Requires Software License

3-109

AFN'()1944C

PUM 51 SOFTWARE PACKAGE
• High-level programming language for
the Intel MCS®-51 slngle-chlp
microcomputer family
• Compatible with PL/M 80 assuring
MCS®-ao/85 design portability
• Enhanced to support boolean
processing
.
• Tailored to provide an optimum balance
among on-chlp RAM usage, code size
and code execution time
• Allows programmer to have complete
control of microcomputer resources

• Produces relocatable object code
which Is linkable to object modules
generated by all other 8051 translators
• Extends high-level language
programming advantages to
microcontroller software development
• Improved reliability, lower maintenance
costs, Increased programmer
productivity and software portability
• Includes the linking and relocating
utility and the library manager
• Supports all members of the Intel
MCS®-51 architecture

PL/M 51 is a structured, high-level programming language for the Intel MCS-51 family of microcomputers. The
PL/M 51 language and compiler have been designed to support the unique software development requirements of the single-chip microcomputer environment. The PLiM language has been enhanced to support
Boolean processing and efficient access to the microcomputer functions. New compiler controls allow the
programmer complete control over what microcomputer resources are used by PL/M programs.
PL/M 51 is largely compatible with PL/M 80 and PL/M 86. A significant proportion of existing PL/M software can
be ported to the.MCS-51 with modifications to support the MCS-51 architecture. Existing PL/M programmers
can start programming for the MCS-51 with a small relearning effort.
PL/M 5.1 is the high-level alternative to assembly language programming for the MCS-51. When code size and
code execution speed are not critical factors, PL/M 51 is the cost-effective approach to developing reliable,
maintainable software.
The PL/M 51 compiler has been designed to support efficiently all phases of software implementation with
features like a syntax checker, multiple levels of optimization, cross-reference generation and debug record
generation.

LEGEND

o

~.J:~~:';?=:OOLS

r.
~

MC5-51
SOFTWARE TOOLS

-__-":J
O

O

USER..cODED
SOFTWARE

Figure 1. MCS®-S1 Program Development Process

MAY 1983

ORDER NUMBER:210566-001

3-110

inter

PL/M 51 SOFTWARE PACKAGE

PL/M 51 Compiler
FEATURES

Interrupt Handling

Major features of the Intel PL/M 51 compiler and
programming language include:

A procedure may be defined with the INTERRUPT
attribute. The compiler will generate code to save
and restore the processor status, for execution of the
user-defined interrupt handler routines.

Structured Programming
PL/M source code is developed in a series of modules, procedures, and blocks. Encouraging program
modularity in this manner makes programs more
readable, and easier to maintain and debug. The
language becomes more flexible, by clearly defining
the scope of user variables (local to a private procedure, for example).

Language Compatiblity
PL/M 51 object modules are compatible with object
modules generated by all other MCS-51 translators.
This means that PL/M programs may be linked to
programs written in any other MCS-51 language.
Object modules are compatible with In-Circuit
Emulators and Emulation Vehicles for MCS-51 processors; the DEBUG compiler control provides these
tools with symbolic debugging capabilities.

Compiler Controls
The PL/M 51 compiler offers controls that facilitate
such features as:
-Including additional PL/M 51 source files from
disk
-Cross-reference
-Corresponding assembly language code in the
listing file

Program Addressing Control
The PL/M 51 compiler takes full advantage of
program addressing with the ROM (SMALL/
MEDIUM/LARGE) control. Programs with less than 2
KB code space can use the SMALL or MEDIUM option to generate optimum addressing instructions.
Larger programs can address over the full 64 KB
range.

Supports Three Data Types
PL/M makes use of three data types for various applications. These data types range from one to sixteen bits and facilitate various arithmetic, logic, and
address functions:
-Bit: a binary digit
-Byte: a-bit unsigned number or,
-Word: 16-bit unsigned number.
Another powerful facility allows the use of BASED
variables that map more than one variable to the
same memory location. This is especially useful for
passing parameters, relative and absolute addressing, and memory allocation.

Code Optimization
The PL/M 51 compiler offers four levels of optimization for significantly reducing overall program size.
-Combination or "folding" of constant expressions;
"Strength reductions" (a shift left rather than mUltiply by 2)
-Machine code optimizations; elimination of superfluous branches
-Automatic overlaying of on-chip RAM variables
-Register history: an off-chip variable will not be
reloaded if its value is available in a register.

Error Checking
Two Data Structuring Facilities
PL/M 51 supports two data structuring facilities.
These add flexibility to the referencing of data stored
in large groups.
-Array: Indexed list of same type data elements
-Structure: Named collection of same or different
type data elements
-Combinations of Both: Arrays of structures or
structures of arrays.

The PLIM 51 compiler has a very powerful feature to
speed up compilations. If a syntax or program error is
detected, the compiler will skip the code generation
and optimization passes. This usually yields a 2X
performance increase for compilation of programs
with errors.
A fully detailed set of programming and compilation
error messages is provided by the compiler and
user's guide.

3-111

AFN.()()047B

inter

PL/M 51 SOFTWARE PACKAGE

BENEFITS

Lower Development Cost

PLIM 51 is designed to be an efficient, cost-effective
solution to the special requirements of MCS-51 Microsystem Software Development, as illustrated by
the following benefits of PL/M use:

Increases in programmer productivity translate immediately into lower software development costs because less programming resources are required for a
given programmed function.

Increased Reliabilty

Low Learning Effort
PL/M 51 is easy to learn and to use, even for the
novice programmer.

Earlier Project Completion
I

Critical projects are completed much earlier than
otherwise" possible because PL/M 51, a structured
high-level language, increases programmer
productivity.

PL/M 51 is designed to aid in the development of
reliable software (PL/M programs are simple
statements of the program algorithm). This substantially reduces the risk of costly correction of errors in
systems that have already reached full production
status, as the more simply stated the program is, the
more likely it is to perform its intended function.

Easier Enhancements and Maintenance
Programs written in PL/M tend to be selfdocumenting, thus easier to read and understand.
This means it is easier to enhance and maintain
PL/M programs as the system capabilities expand
and future products are developed.

RL51 Linker and Relocator
• Links modules generated by the
assembler and the PL/M compiler

• Enables modular programming of
software-efficient program
development

• Locates the linked object to absolute
memory locations

• Modular programs are easy to
understand, maintainable and reliable

The MCS-51 linker and relocator (RL51) is a utility which enables MCS-51 programmers to develop software in a
modular fashion. The utility resolves all references between modules and assigns absolute memory locations to
all the relocatable segments, combining relocatable partial segments with the same name.
With this utility, software can be developed more quickly because small functional modules are easier to
understand, design and test than large. programs.
The total number of allowed symbols in user-developed software is very large because the assembler number of
symbols' limit applies only per module, not to the entire program. Therefore programs can be more readable
and better documented.
Modules can be saved and used on different programs. Therefore the software investment of the customer is
maintained.
RL51 produces two files. The absolute object module file can be directly executed by the MCS-51 family. The
listing file shows the results of the link/locate process.
3-112

AFN.Q0047e

intJ

PL/M 51 SOFTWARE PACKAGE

LlB51 Librarian
The LlB51 utility enables MCS-51 programmers to
create and maintain libraries of software object modules. With this utility, the customer can develop standard software modules and place them in libraries,
which programs can access through a standard interface. When using object libraries, the linker will

call only object modules that are required to satisfy
external references.
Consequently, the librarian enables the customer
to port and reuse software on different projects
-thereby maintaining the customer's software
investment.

SPECIFICATIONS

Documentation Package

Operating Environment

PLIM 51 User's Guide
MC5-51 Utilities User's Guide

All Intel Microcomputer Development Systems or
Intel Personal Development Systems

ORDERING INFORMATION
Part Number

Description

iMDX 352
Requires Software License

PL/M 51 Software
Package

SUPPORT:
Hotline Telephone Support, Software Performance Report (SPR), Software Updates, Technical Reports, and
monthly Technical Newsletters are available.

3-113

AFN·00041B

MCS@·96 SOFTWARE SUPPORT PACKAGE
• Symbolic relocatable assembly
language programming for the 8096
microcontroller family
• System Utilities for Program Linking
and Relocation

• Extends Intellec® Microcomputer
Development System to support
MCS-96 program development
• Encourages modular program design
for maintainability and reliability

The MCS-96 Software Support Package provides development system support for the MCS-96 family of 16 bit
single chip microcomputers. The support package includes a macro assembler and system utilities.
The assembler produces relocatab!e object modules from MCS-96 macro assembly language instructions. The
object modules then are linked and located to absolute memory locations.
The assembler and utilities run on the Intellec Serie,s III or equivalent Microcomputer Development System.

.

MCS·96 SOFTWARE SUPPORT PACKAGE

~

/

ASM·96
MACRO
ASSEMBLER

RL·96
LINKER AND
RELOCATOR

LIB·96
SOFTWARE
LIBRARIAN

Figure 1. MCS-96 Software Support Package

MARCH 1983
ORDER NUMBER:230613-002

© INTEL CORPORATION 1983

3-114

MCS@·96 SOFTWARE SUPPORT PACKAGE

8096 MACRO ASSEMBLER
• Supports 8096 family program
development on Intellec®
Microcomputer Development System
• Gives symbolic access to powerful
8096 hardware features

• Object files are linkable and
locatable
• Symbolic Assembler supports
macro capabilities, cross reference,
symbol table and conditional
assembly

ASM-96 is the macro assembler for the iACX family of microcontrollers. ASM-96 translates symbolic
assembly language mnemonics into relocatable object code. Since the object modules are linkable and
locatable, ASM-96 encourages modular programming practices.
The macro facility in ASM-96 allows programmers to save development and maintenance time since
common code sequences only have to be done once. The assembler also provides conditional
assembly capabilities.
ASM-96 supports symbolic access to the many features of the 8096 architecture. An "Include" file is
provided with all of the 8096 hardware registers defined. Alternatively~ the user can define any subset of
the 8096 hardware register set.
Math routines are supported with mnemonics for 16 x 16-bit multiply or 32/16-bit divide instructions.
The assembler runs on a Series III/Series IV Inteilec Development Systems for high performance.

RL96 LINKER AND RELOCATOR PROGRAM
• Links modules generated by
the assembler
• Locates the linked object module
to absolute memory locations

• Encourages modular programming
for faster program development
• Automated selection of required
modules from Libraries to sa.tlsfy
symbolic references

RL96 is a utility that performs two functions useful in MCS-96 software development:
-The link function which combines a number of MCS-96 object modules into a single program.
-The locate functions which assigns an absolute address to ail relocatable addresses in the MCS-96 object
module.
RL96 resolves all external symbol references between modules and will select object modules from
library files if necessary.
.
RL96 creates two files:
- The program or absolute object module file that can be executed by the targeted member of the MCS-96 family.
- The listing file that shows the results of link/locate, including a memory map symbol table and an
optional cross reference listing.
The relocator allows programmers to concentrate on software functionality and not worry about the
al;lsolute addresses of the object code. RL96 promotes modular programming. The application can be
broken down into separate modules that are easier to deSign, test and maintain. Standard modules can
be developed and used in different applications thus saving software development time.

3-115

230613-002

"m_le>

, 111'tr

MC$@-98 SOFTWARE SUPPORT PACKAGE

LIB 96
The LIB 96 utility creates and maintains libraries of software object modl,lIes. The customer can develop
standard modules and place them in libraries. Application programs can then call these modules using
predefined interfaces.
LIB 96 uses the following set of commands:
-CREAT,E: Creates an empty library file.
-ADD:
Adds object mOdufes to a library file.
-DELETE: Deletes object modules from a library file.
-LIST:
Lists the modules in the library file.
-EXIT:
Terminates 'LIB 96
When using object libraries,' RL96 will Include only those object modules that are required to satisfy
external references, thus saving memory space.

SPECIFICATIONS
Operating Environment

Documentation Package:

REQUIRED HARDWARE:
Intellec Microcomputer Development System
-Series III/Series IV

MCS-96 MACRO ASSEMBLER USER'S GUIDE
MCS-96 UTILITIES USER'S GUIDE
MCS-96 ASSEMBLER AND UTILITIES POCKET
REFERENCE CARD

ORDERING INFORMATION
Part Number

Description

iMDX·355

MCS-96 SOFTWARE SUPPORT PACKAGE

Requires Software License

3-116

Productivity Tools and
Communications Software

4

inter
PRODUCTIVITY TOOLS AND COMMUNICATIONS SOFTWARE
INTRODUCTION
Improving an engineering team's productivity is a never ending task in loday's competitive envfronments.lntel
offers software tools and communication systems that optimize the usage of expensive engineering personnel
and capital equipment. Software tools boost a programming team·s productivity, thtHeby lowering development
costs and shortening product development times. Communication software provides further productivity gains
by linking mUlti-computer engineering environments into highly effective networks.
One software tool that substantially increases software productivity is PSCOPE, a source level symbolic
debugger. The PSCOPE debugger allows the high-level language programmer to completely debug his code at
the same level at which it was written. Breakpointing, tracing, and patching are all done in a faster and less
error-prone manner than through obsolete machine-level debuggers. As software testing and maintenance
consume a greater portion of development life-cycle time and cost, PSCOPE debugging can significantly
improve programming efficiency.
Another set of valuable software tools are Intel's Program Management Tools (PMTs), which provide the
essential ingredients to manage large software development projects. PMTs decrease the time spent on
tracking program changes and manually generating new systems, thereby giving engineers more time for
software design, development, and testing. PMTs consist of a Software Version Control System (SVCS), and an
automated software generation facility (MAKE). Together these tools control, examine, and automate the
management of a software system that may contain many versions consisting of numerous modules.
Intel's software toolboxes are collections of utilities that perform a variety of productivity-oriented functions.
The ISIS-II Software Toolbox offers conditional submit file control tools, source management tools, and other
tools that operate at the ISIS-II command level. The 8086 Software Toolbox is a collection of 16-bit software
tools that are valuable for text formatting and preparation, software testing and performance analysis, 286/287
software development, and a multitude of other applications.
Intel also offers AEDIT ,an advanced editor that significantly improves programmer productivity. AEDIT was
designed with the programmer in mind, and offers full screen editing, the ability to edit two files at once,
features f9r manipulating large blocks of text, and dynamic macro command definition. In addition, Intel
continues to offer and support CREDIT, an 8-bit CRT-based editor.
The trend toward distributed data processing is well supported by Intel's complete line of communication
software and systems. Mainframe Link integrates user mainframe computers with Intellec Development
systems by emulating the operation of an IBM 2780 or 3780 Remote Job Entry terminal. The Asynchronous
Communication Link enables one or more Intel Microcomputer Development Systems to communicate with a
Digital Equipment Corporation VAX computer. The iNA 950 and iNA 960 are ready-to-use communication
software building blocks for OEM suppliers of networked systems for both technical and commercial
applications. Finally, NOS-II Electronic Mail enables users to send and receive messages and files between any
nodes on the NOS-II network.

4-1

inter
PSCOPE
HIGH-LEVEL PROGRAM DEBUGGER
• Compatible with Intel's 12 1CE T.
Integrated Instrumentation and InCircuit Emulation System for Target
System Debugging

• Source-Level Debugging for Higl)
Productivity
• Breakpoint, Single-Step and Execution
Trace by Statement Numbers,
Procedure Names and Labels

• Native CPU Execution for iAPX 88 and
86 Architectures I
• Supports PL/M, Pascal, and FORTRAN
Program Debugging

• High-Level Code Patching

PSCOPE is an interactive, symbolic debugger for high-level language programs. It allows users to scrutinize
program execution at the source level, using high-level statement numbers, procedure and variable names and
labels. This is typically a more productive way of debugging high-level language (HLL) programs than at the
machine level.
Source-level debugging means that traditional functions, such as setting breakpoints or tracing execution flow,
are more powerful in PSCOPE. For example, tracing procedure entry (or exit) points conveys much more
information than tracing machine instructions. Single-step execution is more powerful, using statements and
procedures, as well.
The productivity improvement from debugging in a high-level language is analogous to programming in a
high-level language, when compared to assembly-level programming and debugging.
PSCOPE users may define high-level code patches, which are "compiled" and patched into the user's program.
Code patches may be stored on diSk, so they may be later incorporated into the program source file.
PSCOPE is an integral part of the advanced 12 1CE Integrated Instrumentation and In-Circuit Emulation System.
This allows a smooth migration from program debugging to target system debugging.
PSCOPE's symbol capacity is virtually unlimited. Symbols are paged to disk when necessary.

PROGRAM
DEVELOPMENT

ASSEMBLY
LANGUAGE
MODULES

SOURCE-LEVEL
DEBUGGING

~

V

HIGH·LEVEL
MODULE'S:

PSCOPE:
CPU·LEVEL DEBUGGING
REGISTERS

-

-V

PL/M-86

PASCAL-86

-V

BREAKPOINTS
TRACE POINTS
SINGLE STEP
EXAMINE/MODIFY
CODE PATCHING

PSCOPE AND INSTRUMENTATION:

~

PSCOPE:
HIGH-LEVEL DEBUGGING

~

TARGET SYSTEM
INTEGRATION

REAL· TIME EMULATION
HIGH·LEVEL DEBUGGING
CPU·LEVEL DEBUGGING

-

FORTRAN-86

Figure 1. Debugging Methodology with PSCOPE

4-2

MAY 1983
ORDER NUMBER:21035CHl03

PSCOPE
HIGH-LEVEL PROGRAM DEBUGGER

inter

SAMPLE DEBUGGER SESSION

SERIES-III Pascal-86, VI.l

Sourc~

Elle~

:F2:~AXMIN.PAS

ObJect F.le: :F2:MAXMIN.OBJ
DEBUG.

Controls SpecIfIed:

STMT LINE NESTING
1
1 0 0
2
2 0 ~
3

4

4

5
6
7
8
9

5
5
G
7
8

11

9
10
10
11
12

12
13
14
15
16

13
14
14

18
19
20

16

21

18
20

22
23

21
21
21
22

25
26
27
28

23
24
25
26
27

30
31
32
33
34

0
0

SOURCE T~XT: :F2:MAXMIN.PAS
proyram calc(input,output)i
va!'" a,b: Integer;
procedure sum(x,Y:lnteger);
var Z: Integer;
begIn

Z:=X*Yi
writeln('The sum IS I,Z);
end;
procedure difference(x,Y:lnteger);
var Z: Integer;
begin

z:=aos(x-y);
wflteln('The dIfference IS ',Z)i

end;
procedure maxmin{x,y:integer);
begIn
If x') 'break? I
.11 1 t eI == I y' then return true
else return fals~ endlf
*

""def Ine proc PRI

This illustrates the facility where a debug procedure
(PR1) is called when reaching a breakpoint at line
#21. Here, some values are displayed, and a condition is evaluated (in this case, a query to the user).
Had the condition been false, program execution
would continue with no break. The high-level constructs in the command language make this a very
powerful facility.

.*end

*d br B3 = aZI call PRl
*go uSlng b3
INPUT TWO INTEGERS:
(Input)
23 24
THE SUI"! IS
47
TH~

DIFFERENCE IS

1

'fHE MAXIMUM IS
24
THE MINIMUM IS
24
the numbers and the product are:

+23 +24 +552

Dreak ? 'i

.

[Hr~ak

at #21 J

*ex 1 t
PSCOPE

terllllnated

4-6

AFN-02166C

inter

PROGRAM MANAGEMENT TOOLS,

• Increase Software Engineering
Productivity
• Decrease Software Administration
Overhead
• Allow Users to Control, Automate and
Examine the Evolution of a Software Project
• Enhance the Capability of Networked
(NOS-II) and Standalone Development
Systems

• SVCS Simplifies Administration of
Software Modules and Systems
• MAKE Automatically Generates New
Releases of Software Systems
• Both Tools Easily Incorporated Into
Existing Software Development
Methodologies

Intel's Program Management Tools (PMTs) provide the essential ingredients to manage large software development projects. PMTs decrease the time spent on tracking program changes and manually generating new
systems, thereby giving engineers more time for software deSign, development, and testing.
PMTs consist of a "Software Version Control System" (SVCS), and an automated software generation facility
(MAKE). Together these tools control, examine, and automate the management of a software system that may
contain many versions consisting of numerous modules.
SVCS controls and documents software changes for all file types. SVCS handles storage and retrieval of
different versions of a given module, controls update privileges, prevents different users from making changes
independently, and requires all changes be thoroughly documented by recording who made what changes,
when and why.
MAKE produces the specification of a "minimum-work" job required to generate a new system. This job (Le.
submit file) typically includes compiles and links of the latest versions of specified source and object modules. If
a newer source module exists for any specified object module, MAKE will specify a compile of this module,
replacing the older module in the completed program. Unnecessary links and compiles, however, are
eliminated. MAKE does the minimum work required to ensure consistent, up-to-date software, thus saving many
hours of compiles and links.
Incorporating PMTs ,into an existing project is easy. PMTs work with existing operating systems and software
tools (editors, compilers, utilities) and require very little relearning. New users can quickly gain expertise in using
PMTs by working through the examples contained in the PMT Tutorial Manual and Diskette, which are included
with every PMT software package. Program Management Tools are ideal in a networked (NOS-II) environment,
where multi-version software control is critical. PMTs are also extremely valuable on standalone systems (with
Winchester disk) as well.

i
i
iI

SVCS

Get the source module out of database.

AEDIT

Make code changes using editor.

SVCS

Put module back into database.

MAKE

Automatically generate new version of system.

OPTIMAL CONTROL OF A SOFTWARE PROJECT.
Intel COrporation Assumes No Responslbtllty lOr tile Use of Any Circuitry OIlIer Than Circuitry Embodied in an Intel Product. No Other ClrcuR Patent
lJcenses are implied
4-7
MAY 1983
C INTEL CORPORATION, 1983.
ORDER NUM8ER:210567-G03

PROGRAM MANAGEMENT TOOLS

SOFTWARE VERSION CONTROL SYSTEM (SVCS)
• Simplifies Administ~ation of Software
Modules and Systems
• Maintains Change History Information
on Every Module

• Prevents Users From Accidently
Deleting System Software or Making
Simultaneous Module Changes
• Offers an Effective Software Version
Generation and Control Mechanism

Intel's Software Version Control System (SVCS) is a utility that greatly simplifies "software system housekeeping. SVCS automatically controls and documents software modules in a large project, eliminating costly manual
administration by a project leader or librarian.
SVCS maintains a system database of software modules called units. Each unit is divided into four classes:
Source, which contains the unit's source code; Object, which contains the unit's object code; History, which
contains the unit's history file; and Composition, which can be arbitrarily used by the user.
Users interact with the database by using SVCS administrative and access commands. Project managers use
administrative commands to create new system databases, add and delete database units, set unit access
rights, and create and name new system variants. Programmers use SVCS access commands to check out and
return database modules when making system changes. For every change made, SVCS records what
changed, who changed it, when it was changed, and why.
SVCS variant generation and control enable project administrators to effectively create and identify new versions of software systems. Stable versions may be write protected and placed in the public domain, working
versions may be identified and accessible only to programming personnel, and special versions may be created
for customized releases. In addition, version control can minimize software archival, maintenance, and support
administrative overhead.

AUTOMATED SOFTWARE GENERATION (MAKE)
• Automatically Creates New Software
Systems, Using the Latest Versions of
Source Modules
• Automatically Determines Which Source
Modules Need Recompiling

• Works Closely with SVCS for Generating
Complete, Up-To-Date Systems
• Easily Adopted into Existing
Developm,nt Methodologies
• Offers Many Powerful Macro Constructs

• Eliminates Unnecessary Compiles and
Links
MAKE is a utility that greatly simplifies the generation of software systems. MAKE produces a "minimum-work"
submit file that can generate a complete, up-to-date system without any unnecessary compiles and links. MAKE
can reduce system generation times trom hours to minutes while concurrently minimizing administrative
overhead.

4-8

ORDER NUMBER:21056NI03

PROGRAM MANAGEMENT TOOLS

MAKE accepts a text input file that instructs it how to generate a new software system. The input file specifies all
modules required to generate the new system and includes a description of system dependencies. It also
specifies specific system operations, such as compiles, links, SVCS operations, line-printer spoolings, and other
system commands. MAKE uses this input file in conjunction with the time and date stamps on each module to
determine the optimum system generation procedure that eliminates all unnecessary compiles and links.
Typically a MAKE input file is created once at the start of a project. Very occasionally during the life of the project
it may need modification. A powerful set of macros makes the creation and subsequent modification of a
generation procedure an easy task. Overall, the management of the MAKE input file is negligible compared to
maintaining numerous submit files for system generations.
The close relationship between SVCS and MAKE help simplify the overall job of software control at all levels.
For example, the very latest version of a source module may not be stable enough to be included in a
generation. A less functional, but more reliable version may exist. Since SVCS keeps unique versions distinct,
an SVCS-module containing the more reliable version may be specified in the MAKE input file.

BENEFITS: SVCS AND MAKE
Intel's Program Management Tools eliminate common problems such as:
"We've modified module FOO, which has introduced a
new set of problems. Now we can't restore it back to
the'earlier version."
"Module FOO2 has been modified; no one seems to
know who changed it, or why."
"We often have several programmers making
changes to the same modules. Trying to avoid simultaneous changes is a lot of effort, and we waste time
synthesizing two sets of changes int!> one module."
"To ensure that we release up-to-date, correct software, we periodically go into "release mode" for a
few days. Everyone stops work completely while we
find the latest versions, and then start the generation
from the ground up. It literally takes days, when we
could be making productive changes,"
SVCS and MAKE together provide a service that fits
easily into your existing design methodology, and
solves administrative problems such as those
described above.

SPECIFICATIONS·

Networked, Multi-User Software Control
NOS-II with at least one Intellec Microcomputer
Development System
iNDX, ISIS-III(N) System Software

Standalone Use
Intellec Series III with Model 750 Winchester Disk or
Intellec Series IV
SVCS and MAKE will not operate on ISIS-II local
floppies or Model 740 Hard Disks.
SVCS and MAKE may be exported from any
workstation in an NDS;II configuration.

Documentation
''A User's Guide to Program Management Tools"
(121958)

SOFTWARE SUPPORT
This product includes a 9O-day initial support consisting of new software releases, updates, subscription
services (software performance reports and technical
reports), and telephone hotline support. Additional
software support services are available separately.
ORDERING INFORMATION

Part Number
iMDX-332

Description
Intel Program
Management Tools

ORDER NUMBER:21056HI03

ISIS-II SOFTWARE TOOLBOX
• Significantly Improves Programmer
Productivity

• Provides Source File Management,
Showing Source Changes, and
Performing Version Control

• Collection of Utilities that Speed Up
Software Design

• Provides Conditional Control and
I'Structured Programming" to Submit
Files

• Enhances Capabilities of ISIS-II
Operating System

• Runs on Model 800, Series II,
Series III, and Series IV Intellec®
Development Systems

• Most Utilities will Operate on NDSII Workstations and Remote Directories

The ISIS-II Software Toolbox is a collection of system utilities that perform a variety of "productivityoriented" functions. There are two major subsets of Toolbox tools, in addition to numerous ad hoc
utilities. These subsets provide Conditional Submit File Control and Source File Management.
The Conditional Submit File Control tools provide "structured programming" at the ISIS-II command level.
Jumps, Calls, Returns, etc. are supported, as well as conditional command execution, based on assertions such as file existence, program errors, file matching, and string matching.
The. Source Management Tools support version number tracking, and allow users to identify which versions of each source module were used to create a load module. There is also a tool which compares
source files and reports all differences.
The tools outside of the two major subsets assist the programmer in some very specific development and
debugging tasks. One tool manages all PUBLIC/EXTERNAL declarations in a system. Another merges the
locate maps into a program listing, giving absolute symbolic debugging information. There's a directory
sorter, a file compactor, and a tool to display just the last block of a file.

PASSIF

LATEST
COM PAR
GENPEX

U
fJ

MERGBO
MERG8S

MRKOBJ
ERRS
LAST

CHKLOD

MANY TOOLS IN THE TOOLBOX ENHANCE SPECIFIC PHASES OF THE DEVELOPMENT
CYCLE OTHERS IMPROVE PRODUCTIVITY IN ALL PHASES.

The lollowmg are trademarks of Intel Corporallon and may be used only to Identify Intel prOducts BXP. CflEOIT, t. ICE. les. 1m. Instte, Intel, mtel, InteleVISlon, Intellee, tRMX,
Library Manager. MeS, Megachassls, Mlcromap, MUitlbus, Multlrnodule. PROMPT. Promware. RMXI80. System 2000, UP!' ~Scope, and the combmatlon of ICE. leS,

,sac tsex.

lRMX .• sec. ,SBX, MeS, or AMX and a numencal suffiX
@In,.,Corpora',onI981

4-10

ORDER NUMBER:210567-oD3

ISIS-II SOFTWARE TOOLBOX

GENPEX-produces include file for PLIM external
declarations (source level)
PASSIF-general purpose assertion checking,
testing, and reporting tool

FUNCTIONAL DESCRIPTION
Submit File Execution Control

Text Processing

IF/ELSE/ENDIF-conditional submit file execution based on file existence, program errors,
pattern matching, plus several other conditions
GOTO-causes submit execution to resume at a
specified label
RETURN-causes execution to return to the "submitter" (calling file)
EXIT-halts sub,mit file execution
LOOP-forces execution to resume at the beginning of the submit file
RESCAN-allows submit execution to begin
anywhere in file
NOTE-allows "progress report" notes to be
placed in submit files
WAIT-displays a message, and waits for user
input to continue or abort
STOPIF-halts submit file execution if specified
listing contains errors

COMPAR-performs line-oriented text file comparison (shows source changes)
UPPER-changes all letters in an ASCII text file to
uppercase
LOWER-changes all letters in an ASCII text file to
lowercase
LAST-displays the last 512 bytes of a file
SORT-sophisticated line-oriented text file sorting tool

Disk Backup and File Processing
DCOPY-fast track-by-track diskette copying
HOBACK - sophisticated hard disk to floppy disk
backup program
PACK-compacts text files by removing strings of
blanks
UNPACK-reconstitutes "packed" files

Source Management

Disk Recovery

XLATE2-submit-like tool with intelligent
parameter substitution (for version control)
MRKOBJ-"marks" object modules with source
version information
CHKLOD-lists source version data put in load
modules by MRKOBJ
CLEAN-deletes all old versions off a specified
disk
LATEST-displays latest version numbers of
specified files

GANEF*-interactively reads and writes floppy or
hard disk data blocks

Program Identification
WHICH-displays version number of Software
Toolbox Programs
"These programs will not operate on NOS-II remote
directories.
This product includes a 90-day initial support consisting of new software releases, updates, subscription
services (software performance reports and technical
reports), and telephone hotline support. Additional software support services are available separately.

Operating System Functions
CONSOL-reassigns console input and console
output as directed
DSORT*-alphabetically sorts floppy disk and
hard disk directories
RELAB*-changes disk name to any other
specified name

ORDERING INFORMATION
Program Development and Debugging

Product Code
MDS-363 t

ERRS-fast display of program errors in PLI M 80,
PLIM 86, and ASM 86 listings
MERG80-merges debug data from locate maps
into PLIM 80 listings
MERG86-merges debug data from symbol maps
into PLIM 86 and Pascal 86 listings

Description
ISIS~II SOFTWARE TOOLBOX

Requires software license.
'MDS is an ordering code only and is not used as a product name or trademark. MDS is a registered
trademark of Mohawk Data Science.
4-'1

ORDER NUMBER:210HHI03

8086 SOFTWARE TOOLBOX
• Collection of Tools That Speed Software
Development

• OMC 286 and 287 EMULATOR Aid 80286
and 80287 Software Development

• MPl, a Standalone Macro Processor, is
Ideal for Debugging Macros

• Many Other Valuable 16-Bit Software
Tools Are Included

• SCRIBl and SPEll Assist Text
Preparation

• Runs on Series III and Series IV
Microcomputer Dev,lopment Systems

The 8086 Software Toolbox isa collection of 16-bit software tools that can significantly improve programmer
productivity. These tools are valuable for text formatting and preparation, software testing and performance
analysis, 286/287 software development, and a multitude of other applications.
Text processing tools ease document formatting and preparation. SCRIBl is a text formatting program that uses
commands embedded in text to do paging, centering, left and right margins, subscripts, etc. SPEll finds
misspelled words in a text file and comes with a user expandable dictionary. COMP compares two text or source
files and displays their differences.
Test and performance analysis tools aid software testing and performance evaluation. PERF, a performance
analysis tool for 8086 software, is ideal for isolating code "hot spots." PASS IF is a general-purpose assertion
qhecking and reporting tool perfect for running test suites.
Software development for 286/287 components is assisted by two software tools: OMC 286, an 8086 to 80286
object module convertor, and 287 EMULATOR, an 80287 emulator that runs on the 80286.
Additional tools are included that aid 16-bit sQftware development efforts. All tools run on Series III and Series IV
Microcomputer Development Systems.

PERFORMANCE
MEASUREMENT & TESTING

TEXT PROCESSING
SCRIBl

PERF

SPELL

GRAPHIT

MPL

PASSIF

WSORT
COMP

286/287 DEVELOPMENT

MISCELLANEOUS TOOLS

OMC 286

FUNC

287 EMULATOR

XREF

DC
HSORT

,8086 SOFTWARE TOOLBOX TOOLS
Intel Corporation Assumes No Responsibility for the Use of Any Circuiby Other Than Circuitry Embodied in an Intel Product. No Other Circuit Patent
Licenses are implied
OCTOBER 1983
© INTEL CORPORATION, 1983.

4-12

ORDER HUMBER:210567-CI03

inter

8086 SOFTWARE TOOLBOX

FUNCTIONAL DESCRIPTION

FUNC-allows user to redefine the keys on a Series
III keyboard and define function keys. Requires the
iMDX 511 firmware.

Text Processing
SCRIBl-text formatting program that does paging,
centering, left and right margins, justification, page
headers and footers, underlines, boldface type, subscripts and superscripts, upper and lower case, and
much more. Formatting commands are embedded in
text.

XREF-produces cross-reference tables from translator list files. Cross-references aii symbolsvariables, labels, literallies, and quoted strings.
DC-floating pOint desk calculator program; allows
variable definitions.

MPl-standalone macro processor that processes
the macro language used in 8086, 80286, 8089, and
8051 assembler-s. Can be used interactively which
makes it ideal for debugging macros, MPL can be
used to ~reprocess any text file.

HSORT-general heap sort utility.

SPECIFICATIONS

SPEll-finds misspelled words in a text file. Dictionary of correctly spelled words is user expandable.

Operating Environment
Required Hardware

WSORT-utility for creating the SPELL dictionary.

Series III or Series IV Microcomputer Development
System

COMP-performs line-oriented text file comparison
(shows source changes). Also understands 8086 object module formats for comparing 8086 object files.

Required Software
ISIS-II (W), ISIS-III (N), or iNDX Operating System

Performance Measurement and Testing
PASSIF-general-purpose assertion checking, testing; and reporting tool. Helps automate the software
testing process.
PERF-performance analysis tool for 8086 software.
Monitors references in the code segment; segment
monitored is user defined. Works with small or compact bound loadable modules. Ideal for isolating code
"hot spots." Will only run on the Series III.

GRAFIT-'"graphing utility for use with PERF.
Miscellaneous Tools
OMC286 - object module convertor that converts
8086 object modules into 80286 object modules.

287 EMULATOR-an 80287 emulator that runs on
the 80286.

4-13

Documentaton
"8086 Software Toolbox."
(122203)

Software Support
This product includes a 90-day initial support consisting of new software releases, updates, subscription
services (software performance reports and technical
reports), and telephone hotline support. Additional
software support services are available separately.

ORDERING INFORMATION
Product Code

Description

iMDX-364

8086 Software Toolbox

ORDER NUMBER:210567-OO3

AEDIT TEXT EDITOR
•

•
•

AEDIT -80 Operates on any .
Intelleas> Series II, Model 800, or
IPDS Development System
AEDlT-86 Operates on any Intellec®
Series III or Series IV system
Full Screen Editing Capabilities

•
•
•
•

Menu-Driven, Easy-to-Use
Designed for the Programmer
Dual File Editing
Easy Handling of Large Blocks of
Text

AEDIT is a programmer-oriented screen editor for lise on any Intellec Development System. It is
designed to be easy to learn and easy to use. The user is guided by a menu which is used not only to
select commands, but also to select options to commands-thu6the user is guided at all times.
AEDIT provides full screen editing capabilities. In addition, AEDIT offers features to easily handle
(move, copy, delete) large blocks of text. Additional commands are available to find and selectively
replace text.
AEDIT allows commands to be prefixed with a count, so commands can be repetitively applied to
large portions of th'e file being edited. To facilitate command entry, the last command and last text
strings (for FIND and REPLACE) are retained for convenient re-use.
AEDIT has been designed with the programmer in mind. Two files can be edited during one session.
The user can easily switch between files and transfer text between the files. AEDIT has options to
automatically indent text to help with the entry of high-level language source. This can considerably
shorten the programmer's editing task.
.
AEDIT can optionally use blanks instead of tabs to indent text. This means that compiler-produced
listing files will have the same indentation as the programmer-created source file.
Many other features make AEDIT the editor of the programmer's chOice. AEDIT can edit files of any
size and optionally creates back-up copies of the file being edited. The user need not bother with complex and incomqrehensible command macro's-with AEDIT a macro is created simply by executing it.
AEDIT remembers the user's actions for re-use, and stores them on file if requested.

The following are trademarks of Intel Corporation and its affiliates and may be used only to identify Intel products: BXP, CREDIT, i,lCE,
iCS, 1m, Inslte, Intel INTEL, Intelevision, Intellec, iMMX, iOSP, iPDS, iRMX, iSBC, ISBX, Library manager, MCS, MUlTiMODUlE,
Megachassis, Micromainframe, Micromap, MULTI BUS, Multichannel, Plug·A·Bubble, PROMPT, Promware, RMX/80, System 2000, UPI,
and the combination of ICS, iRMX, ISBC, iSBX, ICE, MCS, or UPI and a numerical suffix, Intel Corporation Assumes No Responsibility for
the use of Any Circuitry Other Than Circuitry Embodied in an Intel Product. No Other Patent licenses are implied.
© INTEL CORPORATION, 1983
MAY 1983

4-14

ORDER NUMBER:210996-002

AEDIT TEXT EDITOR

MANUALS

ORDERING INFORMATION

AEDIT is supplied with a user manual documen·
ting all the aspects of the editor, and a pocket
reference card. The manual includes an in·
troductory tutorial.

iMDX·335

AEDIT·SO Text Editor.
Includes 8" single and double den·
sity diskeHes for Series liE, Series
II, or Model SOO. and a 5%"
diskette for iPDS.

iMDX·334

AEDIT·S6 Text Editor
Includes S" single and double density
diskettes for Series III.

HOST SYSTEM
AEDIT·SO is an SOSO/SOS5·based utility and can be
run on any Intellec Development System, Series liE,
Series II, Model SOD, or iPDS, as well as on ISIS
Cluster workstations.
The higher·performance AEDIT·S6 is an SOS6·based
utility that can be run on any Intellec Series IIIE, Se·
ries III, or Series IV Development system. Any Series
liE, Series II or Model SOD system can be upgraded
to Series III functionality.
AEDIT can be configured to run with non·lntel
terminals. Tested configurations are available
for the following popular terminals:
ADDS Regent 200, Viewpoint 3A +
Beehive Mini·Bee
DEC VT52, VT100
Hazeltine 1510
Lear·Seigler ADM·3A
Zentec ZMS·35
Regent 200 is a trademark of ADDS
Mini·Bee is a trademark of Beehive
DEC designated Digital Equipment Corporation
ADM·3A is a trademark of Lear·Siegler

4·15

CREDIT™
CRT-BASED TEXT EDITOR
MICROCOMPUTER DEVELbpMENT SYSTEMS
• Provides Interactive Editing of ASCII
Text Files

• Displays Full Page of Text

• CRT Screen Display with Cursor-Based
Editing Using Single Character
Commands for Insertion, Deletion,
Page Forward and Backward

• Dynamic Macro Command Definition

• Operates Under the ISIS-II Operating
System on Intellec® and Intellec® ,
Series II Microcomputer Development
Systems

• Command Line Editing with String
Search, Deletion, Insertion and Move

CREDIT is a CRT-based text editor that aids in the creation and editing of ASCII text files on Intellec Microcomputer Development Systems. Once the text has been edited to the programmer's satisfaction, it can
be directed to the appropriate language processor for compilation, assembly or interpretation. CREDIT
features are easy to use and simplify the change or rearrangement of text files. CREDIT runs under ISIS-II
on any Intellec or Intellec Series II Microcomputer Development System with an Intel supplied CRT, disk
drive(s) and 64K bytes of memory. Alternatively, it may be configured to run with non-Intel CRTs
supporting cursor controls.
There are two editing modes in CREDIT: a screen mode and a command line mode. The screen mode
makes full use of the display characteristics of the CRT. The cursor pOSition is visible on the screen and
can.be positioned by use of the cursor control keys. Display text can be corrected in two ways-either by
sim"ply retyping the text, or by using the Single-stroke control keys. Specifically, the Single-character control keys are used for change, deletion, insertion and paging forward and page backward.
In addition to screen editing, there is command line editing, whiQh includes commands for more powerful
and complex editing tasks. Some examples of functions available in the command line mode are search,
block move and copy, macro definition and manipulation of external files. These easily used, high-level
commands facilitate complex editing and speed microcomputer development.

4-16

CREDlfTM EDITOR

CREDIT™ EDITOR FEATURES

• Change CREDIT features with ALTER command

• Two editing modes: cursor-driven screen
editing and command line context editing

• Conditional iteration
• User-defined tab settings
• Symbolic tag positions

CRT Editing Inoludes:

• Automatic disk full warning
• Runs under ISIS-II SUBMIT facility
• Option to exit at any time with original file intact

• Displays full page of text
• Single control key commands for insertion,
deletion, page forward and backward

• HELP command

• Type-over correction and replacement
• Immediate feedback of the results of each
operation

BENEFITS OF CREDIT™ EDITOR
• Speeds source program creatipn and
editing-lowers the cost of these functions

• The current state of the text is always
represented on the display

• Easy to learn and use-source text is clearly displayed
-Single command keys used for CRT editing
-HELP command is available for easy
reference when needed

Command Line Editing Includes:
• String search and substitute
• String delete, change or insert

• Complements existing software - source text
used for PLlM, PASCAL, FORTRAN, BASIC,
and Assemblers

• Block move
• Block copy
• User-defined macros

• Aids in the management of source file libraries
• Offers .full use of Intel supplied CRT cursor
functions

• External file handling

ISIS-II
LOADER

DEBUG
VIA
MONITOR

OPTIONAL
ICE T"
IN-CIRCUIT
EMULATOR

PROM

PMGRAMMER

Figure 1. Microcomputer Program Development
AFN~1083B

4-17

CREDIT™ EDITOR

SCREEN MODE COMMANDS
MOVE CURSOR:

Use the directional arrow keys
on the keyboard.

REPLACE:

Type over existing text with
replacement new text.

INSERT:

Insert one character.
Insert more
character.

DELETE:

than

one

Delete one character.
Set boundaries and delete all
text between them.

PAGE:

Next Page: Get next screenful
of text.
Previous Page: Get previous
screenful.
View Page: Rewrite current
page with possible reframing.

COMMAND MODE COMMANDS
HELP:

Display summary
commands.

PRINT:

Print n lines or up to tag.

JUMP:

Move cursor position
characters or to tag.

TAGS:
EXIT:

of

any

INSERT:

Insert before CP
between delimiters.

text

DELETE:

Delete n characters,
characters up to tag.

or

Delete n lines
backward.

or

n

Transfer Copy block of text
. from tag1, for n lines or
through tag2, to cursor
position.

MACROS:

forward

Search for text; move pointer if
found.

SUBST:

newtext replaces oldtext if
oldtext is found. (Optional
query to user before replacement.)

FILES:

Open file "filename"
Reading or Writing.
Close the current
Read (Write) file.

Define a macro.
Delete a macro, or all macros if
name=*.

all

FIND:

Transfer move: like Transfer
Copy but the old copy is
deleted.

ADVANCED EDITING COMMANDS

Normal exit.
Exit Quit: Abandon
changes to edit file.

Move cursor position n lines
forward or backward.
MOVE:

Set tag n, n = 0-9. Tag n is
referenced as Tn.

for

external

Go to beginning of current
Read file.

Expand and execute macro
contents, command mode.
Expand and execute macro
contents, screen mode.

Read and insert n lines from
the Read file.

Print names and definitions of
all macros.

Write n lines to the external
Write file.
AFN·01083B

4-18

intJ

CREDIT™ EDITOR

GET: .

Get contents
command line.

QUERY:

Query User: set Query Flag
accordingly.
Do command only if Query
Flag is True.

YES:

of

file

into

Do command only if Query
Flag is False.
Do command only if Yes
(Search) Flag is False.

Do command only if
(Search) Flag is False.

Yes

LOOP:

Exit current iteration loop.

ALTER:

Configure the command input
keys to work with alternative
CRTs.

USER:

Copy text to the console.

HELP:

Display summary
commands.

SPECIFICATIONS

Required Software

Operating Environment

ISIS-II Diskette Operating System
-Single or double density

of

Required Hardware

Documentation Package

Intellec® Microcomputer Development System
-Model 800 or Series II with 64k bytes of RAM
memory
-Series III
Diskette Drive(s)
-Single or double density
System Console
-Intel supplied CRT or alternative CRT supporting
cursor controls

CREDIT'" (CRT-Based Text Editor) User's Guide
(9800902)
CREDIT'" Pocket Reference (9800903)

Shipping Media
Flexible Diskettes
-Single or double density

Optional Hardware
Line Printer
Additional diskette drive(s)

ORDERING INFORMATION
Part Number

Description

MDS-360*

ISIS-II CREDIT
CRT-Based Text Editor

Requires Software License
*MDS is an ordering code ·only, and is not used
as a product name or trademark.
MDS'" is a registered trademark of Mohawk Data
Sciences Corporation.

SUPPORT CATEGORY:

Level B

4-19

intJ
MAINFf'AME LINK FOR
DISTRIBUTED DEVELOPMENT
• Integrate. u.er mainframe re.ouree.
with Intellec· Development Sy.tem•.
• U.e. IBM 2780/3780 ..andarel BISYNC
protocol .upported by a maJority of
mainframe. and mlnlcompute,..
• Protocol .upporta full error detection
with automatic retry.

• Software run. under ISIS-II on any
Intellee· Development Sy.tem.
• Communicate. with remote .y.tem. on
dedicated or .wltched (dial-up)

telephone line..
• Package al.o Include. te.t. and a
connector for loop-back .elf-te.t
capability.

The Mainframe Link consists of software, moclem cable to connect the development system to the modem and
a loopback connector for diagnostic 'testing. The software runs under ISI8-11 on Intellec Development Systems. It emulates the operation of an IBM 2780 or 3780 Remote Job Entry (RJE) terminal to (1) transmit ISI8-11
files to a remote system or (2) receive files from a remote system using standard BISYNC 2780/3780 protocol.
The remote system can be any mainframe or minicomputer which supports the IBM 2780 or 3780 communica·
tions interface staDdard. Files may contain ASCII or binary data so that either program source files (ASCII) or
program object files (binary) may be transmitted.
The Mainframe Link allows the user to integrate in-house mainframe resources with Intellec Microcomputer
Development resources. The mainframe can be used for storage, maintenance and management of program
source and object, files. The program source can be downloaded to a development system for compilation,
assembly, linkage, and/or location. The linked modules can be transmitted and saved on the mainframe to be
shared by all programmers. The linked program can then be downloaded to a development system for
debugging using ICE emulation.

USE MAINFRAME TO
•
•
•
•
•
•
•

CREATE SOURCE PROG USING MULTIPLE CRT'.
STORE BACKUP & MAINTAIN LARGE DISK FILES
LIST PROGRAMS USING FAST PRINTERS
TRACK UPDATES & VERSION CONTROL
PROTECT ACCESS TO SOURCE/OBJECT FILES
SHARE COMMON LIBRARIES & MASTER PROGRAMS
ORGANIZE. CONTROL, MANAGE LARGE PROJECTS

USE MDS FOR:
• SYMBOLIC DEBUGGING
USING ICE

The following ore _

01 Intel Corporoban and may lie ulOll only 10 ~ Intel produ": I. Int.I.INTEL. INTEI.LEC. MCS. Im.1CB. ICE. IIPI. BXP.18Iic. _.IN8ITE. _ .
_
lCSond._'"

CREOIT.RMXAIO.,.llcope.Mu_.PIOF1'.-.~.Lobrwy _ _.MAlNMULnaoouLl.ond"' _

IUIIIx: e.g.. is/IC.8O.

"'MCS.ICE.SBC._ ..

MAY 1883

© INTEL CORPORATION, 1983

AFN'()l549C

4-20

intJ

MAINFRAME LINK

FEATURES

Automatic translation from ASCII to EBCDIC
and vice verse

• Runs under ISI8-11 on any Intellec· Microcomputer Development System.

Receive' chaining for receiving multiple files

• Communicates with a remote system using IBM
278013780 standard BISYNC protocol, which is
supported by a majority of minicomputers and
mainframes, on dedicated or switched (dial-up)
telephone lines.
• The modem cable supplied with the package can
be used to connect the Intellec. Development
System to the modem (or modem eliminator)
using the standard RS232C port.
• Supports user selectable data transmission rates
of up to 9600 baud.
• Package includes diagnostic tests used to verity
the operation of the Intellec· Development System using the loop-back connector supplied and
data transmission up to the modem using the
analog loop-back feature.
• System can be configured to match the requirements of the installation, i.e., using modem
eliminators for connections up to fifty (SO) feet, or
by using modems and telephone lines.
• Software can be configured from several configuration options such as:

• Intel mode is used mainly for file transfers between two Intellec· Development Systems. The
files are duplicated exactly.
;;; Console commands support all standard features
including:
SEND data in Transparent or Non-transparent
mode, with or without translation to EBCDIC
RECEIVE in Transparent or Noh-transparent
mode, with or without translation to EBCDIC.
Support for an IBM RJE console (such as HASP)
• Special utility programs are provided. STRZ strips
extra binary zero's from the end of object files.
CONSOL assigns system console input to an ISISII disk file.
• Can process commands interactively from the
console or sequentially from an ISI8-11 file under
the SUBMIT facility for semi-automatic batch
operation.
• Error detection in line transmission and error recovery by automatic retransmission.
• A special command such as DIAGNOSE. allows
logging of all data activity on the line, during
transmission and reception.

2780, 3780 or Intel Mode

• When not used for communicating with the mainframe, the Intellec· Development System is available as a complete, stand-alone system.

Transparent mode for binary data
Non-transparent mode for ASCII data

BENEFITS
• Allows the customer to use an in-house mainframe or minicomputer for program sourcepreparation, editing, back-up and maintenance
using inexpensive CRT's and multi-terminal access. The common files may be shared and others
protected.
• Many programmers can use and share the highperformance devices normally available on large
computer systems, e.g., fast printers to reduce
listing time, the large capacity disks with their fast
access time to store large program files.
• The source files can be downloaded using the
Mainframe Link to an Intellec Development System (e.g., Model 240 or 245) for compilation, linking and locating.

4-21

• The compiled and/or linked object files may be
transmitted back to the remote for storage. Updates and version numbers and dates can be
tracked to ensure that the latest ,verSion is always
used and back-up files are available. Binary object
files can be later downloaded to an Intellec Development System for debugging using' an ICE
emulator.
• In short, provides a powerful and flexible tool
combining the best of both micro and mainframe
worlds, i.e., powerful CPU with large disk capacity, file sharing, multi-terminal access, etc.,
from a 'mainframe or minicomputer with Intel's
versatile and compatible software support systems (including PUM, PASCAL, FORTRAN, Assembler, R & L) and sophisticated debugging
tools such as ICE emUlators.

AFN-01549C

inter

MAINFRAME LINK

SPECIFICATIONS

Remote System Requirements

Operating Environment

• IBM 278013780 BISYNC protocol as supported by
a majority of mainframes and minicomputers including: all IBM-360/370 Systems, PDP-11/70,
VAX-111780, Data General ECLIPSE.

Required Hardware:

• Users should purchase this standard software
package from the remote system vendor and any
additional required hardware such as a synchronous communications interlace.

Intellec· Microcompute'r Development System
Model 800
Models 220, 225. 230, 235, 240 or 245

• The operating system at the remote must be configured (SYSGEN'ed) with correct options such as
line address, 2780 or 3780, ...

64KB of Memory
One Diskette Drive
Single or Double Density

Communication Equipment Requirements

System Console
Intel CRT or non-Intel CRT

The Intellee Development System may be connected
to the remote system using anyone of the following
methods:

Recommended Hardware for Compilation:
Hard Disk (Models 240, 245, or Model 740 Upgrade)
Additional Hardware Required for Model 800
iSBC-955 T11 , iSBC-534T11

• For short distances (up to 50 feet), use a synchronous modem eliminator (e.g., SPECTRON
ME-81 FS-2).
• For distances up to folir miles, use short haul
synchronous modems and telephone lines.

Required Software:

• For distances greater than four miles, use synchronous modems and telephone lines. The following BELL modems or their equivalents are
recommended:

ISIS-II Diskette Operating System
Single or Double Density

BELL 201C 2400 bits/second
(half duplex, switched line)
BELL 208A 4800 bits/second
(full duplex, leased line)
BELL 208B 4800 bits/.second
(half duplex, switched line)
BELL 209A 9800 bits/second
(full duplex, leased line)

Documentation Package
Mainframe Link User's Guide (121565-001)

Shipping Media
Flexible Diskettes
Single and Double Density

• Modems at either end must be compatible.

ORDERING INFORMATION
'art Number

DeSCription

*MDS-384 Kit

Mainframe Link for
Distributed Development

"MDS is an ordering code only and is not used as a product name or trademark.
MOS· is a registered trademark of Mohawk Data Sciences Corporation.

4-22

AFN-Q1549C

inter
INTEL ASYNCHRONOUS COMMUNICATIONS LINK
Communications software for VAX·
• host
computer and Intel
microcomputer development systems
Compatible with VAXlVMS· and UNIXt
• operating
systems
Intel's Model 800,
• Supports
Series II, and Series III microcomputer
Intellec~

development systems

• Supports NOS-II workstations
Allows development system console to
• function
as a host terminal
Operates through direct cable
• connection
or over telephone lines
selectable transmission rate
• Software
from 300 to 9600 baud

Intel's Asynchronous Communications Link (ACL) enables one or more Intel microcomputer development systems to communicate with a Digital Equipment Corporation VAX family computer. The link
supports Intel Model 800, Intellec Series II, or Intellec Series III development systems and NOS-II
workstations. Programmers can use the editing and file management tools of the host computer and
then download to the Intel microcomputer development system for debugging and execution. Programmers can use their microcomputer development system as a host terminal and control the host
directly without changing terminals.

VAX

WORK

INTELLEC"

WORK
ASYNCHRONOUS
CIRCUIT

STATION

I

SERIES-lIIas

STATION

INTELLEC@

I

SERIES·III

ETHERNET"

I

I

WORK

WORK

STATION

STATION

INTELLEC" SERIES.m

INTELLEC" SERIES III

1
HRM

The following are tradem"arks of Intel Corporation and may be used only to describe Intel products: Intel, ICE, IRMX, iSBC, iSBX, iSXM,
MULTIBUS, MULTICHANNEL, MULTIMODULE and iCS. Intel Corporation assumes no responsibility for the use of any circuitry other
than circuitry embodied in an Intel product. No other circuit patent licenses are implied.
•
·VAX and VAXIVMS are trademarks of Digital Equipment Corporation"
t UNIX is a trademark of Bell Laboratories.
"Ethernet is a trademark of Xerox Corp.
MAY 1983
~ INTEL CORPORATION, 1983
4-23
ORDER NUMBER:210903-002

INTEL ASYNCHRONOUS COMMUNICATIONS, ,LIN'I(

FUNCTIONAL DESCRIPTION

HARDWARE CONNECTION

The Asynchronous Communication Link (ACL)
consists of cooperating programs: one that runs
on the host computer, and others that run on
each microcomputer development system. The
development system programs execute under
the ISIS-II or ISIS-III(N) operating sys\em and use
Its file system. They invoke the companion program on the VAX-11/7XX, which 'runs under either
the VAXlVMS or UNIX operatln~ system.

The Link sends data over an RS232C cable. The
communication line from the host computer
connects directly to a development system port.

TELECOMMUNICATIONS
USING THE LINK
The ACL is ideal for cross-host program development using a commercial timesharing service.
This configuration requires RS232C compatible
modems and a telecommunications line.
Depending on the anticipated level of usage,
wide-area telephone service (WATS), a leased
line, or a data communications network may be
chosen to keep operating overhead low.

I

The link provides three modes of communication: on-line transmission, single-line transmission, and file transfer. In on-line mode, the
development system' functions as a host terminal, enabling the programmer to develop programs using the host computer's editing, compilation, and file-management tools directly
from the development system's console. Later,
switching to file transfer mode, text flies and obJect code can be downloaded from the host to
the development system for debugging and- execution. Alternatively, flies can be sent back to
the host for editing or storage. In single line
mode, the programmer can send single-line commands to the host computer while remaining in
the ISIS-II or ISIS-III(N) environment.
The user can select transmission rates over the
link from 300 to 9600 baud. The link transmits in
encapsulated blocks. The receiver program
validates the transmission by checking recordnumber and checksum information In each
block's header. In the event of a transmission
error, the receiving program recognizes a bad
block and requests the sender to retransmit the
correct block. The result Is highly reliable data
commun ications.

SOFTWARE PACKAGE
The Asynchronous Communications Link
Package contains either a VAX/VMS or UNIX
compatible magnetic tape, a single- or doubledensity diskette compatible with, the Intellec
development system, and the Asynchronqus
CommunIcations Link User's Guide containing
installation, configuration, and operation infor·
matlon.

ND8-11 ACCESS USING THE LINK
The ACL is Ideal for Interconnecting VAX host·
computers with NOS-II. This configuration requires that an NOS-II workstation be connected
to the VAX host computer using the RS232C interface and to NOS-II using the Ethernet Interface.
All three modes of communication operate identically ,on NOS-II. In the on-line, mode, the
development workstation operates as a host terminal, and concurrently, as an NOS-II workstation. It is easy to tranSition between the VAX and
ISIS-III(N) operating systems environments as
LOGONILOGOFF sequences are not required to
re-enter environments.
In file transfer mode, text and object files can be
transferred from the VAX directly to the Winchester Disk at the NRM wit~out first copying
the files to the workstation local floppy disk.
- Similarly, flies residing on the NOS-II Network
File System (the Winchester Disk at the NRM)
can be transferred directly to the VAX without
using local workstation storage.
U.slng the EXPORTIIMPORT mechanisms of
NOS-II, a network workstation which, is not
directly connected to the VAX can cause flies to
be transferred between the VAX and NRM. For
example, any NOS-II workstation can "EXPORT"
ACL commands to another "IMPORT"lng NOS-II

/

4-24

AFN-210903B

INTEL ASYNCHRONOUS COMMUNICATIONS LINK

workstation which is physically connected to a
VAX. The "IMPORT"ing workstation executes
the ACL command file causing the desired ac·
tion to occur.

VAX ACCESS USING THE LINK
Users who want multiple workstations concur·

rently operating as VAX terminals (the ONLINE
mode) must physically connect each work·
station to the VAX. However, users who want
multiple workstations to be able to upload/
download files, for example, must only physical·
Iy connect one workstation to the VAX: By using
the EXPORT/IMPORT mechanism of NOS-II as
described above, the user can have multiple
workstations accessing the VAX using only one
connection.

SPECIFICATIONS

Required Intel Development System
Configuration

Software

Model 800, Intellec Series II, or Intellec Series III
under ISIS-II

Asynchronous Communications Link develop·
ment system programs
VAXIVMS or UNIX companion program

Required Connection

Media

RS232C compatible - cable 3M-3349/25 or
equivalent; 25-pin connector 3M-3482-1000 or
equivalent

Single- or double-density ISIS-II compatible disk·
ette

Recommended Modems for
Telecommunications

60b-ft. 1600 bpi magnetic tape, VAX/VMS or UNIX
compatible

300 baud - Bell* 103 modem; VAOICt 3455
modem or equivalent

Manual

1200 baud - Bell 202 modem; VAOIC 3451
modem or equivalent

Asynchronous Communications
Guide, Order No. 172174-001

Link User's

Required Host Configuration
VAX-11/7XX running VAX/VMS (Version 2.4) or
fourth Berkeley distribution of UNIX 32V

9600 baud - Bell 209A (full duplex, leased line)
or equivalent
Note: Since one of the two Model 800 ports uses a cur·
rent loop interface, Model 800 users need a ter·
mlnal or modem that is current loop compatible,
or a current 100plRS232C converter.

ORDERING INFORMATION
Product
Name
,

Ordering Code*

Asynchronous Communications Link

iMOX 395 for UNIX systems

iMOX 394 for VAX/VMS systems

"Bell is a trademark of American Telephone and Telegraph.

t VAOIC Is a trademark of Racal·Vadlc Inc.

*

See price book for proper suffixes for options and media
salectlon.

4-25

AFN'01083C

iNA 960 NETWORK SOFTWARE
•

-Collection of network usage
statistics
.
-Setting and inspecting of transport
and data link parameters
-Fault isolation and detection
-Boot Server

ISO Transport (8073) Class 4 services
-Guaranteed message integrity
-Data rate matching (flow control)
-Multiple connection capability
-Variable length messages
-Expedited delivery
-Negotiation of virtual circuit
characteristics during opens

•

•

Additional functionality
-Connection less transport
(Datagram)
-External Data Link

•

IEEE 802.3 Data Link protocol
(CSMAlCD) supported

•

•

Comprehensive Network Management
services

•

Compatible with multiple system
environments
-Runs as an iRMX™ 86 job
-Supports host operating system
independent designs based on 8086,
8088 or 80168 and 82586 components
Runs on iSBC® 186/51 COMMputer™
Board
Size configurable to suit specific
application requirements

iNA 960 is a general purpose local area network software' package implementing the class 4 services of the
ISO transport proposed specification and network management functions in system designs based on the 8086,
8088 and 80186 microprocessors and the 82586 communications co-processor. iNA 960 also supports Intel's
board level LAN products, the iSBC® 550 KIT and the iSBC® 186/51. Combined with the iSBC 186/51 COMMputer T• board, iNA 960 offers a high performance, costeffective network solution for MULTIBUS®/iRMX'M 86
users. See Figure 1 for iNA 960 functionality and operating environments.
iNA 960 is a ready-to-use software building block for OEM suppliers of networked systems for both technical and
commercial applications. Examples for such applications include networked design stations, manufacturing
process control, communicating word processors, and financial services workstations. Using the iNA 960
software the OEM can minimize development cost and time while achieving compatibility with a growing number
of equipment suppliers adapting the IEEE and ISO standards.

I

ISO MODEL

TYPICAL INA 960
HARDWARE ENVIRONMENTS

END-USER APPLICATION PROCESS

!
APPLICATION

PRESENTATION

SESSION

TRANSPORT

.1

NETWORK
MANAGEMENT

~

ISBC' 186151

COMMputer
BOARD

IMPLE-

NETWORK
DATA
LINK
LAYER

DATA LINK INTERFACE
.... ---- -- _.... ---i -_PHYSICAL
DATA LINK

I

PHYSICAL

>-~~~J:~6
IMPLEMENTED
BY 82586/82501
BASED HARDWARE

ISBC' 550
ETHERNET
CONTROLLER

Figure 1.
Intel Corporation Assumes No Responsibility for the Use of Any Circuitry Other Than Circuitry Embodied in an Intel Product. No Other Circuit
Patent Licenses are Implied. Information Contained Herein Supercedes PreVIously Published Specifications On These Devices From Intel.

4-26
©INTEL CORPORATION, 1983.

AUGUST 1983
ORDER NUMBER: 230777-001

inter

iNA 960 NETWORK SOFTWARE

FUNCTIONAL OVERVIEW

dedicated 8086, 8088 or 80186 processor coupled
with an 82586 to provide a communications front end
processor.

The iNA 960 design is a standard implementation of
the Class 4 transport protocol defined by the ISO OSI
model. The Transport Layer provides a reliable fullduplex message delivery service on top of the "best
effort" IEEE 802.3 standard packet delivery service
implemented by the 82586 (or equivalent) physical
and data link functions.

The software also includes a Network Management
service. This facility enables the user to monitor and
adjust the network's operation in order to optimize its
performance.

Consisting of linkable modules, the software can be
configured to implement a range of optional capabilities and interface protocols. In addition to reliable
process-to-process message delivery, the options include a datagram service, a boot server, a direct user
access to the Data Link Layer, and a comprehensive
network management facility.

The current release of iNA 960 includes a "null" Network Layer supporting the Data Link and Transport
Layers without providing internetwork routing service. This capability will be implemented in later
releases of iNA 960.
For a conceptual block diagram of iNA 960, refer to
Figure 2.

iNA 960 can be configured to run under iRMX 86
along with the user software, or to run on top of a

iRMX'" 86 OR
REMOTE HOST
INTERFACE

I

CLIENT

I

I

INTERFACE MODULE

j

+

~

r- - - - - - ...." - - - - - - - ,
TRANSPORT LAYER
ISO DP 8773

NETWORK
LAYER

DATA LINK
LAYER

I

DATAGRAM
(OPTIONAL)

I
I VIRTUAL CIRCUIT

IL.. _ _ _ _ _ ....L....-_ _ _ _
1~

....I

~

iNA 960

___N_U_L_L~LA_Y_E_R

___

~r.--

r - - - - -

~
r-t-------.

I

'1

I

EXTERNAL
DATA
LINK

DATA LINK
INTERFACE

I

I

::;

I

: o~Q

:

I

bffi~ •

I

mwl-

(/)e. •I
L.. _ _ _ -J
I

'- - - - - - L-rl-----...J

t
DATA LINK AND
PHYSICAL LAYERS

}HAFiDWARE

NETWORK

Figure 2. iNA 960 Conceptual Block Diagram

4-27

iNA 960 NETWORK SOFTWARE

TRANSPORT LAYER
The Transport Layer proVides message delivery
services between client processes running on computers (network "hosts" or "nodes") anywhere in the
network.
Client processes are identified by a combination of a
network address defining the node and a transport
service access point defining the interface point
through which the client accesses the transport
services. The combined parameters, called the
transport address, are supplied by the user for both
the local and the remote client processes to be
connected.
The iNA 960 transport layer implements two kinds of
message delivery services: virtual circuit and
datagram. The virtual circuit provides a reliable pointto-point message delivery service ensuring maximum data integrity, and it is fully. compatible with the
ISO 8073 Class 4 protocol. The datagram service
provides a best effort message delivery between
client processes requiring less overhead and
therefore allowing higher throughput than virtual
Circuits.

..

Virtual Circuit Services
-Reliable Delivery: Data is delivered to the destination in the exact order it was sent by the source,
with no errors, duplications or losses, regardless of
the quality of service available from the underlying
network service.
-Data Rate Matching (flow control): The Transport
Layer attempts to maximize throughput while
conserving communication subsystem resources
by controlling the rate at which messages are sent.
That rate is based on the availablity of receive buffers at the destination and its own resources.
-Multiple Connection Capability (Process Multiplexing): Several processes can be simultaneously
using the Transport Layer with no risk that progress or lack of progress by one process will interfere with others.
-Variable Length Messages: The client software
can submit arbitrarily short or long messages for
.transmittal without regard for the minimum or maximum network service data unit (NSDU) .Iengths
supported by the underlying network services.

-Expedited Delivery: With this service the client can
transmit up to 16 bytes of urgent data bypassing
the normal flow control. The expedited data is
guaranteed to arrive before any normal data submitted afterward.

Connection less Transport
(Datagram) Service
The datagram service option transfers data between
client processes without establishing a virtual circuit.
The service is a "best effort" capability and data may
be lost or misordered. Data can be transferred at one
time to a single destination or to several destinations
(multicast).

NETWORK MANAGEMENT (NM)
The network management option provides the users
of the network with planning, operation, maintenance
and initialization services described below.
-Planning: This service captures network usage
statistics on the various layers to help plan network
expansion. Statistics are maintained by the layers
themselves and are made available to users via an
interface with the NM .
-Operation: This service allows the user to monitor
network functions and to' inspect and adjust network parameters. The goal is to provide the tools
for performance optimization on the network.
-Maintenance: This service deals with detecting,
isolating and correcting network faults. It also provides the capabilitY\to determine the presence of
hosts and the viability of their connection to the
network.
-Initialization: NM provides initialization and remote
loading facilities.
Network management provides distributed management of the network; the user can request any of the
services to be performed on a remote as well as a
local node. The NM interfaces to every other network
layer both to utilize their services and to access their
internal data bases.
In support of the above services, the NM capabilities
include layer management, echo testing, limited
debugging facilities, and the ability to down line load
and up line dump a remote system.

4-28

inter

iNA 960, NETWORK SOFTWARE

Layer management deals with manipulating the internal database of a layer. The elements of these data
bases are termed objects. Some examples for objects are the number of collisions, retransmission
time-out limit, the number of packets sent, and the list
of nodes to boot. NM can examine and (I)odity objects in a layer's data base.
An echo facility is provided. Using this facility the host
can determine if a node is present on the network or
not, test the communication path to that node and
determine whether the remote node is functional.
NM enables the user to read or write memory in any
host present on the network. This feature is provided
as an aid to debugging.
NM can down line load any system present on the
network. A simple Data Link protocol is used to
ensure reliability. This facility can be used to load
databases, to boot systems without local mass
storage or to boot a set of nodes remotely, thus
ensuring that they have the same version of software, etc.
·Up line dumping is an operation equivalent to
memory read from the user's standpoint; however, up
line dumping uses the Data Link facilities while
memory read uses the transport facilities.

USER ENVIRONMENT
iNA 960 is designed to run on hardware based on the
8086, 8088 or 80186 microprocessors and the 82586
LAN Coprocessor. The software can be configured to
run under iRMX 86 or on a dedicated 8086', 8088 or
80186 processor separately from the host. The roilowing section describes these two operating
environments.

iRMX Environment
In this configuration, both the user program and iNA
960 are running under iRMX 86. The communications software is implemented as an iRMX 86 job
requiring the nucleus only for most operations. The
only exception is the boot server option which also
needs the Basic I/O System. iNA 960 will run in any
iRMX environment including configurations based on
the 80130. See Figure 3 for an illustration of iNA 960
running under iRMX 86.
Some of the typical hardware implementations include the iSBC 550 KIT combined with an 8086, 8088
or 80186 based host or the iSBC 186/51 COMMputer'· board integrating the host processor and the
communications controller into a Single, high performance MULTI BUS board. See Figure 4A and 4B for
a conceptual block diagram of these configurations.

Operating System/Processor
Independent Implementation

The External Data Link option allows the user to access the functionalities of the Data Link Layer directly
instead of having to go through the network and
transport layers. This flexibility is useful when the
user needs custom higher layer software, or does not
need the Network Layer and Transport Layer
services (e.g., when sending "best effort" messages,
or running customer diagnostics).

In those systems where iRMX 86 is not the primary
operating system, where off-loading the host of the
communications tasks is necessary for performance
reasons, or where an existing communications frontend processor configuration is being upgraded, the
user may wish to dedicate a processor for communications purposes. iNA 960 can be configured to support such implementations by providing network
services on an 8086, 8088 or 80186 processor. Figure 5 depicts the conceptual block diagram of this
configuration.

Through the EDL the capabilities supporting the
lower layers in iNA 960 are made directly available to
the user. EDL enables the user to establish and
delete data link connections, transmit packets to individual and multiple receivers, and configure the data
link software to meet the requirements of the given
network environment.

This approach provides the component and system
designer with an ISO standard communications software building block that can be adapted to his system's needs with a minimum interfacing effort. For
added flexibility, iNA 960 provides the user with the
alternative of using the included interface module or
writing his own module, if necessary.

EXTERNAL DATA LINK (EDl)

4-29

iNA 960 NETWORK SOFTWARE

Figure 3. As an iRMX T• Job, iNA 960 uses nucleus calls and, when the Boot Server Is present,
BIOS calls.

. NETWORK

Isec 86/30

ISBC' 550 KIT

WITH iRMX" 86
AND INA 960

MULTIBUS'

Figure 4A. 'TYpical configuration using ISBC® 550 kit, ISBC® 86/30, iRMX 86

4-30

T
•

and iNA 960.

INA 960 NETWORK SOFTWARE

~~_______N~E~TW~OR~K~______~t-

ISBC" 186/51
WITH IRMX86
AND INA 960

Figure 4B. Configuration using iSBC® 186/51, IRMX 86 and iNA 960.

-1

r-

NETWORK

,. . ________ J_________ -..

(

~
MEMORY
(iNA 960 PLUS
LOCAL
RAM/ROM)

I

82586

8086 OR
80186

I
I
I
I
I

I
I
I

I

.

SYSTEM
BUS
INTERFACE

_________

I

DEDICATED
I
COMMUNICATIONS I
PROCESSOR
I

_________ J

)

Figure 5. In the operating system/processor independent implementation iNA 960 Is running on a
dedicated 8086, 8088 or 80186 processor.

4-31

iNA 960 NETWORK SOFTWARE

USER INTERFACE
iNA 960 is designed to run both under iRMX 86 and
on a dedicated communications front end processor
separately from the host. In both environments, the
interface is based on exchanging memory segments
called request blocks between iNA 960 and the
client. The format and contents of the request blocks
remain the same in both configurations; only the request block delivery mechanism changes. See Figure 6 for a simplified interface diagram.
Request blocks are memory segments containing the
data to be passed from the user to iNA 960
(commands), or from iNA 960 to the user
(responses). The iNA 960 request blocks consist of
fixed format fields identical across all user commands and argument fields unique to the individual

commands. Refer to Figure 7 for the standard request block format.
Issuing an iNA 960 command consists of filling in the
request block fields and transferring the block to iNA
960 for execution. After processing the command,
iNA 960 returns the request block with one of the
pre-defined response codes placed in the response
code field of the request block. The response code
indicates whether the command was executed suc- .
cessfully or whether an error occurred. By examining
the response code, the user can take appropriate
action for that command.
For iRMX users, iNA 960 also provides a procedural
interface option to simplify writing the application
software interface. In this case, the allocation and
formatting of request blocks are replaced by a procedure call with parameters that specify the user's command options. The procedure execution will create a
request block and fill in the appropriate fields from the
user's parameter list.

CLIENT

iNA 960

For component users the request block delivery
mechanism is the means by which- the host processor and the communications processor running iNA
960 software exchange the request blocks. iNA 960
provides several such mechanisms as well as permitting user-defined techniques to be utilized.

Figure 6.

WORD/BYTE
Reserved (2)
Length
User I.D.
Response Port
Return Mailbox Token
Segment Token
Subsystem
Opcode
Response Code
Arguments

WORD
BYTE
. WORD
BYTE
WORD
WORD
BYTE
BYTE
WORD
BYTE

FIXED FORMAT
FIELDS
(same for all
commands)

I

Figure 7. iNA 960 Request Block Format

4-32

ARGUMENTS
(changes by
command)

iNA 960

NETWOR~

SOFTWARE

Transport Layer User Interface
The following table summarizes the user commands and the corresponding transport layer responses.

Command

,

Function

1. OPEN

Allocates memory for the connection data base of a virtual circuit (or
connection) to be established. The connection database contains
data concerning the connection.

2. SEND CONNECT

Requests connection to a fully specified remote transport address
using specified ISO connection negotiation options.

REQUEST

-

3. AWAIT CONNECT
REQUESTrrRAN

Indicates that the transport client is willing to consider incoming connection requests based on pre-established acceptance criteria.

4. AWAIT CONNECT

Indicates that the transport client is willing to consider incoming connection requests. If the request meets the address and negotiation
option criteria, it is passed to the client for further consideration.

REQUEST/USER

5. ACCEPT CONNECT
REQUEST
6. SEND DATA or
SEND EOM DATA

Indicates that the connection requested by a remote transport service is accepted by the client.
With this command, the client requests the transmission of the data
in the buffers using the normal delivery service of the specified
connection.
The SEND EOM DATA command signals that the end of the data
marks the end of the transport service data unit.

7. RECEIVE DATA

Posts normal receive data buffers for a specific connection or for a
buffer pool used by a class of connections.

8. WITHDRAW RECEIVE

Withdraws normal receive data buffers previously posted by a
RECEIVE DATA command.

BUFFER

9. SEND EXPEDITED
DATA

Transmits up to 16 bytes of data using the expedited delivery service.
The expedited data is guaranteed to arrive at the destination before
any normal data submitted afterward.

10. RECEIVE EXPEDITED
DATA

Posts receive data- buffers for expedited delivery for a specific connection or for a pool of buffers used by a class of connections.

11. WITHDRAW EXPEDITED
DATA BUFFER

Withdraws expedited receive data buffers previously posted by a
RECEIVE EXPEDITED DATA command.

12. CLOSE

Terminates an existing connection or rejects an incoming connection
request. Any normal or expedited data queued up to be sent will not
be sent.

13. AWAIT CLOSE

Requests notification of the client of the termination of a specified
connection.

14. STATUS and DEFERRED

Places status information about transport and, optionally, about a
specified connection into a supplied buffer.

STATUS

4-33

I

INA $60 NETWORK SOFTWARE

Command

Function

15. SEND DATAGRAM

Requests transmission of the data in the buffers using the transport
datagram service.

16. RECEIVE DATAGRAM

Posts a receive buffer for a specific receiver or a class of receivers to '
receive data from a transport datagram.

17. WITHDRAW DATAGRAM
,
BUFFER

Withdraws datagram receive buffers previously posted by a
RECEIVE DATAGRAM command.

Network Management Layer User Interface
Function

Command

"

1.

READ OBJECT

Returns the value of the Specified object to the client.

2.

SET OBJECT

Sets the value of an object as specified by the client.

3.

READ AND CLEAR
OBJECT

Returns the value of the specified object to the client then clears the
Object.

4.

ECHO

This function is used to determine the presence of a node, to test the
communication path to the node and to ascertain the viability and
functionality of the remote host addressed.

5.

UP LINE DUMP

Requests a remote node to dump a specified memory area.

6.

READ MEMORY

Reads memory of the specified network node.

7.

SET MEMORY

Sets memory of the specified network node.

8.

FORCE LOAD

Causes a node to attempt a remote load from another node.

External Data Link Interface
Command

Function

1.

CONNECT

With this command the client establishes a data link connection.

2.

DISCONNECT

Eliminates a previously established connection.

3.

TRANSMIT

Transmits data contained in buffers specified by the client.

4.

posr RECEIVE PACKET
DESCRIPTOR

Allocates memory for maintaining records on receive data buffers.
Also may be used to allocate memory for buffering receive data.

5.

POST RECEIVE BUFFER

Allocates memory for buffering receive data.

6.

ADD MULTICAST
ADDRESS

Adds an address to the list of data link multicast addresses.

7.

REMOVE MULTICAST
ADDRESS

Removes an address from the list of data link multicast addresses.

8.

SeT DATA LINK 1.0.

Sets up a unique data link 1.0. for the station.

4-34

iNA 960 NETWORK SOFTWARE

CONFIGURING iNA 960

in the desired module to set up for the iRMX 86 or the
operating system independent configurations.

In order to adapt iNA 960 to his specific application,
the user must configure the software to define the

Layer parameters and confiuration options are first
edited into layer configuration files, then assembled
and linked into INA 960. Layer parameters adjust the
network's operation to match the usage pattern and
the available resources. For example, within the
Transport Layer,' the flow control parameters, the
retransmission timer parameters, the transport data
base parameters, etc. can be set via this process.

desired functions, to select the appropriate interface,
to set the layer parameters and to set up for the
required hardware configuration.
There are four optional functionalities the user may
elect to implement in his application: the datagram
service, the External Data Link interface, network
management, and the boot server. These capabilities
can be made available simply by linking in the corresponding software modules. The interface options are
also implemented in a modular fashion; the user links

HARDWARE
REQUIRED:

The user also sets up for the required hardware configuration, such as port addresses and interrupt
levels, during this process. For the flow diagram of
configuring iNA 960, refer to Figure 8.

INPUTS

_
I

OPTIONAL FUNCTIONS
_ USER ENVIRONMENT
_ LAYER PARAMETERS
_ H/W CONFIGURATION

-MDS SERIES III
OR
-86/300 AND
iRMX'" 86
-UNIVERSAL PROM
PROGRAMMER
IF USER SYSTEM
IS IN FIRMWARE

SOFTWARE
UTILITIES
REQUIRED:
-TEXT EDITOR
-ASM 86
-LINK 86
-LOC.86

Figure 8. The Configuration Process for iNA 960

4-35

inter

iNA 960 NETWORK SOFTWARE

SPECIFICATIONS·

Available Llterature/
Reference Materials:
-iNA 960 Programmer's Reference Manual (11/83)
-iSBC 186/51 Data Sheet (Now)
-iSBC 186/51 Hardware Reference Manual (11/83)

Hardware Supported:
-iSBC 186/51 Communicating Computer.
-iSBC 550 KIT Ethernet controller board(s) configured to run with iSBC 86/30 or iSBC 86/12B Multibus processor boards.
-Custom designs based on 8086, 8088 and 80186
microprocessors and the 82586 Local Communications Controller.

Ordering Information
The following is a list of ordering options for the iNA
960 Network Software. All options include a full year
of update service that provides a periodic NEWSLETTER, Software Problem Report Service, and copies
of system updates that occur during this period. All of
the object code options listed are available on either
ISIS or RMX compatible double density diskettes.

lYplcal Throughput at transport:
Environments:
186/51 and
50K to 200K bytes/sec
iRMX86
Dedicated 80186/
100K to 300K bytes/sec
82586 COMMengine

As with all Intel software, purchase of any of these
options requires the execution of a standard Intel
Master Software License. The specific rights granted
to users depend on the specific option and the
License signed.

Memory Requirements: (in bytes)
Base Transport System
Net Management Option
Datagram Option
External Data Link Option
Boot Server Option

32K plus configurable Buffer
Memory
1K to 5K
2K plus Data Base
Memory
3K
5K

4-36

inter

iNA 960 NETWORK SOFTWARE

Description

Order Code
iNA 960 BRO

OEM object code license requiring the payment of incorporation fees for
each derivative work based on iNA 960; ISIS formatted diskettes

iNA 960 ERO

Same as above; RMX tormatted diskettes

iNA 960 BST

.

Object code license to use the product at a second site or facility; ISIS
formatted diskettes

iNA 960 EST

Same as above; RMX formatted diskettes

INA 960 BBY

Object code buy-out license requiring no further payment of incorporation
fees; ISIS formatted diskettes

iNA 960 EBY

Same as above; RMX formatted diskettes

iNA 960 BSU

Object code single use license only; ISIS formatted diskettes

iNA 960 ESU

Same as above; RMX formatted diskettes

iNA 960 BSR

License for machine readable source code of iNA 960; ISIS formatted
diskettes

iNA 960 ESR

Same as above; RMX formatted diskettes

iNA 960 LST

Source listing of iNA 960 provided on microfiche under a special source
code license agreement

iNA 960 LWX

One year extension of software support service for source listings

iNA 960 BWX

Same as above for ISIS customers

iNA 960 EWX

Same as above for RMX customers

iNA 960 RF

Order code for the payment of incorporation fees

4-37

NOS-II ELECTRONIC MAIL
• Improves Project Coordination and
Communication

• MAIL Operates Either Interactively or in
Command-Tail Format

• Minimizes "Phone Tag" and Excess
Paperwork

• User, Group, and "Bulletin Board"
Mailboxes Can Be Created

• Users Can Send and Receive Text or
Object Files

• Operates on any Workstation in the
NOS-II Development Environment

Electronic Mail enables users to send and receive messages and files between any nodes on the NOS-II
network. In dOing so, Electronic Mail improves the communication and coordination between members, reduces
"phone tag" and paper generation, aids project configuration management by enabling simplified file transfers,
and increases flexibility in workstation location.
Mail maintains a directory, called the "post office," which contains user, group, and bulletin board mailboxes.
Each NOS-II user has a mailbox which is only accessible to that user. Group mailboxes are accessible by a
defined group of users, and bulletin board mailboxes are accessible by all users. Both group and bulletin board
mailboxes can be easily created by any system user.
Users can send a message to any of the mailbox types listed above. Messages can consist of text generated
when Mail is invoked, or a text or object file. Options available when sending mail include using a subject string
to categorize a message, specifying a message expiration date and time, delaying message delivery until a
specific date and time, marking the message URGENT, and maintaining a log of all messages sent.
Users can interactively read their mail and perform the following operations: print messages on their workstation
console, delete messages from a mailbqx, save messages in a file, forward messages to other users, and reply
to message senders. In addition, users can request a mailbox summary which includes, for each message, the
sender'S name, date sent, subject, urgency, code type (text or object), and message number.
NOS-II Electronic Mail executes on all existing NOS-II workstations using either the iNOX or ISIS-III(N)!ISIS
Cluster operating systems.

TYPICAL MAIL USAGE

TYPICAL MAIL BENEFITS

• DISTRIBUTE SUPERUSER MESSAGES

• IMPROVE TEAM COMMUNICATION AND

• CREATE AND SEND INTERNAL MEMOS

COORDINATION

• COLLECT PROJECT MILESTONE DATA

• REDUCE PHONE TAG

• REPORT PROGRAM BUGS AND

• MINIMIZE PAPER GENERATION

RECOMMEND SYS'fEM CHANGES

• AID PROJECT CONFIGURATION MANAGEMENT

• SEND SOURCE AND OBJECT FILES

• INCREASE WORKSTATION LOCATION FLEXIBILITY

• USE AS TELEPHONE MESSAGE CENTER

• OVERALL, BOOST DEVELOPMENT TEAM
PRODUCTIVITY

NOS-II ELECTRONIC MAIL

Intel Corporation Assumes No Responsibility for the Use of Any Circuitry Other Than Circuitry Embodied in an Intel Product. No Other Circu~ Patent
Licenses are implied
OCTOBER 1983
© INTEL CORPORATION, 1983.

4-38

ORDER NUMBER:2105870003

NDS·II ELECTRONIC MAIL

OPERATING ENVIRONMENT

SOFTWARE SUPPORT
This product includes a 90-day initial support consisting of new software releases, updates, subscription
services (software performance reports and technical
reports), and telephone hotline support. Additional
software support services are available separately.

Required Hardware
NOS-II Environment with any 8 or 16 bit Microcomputer Deve!opment System Workstation

Required Software
iNOX or ISIS-III(N)/ISIS Cluster System Software

ORDERING INFORMATION

DOCUMENTATION
"NOS-II Electronic Mail User's Guide"
(122146)

4-39

Product Code

Description

iMOX-337

NOS-II Electronic Mail

ORDER NUMBER:210587-DD3

Systems and
Applications Software

5

XENIX*

• iWORD Processing
• iPLAN (Multiplan*) Spreadsheet
• iMENU Development System

Productivity
Software

Tools

il

1983 Intel Corporation

'XENIX and Multiplan are trademarks of Microsoft Corporation

5-1

NOVEMBER 1983
ORDER NUMBER 230844-001

XENIX PRODUCTIVITY SOFTWARE TOOLS

INTRODUCTION
Software tools for the
XENIX environment

Intel's
"Software Backplane"

Intel's productivity software tools are
designed to meet the basic information
processing needs of the office environment. Thilored specifically for the
XENIX* operating system, the software tools are available as individual
packages which can be applied to
specific end-user tasks. Intel's application packages are also offered as a
Seamless™ set of software tools, integrated with a hardware/software
system such as Intel's Database Information System (iDIS™ 861735).
Seamless software tools support the
transparent sharing of data files among
various application packages with complete data integrity. With Seamless
software, results from one application
package are readily accessible and
compatible as input for another form
of processing.

IWORD*
• Standard text editing/formatting
commands

The powerful, versatile
word processing tool

• Designed especially for the
XENIX operating system

Inters iWORD package is a
sophisticated, yet friendly word processing tool for preparing business
documents, such as reports, letters,
memoranda, technical papers, and
more. Written in the ·C" language and
tailored to the XENIX operating
system, the iWORD package can run
in both multi-user and single-user en:
vironments. Menu-driven and screenoriented, the iWORD package supports
all standard text editing, storage, and
formatting development functions.

• Easy-to-use for beginners, powerful for experts
• Full-screen text editor
• Access to XENIX typesetter and
printer drivers .
• Embedded commands for global
formatting
• On-screen display of formatted
text
• On-line Help facility, spelling/dictionary module, and mail/merge
facility
• Worldwide service. and support

An effiCient, easy-to-use
text processor
Inexperienced users will find the
iWORD software concepts intuitively
easy. For example, the user accesses a
documejlt file by opening a "drawer,"
and editing commands follow familiar
"cut and paste" procedures.
All commands are in plain English.
No memorization is necessary, and
many operations are executed by a

"IWORD is a version of Horizon Wlrd Processing, a trademark of Horizon Software Systems, Inc.

5-2

single keystroke. Concise command
menus and an .on-line Help facility are
continuously available so that novice
users can quickly advance in their
word processing abilities. The iWORD
system is sufficiently powerful to meet
the needs of more experienced users
as well.

Designed around
office needs
"Inters iWORD software is based on
the simple concept of an office file
cabinet, defined by a collection of
drawers, each of which contains files
(documents) .
The user may:
• Open an existing drawer or make a
new drawer
• Create a new file or select an existing file
• Rename a drawer or file
• Add to, change, copy, move or
delete the selected file.
There is no limit to the number of
user-created drawers other than the
availability of disk storage space.

inter

XENIX PRODUCTIVITY SOFTWARE TOOLS

On-screen display of
formatted text
The word processor allows users to
visually format documents and print
them as they are displayed on the terminal, or to format them with the
powerful text processing filcilities inherent to the XENIX operating system.
This on-screen display capability is
particularly helpful in preparing
documents for typesetting.
The results of text formatting co!TImands appear immediately on the
screen. Examples of these commands
include:
• Right justification
• Underlining
• Indentation
• Centering
• Alignment.

Advanced word processing
features
Inexperienced users may execute
commands from a simple menu (and
related Help screens), while more proficient users may opt to use up to 64
function keys without accessing the
menu.
The iWORD system allows
simultaneous support for multiple
character andlor line printers at the
local or system level; printer selection
is an operator option at print time.
The iWORD package includes a
spelling checker and correction filcility
with an extensive on-line dictionary.
A Mail/Merge facility is available to
combine mailing lists and document
files (e.g., form letters) for printer output. MaillMerge also provides the
capability of incorporating paragraphs
'
from a third file.
The iWORD processing allows onscreen sorting of numeric or alphabetic
text.

Special editing commands
• Find commands ("string search") to
locate characters or words in text for
possible changes or additions
• Deletion commands for removing
words, sentences, lines, paragraphs
and entire files
• Fill commands to fit as many words
as possible in a finite space
• Form command to type over existing
text
• Command to mark location of the
cursor within text
• Paste-in command to copy a section
of text
• Replace command that replaces one
text area with another
• Tab setting commands

Embedded "dot" commands
When formatting or printing needs
are complex, the user has easy access
to more powerful embedded "dot" commands. "Dot" commands are most
useful for medium-sized and long
documents requiring sophisticated formatting functions like subscripts,
superscripts, and footnotes. "Dot" commands are fully compatible with
NROFF and TROFF, the XENIXsupplied printing and typesetting
utilities, The results of "dot" commands are displayed on-screen before
the document is printed,
Embedded commands for global formatting include:
• Page layout
• Justification
• Automatic hyphenation
• Running headers and footers
• Footnotes
• Superscripts and subscripts
• Automatic page numbering
• XENIX typesetting commands
(TROFF)
• XENIX printing commands
(NROFF).

5-3

Editing two files
simultaneously
The iWORD package provides a
moveable "window" into a file for fullscreen text editing. The user may
slmultaneousiy display two areas of the
same document or two different
documents in two screen "windows:'
Employing this "split screen" capability, the user may review two different
files at the same time, as well as move
text between files.

'Designed for experienced
and novice users
The iWORD software provides the
experienced word processing user the
full strength of XENIX text preparation commands, such as NROFF and
TROFP. The iWORD package also offers a compn;hensive menu shell which
makes the word processing software
easy to use for even the most
inexperienced computer user. In conclusion, the iWORD system is a
powerful, "user friendly," and flexible
word processing package intended for
all levels of computer proficiency.

.
XENIX PRODUCTIVITY SOFTWARE TOOLS
The iPLAN matrix format

The most advanced
electronic spreadsheet

IPLAN·

Th~

• Indilstry standard advanced electronk~~&h~t~n~ou

• SOphisticated formatting options
• Easy-to-use English commands

• Exteulve, on-line Help facilities
• ScroUIng features and multiwindow/multi-table display
• Links and updates multiple interrelated sp~&h~ts
• Automatk:aUy updates calculations
• Wlrldwlde service and support

iPLAN Multiplan Spreadsheet
software is one of the most powerful,
easy-to-use "electronic worksheet" programs available. Developed by Microsoft Corporation, Multiplan has been
enhanced for Intel hardware environments operating under XENIX.
The iPLAN package is a multipurpose tool capable of a wide variety
of business and scientific applications:
financial modeling, planning,
forecasting, tabulations, calculation of
engineering formulas,' and much more.
It supports "what-if' decision-modeling
with a versatile two-dimensional matrix
that can be custom-tailored for specific
use.
Unlike other sp~adsheets, the
iPLAN system is designed to meet the
needs of both inexperienced and
sophisticated computer users. It also
offers versatile presentation and reporting capabilities.

The iPLAN softwclre displays
numerical data, text, or formulas in
matrix (row/column) format. The
spreadsheet screen is divided into
'cells' which are referenced by row and
column numbers. Cells may contain
numeric data, formulas, text, or labels.
Commands are listed at the bottom of
the screen along with the current addressed cell, the amount of unused
spreadsheet storage space, and the
name of the file in use.

Designed for ease-of-use
Beginning iPLAN users can start
building worksheets after a couple
hours of initial use. While simple to
operate, the iPLAN system functionality is enhanced by the skill of the user.

• IPLAN ~ a venIon of Microsoft Multlplan~ a trademark of Mlcnisoft Corporation.

,.

~----~~~---------:--------~-----------===::::====::::~~~~::::::~~~IVE
2
3
BORDERED
#2

WINDOW 112

3

1

3 Sales

4
5 Cost
6
7
8

MENU
SELECTION

2
3

2

COLUMNS (1-63)

9
10 Total Costs
11
12
13
14
( 15 Gross Profits
16

$20000.00

$20000.00

4
5

Material $4000.00
Labor $7000.00
Overhead $4000.00

6
7
8
9

$15000.00

10
11

DOLLAR FORMAT
$4000.00
$7000.00
$4000.00
$15000.00

$5000.00

17

12
13
14
15
16

18

17

$5000.00

CELL
POINTER

18
STORAGE
REMAINING

MESSAGE

---+--

COMMAND: Alpha Blank Copy Delete Ed~ Format Goto Help Inset Lock Move
Name Options Print Qu" Sort Transfer Value Window Xternal
Select option or type command letter
R10C3
SUM(R6:8C3)
95% Free

LOCATION --:::::::.~---­
AND CONTENTS
OF~IVECELL

ABSOLUTE REFERENCE

Typical Multiplan Screen Display
5-4

SHEET NAME

XENIX PRODUCTIVITY SOFTWARE TOOLS

The iPLAN package does not use
cryptic, abbreviated commands or
reference codes (e.g. "AZ23"). Instead,
it uses plain English commands (e.g.
COPY) and reference names (e.g.
COSTS or SALES). Completely menudriven, the iPLAN software prompts
the user with simple commands that
can be executed with a single
keystroke. To help in command selection, the user can access a reference
guide.
Notable iPLAN features include:
• Ability to build formulas by highlighting cells
• Menu-driven functions and command prompting
• Plain English command words and
formulas
• Comprehensive on-line reference
guide
• Eight-window display option
• Full-screen display of worksheet
formulas.

A dynamiC, versatile
workspace
The iPLAN package offers an effective workspace that is 63 columns
wide by 255 rows long. Worksheets are
easily designed to fit project requirements. Moreover, worksheets can
be linked to automatically receive or
transmit data into other related iPLAN
worksheets. Column width can be
varied to accept long (or short) words
and numerals; lines of text can be
typed across several columns.
Up to eight windows are available
with vertical and horizontal scrolling,
such that different areas of a very
large worksheet can be viewed
simultaneously. The windows can be
aligned, scrolled together, opened, or
closed at the user's choice.

Built-in data security

Flexible presentation
features
The iPLAN system enables users to
produce printed reports of professional
caliber. The program includes special
formatting, alignment, and printing
functions that support the printing of
presentauon-quaiity reports. The
iPLAN software can automatically
break a spreadsheet into multiple
pages, and the user can specify the appropriate margins.

Powerful modeling
capabilities
Highlights of iPLAN modeling
features include:
• Alphabetical or numerical sorting
capabilities
• Links and automatically updates up
to eight interrelated worksheets
• Automatically updates· subtotals,
totals, percentages, growth curves
and other calculations
• Performs multiple iterations to solve
closed-loop problems
• Automatically revises formulas when
reordering rows and columns in
displays
• ,Cells and areas can be named for
clarity
• Continuous formatting allows entries
across cell boundaries
• Formulas moved to various worksheet locations without retyping
• Includes special editing area for
quick additions or deletions
• Sheet display may be redesigned or
formatted in various ways without
altering the stored data
• Formulas, words, or numerals can
be entered into any location so that
printed sheets have titles and
descriptions
• Offers a rich repertoire of advanced
math functions and operators.

. The iPLAN software features cell
locking to protect worksheet data.
When data and formulas have been
entered, tie specified information can
be "locked" in place so that vital data
cannot be accidentally erased or
altered.

iMENU·
• Hierarchical control of menu
screens to organize application
program use
• On-line application development/maintenance system
• A menu screen design and menu
development system for
non-programmers
• On-line Help facility
• Written in the "C" language,
specifically for XENIX
• Supports turnkey application
development
• Worldwide service and support

Simplifies use, development
and maintenance of
XENIX-based applications
The iMENU software package is a
hierarchical user interface and application development tool that ties together
XENIX-based applications to achieve a
high level of software integration. The
iMENU package allows applications
developers to create integrated, logical,
and friendly interfaces to XENIX
applications.
In effect, the iMENU system allows
the XENIX operating system to appear
transparent to the non-te~hnical user,
while it offers all the power and functionality inherent to XENIX to the
more experienced user. The iMENU
package interfaces with virtually all
character-oriented terminals.

'Aids application
development and software
packaging
Programmers and experienced users
can apply the iMENU system in maintaining or creating menus, forms, or
Help screens for existing or new
applications.

• iMENU is a version of Schmidt's Imenus,
a trademark of Schmidt Associates.

5-5

XENIX PR·ODUCTIVITY SOFTWARE TOOLS

FIlii XENIXfunctio~ality is retained
and simplified with the iMENU software. Experienced users have the option of skipping step-by-step menu
selection via the fast menu selection
mode. Advanced users can also modify
the menu system to reflect changes in
existing applications or to incorporate
new applications.

Standard iMENU package functions
include:
• Definition of login IDs
• Add, delete, and list login IDs
• Authorization control
• Define, update, delete and list menu
items and attributes
• Screen and forms building
• Interaction with XENIX shell
commands
• Powerful macros
• Fast menu selection mode for experienced users
• On-line Help facility.

5-6

The iMENU software includes a
Menu Development Subsystem, which
is a menu-driven set of maintenance
functions allowing:
• Menu screen maintenance
• Form screen maintenance
• Help screen maintenance
• Menu selection maintenance
• Macro maintenance
• Shellscript maintenance
• Login ID maintenance
• Deauthorization maintenance
• Backup/restore.

inter

XENIX PRODUCTIVITY SOFTWARE TOOLS

Comprehensive on-line
Help system

complete data integrity. The iDIS
system is a multi-user, multi-tasking
XENIX-based microcomputer available
with the iWORD processor, the iPLAN
spreadsheet, the iMENU development
system, iXTRACT communication
facilities for downloading mainframe
databases, thc iDB DBMS for local
relational database management, and
software that supports networking of
personal computers. Application
development tools and high-level programming languages are also offered
with the iDIS system. Data can be
transferred among the Seamless software packages, and the iDIS menu
system and iHELP facility provide a
friendly, common user interface. The
iDIS system is an example of how Intel
provides hardware/software components
at all levels of integration to meet individual system needs.

The Help system is an interactive
user-assistance facility. The Help
system is completely integrated with
the iMENU package so the user need
no! rely on bulky reference manuals to
operate a particular application. In the
event the user encounters problems or
has questions, explanatory solutions
can be made available at all times. Using the iMENU system itself, programmers and experienced users can extend
or modify the Help system to include
new applications.

Expands markets and
increases profits
Systems integrators will find the
iMENU system to be an indispensible
tool for packaging XENIX-based applications software and integrated hardware/software systems.
Using the iMENU package, application developers can:
• Extend the user-interface to wrap
around new and existing applications
software
• Customize existing applications to
meet varying customer needs
• Develop application demos
• Create applications that are easily
used by non-programmers
• Package separate programs into integrated applications.
The iMENU software enhances the
cost-effectiveness of application
development by:
• Improving time to market for new
software products
• Reducing software development time
• Reducing the need for training and
support
• Decreasing software installation time
• Cutting documentation expenses
• Unifying a family of software products for consistent screen appearance and operation.

Worldwide service and
support
All Intel software included under an
active software maintenance agreement
is fully supported by Intel's staff of
trained software engineers. Depending
on the system configuration, several
levels of support are available. Each
package is offered with complete
documentation, including a comprehensive user manual and installation
guide.

SPECIFICATIONS

Required Hardware:
• Any 8086 or 80286-based system including Intel's SYSTEM 86/300,
286/300 family and iDIS systems
• Minimum of 128 KB memory
• At least two floppy disks or one
hard disk
• One 8 in. or 5.25 in. double-density
floppy disk drive for distribution
media

Required Software:

Integrated software for the
iOIS system

• Intel's XENIX 86/286 Operating
System

Intel's Database Information System
(iDIS 86/735) provides end users and
systems builders with a vehicle for incorporating a Seamless set of software
productivity tools. Seamless software
supports the transparent sharing of data
files among application packages with

Warranty:

90 days for:

Software Updates and application support. Continuing support services
available with subscription to a Software maintenance agreement.

5-7

XENIX PRODUCTIVITY SOFTWARE TOOLS

The following' are Irademarks of Inlel Corporation and may be used only to describe
Intel producls: BXp, CREDIT, i, ICE, 12 1CE,
ICS, iOBp, iOIS, iLBX, i m , iMMX, Insile,
INTEL,
, Inlelevision, Intellec, Inleligenl
IdentifierT", IntelBOS, inteligent Programming™, Intellink, iOSP, IPOS, iRMS, iSBC,
iSBX, iSDM, iSXM, Library Manager, MCS,
Megachassis, Micromainlt'ame, MULTIBUS,
Multichannel™ Plug-A-B(Jbble, Seamless,
MULTIMOOULE, PROMPT, Ripplemode,
RMX/BO, RUPI, SYSTEM 2000, Data
Pipeline, lOIS, iDBp, and UPI, and the combination of ICE, ICS, iRMX, iSBX, MCS, or
UPI and a numerical suffix. Intel Corporation assumes no responsibility for the use of
any circuitry other than circuitry embodied
in an Intel product. No other patent licenses
are implied. Specifications are subject to
change without notice.
iWORD is a version of Honzon Word Processing, a trademark of Horizon Software
Systems, Inc. iPLAN is a version of
Microsoft's multiplan, a trademark of
Microsoft Corporation. IMENU is a version
of Schmidt's Imenus, a trademark of
Schmidt Associates.
Information contained herein supercedes
previously published specifications on these
devices from Intel.

5-8

• Complete on-line transaction
processing monitor
• Easy-to-use, interactive screen
building utiliti($
• Flexible, on-line transaction
development facilities
• Reduced user coding with
standardized functions and
processing modules
• Variable indexed sequential database
structure
• Powerful interactive query language
with Boolean logic capability
• Multilevel user-defined security
• Real-time report writer
• Menu-prompting

iTPS Transaction
Processing Systems
Terminal Application
Processing System (iTAPS)

'

APIItL 1983
ORDER NUMBER' 210415-002

© INTEL CORPORATION. 1983

5-9

FUNCTIONAL DESCRIPTlON
Intel's Terminal Application Processing
System (iTAPS) is the on-line
'.
transaction processing software package
customized for Intel's Transaction
Processing System (iTPS). iTAPS
consists of an interactive application
development facility and a reliable
high-performance run-time transaction
processing monitor. In addition to
providing ready-to-use software for
building data files and maintaining
data relafionships and structures,
iTAPS interfaces with user-specific
processing modules. written in COBOL
or Pascal, iTAPS also supports a
powerful query language that provides
direct, easy and fast access to data
contained· in user database files.

FEATURES AND BENEFITS
Application development
As a complete transaction processing
application development tool, iTAPS frees
programmers from the coding
complexities normally associated with
development environments tb.at include
database management, telecommunications and multiprogramming-multiuser
on-line systems. iTAPS enables
programmers to write complex
transaction processing applications with
simple commands and easy-to-use
interactive utilities. iTAPS is primarily
intended for application programmers
and requires minimal. systems
programmer involvement.
iTAPS furnishes an on-line faciliry to
define screen formats, including the
variables to be processed and their video
characteristics. iTAPS simply requests the
programmer to "paint" the screen as it
should appear to the system user, and
fields are then defined interactively by
filling in a form on the screen.
iTAPS also provides a number of
standard modules used repetitively in any
transaction processing application. These
modules greatly simplify the development
and maintenance tasks by automating
such functions as:
• Initialization
• Addition of. a record to the database
• Modification of a record in the
database
• Deletion of a record from the
database

•
•
•
•

Index structure update
Data validation
Uniqueness checking
Dynamic specification of display
format
• File writing
• Database searching
• Sorting

the. ilpecified transaction, and manages
all the disk input/output. Because
"Intel's Transaction Processing System
has been optimized for transaction
procesSing, the system overhead is kept
at a minimum. Superior performance
results as measured in terms of both
throughput and response time.

In addition to the standard iTAPS
modules, the programmer may write
user-specific COBOL or Pascal
programs to address specific application
processing requirements. These
programs combined with the iTAPS
standard modules make up an
application transaction. The COBOL
or Pascal program calls upon iTAPS to
provide all database and terminal I/O
functions. The program can also access
non-iTAPS files using standard 110
programming.

.iTAPS provides first level data
validation. Errors are detected as they
occur and before the more complex
application processing takes place.
Thus iTAPS significantly assists not
only in validation and immediate
correction of the input data, but also
in realizing a more efficiently
performing system by reducing
unnecessary processing.

All these features add up to increased
system and programmer productivity.
Programmers can spend more time
designing and implementing their
applications and less time worrying
about multiuser on-line systems
requirements. As a result, applications
come on-line faster. Furthermore, the
consistent organization of iTAPS
application systems minimizes
maintenance and enhancement
problems.
iTAPS produces extensive application
documentation. Even if the program's
author has departed, very little time
will be lost reconstructing or enhancing
the application. This means that iTAPS
reduces the cost of application software
both in the development phase and in
the maintenance phase.
Run-time transaction processing
At run-time, iTAPS provides a
complete multiuser on-line transaction
processing environment with five levels
of predefined security checks: sign-on,
application system selection, data
add/delete, field read/write, and field
index. Two menu levels to select the
application system and the desired
tramaction are provided.
When iTAPS receives a request from a
terminal to initiate execution of a
particular transaction, it allocates the
resources between that terminal and

5-10

iTAPS supports a powerful query
facility based on predefined commands
and on the use of English words to
describe each data element. Compound
Boolean inquiries can be formulated
using aliases, data values and logical
operators. The response to an inquiry
can be displayed at the terminal or
printed on the system printer.
System Organization
iTAPS is composed of five modules:
•
•
•
•
•

The Executive
The Communication Manager
The Application Manager
The Data Manager
The iTAPS terminal

As shown, these modules interact with
the operating system, the user's
software, the terminal, and the
database. This segmentation enables
programmers to develop each module
as an independent entity and to modify
it without having to alter the entire
application. Each module is designed to
simplify application development,
implementation and execution.

The iTAPS Executive
The Executive provides the interface
with the iRMX 86 operating system
and acts as the run-time transaction
processing monitor. The Executive
controls sign-on and menu displays,
performs security-checking, and
maintains a log which posts the
appropriate "before" and/or "after"
image of any data file change. Based on
this log, the Executive provides defined
recovery capabilities:
•

•

At the network level: Following a
terminal or communication line
failure, the last transaction is
retrieved from storage 'and retransmitted to the terminal upo~ entry of
a command by the operator.
At the file level: Following a system
failure the recovery log is read to
update the file and back-out the
incomplete transactions. Full
recovery is also provided by the
recovery log in conjunction with the
last back-up.

In addition, the Executive provides
statistical services to evaluate system
use and performance, auditing facilities

to isolate illegal transmissions, and
documentation facilities to record the
application and data structures.

The iTAPS Communication Manager
The Communication Manager controls
the communications network. lt
collects data that has been transmitted
from a terminal, sends messages back
to the terminals, and maintains the
network buffers. Supporting both block
and TAPS modes, the Communication
Manager is designed to optimize line
transmission.
The Communication Manager is
completely transparent to the
application programmer as well as to
the user.

The iTAPS Application Manager
The Application Manager controls the
application processing sequence of each
terminal within the network. Upon
receipt of a request from the
Communication Manager, the
Application Manager determines the
transaction type, schedules the

appropriate processing modules,
transfers data, and generally manages
the logic of the application.

The iTAPS Data Manager
The Data Manager interfaces iTAPS
\vith the database. It perfof!Ps th~
additions, changes, deletions and
extractions requested by the
Application Manager. It can be
executed from a user module during
the processing of a transaction or when
the query language is used.
The Data Manager uses a valued,
inverted structure called Variable
Indexed Sequential Access Method
(VIS AM) to format the database. Each
VISAM database is composed of a
keyed access index file and a direct
access primary file. The primary file
contains the data records, and the
index file contains all the pointers to
the primary file records. Virtually all
fields in the database can be accessed
by keyed value. Both structured and
unstrl,lctured (text) fields can be
indexed.

The iTAPS terminal
When the TAPS mode feature is used
in the iTPS terminal, major iTAPS
functions are handled at the terminal
leveL Screen-formatting, edit-checking,
and data-validation are performed by
the terminaL This frees the central
processor from the burden of
performing these tasks. iTAPS supports
both block and TAPS modes in the
intelligent terminals. The TAPS mode
terminal feature enables an operator to
correct an error while the source
document is readily available.

IAMX OPERATING SYSTEM

Summary
iTAPS has been specifically designed to
satisfy the requirements of transaction
processing. It is a complete software
system with an efficient architecture, a
simplified programming style, and a
wide array of features designed to
optimize both applications development
and on-line transaction processing.
When Intel's iTPS is enhanced with
iTAPS, the result is application
development productivity and a
complete user friendly secure run-time
system.

5-11

iTPS Transaction
Processing "Systems
Communications

• Extensive array of remote
communication connection options
• Emulation of IBM 2780/3780 RJE
station
• Emulation of IBM 3270 BISYNC
cluster controller
-Intel Transaction Processing System
(iTPS) looks like IBM 3271 control
unit with up to 32 devices attached
-iTPS terminals look like IBM 3277
terminals
iTPS printers look like IBM 3284
printers
• Emulation of IBM 3270 SDLC/SNA
cluster controller
-iTPS looks like IBM 3274 control
unit with up to 16 devices attached
-iTPS terminals look like IBM 3278
model 2 terminals
-iTPS printers look like the IBM
3287 printer
• Communication speeds up to 19,200
bits per second (bps)
• Leased or switched communication
lines

APAL 1883

 ....

I

I

",,'

®

PROCESSES
FULL BUFFER

,

I

._._j

Figure 7. Multiple Buffer Example

SIGNAL INTERRUPT

Used by an INTERRUPT
HANDLER to activate an Interrupt Task.

WAIT INTERRUPT

Suspends the calling Interrupt Task until the INTERRUPT HANDLER performs a
.SIGNAL INTERRUPT to invoke it. If a SIGNAL INTERRUPT for the task has
occurred, it is processed.

CREATE SEGMENT primitive explicitly allocates a
memory area when one is needed by the TASK. For
example, a TASK may explicitly allocate a SEGMENT
for use as a memory buffer The SEGMENT length
can be any multiple of 16 bytes between 16 bytes and
64K bytes in length. The programmer may specify
any number of bytes from 1 byte to 64 KB, the OSP
will transparently round the value up to the appropriate segment size.
The two explicit memory allocatlon/deallocatlon
primitives are:

FREE MEMORY MANAGEMENT
The OSP Free Memory Manager manages the
memory pool which is allocated to each JOB for its
execution needs. (The CREATE JOB primitive allocates the new JOB's memory pool from the
memory pool of the parent JOB.) The memory pool IS
part of the JOB resources but is not yet allocated
between the tasks of the JOB. When a TASK, MAILBOX, or REGION system data type structure is
created within that JOB, the OSP implicitly allocates
memory for it from the JOB's memory pool, so that a
, separate call to allocate memory is not required. OSP
primitives that use free memory management implicitly include CREATE JOB, CREATE TASK,
DELETE TASK, CREATE MAILBOX, DELETE MAILBOX, CREATE REGION, and DELETE REGION. The

CREATE SEGMENT

Allocates a SEGMENT of specified length (in 16-byte-long
paragraphs) from the JOB
Memory Pool.

DELETE SEGMENT

Deallocates the SEGMENT's
memory area, and returns It
to the JOB memory pool.

Intertask Communication
The asp has built-in intertask synchronization and
communication, permitting TASKs to pass and share
information with each other. OSP MAILBOXes contain controlled handshaking facilities which guarantee that a complete message will always be sent from
a sending TASK to a receiving TASK. Each MAILBOX
consists of two interlocked que'ues, one of TASKs

6-9
AFN·02059B

80130/80130-2
iAPX 86/30, 88/30, 186/30, 188/30

and the other of Messages. Four OSP primitives for
itltertask synchronization and communication are
provided:

There are five OSP primitives for mutual exclusion:
CREATE REGION

Create a REGION (lock).

SEND CONTROL

Give up the REGION.

'

CREATE MAILBOX

Creates intertask message
exchange.

ACCEPT CONTROL

DELETE MAILBOX

Deletes an intertask message exchange.

Request the REGION, but do
not wait if it is not available.

RECEIVE CONTROL

RECEIVE MESSAGE

Calling TASK receivesamessage from the MAILBOX.

Request a REGION, wait if
not immediately available.

DELETE REGION

Delete a REGION.

SEND MESSAGE

Calling TASK sends a
message to the MAILBOX.

The CREATE MAILBOX primitive allocates a MAILBOX for use as an information exchange between
TASKs. The OSP will post information at the MAILBOX in a FIFO (First-In First-Out) manner when a
SEND MESSAGE instruction is issued. Similarily, a
message is retrieved by the OSP if a TASK issues a
RECEIVE MESSAGE primitive. The TASK which
creates the MAILBOX may make it available to other
TASKs to use.

The OSP also provides dynamic priority adjustment
for TASKs within priority REGIONs: If a higher- .
priority TASK issues a RECEIVE CONTROL primitive,
while a (lower-priority) TASK has the use of the same
REGION, the lower-priority TASK will be transparently, and temporarily, elevated to the waiting
TASK's priority until it relinquishes the REGION via
SEND CONTROL. At that point, since it is no longer
using the critical resource, the TASK will have its
normal priority restored.

OSP Control Facilities

If no message is available, the TASK attempting to
receive a message may choose to wait for one or
continue executing.

The OSP also includes system primitives that provide
both control and customization capabilities to a multitasking system. These primitives are used to control
the deletion of SOTs and the recovery of free memory
in a system, to allow interrogation of operating system status, and to provide uniform means of adding
user SOTs and type managers.

The queue management method for the task queue
(FIFO or PRIORITY) determines which TASK in the
MAILBOX TASK queue will receive a message from
the MAILBOX. The method is specified in the
CREATE MAILBOX primitive.

DELETION CONTROL
Deletion of each OSP system data type is explicitly
controlled by the applications programmer by setting a deletion attribute for that structure. For example, if a SEGMENT is to be kept in memory until DMA
activity is completed, its deletion attribute should be
disabled. Each TASK, MAILBOX, REGION, and SEGMENT SOT is created with its deletion attribute enabled (i.e., they may be deleted). Two OSP primitives
control the deletion attribute: ENABLE DELETION
and DISABLE DELETION.

Intertask Synchronization and Mutual
Exclusion
Mutual exclusion is essential to multiprogramming
and i multiprocessing systems. The REGION system
data type implements mutual exclusion. A REGION is
represented by a queue of TASKS waiting to use a
resource which must be accessed by only one TASK
at a time. The OSP provides primitives to use
REGIONs to manage mutually exclusive data and
resources. Both critical code sections and shared'
data structures can be protected by these primitives
from simultaneous use by more than one task.
REGIONs support both FIFO (First-In First-Out) or
Priority queueing disciplines for the TASKS seeking I
to enter the REGION. The REGION SOT can also be
used to implement software locks.

ENVIRONMENTAL CONTROL
The OSP provides inquiry and control operations
which help the user interrogate the application envi~
ronment and implement flexible exception handling.
These features aid in run-time decision making and
in application error processing and recovery. There
are five OSP environmental control primitives.

Multiple REGIONs are allowed, and are automatically
exited in the reverse order of entry. While in a
REGION, a TASK cannot be suspended by itself or
any other TASK, and thereby avoids deadlock.

OS EXTENSIONS
The OSP architecture is defined to allow new userdefined System Data Types and the primitives to manipulate them to be--added to OSP capabilities

6-10
AFN·02059B

inter

80130/80130-2
iAPX 86/30, 88/30, 186/30, 188/30

allow the OSP primitives to report parameter errors
in pr.imitive calls, and errors in primitive usage. Exception handling procedures are flexible and can be
individually programmed by the application. In general, an exception handler if called will perform one
or more of the following functions:

provided by the built-in System Data Types. The type
managers created for the user-defined SOTs are
called user OS extensions and are installed in the
system by the SET OS EXTENSION primitive. Once
:nstal!ed, the functions of the type manager may be
invoked with user primitives conforming to the OSP
interface. For well-structured extended architectures, each OS extension should support a separate
user-defined system data type, and every OS extension should provide the same calling sequence and
program interface for the user as is provided for a
built-in SOT. The type manager for the extension
would be written to suit the needs of the application.
OSP interrupt vector entries (224-255) are reserved
for user OS extensions and are not used by the OSP.
After assigning an interrupt number to the extension,
the extension user may then call it with the standard
OSP call sequence (Figure 4), and the unique
software interrupt number assigned to the
extension.
ENABLE DELETION

Allows a specific SEGMENT,
TASK, MAILBOX, or REGION
SOT to be deleted.

DISABLE DELETION

Prevents a specific SEGMENT, TASK, MAILBOX, or
REGION SOT from being
deleted.

GET TYPE

Given a token for an instance of a system data type,
returns the type code.

GET TASK TOKENS

Returns to the caller information about the current
task environment.

-Log the Error.
-Delete/Suspend the Task that caused the
exception.
-Ignore the error, presumably because it is not
serious.
An EXCEPTION HANDLER is written as a procedure.
If PLM/86 is used, the "compact," "medium" or
"large" model of computation should be specified for
the compilation of the program. The mode in which
the EXCEPTION HANDI;.ER operates may be specified in the SET EXCEPTION HANDLER primitive. The
return information from a primitive call is shown in
Figure 4. CX is used to return standard system error
conditions. Table 7 shows a list of these conditions,
using the default EXCEPTION HANDLER of the OSP.

HARDWARE DESCRIPTION
The 80130 operates in a closely coupled mode with
the iAPX 86/10 or 88/10 CPU. The 80130 resides on
the CPU local multiplexed bus (Figure 8). The main
processor is always configured for maximum mode
operation. The 80130 automatically selects between
its 88/30 and 86/30 operating modes.
The 80130 used in the 86/30 configuration, as shown
in Figure 8 (or a similar 88/30 configuration),
operates at both 5 and 8 MHz without requiring processor wait states. Wait state memories are fully supported, however. The 80130 may be configured with
both an 8087 NPX"and an 8089 lOP, and provides
full context control over the 8087.

GET EXCEPTION
HANDLER

Returns information about
the calling TASK's current information handler: its address, and when it is used.

SET EXCEPTION
HANDLER

Provides the address and
usage of an exception
handler for a TASK.

SET OS EXTENSION

Modifies one of the interrupt
vector entries' reserved for ~
OS extensions (224-255) to
point to a user OS extension
procedure.

SIGNAL EXCEPTION

For use in OS extension error processing.

The 80130 (shown'in Figure 3) is internally divided
into a control unit (CU) and operating system unit
(OSU). The OSU contains facilities for OSP kernel
support including the system timers for scheduling
and timing waits, and the interrupt controller for
interrupt management support.

iAPX 86/30, iAPX 88/30 System
Configuration
The 80130 is both I/O and memory mapped to the
local CPU bus. The CPU's status SO/-S21 is
decoded along with 10CSI (with BHE and AD3ADo) or MEMCSI (with AD13-ADo). The pins are
internally latched. See Table 1 for the decoding of
these lines.

EXCEPTION HANDLING
The OSP supports exception handlers. These are
similar to CPU exception handlers such as OVERFLOW and ILLEGAL OPERATION. Their purpose is to
6-11

AFN·02059B

80130/80130-2

iAPX 86/30,88/30,186/30,188/30

Memory Mapping

RAM Requirements

Address lines A19 -A14 can be used to form MEMCS/
since the 80130's memory-mapped portion is aligned
along a 16K-byte boundry. The 80130 can reside on
any 16K-byte boundry excluding the highest
(FCOOOH-FFFFFH) and lowest (00000H-003FFH). The
80130 control store code is position-independent except as limited above, in order to make it compatible
with many decoding logic designs. AD13-ADo are
decoded by the 80130's kernel control store.

The OSP manages its own interrupt vector, which is
assigned to low RAM memory. Working RAM storage
is required as stack space and data area. The
memory space must be allocated in user RAM.
OSP interrupt vector memory locations OH-3FFH
must be RAM based. The OSP requires 2 bytes of
allocated RAM. The processor working storage is
dynamically ,allocated from free memory. Approximately BOO bytes of stack should be allocated for
each OSP task.

I/O Mapping
The I/O-mapped portion of the 80130 must be aligned
along a 16-byte boundry. Address lines A1S -A4
should be used to form 10CS/.

TYPICAL SYSTEM CONFIGURATION
Figure 8 shows the processing cluster of a "typical"
iAPX 86/30 or iAPX 88/30 OSP system. Not shown are
subsystems likely to vary with the application. The
configuration includes an 8086 (or 8088) operating in
maximum mode, an 8284A clock generator and an
8288 system controlier. Note that the 80130 is located
on the CPU side of any latches or transceivers. See
Intel Application Note 130 for further details on
configuration.

System Performance
The approximate performance of representitive OSP
primitives is given in Table 5. These times are shown
for a typical iAPX 86/30 implementation with an 8
MHz clock. These execution times are very comparable t9 the execution times of similar functions in
minicomputers (where available) and are an order of
magnitude faster than previous generation
microprocessors.

OSP Timers
Initialization

The OSP Timers are connected to the lower half of
the data bus and are addressed at even addresses.
The timers are read as two successive bytes, always
LSB followed by MSB, The MSB is always latched on
a read operation and remains latched until read.
Timers are not gatable.

Both application system initialization and OSPspecific initialization/configuration are required to
use the OSP. Configuration is based on a "database"
provided by the user to the iOSP 86 support package.
The OSP-specific initialization and configuration information area is assigned to a user memory address
adjacent to the 80130's memory-mapped location.
(See Application Note 130 for f.urther'details.) The
configuration data defines whether 8087 support is
configured in the system, specifies if slave 8259A
interrupt controllers are used in addition to the
80130, and sets the operating system ti me base (Tick
Interval). Also located in the configuration area are
the exception handler control parameters, the address location of the (separate) application system
configuration area and the OSP extensions in use.
The OSP application system configuration area may
be located anywhere in the user memory and must
include the starting address of the application instruction code to be executed, plus the locations of
the RAM memory blocks to be managed by the OSP
free memory manager. Complete application system
support and the req'uired 80130 configuration support are provided by the iAPX 86/30 and iAPX 88/30
OPERATING SYSTEM PROCESSOR SUPPORT
PACKAGE (iOSP 86).

Baud Rate Generator
The baud rate generator is 8254 compatible (square
wave mode 3). Its output, BAUD, is initially high and
remains high until tpe Count Register is loaded. The
first falling edge of the clock after the Count Register
is loaded causes the transfer of the internal counter
to the Count Register. The output stays high for N/2
[(N+l)/2 if N is odd] and then goes low for N/2
[(N-l)/2 if N is oddJ. On the falling edge of the clock
which signifies the final count for the output in low
state, the output returns to high state and the Count
Register is transferred to the internal counter, The
whole process is then repeated. Baud Rates are
shown in Table 6.
The baud rate generator is located at OCH (12), relative to the 16-byte boundary in the I/O space in which
the 80130 component is located ("OSF" in the following example), the timer control word is located at
6-12
~AFN·02059B

80130/80130-2
iAPX 86/30, 88/30, 186/30, 188/30

CONTROL

tJ

B086

aHE

aHE

'19

'"

ADORESS

INTA

.00

LOCAL
AND
SYSTEM
RESOURCES

'0

D15
8286

DATA

DE

----J)

DO

INTERRUPT REQUESTS

Figure 8. Typical OSP Configuration

Interrupt Controller

relative address, OEH(14). Timers are addressed with
IOCS=O. Timers 0 and 1 are assigned to the use by
the OSP, and should not be altered by the user.

The Programmable Interrupt Controller (PIC), is also
an integral unit of the 80130. Its eight input pins
handle eight vectored priority interrupts. One of
these pins must be used for the SYSTICK time function in timing waits, using an external connection as
shown. During the 80130 initialization and configuration sequence, each 80130 interrupt pin is individually programmed as either level or edge sensitive.
External slave 8259A interrupt controllers can be
used to expand the total number of OSP external
interrupts to 57.

For most baud-rate generator applications, the command byte
OB6H

Read/Write Baud-Rate Delay Value

will be used. A typical sequence to set a baud rate
of 9600 using a count value of 52 follows (see
Table 6):
MOV AX.OB6H

;Prepare to Write Delay to
Timer 3.
;Control Word.

OUT OSF+14,AX
MOV AX, 52
OUT OSF+12,AL ;LSB written first
XCHG AL,AH
OUT OSF + 12,AL ;MSB written after.

In addition to standard PIC funtions, 80130 PIC unit
has an LlR output signal, which when low indicates
an interrupt acknowledge cycle. LlR=O is provided to
control the 8289 Bus Arbiter SYSB/RESB pin. This
will avoid the need of requesting the system bus to
acknowledge local bus non-slave interrupts. The
user defines the interrupt system as part of the
configuration.

The 80130 timers are subset compatible with 8254
timers.
6-13

AFN·02059B

80130/80130-2
iAPX 86/30, 88/30, 186/30, 188/30

signal which drives one of 80130 edge-triggered interrupt request pins once each A.C. cycle. The Interrupt Handler responds to the interrupts, keeping
track of one second's A.C. cycles. The Interrupt Task
counts the seconds and after a day deletes itself. In
typical systems it might perform a data logging operation once each day. The Interrupt Handler and InterruptTask are written as separate modular programs.

INTERRUPT SEQUENCE
The OSP interrupt sequence is as follol/Vs:

1. One or more of the interrupts is set by a low-tohigh transition on edge-sensitivelR inputs or by a
high input on level-sensitive IR inputs.

2. The 80130 evaluates these requests, and sends an
INT to the CPU, if appropriate.
3. The CPU acknowledges the INT and responds
with an interrupt acknowledge cycle which is encoded in S2-S0'

4. Upon receiving the first interrupt acknowledge
from the CPU, the highest-priority interrupt is set
by the 80130 and the corresponding edge detect
latch is reset. The 80130 does not drive the address/data bus during this bus cycle but does
acknowledge the cycle by making ACK=O and
sending the LlR value for the IR input being
acknowledged.

The Interrupt Handler will actually service interrupt
59 when it occurs. It simply counts each interrupt,
and at a count of 60 performs a SIGNAL INTERRUPT
to notify the InterruptTask that a second has elapsed.
The Interrupt Handler (ACS HANDLER) was assigned
to this level by the SET INTERRUPT primitive. After
doing this, the InterruptTask performed the Primitive
RESUME TASK to resume the application task (INITS
TASKS TOKEN).
The main body of the task is the counting loop. The
InterruptTask is Signaled by the SIGNAL INTERRUPT
primitive in the Interrupt Handler (at interrupt level
ACS INTERRUPTS LEVEL). When the task is signalled by the Interrupt Handler it will execute the
loop exactly one time, increasing the time count
variables. Then it will execute the WAIT INTERRUPT
primitive, and wait until awakened by the Interrupt
Handler. Normally, the task will now wait some period
of time for the next signal. However, since the interface between the Handler and the Task is asynchronous, the handler may have already queued the
interrupt for servicing, the writer of the task does not
have to worry about this possibility.

5. The CPU will th.en initiate a second interrupt acknowledge cycle. During this cycle, the 80130 will
supply the cascade address of the interrupting
input at T1 on the bus and also release an 8-bit
pointer onto the bus if appropriate, where it is
read by the CPU. If the 80130 does supply the
pointer, then ACK will be low for the cycle. This
cycle also has the value LlR for the IR input being
acknowledged.
6. This completes the interrupt cycle. The ISR bit
remains set until an appropriate EXIT INTERRUPT
primitive (EOI command) is called at the end of
the Interrupt Handler.

At the end of the day, the task will exit the loop and
execute RESET INTERRUPT, which disables the interrupt level, and deletes the interrupt task. The OSP
now reclaims the memory used by the Task and
schedules another task. If an exception occurs, the
coded value for the exception is available in TIMES
EXCEPTS CODE after the execution of the primitive.

OSP APPLICATION EXAMPLE
Figure 5 shows an application of the OSP primitives
to keep track of time of day in a simplified example.
The system design uses a 60 Hz A.C. signal as a time
base. The power supply provides a TTL-compatible

A typical PL/M-86 calling sequence is illustrated by
the call to RESET INTERRUPT shown in Figure 5.

6-14
AFN·02059B

intel'

80130/80130-2
iAPX 86/30, 8B/30, 186/30, 188/30

Table 2, OSP System Data Type Summary
Job

I

,
Task

Jobs are the means of organizing the program environment and resources. An application consists of
one or more jobs. Each IAPX 86/30 system data type IS contained In some job.,Jobs are independent of
each other, but they may share access to resources. Each job has one or more tasks, one of which is an
Initial task. Joi')s are given pools at memory, ana lney may c,,,ai .. subordinate offspring jobs, which
may borrow memory from thel r parents.
Tasks are the means by which computations are accomplished. A task IS an instruction stream with its
own execution stack and private data. Each task is part of a job and is restricted to the resources
provided by Its job. Tasks may perform general Interrupt handling as well as other computational
functions Each task has a set of attributes, which is maintained for it by the IAPX 86/30, which
characterize its status These attributes are'
its
ItS
Its
ItS
ItS
its
Its

containing job
register context
Priority (0-255)
execution state (asleep, suspended, ready, running, asleep/suspended).
suspension depth
user-se!ected exception handler
optional 8087 extended task state

Segment

Segments are the units of memory allocation A segment IS a phYSically contiguous sequence of
16-byte, 8086 paragraph-length, units. Segments are created dynamically from the free memory
space of a Job as one of its Tasks requests memory for ItS use. A segment IS deleted when it IS no longer
needed The IAPX 86/30 maintains and manages free memory in an orderly fashion, it obtains memory
space from the pool assigned to the containing job of the requesting task and returns the space to the
Job memory pool (or the parent Job pool) when it IS no longer needed. It does not allocate memory to
create a segment if sufficient free memory IS not available,to it, in that case it returns an error
exception code

Mailbox

Mailboxes are the means of mtertask communication. Mailboxes are used by tasks to send and
receive message segments The IAPX 86/30 creates and manages two queues for each mailbox. One
of these queues contains message segments sent to the mailbox but not yet received by any task. The
other mailbox queue consists of tasks that are waiting to receive messages. The IAPX 86/30 operation
assures that waiting tasks receive messages as soon as messages are available Thus at any moment
one or possibly both of two mailbox queues Will be empty.

Region

Regions are the means of serialization and mutual exclUSion. Regions are familiar as '"critical code
regions'" The iAPX 86/30 region data type consists of a queue of tasks. Each task walts to execute in
mutually exclUSive code or to access a shared data region, for example to update a file record.

Tokens

I

I

The OSP Interface makes use of a 16-bltTOKEN data type to identify individual OSF data structures.
Each of these (each Instance) has Its own unique TOKEN. When a primitive is called, it is passed the
TOKENs of the data structures on which it Will operate.

6-15
AFN·02059B

80130/80130·2
iAPX 86/30, 88/30, 186/30, 188/30

Table 3. System Data Type Codes and Attributes
Code

Jobs

1

Tasks
Memory Pool
S.o.T. Directory

Tasks

2

Priority
Stack
Code
State
Exceptton Handler

Mailboxes

3

Queue of S.o.T.s
(generally segments)
Queue ofTasks
waiting for S.o.T.s

5

Queue of Tasks
waiting for mutually
exclusive code or
data

6

Buffer
Length

I

I

I

Region

~

Table 4.
Class

Attributes

S.D.T.

OSP
Primitive

OS~Primitives

Interrupt
Number

Entry Code
inAX

Parameters
On Caller's Stack

CREATE JOB

184

0100H

'See 80130 User Manual

CREATE TASK

184

0200H

DELETE TASK
SUSPEND TASK
RESUME TASK
SET PRIORITY
SLEEP

184
184
184
184
184

0201H
0202H
0203H
0209H
0204H

PriOrity, IP Ptr, Data Segment, Stack
Seg, Stack Size Task Information,
ExcptPtr
TASK, ExcptPtr
TASK, ExcptPtr
TASK, ExcptPtr
TASK, PriOrity, ExcptPtr
Time Llmlt,ExcptPtr

DISABLE
ENABLE
ENTER INTERRUPT
EXIT INTERRUPT
GET LEVEL
RESET INTERRUPT
SET INTERRUPT

190
184
184
186
188
184
184

0705H
0704H
0703H
NONE
0702H
,0706H
0701H

SIGNAL INTERRUPT
WAIT INTERRUPT

185
187

NONE
NONE

J

I

0

r

B

I
I
i

I

T
A
S
K

I
I
N
T

E

i
I

I

R
R
U
P
T

Level, ExcptPtr
Level #, ExcptPtr
Level #, ExcptPtr
Level #, ExcptPtr
Level #, ExcptPtr
Level #, ExcptPtr
Level, Interrupt Task Flag Interrupt
Handler Ptr, Interrupt Handler DataSeg
ExcptPtr
Level, ExcptPtr
Level, ExcptPtr

f - - - -..--.--+---------f------~-------_t_---.-~----------

I

i

s

i
6-16
AFN-02059B

80130/80130-2
iAPX 86/30, 88/30, 186/30, 188/30

Table 4. OSP Primitives (Continued)
Parameters
On Caller's Stack

OSP
Primitive

Interrupt
Number

Entry Code
in AX

CREATE MAILBOX
DELETE MAILBOX
RECEIVE MESSAGE

184
184
184

0300H
0301H
0303H

SEND MESSAGE

184

0302H

Mailbox flags. ExcptPtr
MAILBOX. ExcptPtr
MAILBOX. Time Limit ResponsePtr.
ExcptPtr
MAILBOX. Message Response. ExcptPtr

R
E
G
I
0
N

ACCEPT CONTROL
CREATE REGION
DELETE REGION
RECEIVE CONTROL
SEND CONTROL

184
184
184
184
184

0504H
0500H
0501H
0503H
0502H

REGION. ExcptPtr
Region Flags. ExcptPtr
REGION, ExcptPtr
REGION. ExcptPtr
ExcptPtr

E
N
V
I
R
0
N
M
E
N
T

DISABLE DELETION
ENABLE DELETION
GET EXCEPTION
HANDLER
GETTYPE
GET TASK TOKENS
SET EXCEPTION
HANDLER
SET OS EXTENSION
SIGNAL
EXCEPTION

184
184

000lH
0OO2H

TOKEN.ExcptPtr
TOKEN.ExcptPtr

184
184
184

0800H
OOOOH
0206H

Ptr.ExcptPtr
TOKEN.ExcptPtr
Request. ExcptPlr

184
184

0801H
0700H

Plr, ExcptPtr
Code,lnsIPtr. ExcptPtr

184

0802H

Exception Code. Parameter Number,
StackPtr.O.O.ExcptPtr

Class
M
A
I
L
B
0
X

A

L

NOTES:
All parameters are pushed onto the

asp stack

Each parameter is one word See Figure 3 for Call Sequence.

Explanation of the Symbols
JOB
TASK
REGION
MAILBOX
SEGMENT
TOKEN
Level
ExcptPtr
Message
Ptr
Seg

asp JOB SOT Token
asp TASK SOT Token
asp REGION SOT Token
asp MAILBOX SOT Token
asp SEGMENT SOT Token
Any SOT Token
Interrupt Level Number
POinter to Exception Code
Message Token
POinter to Code. Stack etc. Address
Value Loaded mto appropriate Segment Register
Value Parameter

6-17
AFN·02059B

80130/80130-2
iAPX 86/30, 88/30, 186/30, 188/30

Table 5. OSP Primitive Performance Examples
Primitive Execution Speed·
(microseconds)

Datatype' Class
JOB
TASK
SEGMENT
MAILBOX

CREATE JOB
CREATE TASK (no preemption)
CREATE SEGMENT
SEND MESSAGE (with task switch)
SEND MESSAGE (no task switch)
RECEIVE MESSAGE (task waiting)
RECEIVE MESSAGE (message waiting)
SEND CONTROL
RECEIVE CONTROL

REGION

2950
1360
700
475
265
540
260
170
205

's MHz iAPX 86/30 asp Configuation,

Table 6. Baud Rate Count Values (16X)
Baud
Rate

8 MHz Count
Value

5 MHz Count
Value

300
600
1200
2400
4800
9600

1667
833
417
208
104
52

1042
521
260
130
65
33

6-18
AFN,02059B

80130/80130·2
iAPX 86/30, 88/30, 186/30, 188/30

Table 7a. Mnemonic Codes for Unavoidable Exceptions
E$OK

Exception Code Value = 0
the operation was successful

E$TIME

Exception Code Value = 1
the specified time limit expired before completion of the operations was possible

E$MEM

Exception Code Value = 2
insufficient nucleus memory IS available to satisfy the request

E$BUSY

Exception Code Value - 3
specified region is currently busy

E$LlMIT

Exception Code Value = 4
attempted violation of a job, semaphore, or system limit

E$CONTEXT

Exception Code Value - 5
I
the primitove was called In an Illegal context (e.g., call to enable for an already enabled
interrupt)
,

E$EXIST

Exception Code Value - 6
a token argument does not currently refer to any object; note that the object could have
been deleted at any time by its owner

E$STATE

Exception Code Value

=

7

l

~~~~~~~~~____-ra~t_te_m~p~te_d~I~'II_eg~a_l~s~ta_t_e_t_ra~n_s_it_io_n__b_y_a_t_a_s_k______________________._________4
E$NOT$CONFIGURED

Exception Code Value = 8
the primitive called is not configured In this system
~E·~I~N~T~E~R~R~U~P~T~$~S~AT~U~R~AT~I~O~N~E~x-C-e-p~tio-n~C~0~d-e~V~al~u-e-=~9---------------------------------------·-­
The interrupt task on the requested level has reached Its user specified saturation pOint
for Interrupt service requests. No further interrupts will be allowed on the level until the
interrupt task executes a WAIT$INTERRUPT. (This error IS only returned, in line, to

~~~~~~~~~~~-+~ln-t-er-r~u~p-t-h=an-d~l-e~rs~.)~--~------------_______________________________ 1
E$INTERRUPT$OVERFLOW
Exception Code Value = 10
I

I

The interrupt task on the requested level preViously reached its saturation pOint and
caused an E$INTERRUPT$SATURATION condition. It subsequently executed an
ENABLE allowing further interrupts to come in and has received another SIG- I
NAL$INTERRUPTcall, bringing It over its speCified saturation pOint for Interrupt service
requests. (This error is only returned, in line, to interrupt handlers).
-.J
II

Table 7b. Mnemonic Codes for Avoidable Exceptions
E$ZERO$DIVIDE

Exception Code Value = 8000H
diVide by zero Interrupt occurred

E$OVERFLOW

Exception Code Value - 8001 H
oVEjrflow interrupt occurred

E$TYPE

Exception Code Value = 8002H
a token argument referred to an object tha was not of required type

E$BOUNDS

Exception Code Value = 8003H
an offset argument is out of segment bounds

E$PARAM

Exception Code Value = 8004H
a (non-token,non-offset) argument has an illegal value

E$BAD$CALL

Exception Code Value = 8005H
an entry code for which there is no corresponding primitive was passed

1
Ii

-------1

!

.----~.~

E$ARRAY$BOUNDS = 8006H Hardware or Language has detected an array overflow
E$NDP$ERROR

Exception Code Value = 8007H
an 8087 (Numeric data Processor) error has been detected; (the 8087 status Information !
is contained in a parameter to the exception handler)

J

6-19
AFN-02059B

intel'

80130/80130-2
iAPX 86/30,88/30,186/30,188/30

ABSOLUTE MAXIMUM RATINGS*

"NOTICE: Stresses above those listed under Absolute
Maximum Ratings may ca'use permanent damage to the
device, This is a stress rating only and functional operation
of the device at these or any other conditions above those
indicated in the operational sections of this specification
is not implied. Exposure to absolute maximum rating conditions for extended period may affect device reliability.

e

Ambient Temperature Under Bins ......... O°C to 700
Storage Temperature ................. -65°C to 150°C
Voltage on Any Pin With
Respect to Ground .................. - 1.0V to + 7V
Power Dissipation ........................... 1.0 Watts

D.C. CHARACTERISTICS
Symbol

Min.

Max.

Units

V'L
V,H

Input low Voltage

- 0.5

0.8

V

Input High Voltage

2.0

Output low Voltage

Vcc +.5
0.45

V

VOL
VOH

Output High Voltage

Test Conditions

V

IOL

V

=

2mA

Icc

Power Supply Current

200

mA

IOH = -400~A
TA = 25 C

lu

Input Leakage Current

10

~A

0< V,N < Vcc

ILR

IR Input Load Current

10
-300

~A

Y'N
Y'N

2.4

/J.A

ILO

Output leakage Current.

10

Vcu
VCHI

Clock Input Low

0.6

/J.A
V

C'N
C,O

Input Capacitance

10

pF

110 Capacitance

15

pF

Icu

Clock Input Leakage Current

10
150
10

/J.A

Clock Input High

A.C. CHARACTERISTICS

Symbol

-

(TA = DoC to 70°C, Vee = 4.5 to 5.5V)

Parameter

3.9

(TA = 0-70°C, Vcc

Parameter

=

=

~A
~A

Max.

-

125

ns

Units

lCLCH

ClK low Time

90

-

55

-

TC~CL

ClK High Time

69

2000

44

2000

ns

TSVCH
TCHSV
TSHCL

Status Active Setup Time

80

-

65

ns

Status Inactive Hold Time

10

-

-

10

-

ns

Status Inactive Setup Time

55

-

-

ns

TCLSH

Status Active Hold Time

10

-

55
10

-

ns

TASCH

Address Valid Setup Time

8

-

8

-

ns

-

10

ns

100

-

100

Read Data Valid Delay

-

140

105

ns

Read Data Hold Time

10

10

-

ns

Read Data to Floating

10

-

-

100

10

100

ns

-

85

-

65

ns

Chip Select Hold Time

0

Write Data Setup Time

80

TCHDH
TJLJH
TCLDV

Write Data Hold Time
IR low Time

10

TCLDH
TCLDX
TCLCA

Cascade Address Delay Time

20
0
60
10

Test Conditions

ns

-

10
20

.

80130-2

ClK Cycle Period

Address Hold Time

Vcc

Ground)

TCLCL

Chip Select Setup Time

=

Y'N = Vcc
Y'N = 2.5V
Y'N = OV

Min.

TCSCL
TCHCS
TDSCL

Vcc
0

.45 = Y'N

80130
Min,
Max.

TCLAH

=

V

4.5-5.5 Volt, Vss

200

=

ns
ns
ns
ns
ns
CL = 200 pE

6-20
AFN·02059B

80130/80130·2
iAPX 86/30, 88/30, 186/30, 188/30

A.C. CHARACTERISTICS (Continued)

Symbol

Min.

Parameter
Cascade Addre::,st: Hold Time

TCLCF
T,AVE

INTA Status t Acknowledge

TCHEH

Acknowledge Hold Time

TCSAK
TSACK

Chip Select to ACK

TAACK

Address to ACK

TCLOO

Timer Output Delay Time

TCLOO1

-

----- f----0

- -- - f-----.-----

Units

10

-

n~

80

-

80

ns

-

0

-

ns

-

110

ns

_.

110
140

- - - - f------

. _ - - f------

90
--200

Tlmer1 Output Delay Time

-

200

TJHIH

INT Output Delay

-

200

T'ACL

IR Input Set Up

-.

80130-2
Min.
Max.

-

10

._-

Status to ACK

80130
Max.

140
-----

90
-.
- --f-- 200
200
200
- f------

ns

Notes

----~----.

ns

-.-

-~.--

20

ns
ns
ns

CL - 100pF
CL 100pF

,.

---

ns

WAVEFORMS
A.C.
elK

$VSTICK
DELAY BAUD

______________ _____
~x

elK

IA

INT

!

i

I-~

TIRCl

----I

I~-

TJHIH

.. --

6-21
AFN 020598

80130/80130·2
iAPX 86/30, 88/30, 186/30, 188/30

WAVEFORMS
A.C.

.

n

T'

.. TCHCL

•

I

-'

ClK

~TCHSV"I
52. $1. S 0

\

~

~I
~A

VAUD

'k---J

r
ADDRESS VALID

:T

J

'fJ{f}IX
-I I. . . . . TCSAK

'\
-I

TAACK

FLOAT

I

-I

TCtDX

~

TCLDV

READ DATAVAlIQ

I

~

I~

FLOAT

~

\

TSACK
TCLeF

2ND IN TA CYCLE

-ADo

I

WRITE DATA VAllO

ADDRESS VALID

I
I~
--.-J

A

TDSCL_ _

REA o CYCLE

K

:;5

reseL

I

A

AC

I

S

I

AO'5-

j

I:SHC~

I

WRI TE CYCLE

AD

I

I

'T'

S"T

T'

TW

:cls~1

r---

I

T3

\

relel

lSVCH

BHE A
8HE, AD

I

T2

I

reLCH

I----FLOAT

CD CASCADE ADDRESS

FLOAT

®

POINTER

TIAVE

I
\

K

\

0

\

IR
TIAVE

@

~

/--T,CHEH

--t~

TCHEH

J

NOTES
1 CASCADE ADDRESS PRESENTED ON AD8, AD9 AND ADt 0 CORRESPONDING TO CASO CAS 1
AND CAS2 RESPECTIVELY AD1 1-AD1 5 UNES ARE ACTIVE AI\ID HAVE UNKNOWN VALUES AOO-AD7
ARE TRISTATE,
2 POINTER VALUE IS ACTIVE ONLY IF POINTER IS GENERATED FROM THE 80150 AND NOT FROM
EXTERNAL SLAVE UNIT
,
ACTIVE LOW ONLY WHEN POINTER DATA IS,BE'NG SUPPLIED BY THE 80150
LOW ONLY FOR LOCAL INTERRuPT

6-22
AFN-02059B

inter

80150/80150-2
JA\@WJA\OO©~ OOOIF@IRl~JA\ii'O@OO
iAPX 86/50, 88/SO, 186/50, 188150
CP/M-86* OPERATING SYSTEM PROCESSORS

• High·Performance Two·Chip Data
Processors Containing the Complete
CP/M·86 Operating System

• Memory Disk Makes Possible Diskless
CP/M·86 Systems

• Standard On·Chip BIOS (Basic
Input/Output System) Contains Drivers
for 8272A, 8274, 8255A, 8251A

• Bullt·ln Operating System Timers and
Interrupt Controller

• No License or Serialization Required

• 8086/80150/80150-2/8088/80186/80188

• BIOS Extensible with User· Supplied
Peripheral Drivers

Compatible At Up To 8 MHz Without

wait States

• User Intervention Points Allow Addition
of New System Commands
The Intel iAPX 86/50, 88/50; 186/50, and 188/50 are two-chip microprocessors offering general-purpose
CPU instructions combined with the CP/M-86 operating system. Respectively, they consist of the 8- and
16-bit software compatible 8086,8088,80186, and 80188 CPU plus the 80150 CP/M-86 operating system
extension.
CP/M-86 is a single-user operating system designed for computers based on the Intel iAPX 86, 88, 186,
and 188 microprocessors. The system allows full utilization of the one megabyte of memory available for
application programs. The 80150 stores CP/M-86 in its 16K bytes of on-chip memory. The 80150 will run
third-party applications software written to run under standard Digital Research CP/M-86.
The 80150 is implemented in N-Channel, depletion-load, silicon-gate technology (HMOS), and is housed
in a 40-pin package. Included on the 80150 are the CP/M-86 operating system, Version 1.1, plus hardware
support for eight interrupts, a system timer, a delay timer, and a baud rate generator.
*CPfM·86 Is a trademark of Digital Research, Inc.

,-------1
I
I
I

I
8284A
CLOCK

DRIVER
RDY

I
I
I

8088
OR

B086

INTERRUPT

PROGRAM
MEMORY

OATA
MEMORY

I

STATUS

:
I

I

BUS
INTERFACE

I~~--~----~~

I

INTERRUPT

STATUS

CS.LlR 1 - - - - - -....

I

80150

INTERRUPT

I

REQUESTS

_J~
BAUD RATE
TIMER

DELAY
TIMER

SYSTEM
TIMER

IAPX 88150, 88150

Figure 1_ iAPX 86150, 86150 Block Diagram
The following are trademarks of Intel Corporation and its affiliates and may be used only to identify Intel products. exp, CREDIT, 1,ICE.leS, 1m, Insite, Intel. INTEL, Intelevislon.lntelllnk,

~~.~~~~~~~: ~~::~~~~: ~~:7~sc:;~:~~~r:n~~~~;R~~~;S~~~;~~,~~~~~~1.:g~;u~:c:~;:~n~:;;~:~u~~:~~~~~~~~~~;~~ ::!.~~~b=:~rt~~~~~'s.

of Any Circuitry Other Than Circuitry Embodied

In

an Intel Product No Other Patent Licenses are implied ©INTEL CORPORATION, 1982.

6-23

SEPTEMBER 1982

ORDER NUMBER: 210705-4102

inter

80150/80150-2
iAPX 86150,88/50,186/50,188/50

! I
MAX

'::sE

V••

Vss

Vee

1.01.

1.015

1.01.

Vee
1.015

1.013

BHE

1.013

1.16/53

1.012

IR7

AD12

1.017/5'

1.011

IRS

AD11

1.18155

4010

IRS

AD10

1.19/56

ADS

IRO

AD9

AD8

IR3

ADa

MN/MX

1.07

IR2

1.07

iiii

ADS

IR1

ADS

iiQ{c'ffi

ADs

IRO

ADS

ROtGT1

AD<

'NT

AD.

LOCk

AD3

iii

AD3

52

BHE/S7 (HIGH)

1.02

51

AD2

Si

1.01

so

AD1

so

ADO

ACK

ADO

OSO

LlR

NMI

OSl

MEMCS
IOCS

INTR

SY$TICK

TEST

elK

DELAY

ClK

READY

V'S

BAUD

Vss

RESET

Figure 2. iAPX 86150, 88150 Pin Configuration
Table 1. 80150 Pin Description
Symbol
AD15-ADo

BFiE/S7

TYpe
I/O

I

Name and Function
Address Data: These pins constitute the time multiplexed memory address (T1) and
data (T2, T3, Tw, T4) bus. These lines are active HIGH. The address presented during
T1 of a bus cycle will be latched internally and interpreted as an 80150 internal
address if MEMCS or lacs is active for the invoked primitives. The 80150 pins float
whenever it is not chip selected, and drive these pins only during T2- T4 of a read
cycle and T1 of an INTA cycle.
Bus High Enable: The 80150 uses the SHE signal from the processor to determine
whether to respond with data on the upper or lower data pins, or both. The signal is
active LOW. SHE is latched by the 80150 on the trailing edge of ALE. It controls the
80150 output data as shown.
SHE
0
0
1
1

S2. Sl. So

I

Ao
0
1
0
1

Word on AD15-ADo
Upper byte on AD15 - ADs
Lower byte on AD7-ADo
Upper byte on AD7-ADo

Status: For the 80150, the status pins are !,!sed as inputs only. 80150encoding follows:
S2
0
0
0
0
1
1
1

s;0
0
1
1
0
0
1

So
0
1
0
1
0
1
X

INTA
lOAD
IOWA
Passive
Instruction fetch
MEMAD
Passive

6-24
AFN·01487A

inter

80150/80150·2
iAPX 86150,88/50,186/50,188/50

Table 1. 80150 Pin Description (Continued)
lYpe

Name and Function

CLK

I

Clock: The system clock provides the basic timing for the processor and bus controller.
It is asymmetric with a 33% duty cycle to provide optimized internal timing. The 80130
uses the system clock as an input to the SYSTICK and BAUD timers and to synchronize
operation with the host CPU

INT

0

Interrupt: INT is HIGH whenever a valid interrupt request is asserted. It is normally used
to interrupt the CPU by connecting it to INTR.

IR7 - IRo

I

Interrupt Requests: An interrupt request can be generated by raising an IR input (LOW
to HIGH) and holding it HIGH until it is acknowledged (Edge-Triggered Mode), or just by a
HIGH level on an IR input (Level-Triggered Mode).

ACK

0

Acknowledge: This line is LOW whenever an 80150 resource is being accessed. It is
also LOW during the first INTA cycle and second INTA cycle if the 80150 is supplying
the interrupt vector information. This signal can be used as a bus ready acknowledgement and/or bus transceiver control.

MEMCS

I

Memory Chip Select: This input must be driven LOW whell'l a kernel primitive is being
fetched by the CPU. AD13-ADo are used to select the instruction.

IOCS'

I

Input/Output Chip Select: When this input is low, during an lORD or IOWR cycle, the
80150's kernel primitives are acceSSing the appropriate peripheral function as specified by the following table:

Symbol

--

BHE

A3

A2

Al

Ao

0
X

X
X
0
0
1
1
1
1

X
X
1
0
0
0
1
1

X
X
X
X
0
1

X
1
X
0
0
0
0
0

X
1
1
1
1

1
LIR

0

Q
1

-

Passive
Passive
Passive
Interrupt Controller
Systick Timer
Delay Counter
Baud Rate Timer
Timer Control

Local Bus Interrupt Request: This signal is LOW when the interrupt request is for a
non-slave input or slave input programmed as being a local slave.

Vee

Power: Vee is the +5V supply pin.

VSS

Ground: VSS is the ground pin.

SYSTICK

0

System Clock Tick: Timer 0 Output.

DELAY

0

DELAY Timer: Output of timer 1.

BAUD

0

Baud Rate Generator: 8254 Mode 3 compatible output. Output of 80150 Timer 2.

The 80150 breaks new ground in operating system
software-on-silicon components. It is unique
because it is the first time that an industrystandard personal/small business computer
operating system is being put in silicon. The
80150 contains Digital Research's CP/M-86
operating system, which is designed for Intel's
line of software- and interface-colTJpatible iAPX
86, 88, 186, and 188 microprocessors. Since the
entire CP/M-86 operating system is contained on
the chip, it is now possible to design a diskless
computer that runs proven and commonly
available applications software. The 80150 is a

-

true operating system extension to the host
microprocessor, since it also integrates key
operating system-related peripheral functions
onto the chip.

MODULAR DESIGN
Based on a proven, modular design, the system includes the:
• CCP: Console C.ommand Processor
The CCP is the human interface to the
operating system and' performs decoding and
6-25
AFN·Ol«17A

inter

80150/80150-2

iAPX' 86150,88/50,186/50,188/50, t!.\@Wt!.\OO©~ O~IF@IR1~t!.\iiO@OO '

creased significantly. Since CP/M-86 is now
always in the system as a standard hardware
operating system, a properly functioning
system diskette is not required. CP/M-86 in
hardware can no longer be overwritten accidentally by a runaway program. System reliability
is enhanced by the decreased dependence on
floppy disks and fewer chips and interconnections required by the highly integrated 80150.

execution of user commands.
• BOOS: Basic Disk Operating System
The BOOS is the logical, invariant portion of the
operating system; it supports a named file
system with a maximum of 16 logical drives,
containing up to 8 megabytes each for a potential of 128 megabytes of on-line storage.
• BIOS: Basic Input/Output System '

4. The microcomputer system boots up CP/M-86
on power-on, rather than requiring the user to
go through a complicated boot sequence thus
lowering the user expertise required.
'

The physical, variant portion of the operating
system, the BIOS contains the systemdependent input/output device handlers.

CP/M* COMPATIBILITY

5. Diskless CP/M-based systems are now easy to
design. Since CP/M is already in the microcomputer hardware, there is no need for a disk drive
in the system if it is not desired. Without a disk
, drive, a system is more portable, simpler to use,
less costly, and more reliable.

CP/M-86 files are completely compatible with
CP/M for 8080- and 8085-based microcomputer
systems. This simplifies the conversion of software developed under CP/M to take full advantage
of iAPX 86, 88, 186, 188-based systems.
The user will notice no significant difference between CP/M and CP/M-86. Commands such as
olR, TYPE, REN, and ERA respond the same way,
in both systems.
CP/M-86 uses the iAPX 86, 88, 186, 188 registers
corresponding to 8080 registers for system call
and return parameters to further simplify software
transport. The 80150 allows application code and
data segments to overlap, making the mixture of
code and data that often appears in CP/M applications acceptable to the iAPX 86, 88, 186, 188.

6. The administrative costs associated with
distributing CP/M-86 are eliminated. Since
CP/M-86 is now resident on the 80150 in the
microcomputer system, there is no end-user
licensing required nor is there any serialization
requirement' for the 80150 (because no CP/M
diskette is used).
7. End-users will value having their CP/M
operating system resident in their computer
rather than on a diskette. They will no longer
have to back up the operating system or have a
diskette working properly to bring the system
up in CP/M, increasing their confidence in the
integrity, reliability, and usability of the system.

Unique Capabllitle,s of CP/M·86 in Silicon
1. CP/M-86 on-a-chipreduces software development required by the system designer. It can
change the implementation of the operating
system into the simple inclusion of the 80150
on the CPU board.

80150 FUNCTIONAL DESCRIPTION
The 80150 is a processor extension that is fully
compatible with the 8086, 8088, 80186, and 80188
microprocessors. When the 80150 is combined
with the microprocessor, the two-chip set is
called' an Operating System Processor and is
denoted as the iAPX 86/50, 88/50,186/50, or 188/50.
The basic system configuration is shown in
Figure 1. The 80150 connects"directly to the multiplexed address/data bu's and runs up to 8 MHz
without wait states.

'As described later, the designer can either
simply incorporate the Intel chip without the
need for writing even a single line of additional
code, or he can add additional device drivers by
writing only the small amount of additional
code required.
2. The 80150 is the most cost-effective way to imple~ent CP/M-86 in a microcomputer. The integration of CP/M-86 with, the 16K bytes of
system memory It requires, the two boot ROMS
required in a diskette-based CP/M-86, and, the
on-chip peripherals (interrupt controller and
timers) lead to savings in software, parts cost,
board space, and Interconnect wiring.

A. Hardware. Figure 3 is a functional diagram of
the 80150 itself. CP/M-86 is stored in the
16K-bytes of control store. The timers are compatible with the ~tandard 8254 timer. The inter- .
rupt controlier, with its eight programmable interrupt Inputs and one interrupt output, is
compatible with the 8259A Programmable Interrupt Controller. ,External slave 8259A inter-

3. The reliability of the microcomputer is in-

·CP/M is a registered trademark of Digital Research, Inc. '

6-26
AFN·OI487A,

inter

80150/80150·2
iAPX 86150,88/50,186/50, 188/50 l!.\W\V7l!.\OO©~ DOOIF@OOIMll!.\'ii'D@OO

,----------------------------------,I
I

1

OPERATING SYSTEM UNIT

I

00-7

I
I

:
I

I

r
I_

I

I '

PROGRAMMABLE

I

IN~~~~~PT

I

/ (
INTERRUPT INPUTS

I

I

I

CONTROL

j

STORE

'--------'i

I

~

:

r-------~:

I~

:

::

C··

:

,S

SYSTEM

DELAY

.>I

:

l~

I:

I "-

16

I

BAUD RATE

GENERATOR

1

ADDRESS,

I

DATA BUS

I
I
I
L

DELAY

I:LLI_~

~

BAUD RATE

- -- -- ---------1

r:-

I

rl--

.
DATA
BUFFER

I

TIMER

Ir--------~

/'--L."7'--N...1

SYSTEM

II-rV~--------~:

f------------- - - - - - - - --

!

~

TIMER:

r--r-hl,.-v""L;:~~===~:

_

:~------~

INTERRUPT OUT

(:=====~=J

&

BUS
INTERFACE
AND

ADDRESS

CONTROL.

LATCH

~
~
I

CLOCK

STATUS

4

I~,

~

BUS CONTAOL

~ LOCAL
CONTROL UNIT
__________________________________

I
I

~

INTERRUPT

([ijli)

Figure 3. 80150 Internal Block Diagram
rupt controllers can be cascaded with the
80150 to expand the total number of interrupts
to 57.

vided to format diskettes, transfer files between
devices (based on Digital Research's Peripheral
Interchange Program PIP), and alter and display
I/O device and file status (based on Digital
Research's STAT).
.

B. Software. Digital Research's version 1.1 of
CP/M·86 forms the basis of the 80150. CP/M
consists of three major parts: the Console
Command Processor (CCP), the Basic Disk
Operating System (BOOS), and the Basic In·
put/Output System (BIOS). Details on CP/M·86
are provided in Digital Research's CPIM-86
Operating System User's Guide and CPIM-86
Operating System System Guide.

Through User Intervention Points, the standard
CP/M-86 CCP.is enhanced to allow the user to add
new built-in commands to further customize a
CP/M-86 system.

BOOS - Basic Disk Operating System
Once the CCP has parsed a command, it sends it
to the BOOS, which performs system services
such as managing disk directories and flies.
Some of the standard BOOS functions provide:
Console Status
Console Input and Output
List Output
Select Drive
Set Track and Sector

CCP - Console Command Processor
The CCP provides all of the capabilities provided
by Digital Research's CCP. Bullt·in commands
have been expanded to include capabilities normally included as transient utilities on the Digital
Research CP/M-86 diskette: Commands are pro6-27

AFN-Ol467B

80150/80150-2

iAPX 86150,88/50,186/50,188/50

fered on the 80150 or substitute or add any additional device drivers of his choice.

ReadlWrite Sector
Load Program
The 8DOS in the 80150 provides the same functions as the standard Digital Research CP/M-86
BOOS.

BIOS - Basic Input/Output System
The BIOS contains the system-dependent I/O
drivers. The 80150 BIOS offers two fundamental
configuration options:

These two options negate the potential softwareon-silicon pitfall of inflexibility in system design.
The OEM can customize the end system as
desired.
The predefined configuration offers a choice
among several peripheral chip drivers Included on
the 80150. Drivers for the following chips are included in the 80150 BIOS:
8251A

1. A predefined configuration which supports
minimum cost CPIM~86 microcomputer
systems and which requires no operating
system development by the system designer.

8274

2. An OEM-configurable mode, where the
designer can choose among several drivers.of·

8272A

8255A

Universal Synchronous/
Asynchronous Receiver/Transmitter (USART)
Multi-Protocol Serial Controller
(MPSC)
Programmable Parallel Interface
(PPI)
Floppy Disk Controller

FLOPl DISK

808818086180186180188

CPU

8272A

80150

ADDRESS/DATA BUS

8251A

cONLLE

8255A

PRIL~

Figure 4. Predefined Configuration

6-28
AFN.()14678

80150/80150-2
iAPX 86150,88/50,186/50,188/50

Even In the predefined configuration, the system
designer (or end user, if the system designer
desires) may select parameters such as the baud
rates for the console and printer, and the floppy
disk size (standard 8" or 5Y4" mini-floppy) and
format (FM single density or MFM double density,
single-sided or double-sided).

peripheral chips, such as bubble memories or
more complex CRT controliers. These drivers
would be stored in memory external to the 80150
itself. By providing the configurability option, the
80150 is applicable to a far broader range of
designs that it would be with an inflexible BIOS.

Drivers for the 80150 on-chip timers and interrupt
controller are also included in the BIOS.

MEMORY ORGANIZATION
When using the predefined configuration of the
80150 BIOS, the 80150 must be placed in the top
16K of the address space of the microprocessor
(starting at location FCOOOH) so that the 80150
gains control when the microprocessor is reset.
Upon receipt of control, the 80150 writes a configuration block into the bottom of the micro,
processor's address space, which must be in
RAM. The 80150 uses the area after the interrupt vectors for system configuration information
and scratch-pad storage.

The 80150 takes advantage of the 80186 and 80188
on-chip peripherals in an iAPX 186/50 or 188/50
system. For example, the integrated DMA controlier is
used. Also fully utilized are the integrated memory chip
selects and I/O chip selects.
Since ali microcomputer configurations cannot
be anticipated, the OEM-configurable rhode
allows the system designer to use any set of
peripheral chips desired. This configuration is
shown in Figure 5.
By simply changing the jump addresses in a configuration table, the designer can also gain the
flexibility of adding custom BIOS drivers for other

When using the OEM-configurable mode of the
80150 BIOS, the 80150 is placed on any 16K boun-

FLOPPY DISK

I
8088/808~~~86/80188

f----

80150

OTHER
PERIPHERALS

8272A

ADDRESS/DATA BUS

8255A

8251A

I

ASYNCHRONOUS
COMMUNICATIONS,
CONSOLE,
SERIAL PRINTER

I

KEYBOARD,
PARALLEL PRINTER

8274

I

SYNCHRONOUS LINE,
SERIAL PRINTER,
CONSOLE

'Figure 5. OEM Configurable System
6-29
AFN-01467B

inter

80150/80150-2
iAPX 86150,88/50,186/50, 188/50

dary of memory except the highest (FCOOOH) or
lowest (OOOOOH). The user writes interface code (in
the form of a simple boot ROM) to Incorporate and
link additional features and changes into the
standard 80150 environment. The configuration
block may be located as desired in the address
space, and its size may vary widely depending on
the application.

&@W&IJ\I.J©~ OIJ\l.J!F@OOfi\1l&'ii'O@1J\I.J

a number of ways:
a.
b.
c.
d.
e.

telephone lines via a modem.
ROM-based software.
a ne.twork.
bubble memory based software.
low-cost cassettes.

TYPICAL SYSTEM CONFIGURATION

Memory Disk
A unique capability offered by the 80150 is the
Memory Disk. The Memory Disk consists of a
block of RAM whose size can be selected by the
designer. The Memory Disk is treated by the
aDOS as any standard floppy diSk, and is one of
the 16 disks that CPIM can address. Thus files can
be opened and closed, programs stored, and
statistics gathered on the amount of Memory Disk
space left.
The Memory Disk opens the possibility of a portable low-cost diskless microcomputer or network
station. Applications software can be provided in

Figure 6 shows the processing cluster of a
"typical" iAPX 86/50 or lAPX 88/50 OSP system.
Not shown are subsystems likely to vary with the
application. The configuration includes an 8086
(or 8088) operating in maximum mode, an 8284A
clock generator and an 8288 system controller.
Note that the 80150 is located on the CPU side of
any I~tches or transceivers.

Timers
The Timers are connected to the lower half of the
data bus and are addressed at even addresses.
The timers are read as two successive bytes,

ClK

0

f-

CONTROL

52

elK

S!!r--

~

8086

8288

~

.,.

SHE

~RESS/o~

SHE
AI'

8282

ADDRESS

1ADO

INT

-

LOCAL
AND
SYSTEM
RESOURCES

AO

...---015

...

"-

8286 ,

_

INT

52

~

VI-

AD~~

ClK

ADO

10CS

r:-r-

MEMes

DECODE

lOGIC

r~

"

b
,~

ill

.

L1R
IRO

r-

BAUD

DO

L-

1

A
INTERRUPT REQUESTS

IR7
$YSTICK

~

Figure 6. Typical OSP Configuration
6-30
AFN'()I467B

80150/80150-2

iAPX 86150,88/50,186/50,188/50

always LSB followed by MSB. The MSB is always
latched on a read operation and remains latched
until read. Timers are not gatable. An external
8254 Programmable Interval Timer may be added
to the system.

In addition to standard PIC functions, the 80150
PIC unit has an LlR output signal, which when low
indicates an interrupt acknowledge cycle. LlR=O
is provided to control the 8289 Bus Arbiter
SYSB/RE:SB pin. This will avoid the need of requesting the system bus to acknowledge local
bus non-slave interrupts. The user defines the interrupt system as part of the configuration.

Baud Rate Generator
The baud rate generator operates like an 8254
(square wave mode 3). Its output, BAUD, is initially
high and remains high until the Count Register is
loaded. The first falling edge of the clock after the
Count Register is loaded causes the transfer of
the internal counter to the Count Register. The
output stays high for N/2 [(N + 1)/2 if N is odd] and
then goes low for N/2 [(N - 1)/2 if N is odd]. On the
falling edge of the clock which signifies the final
count for the output in low state, the output
returns to high state and ,the Count Register is
transferred to the internal counter. The baud rates
can vary from 300 to 9600 baud.

INTERRUPT SEQUENCE
The interrupt sequence is as follows:
1. One or more of the interrupts is set by a lowto-high transition on edge-sensitive IR inputs
or by a high input on level-sensitive IR inputs.
2. The 80150 evaluates these requests, and
sends an INT to the CPU, if appropriate.
3. The CPU acknowledges the INT and responds
with an interrupt acknowledge cycle which is
encoded in S2 - SO,

The baud rate generator is located at OCH (12),
relative to the 16-byte boundary in the I/O space in
which the 80150 component is located. T~e timer
control word is located at relative address,
OEH(14). Timers are addressed with 10CS = O.
Timers 0 and 1 are assigned to use by the OSP,
and should not be altered by the user.

4. Upon receiving the first interrupt acknowledge
from the CPU, the highest-priority interrupt is
set by the 80150 and the corresponding edge
detect latch is reset. The 80150 does not drive
the address/data bus during this bus cycle but
does acknowledge the ~cle by making
ACK = 0 and sending the LlR value for the IR
input being acknowledged.
'

The 80150 timers are subset compatible with 8254
timers.

5. The CPU will then initiate a second interrupt
acknowledge cycle. During this cycle, the
80150 will supply the cascade address of the
interrupting input at T 1 on the bus and also
release an 8-bit pointer onto the bus if appropriate, where it is read by the CPU. If the
80150 does supply the pOinter, then ACK will
be low for the cycle. This cycle also has the
value LlR for the IR input being acknowledged.

Interrupt Controller
The Programmable Interrupt Controller (PIC), is
also an integral unit of the 80150. Its eight input
pins handle eigl'lt vectored priority interrupts. One
of these pins must be used for the SYSTICK time
function in timing waits, using an external connection as shown. During the 80150 initialization
and configuration sequence, each 80150 interrupt
pin is individually programmed as either level or
edge sensitive. External slave 8259A interrupt
controllers can be used to expand the total
number of interrupts to 57.

6. This completes the interrupt cycle. The ISR bit
remains set until an appropriate EXIT INTERRUPT primitive (EOI command) is called at the
end of the Interrupt Handler.

6-31
AFN·01467B

80150/80150·2
iAPX 86150,88/50,186/50,188/50

ABSOLUTE MAXIMUM RATINGS·

'NOTICE: Stresses above those listed under Absolute
Maximum Ratings may cause permanent damage to the
device. This is a stress rating only and functional operation
of the device at these or any other conditions above those
indicated in the operational sections of this specification
is not implied. Exposure to absolute maximum rating conditions for extended period may affect device reliability.

Ambient Temperature .Under Bias ........ o·e to 70·e
Storage Temperature ................. -65·C to 150·C
Voltage on Any Pin With
Respect to Ground .................. -1.0V to + 7V
Power Dissipation .......................... 1.0 Watts

D.C. CHARACTERISTICS
Symbol
VIL
VIH
VOL
VOH
lee
ILl
ILR
ILo
VCLi
VeHI
CIN
CIO
leu

Input Low Voltage
Input High Voltage
Output Low Voltage
Output High Voltage
Power Supply Current
Input Leakage Current
IR Input Load Current

TCLCL
,fCLCH
TCHCL
TSVCH
TCHSV
TSHCL
TCLSH
TASCH
TCLAH
TCSCL
TCHCS
TDSCL
TCHDH
TJWH '

TCLDV
TCLDH
TCLDX
TCLCA

Test Conditions

Min.

Max.

Units

- 0.5
2.0

0.8

V
V
V
V
mA

10L ~ 2mA
IOH ~ - 400!LA
TA = 25 C

!LA

0< VIN < Vee

~A

VIN = Vee
VIN = 0
.45 :5 VIN " Vec

Vee +.5
0.45

2.4
200
10
10
-300
10
0.6

Output Leakage Current
Clock Input LOW
Clock Input High
Input Capacitance
110 Capacitance
Clock Input Leakage Current

A.C. CHARACTERISTICS
Symbol

(TA = o·c to TO·C. Vee = 4.5 to 5.5V)

Parameter

!LA
!LA
V
V
pF
pF

3.9
'10
15
10
150
10

!LA
~A

!LA

..

VIN = Vee
VIN = 2.5V
VIN = OV

(TA = 0-70·C, Vee = 4.5-5,5 Volt, Vss = Ground)

Parameter

Mil!.

CLK Cycle Period
CLKLowTIme
CLK High Time

200
90
69

Status Active Setup Time
Status Inactive Hold Time
Status Inactive Setup Time
Status Active Hold Time
Apdress Valid Setup Time
Address Hold Time.
Chip Select Setup Time
Chip Select Hold Time
Write Data Setup Time
Wr~e Data Hold Time
IRLowTIme
Read Data Valid Delay
Read Data Hold Time
Read Data to Floating
cascade Address Dalay Time

80
10
55
10
8
10
20
0
80
10
100

10
10

-

80150
Max.

Min.

-

125

-

2000

55
44

2000

-

-

-

-

80150·2
Max.

-

65
10
55
10

-

-

-

8
10
20
0
60
10
100

140

-

105

1-

100

85

-

-

-

10
10
-

>

100
65

Units

Test Conditions

ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ils
ns
ns
ns
ns
ns
ns

CL - 200pF

6-32
AFN·01467B

80150/80150·2
iAPX 86150,88/50,186/50,188/50

inter

~@\Vl~OO©~ OOOIF@!raIMJ~'IT'O@OO

A.C. CHARACTERISTICS (Continued)
80150

Parameter

Symbol
TCLCF

Cascade Addresse Hold TIme

T\AVE

INTA Status t Acknowledge
Acknowledge Hold Time
Chip Select to ACK

TCHEH
TCSAK
TSACK
TAACK
TCLOO
TCLC01
TJHIH
T1RCL

80150-2

Min.

Max.

Min.

Max.

10

-

10

-

80

-

-

0

-

Status to ACK
Address to ACK
Timer Output Delay Time

-

Timerl Output Delay Time

-

200

-

INT Output Delay
IR Input Set Up

20

0

80

-

110

-

110

140

-

140

90
200

-

200

-

90

-

200

-

200
200

20

-

-

Units
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns

Notes

CL ~ 100pF
CL ~ 100pF

WAVEFORMS
A.C.
eLK

-- _____
____________
TelOO

SV$TICK.

DELAY, BAUD

I

~x~

CUI

IR

INT

6-33
. AFN.()1467B

inter

80150/80150·2
iA~X 86150,88/50, 18~/50,1,88/SO tA\1P>WtA\OO©rg OOOIP@OOIM]b.\'U'O@OO

WAVEFORMS

A.c.

TCHCL

.-

ClK

.~

S2. 11. SO

I

TelCH

\

I

12

T1

T4

T3
TW

I

TSVCH

I
TClS"

TCLCl

I

F~1-----

~

I

T4

,

I

'r
I

I

BHE. AI',-Ao VALID
BHE.AD

"TO

r:;s

TCSCl

I

B"T

S
,

AD

I

ADDRESS VALID

'{

'f..JI'f.NX

-I

f9

TDSCL

L

WRI TEC'tCLE

r

TCSAK

~

TAACK

I

READ CYCLE

J

K

I
I

WAITE DATA VALID

1--1
FLOAT

AODRESS VALID

TCLDX

~.,:r"1

rCLOV

REAO DATA VALID

I

I

~

2ND INTAC'tCLE

AJs

~

\

T5ACK

I

FlOAT

CD CASCADE ADDRESS

F9

FLOAT

1M

FLOAT

®

POINTER

TlAVE

®

I

--I

j-TCHEH

I
\

iTR
TIAVE

I

@
,

NOICS
1 CASCADE ADDRESS PRESENTED ON AD8, AD9 AND "D10 CORRESPONDING TO CABO, CAS1
AND CAS2 RESPECTIVELY ADl1-AD15 UNES ARE ACTIVE AND HAVE UNKNOWN YAUJE8. NJO-/lD7
ARE TRISTATE
2 POMER VALUE IS ACTIVE ONLY IF POINTER IS GENERATED FROM THE 80150 AND NOT FROM

EXTERNAL SLAVE UNIT
ACTIVE LOW ONLY WHEN POINTER DATA JS BaNG SUPPLIED BY THE 80150
LOW ONLV FOR LOCAL 1NTERRlPJ'

-.:fFTCHEH

User Library

7

inter
USER LIBRARY
The Insite User's Program Library Is an Intel-sponsored software library supporting Intel microcomputer
products. There are currently over 325 programs in the Library collection.
Insite offices are located in the U.S., Brussels, PariS, Germany, the U.K., and Japan, serving about 1,500
members worldwide.
As the Library collection is built on programs submitted by I ntel employees as well.as customers, we encourage
and welcome all program contributions. These contributionsllre essential to the growth and success of Insite.
In the following pages you will be introduced to more in-depth information about Inslte. Membership and
program submittal forms, including a complete program index listing, are also included for your convenience.

7-1

inter
INSITE'M USER'S PROGRAM LIBRARY
• Programs for 8048, 8051, 8080/8085,
and 808618087/8088 Processors

• Diskettes, ,Paper Tapes, and Listings
'
Available for Library Programs

• Accepted Program Submittals Entitle
You to a Free Membership or Free
Program Package

• Program Library Catalog Offering
Hundreds of Programs
• Updates of New Programs Sent During
SubSCription Period

• Worldwide Offices to Serve You

Insite, Intel's Software Index and Technology Exchange Library, is a varied collection of programs and
routines that have been written by users of Intel microcomputers, single-board computers, and develop·
ment systems. This expanding library of programs covers a broad range of software tools that includes
monitors, conversion routines, peripheral drivers, translators, math packages, and even games. As a
library member, you can acquire a copy of any program wlth'n the library on any of its available types of
media. By taking advantage of the availability of existing library programs, numerous hours of coding and
debugging time can be saved and routine or redundant programming operations can be eliminated. The
Insite Program Library also serves as a learning tool fbr individuals unfamiliar with assembly or high·level
languages associated with Intel's family of microcomputers.

Membership. Membership in Insite Is available on an annual basis. Intel customers may become
members through an accepted program contribution or paid membership fee.
Program Submittals. The Insite Library is built on program submittals contributed by users.
Customers are encouraged to submit their programs. (Details and forms are available through the Insite
Library.) For each accepted program, submittors will receive a choice of three free programs (A, e, C, or D ca,tegory),
or free membership with Insite for one year.
Program Library Service. PAPER TAPES, DISKETTES OR SOURCE LISTINGS are available for every
program in Insite. Diskettes are available on single or double density. Membership Is required to purchase
programs.
Inslte™ Program Library Catalog. Each member will be sent the Program Library Catalog consisting
of an abstract for each program indicating the function of the routine, required hardware and software,
and memory requirements.
Insite members will be updated with abstracts of new programs submitted to the Library during the sub·
scription period. For catalog and yearly subscription fee please refer to the Intel OEM Price List or contact
the nearest IlJsite or Intel Sales Office.
INSITE OFFICES ARE WORLDWIDE, WITH FIVE LOCATIONS TO SERVE YOU:
THE ORIENT
Intel Japan K.K.
5-6 Tohkohdai, Toyosato-cho,
Tsukuba·gun, Ibarakl, 300-26, Japan
ATTN: Inslte User's Program Library
Telephone: 029747·8511

NORTH AMERICA
Intel Corporation
3065 Bowers Avenue
Santa Clara, California 95051
ATTN: Inslte User's Program Library
Telephone: 408-987-8080

Intel Corporation S.A.R.L.
5 Place de la Balance
SlIIc 223
94528 Rungls Cedex, France
ATTN: Inslte User's Program Library
Telephone: 0687·22·21

EUROPE
Intel Semiconductor GmbH
Seldlstrasse 27
8000 Muenchen 2
West Germany
ATTN: Inslte User's Program Library
Telephone: 089-5389-1

7-2

Intel Corporation (U.K.) Ltd.
Pipers Way
Swlndon SN3 LRJ
Wiltshire, England
ATTN: Inslte User's Program Library
Telephone: 0793-488·388

inter
SUBMlnAL REQUIREMENTS
Programs submitted for Insite review must follow the guidelines listed below:
Programs must be written in a language capable of compilation and assembly by the currently-supported
version of an Intel standard compiler/assembler. Accepted languages are documented In the following
manuals available through Intel's Literature Department.
- BASIC-80 Reference Manual, Order No. 980758
- ICIS-COBOL Language Reference Manual, Order No. 980927
- FORTRAN-80 Programming Manual, Order No. 980481
- FORTRAN-86 User's Guide, Order No. 121570
- Pascal-80 User's Guide, Order No. 981015
- Pascal-86 User's Guide, Order No. 121539
- PUM-80 Programming Manual, Order No. 980268
- PUM-86 Programming Manual, Order No. 980466
- MCS-48 and UPI-41 A Assembly Language Manual, 'Order No. 980255
- MCS-86 Macro Assembly Language Reference Manual. Order No. 121703
- 8080/8085 Assembly Language Programming Manual, Order No. 980940
- 8086/8087/8088 Macro Assembly Language Reference Manual for 80185 Based Development System,
Order No. 121623
- 8086/8087/8088 Macro Assembly Language Reference Manual for 80/86 Based Development System,
Order No. 121703
- 8089 Assembly Language Reference Manual, Order No. 980255
- Microsoft BASIC Compiler Reference Manual, Order No. 121805
- Mi~rosoft BASIC-80 Reference Manual, Order No. 121806
- Microsoft BASIC Reference Book, Order No. 121857
- Microsoft FORTRAN-80 Reference Manual, Order No. 121798
- Microsoft FORTRAN-80 User's Manual, Order No. 121799
- Microsoft M/Sort Reference Manual, Order No. 121809
- Microsoft Utility Software Manual, Order No. 121797
A well-documented source code furnished on an ISIS-formatted 8" diskette, CP/M-formatted 8" diskette, PDS 5 W'
diskette, or ASCII-coded paper tape.
A source listing of the program must be included. This must be the output listing of a compilation or an
assembly. No consideration will be given to incomplete programs or duplications of programs already in
the Library.
A link and locate listing.
A demonstration program which assures the validity of the contributed program must be included. This
must show the accurate operation of the program.
A complete submittal form.
Licensed software or copyrighted material must be accompanied by a written release from the appropriate, authorized person.

7-3

,'ner
INSllET- USER'S PROGRAM LIBRARY
SUBMITTAL FORM
Processor

0 8048 08051 0 808018085 o 808818087/8088 0 Other
Indicate the MDS series model the program was created on by checking the appropriate box, and Identify other MDS serles'~odels the program·may be compatible with.

.

Program
Title

,

Function

Required
Hardware

Required
Software
j

Input
Parameters

Output
Results

,

Regl.t.... Modlfl.d:

Prog...mm.r:

RAM Required:

Compeny:

ROM Required:

Addre..:

Maximum Subroutine N••tlnll Lev.l:

City:

A...mbl.rtComp".r Und:

Stat.:
T_phone:

Progremmlng Leng".",:

ACKNOWLEDGEMENT AND AGREEMENT
To tho boot of my knowledge, I hove tho right to contributothlo program motorial without breaching any obligation concomlng nondlacl08u",
of proprietary or confidential Information of other persons or organlzatlon~. I am contributing this program material on a nonconfldentlal
nonobligatory boolsto tho Inolto Uoofo Llb",ry lor InclU810n In It. prog,..m library, and I agree that tho Library may u.o, duplicate,. modlly,
publish. and sell the program material without obligation or liability of any kind. The Inslte Unr's Library may publish my name and address, as
the contributor, to facilitate user Inqulrl.. pertaining to thle program material.
Signature

Dato

7-4

LIST OF PROGRAMS
ALPHABETICAL, BY APPLICATION
Program Title

Order No.

ADD AND SUBTRACT: BCD Numbers ...............................................
ASSEMBLER: 8080 MACRO, V4.1 ..................................................
ASSEMBLER, CROSS: 8008 Code. . . . .. . . . . . . . .. .. . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . ..
ASSEMBLER, CROSS: 8048 On DG Nova .................................... . . . . . ..
ASSEMBLER, CROSS: DEC PDP-8 or PDP-11 .......................................
ASSEMBLER, CROSS: DEC PDP-11 ................................................
ASSEMBLER, CROSS: DEC PDP-11 ................................................
ASSEMBLER, CROSS: MCS-48 ....................................................
ASSEMBLER, ON-LINE . . . . . . . . . . . . . . . . . . . . . .. .. . . . .. . . . . . . . . . . . .. . . . . . .. . . . .. . . . ..

CB11
BF4
BC5
BC6
BC2
BC3
BC4
BC1
BF5

BAUD RATE: Modify ...................................... . . . . . . .. . . . . . .. . . . .. . . . ..
BAUD RATE: Modify Under CP/M ...................................................
BIT HANDLING: 8048 .............................................................
BRANCH: MCS-48 Branch Table Routine ............................................
BREAKPOINT: 8089 ...............................................................

BG25
BG26
BG35
BG37
BD15

CALCULATE: CHECKSUM .........................................................
CALCULATE: Sine or Cosine Routine ................................................
CALCULATE: Square Root .........................................................
CALCULATION: Least Squares Quadratic Fitting ....... : ..............................
CALCULATION: Natural Logarithm ............................... '.... , ..............
CHANGE: Load Addresses, iAPX-86/88 Object File .................................. ,
CHECKBOOK ...... ,.............................................................
CLOCK: 8748 Clock and LCD Tachometer ...........................................
CLOCK: MICRO/SYS MC1460 Real Time Clock Board Utilities .........................
CLOCK: Real Time ................................................................
COMMANDS: Meta-Programs ......................................................
COMMUNICATION: DEC PDP-11 to Intellec Development System ......................
COMMUNICATION: HP Calculator with Intellec Development System-800 ................
COMMUNICATION: Intellec Development System 220/230 with SDK-85, V1.0 ............
COMMUNICATION: Intellec Model 220/230 to-Timesharing Computer ...................
COMMUNICATION: Intellec Model 800 to/from DEC PDP-10 ..... _................ , ....
COMMUNICATION: Intellec Development System to/from DEC .........................
COMMUNICATION: Intellec Development System to/from Tektronix 8001 ................
COMMUNICATION: Intellec Development System Series-II with Minicomputer ............
COMMUNICATION: Intellec Development System Series-II with PROMPT-48 .............
COMMUNICATION: Intellec Development System to PROMPT-48 or -80 .................
COMMUNICATION: Intellec System to Serial Output Device .............. , .............
COMMUNICATION: Intel DevelOpment System to/from Hewlett-Packard Computer ........
COMMUNICATION: Intel Development System to/from VAX 11 ............. '...... : .....
COMMUNICATION: Intel MDS-Data I/O Programmer Interface ..........................
COMMUNICATION: NDS-II to/from iPDS Running CP/M-80 ." .... , ... , ... , .... , ... , ...
COMMUNICATION: Tektronix DAS 9100 Digital Analysis System
to Intel Development System ... " .. - ... "., .... , ... , .. , .. , ..... , ... ,., ........ , ..
COMMUNICATION: Two Intellec Series-II Development Systems ....... , .. , .. , .. , ...... ,
COMMUNICATION: Xerox File Transfer Facility ............. ,."." ...... , ......... ".
COMPARE: 8048 or 8049 ROMS .. , ... , ......... , ...... , .. , , ... , .... , ..... , . . . . . . . ..
COMPARE: Files ... _.... , . , .. , ...... , .... , ... , , .. , , .. , .. , , . , ....... , . . . . . . . . . . . . ..
COMPILER: Pascal ...... , , ... , .. , ... , ..... , , . , .... , , .. , ......... , , .. , .... , .. , . , . ..
CONSOLE ACCESS: Input and Output for Series III ... , .... , ......... , ..... ,.,........
CONTROLLER: 8278 Keyboard/Display ... , . , . , ....... , ... , .... , . , ...... , . , ........ "
CONTROLLER: 8292 on 8741A ., .. " .. , ... , .......... , ......... " ................ ,.
CONTROLLER: Dual Floppy Disk Drive, .. , . , . , .. , .. , ............ , ...... , .. , ... , , .. "
CONTROLLER: Firmware for iSBC-589 , .. ,., .... , .................... , .. , ...... , .. ,.

BD16
CB13
CB5
CB3
CB4
BG42
BA6
BG30
BG31
BG29
BG38
BB16
AD1
AD4
AD6
AD8
AD10
AD11
AD9
AD2
AD3
AD14
AD15
AD13
BE8
AD17

7-5

AD12
AD7
AD16
AE11
BD11
BF1
BD36
AC3
AC4
AB11
AC7

inter
Program ntle

Order No.

CONTROLLER: PID Control Loops ..................................................
CONTROLLER: PROMPT-48 Interactive ....... '. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
CONTROLLER: UP1-41 8-Digit LED Display ..........................................
CONTROLLER: UP1-41A142 Digital Cassette, V2.5 ......................... , ...........
CONVERSION: ASCII-Decimal to/from FPAL Number .................................
CONVERSION: ASCII Floating Point Numbers to AM9711 and
Intel 8231 4 Byte FP Fomiat .....................................................
CONVERSION: ASCII to Floating Point ..............................................
CONVERSION: ASCII to/from EBCDIC ..............................................
CONVERSION: ASCII to/from Floating Point .........................................
CONVERSION: ASCII ~ode to/from Intel Floating Point ................................
CONVERSION: Binary to BCD ............................ . . . . . . . . . . . . . . . . . . . . . . . . ..
CONVERSION: Binary to BCD ......................................................
CONVERSION: Convert/Format/Print ................................................
CONVERSION: Decimal to/from Floating Point .......................................
CONVERSION: FORTRAN or FPAL Floating Point to/from Decimal .....................
CONVERSION: Hex to ASCII .......................................................
CONVERSION: ISIS-II to/from CP/M ......................•.........................
CONVERSION: MCON-6800 Source Code to 8086/88 Source Code .....................
CONVERSION: ZCON-Z80 to 8086/88 Source Converter ..............................
CONVERT: Doubleword to ASCII String ......................................... ',' . ..
CONVERT: Fixed Point to Floating Point .............................................
COPY: Disk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
COPY: Diskette ...................................................................
COPY: Diskette ...................................................................
COPY: iPDS CP/M-80 Diskette. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
COPY: PDP-11 Disk File to Intel ISIS-II Disk File ......................................
COUNT: ICE-80 Machine Cycles ............ , .......................................
COUNT: Program Usage ...........................................................
CREDIT: Tutorial ..................................................................
CREDIT: Used on Modified Hazeltine 1500 ...........................................

AB20
AB2
AC1
AC5
BB13

DEBUG: CAT.88 (iRMX88 Task Debugger) ...........................................
DEMO: 208 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
DEMO: iAPX-88 ...................................................................
DEMO: iRMX 86 Multitasking spectrum Analysis ......................................
DEMO SOFTWARE: 8275 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
DEVICE, I/O: UPI-41 A Combination .................................................
DIAGNOSTIC: S080 110 .. , ................................................. .' . . . . . ..
DIAGNOSTIC: Microcomputer Development System 230 ...............................
DISASM ........ " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
DISASSEMBLER: 8048 Object Code ..............................................•.
DISASSEMBLER: 8080 Code .......................................................
DISASSEMBLER: 8080 Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
DISASSEMBLER: 8080 Object Code .... '............................................
DISASSEMBLER: ICE-SO Ver 2.1 ...................................................
DISASSEMBLER: ISIS-II Object Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
DIVISION: 32-Bit by 16-Bit .........................................................
DOWNLOAD: iPDS to Serial Port ..................................... , .............
DRIVER: 8048 Seven-Segment Display ..............................................
DRIVER: 8085 Serial 110 ...........................................•...............
DRIVER: Audio Cassette Recorder ..................................................
DRIVER: Bios and Boot Program for CP/M-80 ........................................
DRIVER: Cassette Operating System ................................................
DRIVER: Dumb Terminal Simulator ..................................................
DRIV,ER: Intellec Development System Series-II as Dumb Terminal ............... : . . . . ..
DRIVER: iPDS Dumb Terminal .....................................•................

BD34
AE7
AE13
AE8
AE6
AC2
AE2
AE9
BD6
BD8
BD1
BD4
BD2,
BD3
BD5
CB12
AD18
AB5
AB1
AB6
AB22
AB7
AB10
AB9
AB23

7-6

~~5

BB14
BB1
BB11
BB12
BB6
BB7
BB8
BB9
BB10
BB2
BB18
BB3
BB4
BB22
BB21
BG28
BG27
B~43

BG45
BB15
BD10
BG40
E6
BG33

Program Title

Order No.

DRIVER: iSBC 86/12 Real Time Clock Driver 00000000000000000000000000000000000000000
DRIVER: PROM Programmer 0000000000000000000000000000000000000000000000000000000
DRIVER: RMX-80, for the iSBC 254 Bubble Memory with 80/10 Board 0000000000000000000
DRIVER: RMX-80, for the iSBC 254 Bubble Memory with 80/20/30 Board 0000000000000000
DRIVER: RMX-86, for the iSBC 254 Bubble Memory Board 00000000000000000000000000000
DRIVER: RMX-80 for iSBC 534 0000 0000000000000 "0 0000000000000000000000000000000000
DRIVER: RMX-80 for SBC 215 Controller Board 00000000000000000000000000000000000000
DRIVER: RMX-86, for the iPAB-128, iPAB-256, iSBX-251 Bubble Memory Products 0000000
DRIVER: RMX-86, High Performance Driver for iSBC-550
Ethemet CommunicatiOnS Controller 000000000000000000000000000000000000000000000000
DRIVER: SYCOR 135 Cassette Operating System 0' 0000000000000000000000000000000000
DRIVER: Tektronix 4010 Graphic Screen 00000000000000000000000000• 000000000000000000
DRIVER: Tol. Omni 810 Lineprinter 00000000000000000000000000000000000.00000000000000
DRIVER: USART for iSBC-86/XX 0000000000000000000000000000000000000000000• 00000000
DUMP: Diskette 0000000000000000000000000000000000000000000000000000000000000000000
DUMP: Diskette File 000000000000000000000000000000000000000000000000000000000000000
DUMP: Diskette File 000000000000000000000000000000000000000000000000000000000000000
DUMP: iAPX-86/88 Absolute Object File 000000000000000000000000000000000000000000000
DUMP: iSBC 86/12 Memory 00000000000000000000000000000000000000000000000000000000
DUMP: Symbol Table 00000000000000000000000000000000000000000000000000000000000000

AB19
BE7
AB14
AB15
AB16
AB12
AB13
ABH

EDIT: Disk 00000000000000000000000000000000000000... 0... 00000. 000. 0000000. 000000000
EDIT: Hex File 00000000000000000000000000000000000000000000000000000000000000000000
EDIT: Inspect and Change File 000000000000000000000000000000000000000000000000000000
EDIT: Text 000000000000000000000000000000000000000000000000000000000000000000000000
EDITOR: Text, Intel X111 00000000000000000000000000000000000000000000000000000000000
EXECUTIVE: Real Time 0000000000000000000000000000000000000. 0000000000000000000000
EXERCISE: Data Translation MULTIBUS Analog I/O Boards 0000000000000000000000000000

BD33
BD31
BD32
BA4
BA3
AA8
BE6

AB 18
AB8
AB3
AB4
AB21
BD27
BD28
BD26
BD30
BD29
BD21

FIFO 00000000000000000000000000000.0000000000000000000000 0000000000000000000000000 BG13
FIFO 0000000000000000000000000000000000000000000000000000 000000000000000000000000. BG12
GAME: Bandit 00000000000000000000000000000.0000000000000000000000 o. 0000000.000000 '03
GAME: Black Box . 00000000000000000000. 00000000000000000000.. 00000. 000000000000000 015
GAME: Breakout . 000000000.00000000000000000000000000000. 0000000000000000000000000 013
GAME: Craps 0000000. 0000000... 000000000000000000000000000000000000000000000000000 05
GAME: Darts 00000000000000. 00. 0000. 00. 00000. 00. 000000000000000000000. 0000. 0000000 06
GAME: Fruit Machine 000000000000. 00000. 00000. 00000000000. 0000000000000000000000000 04
GAME: Hangman 00000000000.. 00000000. 0000000000000000000000000000000000000000000 07
GAME: Mastermind 0000000000000. 000000000000000000000000. 0000000000000000000000000 09
GAME: Maze 0000. 0000000000000000000000000000000000000. 0.00000. 000000000000000000 02
GAME: Maze 000000000000000000. 000000000000000000000000000000• 0000000000000000• 00 01
GAME: Othello 000000000. 0000000000000000000000000000000000000• 00000000000000: 00• 00 010
GAME: Poker 00000000000000.0000000000000000000000000000. 000000000000000000000000 I 014
GAME: Slalom, V104 0000000000000000000000000000000000000000000000000000000• 00• 0000 08
GAME: Tiny Chess 86 0000000000000000000000000000000000000000000000000000 000000000 012
GENERATE: 16-Bit Random Number 00000000000000000000.0000000000.000000000000. 000 CB2
GENERATE: Calendar 00000. 0000000000000000. 00000000000000000000000000000000000000 BA8
GENERATE: CCITT Cyclic Redundancy Check 000. 0000000• 0000000000000000000000000o. BD37
GENERATE: Disk Directory Library 00000000000000000000000000000000000000000000.0000 0 BA15
GENERATE: Fast Generation of IBM Bi-Sync CRC16 0000000000000000000000000000000000 BD20
GENERATE: Graph 000000000000000000000000000000000000000000• 000000000000000000000 CB7
GENERATE: High and Low Bytes from 8086 Hex File 00000.00.000000000000000000000000 BD35
GENERATE: Histogram o. 00000000000000000000000000000• 00000000• 0000000000000000000 CB8
GENERATE: IBM Bi-Sync CRC16 0000000000000000000000.: 0000000o. 0.000000.000000000 BD19
GENERATE: Music for SDK-85 0000000000000000000000000000000000• 000000000000000000 011
GENERATE: Output Signal . 0000000000000000. 000000000000000000000000000000000000000 BG5
7-7

Program Title

Order No.

GENERATE: PLIM Cross Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. B025
GENERATE: PROM Checksum Calculation ........................................... B018
GENERATE: Public Symbol Cross Reference ......................................... B038
GENERATE: 'Random Number ...................................................... COO
GENER~TE: Software Documentation ............................................... BA14
GENERATE: 'Stochastic Variates and Histograms ........ , . . . . . . . . . . . . . . . . . . . . . . . . . . . .. CA23
GENERATE: Symbol List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. B024
GENERATE: Symbol Table for BASIC-80 . : .......................................•. " 8023
GENERATE: Tabs .................................................................. BA16
GENERATE: X-V Graph ............................................................ CB9
HANDLER: RMXl80 Minimal Terminal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. BE2
INCREMENT: Program Counter .....................................................
INITIALIZE: Baud Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
INITIALIZE: Baud Rate .................. " ........ , ................................
INTERPRETER: 8086 Tiny BASIC ..................................................
INTERPRETER: Interactive 8087 Instruction Interpreter .............................. ,.
INTERPRETER: LISP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
INTERPRETER: LLL BASIC-II ......................................................
INTERPRETER: LLUChernack BASIC ...............................................
INTERPRETER: MCS-51 Tiny BASIC, V2.2 ..........................................
INTERPRETER: PILOT-80 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
INTERPRETER: RMX/80 Command Line .............................................
INTERPRETER: Single-Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..

B039
BG24
BG23
BF9
AA12
BF3
BF7
BF8
BF10
BF2
BG4
BD7

LINKAGE: Series III i8087 Linkage Modules ..........................................
LIST: Directory, ISIS Diskette/NOS Disk ................. , ............................
LIST: Diskette Directory ......................................................'.. " ..
LIST: File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . ..
LIST: File .............................................. , ...........................
LIST: File Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
LIST: PL/M Compiler Errors ........................................................
L1ST/P.RINT/TYPE , ........................... , ....................................
LIST: Save Error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
LOAD/SAVE: RAM ................................................................

BG36
8G18
BG17
BG15
BG16
B012
BD13
BG14
B014
BG1

MACROS: Block Structures .........................................................
MACROS: Block Structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
MAIL 'LIST ......................................... '. . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
MAIL LIST ............................. : ..........................................
MAIL LISTS FOR BASIC 80 ........................................................
MATH PACKAGE 8231 ..............................................................
MATH PACKAGE 8051 .............................................................
MATH PACKAGE: 8080/8085 Fundamental Support Package ...........................
MATH PACKAGE: 8231 Arithmetic Processing Unit ....................................
MATH PACKAGE: Arithmetic Functions ..............................................
MATH PACKAGE: Arithmetic Functions for MCS-48 ...................................
MATH PACKAGE: Double Precision Floating Point ....................................
MATH PACKAGE: Double Precision Integer ...........................................
MATH PACKAGE: Fixed and Floating Point ...........................................
MATH PACKAGE: Floating Point, ....................................................
MATH PACKAGE:,Floating Point ....................................................
MATH PACKAGE: Floating Point ....................................................
MATH PACKAGE: Floating Point ....................................................
MATH PACKAGE: Floating Point Library/8086 .........................................
MATH PACKAGE: Floating Point Utilities for FPAL.L1B .................................

BG10
BG11
BA9
BA11
BA 12
CA17
CA18
CA20
CA16
CA11
CA22
CA12
CA4
CA5
CA2
CA1
CA7
CA6
CA13
CA8

7-8

Program Title

Order No.

MATH PACKAGE: HigH Speed Binary Math Package for 8031/8051 .....................
MATH PACKAGE: Multiple Precision Arithmetic/8086 ..................................
MATH PACKAGE: Multiply/Divide ....................................................
MATH PACKAGE: Optimized Floating Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
MATH PACKAGE: Optimized Floating Point ...........................................
MATH PACKAGE: PLIM Multiple Precision ...........................................
MATH PACKAGE: 'Recursive Computation of Mean and Standard Deviation .............•
MERGE: Mailing List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. . .. . . .. . . ...
MONITOR: Intellec 8/MOD80 .......................................................
MONITOR: Bubble Memory Development Software for Intel BPK-72 .....................
MONITOR: HSE-49 Expansion Monitor.. .. . .. . .. .. .. .. . . .. . . .. .. . .. . . .. .. . .. . .. .. ....
MONITOR: Intellec Development System, V2.0 .......................................
MONITOR: iSBC 250 1-MegabitBubble Memory ......................................
MONITOR: iSBC 254 Bubble Memory Board Monitor ..................................
MONITOR: iSBC 544 ..............................................................
MONITOR: iSBC 80/05 or 80/04 ....................................................
MONITOR: iSBC 80/10 .............................................................
MONITOR: iSBC 80/10 or 80/10A ...................................................
MONITOR: iSBC 80/20 or 80/20-4 . .. .. . .. .. . .. .. .. .. . .. .. .. .. . . . . . . .. .. .. . .. .. .. . . ..
MONITOR: iSBC 80/24 .. .. .. .. . . . .. . .. . .. . .. .. .. .. .. .. .. .. .. . .. .. . .. . . .. . .. .. .. .. ..
MONITOR: ISBC BO/30 .............................................................
MONITOR: iSBC 86/12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
MONITOR: SDK-85, V2.0 .................. , .......... , .... , .................. ,...
MONITOR: SDK-86 Keypad ................................. , ... , ........... ,......
MONITOR: SDK-85 Serial, V1.1 .............................. , ...... , ............. ,.
MONITOR: Super Monitor 80 .................... , ... , .......................... ,...
MONITOR: Super Monitor 86 ........................... , ............. , ......... , ...
MONITOR: Super Monitor 86 for the iSBC 88/45 ......................................
MORSE CODE TUTOR V2.0 .......................... , ........................ ,...
MULTIPLICATION: 8748 BCD ........................................ , ..............
MULTIPLICATION: 4O-Bit ...........................................................

CA21
CA 14
CA15
CA9
CA10
CA3
CA19
BA 10
AA 1
AA10
AA 13
AA6
AA9
AA 11
AA7
AA14
AA15
AA16
AA 17
AA 18
AA19

PRINT: Cover Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
PRINT: Discounted Cash Flow ......................................................
PRINT: File .......................................................................
PRINT: Files ......................................................................
PRINT: Files ....................................................... " . . . . . . . . . . . . ..
PRINT: High Speed Utility ..........................................................
PROCEDURE: Pascal 86 Screen/Cursor Control ......................................
PROCEDURE: PLIM DOCASE .....................................................
PROCEDURES: PLIM Output ......................................................
PROCEDURES: PLIM Utilities ......................................................
PROCESSOR: Macro . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
PROCESSOR: Text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
PROGRAM: 8741A as iSBC 941 .....................................................
PROGRAMMER: EPROM-8755A .. .. .. .. . .. . . .. .. . .. .. .. . .. .. . .. . .. .. .. . .. . . .. .. .. ..
PROGRAMMER: EPROMS 2708/16132 ..............................................

BA 1
BA7
BA 17
BA18
BA19
BG32
BG34
BG9
BG8
BG7
BF6
BA5
AC6
BE5
BE4

READ: Paper Tape to SDK-85 RAM .................................................
RECEIVE ........................................................................
RECOVER: Diskette ...............................................................
RECOVERY: Diskette File ..........................................................
RELOCATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
REPORT: Status of Exported Job ...................................................

BE3
AD5
BG2
BA2
BG41
BG44

AA2

AA3
AA5
AA4
AA20
AA21
AA22
E3
CB10
CB14

SIMULATE: iACX-96 .,. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. BD40
SIMULATOR: 8048/49 Code, V1.3 ................................................... BB19
7-9

inter
Program Title

'i'

Order No.

SIMULATOR: 8048/49 Simulator ....................................................
SORT: BUbble Sort and Binary Search Routines : ........ : .... .' .. :....................
SORT: Disk Directory ............................................... : ........ : .....
SORT: Disk Directory .................................................. '. . . . . . . . . . ..
SORT: Diskette File ......................................................... ".......
SORT: General ...................................... '..................... '~ : . . . . . ..
SORT: Public Symbols ................................................' ............. '
SORT: Symbol Table from an Absolute File ...........................................
SOURCE FILES: iAPX-86/SS System Workshop Summary and Review ..................
SOURCE FILES: MCS-SO/S5 System Workshop Summary and Review ..................
SPELL .................... ; ............ , .........................................
SUBMIT: ISIS Command String ............................... :.....................

BB20
BG22
BG19
BG20
BG21 ,
BA13
BD39
BD22
E1
E2
BA21
BG6

TEST: 80S0 CPU .......................................................... : .......
TEST: iSBC SO/10 I/O Ports ........'................................................
TEST: Error Correcting Code .......................................................
TEST: MCS-4S Family CPU ........................................................
TEST: Memory .....................................................................
TEST: Memory ....................................................................
TEST: PROM/ROM Checksum Self-Test. . . . . . . . . . . .. . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . ..
THERMOMETER: Thermistor Controlled .............................................
TRACE: ICE-SO ..................................... :.............................
TRANSFORM:' Discrete Fourier .................................................. ; ..

AE1
AE3
AE12
AE10
AE5
AE4
BD17
BE1
BD9
CB1

UTILITIES: Circular Lists ...........................................................
UTILITIES: Menu ............................ : .....................................
UTILI'TIES: RT11 Diskette Utility for Intellec SOO .......................................
UTILITIES: Talk ...................................................................

BG3
E5
B817
E4

WORD PROCESSOR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. BA20

7-10

Appendix

A

INTEL SOFTWARE STANDARDS
Intel's software is built on standards which facilitate software portability and provide an open system for
software.
Intel's soft.ware utilizes the emerging standards in graphics, networking, database and portable operating
system interfaces. This base system software provides a mapping from architectural and operating system
dependencies to a standard interface. High-level applications are built from the standard interfaces and
remain portable across multiple configurations and operating systems. Figure 1 illustrates the open software
model relationship.

OPEN SOFTWARE MODEL
Applications
8ase System
Software
Operating
Systems
Microprocessors

Languages
R&L
UDI

Word
Processing

I

Language
Run-Time

Mail &
Document
Filling

Spread
Sheet

t

LAN

J

RMX, Xenix
CPIM, MS-DOS

Business
Graphics
Graphics

Project
Management

1

Database

86,186,286,386

Figure 1

Intel has supported its fundamental software across multiple operating systems through the UDI operating
system interface. By writing software to use ttTe UDI interface which provides memory management, 1/0
routines, and exception handling-Intel is able to port high level languages, language run-time, and
fundamental software to a new release or new operating system tn minimal time. Thus Intel's software is
operating system independent.
Intel's local area netwo(king products use the IEEE 802.3 CSMAlCD Access Method and physical layer. The
work for this standard was done jointly by Intel, DEC, and Xerox and is commonly known as the Ethernet
protocol. The transport layer uses the proposed ISO transport protocol specification.

A-1

Intel supports the ANSI graphios standardization effort and will offer produots whioh utilize these standards.
The Virtual Devioe Interfaoe (VOl) standard developed by the ANSI X3H3 oommittee is intended to provide a
single standard whioh supports mulitple graphios devioes with the same set of graphios funotions. A
oompanion standard Virtual Devioe Metafile (VDM) will give a means of storing or transmitting piotures as
streams of VOl funotions. A third graphics standard being supported by Intel is the North American Presentation Level Protoool Syntax (NAPLPS). NAPL!;,S is suited for raster-soan display (both CRT and hardoopy) and
is ourrently in final approval stage by ANSI.
intel's Pasoal-and FORTRAN adhere to the ANSI standard and support optional extensions. All Intel
languages (ASM-86, PUM, FORTRAN, and Pasoal) use oommon data types and parameter passing
conventions to allow inter-language calis The real number data types in these languages utilize the IEEE
real math standard and use the numerics coprocessor or an emulator to support the real math operations
and funotions. The objeot module formats (OMF) are oommonly used by all of the 86 language produots as
well as many language produots supplied by independent software vendors.

INTEL SOFTWARE STANDARDS DOCUMENTS
Standard

Document

UDI

Run-Time Support Manual For iAPX 86, 88 Applioations, Appendix A
(Intel 121776-002)
Intel's Guide To Understanding The ANSI Videotex Presentation Level
Protoool (Intel 145;412-001)
Draft of proposed American Standard for the Virtual Device Metafile,
ANSI X3H33 Virtual Device Interface Task Group

NAPLPS
VDM, VOl
Local Area Network
- Data link and physical
layer (Ethernet)
- Transport layer

FORTRAN 77
Pascal
Real Math
Language Data Types.
and Parameter Passing
- Pascal
- FORTRAN
Object Module Formats
-86
-286

Draft IEEE Standard 802.3 CSMA/CD Access Method and Physical
Layer Specifications, IEEE Computer Society
ISO draft proposal 8073 Information Proce~sing Systems, Open
Systems Interconnection-Connection Oriented Transport Protocol
Specification
Intel's extension to ANSI FORTRAN 77 specified in FORTRAN-86
User's Guide (Intel 121570-002)
Intel's extension to ANSI Pascal specified in Pascal-86 User's,Guide
(Intel 1215~9-001)
Draft 10.0 of IEEE Task P754, Deoember 1982.
8087 Support Library Reference Manual (Intel 121725-001 ).

Pascal-86 User's Guide, A~pendix J (Intel 121539-003)
FORT~AN-86 User's Guide, Appendix H (InteI1?1570-002)
8086 Relocatable Object Module Formats (Intel 121748-001)
The Concrete Representation of 80286 Object Modules, Intel internal
document
iAPX 286 Compilers Writer's GiJide, (Intel-in preparation)

---------------

A-2

----~-.-~

Appendix

B

SOFTWARE SUPPORT SERVICES
A FULL SERVICE SUPPORT PROGRAM
Intel's Software Support Services is a comprehensive range of post-sales support programs for software and
systems purchased from Intel. Its objectives are to maximize the system's performance and minimize
unnecessary downtime for greater productivity. These services are provroed for all Intel developed and most
Intel marketed third-party software.

DESCRIPTION OF SERVICES
Software support services will be available for the Customer as follows:
Initial Sl,Ipport

Initial support provides each Intel system and licensed product with gO-day support after product delivery. It
includes automatic updates and new releaSes, Software Performance Reporting (SPR) Service, technical
reports and monthly technical bulletin. Also available on designated products will be telephone assistance for
product specific technical information and assistance with work-arounds, patches, and other solutions for Intel
defined product deficiencies.
SUBSCRIPTION SERVICE (available for Individual software products)

1.

Technical Reports

A technical report will be published quarterly for active products and semi-annually for mature products.
This Will contain a Configuration and Compatibility Guide, a product performance exceptions list
providing solutions to known problems and a review of important current Software Performance Reports
(SPR's) submitted by customers. A listing of product manuals available from Intel is also provided.
2.

Software Performance Reporting Service (SPR)

Intel will respond to written questions (submitted on a standard SPR form) on product-specific software,
system, or documentation issues. Intel will verify receipt ofthe SPR within 48 hours and will respond within
3 weeks. Intel does not guarantee a resolution will always be available to specific problems.
SOFTWARE INFORMATION SERVICE

This service provides the Customer with direct communication with an Intel Software Support Engineer (SSE).
The Customer may call a single service number (U.S.) between 8:00 A.M. and 5:00 P.M., (Pacific Time) for
product-specific inquiries.
This service enables the Customer to:
1.

Obtain assistance in using the product.
__ documentation clarification.
__ operational understanding.

2.

Obtain product specific information.
__ problem identification.
__ work-around, patch, or other solution when available.
__ information on existing SPRs.

3.

If the reported condition is not an already documented SPR, obtain assistance in problem isolation
techniques.
As part of the Software Information Service, Software Support Services maintain a list of reported problems
and problem resolutions. Software Information Services does not include user application or engineering
time to derive a resolution to a problem if none is currently available. (See Phone Consulting under
Consulting Services). However, the Software Support Engineer will submit a problem report into the SPR
system under the Customer name when appropriate.
Software Information Service is offered as a supplemental tool for obtaining maximum utilization of Intel
software products. It is expected that the Customer will avail himself of training classes as appropriate, and
will make reasonable efforts to utilize all product documentation.
The Customer must designate one System Manager and one alternate as authorized callers. Additional
persons can be authorized for an additional charge. This service is offered on a one-year period.

8-1

SYSTEM/SOFTWARE SUPPORT PACKAGES

We have structured very specific support packages to assist our customers with the installation and
reconfiguration of such systems as NDS-II and 86/330.

NDS-II Installation Package.

.

Includes software installation, system generation, and
network orientation .

NDS-II Network Reconfiguration Pkg.

Includes regeneration and installation of NDS-II System
Software.

RMX System Installation Package.

Includes installation and customer orientation of the RMX
operating system on the 86/330 or 86/380 System.

RMX 86 Installation Package.

Includes one day installation, configuration and/or
assistance; ~ training credit for one RMX86 class; 16 hours of
phone consulting.

XENIX System Installation Package.

Includes up to 2 days of installation and customer orientation
of the XENIX Operating System on the 86i330 AX or
86/380 AX System.

121CE Installation Package.

Includes the installation of and orientation to the host and
probe software for the 121CE on a Series III or Series IV
Intellec Development System.

CONSULTING SERVICES

Consulting Services provides customized support for system, board, and component level customers.
Consulting services provide a wide range of support - from system designs to solving difficult development
problems to complete project management and project implementation.
1.

Field Consulting - The Customer may contract for an Intel Software Support Engineer to come on-site to
assist and advise the customer in utilizing Intel software products. This service is available on a Time and
Material basis. Minimum period: 1 day (8 hours). Travel time and expenses are billed separately as specified
in the price list.

2.

Phone Consulting - The Customer may contract for an Intel Software Support Engineer in the Customer

Support Group to provide customer or application-specific research, effort, or consultation. Blocks oftime
may be purchased and utilized in minimum fifteen (15) minute increments.
UPDATES

Updates and new releases for licensed products are offered on a per update basis. Each update will be
separately priced for any registered Intel customer to purchase. Notification of updates and who requires
which updates, will be provided through the monthly technical bulletin, ;COMMENTS, and each productspecific technical report.
INSITE USER'S PROGRAM LIBRARY

Intel's Software Index and Technology Library is a library of programs that have been submitted by users of
Intel microcomputers, single-board computers, and development systems. Membership in INSITE enables the
Customer to order programs at a nominal charge. Members are provided a program catalog and catalog updates.

LIMITATIONS
A.

Software Support Services are limited to standard Intel system configurations supported by software
products, as defined in the applicable software product data sheet. Services will be performed within a
12-month period from effective date of the purchased services.

B. Software support services do not include hardware maintenance.
C. Any change in the equipment site of the system within the U.S. may affect Intel's ability to deliver the
support services ordered and may result in increased charges. If the system is moved outside the
continental U.S., it shall not be eligible for continued service as ordered, but may be eligible for continued
service under I ntel's local terms and conditions then in effect for a like system in the country or territory of
reinstallation.
B-2

OTHER INFORMATION
A.

Software Support Services is Intel's commitment to providing the customer with consistent, high-quality,
post-sales software and system support. It is our way of delivering guaranteed support which the customer
can rely on. To tailor a full service software/system support program that addresses specific needs, contact
the local Intel sales or service office for more information.

B. Term: Service will be provided for the period specified in the price list. Subscription services will
automatically be renewed on an annual basis unless specified otherwise in writing by the customer.
C. Charges: There are three kinds of billings utilized with the service offerings: front-end billing, monthly
billing (not less than $100 per month):and post-service billing. The customer will be billed on one of the
referenced types of billings, depending on the type of service. Prices will be those specified in the current
Intel price list.
D.

In order to obtain maximum service from Software Support Services, it is advised that the customer
maintain the system to the latest reviSion level, and assign a System Manager who will be the key contact for
Software Support Services.

E.

Guidelines:
1.

The customer must have signed an Intel Master Software License agreement. All services and
materials made available to the customer through Software Support Services, including documentation
and program materials, are subject to the terms and conditions of the license/sale.

2.

The License Fee or List Price for covered software products includes a period of Initial Support as
defined in individual product descriptions. Additional support services may be obtained as listed in the
price list.

3.

Updates are available separately for software products. Each update to a specified software product
has a Single charge and is purchased separately. The customer must have a valid software license that
covers the software product to obtain any update or new release.

The following chart summarizes the services available for various operating system environments at different
levels of integration.
Software Support Services
PRODUCT NAil.

PAMMU.BIlR

.S.S

INDX

INITIAL

Included In
hcense fee
or pnce of

SYS

SYS

SUPPORT

OPERATING SYSTEM
XENIX+
lUX'·

SYS
BAD

SYS
BRD

CP/ .. ··80

I

SYS

each product

I

CONTRACT
SERVICE
SubSCription
Service

SPR-TECH-REP

Hotlme
Service

HOTLINE

SYS

UPDATES

Each update has a
umque part number

SYS

~PPORT
I

Ii
I

SYS

I

PACKAGES
NOS-II
NOS-II
RMX-86
RMX Systems
XENIX Sys
12ICE'-

~~:~~:\~~~~tt

J,

SYS

I

SYS
BRD

SYS
BRD

SYS
BRD

SYS
BRD

SYS

SYS

SYS
BRD

SVS
BRD

SYS

SYS
SYS

SYS

SYS

CONSULT-FIELD

SYS

CONSULT-LT

SYS

iI

I

SYS

CONSULT-EXP

INSITI! U••R'.
PROGRAM
LIBRARY

N/A

KEY

SYS
BAD
COMP:=

SYS

I

I

I
I
I
I

I

SYS, BRD
SYS

I
SYS

SYS, BRD
COMP

SYS, BRD
COMP

SYS

SYS, BRD
COMP

SYS, BRD
COMP

SYS

SYS, BRD
COMP

SYS, BRD
COMP

Consulting

Expenses

I

I

I

CONSULT-PHONE

I

SYS

I

I
SP86330XINSTALL j
SPII1520lNSTALL

Long-term

SYS

I

SPNDS2TNSTALL
SPNDS2RECON

CONSULTING
S.RVIC ••
Phone
I Consultmg
Field
Consultmg

I

I
i

SYS
SYS
COMP

I

SYS
COMP

Travel and liVing expenses Incurred for dellvenng
Consulting and Support Package
User submitted and non-licensed software products and
programs used on or In conjunction With JnteJ
Components, Boards and Systems

I

AI! Intel standard system hardware, languages and software packages deSigned to operate on or Within
the partICular Operating System
SelVlce prOVided for thiS Operatmg System and assOCiated language and software deSigned to operate on
standard Intel Smgle Board Computer configuratIons
Support dunng the development of a user's system based on an Intel microprocessor component and
usmg an Intel operatmg system and Its assOCiated languages and software

·CP/M IS a trademark of Digital Research, Inc
+XENIX IS a trademark of Microsoft Corp

B-3

intJ
DOMESTIC SALES OFFICES

.............
Intel Corp
303 Williams Avenue, S W
SUite 1422

riw,I&'o'lliti 35BOI
Tel

(205) 533-9353

AIIIZQNA
~ntel

Corp
11225 N 28th OrNe
Suite 214D

Phoenix 85029
Tel (S02) 869-4980

CAUFORNIA
Intel Corp
1010 Hurley Way

Suite 300
Sacramenlo 95825

Tel

(916) 929-4078

Intel Corp

~~?t~ ?f~OI1unlty Road

r7~4) D2m~35~3111
Corp·
2000 East 4th Slreet

Intel

Suite 100
Santa Ana 92705

~x (7~{6_5~~:1~442
Intel Corp·
1350 Shorebird Way
MI Vtew 94043
Tel (415) 968-8086
T\NX

910-339-9279
910-338-0255

Intel Corp·
5530 Corblr Avenue
SUite 120
Tarzana 91356

Tel (213) 708-0333
TWX

9tC-49b ::-045

COLORADO
Intel Corp
4445 Norlhpark Dn... e
Suite 100

Colorado Springs 80907

Tei {303) 594-6622
Intel Corp·

650 S. Cherry Street
SUlle 720
Denver 80222

~ (3~1~_9~~~~g~6

ILliNOIS

NEW MEXICO

TEXAS

Intel Corp·
2550 Goll Road
SIJ'te 815

intel Corp

1120 Juan Tabo N E

"tWX 910-651-5881

Nlw YOAK

Intel Corp'
12300 Ford !-mad
Suite 380
Dallas 75234
Tel (214) 241 808 7
TWX 910 860-5617

INDIANA

Intel Corp'
300 Vanderbilt Motor Parkway

~n~i C~~ ~

9100 Porous Road

fJ30An~teA~d~~~'ngnve

Intel Corp·
211 While Spruce Boulevard

Intel Co,p
8400 W l1t)lh Stleet
SlIlts '70
Overland Pari< 66210
Tel (qI3) 642-8080

T-Squared

LOUISIANA

T-Squared
"1353 Pittsford
Victor Road
Victor 14564
Tel (716) 924-9101
TWX 510-254-854?

Industrial Digital Systems Corp
2332 Severn Avenue
Swle 202

Metairie 70001
(504) 831-6492

MARYLAND
Intel Corp·

~~~~1I:a1foa16 Dnve
t~ (3~116_ls~~;~~~0
Iniei Corp

1620 Elton Road
Silver Spring 20903
Tel (30t) 431-1200

MA&SACHUSETTS
Inte! Corp·
2 i Industrial Avenue
Chelmsford 01824

i~ (6gJ_3~~~6:,a3U~
EMC Corp
385 Elhot Street
Nemor 02164

26500 Norlhwestern Hwy
Suite 401
Soulhfleld 48075
Tel (313) 353-0920
TWX

810-24404915

MINNESOTA
Intel Corp

~J~I ~r~altland
SUite 205
Maitland 32751

~ (3g1~_8~~9~~~3
GEORGIA
Intel Corp
3300 Holcombe Bridge Road
SUite 225
Norcross 30092
Tel (404) 449-0t>41

SUIte 360

~:(6J~~~:~~~~i~~2
MISSOURI

Tel

TWX

Intel Corp
268 West 400 South

¥!t" (~b~j

~~~"8~~~01

VIRGINIA
Inlel Corp

1603 Santa Rosa Road
Swte 109

NORTH CAROUttA

Richmond 23288
Tel (804) 282-5668

Intel Corp
2306 W MeadOWView Road
SUite 206
Greensboro 27407
Tel (919) 294-1541

WASHtNGTON
Intel Corp
110 Hath Avenue N E
SUite 510

""'0

Bellevue 96004

~x (2~~4!~~J~~~6

Intel Corp·
6500 Poe Avenue
Dayton 45414
Te! (513) 890-5350
TWX 810-450-2528
Intel Corp·
Chagflo-Braloara Bldg. No

6~~v~~aZha~~1~2touleva'd

WISCONSIN

300

Intel Corp
450 N Sunnyslope Road
SUite 130
Brookfieid 53005
Tel (414) 184·9060

Tel

(216) 464-6915
TWX 810·427-9298

CANADA

OKLAHOMA

ONTARIO

Intel Corp
4157 S Harvard Al/eTlue
SUite 123
Tulsa 74135
Tel (918) f49-8688

lotel Semiconductor of Canada, lid
39 Hwy 7, Bell Mews
Napean K2H BR2
Tel (613) 829-9714
TELEX 053-4115

OREGON
Intel Corp

10700 S W Bea-.erton
Hillsdale Highway
SUite 22

Beaverton 97005

~x (5glJ_4~j~8~~~6

Intel Semiconductor 01 Canada, ltd
50 Galaxy Boulevard
SUite 12
Aexdale M9W 4Y5
Tel (416J 675·,2105

TELEX

06983574

Inlel Semlconduc1or of Ganada, ltd
201 Coosumer~ Road

Intel Corp·

SUite 200
Wdlowdrue M2J 4GB
Tel (416) 494·6831
TELEX 4946831

n~ ~~~~~fg~a 1~~~ue

_IEC

PENNSYLVANIA

Tel

TWX

(215) 641-1000

510-661-2077

Intel Semiconductor 01
3860 Cote Vertu Road
SUIte 210

canads,

LId

51 laurent H4R 1V4

f~LE*51 ~5_~~!,~~60

(314) 291-1990

l[1tel Corp·
Raman Plaza Itl
Rantan Center
Edison 08837
Tel (:?Ol) 225-3000

UTAH

(315) 463-85'12
710-541-0St>4

~~ g~ 630~5

NEW JERSEY

TeJ

~~:;cu~~d'~~20~oad

Inlel Corp
4203 Earth City Expressway
Tel

Austin 78752
(512) 454·3628

510·253-7391

3500 W 60th Street
62nd Street

SUite 104
Ft Lauderdale 33300
Tel (305) 771-0600
TWX 510-956-9407

~~I

{Otdefson Lane
Suite 314

Roc-hester 14623
Tel (716) 424"1050
TWX

~x (271~~~~i~~66

~~~ CJ~

c

KAN....

MICHIGAN
Intel Corp·

FLORIDA

N

Cedar Replds 52402
Tel (319) 393-5510

Tel

Induslrlal DI91tai Syslems Corp
5925 Sovereign
SUite 101
HOIJston 77036
Tel (713)988-9421

~ (9J{L~1~o~~~3

Intel Corp

Tel (517) 244-4740
1VVX 922531

393 Center Street

Intel Corp
80 Washington Street
PoughkeepSie 12601

IOWA

Freeway
SUite 1490
Houston 77074

i~x (7~~6_898~82~~~6

510.227-6236

TWX

Suite 400
Indianapolis 46258
Tei (317) 8750623

Intel Corp
36 Padanaram Road
DanbUry 06810

~~1I11O'3? 2O:~~91

~:Iuprtl~~e 21;~~~oo

Intel Corp

CONNEcncUT

EMC Corp

Albuquerqu*", 87112
Tel (505) 292-6086

i~III'731~'l~tt;20~OO(l8

QED .!::lectrQ:l'Os
300 N York Road
Hatboro 19040
Tel (215) 674-9600

1WX 710-480-6238
"Flel('! Application Location

inter
DOMESTIC DISTRIBUTORS
AUIIWIA

~..!.':r'~

Huntmlle 35405
Tel (205) 882-2730

So
,

-

-

~r,sow~'

-

fArrow ElectrolllCl, Inc

InC

2380 - . . .
S1 LoutS 63141

wT~~:

~(3J:~7~~
tHamliton/A .... neI EleetronICS
13743 Shoreline Court
EarIh
Tel (314 344-1200
TWX 91 762-0684

-C'[ 63045

tHamlllon/Avnet ElectfOnlCl

Pm

--

~~C'~~vnetAo~JectronICS

NEWoIIRMY

Overland Park 66215

~EleCtrOr'IICS, Inc

M~aI~rnue

~(9~flb~~

~(2:i~~~

IWIYLMD
tHamlllon/Avnet ElectronIcs
6822 Oak Halt lane

fArrow ElecIronIc8, Inc

Columbia 21045

~(3W~
I'I.ORmA ,

~W 1~~0V0nve
CorporaIlOn

t~9J~~C8s~

¥.:"<3mr\i:~:~

Suite 108
Ft Lauderdale 33309
Tel (305) 776-7790
TWX 510-955·9456

tHam'lton/Avnet ElectroniCS

71{).828·9702

t_

9100 GIlIIher Road

GodheB.'1. 20877

~ (3?~61i:~'~

....

........".

tHamIllon/Avnet EI8ctromc8

10 Irduetnal
FaIrfield 07006
Tel (201) 575-3390
TWX 710-734-4388

r~~ICS"nc
Woburn 01801

~ (6jI61t:r.6W8
t~.~={Ao:. E~1C8

Woburh 01801

~(6iJ6~Of
tHarvey/Boeton

tMTI Systems Sales
383 Route 46 W
Fairfield 07006
Tel (201) 227-5552

NEW IlEXICO

44 HartweU Avenue

;

~~~

'::die Springs

Suile 412

t~ia~e32701
tPloneer/Ft Lauderdale
1500 82nc1 8tf8et NW
Saale 506
Ft lauderdale 33309

-

~C3£5~~~=

Klerulff ElectronIC&. Inc
14101 Frankbn Avenue

Tustin 92680

~(7J1~~:~

~n~)~l~200
TWX

710-326-6617

11tArrow ElectroniCS, Inc
3810 Varsrty DI'fV8
Ann Arbor 48104

~(3J~6-:~

NEW YOIIIC

t

I",

Road

fArrow ElectronIC8, Inc
2979 Pacific Drtve

Inc

Norcross 30071

Road

~(4£4J.7~~2

KI8rUIff EIecIronICI. Inc
2586 Commerce Way
Coo ~

9004.

Inc

~!2J,~

fArrow ElectronICS, Inc
20 Clef Avenue
H"'~117
••
Tel (51
231·1000
TWX 51 27-6623

tMlCfOOOmputer Syatem Technical Demonstrator Centen

DOMESTIC DISTRIBUTORS
_(Cont'tII

TEXAI _ I I )

tPioneer/Dayton

tHamItton/Avnet EIeCtronIca
8750 Weft Park

4433 Interpo/nI Boule'lard

~·\'M54I:""'"

ALRRTA _ I I )

Ho8uton 71063

~ (7J~6~f-5Wa'

TWX 810-459-1622

t_ta-nd

~=ilo..
AutUn 78758

4800 E 13111 SIreeI
Cleveland 44105

-

~(218'1M5f~:~

Z_

~ ~~th Avenue N.E
~312~7~21

-LA Varah, Ltd
2077 Alberta Stree1
Vancouver V5Y 1C4

~.(5J,~~~

~.(eg:~=;~'

tArrow Electronics, Inc
4719 S Memorial Dri'Ie
Tulsa 74145
Tel (918) 665-7700

--

IIANITOIIA

~~S.~"':8,~

8eaYerton 97005

~(5:~~~~0
~:"r~Av.=n ~onlea
Bldg

L.A Varah, Lid

VTAH
tHamllton/Avnet Electronics
1585 Welt 2100 South
Sail lake CI~ 84119

w_

=

~(~~,~r

~~~30

-...""'"

ac,

Salt Lake City 84104

Tel

tArrow Electronics. Inc
850 Seco Road
Monroeville 15146
Tel (412) 856-7000

(801) 974·9953

~(~~~=2
~,~~valley
Hanham, .....

tHamllton/Avnet ElectronICs
14212 NE 21st Street
Bellevue 98005

TEXAI

~(2:L~2~J4

tP\oneer/CiroHna

w_

103 Induatrlal Avenue
Greensboro 27406

-

~ (9~~6.9~~tm'

tArrow Electronics, inc
7620 McEwen Road
CentervIlle 45459

~(5J~6...~1~

tArrow Electronics, Inc
6238 Cochran Road
Solon 44139

~(2J~~~=

tHamIltOn/Avnet Electronics
954 Senate Drive
Oa~~ 45459

~(5~~6..t~~\0

tHamHton/Avnet Etectronic&

4588 Emery IncluafrIal Parkway

~C~~=44128

tArrow Electronics. Inc

430 W RauaBOn Avenue
Oakcreek 53154

tArrow Electronics. InC
10899 Klnghurat

Suite 100
Houston 77099

~(7~~6~~C:
LA~:;woniC8, Inc

Austin 78758

~ ("J~6.~~~g~o

LA Varah, Ltd
505 K8nOI'I!Ii Avenue
Hamilton L8E 3P2
Tel (416) 561-9311
TWX 061..e349

Zenlr0nk:8
8 TIlbury Court
E\ramptoi'I LtiT 3T4
Tel (416) 451·9600
lW)( 06-976·78

Z........

564110 Weber Street North

590 Berry Street

fV~n~)R?~~~
GUIIIEC

tHamllton/Avnet EIectrontcs
Rutland
78757

HaI'lIlton/Avnet EIIIctronIca
210 Colonnade Road South
NepeI!Iin K2E 7L5
Tel' (613) 226-1700
lWX 05-349-71

Z"""""'"

ALRRTA

~ (5Jf6.8~~~~~'

~("Jn...~~~~2

~~g'i~~==onIcs
CANADA

AllsUn

Hamillon/Avnet Eteclrof'llC8
6845 Rexwood Road
UntI8 G & H
MI8Sl888UQIII L4V lR2

Walerloo N2L 5C6
Tel (519) 884·5700

~ (5~6.l7~~~C:

2401

--

~ (4Jt6.kr.=
New BerlIn 53151

10125

Street

~rrns.) ~~5-~\

unl1 8

tAlmac E\ectronk:& Corporation
14360 S E Eastgale Way
Bellevue 98007

~(2~f~~~

~)

Z........
590 Berry Sireet

~(~~9~~'W

C, Suite 10

~1~~32 K~R E~fd
Tel
633-6190
TWX 07-55·365

tHamllton/Avnel ElectronICs
2816 21st Street N E

~~~2~3~Z3ke

~,r':n{C::. ~~~

lWX 03-827-642

Irving 75062

tLA Varah. ltd

~(2J1~':

4742 14th Street N E

~2~~~5

HamiHon/Avnet EtectronIc8

2670 Sabourin Street
$I Laurent H4S 1M2

~ (5J~L~~~~3

Zantronlc8
505 locke Street
St laurent H4T lX7
Tel (514) 735-5361

TWX

05-827·535

tMfcroc::ornpuI System Techmcal Demons1rator Center1

intJ
EUROPEAN SALES OFFICES
BELGtUM

FRANCE (Cont'd)

ISRAEL

Intel CorporatIon S A

Inlel CorporatIOn, S A A l
Immeuble BBC
4 Qual des Elrarla
69005 lyon
Tel (7) 642 40 89
TElEX 305153

Intel Semiconductor Ltd'
PO Box 1659
Haifa
Tel 4/524
TELEX 46511

~:: Jue%OUlin a Paplef 51
Boite 1
8-1160 Brussels
Tel (02}6f: 07 11
TELEX 28414

ITALY

WEST GERMANY

DENIIAIIK

Spa'

Inlet SemICOnductor GmbW
Seldlsuasse 27

_.

Intel Sweden A.8·

Box. 20092

Archlmedesvagen 5
S·16120 Brooima
Tel (08) 98 53 85
TELEX 12261

SWITZERLAND

0-8000 Muenchen 2
Tel

(89) 53891

TELEX 05-23177 INTl 0

Intel' Semiconductor GmbH'
Malnzer SlrUie 75

FlNLMD
Intel Finland OY
Hameentl9 103
SF - 00550 Helsinki 55

Tel 0/716 955
TELEX

123 332

0-6200 WI9sbaden 1

Tel (6121) 70 08 74
TELEX

04186183 INTW 0

Inlel SemIConductor GmbH
Brueckslraase 81
7012 Fellbach

FRANCE
Intel Corporation, S A A L •
5 Place de la Balance

Sllle 223

~:F2101~U6R~ 2:d~:

TELEX 270475

West Germany
Tel (7tt) 58 00 82
TELEX 7254826 INTB 0
Intel Semiconductor GmbH'
HohenzoUern Suasse 5'

3000 Hannover 1

i~lE*51~2;~254~N~~

0

NETHERLANDS
Intel Semiconductor Nederland B V·

~::~deM":~ul~~ng
3068 Rotterdam
Tel (10) 21 23 77
TELEX 22283

NORWAY

~~I ~~~2 AIS
Hvamvelen 4
N-2013

~;Ie~)

TELEX

UNITED kINGDOM
Intel Corporallon (UK) Lid'
5 Hospital Street
NantwlOO, Cheshlre CW5 5RE
Tel (0270) 626 560
TELEX 36e20
Intel Corporation (U K) Ltd'
PIpers Way
SWlndon, WIRshlre SN3 lRJ
Tel (0793) 488 388
TELEX 444447 INT SWN

742 420
18018

Inter SemlCOnduclOl' GmbH
Ober-Ralherstrasse 2
0-4000 Dusseldorf 30

f~LE*21~_~~9}~ T~TL

0
"Field Appllcabon Location

EUROPEAN DISTRIBUTORS/REPRESENTATIVES
AUSTRIA

FRANCE (Cont'd)

ITALY (COnt'cI)

Bacher Eleklronlsche Geraete GmbH

Tekelec Alrtromc
Cite des oBruyeres
Rue carte Vernel
F-92310 Sevres
Tel (Ot) 534 75 35
TELEX 204552

Intesl
Mllanfion Pal E/5
20090 Assago
Milano
Tel (02) 82470
TELEX 311351

WEST GERMANY

NETHERLANDS

SWITZERLAND

ElectroniC 2000 Vertrlebs A G
Neumarkter Strasse 75
[).8oo0 Munich 80
Tel (89) 43 40 61
TElEX 522561 EIEC 0

~~~~ l!:aan
2544 EN's Gravenhage
Tel 31 (70) 210101
TELEX 31528

Industrade AG
Gemsenstrasse 2
Postcheck 80 - 21190
CH-8021 Zurich
Tel (Ot) 363 23 20
TELEX 56788 INOEL CH

NORWAY

UNITED KINGDOM

Nordisk Elekll'onic (Norge) A/S
Postofhce Box 122
~~d8~~~;I~d 4

Bytech Ltd
Unit 57
london Road
Earley, Reading
Berkshire
Tel (0734) 61031
TELEX 848215

~tf,~~e~renS:

26
Tef (222) 83 63 96
TELEX 11532 BASAT A

BELGIUM

DENMARK
MultlKomponent AlS
Fabnksparken 3t
OK·2600 Gloskrup
~' Jg~t545 66 45
ScandlnSVl8n SemlcondllClOr
Supply AIS

~~2~38a~ode8nhSQer1
Tel (01) 83 50 90
TELEX 19037

FINlAND

~lk~~~~~iC 2~BA
SF·00210
HelSinki 21
Tel (0) 692 60 22
TELEX 124 224 Flron SF
FRANCE
Genenm
2 I de Courtaboeuf
Avenue de la Balllque
91943 les uris Cedex-B P 88
Tel (6) 907 78 79
TELEX F691700
Jermyn SA
rue Jules Ferry 35

¥~17~,)B~~~OI~~

TELEX

04 -

~'Wa~h Grr~~
Schulstrasse 48
0-6277 Bad Cambetg
Tel (06434) 231
TELEX 484426 JEAM 0
Celdls Enatechnlk Syslems GmbH
Gutenbetgstrasse 4
2359 Henstedt-Ulzburg 1
Tel (04193) 4026
TELEX 2180260

PORTUGAL

Proelectron VerITlebs GmbH
Max Planck Strasse 1-3
6072 Drelelch bel Frankfurt
Tel (6103) 33564
TELEX 417983

Dlnem
Componentes E Etectrol'Hca LOA
133
Tel' (19) 545 313
TELEX 1;4182 8neks-P

IRELAND

SPAIII

MICro Msrkellng
Glenageary Office Park
Glenageary
Co OublIO
Tel (1) 85 62 88
TELEX 31584

Interface SA
Ronda San Pedro 22,3
Barcelona 10
~X {3~d8J 78 5f

.......L
Easlronlcs Ltd
11 Rozanls Street
POBox 39300
Tel AvIV 61390
Tel (3) 47 51 51
TELEX 33638

21810 F

Metrologle
La Tour d' Asnleres
" Avenue Laurent eely
92606-Asnteres
Tel (1) 791 44 44
TELEX 611-448

Tei (2) 786 210
TELEX 77546

ITALY
Eledrs 3S SPA
Vlale Elve'<'la, 18
I 20154 Milano
Tel (2) 34 97 51
TELEX 332332

~~oo~lt~:bo~mbarda,

lIT SESA
MIguel Angel 23-3
Madrid 10
Tel (1) 419 54 00
TELEX 27707

_N
A8 Gosla Backstrom
Box 12009
Aistroemergatan 22
8-10221 Stockholm 12
Tel (8) 541 080
TELEX 10135

SWEDEN (Cont'd)

Comway MlCI'osystems ltd
Market $lreet
UK-BraCl
Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19
Create Date                     : 2016:04:04 10:25:44-08:00
Modify Date                     : 2016:04:04 10:52:59-07:00
Metadata Date                   : 2016:04:04 10:52:59-07:00
Producer                        : Adobe Acrobat 9.0 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:f0ec2c0f-41af-7345-8acf-e6864e8fa5d2
Instance ID                     : uuid:cfd1de4b-b154-4a4e-ba90-9c34a25b8b9c
Page Layout                     : SinglePage
Page Mode                       : UseNone
Page Count                      : 394
EXIF Metadata provided by EXIF.tools

Navigation menu