]> pd.if.org Git - mmurtl/blob - ossource/mospdr.asm
autocommit for file dated 2003-12-29 17:36:54
[mmurtl] / ossource / mospdr.asm
1 ;   MMURTL Operating System Source Code\r
2 ;   Copyright 1991,1992,1993,1994 Richard A. Burgess\r
3 ;   ALL RIGHTS RESERVED\r
4 ;   Version 1.0\r
5 \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
14 \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
18 ;\r
19 ;A page directory or table entry with all zeros means "not used yet."\r
20 ;\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
31 ;\r
32 ;\r
33 ;                                       20 Bit Address          AVL00DA00UWP\r
34 ;                                       |                                       |  | ||  |||\r
35 PUBLIC PDir1    DD      00000000000000000011000000000101b       ;PT physical address\r
36                                 DD  511 DUP (0)                                                 ;511 BLANK entries\r
37 \r
38                                 DD      00000000000000000011000000000000b       ;Shadow for PT Linear address\r
39                                 DD  511 DUP (0)                                                 ;511 BLANK entries\r
40 \r
41 PUBLIC PTbl1    DD  1024 DUP (0)                                                ;1024 blank entries\r
42 \r
43 \r
44 ;-------------------- END OF MODULE ----------------------\r