PDA

Просмотр полной версии : Эмулятор FPP для RT



Hunta
13.06.2023, 00:21
Собственно..



HD (177720) disk driver v1.6 2017
SL V08.00 [SW] Сторожевых С.В. 1988
KZ V01.00 (C) ВЦ МИЭТ, НОЯБРЬ 1987
FPP-эмулятор FP.SYS (c) А.Г.Григорьев

RT-11SB (Y) V05.07

.SET TT FORM

.SET TT SCOPE

.SET EDIT K52

.SET SL ON

.RUN HD7:CLKON

?MON-F-Dir I/O err 121760

.SHO CONF

RT-11SB (Y) V05.07
Booted from HD0:RT11SB

USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set ON
EDIT is set K52
FORTRAN is set FORTRA
KMON nesting depth is 3

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/34 Processor
1024KB of memory
Extended Instruction Set (EIS)
Memory Management Unit

No SYSGEN options enabled


.SET FP ON

.SHO CONF

RT-11SB (Y) V05.07
Booted from HD0:RT11SB

USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set ON
EDIT is set K52
FORTRAN is set FORTRA
KMON nesting depth is 3

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/34 Processor
1024KB of memory
FP11 Hardware Floating Point Unit
Extended Instruction Set (EIS)
Memory Management Unit

No SYSGEN options enabled


.

вопрос до какой-то степени решён. Нужен только какой-то вариант тестирования. Небольшой тест у меня где-то валяется, попробую найти

- - - Добавлено - - -

Небольшой тест:


.ASS HD6 DK

.MAC FTEST

.MAC INP
U 2 .MCALL .PRINT, OCTDIS
?MACRO-E-Errors detected: 1
DK:INP=DK:INP

.MAC PRTOD

.LINK FTEST,INP,PRTOD

.RUN FTEST
Enter first value (int dec): 1
Enter second value (int dec): 12

*** Float operations ***
*** ADD 13 007400
*** SUB 11 007400
*** MUL 12 007400
*** DIV 12 007400
*** NEG 65535 007410
*** ABS 1 007400

*** Double operations ***
*** ADD 13 007600
*** SUB 11 007600
*** MUL 12 007600
*** DIV 12 007600
*** NEG 65535 007610
*** ABS 1 007600

.RUN FTEST
Enter first value (int dec): 0
Enter second value (int dec): 12

*** Float operations ***
*** ADD 12 007400
*** SUB 12 007400
*** MUL 0 007404

!!! Interrupt has been captured !!!
FEC=000004 FEA=002520

*** DIV 12 107400
*** NEG 0 107404
*** ABS 0 107404

*** Double operations ***
*** ADD 12 007600
*** SUB 12 007600
*** MUL 0 007604

!!! Interrupt has been captured !!!
FEC=000004 FEA=002520

*** DIV 12 107600
*** NEG 0 107604
*** ABS 0 107604

.RUN FTEST
Enter first value (int dec): 10
Enter second value (int dec): 20

*** Float operations ***
*** ADD 30 007400
*** SUB 10 007400
*** MUL 200 007400
*** DIV 2 007400
*** NEG 65526 007410
*** ABS 10 007400

*** Double operations ***
*** ADD 30 007600
*** SUB 10 007600
*** MUL 200 007600
*** DIV 2 007600
*** NEG 65526 007610
*** ABS 10 007600

.


- - - Добавлено - - -

Требования по памяти


.SHO MEM

Address Module Words
------- ------ -----
160000 IOPAGE 4096.
157520 HD 88.
140226 RMON 3933.
133710 SL 1127.
125360 FP 1644.
001000 ..BG.. 21624.


.

Но более официальный тест всё таки нужен... Что-то там такое anasana восстанавливал для F11, надо покопаться, но.. уже не ночью :)

Hunta
26.06.2023, 17:52
Захотелось мне тут странного :) А именно - сравить скорость аппаратной реализации FPP (в PDP-11X) и программной реализации в FP.SYS. Процесс пошёл (сейчас мучаю FP.SYS), как только - выложу :)

- - - Добавлено - - -

Ха :) Обломс :) SPEEDx переставляет вектор 10 и... ловит, что FPP неееетууу :) Придётся для работы под RT-11 делать вариант перехвата V4/V10 через систему...

Так что... Пока оценка откладывается. До вечера, скорее всего :)

- - - Добавлено - - -

Переделка оказалась несложной (успел за обед), хотя и немного накосячил по первой

Программная эмуляция в FP.SYS



34567.89022+32109.754321 empty 43 848 оп./сек
34567.89022+32109.754321 22 188 оп./сек -> 44 916 оп./сек
34567.89022*32109.754321 empty 43 848 оп./сек
34567.89022*32109.754321 15 422 оп./сек -> 23 788 оп./сек
34567.89022/32109.754321 empty 43 848 оп./сек
34567.89022/32109.754321 10 727 оп./сек -> 14 201 оп./сек


- - - Добавлено - - -

Ну и аппаратная реализация:


34567.89022+32109.754321 empty 1 136 121 оп./сек
34567.89022+32109.754321 961 324 оп./сек -> 6 248 278 оп./сек
34567.89022*32109.754321 empty 1 136 121 оп./сек
34567.89022*32109.754321 632 801 оп./сек -> 1 428 392 оп./сек
34567.89022/32109.754321 empty 1 136 121 оп./сек
34567.89022/32109.754321 624 900 оп./сек -> 1 388 757 оп./сек