Freepascal from Square One

Total Page:16

File Type:pdf, Size:1020Kb

Freepascal from Square One FreePascal From Square One Volume 1: The Fundamental Ideas of Programming Installing and Using FreePascal and Lazarus The Core of the Pascal Language by Jeff Duntemann Revision of 2/1/2010 Repeat... Until... Copperwood Press ● Colorado Springs, Colorado USA FreePascal from Square One By Jeff Duntemann This work is licensed under the Creative Commons Attribution-Share alike 3.0 United States License. To view a copy of this license, visit this Web link: http://creativecommons.org/licenses/by-sa/3.0/us/ or send a letter to: Creative Commons 171 Second Street, Suite 300 San Francisco CA 94105 USA So that no one misunderstands the above: This is a free ebook. And I really mean that. Like FreePascal itself, you are free to give it to your friends, post it on your Web or FTP site or Usenet, include it on CDs or DVDs with your software or your own books, and just get it out there to anybody who needs or wants it. You are free to print it out at home or on a print services site of some kind. I would like to reserve rights to “publisher-style” printed editions sold at retail. If you’re a publisher and wish to create and sell such an edition, contact me. I post updated and corrected editions periodically. If you spot errors or see something that could be improved somehow, please send me an email so that I can fold those changes into the master copy. Use “jeff” “at” “duntemann” “dot” “com” and it’ll reach me. Printed and perfect-bound paper copies of this book (with color covers) may be ordered at the following URL: http://www.lulu.com/content/<xxxxxxxx> <fix when uploaded> Copperwood Media, LLC Colorado Springs, Colorado Table of Contents Introduction: How This Book Came About. 5 Part 1: The Fundamental Ideas of Programming . 9 Part 2: Installing and Using FreePascal . 83 Part 3: The Core of the Pascal Language . xx 4 FreePascal from Square One, Volume 1 5 4 FreePascal from Square One, Volume 1 Introduction: How This Book Came to Be, and What I’m Trying to Do essir, the book you’re reading has been around the block a few times since YI began writing it in November of 1983—which I boggle to think was over twenty-five years ago. It’s been through four print editions and on paper sold over 125,000 copies. It’s been translated into five languages. Now it’s time set it free. Pascal was not my first programming language. That honor belongs to FORTH, though I don’t admit it very often. FORTH struck a spark in my imagination, but it burned like a pile of shredded rubber tires, leaving a stink and a greasy residue behind that I’m still trying to get rid of. BASIC came next, and burned like dry pine; with fury and small explosions of insight, but there was more light than heat, and it burned out quickly. BASIC taught me a lot, but it didn’t take me far enough, and left me cold halfway into the night. Pascal, when I found it, caught and burned like well-seasoned ash: Slow, deep, hot; I learned it with a measured cadence by which one fact built on all those before it. 1981 is a long time gone, and the fire’s still burning. I’ve learned a lot of other languages in the meantime, including C, which burns like sticks of dynamite: It either digs your ditch or blows you to Kingdom Come. Or both. But when something needs doing, I always come back to Pascal. When I began writing Pascal From Square One in the fall of 1983, I had no particular compiler in mind. There were several, and they were all (by today’s standards) agonizingly bad. The best of the bunch was the long-extinct Pascal/MT+, and I used that as the host compiler for all of my example code. The book, however, was about Pascal the language: How to get started using it; how to think in Pascal; how to see the language from a height and then learn its component parts one by one. When I turned the book in at the end of summer 1984, my editor at Scott, Foresman had a radical suggestion: Rewrite the book to focus not on Pascal the language but on Turbo Pascal the product. The maverick compiler from Scotts Valley was rapidly plowing all the other Pascals into the soil, and he smelled a new and ravenous audience. I took the manuscript back, and by January of 1985 I had 5 6 FreePascal from Square One, Volume 1 How This Book Came to Be 7 rewritten it heavily to take into account the numerous extensions and peccadilloes of Borland’s Turbo Pascal compiler, version 2.0. The book was delayed getting into print for several months, and as it happened, Complete Turbo Pascal was not quite the first book on the shelves focusing on Turbo Pascal. It was certainly the second, however, and it sold over 125,000 copies in the four print editions that were published between 1985 and 1993. The Second Edition of Complete Turbo Pascal (“2E”, as we publishing insiders called it) came out in 1986, and addressed Turbo Pascal V3.0. By March 1987 I had moved to Scotts Valley, California and was working for Borland itself, creating a programmer’s magazine that eventually appeared in the fall of 1987 as Turbo Technix. Doing the magazine was a handful, and I gladly let others write the books for Turbo Pascal 4.0. I had the insider’s knowledge that V5.0 would come soon enough, and change plenty, so I worked a little bit ahead, and Complete Turbo Pascal, Third Edition was published in early 1989. It’s tough to stay ahead in this business. Turbo Pascal 5.5 appeared in May of 1989, largely as a response to Microsoft’s totally unexpected (but now long-forgotten) QuickPascal. V5.5 brought with it the new dazzle of object-oriented programming, and while I did write the V5.5 OOP Guide manual that Borland published with the V5.5 product I chose to pass on updating Complete Turbo Pascal for either V5.5 or V6.0. The magazine Turbo Technix folded after only a year, and I left Borland at the end of 1988, wrote documentation for them until the end of 1989, and moved to Arizona in February of 1990 to start my own publishing company. This included my own programmers’ magazine, PC Techniques, which became Visual Developer in 1996 and ran until early 2000. The early 1990s saw some turbulence in the Pascal business. Borland retired the “Turbo Pascal” brand and renamed their flagship product Borland Pascal. The computer books division of my publisher, Scott Foresman, was engulfed and devoured by some other publisher. Complete Turbo Pascal was put out of print, and I got the rights back. An inquiry from Bantam Books in 1992 led to my expanding Complete Turbo Pascal into a new book focused on Borland Pascal 7. I was able to re- title the book Borland Pascal 7 From Square One (the title Complete Turbo Pascal had been imposed by Scott, Foresman) and bring it up to date. That edition didn’t sell well because by 1994, Borland had created Delphi, and most of us considered the DOS era closed. I began writing books about Delphi and never looked back. And so it was for almost 15 years. I considered just posting the word-processor files fromBorland Pascal from Square One a few years ago, but figured that no one was using Pascal all by itself anymore. Not so. I first saw FreePascal in 1998 and tried it from time to time, but it wasn’t until January 2008 that Anthony Henry emailed me 6 FreePascal from Square One, Volume 1 How This Book Came to Be 7 to suggest that FreePascal could use a good tutorial, and it shouldn’t be too hard to update Borland Pascal 7 from Square One to that role. He was right—and the project has been a lot of fun. I mention all this history because I want people to understand where FreePascal from Square One came from, emphasizing that it’s been a work in progress for 25 years. Why stop now? I don’t have to cater to publishers, paper costs, print runs, or release schedules anymore. The book can evolve with the compiler, and every so often you can download the latest update. My publishing company Copperwood Press offers a print-on-demand paper edition if you’d like one, but you can print it yourself if you prefer. That’s how technical publishing ought to be, and someday will be. What I’m Trying to Do Here I wrote this book for ordinary people who had the itch to try programming and (with some dedication) to get good at it over time. You don’t have to know anything at all about Pascal, or programming generally, to read it. Anyone who lives a tolerably comfortable life in this frenetic twenty-first century can program. Most of us (as I’ll show a little later) engage the skills of programming to organize our daily lives. If you want to program, you can. It’s that simple. And this book begins at what I call Square One: The absolute beginning. I will explain the concepts behind programming, how to install FreePascal, how to run the text-mode Interactive Development Environment, and how to craft simple programs in the Pascal language.
Recommended publications
  • Free Pascal Runtime Library Reference Guide.Pdf
    Run-Time Library (RTL) : Reference guide. Free Pascal version 2.2.2: Reference guide for RTL units. Document version 2.1 June 2008 Michaël Van Canneyt Contents 0.1 Overview........................................ 93 1 Reference for unit ’BaseUnix’ 94 1.1 Used units........................................ 94 1.2 Overview........................................ 94 1.3 Constants, types and variables............................. 94 1.3.1 Constants.................................... 94 1.3.2 Types...................................... 116 1.4 Procedures and functions................................ 131 1.4.1 CreateShellArgV................................ 131 1.4.2 FpAccess.................................... 132 1.4.3 FpAlarm.................................... 132 1.4.4 FpChdir..................................... 133 1.4.5 FpChmod.................................... 133 1.4.6 FpChown.................................... 135 1.4.7 FpClose..................................... 136 1.4.8 FpClosedir................................... 136 1.4.9 FpDup..................................... 136 1.4.10 FpDup2..................................... 137 1.4.11 FpExecv.................................... 138 1.4.12 FpExecve.................................... 139 1.4.13 FpExit...................................... 140 1.4.14 FpFcntl..................................... 140 1.4.15 fpfdfillset.................................... 141 1.4.16 fpFD_CLR................................... 141 1.4.17 fpFD_ISSET.................................. 142 1.4.18 fpFD_SET..................................
    [Show full text]
  • Programmer's Guide
    Free Pascal Programmer’s Guide Programmer’s Guide for Free Pascal, Version 3.0.0 Document version 3.0 November 2015 Michaël Van Canneyt Contents 1 Compiler directives 13 1.1 Introduction....................................... 13 1.2 Local directives..................................... 14 1.2.1 $A or $ALIGN : Align Data.......................... 14 1.2.2 $A1, $A2,$A4 and $A8 ............................ 14 1.2.3 $ASMMODE : Assembler mode (Intel 80x86 only)............... 15 1.2.4 $B or $BOOLEVAL : Complete boolean evaluation.............. 15 1.2.5 $C or $ASSERTIONS : Assertion support................... 15 1.2.6 $BITPACKING : Enable bitsize packing................... 16 1.2.7 $CALLING : Specify calling convention.................... 16 1.2.8 $CHECKPOINTER : Check pointer values................... 16 1.2.9 $CODEALIGN : Set the code alignment.................... 17 1.2.10 $COPERATORS : Allow C like operators................... 18 1.2.11 $DEFINE or $DEFINEC : Define a symbol.................. 18 1.2.12 $ELSE : Switch conditional compilation................... 18 1.2.13 $ELSEC : Switch conditional compilation................... 19 1.2.14 $ELSEIF or $ELIFC : Switch conditional compilation........... 19 1.2.15 $ENDC : End conditional compilation..................... 19 1.2.16 $ENDIF : End conditional compilation.................... 19 1.2.17 $ERROR or $ERRORC : Generate error message............... 20 1.2.18 $ENDREGION: End of a collapsible region.................. 20 1.2.19 $EXTENDEDSYM: Ignored........................... 20 1.2.20 $EXTERNALSYM: Ignored........................... 20 1.2.21 $F : Far or near functions........................... 20 1.2.22 $FATAL : Generate fatal error message.................... 21 1.2.23 $FPUTYPE : Select coprocessor type..................... 21 1.2.24 $GOTO : Support Goto and Label ...................... 22 1.2.25 $H or $LONGSTRINGS : Use AnsiStrings.................. 22 1.2.26 $HINT : Generate hint message.......................
    [Show full text]
  • FCL Reference Guide
    Free Component Library (FCL): Reference guide. Reference guide for FCL units. Document version 3.2.2 May 2021 Michaël Van Canneyt Contents 0.1 Overview........................................ 88 1 Reference for unit ’ascii85’ 89 1.1 Used units........................................ 89 1.2 Overview........................................ 89 1.3 Constants, types and variables............................. 89 1.3.1 Types...................................... 89 1.4 TASCII85DecoderStream................................ 90 1.4.1 Description................................... 90 1.4.2 Method overview................................ 90 1.4.3 Property overview............................... 90 1.4.4 TASCII85DecoderStream.Create........................ 90 1.4.5 TASCII85DecoderStream.Decode....................... 91 1.4.6 TASCII85DecoderStream.Close........................ 91 1.4.7 TASCII85DecoderStream.ClosedP....................... 91 1.4.8 TASCII85DecoderStream.Destroy....................... 91 1.4.9 TASCII85DecoderStream.Read........................ 92 1.4.10 TASCII85DecoderStream.Seek........................ 92 1.4.11 TASCII85DecoderStream.BExpectBoundary................. 92 1.5 TASCII85EncoderStream................................ 92 1.5.1 Description................................... 92 1.5.2 Method overview................................ 93 1.5.3 Property overview............................... 93 1.5.4 TASCII85EncoderStream.Create........................ 93 1.5.5 TASCII85EncoderStream.Destroy....................... 93 1.5.6 TASCII85EncoderStream.Write.......................
    [Show full text]
  • FCL Reference Guide
    Free Component Library (FCL): Reference guide. Reference guide for FCL units. Document version 2.1 November 2010 Michaël Van Canneyt Contents 0.1 Overview........................................ 54 1 Reference for unit ’ascii85’ 55 1.1 Used units........................................ 55 1.2 Overview........................................ 55 1.3 Constants, types and variables............................. 55 1.3.1 Types...................................... 55 1.4 TASCII85DecoderStream................................ 55 1.4.1 Description................................... 55 1.4.2 Method overview................................ 56 1.4.3 Property overview............................... 56 1.4.4 TASCII85DecoderStream.Create........................ 56 1.4.5 TASCII85DecoderStream.Decode....................... 56 1.4.6 TASCII85DecoderStream.Close........................ 57 1.4.7 TASCII85DecoderStream.ClosedP....................... 57 1.4.8 TASCII85DecoderStream.Destroy....................... 57 1.4.9 TASCII85DecoderStream.Read........................ 57 1.4.10 TASCII85DecoderStream.Seek........................ 58 1.4.11 TASCII85DecoderStream.BExpectBoundary................. 58 1.5 TASCII85EncoderStream................................ 58 1.5.1 Method overview................................ 58 1.5.2 Property overview............................... 58 1.5.3 TASCII85EncoderStream.Create........................ 58 1.5.4 TASCII85EncoderStream.Destroy....................... 59 1.5.5 TASCII85EncoderStream.Write........................ 59 1.5.6 TASCII85EncoderStream.Width.......................
    [Show full text]
  • Competition Environment
    Competition Environment Contents 1 General 2 2 Hardware 2 3 Linux 2 4 Windows 4 1 CEOI 2003, Germany Competition environment 1 General Please first check the general information about the competition programming environment from the Competition Rules. The main environment for the contest is Linux. Linux is available as a programming environment (specifications below) and also the servers and evaluation (grading) runs on Linux. However, we provide the contestants with dual-boot computers where you can program either in Linux or in Windows environment. The evaluation is based on source-code submission and the evaluation system compiles the sub- mitted source code. As a consequence, also the programs written in the Windows environment are re-compiled for evaluation in Linux (using the same compiler). This is something that all contes- tants using Windows must be aware of. For example, uninitialized variables may cause undefined behavior when executing for the evaluation. We favor fairly standard operating system installations, but we may modify the installations for hardware support and security fixes. The compilers used in the competition are GCC for C and C++ programs and Freepascal for Pascal programs. Generally, the installations are designed for the following main alternatives: 1. Pascal as the programming language, Freepascal compiler, Freepascal IDE or RHIDE IDE. 2. C/C++ as the programming language, GCC compiler, RHIDE IDE. 3. Editors (emacs, vim, ...), command-line compilation/debugging, a graphical front end ddd for debugging. Option 3 is targeted primarily for Linux, although it is possible to use Windows Edit and command- line compilation. 2 Hardware The competition computers have Pentium III/650 MHz or better processor, 128 MB or more RAM, a standard UK keyboard, a mouse, and a color screen.
    [Show full text]
  • IDK Basic Developer's Guide
    Basic Developer’s Guide P/N UD 028155 The names, places, and/or events used in this publication are not intended to correspond to any individual, group, or association existing, living, or otherwise. Any similarity or likeness of the names, places, and/or events with the names of any individual, living or otherwise, or that of any group or association is purely coincidental and unintentional. NO WARRANTIES OF ANY NATURE ARE EXTENDED BY THIS DOCUMENT. Any product or related information described herein is only furnished pursuant and subject to the terms and conditions of a duly executed agreement to purchase or lease equipment or to license software. The only warranties made by Unisys, if any, with respect to the products described in this document are set forth in such agreement. Unisys cannot accept any financial or other responsibility that may be the result of your use of the information in this document or software material, including direct, special, or consequential damages. You should be very careful to ensure that the use of this information and/or software material complies with the laws, rules, and regulations of the jurisdictions with respect to which it is used. The information contained herein is subject to change without notice. Revisions may be issued to advise of such changes and/or additions. © 1993 Unisys Corporation. All rights reserved. RESTRICTED RIGHTS LEGEND Use, reproduction, or disclosure is subject to the restrictions set forth in DFARS 252.227–7013 and FARS 52.227–14 for commercial computer software. Attachmate and the Attachmate logo are registered trademarks of Attachmate Corporation in the United States and other countries.
    [Show full text]
  • The Python Papers
    The Python Papers Volume 3, Issue 1 pythonpapers.org Journal Information The Python Papers ISSN: 1834-3147 Editors Tennessee Leeuwenburg Maurice Ling Richard Jones Stephanie Chong Referencing Information Articles from this edition of this journal may be referenced as follows: Author, “Title” (2007) The Python Papers, Volume N, Issue M, pp. m:n e.g. Maurice Ling, “Firebird Database Backup by Serialized Database Table Dump” (2007) The Python Papers, Volume 2, Issue 1, pp. 7:15. Copyright Statement © Copyright 2007 The Python Papers and the individual authors This work is copyright under the Creative Commons 2.5 license subject to Attribution, Noncommercial and Share-Alike conditions. The full legal code may be found at http://creativecommons.org/licenses/by-ncsa/2.1/au/ The Python Papers was first published in 2006 in Melbourne, Australia. Referees An academic peer-review was performed on all academic articles. A list of reviewers will be published in each December issue. This has been done in order to ensure the anonymity of reviewers for each paper. The Python Papers, Volume 3, Issue 1 1 The Python Papers Volume Three, Issue One : March 2008 In this Edition: Articles and Editorials: Editorial Page 3 Editor-In-Chief, Tennessee Leeuwenburg Pyfundamentalism: The Emotions Provoked by Python Pages 5-6 Gloria W. Jacobs When doing a search for the term “Pyvangelism”, I found this link: http://webpages.cs.luc.edu/~mt/Python-First/Py1.html, which is a small series of slides, succinctly written by yet another Python fanatic. The words fanaticism and evangelism imply the crossing of a boundary from rational to purely emotional state of mind.
    [Show full text]
  • Download Msfc-Std-3528.Pdf
    MSFC-STD-3528 National Aeronautics and REVISION E Space Administration EFFECTIVE DATE: 10-JAN-2017 George C. Marshall Space Flight Center Marshall Space Flight Center, Alabama 35812 EV32 MSFC TECHNICAL STANDARD COMPUTER-AIDED DESIGN (CAD) STANDARD Approved for Public Release; Distribution Unlimited CHECK THE MASTER LIST VERIFY THAT THIS IS THE CORRECT VERSION BEFORE USE MSFC Technical Standard EV32 Title: Computer-Aided Document No.: MSFC-STD-3528 Revision: Revision E Design (CAD) Standard Effective Date: 10-JAN-2017 Page 2 of 98 DOCUMENT HISTORY LOG Status (Baseline/ Revision/ Document Effective Canceled) Revision Date Description Baseline - September 30, Initial release of document. 2008 Revision A January 14, General throughout: Changed “As-Manufactured” to “As-Designed”. 2009 Section 3.1: Changed MKS for Meter Kilogram Second to mmKS for millimeter Kilogram Second Section 3.2: Inserted definition of Configuration Item and renumbered accordingly. Updated definition of End Item. Section 4.1.5.1 b: Changed Meter Kilogram Second (MKS) to millimeter Kilogram Second (mmKS). Section 4.1.6.1: Added “inches for English start parts and 0.00127 millimeters for metric start parts” to the end of the first sentence. Section 8.6.8 was: “A WT Part that is to be used outside of its product context is typically an “End Item” and will have a special WT Part object assigned. These end items are normally “Major Assemblies” such as an Aft Skirt or an Instrument Unit.” Section 8.10.1: Inserted Latest Design as a Configuration and updated the definition for Latest, Latest Workgroup Approved, and Latest Released. Section 8.13.2: Updated role names.
    [Show full text]
  • Pygtk 2.0 Tutorial
    PyGTK 2.0 Tutorial John Finlay PyGTK 2.0 Tutorial by John Finlay Published April 13, 2005 This tutorial describes the use of the Python PyGTK module. Table of Contents 1. Introduction ................................................................................. 1 1.1. Exploring PyGTK .................................................................... 2 2. Getting Started .............................................................................. 4 2.1. Hello World in PyGTK ................................................................ 6 2.2. Theory of Signals and Callbacks ....................................................... 8 2.3. Events ............................................................................. 10 2.4. Stepping Through Hello World ........................................................ 12 3. Moving On ................................................................................ 16 3.1. More on Signal Handlers ............................................................. 16 3.2. An Upgraded Hello World ............................................................ 16 4. Packing Widgets ........................................................................... 19 4.1. Theory of Packing Boxes ............................................................. 19 4.2. Details of Boxes ..................................................................... 19 4.3. Packing Demonstration Program ...................................................... 22 4.4. Packing Using Tables ...............................................................
    [Show full text]
  • FCL Reference Guide
    Free Component Library (FCL) : Reference guide. Reference guide for FCL units. Document version 1.9 May 2003 Michaël Van Canneyt Contents 1 Reference for unit ’Classes’ 21 1.1 Used units ........................................ 21 1.2 Overview ........................................ 21 1.3 Constants, types and variables ............................. 21 Constants ........................................ 21 Types .......................................... 23 Variables ........................................ 30 1.4 Procedures and functions ................................ 31 BeginGlobalLoading .................................. 31 Bounds ......................................... 32 CollectionsEqual .................................... 32 EndGlobalLoading ................................... 32 FindClass ........................................ 32 FindNestedComponent ................................. 32 GetClass ......................................... 33 GetFixupInstanceNames ................................ 33 GetFixupReferenceNames ............................... 33 GlobalFixupReferences ................................. 34 IdentToInt ........................................ 34 InitComponentRes ................................... 34 InitInheritedComponent ................................. 34 IntToIdent ........................................ 35 LineStart ........................................ 35 NotifyGlobalLoading .................................. 35 ObjectBinaryToText ................................... 35 ObjectResourceToText ................................
    [Show full text]
  • All Installed Packages .PDF
    Emperor-OS All Installed Package Editor: Hussein Seilany [email protected] www.Emperor-OS.com Emperor-has 5 package management system for installing, upgrading, configuring, and removing software. Also providing access over 60,000 software packages of Ubuntu. We per-installed several tools are available for interacting with Emperor's package management system. You can use simple command-line utilities to a graphical tools. Emperor-OS's package management system is derived from the same system used by the Ubuntu GNU/Linux distribution. We will show you the list of installed packages on Emperor-OS. The packages lists is long. Having a list of installed packages helps system administrators maintain, replicate, and reinstall Emperor-OS systems. Emperor-OS Linux systems install dependencies all the time, hence it is essential to know what is on the system. In this page you can find a specific package and python modules is installed, count installed packages and find out the version of an installed package. Download lists as PDF file or see them as html page in the following: Are you looking for all in one operating system? 70 Packages: Installed Special Packages 120 Tools: Installed Utility 260 Modules: Installed Python2 and 3 Modules 600Fonts: Installed Fonts 5 Desktops: Desktop Manager Packages 22Tools: Extra Development Tools 270 Themes: Installed Themes 40 Icons: Installed Icons 40Games: Installed Games 2533scanners: supports Scanners 2500 Cameras: supports Camera 4338Packages: All Installed Packages 2 [email protected] www.Emperor-OS.com The list installed packages: Emperor-OS Linux is an open source operating system with many utilities.
    [Show full text]
  • The NIST Mass Spectral
    NIST Standard Reference Database 1A NIST/EPA/NIH Mass Spectral Library (NIST 08) and NIST Mass Spectral Search Program (Version 2.0f) For Use with Microsoft® Windows User’s Guide The NIST Mass Spectrometry Data Center Stephen E. Stein, Director Evaluators: Anzor Mikaia, Principal Edward White V (EI) Vladimir Zaikin (EI) Damo Zhu (EI) Boris Milman (MS/MS) Valeri Babushok (RI) Igor Zenkevich (RI) Programmers: Peter Linstrom Yuri Mirokhin Dmitrii Tchekhovskoi Documentation and Help: W. Gary Mallard O. David Sparkman Joan A. Sparkman June 2008 U.S. Department of Commerce National Institute of Standards and Technology Standard Reference Data Program Gaithersburg, MD 20899 NIST 08 MS Library and MS Search Program v.2.0f Page 1 The National Institute of Standards and Technology (NIST) uses its best efforts to deliver a high-quality copy of the Database and to verify that the data contained therein have been selected on the basis of sound scientific judgment. However, NIST makes no warranties to that effect; and NIST shall not be liable for any damage that may result from errors or omissions in the Database. © 1987, 1988, 1990, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2005, 2008 copyright by the U.S. Secretary of Commerce on behalf of the United States of America. All rights reserved. No part of this Database may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the distributor. Portions of this program are also copyrighted by Microsoft Corp., XVT Software, Inc., and © 1984–1996 FairCom Corporation.
    [Show full text]