From 4a04db9470cc0492a4bfb9752de14d8e12209177 Mon Sep 17 00:00:00 2001
From: Ben Burwell <ben@benburwell.com>
Date: Wed, 1 Apr 2015 20:47:40 -0400
Subject: add docs

---
 docs/tech/overview_of_program.tex | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 docs/tech/overview_of_program.tex

(limited to 'docs/tech/overview_of_program.tex')

diff --git a/docs/tech/overview_of_program.tex b/docs/tech/overview_of_program.tex
new file mode 100644
index 0000000..9b9a493
--- /dev/null
+++ b/docs/tech/overview_of_program.tex
@@ -0,0 +1,21 @@
+\chapter{Overview of the Program}
+\label{overview_of_program}
+
+The MPX Operating System is designed as an exercise to examine various concepts within the theory of operating systems (rather than as a consumer-usable system). It is specially constructed to be started from within MS-DOS, at which time it will ``take over'' the operating system to perform many of its tasks. As MS-DOS is interrupt-driven, it uses interrupt handler routines to perform many low-level services, such as performing I/O, keeping time using the CPU clock, etc. Thus, we can replace the functionality of the interrupt handlers with code we have written by modifying the interrupt vector table.
+
+MPX is written in C. The following files are used:
+\begin{enumerate}
+    \item {\tt mpx.h} --- A C header file containing all of the functions implemented, global variables, and {\tt \#DEFINE}d macros.
+    \item {\tt clock.c} --- Functions for enabling, configuring, and disabling the clock interrupt, as well as the function that is referenced in the interrupt vector table that is called when a clock interrupt occurs.
+    \item {\tt com.c} --- Functions for enabling, configuring, and disabling the {\tt COM} interrupts, as well as the function that is referenced in the interrupt vector table and is called when a clock interrupt occurs.
+    \item {\tt comhan.c} --- The code for the command handler, which is the main system process that prints a prompt and gets a user-inputted command.
+    \item {\tt dcb.c} --- Functions for dealing with Device Control Blocks (see page \pageref{device_control_block}).
+    \item {\tt direct.c} --- Functions for accessing MS-DOS directory listings. This code was provided by the project.
+    \item {\tt io.c} --- Functions for managing the queueing of processes with regard to I/O operations.
+    \item {\tt main.c} --- Contains {\tt main()}, which is called to perform setup tasks when MPX-OS first boots.
+    \item {\tt pcb.c} --- Functions for dealing with Process Control Blocks (see page \pageref{process_control_block}), including their queueing operations.
+    \item {\tt printer.c} --- Functions for enabling, configuring, and disabling the printer interrupts, as well as the function that is referenced in the interrupt vector table and is called when a clock interrupt occurs.
+    \item {\tt sys\_req.c} --- Contains the code for generating a software interrupt for when a system request is made from within MPX. This code was provided by the project.
+    \item {\tt sys\_sppt.c} --- System support, including initializing devices, closing devices, and handling system calls.
+\end{enumerate}
+
-- 
cgit v1.2.3

