`
`BLUE COAT SYSTEMS - Exhibit 1021 Page 1
`
`
`
`.....
`
`R A Y D U N C A N
`
`ADVANCED
`
`®
`
`PROGRAMMING
`
`The
`
`Microsoft®
`
`guide for
`
`Assembly
`
`Language
`
`andC
`
`programmers
`
`®
`
`BLUE COAT SYSTEMS - Exhibit 1021 Page 2
`
`
`
`PUBLISHED BY
`Microsoft Press
`A Division of Microsoft Corporation
`16011 NE 36th Way, Box 97017, Redmond, Washington 98073-9717
`
`Copyright © 1986, 1988 by Ray Duncan
`Published 1986. Second edition 1988.
`All rights reserved. No part of the contents of this book may
`be reproduced or transmitted in any form or by any means without
`the written permission of the publisher.
`
`Library of Congress Cataloging in Publication Data
`
`Duncan, Ray, 1952-
`Advanced MS-DOS programming.
`Rev. ed. of: Advanced MS-DOS. ©1986.
`Includes index.
`1. MS-DOS (Computer operating system) 2. Assembler language
`(Computer program language) 3. C (Computer program language)
`I. Duncan, Ray, 1952-
`Advanced MS-DOS.
`II. Title.
`QA76.76.o63D858
`1988
`005.4'46
`88-1251
`ISBN 1-55615-157-8
`Printed and bound in the United States of America.
`
`123456789
`
`FGFG
`
`321098
`
`Distributed to the book trade in the United States
`by Harper & Row.
`
`Distributed to the book trade in Canada by General
`Publishing Company, Ltd.
`
`Penguin Books Ltd. , Harmondworth, Middlesex, England
`Penguin Books Australia Ltd., Ringwood, Victoria, Australia
`Penguin Books N.Z. Ltd. , 182-190 Wairu Road, Auckland 10, New Zealand
`
`British Cataloging in Publication Data available
`
`IBM~ PC/ A~ and PS/2® are registered trademarks of International Business Machines Corporation. CodeView<Z:
`Microsoft~ MS-DOS~ and XENJX® are registered trademarks and InPortn• is a trademark of Microsoft Corporation.
`
`Technical Editor: Mike Halvorson Production Editor: Mary Ann Jones
`
`BLUE COAT SYSTEMS - Exhibit 1021 Page 3
`
`
`
`BLUE COAT SYSTEMS - Exhibit 1021 Page 4
`
`BLUE COAT SYSTEMS - Exhibit 1021 Page 4
`
`
`
`Notes to the Reader
`This section documents the services that the MS-DOS kernel provides to
`application programs via software interrupts 20H-2FH. Each MS-DOS
`function is described in the same format:
`
`• A heading containing the function's name, software interrupt and
`function number, and an icon indicating the MS-DOS version in which
`the function was first supported. You can assume that the function is
`available in all subsequent MS-DOS versions unless explicitly noted
`otherwise.
`
`• A synopsis of the actions performed by the function and the circum(cid:173)
`stances under which it would be used.
`
`• A summary of the function's arguments.
`
`• The results and/ or error indicators returned by the function. A com(cid:173)
`prehensive list of error codes can be found in the entry forInt 21H
`Function 59H.
`
`• Notes describing special uses or dependencies of the function.
`
`• A skeleton example of the function's use, written in assembly language.
`
`Version icons used in the synopsis, arguments, results, or Notes sections
`refer to specific minor or major versions, unless they include a + sign to in(cid:173)
`dicate a version and all subsequent versions.
`
`For purposes of clarity, the examples may include instructions that would
`not be necessary if the code were inserted into a working program. For
`example, most of the examples explicitly set the segment registers when
`passing the address of a filename or buffer to MS-DOS; in real applica(cid:173)
`tions, the segment registers are usually initialized once at entry to the pro(cid:173)
`gram and left alone thereafter.
`
`334
`
`Section II
`
`BLUE COAT SYSTEMS - Exhibit 1021 Page 5
`
`
`
`Int 21H Function Summary by Number
`
`Hex
`OOH
`OlH
`02H
`03H
`04H
`OSH
`06H
`07H
`08H
`09H
`OAH
`OBH
`OCH
`ODH
`OEH
`OFH
`lOH
`llH
`12H
`13H
`14H
`ISH
`16H
`17H
`18H
`19H
`lAH
`lBH
`lCH
`lDH
`lEH
`lFH
`20H
`21H
`22H
`23H
`24H
`25H
`26H
`27H
`28H
`29H
`
`Dec
`
`0
`1
`2
`3
`4
`5
`6
`7
`8
`9
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`26
`27
`28
`29
`30
`31
`32
`33
`34
`35
`36
`37
`38
`39
`40
`41
`
`Function name
`Terminate Process
`Character Input with Echo
`Character Output
`Auxiliary Input
`Auxiliary Output
`Printer Output
`Direct Console I/0
`Unfiltered Character Input Without Echo
`Character, Input Without Echo
`Display String
`Buffered Keyboard Input
`Check Input Status
`Flush Input Buffer and Then Input
`Disk Reset
`Select Disk
`Open File
`Close File
`Find First File
`Find Next File
`Delete File
`Sequential Read
`Sequential Write
`Create File
`Rename File
`Reserved
`Get Current Disk
`Set DTA Address
`Get Default Drive Data
`Get Drive Data
`Reserved
`Reserved
`Reserved
`Reserved
`Random Read
`Random Write
`Get File Size
`Set Relative Record Number
`Set Interrupt Vector
`Create New PSP
`Random Block Read
`Random Block Write
`Parse Filename
`
`Vers F/H 1
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`
`F
`F
`F
`F
`F
`F
`F
`F
`F
`
`1.0+
`1.0+
`1.0+
`2.0+
`
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`
`F
`F
`F
`F
`
`F
`F
`
`1 Specifies whether file functions are FCB- or handle-related.
`
`(continued)
`
`MS-DOS Functions Reference
`
`335
`
`BLUE COAT SYSTEMS - Exhibit 1021 Page 6
`
`
`
`Int 21H Function Summary by Number continued
`
`Hex
`2AH
`2BH
`2CH
`2DH
`2EH
`2FH
`30H
`31H
`32H
`33H
`34H
`35H
`36H
`37H
`38H
`39H
`3AH
`3BH
`3CH
`3DH
`3EH
`3FH
`40H
`41H
`42H
`43H
`44H
`45H
`46H
`47H
`48H
`49H
`4AH
`4BH
`4CH
`4DH
`4EH
`4FH
`SOH
`51H
`52H
`53H
`
`Dec
`
`42
`43
`44
`45
`46
`47
`48
`49
`50
`51
`52
`53
`54
`55
`56
`57
`58
`59
`60
`61
`62
`63
`64
`65
`66
`67
`68
`69
`70
`71
`72
`73
`74
`75
`76
`77
`78
`79
`80
`81
`87
`83
`
`Function name
`Get Date
`Set Date
`Get Time
`Set Time
`Set Verify Flag
`Get DTA Address
`Get MS-DOS Version Number
`Terminate and Stay Resident
`Reserved
`Get or Set Break Flag, Get Boot Drive
`Reserved
`Get Interrupt Vector
`Get Drive Allocation Information
`Reserved
`Get or Set Country Information
`Create Directory
`Delete Directory
`Set Current Directory
`Create File
`Open File
`Close File
`Read File or Device
`Write File or Device
`Delete File
`Set File Pointer
`Get or Set File Attributes
`IOCTL (VO Control)
`Duplicate Handle
`Redirect Handle
`Get Current Directory
`Allocate Memory Block
`Release Memory Block
`Resize Memory Block
`Execute Program (EXEC)
`Terminate Process with Return Code
`Get Return Code
`Find First File
`Find Next File
`Reserved
`Reserved
`Reserved
`Reserved
`
`Vers
`
`F/ H
`
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`2.0+
`2.0+
`2.0+
`
`2.0+
`
`2.0+
`2.0+
`
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`
`H
`H
`H
`H
`H
`H
`H
`
`H
`H
`
`(continued)
`
`336
`
`Section II
`
`BLUE COAT SYSTEMS - Exhibit 1021 Page 7
`
`
`
`Int 21H Function Summary by Number continued
`
`Hex
`54H
`55H
`56H
`57H
`58H
`59H
`5AH
`5BH
`5CH
`5DH
`5EH
`5FH
`60H
`61H
`62H
`63H
`64H
`65H
`66H
`67H
`68H
`69H
`6AH
`6BH
`6CH
`
`Dec
`
`84
`85
`86
`87
`88
`89
`90
`91
`92
`93
`94
`95
`96
`97
`98
`99
`100
`101
`102
`103
`104
`105
`106
`107
`108
`
`3.3+
`3.3+
`3.3+
`3.3+
`
`4.0+
`
`Vers
`2.0+
`
`2.0+
`2.0+
`3.0+
`3.0+
`3.0+
`3.0+
`3.0+
`
`3.0+
`2.25 only
`
`Function name
`Get Verify Flag
`Reserved
`Rename F\le
`Get or Set File Date and Time
`Get or Set Allocation Strategy
`Get Extended Error Information
`Create Temporary File
`Create New File
`Lock or Unlock File Region
`Reserved
`Get Machine Name, Get or Set Printer Setup 3.1+
`Device Redirection
`3.1+
`Reserved
`Reserved
`Get PSP Address
`Get DBCS Lead Byte Table
`Reserved
`Get Extended Country Information
`Get or Set Code Page
`Set Handle Count
`Commit File
`Reserved
`Reserved
`Reserved
`Extended Open File
`
`F/ H
`
`H
`
`H
`H
`H
`
`H
`
`H
`
`Int 21H Function Summary by Category
`
`Hex
`Dec
`Character 1/ 0
`OlH
`1
`2
`02H
`03H
`3
`04H
`4
`05H
`5
`06H
`6
`07H
`7
`08H
`8
`
`Function name
`
`Vers
`
`F/ H
`
`Character Input with Echo
`Character Output
`Auxiliary Input
`Auxiliary Output
`Printer Output
`Direct Console I/ 0
`Unfiltered Character Input Without Echo
`Character Input Without Echo
`
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`
`(continued)
`
`MS-DOS Functions Reference
`
`337
`
`BLUE COAT SYSTEMS - Exhibit 1021 Page 8
`
`
`
`Int 21H Function Summary by Category continued
`
`Hex
`09H
`OAH
`OBH
`OCH
`
`Dec
`
`9
`10
`11
`12
`
`File Operations
`OFH
`15
`lOH
`16
`llH
`17
`12H
`18
`13H
`19
`16H
`22
`17H
`23
`23H
`35
`41
`29H
`60
`3CH
`3DH
`61
`62
`3EH
`41H
`65
`43H
`67
`45H
`69
`46H
`70
`4EH
`78
`4FH
`79
`86
`56H
`57H
`87
`90
`5AH
`5BH
`91
`67H
`103
`68H
`104
`6CH
`108
`
`Function name
`Display String
`Buffered Keyboard Input
`Check Input Status
`Flush Input Buffer and Then Input
`
`Open File
`Close File
`Find First File
`Find Next File
`Delete File
`Create File
`Rename File
`Get File Size
`Parse Filename
`Create File
`Open File
`Close File
`Delete File
`Get or Set File Attributes
`Duplicate Handle
`Redirect Handle
`Find First File
`Find Next File
`Rename File
`Get or Set File Date and Time
`Create Temporary File
`Create New File
`Set Handle Count
`Commit File
`Extended Open File
`
`Record Operations
`14H
`20
`21
`15H
`1AH
`26
`21H
`33
`22H
`34
`24H
`36
`27H
`39
`28H
`40
`2FH
`47
`3FH
`63
`
`Sequential Read
`Sequential Write
`Set DTA Address
`Random Read
`Random Write
`Set Relative Record Number
`Random Block Read
`Random Block Write
`Get DTA Address
`Read File or Device
`
`Vers
`
`F/ H
`
`1.0+
`1.0+
`1.0+
`1.0+
`
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`3.0+
`3.0+
`3.3+
`3.3+
`4.0+
`
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`1.0+
`2.0+
`2.0+
`
`F
`F
`F
`F
`F
`F
`F
`F
`F
`H
`H
`H
`H
`
`H
`H
`
`H
`H
`H
`
`H
`H
`
`F
`F
`
`F
`F
`F
`F
`F
`
`H
`
`(continued)
`
`338
`
`Section II
`
`BLUE COAT SYSTEMS - Exhibit 1021 Page 9
`
`
`
`Int 21H Function Summary by Category continued
`
`Hex
`40H
`42H
`5CH
`
`Dec
`64
`66
`92
`
`Function name
`Write File or Device
`Set File Pointer
`Lock or Unlock File Region
`
`Directory Operations
`Create Directory
`39H
`57
`Delete Directory
`3AH
`58
`Set Current Directory
`3BH
`59
`47H
`Get Current Directory
`71
`
`Disk Management
`ODH
`13
`OEH
`14
`25
`19H
`lBH
`27
`1CH
`28
`2EH
`46
`36H
`54
`84
`54H
`
`Disk Reset
`Select Disk
`Get Current Disk
`Get Default Drive Data
`Get Drive Data
`Set Verify Flag
`Get Drive Allocation Information
`Get Verify Flag
`
`Process Management
`OOH
`Terminate Process
`0
`26H
`Create New PSP
`38
`Terminate and Stay Resident
`31H
`49
`Execute Program (EXEC)
`4BH
`75
`4CH
`Terminate Process with Return Code
`76
`4DH
`Get Return Code
`77
`62H
`Get PSP Address
`98
`
`Memory Management
`48H
`Allocate Memory Block
`72
`Release Memory Block
`49H
`73
`4AH
`74
`Resize Memory Block
`Get or Set Allocation Strategy
`58H
`88
`
`Vers
`2.0+
`2.0+
`3.0+
`
`F/H
`H
`H
`H
`
`2.0+
`2.0+
`2.0+
`2.0+
`
`1.0+
`1.0+
`1.0+
`1.0+
`2.0+
`1.0+
`2.0+
`2.0+
`
`1.0+
`1.0+
`2.0+
`2.0+
`2.0+
`2.0+
`3.0+
`
`2.0+
`2.0+
`2.0+
`3.0+
`
`Network Functions
`5EH
`94
`5FH
`95
`
`Get Machine Name, Get or Set Printer Setup 3.1+
`Device Redirection
`3.1+
`
`Time and Date
`2AH
`42
`2BH
`43
`2CH
`44
`2DH
`45
`
`Get Date
`Set Date
`Get Time
`Set Time
`
`1.0+
`1.0+
`1.0+
`1.0+
`
`(continued)
`
`MS-DOS Functions Reference
`
`339
`
`BLUE COAT SYSTEMS - Exhibit 1021 Page 10
`
`
`
`Int 21H Function Summary by Category continued
`
`Hex
`
`Dec
`
`Function name
`
`Vers
`
`F/ H
`
`Miscellaneous System Functions
`25H
`37
`Set Interrupt Vector
`30H
`48
`Get MS-DOS Version Number
`33H
`51
`Get or Set Break Flag, Get Boot Drive
`35H
`53
`Get Interrupt Vector
`38H
`56
`Get or Set Country Information
`44H
`68
`IOCTL (I/0 Control)
`Get Extended Error Information
`89
`59H
`Get Lead Byte Table
`99
`63H
`101
`Get Extended Country Information
`65H
`66H
`102
`Get or Set Code Page
`
`1.0+
`2.0+
`2.0+
`2.0+
`2.0+
`2.0+
`3.0+
`2.25 only
`3.3+
`3.3+
`
`Reserved Functions
`18H
`24
`lDH
`29
`lEH
`30
`lFH
`31
`20H
`32
`32H
`50
`52
`34H
`37H
`55
`80
`SOH
`81
`51H
`82
`52H
`83
`53H
`55H
`85
`SDH
`93
`96
`60H
`61H
`97
`100
`64H
`105
`69H
`6AH
`106
`6BH
`107
`
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`Reserved
`
`340
`
`Section II
`
`BLUE COAT SYSTEMS - Exhibit 1021 Page 11