|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.