
Сообщение от
MM
вполне реально.
Но делать её придется с помощью DESS.
И делается штатной сборкой...
- - - Добавлено - - -

Сообщение от
hobot
улучшить
Улучшить можно многое. Например опросить тип терминала сначала чтобы очищать не только VT52. Как вариант - не опрашивать терминал, но проверить значение редактора по умлчанию и в зависимости от K52/KED считать VT52/ANSI. А для TSX буде таковой обнаружится просто прочитать значение терминала.
- - - Добавлено - - -
Собственно пример - определение типа терминала в TSX, предположение типа в RT-11 по редактору, очистка экрана. Все в 1 блок без всяких DESS 
Код:
.TY ERA.MAC
.TITLE ERASE -- ERASE VT52/ANSI TERMINAL SCREEN
.IDENT /V01.00/
$JSW =: 44 ;JOB STATUS WORD
CHAIN$ =: 400 ;CHAIN BIT
$PROGD =: 452 ;DEFAULT EDITOR OFFSET
$$KED =: 22 ;KED EDITOR
$$K52 =: 23 ;K52 EDITOR
$$KEX =: 24 ;KEX EDITOR
T.VT52 =: 1 ;VT52 TERTMINAL
T.VT100 =: 2 ;VT100 TERMINAL
T.VT200 =: 11 ;VT200 TERMINAL
ESC =: 33 ;ECSAPE
EOL =: 200 ;END OF LINE (NO CRLF)
.MCALL .EXIT,.GVAL,.PRINT,.SERR;SYSTEM MACRO CALLS
.ASECT
.=$JSW
.WORD CHAIN$ ;LOAD WORDS 500-777 FROM IMAGE
.=500
START:: .SERR ;CATCH INVALID EMT EXCEPTION
MOV #AREA,R0 ;DETERMINE TSX TERMINAL TYPE
EMT 375 ;
BCS 20$ ;IF CS NOT A TSX SYSTEM
CMP #T.VT52,R0 ;VT52?
BEQ 40$ ;IF EQ YES
CMP #T.VT100,R0 ;VT100?
BEQ 30$ ;IF EQ YES
CMP #T.VT200,R0 ;VT200?
BEQ 30$ ;IF EQ YES
10$: CLR R0 ;ENFORCE HARD RESET
.EXIT ;EXIT
20$: .GVAL #AREA,#$PROGD ;GET DEFAULT EDITOR
CMPB #$$K52,R0 ;K52?
BEQ 40$ ;IF EQ YES
CMPB #$$KED,R0 ;KED?
BEQ 30$ ;IF EQ YES
CMPB #$$KEX,R0 ;KEX?
BNE 10$ ;IF NE NO
30$: MOV #ANSI,R0 ;ANSI ESCAPE SEQUENCE
BR 50$ ;
40$: MOV #VT52,R0 ;VT52 ESCAPE SEQUENCE
50$: .PRINT ;CLEAR THE SCREEN
BR 10$ ;EXIT
AREA: .BYTE 0,137 ;EMT AREA
.BLKW ;
VT52: .ASCIZ <ESC>/H/<ESC>/J/<EOL> ;VT52 SEQUENCE
ANSI: .ASCIZ <ESC>/[H/<ESC>/[J/<EOL> ;ANSI SEQUENCE
.END START
.BU ERA
.DIR ERA.SAV
05-Mar-2016
ERA .SAV 1 05-Mar-2016
1 Files, 1 Blocks
29990 Free blocks
.