В RT-11 начиная с версии 5.0 входит IND процессор, позволяющий кроме выполнения команд, писать достаточно навороченные программы.
Описание его можно найти здесь.
- - - Добавлено - - -
Пример командного файла IND для RT-11 (на самом деле он тут универсальный для многих систем, в том числе RT-11)
Скрытый текст
Код:.ENABLE SUBSTITUTION ; ; IOSCAN V4.0 generation program. ; .IF <SYSTEM> <> 1 .GOTO 10 .SETS SYSTEM "RSX-11M" .SETS RSXSTB "LB:'<SYSUIC>'RSX11M.STB" .SETS RSXMC "LB:[11,10]RSXMC" .SETS EXEMC "LB:[1,1]EXEMC" .SETF MPLVEC .SETF POSVEC .GOTO BLDRS .10: .IF <SYSTEM> <> 6 .GOTO 20 .SETS SYSTEM "RSX-11M-PLUS or Micro/RSX" .SETS RSXSTB "LB:'<LIBUIC>'RSXVEC.STB" .SETS RSXMC "LB:[11,10]RSXMC" .SETS EXEMC "LB:[1,1]EXEMC" .SETT MPLVEC .SETF POSVEC .GOTO BLDRS .20: .IF <SYSTEM> <> 11 .GOTO 30 .SETS SYSTEM "P/OS" .SETS RSXSTB "LB:[1,5]POS.STB" .SETS RSXMC "LB:[1,5]RSXMC" .SETS EXEMC "LB:[1,5]EXEMC" .SETF MPLVEC .SETT POSVEC .GOTO BLDRS .30: .IF <SYSTEM> <> 7 .IF <SYSTEM> <> 10 .GOTO NOSUP .SETS SYSTEM "RT-11" .GOTO BLDRT .NOSUP: ; Running on unsupported operating system ; .EXIT <ERROR> .BLDRT: ; Running on RT-11 system. ; ; Building programs: ; IOSCAN.BIN - IOSCAN for XXDP/XXDP+ ; IOSCAN.BOT - standalone IOSCAN (magtape bootstrap) ; IOSCAN.LDA - standalone IOSCAN (absolute loader format) ; IOSCAN.PDP - standalone IOSCAN ; IOSCAN.PPU - standalone IOSCAN (PRUN format for MC0511) ; IOSCAN.SAV - IOSCAN for RT-11 ; .SETS FILES "SY:MACRO.SAV SY:LINK.SAV SY:SPLIT.SAV" .GOSUB FILTST MAC IOSCAN .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> MAC IOSPP .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> MAC IOSRT .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> MAC IOSST .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> MAC IOSXDP .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> LIN/FOR/EXE:IOSCAN.PPU IOSPP,IOSCAN .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> LIN/EXE:IOSCAN IOSRT,IOSCAN .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> LIN/LDA/EXE:IOSCAN IOSST,IOSCAN .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> LIN/LDA/EXE:IOSCAN.BIN IOSXDP,IOSCAN .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> LIN/EXE:IOSCAN.BOT IOSST,IOSCAN .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> SPLIT IOSCAN.BOT/B:1 ,IOSCAN.BIN .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> DEL/NOQ IOS(CAN,PP,RT,ST,XDP).OBJ .EXIT <EXSTAT> .BLDRS: .SETS TSK "this 'SYSTEM' system only" .IFT MPLVEC .OR .IFT POSVEC .SETS TSK "any 'SYSTEM' system" ; Running on 'SYSTEM' system. ; ; Building programs: ; IOSCAN.TSK - IOSCAN for 'TSK' ; .SETS CLI "MCR" .IFDF <CLI> .SETS CLI <CLI> .SETF DCL .IF CLI = "MCR" .GOTO COMPL .SETT DCL .IF CLI = "DCL" .GOTO COMPL ; Unsupported CLI - 'CLI' -- use MCR or DCL to build IOSCAN ; .EXIT <ERROR> .COMPL: .SETS FILES "'RSXSTB' 'RSXMC'.MAC 'EXEMC'.MLB" .GOSUB FILTST .SETS DIR <UIC> .IFDF <DIRECT> .SETS DIR <DIRECT> .OPEN IOSCANPRE.MAC .IFT MPLVEC .DATA IO$MPL = 0 ;M+ exec vector support .IFT POSVEC .DATA IO$POS = 0 ;P/OS exec vector .IFF MPLVEC .IFF POSVEC .DATA ;No exec vector support .CLOSE .OPEN IOSCANASM.CMD .DATA IOSCAN=IOSCAN .DATA IOSRSX='EXEMC'/ML,'RSXMC'/PA:1,SY:'DIR'IOSCANPRE,IOSRSX .CLOSE .OPEN IOSCANBLD.CMD .DATA IOSCAN/PR:5=IOSRSX,IOSCAN .DATA 'RSXSTB'/SS .DATA / .DATA ASG=TI:1 .DATA UNITS=1 .DATA // .CLOSE .GOSUB TSKTST MAC @IOSCANASM .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> .IFT DCL LIN @IOSCANBLD .IFF DCL TKB @IOSCANBLD .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> .IFT DCL DEL/NOWAR IOSCANPRE.MAC;*,IOSCANASM.CMD;*,IOSCANBLD.CMD;* .IFT DCL DEL/NOWAR IOSCAN.OBJ;*,IOSRSX.OBJ;* .IFT DCL PUR/NOWAR IOSCAN.TSK .IFF DCL PIP IOSCANPRE.MAC;*,IOSCANASM.CMD;*,IOSCANBLD.CMD;*/DE/NM .IFF DCL PIP IOSCAN.OBJ;*,IOSRSX.OBJ;*/DE/NM .IFF DCL PIP IOSCAN.TSK/PU .EXIT <EXSTAT> .FILTST: .SETF MISS .100: .PARSE FILES " " FILE FILES .TESTFILE 'FILE' .IF <FILERR> = 1 .GOTO 110 .SETT MISS ; File not found - 'FILE' .110: .IF FILES <> "" .GOTO 100 .IFT MISS ; .IFF MISS .RETURN .EXIT <ERROR> .TSKTST: .IFINS ...PIP .GOTO 200 INS $PIP .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> .200: .IF <SYSTEM> <> 11 .IFINS ...MAC .GOTO 210 .IF <SYSTEM> <> 11 INS $MAC .IF <SYSTEM> = 11 .IFINS ...PMA .GOTO 210 .IF <SYSTEM> = 11 INS $PMA .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> .210: .IF <SYSTEM> <> 11 .IFINS ...TKB .GOTO 220 .IF <SYSTEM> <> 11 INS $TKB .IF <SYSTEM> = 11 .IFINS ...PAB .GOTO 220 .IF <SYSTEM> = 11 INS $PAB .IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT> .220: .RETURN[свернуть]
- - - Добавлено - - -
Обработка вывода из программ - это немного из другой оперы - это ближе к BATCH процессору.
Он в RT-11 тоже есть, но особой популярностью не пользовался.





Ответить с цитированием