V.TR4 =: ^O< 4> V.TR10 =: ^O< 10> V.BPT =: ^O< 14> V.IOT =: ^O< 20> V.PWFL =: ^O< 24> V.EMT =: ^O< 30> V.TRAP =: ^O< 34> V.PET =: ^O<114> V.MMU =: ^O<250> ; MMU IO22PG =: ^O<177600> IO18PG =: ^O<7600> SSR0 =: ^O<177572> ; SSR0 Control and status ; 15 Non-resident ; 14 Length ; 13 Read-only ; 12 Trap ; 11 - 10 Unused ; 9 Enable Trap ; 8 Maintenance ; 7 Instruction Completed ; 6 - 5 CPU Mode ; 4 I/D ; 3 - 1 Page ; 0 - Enable MM0.EN =: ^O<1> SSR1 =: ^O<177574> ; SSR1 Register increment/descrement record ; 15 - 11 Change ; 10 - 8 Register ; 7 - 3 Change ; 2 0 Register SSR2 =: ^O<177576> ; Virtual address associated with the fault (usually the instruction address) SSR3 =: ^O<172516> ; D-space enable/disable (per mode) ; 15 - 6 Unused ; 5 Enable UNIBUS Map MM3.UN =: ^O<40> ; 4 Enable 22-bit MM3.22 =: ^O<20> ; 3 Unused ; 2 Kernel MM3.KD =: ^O<4> ; 1 Supervisor MM3.SD =: ^O<2> ; 0 User MM3.UD =: ^O<1> ; PDR ; 15 Don't Cache ; 14 - 8 Length ; 7 Trapped ; 6 Written ; 5 - 4 Unused ; 3 Direction ; 2 - 0 Access Control ; 0 Non-resident - abort all accesses ; 1 Read-only watched - abort on write, trap on read ; 2 Read-only - abort on write ; 3 Unused, reserved - abort all accesses ; 4 Read/write all watched - trap on read or write ; 5 Read/write watched - trap on write ; 6 Read/write - none ; 7 Unused, reserved - abort all accesses P.NCH =: ^O<100000> P.LNM =: ^O<177>*^O<400> P.AA2 =: ^O<7> ; 111 abort all accesses P.RW =: ^O<6> ; 110 none P.RWT =: ^O<5> ; 101 trap on write P.AT =: ^O<4> ; 100 trap on read or write P.AA1 =: ^O<3> ; 011 abort all accesses P.RWA =: ^O<2> ; 010 abort on write P.RTWA =: ^O<1> ; 001 abort on write, trap on read P.NONE =: ^O<0> ; 000 abort all accesses SISDR0 =: ^O<172200> ; 172200 - 172216 SISDx Supervisor I-Space PDR #x SISDR1 =: ^O<172202> SISDR2 =: ^O<172204> SISDR3 =: ^O<172206> SISDR4 =: ^O<172210> SISDR5 =: ^O<172212> SISDR6 =: ^O<172214> SISDR7 =: ^O<172216> SDSDR0 =: ^O<172220> ; 172220 - 172236 SDSDx Supervisor D-Space PDR #x SDSDR1 =: ^O<172222> SDSDR2 =: ^O<172224> SDSDR3 =: ^O<172226> SDSDR4 =: ^O<172230> SDSDR5 =: ^O<172232> SDSDR6 =: ^O<172234> SDSDR7 =: ^O<172236> SISAR0 =: ^O<172240> ; 172240 - 172256 SISAx Supervisor I-Space PAR #x SISAR1 =: ^O<172242> SISAR2 =: ^O<172244> SISAR3 =: ^O<172246> SISAR4 =: ^O<172250> SISAR5 =: ^O<172252> SISAR6 =: ^O<172254> SISAR7 =: ^O<172256> SDSAR0 =: ^O<172260> ; 172260 - 172276 SDSAx Supervisor D-Space PAR #x SDSAR1 =: ^O<172262> SDSAR2 =: ^O<172264> SDSAR3 =: ^O<172266> SDSAR4 =: ^O<172270> SDSAR5 =: ^O<172272> SDSAR6 =: ^O<172274> SDSAR7 =: ^O<172276> KISDR0 =: ^O<172300> ; 172300 - 172316 KISDx Kernel I-Space PDR #x KISDR1 =: ^O<172302> KISDR2 =: ^O<172304> KISDR3 =: ^O<172306> KISDR4 =: ^O<172310> KISDR5 =: ^O<172312> KISDR6 =: ^O<172314> KISDR7 =: ^O<172316> KDSDR0 =: ^O<172320> ; 172320 - 172336 KDSDx Kernel D-Space PDR #x KDSDR1 =: ^O<172322> KDSDR2 =: ^O<172324> KDSDR3 =: ^O<172326> KDSDR4 =: ^O<172330> KDSDR5 =: ^O<172332> KDSDR6 =: ^O<172334> KDSDR7 =: ^O<172336> KISAR0 =: ^O<172340> ; 172340 - 172356 KISAx Kernel I-Space PAR #x KISAR1 =: ^O<172342> KISAR2 =: ^O<172344> KISAR3 =: ^O<172346> KISAR4 =: ^O<172350> KISAR5 =: ^O<172352> KISAR6 =: ^O<172354> KISAR7 =: ^O<172356> KDSAR0 =: ^O<172360> ; 172360 - 172376 KDSAx Kernel D-Space PAR #x KDSAR1 =: ^O<172362> KDSAR2 =: ^O<172364> KDSAR3 =: ^O<172366> KDSAR4 =: ^O<172370> KDSAR5 =: ^O<172372> KDSAR6 =: ^O<172374> KDSAR7 =: ^O<172376> UISDR0 =: ^O<177600> ; 177600 - 177616 UISDx User I-Space PDR #x UISDR1 =: ^O<177602> UISDR2 =: ^O<177604> UISDR3 =: ^O<177606> UISDR4 =: ^O<177610> UISDR5 =: ^O<177612> UISDR6 =: ^O<177614> UISDR7 =: ^O<177616> UDSDR0 =: ^O<177620> ; 177620 - 177636 UDSDx User D-Space PDR #x UDSDR1 =: ^O<177622> UDSDR2 =: ^O<177624> UDSDR3 =: ^O<177626> UDSDR4 =: ^O<177630> UDSDR5 =: ^O<177632> UDSDR6 =: ^O<177634> UDSDR7 =: ^O<177636> UISAR0 =: ^O<177640> ; 177640 - 177656 UISAx User I-Space PAR #x UISAR1 =: ^O<177642> UISAR2 =: ^O<177644> UISAR3 =: ^O<177646> UISAR4 =: ^O<177650> UISAR5 =: ^O<177652> UISAR6 =: ^O<177654> UISAR7 =: ^O<177656> UDSAR0 =: ^O<177660> ; 177660 - 177676 UDSAx User D-Space PAR #x UDSAR1 =: ^O<177662> UDSAR2 =: ^O<177664> UDSAR3 =: ^O<177666> UDSAR4 =: ^O<177670> UDSAR5 =: ^O<177672> UDSAR6 =: ^O<177674> UDSAR7 =: ^O<177676> ; ; В старших версиях ВМ3 - на шине всегда есть PARH2 по виртуальному адресу 172512, ; но в некоторых документах говорится и про доступный PARH3 (логично предположить, что по адресу 172514) ; ; PARH0, PARH1 и PARH3 ; ; Для поддержки пультового режима в диспетчер памяти введены четыре дополнительных регистра, ; три из них имеют постоянные значения, а один доступен по чтению и записи по адресу 172512 (виртуальному, в HALT-моде). ; ; Если в режиме HALT процессор обращается к младшей половине памяти, то виртуальный адрес транслируется ; в физический без изменений, при этом одновременно с физическим адресом выдается сигнал SEL. ; ; Если в этом режиме процессор обращается к четверти памяти, начинающейся с виртуального адреса 100000, ; для получения физического адреса виртуальный адрес складывается с содержимым программно-доступного регистра PARH2 ; с (виртуальным) адресом 172512, сдвинутым влево на 6 разрядов. ; ; Адресация области регистров внешних устройств в физическом адресном пространстве происходит аналогично через ; программно-доступный регистр PARH3, в который предварительно заносится (процессором) код 177600 ; ; В справочнике Шахнова за 1988 год прямо сказано, что PARH0 инициализируется константой 170000, а PARH1 - константой 167600. ; ;PARH0 =: ^O<> ;PARH1 =: ^O<> PARH2 =: ^O<172512> ;PARH3 =: ^O<172514> N$WNDW =: ^O<100000> ; Базовый адрес окна доступа ко всей памяти в HALT режиме ; ; Вектора регистры устройств ; SWREG =: ^O<177570> DSPREG =: ^O<177570> ; Clock V.LTC =: ^O<100> LCCSR =: ^O<177546> ; Консольный терминал V.TKB =: ^O< 60> V.TPS =: ^O< 64> TKS =: ^O<177560> TKB =: ^O<177562> TPS =: ^O<177564> TPB =: ^O<177566> ; Line printer LPS =: ^O<177514> LPB =: ^O<177516> MSVCSR =: ^O<172100> PCR =: ^O<177520> ; Page Control Register on KDJ11-A CSR =: ^O<177520> ; Control/Status Register on KDJ11-B ; EK-PDP94-MG-001_Sep90.pdf pg. 5-27 CS.BRE =: ^O<100000> ; Battery backup reboot enanle (1 - battery backup voltage failed to maintain the system memory ; 0 - battery backup voltage maintained the system memory or ; there are no battery backup CS.PLS =: ^O<40000> ; DCOK is pulsed while the POK input remains asserted - ; system reboot was requested by the control panel switch CS.FIE =: ^O<20000> ; Force line clock interrupt enable. CS.DLR =: ^O<10000> ; Disable line clock register CS.CS1 =: ^O<4000> ; Clock select CS.CS0 =: ^O<2000> ; 00 - external BEVNT, 01 - on board 50 Hz, 10 - 60 Hz, 11 - 800 Hz CS.EHB =: ^O<1000> ; Enable HALT Break CS.SM =: ^O<400> ; Enable standalone mode CS.DW0 =: ^O<200> ; Disable 17773000 ROM windows CS.DW1 =: ^O<100> ; Disable 17765000 ROM windows CS.EEP =: ^O<40> ; 0 - ROM at 17765000, 1 - EEPROM at 17765000 CS.EWE =: ^O<20> ; 1 - EEPROM write enabled CS.GC2 =: ^O<4> ; Processor mastership CS.GC1 =: ^O<2> ; grant count CS.GC0 =: ^O<1> ; 000 - disabled, 001 - 0.4 mks, ..., 111 - 25.6 mks PCRB =: ^O<177522> ; Page Control Register on KDJ11-B ; EK-PDP94-MG-001_Sep90.pdf pg. 5-29 CDR =: ^O<177524> ; J-11 configuration and display register; EK-PDP94-MG-001_Sep90.pdf pg. 5-30 ADSR =: ^O<177726> ; J-11 additional status register; EK-PDP94-MG-001_Sep90.pdf pg. 5-31 DCSR =: ^O<177730> ; J-11 diagnostic controller status register; EK-PDP94-MG-001_Sep90.pdf pg. 5-49 UBA ctrl DDR =: ^O<177732> ; J-11 diagnostic data register; EK-PDP94-MG-001_Sep90.pdf pg. 5-51 KMCR =: ^O<177734> ; J-11 memory configuration register; EK-PDP94-MG-001_Sep90.pdf pg. 5-48 ;177740 low error address register, EK-KB11C-TM-001_1170procMan.pdf pg. VI-4-18 ;177742 high error address register, EK-KB11C-TM-001_1170procMan.pdf pg. VI-4-18 MSER =: ^O<177744> ; Memory system error register, EK-KB11C-TM-001_1170procMan.pdf pg. VI-4-19 MS.PE =: ^O<100000> ; Parity error abort MS.PEH =: ^O< 200> ; Parity error high MS.PEL =: ^O< 100> ; Parity error low MS.PET =: ^O< 40> ; Parity error tag CCR =: ^O<177746> ; Cache Control Register, EK-KB11C-TM-001_1170procMan.pdf pg. VI-4-19 CC.wTP =: ^O<2000> ; Write wrong parity CC.BP =: ^O<1000> ; Cache bypass CC.FL =: ^O< 400> ; Flush cache CC.EPA =: ^O< 200> ; Enable parity error abort CC.WWP =: ^O< 100> ; Write wrong parity CC.FM1 =: ^O< 10> ; Force miss bit 1 CC.FM0 =: ^O< 4> ; Force miss bit 0 CC.DM =: ^O< 2> ; Diagnostic mode CC.DPI =: ^O< 1> ; Disable cache parity interrupt CPUMR =: ^O<177750> ; Maintenance register, EK-KB11C-TM-001_1170procMan.pdf pg. VI-4-21 CM.B15 =: ^O<100000> ; User Boot bit 15 Address CM.B14 =: ^O< 40000> ; User Boot bit 14 Address CM.B13 =: ^O< 20000> ; User Boot bit 13 Address CM.B12 =: ^O< 10000> ; User Boot bit 12 Address CM.FPA =: ^O< 400> ; Floating Point Accelerator present CM.ID3 =: ^O< 200> ; Module ID bit 3 CM.ID2 =: ^O< 100> ; Module ID bit 2 On J11 - 0001 CM.ID1 =: ^O< 40> ; Module ID bit 1 CM.ID0 =: ^O< 20> ; Module ID bit 0 CM.HLT =: ^O< 10> ; HALT enabling CM.PW1 =: ^O< 4> ; Power On bit 1 option 00 - PC from 24, PS from 26 01 - MicroODT, PS = 0 CM.PW0 =: ^O< 2> ; Power On bit 0 option 10 - PC = 173000, PS = 0 11 - PC = USer Boot + "0000", PS = 0 CM.POK =: ^O< 1> ; Power OK CHMR =: ^O<177752> ; Cache hit/miss register, EK-KB11C-TM-001_1170procMan.pdf pg. VI-4-21 ;177754 Cache Data register (см PDP-11/44) ;177760 System Size - Lower ;177762 System Size - Upper ;177764 System Id CPUERR =: ^O<177766> ; CPU Error Register CE.HLT =: ^O<200> ; Illegal HALT CE.ADR =: ^O<100> ; Address errkr CE.NXM =: ^O< 40> ; Non-Existing memory CE.IO =: ^O< 20> ; I/O bus timeout CE.YSP =: ^O< 10> ; Yellow stack violation CE.RSP =: ^O< 4> ; Red stack violation ;177770 microbreak register, EK-KB11C-TM-001_1170procMan.pdf PIRQ =: ^O<177772> ; Program interrupt Request IR.PR7 =: ^O<100000> IR.PR6 =: ^O< 40000> IR.PR5 =: ^O< 20000> IR.PR4 =: ^O< 10000> IR.PR3 =: ^O< 4000> IR.PR2 =: ^O< 2000> IR.PR1 =: ^O< 1000> IR.PR0 =: ^O< 400> ;177774 Stack limit PS =: ^O<177776> PR0 =: ^O<0*40> PR1 =: ^O<1*40> PR2 =: ^O<2*40> PR3 =: ^O<3*40> PR4 =: ^O<4*40> PR5 =: ^O<5*40> PR6 =: ^O<6*40> PR7 =: ^O<7*40> ALT.RG =: ^O<4000> K.MODE =: ^O<0*40000> S.MODE =: ^O<1*40000> U.MODE =: ^O<3*40000>