MiX, а с HX загружались после запуска кода из ПЗУ?
А то все параметры читаются из EEPROM, а после чтения эмуляция FP-11 и MOVR устанавливается командой MED6X.
Немного баловства на 11/83 :DКод:.INI DU2:/NOQ
.COP 010000.RAM DU2:
Files copied:
DK:010000.RAM to DU2:010000.RAM
.COP/DEV/NOQ SY:/STA:0/END:0 DU2:
?DUP-W-Output device is larger than input device
.R SIPP
*DU2:/A
Base? 0
Offset? 2000
Base Offset Old New?
000000 002000 012737 12700
000000 002002 003140 104
000000 002004 000100 12701
000000 002006 005037 37400
000000 002010 000102 12702
000000 002012 005003 10000
000000 002014 011367 4777
000000 002016 003714 3710
000000 002020 012706 112
000000 002022 010000 ^Y
*DU2:010000.RAM/A
Base? 0
Offset? 2772
Base Offset Old New?
000000 002772 177520 0
000000 002774 016706 ^Z
Offset? 13770
Base Offset Old New?
000000 013770 177521 1
000000 013772 177560 ^Z
Offset? 24050
Base Offset Old New?
000000 024050 177520 0
000000 024052 004767 ^Z
Offset? 24516
Base Offset Old New?
000000 024516 005067 5037
000000 024520 142776 0
000000 024522 000167 ^Z
Offset? 24532
Base Offset Old New?
000000 024532 177520 0
000000 024534 012737 ^Z
Offset? 24562
Base Offset Old New?
000000 024562 177520 0
000000 024564 110015 ^Z
Offset? 24716
Base Offset Old New?
000000 024716 177520 0
000000 024720 012737 ^Z
Offset? 24762
Base Offset Old New?
000000 024762 177520 0
000000 024764 012737 ^Z
Offset? 25306
Base Offset Old New?
000000 025306 177521 1
000000 025310 012701 ^Z
Offset? 26236
Base Offset Old New?
000000 026236 177520 0
000000 026240 005767 ^Y
*^C
.BO DU2:/FO
BOOT-E-EEPROM checkum invalid - reconfigure processor board
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
Testing in progress please wait
4088 K Bytes RAM
M11 Bootstrap/Diagnostic Version V 1.4I
Commands are :
BOOT - Boot from a specific device.
HELP - Re-display this summary of commands.
LIST - List the bootstraps provided.
MAP - Display a map of the address space.
SETUP - Configure the M11.
TEST - Enter a continuous test mode
Enter a command and press the return key :M
Memory Map
Starting at Ending at
00000000 17757776
17760100 17760106
17760500 17760516
17765000 17765776
17767770 17767774
17772100 17772102
17772150 17772152
17772200 17772376
17772516 17772516
17773000 17773776
17774440 17774456
17774500 17774502
17776500 17776536
17777514 17777524
17777546 17777546
Press <CR> to continue
Memory Map
Starting at Ending at
17777560 17777566
17777572 17777676
17777744 17777752
17777766 17777766
17777772 17777772
17777776
Press <CR> to continue
M11 Bootstrap/Diagnostic Version V 1.4I
Commands are :
BOOT - Boot from a specific device.
HELP - Re-display this summary of commands.
LIST - List the bootstraps provided.
MAP - Display a map of the address space.
SETUP - Configure the M11.
TEST - Enter a continuous test mode
Enter a command and press the return key :B DU3
Starting system ...
RT-11ZM (S) V05.07
?DATE-I-Time source: AA-00-04-00-06-F8, RSX-11M-PLUS V4.6 BL87 (KOPOBA)
?DATE-I-Date & time: 15-SEP-2017 01:37:03
.
Для чистоты эксперимента еще вариант теста MOVR, в точности такой как делается в RSX при выяснении есть ли эта команда (пока просто проверка трапается или нет):Код:.D 1000=75310,104350
.ST 1000
form, На плате есть перемычки, может и можно задействовать но нужно описание.
Выложил образ RX23 с RSX. После запуска нужно запустить командыACF может долго думатьКод:>ACF
>ACO SHO
- - - Добавлено - - -
Кстати самый прикол в том, что если в команде MOVR в качестве всех аргументов указать R0, то получится команда FADD R0 :)
Ну и тому подобное...
MOVR R0,R1,R0 - FSUB R0
Ну там наверное под FPU понимались инструкции FP-11 с кодами от 170000. Кстати про Mentec тоже где-то читал, что числа с плавающей запятой соответствуют стандарту IEEE-754. Тогда получается, что это и не FIS и не FP-11, т.к. эта система команд делалась до этого стандарта и в них форматы single и double не соответствуют IEEE-754.
SAV раличает только M11 и N11, отдельно проверяет наличие MOVR.
В общем случае проверка такая (MFPT=5, MR&360 = 20)Иными словами, если запись в бит W не сбрасывает его, то это M11Код:20$: MOV #KISDR7+1,R0 ;;;POINT TO KERNEL PDR7
MOVB (R0),(R0) ;;;WRITE THE HIGH BYTE OF THE PDR
BITB #100,-(R0) ;;;DOES IT SHOW WRITTEN?
BNE 60$ ;;; IF NE, YES, WE HAVE AN M11
Далее проверяется MED:Если нету, это ни M11 ни N11. Если есть - N11. Далее для M11/N11 проверяется MOVR и TOY.Код:.WORD 076600 ;;; TRY AN MED INSTRUCTION
.WORD 156227 ;;; CHECK FOR N11 PROCESSOR
В ACF проверка более сложная, сейчас буду ковырять как там делается.
А прошивка сначала считает, что это M11, а вот после MED6X (076600 156227) смотрятся биты 8 и 9 регистра R0. Если они равны нулю, то это N11. Кстати по этим битам определяется версия микрокода до запятой. И при нуле она может быть 5 или 6, шестая версия по идее должна иметь FPU.
Прошивке нужно многое знать, а RSXу в принципе интересна модель процессора (она возвращается директивой GTSK$, для M11 будет 95, для N11 - 97) и наличие команды MOVR (если есть выставляется фаг что есть и подпрограмма блочной пересылки патчится на использование команды).
А TOY проверяется так: если есть 177522 на шине, значит ментековского варианта быть не может, в противном случае чистится 177520 чтобы гарантировать маппинг EPROM, а не EEPROM и делается попытка прочитать TOY. К сожалению не на чем проверить важно ли последнее условие или его сделали на всякий случай чтобы не попортить EEPROM (хотя, как писал выше, записи в окно не выполняется даже при записи в TOY).
- - - Добавлено - - -
Да, при том прошивка просто считает, что она работает либо на M11 либо на N11. Я вон ее запустил на 11/83 - не обиделась - M11 говорит :)
Да в сущности тем, что M11 построен на J11, а N11 - эмуляция. Ну и как уже выяснили, у N11 есть команда MED и бит W в PDR сбрасывается при записи в него 1 (а может в принципе при записи чего-нибудь).
- - - Добавлено - - -
Кстати последнее можно проверить. Сейчас тест сделаю.
Ну это как бы понятно: MED есть только при эмуляции DCJ11, но сначала видимо он эмуировался без особых наворотов.
- - - Добавлено - - -
Пока собиралмя писать тест дозрела мысль: запись в бит W непричем (хотя в прошивке при инициализации он в него пишет зачем-то). RSX проверяет просто запись в PDR, не трогая W бита в этот момент, и смотрит сбросился ли W при этом.
По поводу теста:
надо проверить MED6X 156227 какие значения R0 и R1 получаются сначала при R0=0 и R1=0, а затем при R0=177777 и R1=177777;
надо проверить MED6X 156226 какие значения R0 и R1 получаются при R0=177777 и R1=0.
Новый тест в каталоге. Проверяет поведение бита W в PDR.
На 11/83 выглядит так:Запись как в PAR так и в PDR очищает W.Код:.RU PDRW
MOVB @#KISDR7,@#KISDR7 ;KISDR7=077406
MOV @#PSW,@#PSW ;KISDR7=077506
MOVB @#KISDR7,@#KISDR7 ;KISDR7=077406
MOV @#PSW,@#PSW ;KISDR7=077506
MOV @#KISAR7,@#KISAR7 ;KISDR7=077406
BIS #100,@#KISDR7 ;KISDR7=077406
BIC #100,@#KISDR7 ;KISDR7=077406
.
На М1 выглядит так:
Код:.PDRW
MOVB @#KISDR7,@#KISDR7 ;KISDR7=077666
MOV @#PSW,@#PSW ;KISDR7=077766
MOVB @#KISDR7,@#KISDR7 ;KISDR7=077666
MOV @#PSW,@#PSW ;KISDR7=0777666
MOV @#KISAR7,@#KISAR7 ;KISDR7=077666
BIS #100,@#KISDR7 ;KISDR7=077666
BIC #100,@#KISDR7 ;KISDR7=077666
Для этого надо готовить специальный образ RSX и самодельные куски программ которые запускаются.
- - - Добавлено - - -
Такой есть, нет возможности его сделать со стороны и загрузиться с него потом в силу того, что по логике этот самый диск окажется в числе того, что будет загружаться :)
В RT-11 грузятся файлы с диска, в RSX грузится все что было в памяти. В данном случае регион в памяти который надо загрузить с диска который находится в этом регионе :)
Поэтому загрузка такая даже не предусмотрена. Вручную конечно что угодно можно сделать, но это ничем не отличается от переделки упомянутой программ для запуска без диска.