За десять лет развития модульного API там тоже накопилось больше 100000 строк кода. Проблема в том, что консольный эмулятор RT-11 использует весь этот код, потому кто-то должен будет портировать эти тонны кода под Linux.
Вид для печати
Что - 100000 строк кода API компилятся всего в полтора мега .exe, не считая логики самого эмуля и веса образа диска? В это как-то с трудом верится.
Другой вопрос, стоило ли основывать потенциально годный (консоль есть почти везде) к мультиплатформенности эмуль на таком привязанном к виндоуз коде. Или лучше было бы опереться на LibC или Qt/GTK. Тем более винда, кажется, теряет свой былой блеск. Но не буду навязывать стиль, каждый программит как хочет. У меня интерес вообще-то непрямой.
А Модулу хорошо бы запустить в инет, а то Гюнтер не может прочесть свои восьмидюймовые дискеты.
Чистый API конечно меньше весит, но портировать-то его по-любому надо - без мощи API всё превратится в обычный SIMH, который и так без проблем идёт под Linux. Чтобы довести SIMH до ума в качестве консольного эмулятора RT-11 - надо организовать передачу кода завершения программы из RT-11 в Linux, написать прозрачный для вызовов RT-11 конвертер файловой системы RT-11 в файловую систему Linux и научить SIMH автоматически передавать в RT-11 аргументы вызова эмулятора. Любой желающий может сделать это за несколько месяцев.
Ленты я тоже не могу найти где сдампить уже лет 30.
Гюнтер пытался запустить эмулятор на W2k, можно что-то ему посоветовать?
Цитата:
Сообщение от Günter Dotzel
Может кинешь пока ему ссылку на DLL.RU ? Вдруг поможет если руками библиотеку подпихнёт.
- - - Добавлено - - -
Он вник в описание по использованию, там ведь стандартное поведение консольного приложения по сути,
я не думаю что IT-шник с опытом не сможет запустить под окошками эмулятор.
Oleg N. Cher, пусть Стасу напишет и на форуме зарегается, тут вроде как большинство английский более-менее знают, поможем...
Если скачать установочный образ Win7 с этого торрента, то он устанавливается с отключенными обновлениями, поэтому установка проходит быстро. При желании обновления можно позже включить. Ставил этот вариант и под виртуальной машиной, и вживую - проблем не возникало.
Не, просто если он пытается под W2k запустить эмуль, которому нужны dll минимум от Win7, то по барабану консольная ли прога или нет. Вопрос автору: под какой виндоуз можно запускать (тестировалось)?
Я ещё посоветую ему попробовать под Wine.
У иностранцев могут быть свои взгляды на использование dll, скачанных с сайта типа DLL.RU, они к лицензированию относятся очень трепетно.
Это не он ли спрашивал тебя - есть ли у нас лицензия на RT-11?
так пусть подпихнёт библиотеку (а она там есть) под 2К окошки и соответственно проведёт ещё один пробный запуск.
Минутное дело, даже обсуждать нет смысла. Проект для консоли Windows ) Где запустишь там и заработает )
Диапазон систем наверное младшей надо считать XP sp3 и все что выше - должен работать.
Могут быть нюансы, а поскольку 2K - сама по себе 1 большой нюанс - пускай пробует или ты хочешь заставить Patron'a во всех мыслимых сочетаниях система, система+виртуальная машина тестировать эмулятор? Вот лучше сам в роли тестора выступи и все вопросы отпадут.
3анимательная pdp-11! Когда-то давно запускал эмулятор (e11?) по ДОСом - был удивлен тем, что ничего не зная о системе, смог там что-то позапускать. Решил сейчас с этой любопытной и оставившей глубочайший след на ИТ архитектурой поразбираться. Надеюсь на помощь знатоков.
Началось как-то не очень. E11 вообще не знаю как запустить, а SIMH с прилагаемым на его сайте образом РТ-11 грузится, но что-то там нужно настраивать - вместо стирания по клавише Delete происходит печать удаляемого символа после слэша - редакторы в таком режиме не работают. :-( Еще не разобрался как писать файлы на образы дисков.
Пошёл только эмулятор RT-11 уважаемого Patron'a. Сам работаю с Линукс - присоединяюсь пожеланиями к Гюнтеру и ко. Запускаю эмулятор из под XP под виртуальной машиной. Идея очень понравилась, для начинающих - это самый удобный способ. Но возникли проблемы:
1) что-то не так с консольным выводом: если печатаем длинную строку и печать доходит до низа экрана, то вместо скроллинга строка продолжает печатся с начала экрана. Это можно проверить чем-то типа такого кода mov #3000,r1 mov #65,r0 ab: .ttyout sob r1,ab
2) не работают команды умножения и деления, делаю, например, mov #100,r2 mul #10,r2 - не работает
3) есть ли в РТ-11 какой-нибудь отладчик типа debug из DOS или ddt/zsid из CP/M?
Кстати, все ли знают, что наконец заработал эмулятор легендарного компьютера Терак, праобразa нашей почти легендарной БК?
Это нормальное по умолчанию поведение, символ из вводимой строки стирается, просто зеркально отображается при стирании вся строка.
Что бы такого не было, надо SE TT SCOPE параметр установить или загрузить драйвер SL.SYS командой SE SL ON.
А он под окошки? И если да надо прямую ссылку для изучения эмулятора и ПО для него где взять.
Я категорически не согласен, это удобно, но только не для начинающих! Для начинающих 100% нативная среда
вот идеальный способ. Ставьте полноценный эмулятор ДВК и изучайте систему в нём. Скорость компиляции
можно регулировать скоростью эмуляции (с помощью удобного меню), эмулятор работает с обычной NTFS папкой
как с каталогом RT-11. Подробности в авторской теме. Я бы ещё и УК-НЦ предложил, но пока воздержусь.
Книги по системе и краткие инструкции по командам легко найти среди строковых ссылок в центральном фрейме главной
мордочки архива и в БИБЛИОТЕКЕ же )
- - - Добавлено - - -
по 1) 2) 3) дождитесь ответа Patrona - я просто не вник что там у вас, с переносом строки проблема, в каком эмуляторе где?
Какие при этом настройки? Отладчики есть под RT-11 штатные и не штатные, но они под и для RT-11 же (я не пользуюсь поскольку понятия не имею что с ними делать, отлаживаю свои исходники визуально - проверочными параметрами и "точками" внутри программы)
благодарю за подсказки. С ними "погружение" должно пойти побыстрее.
По Тераку. Это давно известный эмулятор, должен собираться и под Виндуз с SDL. Собирал его даже на Raspberry Pi. http://sourceforge.net/projects/bk-terak-emu/
Из всего софта на Тераке пока пошёл только mini-Unix - весь каталог
Думаю, что Терак кому-то из наших тогдашних политиков здорово голову вскружил в конце 70-х. И пошли ДВК, БК, УКНЦ... Там процессор T11 на чипе, графика, музыка...
Проблема с переносом, думаю, везде. Забейте маленькую прогу с циклом с .ttyout на несколько тысяч раз и запустите в консоле Виндуз через вызов эмулятора RT-11 - речь только о нем и в нём же не делится и не умножается. :-(
Ставьте полноценный эмулятор ДВК
Работайте с образами минуя плагин средствами RT-11
Enjoy! ;-)
- - - Добавлено - - -
но компилируется, собирается? Так в этом его основное назначение. Получить исполняемый файл, на скорости хоста,
использую нативные компилятор и линковщик. Это не эмулятор машины. Это среда для "быстро собрать исходник" и
запустить на реале потом или в эмуляторе конкретного железа. Иметь возможность работать с текстом программы
в обычной NTFS папке и блокнотике Windows, я как-то так себе это представляю.
- - - Добавлено - - -
http://geektimes.ru/post/261074/ - почитайте отзыв программиста.
Данный эмулятор RT-11 тестировался под Windows XP и Windows Vista. Под более старшими версиями Windows тоже должно работать. На системах ниже XP модульный API работать не может.
- - - Добавлено - - -
Это стандартное поведение большинства старых терминалов типа VT52. Если бы они скролили экран при выводе в последнее знакоместо на экране - невозможно было бы (при желании) рисовать текстовую рамку вокруг экрана.
Процессор исполняет команды, а не желания. При умножении регистра с номером n - сначала в регистр с номером n помещаются старшие 16 битов результата, а потом в регистр с номером n|1 помещаются младшие 16 битов результата, поэтому умножая нечётный регистр - получаем в нём 16-битный результат, а умножая чётный регистр - получаем в нём старшие 16 битов 32-битного результата.
Не стоит задавать вопросы по RT-11 в теме про эмулятор - это лучше делать в темах про RT-11.
Получил письмо от Гюнтера:Цитата:
Сообщение от Günter Dotzel
Без извлечения образа системного диска невозможно изменить состав файлов на диске SY: Можно хоть все файлы там удалить, но после перезапуска эмулятора изменения пропадут. Извлечение диска позволяет сохранять изменения системы между запусками эмулятора.
Можно поступить ещё круче - сделать copy/dev/noq sy: dk: - тогда хост-каталог станет загрузочным, но для его загрузки надо будет каждый раз после запуска rt11.exe давать команду boot dk: ( если извлечь системный образ и прописать команду boot hd1: в стартовый командный файл STARTS.COM - такой фокус не работает, попробую исправить это в следующем релизе ).
Вариант эмулятора RT-11 с эмуляцией MMU появится не раньше эмулятора процессора 1801ВМ3 для эмулятора ДВК - возможно, этой зимой.
Продолжение:Цитата:
Сообщение от Günter Dotzel
.Цитата:
Сообщение от Günter Dotzel
С этой проблемой знаком, но чтобы система не скроллила - это что-то необычное. Что за рамки на терминалах 70-х?! Проверил с SIMH и vt52 - скроллит. Решал проблему отключения скроллинга на нескольких системах, там для этого приходилось либо напрямую обращаться к аппаратуре, либо обманывать систему, задавая ей при выводе последнего символа значение ширины экрана большее настоящего. Неужнли на RT11 не было нормального механизма отключения скроллинга?
За вопрос с умножением извините. Там была ошибка в другом. Привык использовать POP/PUSH, а тут такого нет и написал MOV r1,(sp)+ впесто POP - не ломает, но и не работает. :)
Системы не скролят - скролят терминалы. В эмуляторе RT-11 максимально точно воспроизводится поведение терминала 15ИЭ-00-013, который скролит только в ответ на команды скролинга ( например - LF ). Благодаря этому вывод 80х24 отображаемых символов, начиная с любой точки экрана - гарантировано помещает курсор в то же место на экране, откуда начался вывод. Это используется ( например ) в игре XONIX.
Скролинг терминалов не имеет отношения к операционке, только в DEC Pro350 с графическим адаптером и встроенным в RT-11 эмулятором терминала появились системные средства управления скролингом этого эмулятора.
Уважаемый Vslav, Вам что-то надо делать с чувством юмора. :) Там же рожица. Сам смеялся, что на PDP-11 и POP просто не напишешь - думать надо!
Уважаемый Patron, благодарю за разъяснения. Получается, что такое поведение - это "усовершенствованние" в СССР стандартного DEC терминала, чтобы в dos-игры играть? :)
А-а-а, прошу прощения, это в корне меняет всю ситуацию :)
MACRO-11 один из немногих ассемблеров где такой порядок источника и приемника, давно на нем не писал, приходится самому себе постоянно напоминать об этом. Все жду когда на нем наконец смогу строчку с QIOW$S написать :)
Справился со скроллингом, направляя вывод в файл. Но возникла попутная проблема: перенаправление работает только для вывода, а для ввода нет. Пишу
rt11 run prog.sav <input
ввод не работает :(
Интересно, а позволит ли эмулятор использовать FCU.SAV - архиватор для RT-11, что бы жать DOS и WINDOWS файлы в FCU-архивы?
Почему нельзя сделать опционально поддержку живого флоппа в будущих релизах? Аналогично DOS эмулятору Полетаева?
(подразумевается копирование из папки или образов на дискету для УК-НЦ к примеру на лету).
Эмулятор RT-11 позволяет использовать любые программы RT-11 для обработки любых файлов в текущем каталоге Windows, удовлетворяющих требованиям RT-11 к именам и размерам файлов.
Потому что эмулятор RT-11 работает только с содержимым текущего каталога Windows.
Обновилась текущая сборка эмулятора RT-11 для консоли Windows ( 14.08.2017 ) - RT-11_Emulator_14.08.2017
Изменения:
1. Все модули эмулятора обновлены до текущих версий. В результате ( например ) исправлена ошибка эмуляции команды MARK. Теперь при изменении виртуального диска - содержимое каталога Windows обновляется не только "вручную" ( после закрытия эмулятора или чтения каталога HD1: ), но и автоматически - через 0.3 сек после последней записи на HD1.
...
Patron, а можете рассказать -- как у вас драйвер HD (тот который отвечает за каталог на диске PC) взаимодействует с эмулятором? т.е. на стороне PC я понимаю примерно что происходит -- висит hook на изменения в директории, подхватывает изменения, отражает это в своих структурах. Но со стороны RT-11 это же вроде как блочное устройство с каталогом -- получается что, каталог собирается динамически и динамически же перестраивается? И самое интересное это -- как драйвер получает информацию об этом?
Большого смысла в таком нет, поскольку содержимое каталога Windows представляет интерес только в момент чтения какой-либо программой RT-11 каталога RT-11.
В тот момент, когда программа RT-11 читает первый блок каталога - эмулятор виртуального диска задерживает этот запрос и сначала осуществляет процедуру двусторонней синхронизации каталогов. Алгоритм синхронизации нереально крут и подробности его уже мною забыты, но в общих чертах происходит примерно следующее:
1. Анализируется каталог RT-11 и создаётся список всех файлов, который затем сравнивается с предыдущим вариантом этого же списка.
2. Пропавшие файлы удаляются из каталога Windows.
3. Список всех изменённых блоков диска сравнивается со списком всех блоков в файлах RT-11. Совпадения записываются в одноимённые файлы в каталоге Windows и удаляются из списка изменённых блоков.
4. Создаётся список всех файлов в каталоге Windows и сравнивается со списком файлов в каталоге RT-11.
5. Новые и изменившиеся файлы загружаются на виртуальный диск.
....
Исходник объекта Virtual_DSK_Class не содержит ни одного вызова модульного API, поэтому двусторонне синхронизированный с каталогом Windows виртуальный диск RT-11 можно создавать в любом проекте C++.
Patron, весьма познавательно, спасибо!
Но это видимо предполагает, что RT-11 не хранит каталог в памяти, и любая операция с диском начинается с чтения каталога?
До кучи, возникает ещё проблема конвертации длинных имён в имена формата 6.3 и разрешение возникающих в связи с этим конфликтов.
В памяти хранится полный стандартный DSK-образ, с которым и работает RT-11. Если в процессе этой работы приходит запрос на чтение первого блока каталога - перед выполнением этого запроса содержимое виртуального диска синхронизируется с каталогом Windows. Проблема конвертации длинных имён файлов не возникает, потому что на виртуальный диск попадают только те файлы из каталога Windows, имена которых удовлетворяют всем требованиям RT-11.
Обновилась текущая сборка эмулятора RT-11 для консоли Windows ( 28.09.2017 ) - RT-11_Emulator_28.09.2017
Изменения:
1. Исправлена ошибка синхронизации виртуального диска с каталогом Windows, внесённая в предыдущем релизе.
2. Теперь при выводе 81-го символа в последней строке экрана - перед выводом символа происходит возврат каретки и перевод строки.
3. Теперь эмуляцию можно поставить на паузу, нажав на клавиатуре клавишу <Pause>.
Вообще-то у Полетаева каждому из четырех дисководов MY можно назначить либо файл .dsk (с любым количеством псевдоцилиндров, по 255 включительно), либо реальный дисковод писюка, котоый в этом случае работает "по-ДВК-шному", т.е. обращение к сектору C-H-R ДВК-шного MY транслируется в обращение к сектору с тем же адресом C-H-R дискеты, вставленной в писюшный дисковод. То есть, суём ДВК-шную дискету в писюшный дисковод, монтируем этот писюшный дисковод, как MYn, где n=[0...3], и вперед! Именно так я прочитал все свои запасы дискет. По-простому, запускаю эмулятор Полетаева, MY0 - файл-образ системной дискеты RT-11, MY1 - дисковод A:, MY2 - файл-образ пустой инициализированной дискеты. Если в дисководе A: дискета RT-11, COP/SYS MY1: MY2:, иначе - COP/DEV MY1: MY2, и вперед. Далее переименовываю файл-образ MY2, переставший быть пустым во что-то осмысленное, соответствующее содержимому скопированной дискеты, и все!
Проблемы при обращении десятым секторам любой дорожки ДВК-шной дискеты (ведь у писюка на 2D дискете 9 секторов, а не 10) успешно решались применением драйвера 800.сом.
Обновилась текущая сборка эмулятора RT-11 для консоли Windows ( 28.11.2017 ) - RT-11_Emulator_28.11.2017
Изменения:
1. Теперь при переходе запущенного эмулятора через полночь - сохраняется синхронизация даты и времени RT-11 с датой и временем Windows.
2. Ускорена эмуляция команд ADD, SUB, CMP и CMPB.
Patron, использовал версию от 28.11.2017 для своего проекта в декабре/январе -- подтверждаю, работает отлично.
Вопрос такой -- а как вы обрабатываете конфликты в именах файлов?
Пример:
Код:C:\Temp\example>dir
Directory of C:\Temp\example
01/26/2018 08:42 PM <DIR> .
01/26/2018 08:42 PM <DIR> ..
01/26/2018 03:43 PM 0 notes
01/26/2018 03:28 PM 0 Notes .txt
01/26/2018 03:43 PM 0 notes.
01/26/2018 03:28 PM 0 Notes.txt
4 File(s) 0 bytes
C:\Temp\example>C:\bin\rt11\rt11.exe DIR
26-Jan-2018 A
NOTES . 1 26-Jan-2018 NOTES .TXT 1 26-Jan-2018
NOTES . 1 26-Jan-2018 NOTES .TXT 1 26-Jan-2018
4 Files, 4 Blocks
65463 Free blocks
Видимо - никак. Эмулятор не должен решать за пользователя, как называть файлы, поэтому все одноимённые файлы попадают в каталог с одинаковыми именами и пользователь уже средствами RT-11 должен выбирать, какой из них ему нужен. Ситуация с одноимёнными файлами в каталоге - один из аспектов реальной работы RT-11, поэтому не стоит лишать пользователя возможности относительно легко её воспроизвести.
- - - Добавлено - - -
Сейчас обнаружил мощный глюк, появляющийся при наличии в каталоге Windows "одноимённых" файлов. Если запустить эмулятор и несколько раз дать команду DIR - в каталоге RT-11 происходит размножение одноимённых файлов. К следующему релизу этот глюк будет исправлен.
После исправления - завершающие пробелы в имени или расширении файла станут недопустимы при отборе файлов из каталога Windows, удовлетворяющих ограничениям RT-11. С таким ограничением, для появления одноимённых файлов в каталоге RT-11 - нужно будет подключить к виртуальному диску каталог FAT и вручную запатчить в него одноимённые файлы.