Для проверки - добавил файл TTINQ.SAV в образ HDSYS.DSK из комплекта поставки эмулятора и запустил:
Код:.TTINQ
?TTINQ-I-Terminal type is VT100 in VT52 mode
?TTINQ-I-Answer: <033>/Z
Вид для печати
Для проверки - добавил файл TTINQ.SAV в образ HDSYS.DSK из комплекта поставки эмулятора и запустил:
Код:.TTINQ
?TTINQ-I-Terminal type is VT100 in VT52 mode
?TTINQ-I-Answer: <033>/Z
У меня немного другая версия наверно была, но и этот по ссылке такая же ошибка в ноль как и в первом сообщении, скрин я уже сделал, могут какие-то
настройки у меня влиять? Не зависимо с какого раздела запускаю (то есть версия монитора), файл pdp-11.exe у меня 856064-размер, от 19.12.2013
---------- Post added at 23:38 ---------- Previous post was at 23:33 ----------
http://s3.hostingkartinok.com/upload...471e579da7.png
Виновата большая скорость эмулируемого процессора. При скорости эмуляции 2 MIPS и меньше - всё работает.
Проблемное место в исходнике:
Если увеличить задержку в 10 .. 20 раз - программе немного полегчает. А так - при высокой скорости эмуляции задержка кончается раньше, чем начинает приходить ответ от терминала.Код:RETRY = 1000 ;TTINR RETRY COUNT
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_30.12.13_17-00
Изменения:
1. Внесены изменения, описанные ЗДЕСЬ.
2. В модуль CPU_module добавлены объекты MY_Board и MY_BusBridge. В модуль DSK_module добавлен объект VP1-128.
3. Добавлен файл конфигурации MY.cfg, эмулирующий контроллер КМД ( этот файл конфигурации предназначен для импорта виртуального устройства в других файлах конфигурации ). Полная эмуляция MFM-дискеты осуществляется только для текстовых TRK-образов. При работе с двоичными DSK-образами эмулируются только базовые функции КМД.
4. В файлы конфигурации default.cfg и DisAsm.cfg добавлен импорт виртуального устройства из файла конфигурации MY.cfg. В файл HDSYS.DSK добавлен драйвер MY.SYS.
5. Добавлен файл MY80_System.DSK, содержащий DSK-образ системного диска MY.
6. Добавлен файл конфигурации ДВК-1_MY80.cfg, эмулирующий ДВК-1 с контроллером КМД.
При открытии файла конфигурации ДВК-1_MY80.cfg на экране появляется приглашение пульта ДВК:
Код:160556
@
Загрузка RT-11 осуществляется следующим образом:
...Код:160556
@172140/000040 37
172142/000004 0^
172140/000000 /000040
@G
SL V08.00 [SW] Сторожевых С.В. 1988
RT-11SJ (Y) V05.04 G
Когда к эмулятору MY подключен файл DSK-образа - он непрерывно синхронизируется с внутренним TRK-представлением в эмуляторе. Если что-то записать в эмуляторе на MY - это сразу же появится в файле DSK-образа, а если скорпировать в Windows что-то в подключенный DSK-образ - это сразу же появится во внутреннем представлении образа в эмуляторе. Мне лень было проверять, изменялся ли DSK-образ, поэтому при каждом чтении c дорожки диска MY в эмуляторе - эта дорожка сначала пересоздаётся из соответствующей части DSK-образа ( не чаще одного раза в три секунды ). Поэтому, если в эмуляторе вызвать команду КМД: "Запись с меткой", то это приведёт к разрушению подключенного DSK-образа, а если вызвать команду КМД: "Чтение с меткой" - блоки данных с меткой будут отсутствовать ( при пересоздании образа дорожки из данных DSK-образа все блоки данных получают стандартные заголовки A1A1A1FB ).
Если в диалоге подключения диска указать несуществующий файл с расширением .TRK - эмулятор создаст чистый неформатированный TRK-образ, хранящий данные диска в том виде, в котором с ними работает эмулятор.
Ну это невелика потеря. Да и вряд ли это где используется практически.
А это я уже попробовал. Увидел, что можно использовать "сырой образ", но нигде не увидел, как создать. При открытии набил несуществующее имя, ну и эмулятор предложил создать. Как я увидел, маркеры записываются в нижнем регистре, как "a1".
---------- Post added at 22:48 ---------- Previous post was at 22:41 ----------
Когда-то Владимир Полетаев предлагал способ определения номера ПЗУ в КМД - здесь.
Попробовал. Вот результат:
Код:.TY KMDID.MAC
.TITLE KMDID
.MCALL .PRINT,.EXIT
START: .PRINT #HEAD
10$: BIT #40,@#172140
BEQ 10$
MOV #35,@#172140
20$: TSTB @#172140
BPL 20$
MOV #PROG,@#172142
30$: BIT #40,@#172140
BEQ 30$
.PRINT NAME
.EXIT
PROG: MOV #KMD255,R0
CMP @#10004,#NOP
BEQ 10$
MOV #KMD092,R0
10$: MOV R0,@#NAME+40000
RETURN
NAME: .WORD KMD091
HEAD: .ASCII <16>"w kmd USTANOWLENO pzu 1801re1-"<17><200>
KMD091: .ASCIZ "091"
KMD092: .ASCIZ "092"
KMD255: .ASCIZ "255"
.END START
.KMDID
В КМД установлено ПЗУ 1801РЕ1-255
.
Да, такая запись позволяет отличать байты с пропущенным синхроимпульсом, никак не мешая считыванию значений байтов функцией sscanf:
Код:char acHex[] = "0xFF";
int nByte;
for( int i = 0 ; i < nUsedBytes ; i++ )
{
while( *pStr && *pStr != ' ' ){ pStr++; }
while( *pStr && *pStr == ' ' ){ pStr++; }
acHex[2] = pStr[0];
acHex[3] = pStr[1];
sscanf( acHex, "%x", &nByte );
UnitRec[nUnit].Track[nStoredTrack + nSide*81].aBytes[i] = nByte;
bool bFlag = false;
if( acHex[2] == 'a' && acHex[3] == '1' )
{
bFlag = true;
}
UnitRec[nUnit].Track[nStoredTrack + nSide*81].aFlags[i] = bFlag;
}
---------- Post added at 22:00 ---------- Previous post was at 21:52 ----------
Файл образа прошивки задаётся в MY.cfg в разделе [MYBoard.ini]:
Код:[MYBoard.ini]
RAM_Latency_NS = 1000
ROM_Latency_NS = 250
ROM_DataFile = 255.dat
SEL1_Data=010002