Annotation of researchv10no/sys/ml/param.s, revision 1.1

1.1     ! root        1: #
        !             2: # parameters for assembly-language stuff
        !             3: #
        !             4: 
        !             5:        .set    SAVREG,0x3f     # mask of registers to save on traps
        !             6:        .set    NRS,6           # number of registers saved
        !             7:        .set    NISP,3          # number of pages of interrupt stack
        !             8: 
        !             9:        .set    KA,0x80000000   # base of system address space
        !            10: 
        !            11:        .set    MAXPHMEM,1024*1024*1024 # largest memory we can cope with
        !            12: 
        !            13: #
        !            14: # hardware definitions
        !            15: # keep these as few as possible;
        !            16: # write in C instead.
        !            17: #
        !            18: 
        !            19: #
        !            20: # the hardware part of the PCB
        !            21: #
        !            22:        .set    PCB_KSP,0
        !            23:        .set    PCB_ESP,4
        !            24:        .set    PCB_SSP,8
        !            25:        .set    PCB_USP,12
        !            26:                        # r0-r13
        !            27:        .set    PCB_PC,72
        !            28:        .set    PCB_PSL,76
        !            29:        .set    PCB_P0BR,80
        !            30:        .set    PCB_P0LR,84
        !            31:        .set    PCB_P1BR,88
        !            32:        .set    PCB_P1LR,92
        !            33: #
        !            34: # one software extension word; a botch to be removed
        !            35: #
        !            36:        .set    PCB_SSWAP,96
        !            37: 
        !            38: #
        !            39: # psl
        !            40: #
        !            41: 
        !            42:        .set    PSL_PRVMOD,0x00c00000   # previous mode; all on == user
        !            43:        .set    PSL_CURMOD,0x03000000   # current mode; ditto
        !            44:        .set    PSL_FPD,0x08000000      # first part done before trap
        !            45:        .set    PSLB_IS,26              # bit number: on interrupt stack
        !            46: 
        !            47: #
        !            48: # processor registers
        !            49: #
        !            50:        .set    USP,0x3         # user stack pointer
        !            51:        .set    P0BR,0x8        # page table base, length
        !            52:        .set    P0LR,0x9
        !            53:        .set    P1BR,0xa
        !            54:        .set    P1LR,0xb
        !            55:        .set    SBR,0xc
        !            56:        .set    SLR,0xd
        !            57:        .set    PCBB,0x10       # current process pcb
        !            58:        .set    SCBB,0x11       # system control block
        !            59:        .set    IPL,0x12        # interrupt priority level
        !            60:        .set    ICCS,0x18       # interval counter control
        !            61:        .set    NICR,0x19       # next interval count
        !            62:        .set    RXCS,0x20       # console rcv status, data
        !            63:        .set    RXDB,0x21
        !            64:        .set    TXCS,0x22       # console xmt status, data
        !            65:        .set    TXDB,0x23
        !            66:        .set    MAPEN,0x38      # enable memory mapping
        !            67:        .set    TBIA,0x39       # invalidate translation buffer cache
        !            68:        .set    TBIS,0x3a
        !            69:        .set    CPUSID,0x3e     # system ID register
        !            70: 
        !            71: #
        !            72: # hardware memory management
        !            73: #
        !            74:        .set    NBPG,512        # bytes per hardware page
        !            75:        .set    PGSHIFT,9       # a/NBPG == a>>PGSHIFT
        !            76:        .set    PG_V,0x80000000 # page table entry: valid bit
        !            77:        .set    PG_KW,0x10000000 # page prot: kernel write
        !            78:        .set    PG_URKW,0x70000000 # page prot: kernel write user read
        !            79: 
        !            80: #
        !            81: # miscellany
        !            82: #
        !            83:        .set    HIGH,0x1f       # highest interrupt level
        !            84:        .set    DUMPMAGIC,0x79646e61
        !            85: 
        !            86: #
        !            87: # software parameters duplicated from C code
        !            88: # their presence is a bug; fix later
        !            89: #
        !            90: 
        !            91:        .set    UPAGES,10
        !            92:        .set    P_LINK,0
        !            93:        .set    P_RLINK,4
        !            94:        .set    P_ADDR,8
        !            95:        .set    P_PRI,13
        !            96:        .set    P_STAT,15
        !            97:        .set    P_FLAG,32
        !            98:        .set    SRUN,3
        !            99:        .set    SPROCIO,16777216

unix.superglobalmegacorp.com

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