1 ; MMURTL Operating System Source Code
\r
2 ; Copyright 1991,1992,1993,1994 Richard A. Burgess
\r
3 ; ALL RIGHTS RESERVED
\r
6 ;This is MMURTL's page directory and initial page table.
\r
7 ;The page directory has one entry in it which is the linear address
\r
8 ;of it's only page table. The page table has just enough entries
\r
9 ;in it to cover the OS Data, Stack and Code.
\r
10 ;Note that the page directory actual becomes assigned to the Monitor program
\r
11 ;because the OS code isn't actually a task. Remember, OS code runs in OTHER
\r
12 ;job's tasks. The monitor is the first true job launched, which can
\r
13 ;install services, launch programs, report errors on termination, etc.
\r
15 ;The page directory is 4K and is ALWAYS PAGE ALIGNED
\r
16 ;We fill in the first page directory entry statically, then the
\r
17 ;InitMem routine fills in the page table for us.
\r
19 ;A page directory or table entry with all zeros means "not used yet."
\r
21 ;The AVL bits are for OS use and are defined as follows:
\r
22 ; A - 1 = Alias of someone elses physical memory
\r
23 ; V - 1 = Undefined (use later for virtual memory mgmt)
\r
24 ; L - 1 = Undefined (use later for virtual memory mgmt)
\r
25 ;The other bits are Hardware defined and set as follows:
\r
26 ; D - 1 = Dirty (written to) since created. CPU sets this.
\r
27 ; A - 1 = Accessed since created. CPU sets this.
\r
28 ; U - 1 = User, 0 = Supervisor. OS sets this.
\r
29 ; W - 1 = Writable for user (super pages are always writable to the OS)
\r
30 ; P - 1 = Present. CPU will not read or mod entry if this is Zero
\r
33 ; 20 Bit Address AVL00DA00UWP
\r
35 PUBLIC PDir1 DD 00000000000000000011000000000101b ;PT physical address
\r
36 DD 511 DUP (0) ;511 BLANK entries
\r
38 DD 00000000000000000011000000000000b ;Shadow for PT Linear address
\r
39 DD 511 DUP (0) ;511 BLANK entries
\r
41 PUBLIC PTbl1 DD 1024 DUP (0) ;1024 blank entries
\r
44 ;-------------------- END OF MODULE ----------------------
\r