PDP-11 C V1.2-006
PDP-11 C V1.2-006
Последний раз редактировалось form; 08.06.2014 в 18:36.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Собственно оно...
Последний раз редактировалось form; 08.06.2014 в 18:36.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
В дополнение к посту с дистрибом BASIC-11...
В файле "baspat.mac.txt" (переименовать в .MAC) лежит патч для SUDTCM.OBJ, добавляющий поддержку дат после 1999 года в BASIC-11. Скорее всего подойдет к любой версии, но проверялся только в BASIC-11/RT-11 V02-03.
Использование патча:
После чего можно генерировать BASIC на свой вкус обычным образом.Код:.MAC BASPAT .REN SUDTCM.OBJ .OLD .PAT SUDTCM=SUDTCM.OLD,BASPAT
Пример генерации:
Здесь я при генерации затер оригинал BASIC.SAV. В начале диалога он предлагает выбрать имя, если выбрать не BASIC - не затрет. В конце сборки он ругается на неопределенные символы - это нормально (о чем он собственно пишет в программе генерации). Для ДВК/УКНЦ лучше всего выбрать FIS в качестве железа для арифметики (или EIS ежели бывают без поддержки FIS).Код:.UNP BASIC.SAV .RU BASIC BASIC-11/RT-11 V02-03 OPTIONAL FUNCTIONS (ALL, NONE, OR INDIVIDUAL)? A READY RUN SUCNFG BASIC-11/RT-11 V02 Configuration Program Type "?<ret>" after any prompt for HELP. .SAV and .COM file name (default is BASIC): Do you want a map? (Y or N; default is N): Y .MAP name (default is same as .SAV name): Background or Foreground ? (B or F; default is B): Do you want PRINT USING? (Y or N; default is Y): Do you want CALL support? (Y or N; default is N): Single or Double precision math? (S or D; default is S): D Arithmetic hardware (NONE, EAE, EIS, FIS, or FPU; default is NONE): FPU Do you want the transcendental functions? (Y or N; default is Y): ? Y includes the transcendental functions, N does not. The transcendental functions are SQR, SIN, COS, ATN, LOG, LOG10, and EXP. Do you want the transcendental functions? (Y or N; default is Y): Do you want the SUB command? (Y or N, default is Y): Do you want the RESEQ command? (Y or N, default is Y): Do you want long error messages? (Y or N; default is Y): Overlay structure type (1, 2, 3, 4, or 5; default is 1): ? The overlay structures are described as follows: Type 1 - BASIC is not overlaid. Type 2 - The error messages are overlaid with a segment of of the edit phase. Type 3 - The error message phase, edit phase, and the execute phase are overlaid. Type 4 - Similar to type 3 except that the edit and execute phases are overlaid internally. Type 5 - Similar to type 4 except that the math package, the I/O routines, are some other routines normally in the root segment are overlaid. The higher the overlay structure type number, the less memory is required by BASIC. The saving in memory requirements is made at the expense of performance. Type 2, however, has very Overlay structure type (1, 2, 3, 4, or 5; default is 1): The following GLOBALS will be undefined. These errors may be ignored. ..UAC$, ..NRC$, and ..MSP$ (from no CALL). To create the BASIC that you have just defined, type "BYE<ret>" after BASIC prints "READY". When the system prompts for input, type "@BASIC<ret>" to link the new BASIC. You may type "R BASIC<ret>" to run it. Since you have named the file "BASIC", you may run it by typing only "BASIC<ret>". READY BYE .@BASIC .R LINK *BASIC,BASIC=/B:1200// *BSPTRD,BSPAT,BSR0D *BSR1D,BSPR0 *BSCLIN *SUO1ID,BSOT0D.FPU,BSOT1D.FPU *SUIOPR,SUIOPO,SUDTCM *BSX0A,BSX0B,BSX2,BSX1A *BSX1B,BSPR1,BSCLSN *SUE1ID,BSE0,BSE1 *BSSUB,BSRSQ,BSCMP,BSKEYS *BSERR,BSERML *SUIMP,BSFUNC,SUOPT *// ?LINK-W-Undefined globals: ..UAC$ ..NRC$ ..MSP$ *^C .
Для полного счастья еще можно разрешить автоматическое использование VBGEXE для RT-11 V5.6 и новее (старым системам это не мешает).
После такой правки в новых версиях RT-11 размер памяти существенно увеличится (в системах с поддержкой MMU). В старых V5 системах нужно будет явно запускать через VBGEXE.SAV, в 5.6 и новее достаточно выполнить команду SET RUN VBGEXE и запускать как обычно.Код:.SIPP BASIC.SAV/A Base? Offset? 4 Base Offset Old New? 000000 000004 000000 200 000000 000006 000000 ^Y .
Свободная память до и после правки:
Код:0 USED, 2404 FREE 0 USED, 15669 FREE
Последний раз редактировалось form; 27.02.2012 в 20:20.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Y2K патч для BASIC-PLUS/RT-11 V3.2-05.
Выполнить:
Пример генерации:Код:.MAC BPEPAT .MAC BPNPAT .REN DTT(E,N).OBJ .OLD .PAT DTTE=DTTE.OLD,BPEPAT .PAT DTTN=DTTN.OLD,BPNPAT
Код:.VRU BPGEN BASIC-PLUS/RT-11 V3.2-05 Ready RUN BPCNFG BPCNFG -- BASIC-PLUS/RT11 configuration dialogue/process version 3.2 The configuration specification process may proceed either via an interactive dialogue at the terminal or by taking its input from a configuration specification file. Proceed via dialogue (YES or NO) [YES] ? Welcome to the configuration dialogue for BASIC-PLUS/RT-11 V3.2. By answering the questions that follow, you provide information from which this configuration utility will create an RT-11 command file, which you can then use to LINK an executable BASIC-PLUS image. For each question, a default is given in brackets; you may accept this default by merely pressing RETURN. Each question that requires you to choose one of a set of responses will list the admissible responses in parentheses. If you desire more information before answering a question, type ?. An explanation of the question will be printed, and the question will then be asked again. Beginning of dialogue File name for this generation of BASIC-PLUS [BASIC]? Shall the linking process create a .MAP file (Y or N) [N]? Single or Double precision floating-point (S or D) [S]? Arithmetic hardware (NHD, EIS, FIS, or FPU) [NHD]? FPU Extended memory for user images (Y or N) [N]? Y Abbreviated error-message text (Y or N) [N]? LOG, LOG10, EXP, and SQRT functions (Y or N) [N]? Y SIN, COS, TAN, and ATN functions (Y or N) [N]? Y Matrix Mathematics features (Y or N) [N]? Y String Arithmetic functions (Y or N) [N]? Y GET and PUT statements (Y or N) [N]? Y Buffer Subsetting statements and functions (Y or N) [N]? Y PRINT USING statement (Y or N) [N]? Y SYS() functions (Y or N) [N]? Y BIN, BIN$, OCT, OCT$, HEX, and HEX$ functions (Y or N) [N]? Y BREAK, UNBREAK, TRACE and UNTRACE commands (Y or N) [N]? Y Overlay structure (1=least, 2=intermediate, 3=most) [3]? Language Extension feature (Y or N) [N]? Dialogue complete. CHAINing to "DK:BPCNF1"...BPCNF1 entered...CHAIN complete. Creating "DK:BASIC.COM"...command file created. ----------------------------------- The configuration utility has created a LINK command file, named DK:BASIC.COM, which contains directions from which the linker can build a BASIC-PLUS to the specifications you gave above. To build your new BASIC-PLUS now, type EXIT and press RETURN after BASIC-PLUS prints "Ready" below. When RT-11 then prompts for a new system command, enter ASSIGN commands for the logicals OBJ: and BIN:. Then type $@DK:BASIC.COM and press RETURN to invoke the LINK command file. (You need to ASSIGN the logicals OBJ: and BIN: because DK:BASIC.COM refers to them. They direct LINK to the devices to be used for object modules (inputs to LINK) executable image (output from LINK), respectively.) After you have LINKed your new BASIC-PLUS executable image you can run it by typing the RT-11 command RUN BIN:BASIC and pressing RETURN. Configuration process complete. Ready EXIT .AS DK OBJ .AS NL MAP .AS DM1 BIN .@BASIC .R LINK *BIN:BASIC/V=// *OBJ:BPRT.OLB,BPRTU2.OLB,RWSV,RTIV,MESU2,RGSV *OBJ:RTSE,IOSG,SCSV,VJSV,LXYV,KP0V *OBJ:O3SV,ALSE,AYSV,DMSU2,ECSE,MASU2 *OBJ:PRSU2,SUSV,TRIE,EDSV,TGSE,SQSE *OBJ:WFSV,DBSV,PUSV *OBJ:SCTV,MTTV/O:1 *OBJ:SYTV/O:1 *OBJ:WFTV/O:1 *OBJ:FRTV/O:1 *OBJ:DTTE/O:1 *OBJ:SUTE,DMTU2,IDTV/O:1 *OBJ:XTCV,OTCV,TLCV,SACV,TSCV,FTCE/O:2 *OBJ:TICV,TOCE,TUCV,TYCV,SMCV,LNCV *OBJ:LACV,LLCE,LSCV,LICE,STCV,AYCV *OBJ:CMCV,DMCV,MACU2,PRCE2,RTCV,VBCV *OBJ:BKCV,DBCE,FDCV,MXCV,PUCV *OBJ:DDDV,CMDE,EDDG,CODE,DMDE2,SHDU2/O:2 *OBJ:BNDE *OBJ:RTOV,MEOU2,BPOV/O:2 *OBJ:RDRV,RURE,BNRE,CHRE2/O:2 *OBJ:PTXV,AYXE2,BFXE,CHXE2,FNXE2,MAXU2/O:2 *OBJ:MFXU2,OPXE2,PRXU2,RCXV,RTXE,SQXE *OBJ:VBXE,BKXV,DBXV,FDXE,MXXE,PUXV *OBJ:RFXE,SMXE,SYXV,LGOV,TGOV,XFOV *OBJ:MSFV/O:2 *// *^C .
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Дистрибутив BASIC-11/RT-11 V02-03, пропатченный на предмет y2k, запуска урезанной версии (BAS8K) в последних версиях RT-11 и автоматического запуска под VBGEXE в RT-11 V5.6 и новее.
Отдельно патч тоже прилагается.
Пресобранные варианты в дистрибутиве (пропатченные):
- BASIC.SAV - Включает все фичи кроме CALL, тип оверлея 3, аппаратура плавающей точки не используется
- BASICD.SAV - Аналогично предыдущему, но использует двойную точность для плавающей точки
- BAS8K.SAV - Аналогично первому, но не поддерживает PRINT USING, команд SUB и RESEQ и длинные сообщения об ошибках, тип оверлея 5
Последний раз редактировалось form; 08.06.2014 в 18:36.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Перенес тупой дизассемблер в RT-11 - надоело файлы взад-вперед таскать.
Никаких многопроходностей и попыток определить где код где данные.
Никаких FPP инструкций.
Только BIS, EIS, FIS и всякая мелочь вроде CSM, MFPT, TSTSET, WRTLCK, SPL.
Код:*[lstfile[.LST]=]binfile[.SAV][/B:base][/O:offsblk][/N:nblks]
- listfile - файл листинга (если не указывать, выводит на терминал)
- binfile - бинарный файл
- /B - задает начальный адрес (по умолчанию 0)
- /O - задает начальный номер блока
- /N - задает количество блоков которые дизассемблировать
Можно напрямую дизассемблировать устройство - к примеру загрузчик:
Генерируемый листинг выглядит так:Код:.RU DISASM SY:/N:1 SYBOOT .DIR SYBOOT 15-Nov-2011 SYBOOT.LST 11 15-Nov-2011 1 Files, 11 Blocks 46893 Free blocks .
Возможно где-то есть ошибки - сильно не гонялКод:000000 013767 000050 002310 MOV @#50,2316 000006 062767 000002 002302 ADD #2,2316 000014 012700 177776 MOV #177776,R0 000020 104354 EMT 354 000022 005720 TST (R0)+ 000024 010067 002270 MOV R0,2320 000030 013706 000042 MOV @#42,SP 000034 012701 006332 MOV #6332,R1 000040 005067 002244 CLR 2310 000044 005067 002242 CLR 2312 000050 012767 177777 002236 MOV #177777,2314
История:
Код:15-SEP-2011 02.00 ПЕРЕПИСАЛ СТАРОЕ С НУЛЯ 21-DEC-2011 02.01 ИСПРАВЛЕНЫ ОШИБКИ ОБРАБОТКИ EIS И JSR 28-FEB-2012 02.02 ИСПРАВЛЕНЫ ОШИБКИ ПРИ РАБОТЕ С БОЛЬШИМИ ФАЙЛАМИ
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
В дополнение к фортранам...
Y2K патч для FORTRAN IV V2.08 и патченный дистрибутив.
Команды:
и пересобрать FORTRAN IV.Код:.MAC FORPAT .REN F0.OBJ .OLD .PAT F0=F0.OLD,FORPAT
Последний раз редактировалось form; 08.06.2014 в 18:36.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
И еще к фортранам.
Патчики y2k для FORTRAN-77 V5.0A и патченый дистриб.
Для применения патчей:
Код:.UNP F77(,XM).SAV [email protected] [email protected]
Последний раз редактировалось form; 08.06.2014 в 18:37.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Сегодня день исправлений
Не хотела, падла, работать 29го
Код:Программа запроса и установки даты. Для корректной работы программа должна находиться на системном диске и называться DATE.SAV. В стартовом командном файле следует прописать команду "R DATE". При запуске выдается запрос текущей даты. С помощью управляющих клавиш можно установить нужную дату. По умолчанию будет установлено последнее введенное значение. Если на момент загрузки системы дата уже установлена (передана из ранее загруженной системы командой "BOOT" или прочитана из TOY драйвером NL: в RT-11 V5.6/5.7) запрос даты не выдается, и программа только обновляет сохраненную дату. Программа также может самостоятельно установить дату на машинах, оснащенных TOY. При вводе даты используются следующие клавишы управления: Стрелка влево или D - выбрать предыдущий день Стрелка вправо или C - выбрать следующий день Стрелка вверх или A - выбрать следующий месяц Стрелка вниз или B - выбрать предыдущий месяц > - выбрать следующий год < - выбрать прошлий год CR - установить выбранную дату Следующие ячейки программы можно изменить программой SIPP или подобной ей для изменения поведения программы: 1000 - последняя сохраненная дата (формат .DATE) 1002 - опции программы (значение по умолчанию 100200): 100000 - допустимые значения года 1972-2099 (RT-11 V5.6/5.7) 000200 - разрешить использовать TOY 000001 - всегда запрашивать дату 1004 - 4-словный блок имени файла программы (RADIX-50)
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Именно то что в заголовке, полный текст описания и UCL.(SAV,DAT) в приложенном архиве )))
Описание(почти полностью)
Скрытый текст
Код:Описание программы UCL.SAV (длина 4 блока) неизвестного автора. Составлено Яковлевым С.С. 205,203 КПМ МФТИ. Last correction : Date 10/12/88 Time 01:07:14 Программа предназначена для определения в рамках ОС RT11 собственных команд пользователя. Что это значит? Монитор системы, получив от оператора или из косвенного файла командную строку, анализирует ее начало до первой не буквы или нецифры по следующему алгоритму: 1. По списку команд монитора ищется мнемоника, в обязательную часть которой укладывается введенное слово. Если слово короче обязательной части, но символы в нем такие же, то выдается сообщение ?KMON-F-Ambiguous command Это не позволяет использовать огрызки команд, например DI, DE, A Если слово найдено, то монитор разбирает ключи команды, указанные файлы, и выполняет команду. Простые команды непосредственно выполняются монитором. Вместо сложных же формируется цепочка простых. Как правило, она сводится к вызову систеной утилиты PIP,DUP,DIR,RESORC,MACRO, и др. и передаче ей строки вида: DEVOUT:FLOUT1.EXT,FLOUT2.EXT,...=DEVIN:FILIN.EXT Если слово в таблице команд не найдено, то монитор считает его именем программы, находящейся на систеном томе, ищет ее и запускает. Возможны 3 ситуации: 1. Программа найдена, в командной строке через пробелы указаны спецификации по крайней мере двух файлов: NED T R GLUCK T,R,G M,D Это будет эквивалентно соответственно: R NED R GLUCK R=T M,D=T,R,G 2. Программа найдена, в командной строке - однобуквенные ключи, или есть знак =, или вообще неразбираемые символы. Программа запускается командой R, остаток командной строки передается ей без изменений. 3. Программа не найдена. Вот тут-то и вступает в дело UCL. Монитор ищет UCL.SAV на устройстве SY:, запускает его и передает ему всю коман- дную строку без изменений. Что же предпринимает UCL? Прежде всего на логическом устройстве UCL:, которое надо не забыть опре- делить (желательно в стартовом косвенном файле), он ищет файл UCL.DAT. Это текстовый файл, который можно редактировать редактором текста NED,K52, EDIK,EDK и прочими с нормальной кодировкой символов. Можно пользоваться редактором M08 (версия редактора MIM с кодировкой латинских букв, совмес- тимой с КОИ-7). Теперь программа ищет в прочитанном файле введенную команду, предварен- ную восклицательным знаком. Далее она анализирует введенные ключи и в соответствии с ними формирует командный файл. Правила следующие: - Обязательная часть команды или ключа кончается звездочкой. - Клопом $ обозначено любое после первого пробела продолжение команды, причем обычно это спецификация файла. Как вы видите из примера, клоп дол- жен быть указан как в начале определения команды, так и в каждом месте, где необходимо. Везде он будет замещаться введенным продолжением команды. - Строка, начинающаяся с косой черты /, определяет ключ: /<номер ключа><обязательная часть>*<необязательная часть>[:] - Если в конце ключа стоит двоеточие, это значит, что после этого ключа в командной строке указывается двоеточие и продолжение до пробела ана- логично $. Только теперь это продолжение попадает в командный файл под видом диеза # и по одному разу: - Первый встретившийся диез заменяется на вставку из ключа с цифрой 1 после косой черты. Второй - из второго, и т.д. - В теле командника ?0 означает, что текст до следующего знака ? включается в командник безусловно. - ?<цифра от 1 до 9> означает, что текст до следующего ? включается если есть ключ с соответствующим номером. - Текст определения очередной команды завершается !END<имя команды>[свернуть]
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)