EXOS 2.1 Kernel Specification

Contents:

1. Introduction
2. Overview of the EXOS Environment

2.1 The EXOS Input / Output System
2.2 Memory Allocation

2.2.1 Memory Segments and Pages
2.2.2 User Segment Allocation
2.2.3 EXOS RAM usage and Channel RAM

2.3 System Extensions (ROM and RAM)

3. System Initialization and Warm Reset

3.1 Cold Reset Sequence
3.2 Warm Reset Sequence

4. Applications Program Interface

4.1 EXOS System Calls - General
4.2 Hardware and Software Interrupts

4.2.1 User Hardware Interrupt Routine
4.2.2 Software Interrupts

4.3 The STOP key

5. Segment Allocation

5.1 User and Device / Extension Segments
5.2 System Segments and the EXOS Boundary
5.3 The Shared Segment and User Boundary
5.4 System Segment Usage

6. Device Descriptors

6.1 The Device Chain
6.2 Details of Device Descriptors
6.3 Extension ROM Devices
6.4 User Devices

7. Device Drivers

7.1 Device Driver Routines - General
7.2 Device Initialisation Routine
7.3 Channel RAM Allocation
7.4 The Buffer Moved Routine
7.5 Device Interrupt Routines
7.6 Device Channel Calls

7.6.1 Open Channel and Create Channel Routines
7.6.2 Block Read and Write Routines

8. EXOS Variables
9. System Extension Interface

9.1 Calling System Extensions - General
9.2 Action Codes

9.2.1 Action code 1 - Cold Reset
9.2.2 Action code 2 - Command string
9.2.3 Action code 3 - Help string
9.2.4 Action code 4 - EXOS variable
9.2.5 Action code 5 - Explain error code
9.2.6 Action code 6 - Load module
9.2.7 Action code 7 - RAM allocation
9.2.8 Action code 8 - Initialisation

9.3 Starting a New Applications Program

10. Enterprise File Format and EXOS Loading Functions

10.1 Enterprise File Format

10.1.1 Module Header Types

10.2 Loading Enterprise Format Files
10.3 Relocatable Data Format

10.3.1 Location Counter and Run Time Page
10.3.2 Relocatable Words and Absolute Bytes
10.3.3 End of Module Item

10.4 User Relocatable Modules
10.5 Relocatable and Absolute System Extensions
10.6 New Applications Programs

11. EXOS Function Calls in Detail

11.1 Device Name and Filename String Syntax
11.2 Function 0 - System Reset
11.3 Function 1 - Open Channel
11.4 Function 2 - Create Channel
11.5 Function 3 - Close Channel
11.6 Function 4 - Destroy Channel
11.7 Function 5 - Read Character
11.8 Function 6 - Read Block
11.9 Function 7 - Write Character
11.10 Function 8 - Write Block
11.11 Function 9 - Channel Read Status
11.12 Function 10 - Set and Read Channel Status
11.13 Function 11 - Special Function
11.14 Function 16 - Read, Write or Toggle EXOS Variable
11.15 Function 17 - Capture Channel
11.16 Function 18 - Re­direct Channel
11.17 Function 19 - Set Default Device Name
11.18 Function 20 - Return System Status
11.19 Function 21 - Link Device
11.20 Function 22 - Read EXOS Boundary
11.21 Function 23 - Set User Boundary
11.22 Function 24 - Allocate Segment
11.23 Function 25 - Free Segment
11.24 Function 26 - Scan System Extensions
11.25 Function 27 - Allocate Channel Buffer
11.26 Function 28 - Explain Error Code
11.27 Function 29 - Load Module
11.28 Function 30 - Load Relocatable Module
11.29 Function 31 - Set Time
11.30 Function 32 - Read Time
11.31 Function 33 - Set Date
11.32 Function 34 - Read Date



David Bouman. (dsbouma@cs.vu.nl)