Annotation of cci/d/demand/init.c, revision 1.1.1.1

1.1       root        1: 
                      2: /*     init.s                                                          */
                      3: 
                      4: 
                      5: /*     This file is a diagnostic version of locore.s.                  */
                      6: /*     It contains the following:                                      */
                      7: /*     *system data area = scb, dump buffer, interrupt stack,          */
                      8: /*     *system page table,user page tables,pcbs,iomap, & io buffers.   */
                      9: /*                                                                     */
                     10: /*     *system code = interrupt vectors, initialization of system data,*/
                     11: /*     *memory size calculation,initialization of SPT, zeroing of      */
                     12: /*     *unused memory, & loading of SBR & SLR.                         */
                     13: /*     *                                                               */
                     14: /*     *at the end of this code, you are ready to go to virtual mode.  */
                     15: /*     * --- GOOD LUCK!                                                */
                     16: 
                     17: 
                     18: /*     privileged registers addresses  */
                     19: #include       "prvreg.h"
                     20:        
                     21: /*     program status long word definition     */
                     22: #include       "psl.h" 
                     23: 
                     24: /*     page table entry definition             */
                     25: #include       "pte.h"
                     26:        
                     27: /*     process control block offsets   */
                     28: #include       "pcboffset.h"   
                     29: 
                     30: /*     fundamental constants for globl use     */
                     31: #include       "const.h"       
                     32: 
                     33: /*     system control block offsets*/
                     34: #include       "scboffset.h"
                     35: /*     SPT offsets                             */
                     36: #include       "sptoffset.h"
                     37: 
                     38: /*     trap numbers*/
                     39: #include       "trap.h"        
                     40: 
                     41: 
                     42: #define P0SPACE                1       /* This test run in P0 space */
                     43: #define TRUE           1
                     44: #define V_TRAP         0
                     45: #define V_SYSCALL      4
                     46: 
                     47:        .set    HIGH,0x1f       /*mask for disabling all interrupts     */
                     48:        .set    MCKVEC,4        /*scb offset for machinecheck vector    */
                     49:        .set    NISP,2          /*no. of interrupt stack pages          */
                     50:        .set    DONE,255        /*user process done code                */
                     51:        .globl  MME
                     52:        .set    MME,9
                     53: 
                     54:        .text
                     55: 
                     56: #include "pstorage.s"          /* PROCESSOR STORAGE AREA               */
                     57: 
                     58:        .globl  _Entry
                     59: _Entry:
                     60:        jmp     start
                     61:        .space  (1024-6)
                     62: 
                     63: 
                     64: 
                     65: /*             globl dump buffer to be used for communication          */
                     66: /*             between tests & interrupt handlers, & other misc.       */
                     67: /*             purposes.                                               */
                     68:                                
                     69:                                /*physical page 3                       */
                     70: 
                     71:        .set    NLWU,30         /*no. of longwords already used         */
                     72:                                /*this must be changed when you define  */
                     73:                                /*additional variables below before     */
                     74:                                /*_dbuf                                 */
                     75:        .globl  _restart
                     76: _restart:
                     77:        .space  4               /*contains restart address for rastarting*/
                     78:                                /*after power is restored (loaded by    */
                     79:                                /*power fail interrupt handler & used by*/
                     80:                                /*CPU 2                                 */      
                     81:        .globl  _maxmem
                     82: _maxmem:
                     83:        .space  4               /*memory size in no of bytes            */
                     84: 
                     85:        .globl  _maxpages
                     86: _maxpages:
                     87:        .space  4               /*memory size in no. of physical pages  */
                     88: 
                     89:        .globl  _lastadd
                     90: _lastadd:
                     91:        .space  4               /*address of the last long word         */
                     92: 
                     93:        .globl  _unused
                     94: _unused:
                     95:        .space  4               /*first unused page in system space     */
                     96: 
                     97:        .globl  _ctlblk
                     98: _ctlblk:
                     99:        .long   0               /* pointer to SCB */
                    100: 
                    101:        .globl  _savvec0        /*save vectors area                     */
                    102: _savvec0:
                    103:        .space  4
                    104: 
                    105:        .globl  _savvec1        /*save vectors area                     */
                    106: _savvec1:
                    107:        .space  4
                    108: 
                    109:        .globl  _savvec2        /*save vectors area                     */
                    110: _savvec2:
                    111:        .space  4
                    112: 
                    113:        .globl  _savvec3        /*save vectors area                     */
                    114: _savvec3:
                    115:        .space  4
                    116: 
                    117:        .globl  _savvec4        /*save vectors area                     */
                    118: _savvec4:
                    119:        .space  4
                    120: 
                    121:        .globl  _savvec5        /*save vectors area                     */
                    122: _savvec5:
                    123:        .space  4
                    124:        .globl  _savvec6        /*save vectors area                     */
                    125: _savvec6:
                    126:        .space  4
                    127:        .globl  _savvec7        /*save vectors area                     */
                    128: _savvec7:
                    129:        .space  4
                    130:        .globl  _dbuf           /*dump buffer left out of 1K            */
                    131:        .globl  _r_no
                    132: _r_no:
                    133:        .long   0
                    134:        .globl  _pt_base
                    135: _pt_base:
                    136:        .long   0
                    137:        .globl  _saved_psl
                    138: _saved_psl:
                    139:        .long   0
                    140:        .globl  _saved_sp
                    141: _saved_sp:
                    142:        .long   0
                    143:        .globl  _saved_fp
                    144: _saved_fp:
                    145:        .long   0
                    146:        .globl  _p_ptr
                    147: _p_ptr:
                    148:        .long   0
                    149:        .globl  _ret_adr
                    150: _ret_adr:
                    151:        .long   0
                    152:        .globl  _exp_par0
                    153: _exp_par0:
                    154:        .long   0
                    155:        .globl  _exp_par1
                    156: _exp_par1:
                    157:        .long   0
                    158:        .globl  _exp_par2
                    159: _exp_par2:
                    160:        .long   0
                    161:        .globl  _exp_par3
                    162: _exp_par3:
                    163:        .long   0
                    164:        .globl  _act_par0
                    165: _act_par0:
                    166:        .long   0
                    167:        .globl  _act_par1
                    168: _act_par1:
                    169:        .long   0
                    170:        .globl  _act_par2
                    171: _act_par2:
                    172:        .long   0
                    173:        .globl  _act_par3
                    174: _act_par3:
                    175:        .long   0
                    176:        .globl  _test_no
                    177: _test_no:
                    178:        .long   0
                    179: _dbuf:
                    180:        .space  NBPG - (NLWU *4)
                    181: edbuf:
                    182: 
                    183: 
                    184:        .globl  _intstack       /* Interrupt stack                      */
                    185: _intstack:                     /* Physical pages 4 & 5                 */
                    186:        .space  NISP*NBPG
                    187: eintstack:
                    188: 
                    189: 
                    190:        .set    SYSPTSIZE,512   /* No. of entries in SPT                */
                    191:  
                    192: /*
                    193:        System Page Table -- physical page 6 & 7
                    194: */ 
                    195:        .align  2
                    196:        .globl  _Sysmap
                    197: _Sysmap:
                    198:        .space  SYSPTSIZE*4     /* 512 max pages allowed for system     */
                    199: eSysmap:
                    200:        .globl  _Syssize
                    201:        .set    _Syssize,(eSysmap-_Sysmap)/4    /* should be SYSPTSIZE  */
                    202:        
                    203:        .globl  _iomap          /* Physical page 8      */
                    204: _iomap:        .space  1024            /* IOMAP - unused       */
                    205:        .globl  _eiomap
                    206: _eiomap:
                    207: 
                    208:        .globl  _pcb0           /* Physical page 9      */
                    209: _pcb0: .space  128             /*process control block 0               */
                    210:        .globl  _pcb1
                    211: _pcb1: .space 128              /*process control block 1               */
                    212:        .globl  _pcb2
                    213: _pcb2: .space 128              /*process control block 2               */
                    214:        .globl  _pcb3
                    215: _pcb3: .space 128              /*process control block 3               */
                    216:        .globl  _pcb4
                    217: _pcb4: .space 128              /*process control block 4               */
                    218:        .globl  _pcb5
                    219: _pcb5: .space 128              /*process control block 5               */
                    220:        .globl  _pcb6
                    221: _pcb6: .space 128              /*process control block 6               */
                    222:        .globl  _pcb7
                    223: _pcb7: .space 128              /*process control block 7               */
                    224: 
                    225: /*
                    226:        *user #0 page tables -- P0PT, P1PT, P2PT                        
                    227:        *physical memory     --  page10, 11, & 12  respectively
                    228: */
                    229:        .align  2
                    230:        .globl  _u0p0pt
                    231: _u0p0pt:
                    232:        .space  1024            /*255 max pages for user #0 text        */
                    233:        .globl  _u0p1pt
                    234: _u0p1pt:       
                    235:        .space  1024            /*255 max pages for user #0 data        */
                    236:        .globl  _u0p2pt
                    237: _u0p2pt:       
                    238:        .space  1020            /*255 max pages for user #0 stack       */
                    239: eu0p2pt:
                    240:        .space  4
                    241: 
                    242: /*
                    243:        *user #1 page tables -- P0PT, P1PT, P2PT                        
                    244:        *physical memory     --  page13 ,14, & 15  respectively
                    245: */
                    246:        .align  2
                    247:        .globl  _u1p0pt
                    248: _u1p0pt:
                    249:        .space  1024            /*255 max pages for user #1 text        */
                    250:        .globl  _u1p1pt
                    251: _u1p1pt:       
                    252:        .space  1024            /*255 max pages for user #1 data        */
                    253:        .globl  _u1p2pt
                    254: _u1p2pt:       
                    255:        .space  1020            /*255 max pages for user #1 stack       */
                    256: eu1p2pt:
                    257:        .space  4
                    258: 
                    259: 
                    260: /*
                    261:        *user #2 page tables -- P0PT, P1PT, P2PT                        
                    262:        *physical memory     --  page 16, 17 , & 18  respectively
                    263: */
                    264:        .align  2
                    265:        .globl  _u2p0pt
                    266: _u2p0pt:
                    267:        .space  1024            /*255 max pages for user #2 text        */
                    268:        .globl  _u2p1pt
                    269: _u2p1pt:       
                    270:        .space  1024            /*255 max pages for user #2 data        */
                    271:        .globl  _u2p2pt
                    272: _u2p2pt:       
                    273:        .space  1020            /*255 max pages for user #2 stack       */
                    274: eu2p2pt:
                    275:        .space  4
                    276: 
                    277: 
                    278: /*
                    279:        *user #3 page tables -- P0PT, P1PT, P2PT                        
                    280:        *physical memory     --  page 19, 20 , & 21  respectively
                    281: */
                    282:        .align  2
                    283:        .globl  _u3p0pt
                    284: _u3p0pt:
                    285:        .space  1024            /*255 max pages for user #3 text        */
                    286:        .globl  _u3p1pt
                    287: _u3p1pt:       
                    288:        .space  1024            /*255 max pages for user #3 data        */
                    289:        .globl  _u3p2pt
                    290: _u3p2pt:       
                    291:        .space  1020            /*255 max pages for user #3 stack       */
                    292: eu3p2pt:
                    293:        .space  4
                    294: 
                    295: /*
                    296:        *user #4 thru 6 page tables
                    297:        *physical memory -- pages 22 thru 30
                    298: */
                    299:        .globl  _u4p0pt
                    300: _u4p0pt:
                    301:        .space  (9*NBPG) - 4
                    302: eu6p2pt:
                    303:        .space  4
                    304: 
                    305: /*
                    306:        *user #7 page tables -- P0PT, P1PT, P2PT                        
                    307:        *physical memory     --  page 31, 32 , & 33  respectively
                    308: */
                    309:        .align  2
                    310:        .globl  _u7p0pt
                    311: _u7p0pt:
                    312:        .space  1024            /*255 max pages for user #7 text        */
                    313:        .globl  _u7p1pt
                    314: _u7p1pt:       
                    315:        .space  1024            /*255 max pages for user #7 data        */
                    316:        .globl  _u7p2pt
                    317: _u7p2pt:       
                    318:        .space  1020            /*255 max pages for user #7 stack       */
                    319: eu7p2pt:
                    320:        .space  4
                    321: 
                    322:        .globl  _iob0           /*io buffer 0 */
                    323: _iob0: .space  1024
                    324:        .globl  _iob1           /*io buffer 1 */
                    325: _iob1: .space  1024
                    326:        .globl  _iob2           /*io buffer 2 */
                    327: _iob2: .space  1024
                    328:        .globl  _iob3           /*io buffer 3 */
                    329: _iob3: .space  1024
                    330:        .globl  _iob4           /*io buffer 4 */
                    331: _iob4: .space  1024
                    332:        .globl  _iob5           /*io buffer 5 */
                    333: _iob5: .space  1024
                    334:        .globl  _iob6           /*io buffer 6 */
                    335: _iob6: .space  1024
                    336: esysdata:
                    337: 
                    338: #include "scblock.s"           /* SYSTEM CONTROL BLOCK                 */
                    339: 
                    340: 
                    341: 
                    342: 
                    343: 
                    344: 
                    345: 
                    346: #include       "evthandlers.s" /*event handlers                        */
                    347: 
                    348: #define        ACBL(_n1,_n2,_n3,_n4) \
                    349: addl2  _n2,_n3;\
                    350: cmpl   _n3,_n1;\
                    351: bleq   _n4;
                    352: 
                    353: 
                    354: 
                    355: /*
                    356:        *INITIALIZATION CODE
                    357:        *
                    358:        * MME off; mode = k; IPL = 31; IS = 1
                    359:        *
                    360: */
                    361: 
                    362:        .globl  start
                    363: start:
                    364:        mtpr    $0,$MME                 /* Disable MME */
                    365:        movl    r0,_tno                 /* R0 = Test no */
                    366:        movl    r1,_option              /* R1 = Options */
                    367:        movl    r2,_Cycle
                    368:        clrl    _cycle
                    369: 
                    370:        andl3   _option,$0x8,_ss1       /* Bit 5 : Inhibit heading messages */
                    371:        andl3   _option,$0x4,_Emsg      /* Bit 3 : Loop on test */
                    372:        clrl    _lptest
                    373: 
                    374:        tstl    _tno            /* Set lptest if tno == XX and loop forever */
                    375:        beql    dmtest
                    376:        cmpl    $-1,_Cycle
                    377:        bneq    dmtest
                    378:        incl    _lptest
                    379: dmtest:
                    380:        movab   _scb,r0
                    381:        mtpr    r0,$SCBB                /* Set SCBB  */
                    382:        mtpr    $0x1f,$IPL
                    383: 
                    384:        movpsl  r1
                    385:        andl2   $0xffffff00,r1          /* Mask out flags               */
                    386:        cmpl    r1,$0x041f0000          /*IS on,modes =k & IPL = 31?    */
                    387:        beql    1f
                    388: 2:     movl    $1,r0
                    389:        movl    $0x041f0000,r2
                    390:        halt                    /* PSL not initialized as expected      */
                    391: 1:
                    392:        mtpr    $_intstack+NISP*NBPG,$ISP       /* init. ISP            */
                    393:        movl    $_intstack+NISP*NBPG,sp /* in case we get exception     */
                    394:        movab   (sp),fp                 /* Initialize FP                */
                    395: 
                    396: /*
                    397:        Clear system data area all the way upto system code
                    398:        this includes dump buffer,interrupt stack,spt,iomap,pcbs,user 
                    399:        page tables, & io buffer area.
                    400: */
                    401: 3:     
                    402:        movab   esysdata,r7
                    403:        movab   _restart,r6
                    404: 1:     clrl    (r6)
                    405:        ACBL(r7,$4,r6,1b)
                    406: /*
                    407:        Initialize System Page Table
                    408: */
                    409: 5:
                    410:        clrl    r2
                    411:        movab   esysdata,r1     /* R1 = Last address in system data area */
                    412:        andl2   $0x3fffffff,r1  /* Mask out bit 30,31   */
                    413:        shar    $PGSHIFT,r1,r1  /* Get page no. of last system data addr  */
                    414:                                /* Map systm data area 1 to 1,kernel writable */
                    415: 1:
                    416:        movl    r2,r11          /* Donot want to use orl3 */
                    417:        orl2    $PG_V|PG_KW,r11
                    418:        orl2    r11,_Sysmap[r2]
                    419:        aoblss  r1,r2,1b
                    420: /*
                    421:        Map system text area 1 to 1, Kernel read/write.
                    422:        For this to work, the label _etext must exist at the end 
                    423:        of system code; Add in 4 more pages for data area used in C
                    424: */
                    425:        movab   _edata + 4*(NBPG-1),r1  /* Map text+data 1 to 1; Kernel R/W */
                    426: /*     movab   _etext + 4*(NBPG-1), r1         */
                    427:        andl2   $0x3fffffff,r1
                    428:        shar    $PGSHIFT,r1,r1
                    429: 1:
                    430:        movl    r2,r11
                    431:        orl2    $PG_V|PG_KW,r11         /* Kernel Read/Write */
                    432:        orl2    r11,_Sysmap[r2]
                    433:        aoblss  r1,r2,1b
                    434: /*
                    435:        Map from here (1st unused page) to page 512 :
                    436:           * invalid,no access, & virtual = physical
                    437: */
                    438:        movl    r2,_unused      /* Save first unused physical page no   */
                    439:        movl    $LSP+1,r1
                    440: 1:     movl    r2,_Sysmap[r2]
                    441:        aoblss  r1,r2,1b
                    442: 
                    443: /*
                    444:        Initialize SBR, SLR
                    445:  *Following are some useful addresses for user 0 (in case you want
                    446:  *to start user 0:
                    447:  *
                    448:  *     p0br = $_u0p0pt (limit = 256 max)
                    449:  *     p1br = $_u0p1pt ( same limit)
                    450:  *     p2br = $0xbfc02c00 (funny)
                    451:  *     p2lr = $0x000ffff0 (funny)
                    452:  *
                    453:  *for other users, add NBPG*3 to above except for p2 area
                    454:  *
                    455:  *     u0_user_sp = 0xbffffbfc
                    456:  *     u0_k_sp    = 0xbfffe3fc
                    457:  *     u0_s_sp    = 0xbfffcbfc
                    458:  *     u0_e_sp    = 0xbfffcbfc
                    459:  *
                    460: */
                    461: 
                    462: sysrdy:
                    463:        cmpl    $TRUE,$P0SPACE
                    464:        bneq    0f
                    465:        mtpr    $_Sysmap,$SBR                   /*  Physical mode */
                    466:        brb     1f
                    467: 0:     mtpr    $(_Sysmap-0xc0000000),$SBR      /* Virtual mode version */
                    468: 1:     mtpr    $_Syssize,$SLR
                    469: 
                    470: /* 
                    471:        Double map the kernel into user addresses : 
                    472:        This will enable system to go to virtual mode the 1st time !!
                    473: */
                    474:        .globl  _ready
                    475:        mtpr    $_Sysmap,$P0BR
                    476:        mtpr    $_Syssize,$P0LR
                    477: _ready:                                
                    478:        cmpl    $P0SPACE,$TRUE          /* Run physical ? */
                    479:        beql    pmode
                    480:        
                    481: /*     GO TO VIRTUAL MODE      */
                    482:        mtpr    $1,$DCK                 /* Set data cache key */
                    483:        mtpr    $0,$TBIA                /* Invalidate translation buffer */
                    484:        mtpr    $1,$DCR                 /* Enable data cache */
                    485:        mtpr    $1,$PADC                /* Purge all data cache */
                    486:        mtpr    $1,$MME                 /* Turn on MME */
                    487:        jmp     *$pmode                 /* Go .... */
                    488: pmode:
                    489:        mtpr    $0,$P0LR                /* Invalidate user map */
                    490:        mtpr    $_pcb0,$PCBB            /* Initialize PCBB */
                    491:        movl    $0,_test_no
                    492:        mtpr    $64,$DCR                /* enable fault */
                    493: 
                    494:        tstl    _ss1
                    495:        jeql    nxt0
                    496:        pushl   $M0
                    497:        callf   $4+4,_writes            /* Print heading */
                    498: 
                    499: nxt0:  cmpl    $0,_tno
                    500:        beql    t0
                    501:        cmpl    $1,_tno
                    502:        bneq    nxt1
                    503: t0:
                    504:        tstl    _ss1
                    505:        jeql    1f
                    506:        pushl   $D1
                    507:        callf   $4+4,_writes
                    508: 1:
                    509:        calls   $4,_dmp 
                    510:        tstl    _lptest
                    511:        bneq    t0
                    512: 
                    513: nxt1:  cmpl    $0,_tno
                    514:        beql    t1
                    515:        cmpl    $2,_tno
                    516:        bneq    nxt2
                    517: t1:
                    518:        tstl    _ss1
                    519:        jeql    1f
                    520:        pushl   $D2
                    521:        callf   $4+4,_writes
                    522: 1:
                    523:        calls   $4,_dmp0
                    524:        tstl    _lptest
                    525:        bneq    t1
                    526: 
                    527: nxt2:  cmpl    $0,_tno
                    528:        beql    t2
                    529:        cmpl    $3,_tno
                    530:        bneq    nxt3
                    531: t2:
                    532:        tstl    _ss1
                    533:        jeql    1f
                    534:        pushl   $D3
                    535:        callf   $4+4,_writes
                    536: 1:
                    537:        calls   $4,_dmp1
                    538:        tstl    _lptest
                    539:        bneq    t2
                    540: 
                    541: nxt3:  cmpl    $0,_tno
                    542:        beql    t3
                    543:        cmpl    $4,_tno
                    544:        bneq    nxt4
                    545: t3:
                    546:        tstl    _ss1
                    547:        jeql    1f
                    548:        pushl   $D4
                    549:        callf   $4+4,_writes
                    550: 1:
                    551:        calls   $4,_dmp2
                    552:        tstl    _lptest
                    553:        bneq    t3
                    554: 
                    555: nxt4:  cmpl    $0,_tno
                    556:        beql    t4
                    557:        cmpl    $5,_tno
                    558:        bneq    nxt5
                    559: t4:
                    560:        tstl    _ss1
                    561:        jeql    1f
                    562:        pushl   $D5
                    563:        callf   $4+4,_writes
                    564: 1:
                    565:        calls   $4,_dmp3
                    566:        tstl    _lptest
                    567:        bneq    t4
                    568: 
                    569: nxt5:  cmpl    $0,_tno
                    570:        beql    t5
                    571:        cmpl    $6,_tno
                    572:        bneq    nxt6
                    573: t5:
                    574:        tstl    _ss1
                    575:        jeql    1f
                    576:        pushl   $D6
                    577:        callf   $4+4,_writes
                    578: 1:
                    579:        calls   $4,_dmp4
                    580:        tstl    _lptest
                    581:        bneq    t5
                    582: 
                    583: nxt6:  cmpl    $0,_tno
                    584:        beql    t6
                    585:        cmpl    $7,_tno
                    586:        bneq    nxt7
                    587: t6:
                    588:        tstl    _ss1
                    589:        jeql    1f
                    590:        pushl   $D7
                    591:        callf   $4+4,_writes
                    592: 1:
                    593:        calls   $4,_dmp5
                    594:        tstl    _lptest
                    595:        bneq    t6
                    596: 
                    597: nxt7:  cmpl    $0,_tno
                    598:        beql    t7
                    599:        cmpl    $8,_tno
                    600:        bneq    nxt8
                    601: t7:
                    602:        tstl    _ss1
                    603:        jeql    1f
                    604:        pushl   $D8
                    605:        callf   $4+4,_writes
                    606: 1:
                    607:        calls   $4,_dmp6
                    608:        tstl    _lptest
                    609:        bneq    t7
                    610: 
                    611: nxt8:
                    612:        cmpl    $-1,_Cycle
                    613:        jeql    dmtest
                    614: 
                    615:        incl    _cycle
                    616:        cmpl    _cycle,_Cycle
                    617:        bgeq    passed
                    618:        jmp     dmtest
                    619: 
                    620:        .globl  passed
                    621: passed:
                    622:        tstl    _ss1
                    623:        jneq    1f
                    624:        pushl   $M2
                    625:        callf   $4+4,_writes
                    626:        pushl   _Cycle
                    627:        callf   $4+4,_writeh
                    628:        pushl   $M1
                    629:        callf   $4+4,_writes
                    630: 1:
                    631:        movl    $0xcafebabe,r0
                    632:        halt                            /* Good halt :   R0 == CAFE BABE */
                    633: 
                    634:        .align  2
                    635:        .globl  _ss1
                    636: _ss1:  .long   0       /* If 1 then donot print heading message */
                    637:        .globl  _tno
                    638: _tno:  .long   0
                    639:        .globl  _cycle
                    640: _cycle: .long  0
                    641:        .globl  _Cycle
                    642: _Cycle: .long  0
                    643:        .globl  _Emsg
                    644: _Emsg:
                    645:        .long   0
                    646:        .globl  _lptest
                    647: _lptest:
                    648:        .globl  _option
                    649: _option:
                    650:        .long   0
                    651: 
                    652: 
                    653:        .data   1               /* MESSAGE AREA */
                    654: M0:    .ascii  "\n\t** The Demand Paging Test **\n\0"
                    655: M1:    .ascii  "\n** Passed..\n\0"
                    656: M2:    .ascii  "\n** Cycle count : \0"
                    657: D1:    .ascii  "1 : CALLS instruction.\n\0"
                    658: D2:    .ascii  "2 : SP auto decrement.\n\0"
                    659: D3:    .ascii  "3 : SP auto increment deferred.\n\0"
                    660: D4:    .ascii  "4 : Dirrect register mode.\n\0"
                    661: D5:    .ascii  "5 : Register longword displacement deferred indexed\n\0"
                    662: D6:    .ascii  "6 : PC longword relative deferred indexed.\n\0"
                    663: D7:    .ascii  "7 : EMUL with register longword displacement deferred indexed.\n\0"
                    664: D8:    .ascii  "8 : Register longword displacement deferred indexed,fault at the indirrect address.\n\0"
                    665: 
                    666: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.