]> pd.if.org Git - mmurtl/commitdiff
autocommit for file dated 1994-12-21 22:06:26
authorRichard Burgess <>
Wed, 21 Dec 1994 22:06:26 +0000 (22:06 +0000)
committerNathan Wagner <nw@hydaspes.if.org>
Mon, 17 Oct 2016 14:03:47 +0000 (14:03 +0000)
ossource/mospdr.asm [new file with mode: 0644]

diff --git a/ossource/mospdr.asm b/ossource/mospdr.asm
new file mode 100644 (file)
index 0000000..31bac99
--- /dev/null
@@ -0,0 +1,44 @@
+;   MMURTL Operating System Source Code\r
+;   Copyright 1991,1992,1993,1994 Richard A. Burgess\r
+;   ALL RIGHTS RESERVED\r
+;   Version 1.0\r
+\r
+;This is MMURTL's page directory and initial page table.\r
+;The page directory has one entry in it which is the linear address\r
+;of it's only page table.  The page table has just enough entries\r
+;in it to cover the OS Data, Stack and Code.\r
+;Note that the page directory actual becomes assigned to the Monitor program\r
+;because the OS code isn't actually a task.  Remember, OS code runs in OTHER\r
+;job's tasks.  The monitor is the first true job launched, which can\r
+;install services, launch programs, report errors on termination, etc.\r
+\r
+;The page directory is 4K and is ALWAYS PAGE ALIGNED\r
+;We fill in the first page directory entry statically, then the\r
+;InitMem routine fills in the page table for us.\r
+;\r
+;A page directory or table entry with all zeros means "not used yet."\r
+;\r
+;The AVL bits are for OS use and are defined as follows:\r
+;      A - 1 = Alias of someone elses physical memory\r
+;      V - 1 = Undefined (use later for virtual memory mgmt)\r
+;      L - 1 = Undefined (use later for virtual memory mgmt)\r
+;The other bits are Hardware defined and set as follows:\r
+;      D - 1 = Dirty (written to) since created.  CPU sets this.\r
+;      A - 1 = Accessed since created. CPU sets this.\r
+;      U - 1 = User,  0 = Supervisor. OS sets this.\r
+;      W - 1 = Writable for user (super pages are always writable to the OS)\r
+;      P - 1 = Present. CPU will not read or mod entry if this is Zero\r
+;\r
+;\r
+;                                      20 Bit Address          AVL00DA00UWP\r
+;                                      |                                       |  | ||  |||\r
+PUBLIC PDir1   DD      00000000000000000011000000000101b       ;PT physical address\r
+                               DD  511 DUP (0)                                                 ;511 BLANK entries\r
+\r
+                               DD      00000000000000000011000000000000b       ;Shadow for PT Linear address\r
+                               DD  511 DUP (0)                                                 ;511 BLANK entries\r
+\r
+PUBLIC PTbl1   DD  1024 DUP (0)                                                ;1024 blank entries\r
+\r
+\r
+;-------------------- END OF MODULE ----------------------\r