1、INCITS/ISO/IEC 20060:20012008 (ISO/IEC 20060:2001, IDT) Information technology Open Terminal Architecture (OTA)specification Virtual machinespecificationINCITS/ISO/IEC 20060:20012008(ISO/IEC 20060:2001, IDT)INCITS/ISO/IEC 20060:20012008 ii ITIC 2008 All rights reserved PDF disclaimer This PDF file m
2、ay contain embedded typefaces. In accordance with Adobes licensing policy, this file may be printed or viewed but shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In downloading this file, parties accept therein the res
3、ponsibility of not infringing Adobes licensing policy. The ISO Central Secretariat accepts no liability in this area. Adobe is a trademark of Adobe Systems Incorporated. Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creat
4、ion parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In the unlikely event that a problem relating to it is found, please inform the Central Secretariat at the address given below. Adopted by INCITS (InterNational Com
5、mittee for Information Technology Standards) as an American National Standard. Date of ANSI Approval: 7/1/2008 Published by American National Standards Institute, 25 West 43rd Street, New York, New York 10036 Copyright 2008 by Information Technology Industry Council (ITI). All rights reserved. These
6、 materials are subject to copyright claims of International Standardization Organization (ISO), International Electrotechnical Commission (IEC), American National Standards Institute (ANSI), and Information Technology Industry Council (ITI). Not for resale. No part of this publication may be reprodu
7、ced in any form, including an electronic retrieval system, without the prior written permission of ITI. All requests pertaining to this standard should be submitted to ITI, 1250 Eye Street NW, Washington, DC 20005. Printed in the United States of America Table of ContentsForeword ixIntroduction. xPu
8、rpose xSubject xAudience. xHow This Standard is Organised. xiAids in Using This Standard. xiRelated Publications xiReferences . xii1 Scope 1 12 Conventions 232.1 Abbreviations. 232.2 Glossary .242.3 Data Types .272.4 Stack Notation282.5 Flags.283 OTA Virtual Machine 393.1 Introduction393.2 Virtual M
9、achine CPU. 3103.2.1 Registers . 3103.2.2 Virtual Machine Size and Cells 3113.2.3 Memory. 3113.2.4 Stacks 3113.2.5 Frame Mechanism and Usage 3123.2.6 Extensible Memory . 3143.2.7 User Variables 3143.3 Virtual Machine Execution Features3153.4 Arithmetic 315iiiINCITS/ISO/IEC 20060:20012008 ITIC 2008 A
10、ll rights reserved3.5 Exception Handling . 3163.6 Resources. 3173.7 Programs and Tokens. 3184 System Services 4194.1 Time Handling . 4194.2 Devices and I/O Services. 4204.3 Database Services 4214.3.1 The Database Parameter Block . 4224.3.2 Database Instantiation. 4244.3.3 Database Exception Handling
11、 . 4254.4 Language and Message Handling 4254.5 TLV Services . 4264.5.1 Basic Principles . 4264.5.2 TLV Definitions 4274.5.3 TLV References. 4284.6 Hot Card List Management . 4284.7 Cryptographic Services 4294.7.1 Modulo Multiplication . 4304.7.2 Secure Hash Algorithm (SHA-1) 4304.7.3 Modulo Exponent
12、iation 4304.7.4 Long Shift . 4304.7.5 Long Subtract . 4314.7.6 Incremental Secure Hash Algorithm (SHA-1) 4314.7.7 Cyclic Redundancy Check (CRC) 4314.7.8 DES Key Schedule 4324.7.9 DES encryption/decryption 4324.8 Vectored Execution Sockets 4324.8.1 CSS Functions 4334.8.2 Socket Security . 4334.8.3 So
13、cket Organisation . 4334.9 Module Handling Services 4334.9.1 Module Loading by MODEXECUTE . 4344.9.2 Module Loading Procedure 4374.9.3 Module Loading by MODCARDEXECUTE 4395 Token Set Definition 5435.1 Overview 5435.2 Conventions . 5435.2.1 Number Formats 5435.2.2 Token Descriptions. 5435.2.3 Branch
14、and Code Offsets . 5445.2.4 Addresses 5445.3 Data Typing . 544iv INCITS/ISO/IEC 20060:20012008 ITIC 2008 All rights reserved5.4 Token Compression . 5445.4.1 Optimised Data Access. 5455.4.2 Special Procedure Calls . 5455.4.3 Quoting. 5455.5 Prefix Tokens . 5465.6 Stack Manipulation Tokens5475.7 Data
15、Access Tokens . 5495.8 Literal Tokens 5515.9 Address Generation Tokens . 5525.10 Arithmetic Tokens5535.11 Relational Tokens. 5555.12 String Tokens . 5575.13 Frame Tokens. 5605.14 Extensible Memory Tokens . 5625.15 Flow of Control Tokens . 5635.15.1 Branch Tokens 5635.15.2 Call Tokens . 5645.15.3 Loo
16、p Tokens 5655.15.4 Hybrid Tokens. 5665.15.5 Quoting Tokens. 5665.16 Exception Tokens. 5675.17 Date, Time, and Timing Tokens. 5675.18 Generic Device I/O Tokens5685.19 Formatted I/O Tokens 5715.20 Integrated Circuit Card Tokens5725.21 Magnetic Stripe Tokens . 5735.22 Socket Tokens 5755.23 Database Ser
17、vices Tokens5765.24 Language and Message Tokens . 5805.25 TLV Tokens5815.25.1 TLV Buffer Access 5825.25.2 TLV Processing. 5835.25.3 TLV Sequence Access . 5855.26 Hot Card List Tokens. 5855.27 Cryptographic Algorithm Token5865.28 Module Management Tokens. 5865.29 Operating System Interface Tokens . 5
18、885.30 Miscellaneous Tokens 5886 Module Delivery Format 6916.1 Module ID Format . 6926.2 Socket List .692vINCITS/ISO/IEC 20060:20012008 ITIC 2008 All rights reserved6.3 Relocation Section . 6926.4 Module Import List 6946.5 Module Export List 6946.6 Module Procedure List 694Appendix A: OTA Token List
19、s A97A.1 Numeric List of Tokens A97A.2 Alphabetic List of Tokens. A100Appendix B: Exceptions and I/O Return Codes B103B.1 Exceptions and IOR codes . B103Appendix C: Device Control C107C.1 Device References and Return Codes C107C.2 Debug Device. C109C.3 Keyboard Handling C110C.4 Display and Printer O
20、utput C111C.5 Serial Port Management. C115C.6 Modem Handling . C116C.7 ICC Card Handling C117C.8 Magnetic Stripe Handling C119C.9 Power Management C120C.10 Vending Machine Control C121Appendix D: Operating System Calls D123Appendix E: Rules for Using a Data Object List (DOL) E125Appendix F: System O
21、verview F127How This Appendix is Organised F-127F.1 Introduction F128F.2 System Components . F131F.3 OTA System Features. F135F.4 Program Security and Integrity F142F.5 OTA Software Development Tools F145F.6 Summary of the Open Terminal Architecture F151vi INCITS/ISO/IEC 20060:20012008 ITIC 2008 All
22、 rights reservedIndex 153List of Figures1. Virtual Machine architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-102. Frame management example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23、. . . . . . . . . . . . . . . . . . . . . . . 3-133. Database memory access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-224. Module execution procedure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-365. Module loading procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-386. ICC module execution procedure . . . . . . . . . . . . . . . . . . . . . . . .
25、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-407. OTA development environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-1318. Tokens in the OTA concept . . . . . . . . . . . . . . . . . . . . . . . . . .
26、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-1359. The OTA Virtual Machine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-13610. Kernel development tools . . . . . . . . . . . . . . . . . . . .
27、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-14611. Application development tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-147List of Tables1. Data type designations used in OTA . . . .
28、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272. Virtual Machine registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3103. Data that the VM may hold on the retu
29、rn stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3124. User variables in the Virtual Machine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3145. Initial condition of the VM on entry to the TR
30、S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3156. Optional general exceptions from ANS Forth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3177. Virtual Machine resources. . . . . . . . . . . . . . . . . .
31、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3178. DPB Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4229. Messages, by number and orig in . . . . . .
32、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42510. Message table format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42611. Cryptographic algorithm codes . . . .
33、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42912. Result codes from COMPARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55813. ISO parameter track selection codes .
34、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57414. Module delivery format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69115. Socket list in Module Delivery Fo
35、rmat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69216. Relocation specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69317. Module import list format . . .
36、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69418. Module export list format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69419. Module procedure list
37、 format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69520. ANS Forth THROW codes in OTA kernels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B10321. OTA THROW codes . . . . . . .
38、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B10422. OTA I/O return codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B10523. Device code assignme
39、nts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C10824. Token device number cross reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C10925. Debug device I/O return code
40、s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C10926. Standard key mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C11027. DEVIOCTL parameters for
41、keyboard device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C11128. Keyboard device I/O return codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C11130. DEVIOCTL parameters for display device
42、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C11229. Control Code Interpretation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C11231. DEVIOCTL parameters for printer device . . . .
43、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C11333. Printer device I/O return codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C11432. Display device I/O return codes . . . . . . . . . . .
44、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C11434. DEVIOCTL parameters for serial port device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C11535. Serial port device I/O return codes . . . . . . . . . . . . . .
45、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C11536. DEVIOCTL parameters for modem device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C11637. Modem device I/O return codes . . . . . . . . . . . . . . . . . . . . . . . .
46、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C117viiINCITS/ISO/IEC 20060:20012008 ITIC 2008 All rights reserved38. DEVIOCTL parameters for ICC card reader device. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C11839. ICC card reader device I/O return
47、 codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C11840. DEVIOCTL parameters for magnetic card reader device. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C11941. Magnetic card reader I/O return codes . . . . . . . . .
48、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C11942. DEVIOCTL parameters for power management device. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C12043. Power management device I/O return codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C12044. DEVIOCTL parameters for vending machine device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C12145. Vending machine device I/O return codes. . . . . . . . . . . . . . . . . . . . . . . . . . .