PDPC - PDP-11 on PC Версия V01.02 Вашему вниманию предлагается еще один эмулятор PDP-11 на PC, который называется - PDPC. Данный продукт может свободно распространяться с обязательным соблюдением следующих условий: 1. Передача не может преследовать никаких коммерческих целей. 2. Передавать следует полный комплект поставки. 3. Запрещается вносить в комплект какие-либо исправления. Состав комплекта поставки 1. PDPC.TXT - настоящее описание; 2. PDPC.COM - сам эмулятор; 3. PDPC.SAV - программа для обмена файлами; 4. CLEAR.SAV - программа очистки пустых областей диска; 5. MY.SYS - драйвер системного устройства; 6. STAT.C - пример программы обработки статистики. Гарантии Никаких гарантий. Вы пользуетесь данным продуктом на свой страх и риск. Характеристики эмулятора Процессор: - без диспетчера памяти; - EIS. Внешние устройства: - PSW; - таймер (50/60 Гц); - терминал (VT52/КСМ); - принтер; - диски (MY/КМД); - обмен с PC. Память: - 56/60 килобайт. Для работы эмулятора требуется IBM/PC-AT совместимый компьютер, с процессором не ниже 286. Быстродействие: Приблизительно 100 тактов 486 процессора на двухадресную команду (на Am486DX4-120 программа speed показывает чуть больше 1200 тыс оп/с) или около 200 тактов 386 процессора (на 386DX40 - чуть меньше 200 тыс оп/с). Однако реальное быстродействие в несколько раз выше - для обычных процессоров меряют быстродействие регистр-регистр, а здесь быстродействие не сильно зависит от типа адресации. Для 'обмана' программы speed есть возможность включить быструю эмуляцию команд add r0,r1 и add (r0),r1 - тогда быстродействие подскакивает до 2.2 млн. Терминал: Терминал эмулирует КСМ - это VT52 c другой псевдографикой. Естественно, есть русские буквы. Если операционка поддерживает 8-битный ввод с клавиатуры (ADOS Александра Григорьева), то можно работать с обычной PC-шной раскладкой и переключением русских букв (через keyrus или что-нибудь еще). Клавиша Num Lock - это PF1, / - PF2 и т.д. PageUp/PageDn - ПредКадр/СледКадр. Esc - СтопКадр. Есть еще одна особенность, значительно повышающая субъективное быстродействие - быстрая эмуляция (отключаемая) команд emt 341 и emt 351. Таймер: Таймер - с регистром состояния, 50 или 60 Гц (задается ключом при запуске). Может быть включен/выключен нажатием клавиши F9. Диски: Диски - эмулируется КМД (команды чтение, запись, загрузка). Могут находиться в файлах PC или на ГМД (дисковод 1.2). При работе с дискетами не требуются дополнительные программы. Программа сама делает интерливинг, за счет чего скорость работы с дискетами не отличается от ДВКшной. Обмен с PC: Обмен с PC - исполнить программу, получить дату/время, прочитать/записать текстовый/двоичный файл, можно использовать групповые операции. Пульт: Пультовый режим - вызывается по клавише F10, имеет более-менее стандартный набор команд, F1 - справка. Запуск эмулятора Запуск очень простой. Вставьте в дисковод емкостью 1.2 М дискету в формате MY-80 с системой с драйвером MY (или аналогичным) и введите команду: PDPC a: (если дискета в драйве A:) или: PDPC b: (если дискета в драйве B:) Должна произойти загрузка системы. В общем случае в командной строке можно указать до 4-х имен файлов или устройств, а также произвольное количество ключей. При запуске без параметров выводится краткая справка по ключам. При вводе ключи можно сокращать. А что делать, если у вас нет такой дискеты, но есть другой эмулятор? Тут немножко сложнее: Вам надо перенести любым способом в образ своего диска файл драйвера MY.SYS и сделать его системным. Для эмулятора EM: Снять аттрибут read-only с файлов my.sys, pdpc.sav, clear.sav. attrib -r my.sys attrib -r pdpc.sav attrib -r clear.sav Запустить его командой: em sample.rk my.sys pdpc.sav clear.sav Ввести команды: copy em1:/dev/end:3 my.sys/file copy em2:/dev/end:6 pdpc.sav/file copy em3:/dev/end:1 clear.sav/file copy/boot:my em:rt11sj em: После этого выйти из этого эмулятора и запустить PDPC командой: pdpc sample.rk Выход из эмулятора Нажмите F10. Вы окажетесь в пультовом режиме. Для справки по командам пультового режима можно нажать F1. Нажмите Q и на вопрос QUIT, Are you sure? ответьте Y. Установка размера диска Данный эмулятор имитирует работу контроллера КМД (MY). В связи с этим число дисков ограничено 4, а максимальный размер каждого - 2.5М. Для установки размера можно воспользоваться командой SET MYn NTRK=xxx, где n - номер привода (от 0 до 3), а xxx = число дорожек на данном приводе (по умолчанию 80, не более 250). Это имеет смысл только в случае использования драйвера с поддержкой этого SET-параметра и для приводов, назначенных на файлы. На одной дорожке размещается 20 блоков или 10 килобайт. После задания размера следует перезагрузиться (BOOT SY:) и сжать диск с измененным размером (SQ MYn:). Затем следует прописать этот диск, чтобы MS-DOS выставила нужный размер. Для этого можно воспользоваться программой CLEAR - надо назначить этот диск на DK (ASS MYn DK) и запустить CLEAR. Эта программа заполняет нулями все свободные области диска, что полезно при работе на PC с программами сжатия дисков. После окончания работы программы CLEAR с диском можно работать. Ключи Справку по ключам можно получить, запустив программу PDPC без параметров: /FastEMT - emulate .TTYOUT and .PRINT /MemMax - expand memory up 60K (170000) /OddTraps - enable checking for odd word address /Wile - fast execute ADD R0,R1 and ADD (R0),R1 for benchmarking /Halt - enter halt mode instead auto boot /60Hz - generate 60 Hz timer interrupt instead 50 Hz /ILSector - interleave factor for sectors on diskette /ILTrack - interleave factor for tracks on diskette /Statistic - generate file pdpcstat.dat. Ключ /F подключает эмуляцию EMT 341 и EMT 351 - это значительно ускоряет вывод на терминал. Ключ /M устанавливает верхнюю границу ОЗУ на 170000 вместо 160000. Ключ /O включает проверку на обращения к словам по нечетному адресу. Правильность изменения содержания регистров при возникновении такого прерывания не гарантируется (пока). Ключ /W предназначен для любителей показухи. При его задании команды ADD R0,R1 и ADD (R0),R1 обрабатываются отдельно и быстро. Эти команды используются при измерении быстродействия программой SPEED.SAV. Ключ /H выключает автозагрузку. При запуске эмулятор переходит в режим останова. Ключ /6 устанавливает частоту прерываний от таймера 60 Гц вместо 50 Гц. Это же значение используется при установке времени программой PDPC TIME. Ключи /ILS и /ILTRK задают факторы интерливинга при работе с дискетой. По умолчанию 2 (чтение через сектор) и 5. Ключ /S - включает сбор статистики по командам. Несовместим с ключом /O. При выходе из эмулятора создается файл PDPCSTAT.DAT, в котором находится 64К 32разрядных слов - счетчиков выполнения для каждого кода операции. В качестве примера программы обработки этого файла приведена текст программы stat.c, которая выводит 100 наиболее часто выполняемых кодов команд. Ключи могут быть записаны в файл PDPC.CFG: ==== cut here ==== PDPC Configuration file FastEMT MemMax ==== cut here ==== Обмен с PC Для обмена с PC служит программа PDPC.SAV. Для получения справки следует вызвать ее с ключом /?: PDPC TIME - Set current date/time PDPC R[T] files - Read [text] files from MS-DOS PDPC W[T] files - Write [text] files to MS-DOS PDPC EXEC command - Execute MS-DOS command Программа может установить текущую дату и время из MS-DOS, а также читать и писать файлы из MS-DOS с перекодировкой и без. Перекодировка производится между альтернативной кодировкой (PC) и КОИ-8 (PDP). Программа работает только в текущих каталогах. Можно указывать символы * и % - в интерпретации RT-11 (т.е. после * можно задавать еще символы). Указание всего в одну строку работает только в ОС АДОС. При работе в RT-11 или ФОДОС следует сначала вызвать PDPC, а затем дать команду. Если при копировании файлов в командной строке указаны групповые спецификации, то программа для каждого файла запрашивает подтверждение. Можно выполнить команду MS-DOS. Например, для просмотра текущего каталога можно дать команду: PDPC EXEC DIR При указании команды PDPC EXEC (без параметра) происходит просто запуск текущего командного процессора. Для возврата в эмулятор следует ввести команду EXIT. Перспективы развития Данный эмулятор писался "под себя", поэтому в него включены только те возможности, которые были нужны автору. Дальнейшее развитие будет идти по пути создания (при наличии определенного числа заказов) коммерческой версии. Некоммерческая версия развиваться, по-видимому, не будет. Предполагаемые возможности коммерческой версии: - Подключаемые эмуляторы внешних устройств (с открытым интерфейсом); - Терминал VT52/VT100/VT220; - Последовательный порт DL; - Диски DU; - Диспетчер памяти 18 разрядов; - Диспетчер памяти 22 разряда (для 386 и выше). Как связаться с автором Во-первых, через FIDO: 2:5020/243.66 Vladimir Poletaev AKA 2:5020/604.66 AKA 2:5020/201.66 Во-вторых, если через FIDO не получается, звоните мне на работу - я там иногда бываю: (095)-536-8503, Владимир Полетаев Приложение 1. История Версия V01.01. Первая версия, выпущенная в свет. Пошла в эхоконференцию MO.DEC. Версия V01.02. Косметические правки предыдущей версии: - Ключ /60Hz теперь учитывается при pdpc time; - Поправлен вывод по F1 в режиме пульта; - Убрано зависание по ^C; - Введена команда pdpc exec. PC's come and go, but PDP-11 are FOREVER!