А все-таки, что там с кодом 0х03 в командном файле? По-идее, этот код должен остановить исполняющуюся программу и система должна перейти к следу.щей... Где-то я такое видел.
А все-таки, что там с кодом 0х03 в командном файле? По-идее, этот код должен остановить исполняющуюся программу и система должна перейти к следу.щей... Где-то я такое видел.
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
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
походу есть много вариантов
https://mirrors.pdp-11.ru/search.php?text=ECHO.sav
Все о БК ДВК УКНЦ VAX Alpha
Архив ПО для ретрокомпьютеров
предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах
В командном файле не нужен код 0x03.
Там пишется просто "^C" текстом, и это интерпретируется как CTRL/C (кроме специального режима в котором происходит приостанов командного файла с целью ввода с термнала [VKMON например в командном режиме так поступает]).Код:R MACRO A=A ^C R LINK A=A ^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
Разумеется.
"^C" работает только на CSI ввод и завершает программу.
Завершения самого командного файла DCL до его конца не предусмотрено, да и бесполезно - зачем в принципе писать команды после того места где он должен завершиться - файл-то выполняется пеоследовательно без какого-либо управления.
Если нужны какие-то условные действия - на это есть IND - там и завершить выполнение можно в любом месте.
- - - Добавлено - - -
В порядке бреда
Способ прервать выполнение командного файла DCL:Формально, это не завершение, но после этих команд выполнение остановится.Код:D 44=4000 D 510=1,0 D 1000=5000,104350 ST 1000
Можно оформить в виде программы - тогда будет одна команда.
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 начиная с версии 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 тоже есть, но особой популярностью не пользовался.
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
hobot(13.09.2020)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)