Может кому пригодится.
BASIC-11/RT-11 V02-03
В архиве оригинал, SIP патч для поддержки дат до 2099 года и поправленный SAV.
Вид для печати
Может кому пригодится.
BASIC-11/RT-11 V02-03
В архиве оригинал, SIP патч для поддержки дат до 2099 года и поправленный SAV.
Кстати неплохо виртуализуется, что позволяет запустить на отдельном терминале (в многотерминальном RT-11).
Только вот при активной BASIC программе командная консоль будет тормозить сильно в виду низкого приоритета против system/foreground job :)
А не сохранилось ли у кого-нибудь старой классической ОС ДВК ?
Если верить информации которая попадалась когда либо со словами "ОС ДВК", то это был обычный RT-11 версии 5 даже без попыток вставить русские слова и сделать вид, что что-то "поправили" или поменять CTRL/O на CTRL/D :)
Ну а RT-11 есть на любой вкус - как родные почти всех версий, так и советские РАФОСы, ФОДОСы.
Где-то попадалась информация, что она создана на базе 4-й версии.
При загрузке совершенно точно выводилась надпись "ОС ДВК" по русски, это хорошо помню. Команды были английскими.
Я с ней работал на ДВК-3, из первых выпусков, с двумя большими НГМД-6121. Год 85 или 86-й.
Этих у меня тоже много...Цитата:
Сообщение от form
Один у меня на сайте валяется, там правда утилиты подмешаны другие, но дистриб рабочий.
Вечерком покопаюсь, выложу что у меня по теме есть.
---------- Post added at 15:11 ---------- Previous post was at 15:07 ----------
Тут собственно
Собрал из обломков какие нашел.
На пробу сгенерил RAFOS/TS.
Муторно, но можно...
При генерации TS задаются вопросы которые к нему не относятся, далее из текущего SJ вынимаются устройства из таблицы и если их нет для TS - не грузится. У меня раньше не было такого. Словом придется еще сгенерить SJ с подходящей конфигурацией.
Файлы которые создаются для сборки xxMON.COM и xxDEV.COM используют команды вроде "ASS DK I" которые не работают в этом рафосе (опять таки в советское время с этим проблем не было - может это есть тот плюс что в названии ;) - у меня не плюс был вроде). После правки руками все собирается, запускается...
В архивах RAFOS+ V2.1/4.00 и файл русских шрифтов для E11/Win32 на случай если кому захочется в нем поигаться ;)
Файл basic.old в том архиве - не оригинал, а копия basic.sav
...
В развитие темы Бэйсиков для RT-11.
Помимо стандартного BASIC.SAV ( V02-03 размером 56 блоков ) в моих архивах обнаружились следующие варианты (см. приложение), все (или почти все) из которых являются разными сборками той же версии BASIC-11:Похоже, что BASDBL, BASFF и BAS53 - безоверлейные Бэйсики, сгенерённые из дистрибутива BASIC/RAFOS V02-03.Код:Файл Размер Свободное место (команда LENGTH)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BASIC 56 блоков 12807 слов (стандартный Бэйсик V02-03)
BAS69 69 блоков 4141 слов (???)
BASOVL 86 блоков 10793 слов (очень сильно оверлеется)
BASDBL 58 блоков 7995 слов (с двойной точностью)
BASFF 48 блоков 9497 слов (использует команды FIS)
BAS53 53 блока 8259 слов (безоверлейный)
BAS50 50 блоков 8967 слов ( V1.0 ???)
Безоверлейные варианты бывают более удобны при работе с дискет.
...
P.S. Совместимость с системными датами Y2K у этих вариантов BASIC-11 отсутствует.
ok, проверю - я их там тасовал перед выкладыванием, мог ошибиться.
А там среди прочего случайно нету полного дистриба?
В частности файла SUNCFG.BAS. Тогда можно будет собрать на любой вкус. В частности добавить поддержку ассемблерных функций - ее нет ни в одном из дистрибутивных вариантов. Аппаратной арифметики тоже в поставляемых нету...
С оверлейными можно сделать по тому же принципу. С безоверлейным придется повозиться чтобы найти куда приткнуть новый код.
---------- Post added at 20:34 ---------- Previous post was at 20:20 ----------
Кстати в mapped мониторах XM, XB, ZM, ZB (для RT-11 начиная с 5.03 или 5.04 - не помню точно) можно существенно увеличить свободное место если в оффсет 4 файла SAV записать 200, а в системе дать команду SET RUN VBGEXE. Ну или можно просто запускать командой V/VRUN без прописывания.
На примере того который я выкладывал (ALL functions):
в оригинале: 5719 FREE
после правки оффсета 4: 19903 FREE
Возможно, на лентах где-то и есть. Но читать ленты мне не на чем, поэтому проверить не могу. Было бы конечно интересно сдампить эти ленты, чтобы узнать, что там на самом деле есть.
Относительно дистрибутва BASIC/RAFOS мне помнится, что генерация там происходила из объектных модулей, а командный файл для их сборки создавал PAGEN.SAV
Вышеупомянутый BASOVL.SAV поправленный до Y2K и отдельно SIP.
В остальных навскидку не нашлось места.
form, РАФОС II найдется? Я сейчас по нему описание (сканы) обрабатываю.
Если в коде программы установить бит 0400 по адресу 044 ( т.е. бит CHAIN$ в JSW ) то коды программ для RT-11 можно начинать не с адреса 01000, а с адреса 0400.
Пример:Код:;
; Echo
;
.MCall .GtLin, .Print, .Exit
.Asect
.=44
.Word 400
.=400
START:
.GtLin #StrBuf
.Print #StrBuf
.Exit
StrBuf: .BlkB 120.
.End START
;
Я не любитель пользовать не по назначению вещи. И так хватает драйверов которые пытаются зачем-то влепитьтся во все дырки нулевого блока, а потом лотерея - будет работать в этой системе или нет - хотя место для всяких SET/INSTALL кодов практически не ограничено (в пределах разумного) - было бы желание правильно запользовать :)
Вот BASIC-PLUS-2 когда ковырял - там пришлось повозиться, ужать родной код, воткнуть свой, а ради RTшного лениво тем более, что в оверлейном варианте все делается легко :)
---------- Post added at 01:05 ---------- Previous post was at 00:35 ----------
На случай если захочется поковыряться, код ищется легко в думпе...
Код:056220 010500 MOV R5,R0 ;R0 -> ДАТА
056222 000300 SWAB R0
056224 042700 177603 BIC #177603,R0 ;R0 -> МЕСЯЦ * 4
056230 062700 021354 ADD #21354,R0 ;АДРЕС ТАБЛИЦЫ "-JAN-FEB-...DEC-" ВЕЗДЕ РАЗНЫЙ
056234 012702 000005 MOV #5,R2
056240 112021 MOVB (R0)+,(R1)+
056242 005302 DEC R2
056244 001375 BNE 56240
Изначально неправильная маска - должно быть 177703 вместо 177603.
056246 010500 MOV R5,R0 ;RO -> ДАТА
056250 042700 177740 BIC #177740,R0 ;R0 -> ГОД-72
056254 062700 000110 ADD #110,R0 ;R0 -> ГОД
056260 004767 000066 CALL 56352 ;ВАРИАНТ TWODEC
В моем случае BIC заменяется на вызов "фиксатора" даты, а ADD нопается. Тут уж как захочется.
А вызывается такая подпрограмма:
FIXDAT: MOV R0,R4
ASR R0
SWAB R0
BIC #^C37,R4
BIC #^C140,R0
ADD R0,R4
ADD #72.,R4
CLR R0
MOV #16.,R2
20$: ASL R4
ROL R0
CMP R0,#100.
BLO 30$
SUB #100.,R0
30$: DEC R2
BNE 20$
RETURN
на входе R0 - дата, на выходе R0 -двухциферный год, регистры R2 и R4 меняются, но это не мешает - они там все-равно
везде меняются.
С оверлеем все просто - втыкаешь в конец сегмента и расширяешь его.
С не оверлеями - можно поискать куда приткнуть.
Ну и как вариант - вместо цпу-независимого кода можно запользовать EIS и упростить часть кода до одного DIV :)
Со второй попытки мне, наконец, удалось понять, что надо менять в коде, а что нет.
Результат - Y2K совместимые варианты безоверлейных Бэйсиков BASDBL, BASFF и BAS53 ( соответственно BASDBY, BASFFY и BAS53Y ) прилагаются.
С SB монитором RT-11 v5.7 все эти варианты работают, совместимость с другими мониторами надо проверять.
Правда, BASDBL на самом деле оказался оверлейным, но его оверлейность проявляется (насколько я понял) только при ошибке выполнения программы *.BAS, поскольку оверлеями подгружаются только сообщения интерпретатора.
Только в адреса 400 зря запихано - лучше в штатные 500е.
400-474 официально поддерживаемые RT-11 ветора устройств и на УКНЦ например они используются.
Здесь дело в том, что младшие адреса памяти BASIC-11 использует под системный стек, который (при отсутствии вложенных прерываний) опускается до адреса 0554.
Поэтому, чем меньше размер подпрограммы исправления даты и чем с более низкого адреса она расположена - тем большее количество вложенных прерываний не приведут к сбою.
Размер подпрограммы можно легко уменьшить на два слова, расположив их на месте NOP, NOP в точке вызова, но всё равно - чем ниже эта подпрограмма будет располагаться в памяти - тем лучше.
Отсюда вопрос - какой адрес вектора прерывания у УКНЦ самый старший?
Неужели, даже вектор 0474 реально используется..
Тогда, для полноты картины - вот варианты безоверлейных Бэйсиков ( BASDBY, BASFFY и BAS53Y ) с расположением корректирующей подпрограммы по адресу 0500.
Кстати, как оказалось, Бэйсик двойной точности ( BASDBY ) не задействует младшие адреса под системный стек, поэтому его использование может быть наиболее беспроблемным.
В тех же случаях, когда потребуется изменить положение корректирующей программы в коде, то для этого c любого удобного адреса нужно разместить последовательность кодови обновить начальный адрес последовательности в точке вызова:Код:000300 042704 177740 042700 177637 060004 062704 000110 005000 012702 000020
006304 006100 020027 000144 103403 162700 000144 005204 005302 001366 000207
(Сейчас там записано 0500)Код:BASDBY : 25254
BASFFY : 17374
BAS53Y : 21000
пришли платы вот такие http://i001.radikal.ru/1109/38/175a3e9bc9a2t.jpg
возвращаюсь к вопросу запуска и топологии... кто может помочь?
БП так же едет
omaxlab, у тебя МС1201.02? Тогда что это за плата? http://sash-a.nm.ru/DVK/dvk4.jpg
ага мс2101.02.. говорят разные ревизии есть
Пропатчил VTCOM от RT-11 V05.07 чтобы работал на высокоскоростных железяках/эмуляторах. Может кому еще пригодится.
В архиве SIP патчи для SAV и REL вариантов и патченые программы.
Переделал RSXного GADа в RTшный....
Если у кого найдется оригинал RTшный, свистите :)
Работает в RT-11 как одно- так и много-терминальных, на любой из консолей. Требует VT52 совместимого терминала.
Требует поддержки таймера в системе.
Возможны ошибки, но вроде играет :)
PS. Не проверял в старых системах, но думаю во всех V5 должен работать
С выдачей сообщений в конце игры что-то недоделано :)
Попробовал в многотерминальном RT-11 запустить на отдельном терминале и продолжать работать - получилось. Поскольку игра в основном в идле находится, BG job не стопорится...
Слегка упростил программу. Вместо проверки на VBGEXE тупо запрещен запуск из под него :)
На случай если кому захочется поковыряться...
Это реассемблированный GAD. Добавлена поддержка RT-11, никаких оптимизаций
не делалось, часть исходников даже не смотрелась, вся дурость какая была сохранена.
Не будет работать в RT-11SJ/SB без поддержки таймера.
В архиве исходники, программа для RSX и программа для RT-11.
PS. RTшный код использует макробиблиотеку SYSTEM от RT-11V5.5+. Если нужно собрать на старой версии, следует поубирать .LIBRA, .MCALL после него, .SYCDF, .JSWDF, а в .ASECT кусочке сделать
Код:.=44
10100
Еще немного попинал гада.
Теперь работает в TSX сразу без дополнительных параметров запуска.
В SJ/SB без поддержки таймера ругается и выходит вместо работы в темпе реактивного двигателя :)
PS. Номер с SJ не прошел - он не поддерживает .SPND/.RSUM (используются для ожидания окончания таймаута) по крайней мере до 5.04G включительно. В SB работает. Будем делать отдельную притормаживалку для SJ :)
- работает в SJ (требуется поддержка таймера)
- работает при SET TT CRLF
- работает на RT-11 V4
Последний RT-11 V5 "старой закалки" перед глобальной переделкой и началом реализации грядущей поддержки y2k.
Из особых отличий от прошлых версий - наличие драйвера MU (в списке SYSGEN был еще в 5.03, но самого драйвера в ките не было, появился в 5.04); SL(,X).SYS запоминающий историю команд, а не одну последнюю команду.
В архивах ленточный и RL02 киты.
Отдельно SL из этой системы. Он поддерживает VT52, однако считает, что не грех и принудительно переключить случайно оказавшийся под рукой VT100 в этот режим, из-за чего в оригинале на настоящем VT52 работать будет затруднительно - терминал переключится в HOLD SCREEN.
В архиве патченые SL.SYS и SLX.SYS и сами патчи. Для переключения в VT52 режим нужно дать команду SET SL VT52.
Нашёл в архиве несколько стандартных наверное тестов для контроллеров MX,MY,DW.
Прилеплю сюда на всякий случай, есть ещё файлики от ДВК-кашки пока разбираю,
что там к чему =)
что это за плата кто подскажет?
http://www.leningrad.su/museum/show_big.php?n=1076