А зачем AD13-AD15 (BDAL13-BDAL15) используются?
Из написанного не ясно когда пробовал.
Нужно пробовать в момент когда загрузчик записан в память, но загрузка не стартовала.
---------- Post added at 20:22 ---------- Previous post was at 20:17 ----------
Самый простой способ какой приходит в голову - SIPPом (PUDом, DESSом итд) поменять на диске SY: по оффсету 2000 значение на 0 и загрузиться - должен выпасть в пульт как раз на этапе апуска вторичного загрузчика. Потом прописать в 1000/ 12737, в R7/ 1000, P и вернуть значение обратно :)
---------- Post added at 20:24 ---------- Previous post was at 20:22 ----------
Впрочем это самый простой без осмысливания того факта, что перед нами эмулятор - в эмуляторе проще :D
---------- Post added at 20:26 ---------- Previous post was at 20:24 ----------
Проверил - так и есть: в 0 прописан 0, а не 240, вы 5000-5004 - дата-время.
form, Я просто в эмуляторе хочу найти RTC если он есть конечно. RT же знает дату и время.
Про то и говорю - нкиакого RTC нету. Дата-время передается через адреса 5000-5004 в момент загрузки.
---------- Post added at 20:31 ---------- Previous post was at 20:31 ----------
Это стандартный способ когда RT-11 загружается из под уже загруженного RT-11 командой BOOT. Ersatz-11 тоже так делает по команде BOOT/RT11.
Эмулятор при автоматической загрузке с датой выполняет такой код:
Код:if( nC_WarmBootSystem == 1 )
{
// Читать блоки 2,3,4,5 в адреса с 01000
pDSK_DeviceI->ReadDSK( nC_BootDeviceUnit, 2, 512*4, &aMemory[01000] );
RegisterRW_MES( pCPU, "SP", WRITE, 010000 );
RegisterRW_MES( pCPU, "PC", WRITE, 01000 );
WORD( 00000 ) = 0; // Загрузка с датой и временем в соотв. ячейках.
WORD( 04722 ) = nC_BootDeviceUnit; // Номер загружаемого устройства
}
WORD( 05000 ) = HIWORD( day_ticks );
WORD( 05002 ) = LOWORD( day_ticks );
WORD( 05004 ) = rt_date; // Дата
Попробовал команду DAY с вкл. таймером. Время обновляет значит есть привязка к вектору 100. Теперь надо подумать как забрасывать данные в 5000-5004.
Ещё интересно, если кто знает в терминале 15ИЭ есть служебная строка которая время показывает. Откуда она время берёт.
Мало забрасывать в эти адреса.
Надо забрасывать именно в момент выполнения загрузки, до начала выполнения вторичного загрузчика, притом подготовить данные для него, чтобы он считал, что это не аппаратная загрузка.
И данный способ при том годится только для RT-11 и ни для чего больше.
form, Тут другое, что сетевой таймер не имеет адреса а значит подсчет времени выполняетcя программно командой DAY. Чтоб железно реализовать время, надо в прошивке прописать команды о считывании с RTC который надо посадить на шину. Как то так.
Не всегда.
Не обязательно.
Возможно время берется из системы и печатается и так в цикле.
Но и тот и другой способ никакого отношения не имеют к адресу 5000 -- к этому моменту по этому адресу находится фиг знает что, возможно кусок этог же DAY.SAV :)
---------- Post added at 21:41 ---------- Previous post was at 21:40 ----------
Иными словами к тому моменту когда запущен DAY.SAV, содержимое 5000-5004 не сдержит ни даты ни времени.