• Keine Ergebnisse gefunden

(1)(2) TurboDOS 1.3 8086 Programmer's Guide

N/A
N/A
Protected

Academic year: 2022

Aktie "(1)(2) TurboDOS 1.3 8086 Programmer's Guide"

Copied!
211
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

(2) TurboDOS 1.3 8086 Programmer's Guide. CoIZyright. Notice. NOTICES. Copyright 1984 rights reserved.. Software 2000, Inc. All part of this publication be reproduced, may transmitted, transcribed, system, or translated stored in a retrieval any language or computer language, in into form mechaany or by any means, electronic, nical, magnetic, optical, chemical, manual or otherwise, without the prior written permission of Software 2000, Inc., 1127 Hetrick Avenue, Arroyo Grande, California 93420, by. No. U.S.A.. Trademark. Disclaimer. Notice. is. a TurboDOS trademark of Software 2000, Inc., and has been registered in the United States and in most major countries of the CP/M free world. CP/M, CP/M Plus, Concurrent and MP/M are trademarks of Digital Research.. Software 2000, Inc., makes no representations or warranties with respect to the contents ot and specifically this publication, disclaims any implied warranties of merchantability or fitness for any particular purpose. Software 2000, Inc., shall under no circumstances be for consequential damages or related liable expenses, even if it has been notified of the possibility of such damages. Software 2000, Inc., reserves the right to revise this publication from time to time without obligation to notify any person of such revision.. l. [ l. First. Edition:. january. 1984. l.

(3) TurboDOS 1.3 8086 Programmer's Guide. ABOUT. THIS. ABOUT. THIS. GUIDE. GUIDE. purpose. We've. Assumptions. In writing this guide, we've assumed that you program— are an experienced assembly-language mer writing application programs for the 8086 We've also assumed you TurboDOS environment. aná jzsjzLLa Guide, have read the Tl1rr)opn,s are therefore familiar with the commands and external features of TurboDOS.. designed Guü& this 8Q8£ ProqrÁmmer'¶ to provide the information you need to know in order to write application software to run under on 8086-family microcomputers the TurboDOS This document operating system. explains the theory of operation of each TurboDOS. of internal It also describes facility in detail each TurboDOS function that may be called by an application program.. =. Organization. This guide starts with a section that describes the fundamentals of the TurboDOS emphasis organiza— on the environment, with tion of memory and the interface and flow of control between application programs and the operating system. next two sections explain TurboDOS inter— rials in more detail. One describes the file and the other describes serial system, I/O.. The. reference sections that explain One function call in detail. functions section describes CP/M-cowpatible by TurboDOS, while the other supporteá describes functions unique to TurboDOS.. There are two each TurboDOS. describe the TurboDOS 8086 assemlinker, aand debugger. The document bler, concludes summary of function with callsr and an alphabetical index.. Appendices.

(4) 1.3 Programner's. TurboDOS. Related. ABOUT. 8086 Guide. Documents. THIS. GUIDE. (Continued). to this guide, you might In addition interested in four other related documents:. =. .. T\}rpQDoS. .. 'Mrhopo8. .. Tnrbop® L,á. .. TnrMpo8. be. VserLa Tm.p1eTrLentor'sí. L,Á. =. proqraTnmer'5. L.3, Z&Q Tmp1ementor's. Gaí9e gjjjcÍp. Gaiáe should read before you the introduces start into this document. It of TurboDOS,the external features and facilities command in de— and describes each TurboDOS You. tail.. T.mp1ementor'R the adapting TurboDOS to a new hardware gene— system configuration. It explains the procedures, and ration and OEM distribution also describes how to implement hardware— dependent driver modules. need. You'll you. are. You'll granuríing that. if. you are pro— the Z80 guides a TurboDOS system or configuring Z80 microprocessors.. need. uses. if. =.

(5) 1.3 Programner's. TurboDOS. FUNDAMENTALS. 8086 Guide. TABLE. Organization Execution Models . Memory. 8080 Model . . Small Model . . Compact Model . Comand Files . . Program Interface. Prompt Command Format. FILE. SYSTEM. .. .. .. .. Numbers. File Sharing File Locks Record. Locks. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. Disk Capacity . . . Disk Organization . Directory Formats . File Organization . File Operations . . Naming Files . . . Special File Names File Control Block File Attributes . . User. . .. .. .. .. . .. .. Tail Parsing . . Command Strings . Batch Processing Automatic Loading Base page Layout . SYstem Start-Up . . Summary. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. Error Handling. l-9 l-9 l-9 l-lO. l-lO. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. l-11 l-11 l-12 l-15 l-16. .. .. .. .. .. .. .. .. .. .. 2-l. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. l-8 l-8. .. Compatibility Modes Files . . . . . Buffer Management . . Changes. l-1 l-2 l-2 l-3 l-4 l-5 l-6 l-6. .. FIFO. Media. CONTENTS. .. C-Functions . . . T-Functions . . . Termination . . . Command Processing Command. OF. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 2-2 2-3 2-3 2-4 2-6 2-7 2-7 2-9 2-lO. 2-lO. 2-ll. 2-12 2-13 2-15 2-17 2-18 2-18.

(6) TurboDOS 1.3 8086 Programmer's Guide. SERIAL. I/O. TABLE. (Continued). I/O . . . . . Console I/O . Raw Console I/O . . String Console I/O Attention Requests Com Channel I/O . . Con8ole Basic. printer Output . . Basic Printing . Control Functions. C-FUNCTIONS. CONTENTS. OF. Introduction C-Function O:. C—Function. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 3-2 3-2 3-3 3-4 3-5 3-5 3-5. 4-l. . . . . . . . . . . System Reset . . . Console Input . . . Console Output . . Raw Console Input . Raw Console Output. I: C-Function 2: C-Function 3: C—Function 4: C-Function 5: List Output . C-Function 6: Direct Console C—Function 7: Get I/O Byte C-Function 8: Set I/O Byte C-Function 9: Print String C—Function C—Function C—Function. .. .. I/O. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. Buffer Status . II: 12: Return version . . . C-Function 13: Reset Disk System . C-Function 14: Select Disk . . . . C-Function 15: Open File . . . . . C-Function 16: Close File . . . . . C-Function 17: Search for First . . C-Function 18: Search for Next . . C-Function 19: Delete File . . . . C-Function 20: Read Sequential . . C-Function 21: Write Sequential . . C-Function 22: Make File . . . . . C-Hmction 23: Rename File . . . . C-Function 24: Return Login Vector C-Function 25: Return Current Disk C-Function 26: Set DMA Offset . . . C-Function 27: Get ALV Address . . C-Function 28: Write Protect Disk . C-Function 29: Get Read-Only Vector C-Function 30: Set File Attributes 10:. 3-l 3-l. . .. Read Console Get Console. .. .. .. .. .. .. .. .. .. .. . .. . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 4-2 4-3 4-4 4-") 4-6 4-7 4-8. 4-lO. 4-ll 4-12 4-13 4-14 4-15 4-16 4-17. 4-18. 4-19 4-20 4-22 4-23 4-24 4-25 4-26 4-27 4-28 4-29 4-30 4-31 4-32 4-33. 4-34.

(7) 1.3 Programner's. TurboOOS. C-FUNCTIONS (Continued). T-FUNCTIONS. 8086 Guide. TABLE. C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Punction C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Function C-Function. 31: 32: 33: 34: 35: 36: 37: 40: 42: 43: 46: 47: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 104: 105: 107: 108: 110:. OF. CONTENTS. (Continued). Address . . . . User Number . . Read Random . . . . . . Write Random . . . . . . Compute File Size . . . Set Random Record . . . Reset Drive . . . . . . Write Random Zero . Lock Record . . . . . . Unlock Record . . . . . Get Disk Free Space . . Chain to Progr= . . . . Direct BIOS Call . . . . Set DMA Base . . . . . . DMA Address Return . . . Al1oc Max Mewory . . . . Alloc Abs Max Meutory . . Allocate Memory . . . . Alloc Abs Memory . . . . Free Memory . . . . . . Free Memory . . . . Load Program . . . . . . Set Date and Time . . . Get Date and Time . . . Return Serial Number . Get/Set Return Code . . Get. .. .. .. .. .. .. .. .. 4-35 4-36 4-37 4-38 4-39 4-40 4-41 4-42 4-43 4-44 4-45 4-46 4-47 4-49 4-50 4-51 4-52 4-53 4-54 4-55 4-56 4-57 4-58 4-59 4-60 4-61 4-62 4-63 4-64 4-65. .. .. 5-l. dfib. Get/Set. Fill. All. Get/Set Delimiter. Print Block III: 112: List Block 152: Parse Filename. .. .. .. .. .. .. .. .. .. .. .. Introduction . . . . . . . . . . . T-Function O: Reset Operating System T-Function l: Create process . . . T-Function 2: Delay Process . . . . T-Function 3: Allocate Memory . . . T-Function 4: Deallocate Memory . . T-Punction 5: Send I/P Message . . T-Function 6: Receive I/P Message . T-Function 7: Set Error Address . . T-Function 8: Set Abort Addres6 . . T-Function 9: Set Date and Time . .. . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 5-2 5-3 5-4 5-5 5-6 5-7 5-8 5-9 5-lO. 5-ll.

(8) TurboDOS. 1.3 Programner's. T-FUNCTIONS (Continued). 8086 Guide. TABLE. CONTENTS. (Continued). T-Function IQ:. T—Function. Get. li:. T—Function. 20: 21: 22: 23:. T-Function T-Function T-Function T-Function T-Function T-Function T-Function T-Function T-Function T-Function T-Function T-Function T-Function T-Function T-Function T-Function T-Function T-Function T-F'unction T-Function T-Function T-Function TASM. TLINK TBUG. 24: 25: 26: 27: 28: 29:. 30: 31:. 32:. Set Get Set Get. .. Out. .. .. Com. Co~. .. .. Baud Baud. Rate Rate. . .. Modem Mod@. Controls . Status . . User-Defined Function Reorg Disk Directory. .. .. .. .. .. Debugger . . Stmmary Sununary .. List. Network. 37: 38: 39: 40: 41: 42:. A8s0bler Linker. .. Time. Reote Console I/O . 34: Get Co~ Status . . 35: Com Channel Input . 36: Comi Channel Output 33:. .. C-Function T-Function Index. and. Date. .. Rebuild Disk Map . . . Return Serial Number . Set Compatibility . . Log-On/Log-Off . . . . Load File . . . . . . Activate Do-Pile . . . Dis/Enab1e Autoload . Send Command Line . . Return Alloc Info . . Return Physical Info . Get/Set Drive Status . physical Disk Access . Set Buffer Parameters Get Buffer Parameters Lock/Uníock Drive . . Flush/Free Buffers . . Get/Set Print Mode . . Signal End-of-Print . Get/Set De-Spool Mode Queue a Print File . . Flush List Buffer . .. T-Function 12: T-punction 13: T-Function 14: T-Function 15: T-Function 16: T-Function 17: T-Punction IB: T-Function 19:. APPENDICES. OF. .. .. .. . .. . . . . . . . .. . . . .. . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. . .. .. .. .. . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. .. .. .. .. .. .. .. .. .. .. .. .. .. 5-12 5-13 5-14 5-15 5-16 5-17 5-18 5-19 5-20 5-21 5-22 5-23 5-24 5-26 5-27 5-28 5-29 5-30 5-31 S-32 5-33 5-34 5-35 5-36 5-37 5-38 5-39 5-40 5-41 5-42 5-43 5-44 5-45. A-l B-l C-l D-l E-l F-l.

(9) TurboDOS 1.3 8086 Guide Programmer's. FUNDAMRmLs. Memory. Organization. FUNDAMENTALS. This section introduces you to the TurboDOS Emphasis is given to the orgaenvironment. nization of memory, and to the interface and flow of control between application programs and the operating system. Subsequent sections describe the file system and other facilities in detail. The may be portion of TurboDOS resident anywhere in the one-megabyte address space supported by an 8086-family CPU. Usually,. it 0040: 0000 hex, the lower IK reserved by immediately the 8086 architecture for interrupt vectors. Immediately following the TurboDOS resident is an area of memory reserved for disk buffers and other dynamic working storage. The remaining memory space available for use by commands and application programs is known (TPA). as the "Transient Program Area" location above. is loaded. at. I. I. l. I : :. Transient. Program. Area. : : I I. I l. Dynamic. Space. l. I. i !. Disk. Buffers. TurboDOS 0040: 0000 0000: 0000. I. l. I. 64K max. l I. l l. Tnterrnpt. \/ect.or¶. l. IK. 8086 TurboDOS, several transient into the TPA at one may be loaded (although only one may be in execution).. Under grams. l-l. protime.

(10) TurboDOS 1.3 8086 progranuner's Guide. FUNDAMENTALS. Execution. Execution. 8080. Model. Models. Models. Transient programs are .Qtored in files ot type .CMD, preceded by a header record which and memory alloca— defines the segmentation tion requirements of the program. Transient programs may be written as a single group with intermixed code and data ("8080 Model"), with separate code and data groups ("Small Model"), or with up to eight separate groups: stack, and up to four code, data, extra, auxilliary groups ("Compact Model"). defines only a code group, If the .CMDis header assumed then that the code and data portions of the program are intermixed. TurboDOS allocates a TPA segment sufficient The contain the code group. to first 256 bytes of the code group is assumed to be a between Base Page reserved for communications the operating system and the program.. it. l. l. Intermixed. : i. CS: OlOO. : !. Code/Data. 1<--ip l. l ! l. DS: OOOO. Base. _______I<--cs,ds,es 96-Byte. I. 40: 0000. I. Page. l. 0 0 : l. TurboDOS. Stack. Area. Resident. |<--SP * 0 :. |<--SS. Model", "8080 TurboDOS ES and DS, segment registers to The ip regisaddress the single code group. so that execution starts ter is set to OxOlOO The SS immediately following the Base Page. a and SP registers 96-byte point to stack area provided within TurboDOS.. initializes. this the es,. For. initially. l-2.

(11) TurboDOs. 1.3 Programner's. Smaíl. Model. 8086 Guide. FUNDAMENTALS. Execution Models (Continued). If thedata. .CMD. and code. a. the. code. header defines both a code group then group, is assumed that the. it. and. data portions of the program are separate and independent. TPAIn this case, TurboDOS segments allocates separate for allocated tiguous. the. first. and the data The two group group. segments are not necessarily conThe Base Page is assumed to occupy 256 bytes of the data group.. l. I. l. I. Code. : l. CS: OOOO. l. 1<--cs,ip. l. l. l. I. Data. : I. DS: OlOO. : I. : I. I I I. DS: OOOO. Base. |<--DS,ES. l. 40: 0000 For. the. this es. group,. ters to. l. Page. l. 96-Byte. W 0 : l. Stack. TurboDOS. Area. Resident. |<--SP *0 :. l<--ss. "Small. register. and address. Model",. TurboDOS base of the code the DS and ES registhe base of the data group. The SS and is set to zero.. to the. initializes. initializes. IP register registers initially point to stack area provided within TurboDOS.. The SP. l-3. a. 96-byte.

(12) TurboDOS. 1.3 Programner's. Compact. Model. 8086 Guide. FUNDAMBNTALS. Execution Models (Continued). .CMD header defines a code group, a and one or more additional groups group, then TurboDOS (extra, stack, or (not necesallocates separate TPA segments contiguous) for each of the groups. The Base Page is assumed to occupy the 256 bytes of the data group.. If. data. the. auxilliary),. sarily. first. l. l. CS: OOOO. Code. : I. :. 1<--CS,IP I. I. DS: OlOO. Data. : I. : (. I I. DS: OOOO. Base. I. Page. 1<--ds. l. l. I. ES: OOOO. Extra. : l. Data. :. 1<--es i. Stack/Aux. : I. :. |<--Base. l. 40: 0000. Group(s). 96-Byte. 0 ¥ : l. TurboDOS. Stack. Area. Resident. Pg.. |<--SP T 0 :. l<--ss. TurboDOS initial— this "Compact Model", to the base of izes the es and ds registers ES respectively. the code and data groups, base of the the extra group is set to present, otherwise to the data group.SS The IP The and SP register is set to zero. a stack point 96-byte registers initially to The stack and area provided within TurboDOS. may be located via pointers groups auxilliary in the Base Page. For. if. l-4.

(13) TurboDOS 1.3 8086 programmer's Guide. Comand. Files. FUNDAMENTALS. Command. Files. always transient command file (type .CMD) header a record that 128-byte with starts defines the segment structure and allocation The requirements of the transient program. header record contains from one to eight each nine bytes long. "group descriptors", The balance of the 128 bytes is zero-filled. a. < I. 1?Á GP1. Each I i. I. GP?,. 9-byte I. G-Type (PYt'ñ. i. The G-Type i. l. ,,lk. i. G-Size. i. (wrd). 3. 6. 5 7 l. G-Abs (wrd). I i. ---:. zeroesí. 8. G-Min {word). l i. group. file. G-Abs. field is ignored. mum. i. TurboDOS,. l I. l I l l. of to. and. 0xOOOO.. G-Min and G-Max fields and maximum number of allocated for this group.. The. by. I. type:. field. normally set to. > l. G-Max (woraí. The G-Size specifies the number memory-image data paragraphs of loadable be read from the .CMD for this group. The. >. this format:. has. grmip 'p/pé Code Group Data Group Extra Group Stack Group Aux-l Group Aux-2 Group Aux-3 Group l\iw-4 Grnnp. 2. I. BVtrs <----. field designates the. l 4. GPn. descriptor. group. G-7Ype. l. i. specify the miniparagraphs to be. Following the header record, the command file contains the loadable portion of each group format, in the same order as in memory-image the group descriptors in the header record.. 1"5.

(14) TurboDOS 1.3 8086 Programmer's Guide. FUNDAMENTALS. Progr=. Progr=. Interface. Interface. supports 103 different functions be invoked by an application that Functions are provided for fil-e program. management, memory management, console and spooling, and input/output, printing The various other TurboDOS facilities. last guide is largely devoted to half of this describing each of these functions in detail. TurboDOS may. Functions supported by TurboDOS fall into two CP/M-compatible and functions, categories: We TurboDOS-unique functions. refer to will and them as "C-functions" "T-functions", TurboDOS respectively. supports 60 C-functions and 43 T-Functions. C-Functions. an invoke a C-function, a program executes INT 224 (or INT OxEO) interrupt instruction with a function number in the CL-register. TurboDOS supports all CP/M-86 BDOS functions: To. O. System Reset Console Input 2 Console Output 3*Raw Console Input 4*Raw Console Output 5 List Output 6 Direct Console I/O 7 Get I/O Byte 8 Set I/O Byte. I. 9. Print String. 10 Read Cons. Buffer 11 Get Console Status 12 Return Version 13 Reset Disk System 14 Select Disk 15 Open File 16 Close File 17 Search for First 18 Search for Next 19 Delete File. l-6. 20. Read Sequential 21 Write Sequential 22 Make File 23 Rename File 24 Return Login Vector 25 Return Current Disk 26 Set DMA Address 27*Get ALV Address 28 Write protect Disk 29 Get R/O Vector 30 Set File Attributes 31 Get DPB Address 32 Get/Set User Number 33 Read Random 34 Write Random 35 Compute File Size 36 Set Random Record 37 Reset Drive (38-39 reserved) 40*Write Random O-Fill.

(15) FUNDAMENTALS. TurboDOS 1.3 8086 Guide programmer's. Program. C-Functions (Continued). BIOS Call Base DMA Base 53 Alloc Max Memory 54 Alloc Abs Max Hem. Direct DMA. 50 51. Set 52 Get. Interface (Continued). Allocate Allocate. 55. Memory Abs Memory 57 Free Memory 58 Free All Plernory 59 Program Load 56. TurboDOS These C-functions are compatible with the corresponding functions in CP/M-86 except for the four functions marked with an3 C-functions asterisk above. In TurboDOS, and 4 are compatible with MP/R-86 rather than CP/M-86. 40 is synonymous with C-function 34. performs C-function 27 (Get ALV Address) no operation in TurboDOS, but this function only the STAT utility of CP/M-86 affects which is not normally used with TurboDOS. BDOS functions In addition toCP/M-86, a number supported by functions have been implemented. CP/M-86. and. MP/M-86.. compatible C-functions functions: Lock Record Record Unlock 46 Get Free Space 47 Chain to Program 104 Set Date/Time 105 Get Date/Time 42. 43. However, are ÁQt in 8086. the following. implemented, TurboDOS:. Test and Write Set Multi-Sector 45 Set Error Mode 48 Flush Buffers 49 Get/Set SCB 60 Call RSX 98 Free Blocks 41 44. l-7. O-40. and. 50-59. of additional in Concurrent TurboDOS provides for certain of these. 107 108 110. Ill. 112 152. Return Serial No. Get/Set Rtn Code Get/Set Delimiter Print Block List Block Parse. Filename. rarely-used functions perform no function. and. 99 Truncate File lOó Set Dir Label lOl Get Dir Label 102 Read PW Mode 103 Write File XFCB 106 Set Default PW 109 Get/Set Cons Mode.

(16) TurboDOS. 1.3 Progranmer's. 8086 Guide. FUNDAMENTALS Program. T-F'unctions. To invoke. a program a T-function, executes an INT 225 (or INT OxEl) interrupt instruction A with a function number in the CL-register. different entrypoint interrupt is used to avoid conflict with C-function numbers. TurboDOS supports the following T-functions:. O/S Process 2 Process 3 Allocate Memory 4 Deallocate Memory 5 Send Message 6 Receive Message 7 Set Error Address 8 Set Abort Address 9 Set Date/Tinie 10 Get Date/Tirae O. l. Reset Create Delay. li. Rebuild Disk. lj. Autoloaá On/Off. Map. 12 Get TurboDOS S/N 13 Flags Set Coínpat. 14 Log-On/Log-Off 15 Load File 16 Activate Do-File 18 Send Command Line 19 Get Alloc Info 20 Get Phys Disk Info 21 Get/Set Drv Status. Termination. Interface (Continued). A. program may O (System. tion. 22 phys Disk Access 23 Set Buffer Parms 24 Get Buffer Parms 25 Lock/Unlock Drive 26 Flush/Free Buffers 27 Get/Set Print Mode 28 Sig End-of-Print 29 Get/Set Despl Mode 30 Queue a Print File 31 Flush Buffer 32 Network List Out 33 Remote Console I/O 34 Get Comm Status 35 Comm Input 36 Comm Output 37 Set Comm Baud Rate 38 Get Comm Baud Rate 39 Set Modem Controls 40 Get Modem Status 41 User-Defined Func. 42 Reorg Disk Directory. List. terminate by invoking C-func— Reset), or alternatively by "RETF". executing a far-return instruction SS and (provided the original values of the SP Both methods registers are intact). are and cause TurboDOS to entirely equivalent, terminate the program in TPA and prompt for A program may also teríni— the next command. 47 (Chain to nate by invoking C-function which Program), allows the program to specify the next command to be executed after the program terminates.. l-8.

(17) FUNDAMENTALS. TurboDOS 1.3 8086 Guide Programmer's. Command. Processing. Comand. Processíng. command always a proidentifies and causes on disk, that residing file into memory (TPA) and program to be loaded has TurboDOS comno "built-in" executed.. a TurboDOS gram mands.. with more than 30 standard (described in detail in the You can expand the vocabulary simply by storing additional Programs are usually kept disk.. TurboDOS comes command programs. .. of commands programs on in Command Prompt. .CFÍD. displays a command prompt on the whenever ready to accept a command. The command prompt is composed of the current drive the current user} number, symbol. and the prompt. TurboDOS. console. letter, Command Format. files.. it. is. command consists TurboDOS of the file possibly of the program to be executed, followed by an optional command tail of up to 126 characters. A command inay be entered in upperlower-case or letters, but is converby TurboDOS. ted to upper-case. Each name. program name may have an explicit file type, but usually doesn't (TurboDOS assumes .CMD). also have an explicit drive It níay(like "B: ") program specification is if Youthe will get an not on the current drive. error message if the program file cannot be found on disk, or if the available TPA is not big enough to hold the program. The. special kind of the current drive.. A. specification (like. name.. l-9. is used to change a drive consists It"B:") with noof program. command.

(18) TurboDOS 1.3 8086 Programmer's Guide. FUNDAMENTALS. Co=and processing (Continued). Tail Parsing. by format of a command tail is determined TurboDOS the particular program involved. passes the command tail to the program by saving the length of the tail (in characters) DS: 0080 of the Base Page, and at location saving the text of the tail (up to 126 characters) starting at a location DS: 008l. TurboDOS also stores null (zero byte) immediately following the last character of The the command tail. tail includes all name, inclu— the program characters following no tail is given in ding leading spaces. the command, the lengthIf stored at DS: 0080 is zero. The. consists If the command filenames of the tail form:. of. one. or two. {d:}filename{.typ} each into File Control TurboDOS parses FCB parsed (FCB) format. The DS:005C saved Base Page, of the at location FCB parsed and the second is saved at loca— tion DS:006C. Parsing is done following the procedure described for C-function 152 (Parse then. is. first. Block. Filename).. Command. Strings. TurboDOS. separated. also accepts strings by the character. \. of commands (backslant). in sequence,. command each TurboDOS executes and re-displays each but the A command may executed. the size of the command normally big enough to accoinodate. is first as exceed not it string which is buffer, two. of text.. l-10. lines.

(19) TurboDOS 1.3 8086 Programmer's Guide. FUNDAMENTALS. Cowmnd. Batch. Processing. Automatic. Loading. Processíng (Continued). supports a batch processing mode in by a prewhich execution is controlled defined sequence of commands stored in a "doA on disk. do-file is a text confile" (usually type .DO), each line of which file tains a valid TurboDOS command or command A string. with a do do-file may be activated 16 command, or by invoking T-function (ActiA may contain any vate Do-File). do-file number and nesting of embedded DO commands, is supported to any reasonable depth. TurboDOS. provides a facility for loading any program or executing any command sequence automatically at initial start-up (cold start) or whenever a program terminates (warm start). Autoload at cold-start takes place only if a file named COLDSTRT.AUT is present on the start-up disk. Autoload at warm-start takes place only if a 6file named WRMxSTRT.AUT (where X=8 for UP8S, for Upl6s, and B for the background batch) present on the curis command is the usual rent disk. The AUTOLOAD .AUT files. way to create these TurboDOS. Alternatively, autoloaded by. a program renaming. it. may (.CMD as COLDSTRT.AUT. file). be or. In this case, however, the autoloaded program must not rely DS:on the 005C) contents of the Base Page FCB (at and buffer (at DS: 0080), because they will be left uninitialized after the autoload.. WRM6STRT.AUT.. I nl.

(20) TurboDOS 1.3 Programmer's. 8086 Guide. FUNDAMENTALS Base. Base. page. Layout. page. Layout. Base Page is the 256-byte memory region DS: OOOO The Base Page to DS: OOFF. a by TurboDOS whenever transient program is loaded, and is used for comunica— tion between TurboDOS and the transient pro— The organization of the Base Page gram shown below:. The. is. from. initialized. is. I i l. Mx. I. Meir. Length. 0000-0002. j. bytes.. number,. I. byte. first.. Base code. paragraph group.. I. 0003-0004. I. l. in 24-bit least-significant. code Stored. of. I l. l. 'pm': criptinn. group as a. address. of. 8080 Model flag, O 8080 Model,. 0005. if. ; l I. 0006-0008. Length. I. bytes,. l l. 0009-0OOA. Base data. l. of. 24. data. bits,. paragraph group.. set to l otherwise.. group LSB. first.. address. of. l I. 00OC-OOOE. l l. Length. bytes, 00OF-0OlO. Base. l. bits,. paragraph. ]. DOll. (Unused,. i. 0012-0014. Length. l. bytes, 0015-0016. Base. of. 24. bits,. paragraph. stack group.. l l. l-12. I t l I I ! I. [. group LSB. in. first.. address. of. I I [ i l [ l. reserved.) stack. l. l. extra group.. l. I. of extra. 24. l. l. reserved.). (Unused,. OOOB. I. l. in. I I. l. [. l !. ! I. group LSB. I. in. I. first.. I. of. i. address. l. l !.

(21) TurboDOS 1.3 8086 Guide Programmer's. FUNDAMENTALS. Base. Base Page (Continued). Layout. ;. ". Pe5cription. I. 0017. (Unused,. reserved.). l. 0018-0O1A. Length. HeY. l I. Mdr. I l l. bytes,. i l. 0O1B-OOlC. I. Base. of aux-l 24. paragraph. OOID. (Unused,. OO1E-0020. Length. I I. bytes,. l. 24. 0023. (Unused,. 0024-0026. Length. l. bytes,. l l. 0027-0028. bits,. aux-3. of. 24. bits,. Base paragraph aux-3 group.. l. 0029. (Unused,. I. 002A-002C. Length. bytes,. j I. address. of. of. aux-4. 24. bits,. 002D-002E. Base paragraph aux-4 group.. l. 002F-005B. (Unused,. group LSB. I l. I I I. l. in. first.. address. of. l ! l I I l l. group LSB. l. in. first.. address. of. l l I I l I I. group LSB. I. in. l. first.. I. of. I. address. Default part l. The filename argument in first a command tail is parsed into this 16-byte area.. 005C-006B. l. l. l. reserved.) FCB. l. I. reserved.). l. !. first.. reserved.). l I. aux-2. of. Base paragraph aux-2 group.. 0021-0022. I I. I. in. reserved.). l I. bits,. group LSB. aux-l group.. I I. page Layout (Continued). I I. I I I l I I. l-13.

(22) TurboDOS 1.3 8086 Programner's Guide. FUNDAMENTALS Base. Base Page Layout (Continued). I. HeY. Aádr. !. I l. 006C-007B. I l. 007C. l l. 007D-Q07F. l l. l. in. I. into this l6-byte area, and must be moved to another location before making use of the default FCB.. [. tail. l. The argument is parsed. part 2.. FCB. second filename a command. I. __!(. -____.__-.-.wscxXtje—_ Default. i. Layout (Continued). Page. Default. FCB. Default. FCB. current record. random. record.. Default l28-byte buffer. This area receives the command tail length in 0080H, and the conunand tail text (up to 126 characters plus a null terminator) in loca— tions 0081H-OOFFR.. 0080-(JOFF. ! I : l ! I I. l-14. I I l I I I I l l I l i I i { l.

(23) FUNDAKENTALS. TurboDOS 1.3 8086 Guide programmer's. system. Start-Up. Syst=. Start-Up. it. To get TurboDOS is necessary started, to from disk read a copy of the operating system into memory, a process known as "cold procedure depends The exact cold-start on the hardware involved. particular. start".. Most. TurboDOS. step cold-start. I.. use. this three-. When the computer is turned on or reset, executes the TurboDOS bootstrap front (In some impleread-only memory (ROM). mentations, the bootstrap may be loaded The from reserved tracks on disk.) disk drives from A bootstrap scans of each to P, searching the directory OSLOAD.COM named ready drive for a loader. which contains the TurboDOS When this found, the bootstrap into the TPA and executes loads. it. it. 2.. implementations procedure:. file. all file is. it.. TurboDOS loader scans from A to P, searching for a named OSSERVER.SYS which contains When this server operating system.. all. The. drives. found, the loader proceeds to is the operating system into memory, transfers. control. to. it.. The. file. which the OSSERVER.SYS becomes the "system disk". 3.. disk. file the file load then. drive from was loaded. server downloads a user bootstrap The routine into each user processor.OSUSER a nameá file server then locates .SYS on the system disk which contains and downloads the user operating system, into each user processor.. The. it. it. During network operation, is helpful disk is always on-line. the system If fixed disk is available, it should be used the system disk.. l-15. if a. as.

(24) TurboDOS 1.3 8086 Programmer's Guide. FUNDAMENTALS. Summry. Sumtary. This section has introduced the fundamentals You have of the TurboDOS environment. learned how memory is organized, how programs segmented may be into various execution models, and how .CMD files are formatted. You understand the TurboDOS program interface, including C-functions, T-functions, and know how TurboDOS direct BIOS calls. You commands, and command processes how communistrings, and do-files, and Base it Page. cates with programs. parses. via the. we examine the consíderable detail.. Next{. l-16. TurboDOS. file. system. in.

(25) TurboDOS 1.3 8086 Guide Programmer's. FILE. SYSTEM. FILE. SYSTEM. section describes the TurboDOS covers in detail. the structurefile of It disks and files, the facilities provided to and the procedures manage files, for calling these facilities from application programs. This. system. Disk. Capacity. TurboDOS system can support up to drives per processor, identisixteen logical file P. Drives may fied by the letters A through be local to the processor, or may be attached to another processor and accessed by means of networking.. The. combination of large hard disks block Allocation in excess of a gigabyte. for each size may be chosen individually drive, and affects maximum drive capacity as follows:. accomodates TurboDOS any drives from mini-floppies to. I. l\11nc,. !. Blnck. SWe. 2K. l. 4K. l. 8K. Max,.. 256 128 256 512 1,024. IK l. I. 16K. Prive. cApÁcitY. I l l. Kilobytes. l. Megabytes Megabytes Megabytes Megabytes. ! l l. l. limits. are so big, it is almost to partition a physical drive into smaller logical drives under TurboDOS. such partitioning However, is sometimes done when using large fixed for user convenience disks.. these Because necessary never. maximum capacity and performance, floppy used with TurboDOS are generally matted with large sector sizes (512 or 1024 and no reserved no TurboDOS However, tracks. also accomodates standard CP/M floppy disk formats. For. for-. disks. bytes),. interleave,. 2-l.

(26) TurboDOS 1.3 8086 programmer's Guide. FILE Disk. Disk Organization. SYSTEM. Organization. disk is organized into five areas:. Each. I l 0 0 0 V V * i l I I ! I I. I. File. I. Storage. e. 0. e. 0. 0. P V *0 0 € l. 0. File. Storage. l I. Directory. I. Allocation Volume. I. Map. I I. Label. I i. l. Reserved. Tracks. l. Reserved tracks are required by certain hardware configurations to support The but are not otherwise used by TurboDOS. volume label permits a name to be given to each disk. The allocation map contains one block on the disk, for each used and by TurboDOS to keep track of and which which are disk blocks are occupied The directory is a table of contents free. which stored on the disk. The remainder of the disk (most of. cold-start,. bit. allocation. is. identifies all files. is available for. file. it). storage.. CP/M. does label or not maintain a volume allocation map on the disks it creates. When a CP/M disk is first accessed by TurboDOS, entries are the first few CP/M directory automatically relocated to the end of the directory in order to make room for the label by and map. When a TurboDOS disk is accessed CP/M, the label and map appear to be ordinary Thus, disks can deleted directory entries. be. moved. freely the. in spite of. 2-2. between. differences. CP/M. and. TurboDOS. in organization..

(27) 1.3 Programner's. TurboDOS. Directory. FILE. 8086 Guide. Formats. Directory. SYSTEM Formats. directory supports two alternative formats: linear and hashed. A flag bit in the directory label indicates which format is in use on a particular disk.. TurboDOS. The standard CP/M, and is. linear. format. is compatible wítb. searched Consesequentially. wíth deteriorates look-up speed quently, increasing directory size, and can get painslow on large disks with many. files.. fully. hashed The optional directory format uses a hashing algorithm to make A look-up in large hashed much faster. directory directories may be used on any disk, but is especially suited for use on hard disks with many files. Hashed are inedia-compatible directories with CP/M, but may be converted to linear format whenever exporting to CP/L'I is needed.. =. the directory is linear or hashed, "wild cards" have to be searches involving such wild-card searches done linearly. are slower is hashed. directory the typically if. Whether. File Organization. sequence 134of megabytes l28-byte up to records The (1,048,576 records) long. of a may be read and written sequentially or file A randomly (by relative record number). file beyond the end of by writing may be extended TurboDOS automatically allocates disk file. when a space is extended, and deallowhen file a file is deleted. cates. file records,. A. contains and. may. a. be. it. of ASCII Text files are written as a sequence (OxOD) and characters with a carriage-return (OxOA) end of each the at line-feed lines are variable length and text may line. Text The end of a span records. text file is (OXIA). marked by the ASCII character SUB. 2-3.

(28) TurboDOS 1.3 8086 Programmer's Guide. file. sYsTm. File Operations. File Operations. About half of the 60 C-functions supported by TurboDOS are connected system. with the These functions support the operations needed and disks. directories, to manipulate. file. files,. following. The. functions. provide. facilities for sequential file I. C-Fem. I. Fnn'M"n. l I l l l I. the basic. access:. Nam l I. File File Sequential Write Sequential Make File. 15 16 20 21 22. Open Close Read. I. I. I I. additional functions are necessary support random access and file sharing:. These ! I I i l. c-pm. I. 36. I. 42. I. 43. ÑÁñE. I. Read Random Write Random Compute File Size Set Random Record Lock Record Unlock Record. l. I I. I. I. Directory I. I i. 33 34 35. l. F!lnctic)n. to. C-Fen. functions [. include: Fl1nctinn. Nam. l l. 17. i. 18 19. l l. 23. I. 30. ). Search Search. fcx First for Next Delete File Rename File Set File Attributes. 2-4. l l. l.

(29) TurboDOS 1.3 8086 Guide Programmer's. FILE. SYSTEM. File Operations (Continued). File Operations (Continued). Drive-oriented I. c-Fen. functions. are:. Fl1.ncti(7n. I. I. Name. l. l I. {. 14 24 25 28 29 31 37. l. 46. l I i i l. Select. }. Disk. I. Login Vector Current Disk Write Protect Disk Get R/O Vector DPB Return Return. I i l l. Address Get Reset Drive Get Free Space. I I I. l. Finally, the file l. C-Fen. some system l. other functions include: Fl1n.ctinn. connected. with. Niwm. {. 13. I. 26. I. 32 47. I l. 51. i. 52 59 152. I l. l l. l. Reset Disk System Set DNA Address Set/Get User Number Chain to Program Set DMA Base Get dma Address Load Program Parse Filename. l l l ! l l l I l. l. C-functions of these file system later in this document. described in detail Each. 2-5. is.

(30) TurboDOS 1.3 8086 Programmer's Guide. FILE. SYSTEM. N=ing Files. Naming. Files. TurboDOS. taining. file is. track of files by name, maindirectory of files on each disk. A identified uniquely by four fields: keeps. a. (A-P) . drive number (0-31) . user name (up to 8 . (up to 3 type .. letter. characters) file characters) file The drive disk on which letter specifies nothedrive the file is located. is letter by If given, the current drive is assumed default. The. user. number. libraries file allow files to. specifies one of 32 logical These on each disk. be conveniently segregated by. libraries user or application. Generally, user is reserved for global files and user 31 is reserved for log-on security, leaving l-30 for general. O. use.. of fields are composed name may have up file and. The name and type The ASCII characters.. to eight. the file type may Shorter names and types right with spaces.. characters,. have up to three. are padded on the. that file names and file is besuggested composed from the upper-case letters A-Z and the digits U-9. Actually, any ASCII be used including lower-case characters may and even non-printing letters, punctuation, However, such names may. It types. control characters. not be parsed correctly in commands played correctly in directories.. nor. dis-. question mark ? is a special wild-card character which may be used in file names and types to match any character in the corresponding position during directory searches.. The. 2"6.

(31) 1.3 programner's. 8086 Guide. Special File. Names. TurboDOS. gives. TurboDOS. reserved. file. SYSTEM. Special File. Names. meaning to two special "$.DIR" refers the. to disk, while "$.DSK" contents of the physical refers to the disk volume (up to the waximuiíí file size of These special files may be 134 megabytes). dumped, patched, or accessed like any ordinHowever, access is restricted ary file. to privileged log-ons only. names.. of directory areaentire. File Control Block. file. a. File-oriented C-functions and T-functions are always called with the address of a File The Block (FCB) in the DX-register. Control FCB 33 bytes long (36 a data structure is bytes for random access operations) organized as follows: l l I. offsmt O. i. ". drive. drive O. l. i. 2. l I. 16. l l I. l—8. name. l. 9-ll. type. I l I l l. -> -> -> ->. drive. ° P. 12. extent. l. 2-7. I I I l l. P. I. name in ASCII, padded on right with spaces, high-order of each byte reserved. I. in ASCII, file type padded on right with spaces, high-order bit of each byte reserved for attributes tl-t3. I. five least significant bits of extent number. I. file. for attributes. l. l. !. (0-16): currentA drive drive drive B. code. bit. l. l. l. Pe¶r.ription. Field. £l-f8. I I i i I l l I I l l l.

(32) TurboDOS 1.3 8086 Programmer's Guide. FILE. SYSTEM. File Control Block (Continued). File Control Block (Continued). I. I. C)ffAet.. Fie1á. I. Ppqcripf.ir)n. l I. 13. I l. 14. specl. flag byte. spec2. most. significant bits of extent. I l l. 15. l. !. 33-35. l. random. I. record. l. !. current record number (0-127) in current extent. I l. l. of records in current extent (0-128). l. current record. I. ) I. allocation map of current extent. i. 32. eight. number. map. l i. I I. number. count 16-31. l. Use). record. l l. (Do Not. I. l l. i !. 20-bit 33record number is least sig(byte nificant) for randomaccess operations. l l l l l l l I I l. the application program must bytes O-12 before opening, must making, or searching for a file. It writalso zero FCB byte 32 before reading or from the beginning. ing a file sequentially In general,. initialize. When. a. FCB. is file with. opened,. TurboDOS. fills. FCB. information from the direcThereafter, the application program tory. should not modify FCB bytes 0-31. When the the direcis closed, TurboDOS updates file tory with information from the FCB. A direcas the tory entry has the same structure 32 bytes of an FCB. a directory In first however, byte O contains the user entry, number O-31 to which the file belongs, or the value OxE5 if the áirectory entry is not in Also, byte 13 may contain the exact use. count of the last record in the file. byte bytes. O-31. 2-8.

(33) TurboDOs 1.3 8086 Programmer's Guide. file. SYSTEM. File Attributes. File Attributes. File attributes. are stored in the high-order. name field bytes fl-f8 bits of the type field bytes tl-t3, and are used to trol how file may be accessed: FCB. and con-. a. l i. A.t.triMte. i l I I I l. flii2-f4. ——— PefiñithW. I. file attribute undefined file attributes interface attributes read-only file attribute global file attribute archived attribute. l l. FIFO. f5-f8. ti. t2 t3. l I I l I. The recorded. file attribute. and bits fl-f4 tl-t3 are and may be set or in the directory, cleared by means of C-function 30 (Set File For a newly-created file, Attributes). all attribute bits are initialized to zero. When a opened, is its attributes are copied file be into the FCB. by File attributes may also 17 and interrogated means of C-functions 18 (Search for First/Next). The from. read-only attribute (ti) prevents a file being The written, deleted or renamed. global attribute (t2) enables a file saved O under to be accessed from any user user number has no for files saved effect (it under numbers). The archived non-zero user attribute (t3) is used for incremental file backup, and is automatically cleared by TurboDOS whenever a file is written or renamed. The FIFO attribute (fl) causes a be accessed to using a special "first-in file first-out" access method (described later). Attributes f2-f4 are undefined, and available to the user. Interface attribute bits f5-f8 cannot be used as file attributes; they specify options for certain C-functions.. 2-9.

(34) TurboDOS. 1.3 Programner's. 8086 Guide. FILE User. User. Numbers. SYSTEM Numbers. TurboDOS. provides 32 file libraries on each disk corresponding to user numbers 0-31. Generally, user O is reserved for global files and user 31 is reserved for log-on security, leaving l-30 for general use. The. current. user. number. is established. ini—. For non-privileged log— tially at log-on. unchanged on, the user number remains untillog-off. This restricts file access to the corresponding file library (plus global files under For user O). privileged log-on, the number user níay be changed without restric32 (Set/Get User tion by means a. a. of C-function. Number). The. current. fix to file directory. number user is names, thereby to contain up. treated as a pre— allowing each disk to 32 libraries.. (make, rename, directory functions search, etc.) are restricted to the corresponding to the current user library number. However, in the user O library files which have the global file attribute may be opened This permits from any user number. commands, and other coxunon files to programs, be shared by all users. Most. delete,. File Sharing. is pos— In a multi-user TurboDOS system, sible for multiple users to access it the sanie This can happen at the same time. file the users are logged-on to the same user number, or accessing the same global file. TurboDOS supports interlocks to regulate such sharing or the record level. at file file. if. sharing facilities are compa— fileMP/M, with but provide significant tibie extensions to alleviate the most serious deficiencies in MP/M file sharing.. TurboDOS. 2-lO.

(35) TurboDOS 1.3 8086 Programmer's Guide. FILE. SYSTEM. File Sharing (Continued). File. Locks. File-level of four. The. open. attributes created. exclusive,. interlocks. by means are supported modes of opening a mode is determined by FCB interface is opened or f5-f6 when the modes The four open are called shared, read-only, and permissive.. file.. distinct. file. eX.c.1|lsi\/e mode is available file opened inprocess exclusively until it to the opening is closed, and may not be opened by any other A process. file cannot be opened in exclusive mode if the file is currently opened (in any mode) by another process.. A. be opened in sharM mode by any of processes simultaneously. All processes are allowed to read, write and Record lock and unlock extend the file. functions are honored only for file opened in. A. file. may. number. shared. mode.. in rmd-onlv mode by any of processes simultaneously. All but are allowed to read the file, not to write or extend it.. A. file. may be opened. number processes. may be opened in permi¶si\/e mode by simultaneously. any number of processes processes are allowed to read the then writes or extends the any process that process gains an exclusive write-lock on the preventing any other process froin The exclusive to the lock released when the locking process. A. file. file. file,. file, writing is. closes the. All. If. write-. file.. file.. if. a process In shared and permissive modes, extends by adding new records at the a these end, records become immediately accesthat also have the sible to other processes open.. file. file. 2-ll.

(36) FILE. TurboDOS 1.3 8086 Guide Prograuuner's. SYSTEM. File Sharing (Continued). ——— Record. Locks. by controlled interlocks Record-level are and unlocking means of explicit locking requests wade by the application program. This allows concurrent update by multiple processes. Record locks are by no means automatic, and require explicit cooperative participation (Lockby C-functions 42 programs. all updating and 43 (Unlock Record) are honored Record) only for files opened in the shared mode. Each program must lock a record before reading it, and must unlock the record after updating it.. attempts to lock a record that locked by another process, the Record Lock function returns an error code and the program must is until try again the program can Alternatively, successful. ask TurboDOS to suspend program execution automatically until the lock request can be satisfied.. If is. a. program. already. it. extend a shared file in a concurrent the extending program update environment, should first acquire a lock on record N+l N (where the last record in the file). is may then safely write record N+l, The program and finally unlock N+l. To. 2"12.

(37) TurboDOS 1.3 8086 Guide Programmer's. FILE. SYSTEM. File Sharing (Continued). Compatibility. Modes. file. sharing facilities of TurboDOS are with MP/M, to provide compatibility saíne time yet at the to alleviate the most serious limitations of MP/M file sharing. TurboDOS may be instructed to adhere strictly rules, or alternatively to MP/í4 file-sharing to relax some of these rules. to this end, TurboDOS provides a byte of "compatibility flags" with the following bit assignments: The designed. l l. f3jt. F,Gq. I. l. 7. I. 6. l. 5. l. 4. mixed-mode. l. 3. I. 2-O. logical record lock (not defined). I. l. AfEectS. NAme. permissive suspend. global-write. default open mode lock conflict action writing global files mixed. file validity open. modes. l i I l l i I. each compatibility flag, a zero-bit denotes strict adherence to the MP/M rule, while a one-bit signifies a relaxation of The initial setting of the comthat rule. flags may be established during patibility system TurboDOS generation by assigning the desired value to the symbolic location A COMPAT. program may modify its compatiby calling T-function 13 (Set flags bility Compatibility Flags), but the flags automatirevert to their initial setting when callyprogram terminates. the For. flag (bit 7) is set, the If the permi|s,Fij.\/e open mode is permissive, default rather file than Specifically, exclusive (as in MP/M). the open mode is determined when a file is opened or created by FCB interface attributes f5-f6, as shown in the following table:. 2-13.

(38) TurboDOS. 1.3 Programner's. 8086 Guide. FILE. SYSTEM. File Sharing (Continued). Compatibility (Continued). Modes l. permi.ssive fG f5. f1aq = nppn Tí1ode. I) I. l. l. exclusive. I. I. O. shared. l. l. O. read-only permissive. l. l. l. {. l. I. l I. O. l. O. l l l. O. l I l i. O. pernais¶i.¶'e f1Aq = opRn irmAe f6 f5. I. O. l l l. O. 1. 1 I l. permissive. I. shared. l. read-only exclusive. i I l. flag (bit 6) is set, then an to lock a record that is already by someone else causes the process to be susgenáecí lock request can be its until Otherwise, an attempt to lock or satisfied. write to a record that is already locked by someone else results in an immediate error return code (as in MP/M).. If the attempt locked. stispend. flag (bit 5) is set, then under a non-zero user read and write global files. to global files is strictly. If the. q1ol)A1-writ.e. number. may both access (as in MP/M).. a. program running. Otherwise, read-only. miY.ea-N.ode flag process may open a has open while another. then mode in read-only mode Otherwise, the shared and (or vice-versa). read-only rrtodes are mutually exclusive (as in MP/bi).. If. the. one. it. set, (bit 4)in isshared file. 3) is set, then the the 1oqica] flag 42 FCB random record for C-functions and 43 (Lock/Unlock Record) is interpreted as an arbitrary 24-bit logical record number and does which not cause not validated Otherwise, the FCB random positioning. 42 and 43 record for C-functions interpreted as the relative number of a 128byte record, and causes the to be positioned to that record (as in MP/M).. (bit field. If. file. is field. is. file. 2"14.

(39) TurboDOS 1.3 8086 Progranuner's Guide. FILE FIFO. FIFO. Files. SYSTEM. Fijes. communications between To processes, processors and users, TurboDOS supports a special kind of called a FIFO similar in concept in, to a Unix FIFOS are opened, closed, read and pipe.. facilitate. (firstfile first-out) exactly like ordinary sequential written However, a record written to a FIFO files. to the end, and a record is always appended FIFO is always taken from the read from FIFO. beginning and removed from a. the. from other files by is differentiated the presence of the FIFO attribute (fl) in Record the directory. zero of a FIFO is a header record used by TurboDOS to keep track of the FIFO, and is organized as follows:. A FIFO. l i l I l I l l I. Offset. O. l. 2-3 4-5 6-7 8-9 10-127. j. I. I. CQñteñts. l. (0=RAM, type mode (0=error maximum size. -l=disk) code,. I. -l=suspend). I. (records) current size (records) number of last record read number of last record written (not used, reserved). l i l I l l. The header specifies whether the body of the and the maxiFIFO is RAM- or disk-resident, mum number RAHniay contain. of records resident FIFOs provide high-speed but limited capacity (up to 127 records, usually much FIFOs Disk-resident provide large capacity (up to 65,535 records) but slower command The FIFO may be used speed. to header. create a FIFO and. it. less).. initialize its. 2"15.

(40) 1.3 Prograimer's. TurboDOS. FIFO Files (Continued). 8086 Guide. FILE. SYSTEM. FIFO Files (Continued). Normally, reading from an empty FIFO returns code an end-of-file (A=l), and writing to a a FIFO returns disk-full code (A=2). full However, the mode byte in the FIFO header if (suspend), then reading from an set to is empty FIFO -lor writing to a full FIFO causes the process to be suspended until the FIFO becomes non-empty or non-full. The header body of a FIFO or disk-resident may be accessed directly using C-functions 33 and 34 (Read/Write Random), thereby bypassing An the normal protocol. attempt to make (C-function 22) an existing FIFO treated as an open (C-function 15), while an attempt to delete (C-function 19) a The only way to get rid of FIFO ignored. a FIFO is to clear the FIFO attribute, then delete. first-in. is is. first. it.. 2-16. first-out.

(41) TurboDOS 1.3 8086 Guide Programmer's. FILE. Buffer. Buffer. Management. SYSTEM. Management. TurboDOS buffer manager performs multilevel buffering of physical disk input/out(LRU) buffer put, using least-recently-used assignment and other sophisticated optimizaBuffering provides a manyfold reductions. tion in the number of physical disk accesses during both sequential and random file operations.. The. The number and/or size of disk buffers may be changed 23 (Set Buffer by means of T-function Parameters), and interrogated by T-function The number 24 (Get Buffer Parameters). of buffers must be at least two, and the buffer size must be at least as large as the physiFor cal sector size of the disks being used. optimum performance, the number of buffers should be as large as possible consistent with the TPA size required.. its. manager maintains buffers on "in—use" and the "free" manager the requests a the buffer manager Eirst checks disk access, disk the requested the in-use to see Most of the already in a buffer. sector and no physical disk access time required. not, the buffer manager tempts to acquire a new buffer from the free is empty, the leastIii the free recently-used buffer (at the end of the use out to disk necessary, and then reused to receive the newly The two. buffer. the lists: Whenever. list.. is it is,. list. list. file if. is at-. If. list list. list) is written requested disk sector.. 2-17. if. in-.

(42) TurboDOS 1.3 8086 Programmer's Guide. FILE Media. Media. Changes. SYSTEM. Changes. disk volume is changed, Before a removable it is crucial that any buffers relating to that and disk are written out necessary, returned to the free list. In single-user configurations of TurboDOS, this is done automatically whenever the system pauses for console input. In multi-user configurations, buffers must be explicitly flushed and freed by calling T-function 26 (Flush/Free Buffers) prior to changing disks. This is most corndone by executing the CHANGE command, monly but should also be coded into applications that require inedia changes during operation. TurboDOS For safety, also flushes buffers automatically during any lull in system actia whenever them automatically vity, and frees disk drive becomes not-ready.. if. Error Handling. In the event of an unrecoverable disk error, TurboDOS normally displays a diagnostic message in one of these formats: l. I l l I l l l. Error, Drive A, Track [Retry, Ignore, Abort]. Read. Write Error, Drive [Retry, Ignore, Abort] B,. l. Not. i. Spooler. l. Ready. Error,. Drive. O,. Sector. I. 2. l I. Track. 5,. Sector. 16. l. I C. [Retry, Abort]. Error [Ignore, Abort]. l l I. waits for the user to choose the desired recovery option by keying in the appropriate letter (R, I or A).. and. 2-18.

(43) TurboDOS 1.3 8086 Guide Programmer's. FILE. SYSTEM. Error Handlíng (Continued). Error Handling (Continued). application. to intercept by callíng 7 T-function (Set Error Address). In this case, TurboDOS does not display its usual Normal diagnostic messages. error processing when the application resumes automatically program terminates. An and. process. program may elect such errors, however,. Because the buffer manager optimizes disk write operations by deferring them as long as possible, write errors niay be reporand possibly even tg ted later than expected a different user than expected. NOTE:. 2_19.

(44) TurboDOS 1.3 8086 Progranuner's Guide. FILE. SYSTEM. Error Handlíng (Continued). Error Handling (Continued). to intercept by calling T-function (set Error Address). In this not display its usual case, TurboDOS does Normal diagnostic messages. error processing when the application resumes automatically program terminates.. An and. application process. program may elect such errors, however,. 7. NOTE: Because the buffer manager optimizes disk write operations by deferring them as long as possible, write errors may be reporand possibly even tg ted later than expected user than expected. a different. 2"19.

(45) TurboDOS 1.3 8086 Programmer's Guide. SERIAL. Console. Basic. INPUT/OUTPUT. This section describes the TurboDOS facilities that deal with serial input/output (I/O) in connection with consoles, printers, and communications channels.. I/O. provides ten C-functions that permit programs to interact with the user console Three device. kinds of console input/output basic I/O, raw in TurboDOS: are supported I/O, and string I/C.. I/O. Console. SERIAL. TurboDOS. I/O. Three on a l. C-functions provide basic console I/O single-character basis:. c-Fcn. l. l. !. 2. I. li. i. F!lnctinn. I. Niíme l. Console Input Console Output Get Console Status. I I I. Console Input function waits for a character to be keyed in, echoes the character to the console screen to provide visual confirmation, and returns the character to the calling program. The. The Console Output function displays a character on the console screen. It expands horizontal tab characters into spaces, based upon tab stops at every eighth column.. Status function input not a console or and available, returns a Boolean. The Get whether. Console. 3-l. checks. to character result.. see. is.

(46) TurboDOS 1.3 8086 Guide Programmer's. SERIAL. INPUT/OUTPUT. t/O (Continued). Console. Raw. Console. I/Q. Three additional console I/O: \. C-functions Fiíncticm. c.-f'cn. Nátííe. provide. raw. ". I !. 3 l. 4. I. 6. l. Console Input Raw Console Output Direct Console T/O Raw. I [. Raw Console Input function is similar to basic Console Input function, except that are not echoed to the input characters Likewise, the Raw Console Output screen. function the basic Console Output like is function, except that horizontal tabs are not. The the. expanded.. Direct Console I/O function combines the functions of Raw Console Input, Raw Console Output, and Console Status. It is supported with CP/M. only for compatibility The. String. Console. I/O. The. input I. I/O functions provide remaining console and output of character strings:. C-Fen. FunctiQñ. I. l. 9. l. 10. i. líO. I l. ÑálPé. l I. l. Ill. Print String. Buffer Get/Set Delimiter Print Block Read Console. l I l I. Print String function outputs a string of characters to the console. The string may be by a reand is terminated of any length, served The delimiter is delimiter. normally the dollar-sign $ character, but may be changed by means of the Get/Set Delimiter function.. The. 3-2.

(47) TurboDOS 1.3 8086 Programmer's Guide. INPUT/OUTPUT. SERIAL. 1/0 (Continued). Console. String. Console (Continued). I/O. Print Block function is similar to Print String, except that the string length is passed delimiter explicitly so that no is needed. Both Print String and Print Block expand horizontal tabs. The. Read Console Buffer function reads an entire line of edited input from the console. from the console and Characters are accepted stored in successive memory locations until a carriage-return terminates the line. Input characters are echoed to console output (but, unlike CP/M, tabs are not expanded). Rudimentary editing is supported: backspace or delete characters erase the last typed charwhile CTRL-U or CTRL-X erase the acter, entire line. The. Attention. Requests. The execution suspended at. a program or may be time by typing a reserved character on the console keymost installations, this is either TurboDOS BREAK. "beep" to has received the attenthat. "attention". board.. In. CTRL-S or acknowledge. do-file. of. tion request.. any. it. will. After an attention request, the interrupted program or do-file will remain suspended one of the follcwing attention responuntil ses is typed: CTRL-Q (resume) simply restarts the point of interruption.. execution at. (abort) cancels execution of the inprogram terrupted any or do-file, causes nested commands and do-files to be disregarded, and returns to the command prompt. An application program may elect to intercept such abort requests, however, by calling Tfunction 8 (Set Abort Address). CTRL-C. 3-3.

(48) TurboDOS 1.3 8086 Programmer's Guide. SERIAL. INPUT/OUTPUT Console I/O (Continued). Attention. Requests. CTRL-P (echo-print) console subsequent causes be echoed to the tion/echo sequence turns. all. (Continued). sole output to the. execution and restarts output also to second attenprinter. echoing of conoff printer. A. (end-print) restarts execution signalling the end of the current print CTRL-L. Co~. Channel. I/O. after job.. In order to allow communications-oriented in a applications programs to be written TurboDOS suphardware-independent fashion, channel inports a standard communications terface consisting of seven T-functions: l. Fl?nctinn. T-Fcñ. Name. l I l I l I l. I l. I. 34 35 36 37 38 39 40. Get Comm Comm. Set Get Set Get. l. Channel Status Channel Input Channel Output Comm Baud Rate Channel Comm Baud Rate Channel Modem Comm Channel Controls Modem Comm Channel Status Comm. l. I l l l. of functions support multiple channels 34-36 provide T-functions communications. comm channel I/O (anabasic single-character logous T-functions 37to raw console I/O). 38 allow programs to sense or set the comm baud rate to any standard speed froin channel 50 T-functions 39-40 allow to 19,200 baud. modem programs control signals {RTS, set to DTR) and to sense modem status signals (CTS, DSR, DCD, RI). These. 3-4.

(49) 1.3 Progrmmer's. TurboDOS. SERIAL. 8086 Guide. INPUT/OUTPUT. Printer. Output. ——Printer. Basic. Output. Printing. provides the basic printing functions of CP/M, plus an elaborate concurrent printing facility which offers several modes of print spooling and flexible print routing among multiple printers and print queues. The spooling and routing facilities are completely transparent to application programs.. TurboDOS. Two C-functions provide the printer programs to generate I. C-Fcn. Fl1nctinn. !. basic means for output: ÑÁñW l. l l. 5. l. 112. List List. I. Output Block. l. List Output function outputs a single character to be printed, while the List Block function outputs a character string of speciIn contrast to console I/O, fied length. these print output functions do not expand tabs.. The. Control Functions. T-functions. Four. provide. control. de-spooling, print spooling,TurboDOS: mechanisms of. l. Fl]nct.ion. T-Fm. Nam". and. over the queuing I. l l. 27. l. 28 29 30. l l. Get/Set Print Mode Signal End-of-Print Get/Set De-Spool Mode Queue a Print File. l. Get/Set Print Mode function controls Print output may be routed print routing. spooled to direct to a specified printer, specified drive and print queue, displayed on the The. a. console,. 3-5. or. simply discarded..

(50) TurboDOS 1.3 8086 Programmer's Guide. SERIAL. INPUT/OUTPUT. Printer. Output. {Continued). Control Functions (Continued). The Signal End-of-Print function allows a program job to terminate a job In the absence of this function, a ends automatically at the conclusion of the program, upon receipt of an end-print attenrequest from the console, or when a. print. explicitly. print. tion. reserved end-of-print character (if defined) in the print output stream.. appears. The Get/Set De-Spool Mode function controls A background printing (de-spooling). printer may be assigned to de-spool from a specified an queue, or may be placed Any job in process may be status. stopped, resumed, restarted from the beginning, or terminated altogether.. print. in. off-line. Queue a Print File function permits a (or any text program to queue a print file for that matter) for background printfile, The may be placed on any specified ing. file be saved or deleted print queue, and may automatically after printing. The. 3"6.

(51) TurboDOS. 1.3 Programner's. C-FUNCTIONS. C-FUNCTIONS. 8086 Guide. This section describes the 60 CP/M-coinpatible functions ("C-functions") supporteá by TurboDOS. The C-functions are presented in numerical order, with calling parameters, return value, and a detailed explanation for each. invoke a C-function, a program executesOXEO)an INT 224 (or INT instruction interrupt with a function number in register CL. Byteare passed in register DL, length arguments and word-length arguments in register DX. In the case argument, the of a memory location base is passed segment in DS and the offset in DX. To. values in return byte-length (duplicated in BL), or wordlength values in register BX (duplicated in A few functions AX). return memory location values in ES (base) and BX (offset). C-functions. register. AL. call is made with register CL If a toC-function an unsupported function number, Turboset DOS immediately with registers BX and returns AX zeroed. C-function calls generally destroy registers AX-BX-CX-DX-SI-DI-BP-ES but preserve SP—IP and CS-DS-SS.. 4-l.

(52) TurboDOS 1.3 8086 Programmer's Guide. C-FUNCTIONS. C-Function SYSt@. C-Function Entry. O. Arguments. Explanation. System. O. Reset. Reset. !. fjeq. l. l. CL. =. pf5criptiQn O. l l. The. System Reset function terminates the Program calling progrant ("warm-start"). terby execumination also may be accomplished RETF ting a far return instruction (provided SS and SP the original values of registers have been preserved) and has exactly the same effect. TurboDOs In a multi-user system, program termination closes any open files, releases and ends any any locked records or devices, active print job.. 4-2.

(53) TurboDOS 1.3 8086 Guide Programmer's. C-FUNCTIONS. C-Function Input. Console. C-Function Entry. l. Arguments. Console. Input. Req. !. CL. =. l. Rpq. l. I. AL. =. I. l. Returned. Pe¶cri.ption. I l. Value. Explanation. l. I I I. l Ppqcription input character. ! l. Console Input function obtains the next character from the console keyboard, and in register AL. returns If no character is available, the calling program is suspended until a character is typed.. The. it. characters and certain control charline-feed, and backacters (carriage-return, space) the console screen. are echoed toexpanded into multiple Horizontal tabs are based upon tab stops at every eighth spaces,. Graphic. column.. 4-3.

(54) TurboDOS 1.3 8086 Programmer's Guide. C-FUNCTIONS. C-Function 2 Output. Console. C-Function Entry. 2. Arguments. Explanation. Console. Output. "". —ÁjQescjáptÁsiR". l. Req. l. CL. =. 2. I. DL. =. output character. i. --_". :""1. t l. The. Console Output function displays the character passed in register DL on the con— sole screen. Horizontal tabs are expanded into multiple spaces, based upon tab stops at every eighth column.. 4_4.

(55) C-FUNCTIONS. TurboDOS 1.3 8086 Guide programmer's Raw. C-Function Entry. 3. Arguments. Returned. Console. Raw. Input. |^gA------——-----~mRtjQn-——--. i. l. CL. !. I. Ré9. l. AL. l. Value. Explanation. . 3 C—Functton Console Input. =. 3. -_j2mcriptimn =. input character. I. l ! I. obtains the Raw Console Input function and next character from the console keyboard, AL. no character in register returns If is suspenthe calling program is available, ded until a character is typed. Input characters are not echoed to the console screen.. The. it. with MP/M-86. This function is compatible function Input from (In CP/M-86, is this Concurrent CP/M, Reader Device. In this function is Auxiliary Input.). 4-5.

(56) TurboDOS 1.3 8086 Programmer's Guide. C-FUNCTIONS Raw. C-Function Entry. 4. Arguments. Raw Console. 4 C—Function Con8ole Output. Output. l. Req. I. l. CL. =. 4. I. l. DL. =. output character. l. Peqhcriptinn l. I. Explanation. l. The. Raw Console Output function displays the character passed in register DL on the console screen. Horizontal tabs are not expan-. ded.. This function is compatible with MP/M-86. (In CP/M-86, this function is Output to Punch Device. In Concurrent CP/M, this function is Auxiliary Output.). 4-6.

(57) TurboDOS. 1.3 programer's. C-Function Entry. 8086 Guide. 5. Arguments. Explanation. C-FUNCTIONS. C-Function 5 List Output. List Output !. peRcript.ion. Rpq. l. ! i. !. CL. =. 5. i. I. DL. =. output character. l. The List Output function sends the passed in register DL to be printed. to the current print routing. tabs are not expanded.. 4-7. l. character according Horizontal.

(58) 1.3 Programoer's. TurboDOS. 8086 Guide. C-FUNCTIONS. Direct. 6. C—Function. Entry. Arguments. Direct ]. Console. I/O. Req. I. I. CL. =. 6. l. DL. =. status/input) (for (for status) -3 (for raw input) output character (for raw output). I. PeFlcri.ptiQjL-. l. !. I I. Returned. C-Function 6 Console I/O. Value. l. Rm. l. -l -2. i. pescKimQn--——. l [. AL. =. t. l. combined. input character. or. status. l I l. l t. -. Explanation. The. Direct Console of four possible upon the argument. I/O function performs one depending sub-functions, passed in register DL.. -1 (OxFF), then any available console character is returned in register AL, without echo to the screen. If no character is available, the function returns AL = O.. If input DL. =. (OXFE), then this function returns If DL = -2status (A = O input is console if no consoleEquivalent available, or AL = -l otherwise). (Get Console Status). to C-function. li. then this function obtains console input character and returns in register AL, without echo to the screen. If no character is available, the calling program is suspended until a charac-3 Equivalent to C-function ter is typed. (Raw Console Input).. If the. DL. =. -3. (OxFD),. next. it. other values of DL, this function displays the character on the console screen. Equivalent Horizontal tabs 4 are not expanded. (Raw Console Output). to C-function For. 4-8.

(59) TurbooOS 1.3 8086 Guide Programmer's. c-FUNc!rroNs. C-Function 6 Direct Console I/O (Continued). C-Function (Continued). 6. that the 8086 TurboDOS implementation of compatible with MP/M-86, this functionCP/M,is CP/M-80, and 280 TurboDOS. Concurrent somewhat from implementation the differs It in CP/M-86, however. Note. 4-9.

(60) TúrboDOS 1.3 8086 Programmer's guide. C-Function Entry. 7. Arguments. C-FUNCTIONS C—Function 7 Get I/O Byte. I/O. Get l. Byte. I. Req. I. CL. =. I. Pesícriptinn. I. l l. 7. l. l. Returned. Value. l. R¢w. l. !. peqcrj.pt.ion. I. l l. AL. =. I. Explanation. j. contents of I/O byte. l. This function simply returns the value of the by the public name location identified (used some implementations to in control serial I/O device assignment).. memory IOBYTE#. NOTE:. This function. is. supported. and. IOBYTE#. optional module is defined only if the is included during TurboDOS system generation.. 4~10. CPMSUP.

(61) TurboDOS 1.3 Programner's. 8086 Guide. C-FUNCTIONS. C-Function 8 Set I/O Byte. C-Function Entry. 8. Arguments. Explanation. Set l. I/O Byte ———. PHqcriptinn. Req. I. I. CL. =. 7. l. DL. =. new. I. l l. value of I/O byte. l l. This function simply sets the value of the by the public name location identified (used in some implementations to control serial I/O device assignment).. memory IOBYTE#. This function is supported and IOBYTE# is defined only if the optional module CPMSUP included during TurboDOS system generais tion. NOTE:. 4-ll.

(62) TurboDOS. 1.3 Programer's. 8086 Guide. C-FUNCTIONS. C-Function 9 Print String. C-Function Entry. 9. Arguments. Print String l. Req. i. I. CL. =. I. DS:DX. l. Explanation. ____A!=KÁRtiQn. [ 9. i =. string. The. address. I. Print String function displays a string The of characters on the console screen. string may be of any length, and is termina— The delimiter ted by a reserved delimiter. $ is normally the dollar-sign character, but by means of C-function may be changed lió (Get/Set Output Delimiter). Horizontal tabs expanded based into multiple spaces, upon are tab stops at every eighth column.. 4-12.

(63) c-FUNc!rroNs. TurboDOS 1.3 8086 Guide programmer's Read. C-Function Entry. 10. Arguments. Read Console I l. CL = 10 DS: DX =. l. Éxplanation. l. Req. I. 10 C-Funct1on. Console Buffer. Buffer ._-—-___De=ú&uQD. i. address. I. l l. buffer. Read Console Buffer function reads an entire line of edited input from the console. The input buffer whose address is passed in registers DS: DX has the following structure: l i""Óífaet _J_pirection I pf¶cript.ion.. The. I i. ]. passed. O. l 2. l to. returned returned. N+l. first byte of the to the maximum number in the input line.. The. input size (N) actual input (O-N) input characters. max. I i I l. buffer must be preset of characters allowed. Console terminated by input is accepted Input carriage-return. a errors may be coror DELETE to erase rected by typing BACKSPACE one character at a time, or CTRL-U or CTRL-X. until. Characters in to erase the entire line. and of the maximum are not accepted, Input characters diagnosed with a "beep". Unlike screen. are echoed to the console CP/M, this function does not expand tabs in. excess. TurboDOS.. the second byte of the buffer return, contains the actual number of input characThe input line is in the buffer. ters returned starting at the third byte of the The terminating carriage-return buffer. is neither stored in the buffer nor included in the count. Unused buffer positions following the last input character are uninitialized.. Upon. 4"13.

Referenzen

ÄHNLICHE DOKUMENTE

◆ nach dem Commit können geänderte Seiten im Puffer verbleiben, ohne explizit auf dem stabilen Speicher gesichert werden. → Redo-Protokollinformationen im stabilen

lead projects are interdisciplinary and basic research-oriented projects that have already given graz university of technology a proven international track record.. in the

PROBE: Would you recommend that we continue to use iKT to develop other guideline implementation tools such as other care pathways, patient handouts, or guideline summaries4. Why

During a write command, a FIFO serializer is used with the FIFO RAM to convert parallel data into serial format to be written on the disk.. During a read

Echo provides Berkeley-style advisory locks, and also uses a form of internal lock to implement the Unix feature that keeps a file from being deleted as long as at least one process

Clock track phase one is used for the selected phase input to the delay line pulse generator when writing the index area filler.. The VFO output is used for the

The file index is part of the indexed file that you define using the OCL statement. The file index precedes the data records in the file, and contains an entry for each

Compute File Size Set Random Record Reset Drive Write Random O-Fill Lock Record Unlock Record Get Disk Free Space Chain to Program Set Date and Time Get Date and Time Return Serial