throbber
REEBSHESTER
`Eflma
`
`O P E N
`sYsTEMs
`
`June 19-22, 1996
`RYERSON POLYTECHNIC UNIVERSITY
`
`Toronto, Ontario
`Canada
`
`Petitioner First Data - Exhibit 1010 - Page 1
`
`

`
`Copyright 1997
`by the Institute for Applied Forth Research, Inc.
`
`Individual papers in this volume maybe
`copyrighted by the author(s) or company
`responsible for the work. The Institute
`makes no claims for the correctness of the
`
`material presented.
`
`ISBN# 0-914593-16-1
`
`A publication of
`
`The Institute for Applied Forth Research, Inc.
`70 Elmwood Avenue
`
`Rochester, NY 1461 1
`
`Published in the United States of America
`
`Printed in the United States of America
`
`Petitioner First Data - Exhibit 1010 - Page 2
`
`

`
`TABLE OF CONTENTS
`
`Starting Kiln 4 with Forth Inc’s EXPRESS
`
`Open Systems - Theory and Reality
`
`Using Forth as a Scripting Language
`
`This Android Goes Forth Openly and Objectively
`
`The GENETIX Software Genomes
`
`The Europay Open Terminal Architecture: A Forth-based Token System
`for Payment Terminals
`
`Microconlroller Forth: A Windows-Based Development Environment
`
`Microcontroller Forth: An Approach to Hardware Programming
`
`Allen Anway
`
`Steve Benson
`
`Dr. Everett F. Caner Jr.
`
`Paul Frenger M.D.
`
`Bernard A. Hodson
`
`Peter Johannes,
`Elizabeth D. Rather and
`
`Stephen Pele
`
`Viacheslav Kirillin,
`
`Andrey Kloubovitch and
`Dmitri Preobrazhensky
`
`Oleg Klemenziev and
`Dmitri Preobrazhensky
`
`The Evolution of Development Tools for the Forth Language
`
`Randy Leberknight
`
`Booting Martian Software
`
`Proposed ANS-Forth C—Interface Word Set
`
`The Evolution of SENDIT into EPIC
`
`Highlighting a Scheme for Threaded-Code Optimizing‘
`
`A Concept for Medium Sized Relational Database Programming.
`
`The Europay Open Terminal Architecture:A Forth-based Token System
`for Payment Terminals
`
`A Small 32-bit RISC Core
`
`A System for Distributed Inferencing‘
`
`Martian Memory Management
`
`Standard Tools that are Standard Code themselves
`
`Laws of Computing, Version 2.0
`
`Traffic Controller and Zen of State Machines
`
`Benjamin Lee
`
`Marty McGowan
`
`Stephen Pele
`
`Ewald Pfau
`
`Ewald Pfau
`
`E. D. Rather,
`Peter Johannes and
`
`Stephen Pele
`
`John Rible
`
`Bradford J. Rodriguez and
`W F. S. Poehlman
`
`Ray Sl-Laurent and
`Benjamin Lee
`
`J E Thomas
`
`C. H. Ting
`
`C. H. Ting
`
`The Sensor Driven Airbomer Replanner Simulation: Building The World
`in a Box
`
`Richard C. Wagner
`
`—Ima\OU»)\D'4.)
`
`43
`
`47
`
`53
`
`57
`
`63
`
`69
`
`79
`
`85
`
`93
`
`103
`
`109
`
`I’ Abstracts only are included for these presentations.
`
`Petitioner First Data - Exhibit 1010 - Page 3
`
`

`
`
`
`Petitioner First Data - Exhibit 1010 - Page 4Petitioner First Data - Exhibit 1010 - Page 4
`
`

`
`Introduction
`
`The 1996 Rochester Forth Confer-
`
`ence on Open Systems was held at Ryer-
`son Polytechnic University,
`in Toronto,
`Ontario,
`in Canada June 19-22, 1996.
`This was the first Rochester Conference
`
`to be held outside the United States, and
`
`Attendees came
`was a great success.
`from Canada,
`the United States, Eng-
`land, the Netherlands, Australia, Austria,
`and Russia.
`
`The Conference was hosted by the
`Institute for Applied Forth Research,
`Inc-,
`in cooperation with the Southern
`Ontario chapter of the FORTH Interest
`Group. The Conference was sponsored
`by New Micros, Inc., with the continuing
`support of Mr. Randy Dumse; ITV Cor-
`poration, with the new support of Mr.
`Joe Zott; Ross Technology, Inc. and the
`support of Mr. Warren Bean and IWK
`International Corporation, with the con-
`tinuing support of Dr. Jay Khim. Addi-
`tional support was provided by Xela As-
`sociates, and Alexander Forsley, of An-
`nandale, Virginia and Miller Microcom-
`puter Systems, of Natick, MA.
`During most Conferences the appar-
`ent theme appears, in contrast to the ad-
`vertised theme. This year was an excep-
`tion. Several papers dealt with different
`aspects of Open Systems. These include
`an overall view of Open Systems by Dr.
`Steve Benson, Forth as a scripting lan-
`guage by Dr. Everett Carter; and GE-
`NETIX by Bernard Hodson.
`An even
`larger view of Open Systems was de-
`scribed in a paper by Peter Johannes,
`
`Elizabeth Rather and Stephen Pelc re-
`garding Europay and a background paper
`on the supporting software, EPIC, by
`Stephen Pelc. These efforts are all the
`more far reaching by supporting banking
`institutions in a variety of countries on a
`variety of hardware platforms.
`Finally,
`two remarkable papers:
`John Rible pre-
`sented a small 32-bit RISC Core and
`
`Richard Wagner gave details of an air-
`borne simulation.
`
`The Conference Program Chair and
`Proceedings Editor was Dr. Nicholas
`Solnsteff and the Facility Chair was Dr.
`Bradford Rodriguez.
`I was delighted to
`have their strong support.
`In large
`measure they organized and orchestrated
`this Conference, resulting in a great suc-
`cess! My thanks goes to both of them,
`and I look forward .to working with them
`on future Conferences.
`
`No conference can be a
`
`success
`
`without a large supporting cast. We had
`very able assistance from: Elliott Chapin,
`Kirby Dumse, Alexander Forsley, Brenda
`Forsley, Beverly Galloway, Ken Kupisz,
`Ken McCracken, Rob McDonald, Wendy
`Rodriguez, Jon Verne and Robin Ziolk—
`owski.
`I wish to complement and thank
`the very helpful Ryerson University Staff,
`most notably Patti Franklin, of the Inter-
`national Living Center and Peter Young,
`of the International Conference Center.
`
`——Lawrence P. G. Forsley
`Conference Chairman
`
`Petitioner First Data - Exhibit 1010 - Page 5
`
`

`
`
`
`Open Systems 73
`
`The Europay Open Terminal Architecture
`A Forth-based Token System for Payment Terminals
`
`E. D. Rather,
`FORTH, Inc.
`111 N. Sepuiveda Blvd, Suite 300
`Manhattan Beach, CA 90266 USA
`
`Peter Johannes,
`Europay International
`Cltausée de Tervuren 198A
`B4410 Waterloo, Belgium
`
`Stephen Pelc,
`MicroProcessor Engineering. Ltd.
`133 Hill Lane
`Southampton, England
`
`Abstract
`
`the major European credit card organization (Eurocard. MasterCard in Europe, and other
`Europay,
`financial systems) is developing technology to support “smart" cards — Integrated Circuit Cards, or ICCs
`— in the credit cards of the future. This will require new software in all credit card teruiinals (ranging
`from 80Sl—based POS terminals to high-end ATMS). To facilitate this transition, they are designing a
`token-based system conceptually similar to Open Firmware or Java based on Forth. Using the “Open
`Terminal Architecture” (OTA) it will be possible for credit card issuers and acquirers to write application
`programs that will be completely platform independent, and run on all OTA-compliant kernels.
`
`This is the second of three papers on OTA; it will discuss the overall architecture of OTA.
`
`System Components
`
`The purpose of an OTA system is to provide software to run in terminals used in payment applications.
`Conceptually, there are two hardware environments, and several classes of software. The hardware environments
`include the development system, which is based on a simple PC. and a target which is some form of payment
`terminal. The software includes development software, which runs on the PC; kernels, which include all platform-
`specific software in a terminal and other mandatory standard functions; libraries, which provide general functions
`to support
`terminal programs. and payment applications; applications, which are the functions specific to a
`particular payment product. and terminal programs. which perform general non—payment terminal functions and
`include high-level mecliartisms for selecting and executing transactions and associated applications.
`
` Interactive development link
` Targ et system
`
`Figure 1
`
`the terminal end of the
`An OTA development environment for a terminal small program to support
`Interactive Development Link (IDL) protocol
`is usually placed in the telsmR@M.
`
`Development En viranment
`
`An OTA development system is used to develop terminal software. either low-level kernel software or high-level
`library or application software. Kernel development requires a target terminal to be connected, as the kernel is
`cross-compiled on the PC host and downloaded to the terminal across the Interactive Development Link. OTA
`libraries, terminal programs. and applications are also developed on a PC host. Because they are high-level code,
`they may also be executed on the host for preliminary testing, using the host's version of the standard kernel, and
`
`Petitioner First Data - Exhibit 1010 - Page 6
`
`

`
`
`
`74 Proceedings of the 1996 Rochester Conference
`
`thus a target is not needed. For final testing using the terminal‘s own kernel and I/O, these programs would be
`tokenized (see discussion below) and downloaded to the target terminal.
`
`As an example, a prototype development system consists of a PC running Windows 3.11, Windows-NT or
`Windows 95 and an [DL to a target terminal (see Figure 1). Development software on the PC is based on ProForth
`for Windows, a product of MicroProcessor Engineering Ltd.
`
`Terminal Target Environments
`
`The target system is any one of a large variety of payment terminals. Actual products range from small, hand-held
`devices with simple 8-bit microprocessors such as the 8031l51 family to 32-bit computers running operating
`systems such as Windows-NT or Unix.
`In order to simplify the production, certification and maintenance of
`software on such a wide variety of targets, OTA terminal code is based on a single virtual machine which is
`emulated on the actual devices. Prototype coding and testing has shown that this approach is feasible and provides
`good run-time performance, even on an 8051 CPU.
`
`Each target contains a kernel consisting of a standardized set of functions whose CPU-specific implementation is
`optimized for that specific platform. This kernel suppons standard libraries and terminal programs and
`applications which are written in high—level code for the virtual machine and will therefore run on any terminal
`with a standard OTA kernel.
`
`Virtual Machine
`
`The software in every.0TA terminal is written in terms of a common virtual machine. This is a theoretical 32-bit
`microprocessor with standard characteristics defming addressing modes, stack usage, register usage, address space,
`etc. The kernel for each particular CPU type is written to make that processor emulate the virtual machine. The
`virtual machine concept makes a high degree of standardization possible across widely varying CPU types, and
`simplifies program portability. testing, and certification issues.
`
`interpreting tokens representing VM
`Virtual machine emulation may be accomplished by one of three methods:
`instructions (like Java),
`translating these tokens into a directly executable “threaded code” form (like Open
`Firmware), or translating them into actual code for the target CPU. The latter two methods offer improved
`performance at a modest cost in added target complexity. Present systems employ interpretation.
`
`Kernel
`
`It
`A kernel contains all functions whose implementation depends upon a particular platform (CPU and OS).
`includes a selected subset of ANS Forth words, plus a number of specialized OTA functions such as terminal IIO
`support token loader/interpreter support, and operations designed to support the particular needs of payment
`programs. Since it cannot itself be tokenized and downloaded, but must be physically installed (e.g. in PROM), the
`kentel is intended to be installed once, and not changed thereafter during the lifetime of the terminal. Therefore its
`functions are carefully designed to be very general in nature and as complete as possible, in order to support a wide
`range of present and future terminal programs and applications.
`
`A kernel is normally provided by the manufacturer of the terminal in which it resides. It is developed and certified
`according to the OTA Kernel Specification. Standard kernel functions not appropriate to a particular terminal type
`(e.g., action of a non-existant device) may be coded for that terminal as null functions, so every kernel has an
`identical set of functions and the testing and certification process is simplified.
`
`Libraries
`
`functions that support common features of terminal programs, such as
`OTA Libraries contain higher-level
`language selection, and common features of applications, such as PIN verification. A terminal may contain several
`libraries, some accessible to all applications. and some restricted to particular applications or payment systems.
`Libraries are written and tokenized for the virtual machine, using functions provided in the kernel, and therefore
`can be run on any terminal.
`
`Petitioner First Data - Exhibit 1010 - Page 7
`
`

`
`Open Systems
`
`Terminal Program
`
`A terminal program is part of the Terminal Resident Services and consists of the high-level “personality"
`characteristic of this terminal type (POS, ATM, etc.). This includes the functions common to all transactions (e.g.,
`card initialization and language selection) as well as the user interface required to select an application and process
`a transaction. The temtinal program at the highest level is typically triggered by a card insertion. Like libraries. a
`terminal program is written for the vinual machine, based on both kernel and library functions, and supplied in
`token form.
`It can therefore be run on any terminal of the appropriate type (e.g., ATM), and is easily changed by
`downloading over a network at any time.
`
`Applications
`
`A terminal transaction will select an application as part of its processing flow. Applications fall into three general
`areas:
`cashless “purses” (Pay Before), debit cards (Pay Now) and credit cards (Pay Later); applications will
`generally vary in their method of processing a given transaction. Versions of these applications may be provided
`by different payment systems and furthercustomiaed by individual issuers or acquirers. Applications are supplied
`in token form via the communications path, and (if security considerations permit) may be enhanced by token
`programs on an ICC.
`
`Taken compiler: and The Token Loader/Interpreter
`
`Libraries, applications, and tenninal programs are written in high-level code for the virtual machine. The OTA
`development system includes Forth and C compilers for this virtual machine, whose output consists of tokens.
`Tokens may be thought of as machine language instructions for the virtual machine. Tokens are either one or two
`bytes in length, and therefore represent the program in a form that is both CPU-independent and extremely
`compact (far more so, for example, than compressed source text).
`
`Each kernel contains a Token Loader/Interpreter (TLI), which processes a stream of tokens into an executable
`form. Once the kernel
`is installed in a terminal,
`the libraries, applications, and terminal programs can be
`downloaded into the terminal in a variety of ways (direct connection to an OTA development host. acquirer hard-
`wired network, modem and dial-up telephone line, etc.). Program modifications and new applications are down-
`loadable in the same manner whenever needed.
`
`166 Functions
`
`One function of lCCs is to improve transaction security by incorporating and managing encrypted data and
`participating actively in the transaction validation process.
`It is conceptually possible to go beyond these functions
`and provide for lCCs that also contain program code to enhance a terminaI's transaction processing, thereby
`providing new opportunities for payment products and services. To facilitate this, “sockets” are provided. that can
`be “plugged” by issuer-specific functions such as loyalty programs, which may be invoked at appropriate points in
`the transaction processing. The OTA does not currently propose that lCCs contain entire applications, but only
`plug behaviors that enhance existing terminal applications.
`
`As far as security is concerned, the presumption is that if an ICC passes the decryption and data authentication
`tests, whatever functions and plug behaviors are on the card have been certified and are syntactically valid. The
`terminal decides to allow or disallow the card’s proposed actions only as controlled by the terminal access security
`functions.
`
`Open Terminal Architecture Features
`
`The OTA token set provides program portability in systems with multiple CPU types by passing source code
`programs of various types through an intermediate compiler whose output is a string of tokens. Target terminals
`then process this code either by further compiling it to native code.
`translating it to a different form, or by
`interpreting it directly. Figure 2 illustrates this process.
`
`The OTA token set covers three main areas. The first is the instruction set of a theoretical processor (virtual
`machine), and thus provides the instructions necessary for the efficient execution of programs. The second allows
`what are normally called “operating system functions“ to be defined.
`In the embedded systems for which OTA is
`targeted, system functions cover not only OTA functions such as communications, TLVs, and library functions, but
`
`Petitioner First Data - Exhibit 1010 - Page 8
`
`

`
`
`
`76 Proceedings of the 1996 Rochester Conference
`
`also access between program modules and the associated access control mechanism. The third token group
`includes tokens specific to OTA processing, including such functions as user message management, database
`management and handling of TLVs (“Tag, Length, Value” data formats, specified by ISOIIEC 8825, and used for
`communicating with the chip cards).
`
`The OTA token set has been optimized for use on small terminals with ease of compilation. ease of interpretation,
`and good code density.
`
`I
`.F-orlh ='§uurm
`5:;
`I
`;: ‘Sunrise Code
`
`(other languages)
`
`
`
`rakera:appt'ieations“a.
`
`
`
`Tokens in the Interpreter Conceptf hey may be generated from a variety of source code formats, down-
`loaded to a terminal, and interpreted or executed.
`
`Figure 2
`
`Virtual Machine CPU Features
`
`The OTA virtual machine is based on a two-stack architecture, as seen in Forth. This architecture has been further
`
`modified for portability, code density, ease of compilation, and for use with other programming languages. For
`example, it contains provisions for local variables and frame pointers used in C. Thus. OTA token compilers can
`be written not only for Forth but also C and other languages.
`It is a byte-addressed, 32-bit machine, with 32-bit
`registers and stack elements.
`
`OTA defines a single address space for programs. This address space is accessible for data storage only. Programs
`may not assume that executable code is in this address space. Depending on the actual CPU and kernel
`implementation strategies the executable code may be in a different address space, or may be under the control of a
`memory management unit.
`In any case, programs are not permitted to access their own program memory directly,
`and any attempt to do so will be flagged during the program certification procedure.
`
`“External memory” may be used to store databases and program modules; however this space is controlled entirely
`by the kernel, and access to data therein is provided to client programs only indirectly. This memory may be in
`mapped pages, flash ROM, disk, or simply more main memory — this is completely at the discretion of the kernel
`implementor and is transparent to the programs.
`
`Programs and Tokens
`
`The instruction set of the virtual machine is coded as a byte stream of tokens. The most common functions,
`
`including most Forth primitives, are expressed in one-byte or “pn'mary“ tokens. Some system functions and most
`OTA-specific functions are two—byte or “secondary” tokens. Some tokens also have associated values, for such
`things as literal values and branch offsets.
`
`Petitioner First Data - Exhibit 1010 - Page 9
`
`

`
`
`
`Open Systems 77
`
`The token compiler compiles source code as a string of tokens which may be downloaded to the target terminal.
`After downloading, the terminal uses a token loaderlinterpreter to execute the tokens.
`
`Program and Library Management
`
`The software on an OTA terminal is organized as a set of separate modules. A module is a collection of definitions
`passed through the token compiler as a single unit. The main Terminal Program, each application, and each
`library are examples of modules.
`
`Modules need to communicate to perform overall terminal functions. A program module, for example a library,
`contains a number of definitions. Some of these are used only internally, and others must be accessible externally.
`Following all the definitions in a module there is a special section where definitions to be referred to externally are
`“exported" or listed in a way that constucts a table of entry points published for access by higher-level modules.
`
`
`
`Architecture Summary and Status
`
`Figure 3
`
`The basic architecture of OTA was successfully validated in the prototypes exhibited at the Europay Members‘
`Meeting in Seville.
`Issues to be revisited include placement of certain functions in the kernel vs. external token
`programs, minimum and maximum size requirements, and further definition of standard libraries and application
`functions.
`In addition, intensive efforts will be directed in the next few months toward development of salable
`software products, including development kits and validation suites for both kernels and token modules.
`
`Petitioner First Data - Exhibit 1010 - Page 10

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket