| Aim of Module | To enable students to understand and develop system software for an environment involving PCs running DOS, linked together to form a LAN |
| Credits | 14 |
| Knowledge Assumed From | CA600(CA200) Computer Architecture & Organisation |
| Student Learning hours | 140 |
| Prescription Expiry Date | Nov 2007 |
| Topics | Highest Skill Level | Suggested Assessment Percentage | |
| 1 Structure of DOS | C | 5 | |
| 2 DOS Data Areas | A | 10 | |
| 3 Files and the DOS Filing System | A | 15 | |
| 4 Devices | A | 25 | |
| 5 Memory Management | C | 5 | |
| 6 Writing Terminate & Stay Resident Programs | A | 25 | |
| 7 7. Process Communication on a LAN | A | 15 | |
| 100 | |||
| 1 | Structure of DOS |
| C | Explain the basic components of DOS, the facilities they provide and when they are loaded. | |
| 1.1 | Initialisation procedure (BIO.COM, DOS.COM). | |
| 1.2 | User level (command.com, internal/external commands, alternative shells, comspec, batch files). | |
| 1.3 | Application level (com vs exe files, paths, program segmentation, command-line parameters). | |
| 1.4 | Hardware level (BIOS.in RAM or ROM, EMS) | |
| 2 | DOS Data Areas |
| > | Describe the format and use of the DOS data areas that are needed to write the applications covered. These may include the following: | |
| C | 2.1 | Program Segment Prefix (PSP) |
| File control blocks (FCB) | ||
| Data Transfer area (DTA) | ||
| System file table (SFT) | ||
| Device parameter block (DPB) | ||
| Memory control block (MCB) | ||
| List of lists | ||
| Disk cache blocks | ||
| Current Directory Structure (CDS) | ||
| Environment space and variables | ||
| A | 2.2 | Write a simple program to obtain a command-line parameter from the PSP. |
| 3 | Files and the DOS Filing System |
| > | Explain in detail the DOS filing system and the facilities provided by DOS for file operations: | |
| C | 3.1 | File Allocation Tables (FAT) |
| Directory entries and structure | ||
| File types (hidden, system etc) | ||
| Operations on local and network files (open, close, read, | ||
| write, locking and sharing) | ||
| Detecting and recovering lost sectors on the disk | ||
| Recovering deleted files | ||
| Checking disk consistency | ||
| A | 3.2 | Write a simple application to use the file and record locking facilities provided to shared files. |
| 4 | Devices |
| > | Explain the way to control a variety of physical devices using DOS and BIOS functions. | |
| C | 4.1 | Serial port devices. |
| > | The speaker (via oscillator). | |
| > | The keyboard: | |
| - testing keyboard status | ||
| - read without echo | ||
| - reading the shift status register and scan codes | ||
| > | Graphics adapters: | |
| - use of video ram | ||
| - detecting graphics adapters | ||
| - simple graphics operations | ||
| - cursor positioning | ||
| > | Serial interface | |
| A | 4.2 | Write and install a simplified device driver. Typical drivers may be for: |
| - serial port | ||
| - speaker | ||
| - graphics card | ||
| 5 | Memory Management |
| C | Use the functions provided by DOS to the programmer to allocate and release memory. | |
| - expanded vs. extended memory | ||
| - allocating and freeing memory | ||
| - adjusting block size | ||
| - MCB chain | ||
| 6 | Writing Terminate & Stay Resident Programs |
| > | Use the functions provided by DOS to write a simple TSR which works correctly with other TSRs. | |
| C | 6.1 | The re-entrancy problem with DOS |
| The DOS busy flag (function 34h) | ||
| Patching into interrupt vectors | ||
| Loading, executing and removing TSRs | ||
| A | 6.2 | Write a simple TSR. Typical applications may include: |
| - A resident clock program | ||
| - A print screen utility which will not hang the system | ||
| - A resident spooler/despooler | ||
| 7 | 7. Process Communication on a LAN |
| > | Use the facilities provided to develop an application which handles concurrent update problems to the same file on a LAN. | |
| C | 7.1 | Process synchronisation. |
| Accessing network status information. | ||
| Communicating with other network processes | ||
| A | 7.2 | Write a program which controls concurrent update to the same file on a LAN. |