
;
;   VM Test
;
;   This test creates a very small page table, and the uses the
;   extended function call XFC$VM call to test the page table
;   translation.
;
;   The value translates the virtual address 208 which is 8 bytes
;   into the second P0 process table.  This should resolve to the
;   physical address 4208.
;
;



            
main:       .base       200
            movl        #^d100000, r3
            
loop:       movl        #208, R0
            xfc         #xfc$vm
            
            sobgtr      r3, loop
            
            halt

syspage:    .base       2000

            .pte        < 1, PTE$K_ALL, 0,  3000 >
            .pte        < 1, PTE$K_ALL, 0,  3200 >
            .pte        < 1, PTE$K_ALL, 0,  3400 >

            .sbr        2000
            .slr        3

procpage:   .base       3000
            .pte        < 1, PTE$K_ALL, 0, 4000 >
            .pte        < 1, PTE$K_ALL, 0, 4200 >

;
;   Note that the P0 page table base register is a S0
;   virtual address.  This will translate via the system
;   page table to find the correct page table entry.
;

            .p0br       80000000
            .p0lr       2
