Browse Prior Art Database

Conversion of NGP-0 Coordinates to Device Specific Coordinates (RFC0401)

IP.com Disclosure Number: IPCOM000003576D
Original Publication Date: 1972-Oct-23
Included in the Prior Art Database: 2000-Sep-13
Document File: 2 page(s) / 4K

Publishing Venue

Internet Society Requests For Comment (RFCs)

Related People

J. Hansen: AUTHOR

Abstract

Conversion of NGP-0 coordinates to floating point PDP-10 coordinates was discussed in RFC #387. In general, however, it is undesirable to convert NGP coordinates to floating point coordinates because real devices require integer addressing. To this end, a means is described to convert NGP coordi- nates to integer coordinates in the range zero to M, where M is the maximum address of the device screen on a machine using 2's complement arithmetic. It would not, however, be difficult to modify this algorithm to operate on machines using one's complement or sign-magnitude arithmetic.

This text was extracted from a ASCII Text document.
This is the abbreviated version, containing approximately 79% of the total text.

Network Working Group Jim Hansen

Request for Comment #401 Center for Advanced

NIC #11923 Computation

Category: D.6 University of Illinois

Updates: RFC #387 October 23, 1972

Obsoletes: None

Conversion of NGP-0 Coordinates to Device

-----------------------------------------

Specific Coordinates

--------------------

Conversion of NGP-0 coordinates to floating point PDP-10 coordinates

was discussed in RFC #387. In general, however, it is undesirable to

convert NGP coordinates to floating point coordinates because real

devices require integer addressing. To this end, a means is described

to convert NGP coordi- nates to integer coordinates in the range zero

to M, where M is the maximum address of the device screen on a machine

using 2's complement arithmetic. It would not, however, be difficult

to modify this algorithm to operate on machines using one's complement

or sign-magnitude arithmetic.

First consider the NGP coordinate format:

+--+-----------+

| | n |

+--+-----------+

s ^ FRACTION

i

g

n

Where the sign occupies the most significant bit of the coordinate

followed by bits of numerical information (initial implementation of

NGP requires N=15). Negative numbers are represented by 2's

complement. Conversion to device coordinates is accomplished by:

D = S * f + S

Where D =>integer device coordinate

S =>scaling factor (typically M/2)

f =>NGP fractional coordinate

Let us rewrite this as:

n n

D = S*(2 *f)/2 +S

Now factor S into two terms:

I

S= Q * 2

Where Q is an odd integer and I is an integer.

When: I n n

D = Q * 2 *(2 *f)/2 +S

I-n n

= Q * 2 *(2 *f) +S

n

The factor (2 *f) is represented in 2's complement form simply by

extending the sign bit of f into the upper portion of the computer

word, If Q = 1 (as it would be with many devices), it can be ignored.

If Q >< 1, we may console ourselves that an integer multiply is faster

on most machines than a floating point multiply. In fact, on a

PDP-10, this multiply can usually be performed with no access to

memory since Q is usually small.

I-n

We are now left with the 2 factor. This can be accomplished with an

arithmetic shift left by (I-n) or an arithmetic shift right by (n-I)

as is appropriate. The offset factor, S, may now be added using an

integer add.

The procedure for converting NGP coordinates to integer device

coordinates is then:

1. move coordinate to a regist...