19.1 Basic information 536 19.1.1 The BCPL pointer (BPTR) 536 19.1.2 The BCPL string (BSTR) 536 19.1.3 DOS boolean 537 19.1.4 Odds and ends 537 19.1.5 Getting access to AmigaDOS 537 19.2 For advanced programmers 537 19.3 Local data structures 538 19.3.1 DOS memory segments 538 19.3.2 SegLists 538 19.3.2.1 SegLists with resident libraries+ 539 19.3.2.2 SegLists with overlays 539 19.3.3 FileLocks 540 19.3.3.1 What is a lock? 540 19.3.3.2 Why is a lock called a lock? 540 19.3.3.3 Structure of a lock 541 19.3.3.4 Comparing two locks 542 19.3.3.5 The three internal types of locks 542 19.3.4 FileHandles 544 19.4 Global data structures 545 19.4.1 The DosLibrary structure 545 19.4.2 The RootNode structure 547 19.4.3 The DosInfo structure 549 19.4.4 The DOS resident list 550 19.4.5 Brief summary 551 19.4.6 The DosList structure 551 19.4.7 The jump table of the dos.library 557 19.5 expansion.library, filesystems, and AmigaDOS 558 19.5.1 The FileSysStartupMsg structure 558 19.5.2 The environment vector 559