Цитата Сообщение от hobot Посмотреть сообщение
столько всего полезного
До кучи - может кому пригодится. Пример как делать поиск файлов в каталоге диска, используя только те средтва которые уже есть в системе. Используются функции IGTDIR и IGTENTиз системной библиотеки. Их описание можно найти на bitsavers или у меня в документации по системной библиотеке RT-11. Никаких наворотов-красивостей - только пример, рабочий

Код:
	MOV     #ARGS1,R5
        CALL    IGTDIR
        TST     R0
        BNE     20$
Вызов функции IGTDIR из системмной библиотеки. Аналогичен форановскму IERR = IGTDIR(64,AREA,0,SEG,,DBLK,FILSPC). Если IERR (R0) не равен нулю - была ошибка.
Код:
10$:    MOV     #ARGS2,R5
        CALL    IGTENT
        TST     R0
        BLT     30$
Аналогично фортрановскому IERR = IGTENT(AREA,ENTRY,,BLOCK). Если результат меньше 0, больше искать нечего. В противном случае в 7-словыный массив ENTRY получаем запись каталога о файле в стандартном RT-11 формате.
Код:
        MOV     #ENTRY+2,R0
        MOV     #FMTARG,R1
        CLR     (R1)+
        MOV     (R0)+,(R1)+
        MOV     (R0)+,(R1)+
        MOV     (R0)+,(R1)+
        CLR     (R1)+
        MOV     (R0)+,(R1)+
        MOV     #BUFF,R0
        MOV     #FORMAT,R1
        MOV     #FMTARG,R2
        CALL    $EDMSG
        CLRB    @R0
        .PRINT  #BUFF
        BR      10$
Копируем данные в блок аргументов $EDMSG, печатаем, идем дальше...
Код:
20$:    .PRINT  #ERROR
30$:    CLR     R0
        .EXIT
Обработка ошибок, выход.
Код:
ARGS1:  .WORD   7,SIZE,AREA,CHAN,SEG,-1,DBLK,FILSPC
SIZE:   .WORD   64.
AREA:   .BLKW   64.
CHAN:   .WORD   0
SEG:    .BLKW   512.
DBLK:   .RAD50  /SY          /

ARGS2:  .WORD   5,AREA,ENTRY,-1,BLOCK
ENTRY:  .BLKW   7
BLOCK:  .BLKW

FMTARG: .BLKW   6
FORMAT: .ASCIZ  /%11<%X%11>%M./

ERROR:  .ASCIZ  /IGTDIR FAILED/

FILSPC: .ASCIZ  /.TXT,%%.SYS,UCL.*/

BUFF:   .BLKB   40.

        .END    START
Собственно все. FILSPC содержит список файлов которые нужно искать, со всякими *, % (ну и как обычно, опущенное поле считается за *), не более 8 спецификаций через запятую. Другие подробности в RT-11 System Subroutine Library Manual. Программа для простоты использует RSXLIB, описание его здесь.
Код:
.RU GTDIR
DD.SYS     5.
DU.SYS     11.
EQ.SYS     10.
LD.SYS     11.
LP.SYS     2.
LS.SYS     5.
MU.SYS     14.
NL.SYS     2.
SD.SYS     24.
SL.SYS     17.
SP.SYS     7.
VM.SYS     3.
XL.SYS     4.
UCL.SAV    16.
UCL.DAT    9.
CUSTOM.TXT 14.
V5NOTE.TXT 36.

.