Новая версия RT11SP ( Pro350_HX_SP2.DSK - обнаруженные ниже ошибки здесь уже исправлены ) якобы должна запускать таймер Pro350 на частоте 2048 Гц и эмулировать прерывания по вектору 100 следующим образом:
Поскольку разрешения прерываний у таймера Pro350 сбрасываются по RESET - в код обработки HARD EXIT добавлена инициализация периодических прерываний:Код:ProINT:: TST @#173030 ;Prime clock to interrupt Dec (PC)+ Pro.DV: .Word 41. BLE Sim.V100 RtI Sim.V100: Mov #41., Pro.DV Mov @#102, -(SP) Mov @#100, -(SP) RtI
Так как загрузчик RT11SJ переходит в монитор по HARD EXIT - код в загрузчике устанавливает только значения, не сбрасывающиеся по RESET:Код:RESET TST ProCLK BEQ 3$ TST @#173030 ;Prime clock to interrupt BIS #100, @#173026 ;Set PERIODIC INTERRUPT ENABLE 3$:
Код:CALL @#T4SEC ;Set carry if we trap MOV #173024, R1 ;R1 -> Pro350 Clock CSR0 MOV #2*20!5, (R1) ;Set divider control and 2048Hz MOV #37, @#173202 ;Enable clock MOV @#54, R2 ;<< T11NOP >>; BCS No.CSR ;If C-bit set, CSR not there MOV #230, R1 CALL @#PROTEC ;Protect vector 230 ADD #<ProINT-$RMON>, R2 MOV R2, (R1)+ ;Set vector 230 to ProINT MOV #340, (R1) BR Ok.CSR No.CSR: CLR <ProCLK-$RMON>(R2) ;Clear ProINT flag Ok.CSR: CALL @(SP)+ ;Restore traps
Последний раз редактировалось Patron; 20.07.2014 в 22:50.
В данном конкретном случае (SJ монитор) не мешает, но вообще код не совсем корректен - значение PSW может быть установлено не в то которое было бы если бы возникло реальное прерывание по 100 (и это может повлиять на результат [хотя для асинхронного прерывания врядли]). Лучше делать универсальный метод:строго говоря, оно у большинства PDP-11 сбрасывается по RESETКод:MOV @#100,-(SP) MTPS @#102 JMP @(SP)+![]()
Последний раз редактировалось form; 20.07.2014 в 13:48.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)