В командной строке CSI передаются максимум шесть файлов. Если надо больше, то программы обычно поддерживают ключ //.
А зачем такие сложности. Лучше в RT-11 собрать, удобнее.
Код:LIBRARY Создание и обслуживание объектных и макро библиотек SYNTAX LIBRARY[/OPTIONS] библиотека файлы[/OPTIONS] SEMANTICS Библиотека - имя библиотечного файла, который создает или модифицируется. Файлы содержат имена файлов разделенных запятыми (,). По умолчанию тип выходного файла для листинга .LST, .MLB для макробиблиотек, и .OBJ для объектных библиотек. По умолчанию типы входных файлов .OBJ и .MAC. OPTIONS ALLOCATE:размер Резервирует место для выходного файла CREATE Создает новую объектную библиотеку DELETE Удаляет объектный модуль из библиотеки EXTRACT Извлекает объектный модуль из библиотеки и сохраняет его в OBJ-файле INSERT Вставляет объектный модуль в библиотеку LIST[:файл] Выводит каталог объектной библиотеки MACRO Создает макробиблиотеку NOOBJECT Запрещает создавать новую объектную библиотеку OBJECT[:файл] Задает имя объектной библиотеки PROMPT Выдать приглашение программы LIBR, для ввода большо числа имен файлов (более шести). Завершается вводом // REMOVE Удаляет заданный глобальный символ (и соответствующий модуль) из каталога библиотеки REPLACE Замещает существующий модуль более новым UPDATE Комбинация ключей /INSERT и /REPLACE EXAMPLES LIBRARY/CREATE NEWLIB FIRST,SECOND LIBRARY/EXTRACT NEWLIB MZ1:ATAN LIBRARY/INSERT/OBJECT:NEWLIB OLDLIB THIRD,FOURTH LIBRARY/LIST:TT: OLDLIB
nzeemin(10.03.2020), Oleg N. Cher(07.03.2020)
Я так думаю, тут вопрос в том, что есть команда RT LIBRARY (сокращённый вариант написания LIBR), а есть программа LIBR.SAV (которая запускается командой LIBRARY с передачей параметров). И если ввести LIBR - то это обращение к команде, а если R LIBR или RUN LIBR - то это запуск программы LIBR.SAV (если команда RUN LIBR FILE1 FILE2 - то это ещё и передача в LIBR .SAV строки команды LIBR2=LIBR1, то по сути это запуск в таком виде RUN LIBR FILE2=FILE1)
Oleg N. Cher(07.03.2020)
Осилил реализацию Palette и SetPalette. Критика очень приветствуется.
Хотел сделать в Palette BICB #3, 2(SP) вместо TSTB 2(SP), но похоже, что оно не устанавливает флаг нуля. Или надо писать BICB 2(SP), #3 ? Или это у меня MACRO неправильный? Так нормальный же. Этот же тот, что в эмуль Патрона вшит.Код:PROCEDURE Palette (n: INTEGER); BEGIN /*$C .TITLE CG004 MOV #^O146000, R0 ; #CC00 MOV #^O167252, R1 ; #EEAA TSTB 2(SP) BEQ PALET$ MOV #^O135631, R0 ; #BB99 MOV #^O177735, R1 ; #FFDD DEC 2(SP) BEQ PALET$ MOV #^O42000, R0 ; #4400 MOV #^O21146, R1 ; #2266 DEC 2(SP) BEQ PALET$ MOV #^O31421, R0 ; #3311 MOV #^O73525, R1 ; #7755 PALET$: CALL PALET */ END {Palette}; /*------------------------------- Cut here --------------------------------*/ PROCEDURE SetPalette (c0, c1, c2, c3: INTEGER); BEGIN /*$C .TITLE CG005 BICB 8(SP), #^O17 BICB 6(SP), #^O17 MOVB 6(SP), R0 ASH #4, R0 ADD 6(SP), R0 ASH #4, R0 ADD 8(SP), R0 ASH #4, R0 ADD 8(SP), R0 BICB 4(SP), #^O17 BICB 2(SP), #^O17 MOVB 2(SP), R1 ASH #4, R1 ADD 2(SP), R1 ASH #4, R1 ADD 4(SP), R1 ASH #4, R1 ADD 4(SP), R1 CALL PALET */ END {SetPalette}; /*$C .GLOBL NEWPAL .GLOBL PALET PALET: MOV R0, NEWPAL MOV R1, NEWPAL+2 MOV #BUF0, R0 MOV #5, R1 MTPS #^O200 BR 2$ 1$: MOVB (R0)+, @#^O176676 2$: TSTB @#^O176674 BPL 2$ SOB R1, 1$ MTPS #0 RETURN BLK: .WORD ^O20*^O400, ^O32, ^O2470, NEWPAL, 2 BUF0: .WORD BLK, -1 NEWPAL: .WORD ^B1110111011001100, ^B1010101010001000 */
Кстати, мне так и не ответили по поводу: на PDP-11 какие операции более быстрые - с байтами или со словами?
2 NZeemin: есть основания предположить, что Ваша утилитка rt11dsk [Jan 18 2020 07:46:18] не работает в Windows 10. Вы её там тестировали? Интересует ли больше информации по этому вопросу?
Блог : http://collectingrd.kxk.ru/ . В ЛС прошу не писать, все сообщения MMTEMA@MAIL.RU
Oleg N. Cher(11.03.2020)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
hobot(11.03.2020)
Лежащий на стеке по заданному смещению байт маскируется по AND #F, т.е. выделяются 4 младших бита. Это так и работает, проверено. Тут было упомянуто, что надо поменять операнды местами, но если так сделать, тогда не работает.
- - - Добавлено - - -
Уже юзаю, спасибо. Мне из батника нужно.
Oleg N. Cher(11.03.2020)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)