Ссылки на тесты в первом сообщении темы Расчёт точного времени выполнения команд различными процессорами архитектуры PDP-11 регулярно обновляются.
Ссылки на тесты в первом сообщении темы Расчёт точного времени выполнения команд различными процессорами архитектуры PDP-11 регулярно обновляются.
Интересен бы был тест, в котором исполняющийся блок кода можно было бы перемещать по адресам - задавать адрес тестирования при запуске прораммы, и длиной такой блок должен быть не более 2000 ( 8 ).
Так же неплохо бы иметь настраиваемый список команд для тестирования производительности - например, команды типа :
010001
020001
030001
012737 хххххх хххххх
и т.п. - что бы пользователь имел возможность прогнать тест на ему нужных образцах кода.
И таймер можно было бы выбирать - 50 или 48.5 гц :)
( А сам я ленюсь такое написать... )
Немного баловства... Небольшой тест долгого хранения информации в регистрах общего назначения, даже через перезагрузку системы, а также недокументированный способ передачи данных между задачами ;)
Прога печатает содержимое регистров R0'-R5', потом устанавливает их в значения 1-6. Требует наличия этих самых регитров...
Код:Starting system from DU3
RT-11ZM (S) V05.07
.SET TT QUIET
?ETM-I-Date & time - 20-JUN-2014 21:55:33
?ETM-I-Time server - 70-71-BC-50-EB-D0, OpenBSD 5.5 amd64
.R DATE
.TY D10:TEST.MAC
.TITLE TEST
.MCALL .EXIT,.PRINT
PSW = 177776
START:: BIS #4000,@#PSW
MOV R0,REGS
MOV R1,REGS+2
MOV R2,REGS+4
MOV R3,REGS+6
MOV R4,REGS+10
MOV R5,REGS+12
MOV #1,R0
MOV #2,R1
MOV #3,R2
MOV #4,R3
MOV #5,R4
MOV #6,R5
CLR @#PSW
MOV #BUFF,R0
MOV #TEXT,R1
MOV #REGS,R2
CALL $EDMSG
CLRB @R0
.PRINT #BUFF
.EXIT
REGS: .BLKW 6
BUFF: .BLKW 32
TEXT: .ASCIZ /%6P/
.END START
.RU D10:TEST
172373 000003 177602 173056 000010 000004
.RU D10:TEST
000001 000002 000003 000004 000005 000006
.BO RT11FB
RT-11FB (S) V05.07
.SET TT QUIET
?ETM-I-Date & time - 20-JUN-2014 21:56:34
?ETM-I-Time server - 70-71-BC-50-EB-D0, OpenBSD 5.5 amd64
.R DATE
.RU D10:TEST
000001 000002 000003 000004 000005 000006
.
form,
1)Как скомпилить подскажи плиз.
2)В Новосибирске уже 21:56 ? :)
RSXLIB есть на pdp-11.org.ru в разделе файлов, описание есть в теме по софту для ДВК/PDP-11 где-то :)Код:.MAC TEST
.LIN/LINK:SY:RSXLIB TEST
Или на стакане по команде HELP SYSL (а так же в описании системной библиотеки для RSX - есть и на bitsavers и на pdp-11.org.ru).
Уже 22:08.
Автоматическое получение времени при загрузке работает как часы :D
Прогнал тест.
.RUN PDPT1C
PDP-11 Interrupts Test #1c
MTPS #340
...Press Key...
BIS #100,@#TTPS
Set T x3
RTI | NOP | WAIT | NOP | NOP | NOP
>>> Trap to 014 <<< ; 001234
NOP
>>> Trap to 014 <<< ; 001236
>>> Trap to 014 <<< ; 001240
NOP
NOP
NOP
MTPS #340
...Press Key...
BIS #100,@#TTPS
Set T x3
RTT | NOP | WAIT | NOP | NOP | NOP
NOP
>>> Trap to 014 <<< ; 001434
>>> Trap to 014 <<< ; 001436
NOP
>>> Trap to 014 <<< ; 001440
NOP
NOP
MTPS #340
BIS #100,@#TTPS
...Press Key...
Set T x3
RTT | NOP | NOP | NOP | NOP | NOP
NOP
>>> Trap to 014 <<< ; 001632
NOP
>>> Trap to 014 <<< ; 001634
NOP
>>> Trap to 014 <<< ; 001636
NOP
NOP
Program completed.
Для общего развития маленький тестик standalone mode на KDJ11-BF...Код:.TY TC.MAC
START:: MOV PC,R0
10$: TST (R0)+
CMP #END,R0
BNE 10$
SPL 7
BIS #400,@#177520
CALL PRINT
20$: CLR -(R0)
CMP #PRINT,R0
BNE 20$
BIC #400,@#177520
BIS #400,@#177746
CALL PRINT
EMT 350
PRINT:: MOV #MSG,R1
10$: TSTB @#177564
BPL 10$
MOVB (R1)+,@#177566
BNE 10$
RETURN
MSG: .ASCIZ <15><12>/*** TEST ***/<15><12>
.EVEN
END::
.END START
.RU TC
*** TEST ***
*** TEST ***
.
Интересный тестик для XM/ZM. Из-за того, что в RT-11 для виртуального задания PSW устанавливается в 140000 получается, что задание может лезть куда ему вздумается за пределы своего пространства. А вот если запустить через VBGEXE, то PSW будет 170000 и за пределы задания не вылезешь...Код:.TY VIO.MAC
.TITLE VIO -- ЖЕЛЕЗЯЧНЫЙ I/O ИЗ ВИРТУАЛЬНОГО ЗАДАНИЯ
.IDENT /V01.00/
.MCALL .EXIT,.SETTOP
.ASECT
.RAD50 /VIR/ ;ВИРТУАЛЬНОЕ ЗАДАНИЕ
.WORD -2 ;ВЕРХНИЙ ЛИМИТ
.PSECT
START:: MOV #200,@#177564 ;ЧТОБ НЕ ВИСЛО ЕСЛИ ЧТО
.SETTOP #-2 ;ПРОСИМ МАКСИМУМ ПАМЯТИ
MOV #140340,-(SP) ;СТАВИМ ПРИОРИТЕТ 7 ПРОЦУ ;)
MTPI @#177776 ;
MOV R0,R1 ;ВЕРХНИЙ АДРЕС
MOV #ADDR,R0 ;БУФЕР
MOV PC,R2 ;ФЛАГ НЕ ПОДАВЛЯТЬ НУЛИ В НАЧАЛЕ
CALL $CBOMG ;КОНВЕРТИРУЕМ В ASCII
MOV #TEXT,R0 ;АДРЕС СТРОКИ
10$: MOVB (R0)+,-(SP) ;ПОЛУЧАЕМ СИМВОЛ
BEQ 30$ ;0 - ЦОНЕЦ СТРОКИ
20$: MFPI @#177564 ;СТАТУС ТЕРМИНАЛА
TSTB (SP)+ ;
BPL 20$ ;НЕ ГОТОВ ЕЩЕ
MTPI @#177566 ;ПЕЧАТАЕМ СИМВОЛ
BR 10$ ;ЦИКЛ
30$: MOV #140000,@SP ;ПОНИЖАЕМ ПРИОРИТЕТ
MTPI @#177776 ;
.EXIT ;ВЫХОД
TEXT: .ASCII <15><12>/TOP ADDRESS: /
ADDR: .ASCIZ /XXXXXX/<15><12>
.END START
.RU VIO
TOP ADDRESS: 177776
.VRU VIO
.