Annotation of researchv10no/sys/ml/param.s, revision 1.1.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.