| Below is vtprint.com - a DCL com file I use to send pictures from VMS to
the terminal or terminal emulator's printer port. Any decent VT
terminal emulator should support a printer port since that is part of
the terminal they are emulating. I've not used Handshake so I don't
know if it offers this.
To use:
$ @vtprint vms_text_or_picture_file
$!===============================\ /==================================
$ TITLE = "VTPRINT"
$!===============================/ \==================================
$ VERSION = "version 7.2"
$ REV_DATE= "10-Oct-1989"
$ AUTHOR = "R. T. Belanger"
$!
$ ON CONTROL THEN GOTO PORTOFF
$ ON ERROR THEN GOTO PORTOFF
$ abort_on_control = 0
$ W := WRITE SYS$OUTPUT
$ wait_time := 00:00:05
$ page_size = 0
$ IF p2 .EQS. "LINES" THEN page_size = p1
$ IF p2 .EQS. "LINES" THEN p1 = ""
$ IF p3 .NES. "" .AND. p1 .EQS. "" THEN p1 = p3
$ IF p2 .NES. "LINES" .AND. p2 .NES. "" THEN page_size = p2
$ DCS[0,8]= %X90
$ ST[0,8] = %X9C
$ CSI[0,8]= %X9B
$ ESC[0,8]= %X1B
$ FF[0,8] = %X0C
$ LF[0,8] = %X0A
$ BEL[0,8]= %X07
$ PFS = "?"
$ PROP = "?"
$ FONT = "?"
$ GSS = "?"
$ LQUAL = " ? "
$ QU = "?"
$ SAVEWID = f$getdvi("TT:","DEVBUFSIZ")
$ WIDTH = SAVEWID
$ H_PITCH = " ?"
$ IF WIDTH .GT. 80 THEN H_PITCH = "16"
$ HP = "?"
$ IF WIDTH .GT. 80 THEN HP = "4"
$ V_PITCH = " ?"
$ VP = "?"
$ WRAP = "NOWRAP"
$ WR = "OFF "
$ IF f$getdvi("TT:","TT_WRAP") THEN WRAP = "WRAP "
$ IF WRAP .EQS. "WRAP " THEN WR = "ON "
$ SAVEWRAP = WRAP
$ BROAD = "ON "
$ IF f$getdvi("TT:","TT_NOBRDCST") THEN BROAD = "OFF"
$!
$ cmd1 = "PRINT"
$ len1 = F$LENGTH(cmd1)
$ ITEMS = 0
$ files = 0
$ filename'files' = P1
$ IF filename'files' .NES. "" THEN GOTO PRINT1
$ GOTO INIT
$!=========================================================================<01>=
$OPEN_PORT:
$ SET TERM/FORM/NOBROADCAST
$ string = ESC+"[5i"
$ if QU .NES. "?" then string = string + ESC+"[''QU'""z"
$ if HP .NES. "?" then string = string + ESC+"[''HP'w"
$ if VP .NES. "?" then string = string + ESC+"[''VP'z"
$ W string
$ return
$!=========================================================================<02>=
$!
$!=========================================================================<02>=
$INIT: W ESC,"[2J"
$ W ESC,"[8;16H",ESC,"#6",TITLE,ESC,"[10;32H",VERSION,ESC,"[1;22r"
$!BEGIN: W ESC,"[23H",ESC,"[0;7m Print Multi REGIS Lqual:",LQUAL," H_Pitch:",H_PITCH,-
$! " V_Pitch:",V_PITCH," Wrap:",WR,"LN03 Page Help Exit<>",ESC,"[0m"
$ BEGIN: W ESC,"[23H",ESC,"[0;7m Print Multi Lqual:",LQUAL," H_Pitch:",H_PITCH,-
" V_Pitch:",V_PITCH," Wrap:",WR," LN03 Help Exit<>",ESC,"[0m"
$START: W ESC,"[24H",ESC,"[K"
$ IF BROAD .EQS. "ON " THEN SET TERM/BROADCAST
$ abort_on_control = 1
$ READ/PROMPT=" Command : "/end=end SYS$COMMAND cmd
$ cmd = F$EDIT(cmd,"TRIM,UPCASE")
$ abort_on_control = 0
$ len = F$LENGTH(cmd)
$ cmd1 = F$EXTRACT(0,F$LOCATE(" ",cmd),cmd)
$ len1 = F$LENGTH(cmd1)
$ cmd2 = F$EDIT(cmd - cmd1,"TRIM")
$ len2 = F$LENGTH(cmd2)
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"" ) THEN GOTO INIT
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"UNI" ) THEN GOTO UNI
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"BI" ) THEN GOTO BI
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"PRINT" ) THEN GOTO PRINT
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"MULTI" ) THEN GOTO MULTI
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"TYPE" ) THEN GOTO TYPE
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"REGIS" ) THEN GOTO REGIS
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"DCL" ) THEN GOTO DCL
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"FF" ) THEN GOTO TOF
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"LQUAL" ) THEN GOTO LQUAL
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"SCREEN" ) THEN GOTO WIDTH
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"H_PITCH") THEN GOTO H_PITCH
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"V_PITCH") THEN GOTO V_PITCH
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"PAGE" ) THEN GOTO PAGE
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"WRAP" ) THEN GOTO WRAP
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"HELP" ) THEN GOTO HELP
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"LNO3" ) THEN GOTO LN03
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"LN03" ) THEN GOTO LN03
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"LPFS" ) THEN GOTO LPFS
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"LMP" ) THEN GOTO LMP
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"LSUM" ) THEN GOTO LSUM
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"LRES" ) THEN GOTO LRES
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"LSHO" ) THEN GOTO LSHO
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"FONT" ) THEN GOTO FONT
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"GSS" ) THEN GOTO GSS
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"EXIT" ) THEN GOTO END
$UNREC: W BEL," Command : ",cmd," - unrecognized command"
$ WAIT 0:00:01
$ GOTO START
$!=========================================================================<03>=
$TOF: SET TERM/FORM/NOBROADCAST
$ W ESC,"[5i",FF,ESC,"[4i"
$ GOTO START
$!=========================================================================<03>=
$LMP: SET TERM/FORM/NOBROADCAST
$ IF PROP .EQS. "h" THEN GOTO LPR1
$ PROP = "h"
$ GOTO LPR2
$LPR1: PROP = "l"
$LPR2: W ESC,"[5i",ESC,"[?27''PROP'",ESC,"[4i"
$ GOTO LN03
$!=========================================================================<03>=
$LPFS: SET TERM/FORM/NOBROADCAST
$ IF PFS .EQS. "0" THEN GOTO LPF1
$ PFS = "0"
$ GOTO LPF2
$LPF1: PFS = "1"
$LPF2: W ESC,"[5i",ESC,"[''PFS' J",ESC,"[4i"
$ GOTO LN03
$!=========================================================================<03>=
$LSUM: SET TERM/FORM/NOBROADCAST
$ W ESC,"[5i",DCS,"0;0;0y",ST,ESC,"[4i"
$ GOTO START
$!=========================================================================<03>=
$LRES: SET TERM/FORM/NOBROADCAST
$ W ESC,"[5i",ESC,"c",ST,ESC,"[4i"
$ PFS = "0"
$ PROP = "l"
$ FONT = "10"
$ GSS = 10
$ GOTO LN03
$!=========================================================================<03>=
$LSHO: SET TERM/FORM/NOBROADCAST
$ W ESC,"[5i"
$ W CSI,"10m10 ''ESC'[?27lAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890"
$ W CSI,"10m10 ''ESC'[?27hAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890",LF
$ W CSI,"11m11 ''ESC'[?27lAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890"
$ W CSI,"11m11 ''ESC'[?27hAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890",LF
$ W CSI,"12m12 ''ESC'[?27lAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890"
$ W CSI,"12m12 ''ESC'[?27hAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890",LF
$ W CSI,"13m13 ''ESC'[?27lAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890"
$ W CSI,"13m13 ''ESC'[?27hAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890",LF
$ W CSI,"14m14 ''ESC'[?27lAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890"
$ W CSI,"14m14 ''ESC'[?27hAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890",LF
$ W CSI,"15m15 ''ESC'[?27lAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890"
$ W CSI,"15m15 ''ESC'[?27hAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890",LF
$ W CSI,"16m16 ''ESC'[?27lAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890"
$ W CSI,"16m16 ''ESC'[?27hAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890",LF
$ W CSI,"17m17 ''ESC'[?27lAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890"
$ W CSI,"17m17 ''ESC'[?27hAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890",LF
$ W CSI,"18m18 ''ESC'[?27lAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890"
$ W CSI,"18m18 ''ESC'[?27hAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890",LF
$ W CSI,"19m19 ''ESC'[?27lAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890"
$ W CSI,"19m19 ''ESC'[?27hAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp - 1234567890"
$ W CSI,"''font'm''ESC'[27''PROP'",FF,ESC,"[4i"
$ GOTO START
$!=========================================================================<03>=
$FONT: SAVE = FONT
$ FONT = cmd2
$ IF len2 .GT. 0 THEN GOTO FNT_1
$FN_ASK:W ESC,"[24H",ESC,"[K"
$ READ SYS$COMMAND/PROMPT="<FONT> [10 - 19] : " FONT
$FNT_1: IF FONT .EQS. "" then FONT = SAVE
$ IF FONT .EQS. SAVE then GOTO START
$ IF font .LT. 10 THEN GOTO FN_ASK
$ IF font .GT. 19 THEN GOTO FN_ASK
$ SET TERM/FORM/NOBROADCAST
$ W ESC,"[5i",CSI,"''font'm",ESC,"[4i"
$ GOTO LN03
$!=========================================================================<03>=
$GSS: SAVE = GSS
$ GSS = cmd2
$ IF len2 .GT. 0 THEN GOTO GS_1
$GS_ASK:W ESC,"[24H",ESC,"[K"
$ READ SYS$COMMAND/PROMPT="<GSS> Input font size [8 - 24] : " GSS
$GS_1: IF GSS .EQS. "" then GSS = SAVE
$ IF GSS .EQS. SAVE then GOTO START
$ IF GSS .LT. 8 THEN GOTO GS_ASK
$ IF GSS .GT. 24 THEN GOTO GS_ASK
$ GSS10 = GSS * 10
$ W ESC,"[5i",CSI,"''GSS10' C",ESC,"[4i"
$ GOTO LN03
$!=========================================================================<03>=
$!=========================================================================<03>=
$!=========================================================================<03>=
$LQUAL: SAVE = QU
$ W ESC,"[24H",ESC,"[K"
$ READ SYS$COMMAND/PROMPT=" <Print Quality> (1=Draft, 2=Letter, 3=Memo, 4=Near Letter Quality) : " QU
$ IF QU .EQ. 1 then LQUAL = "DRFT"
$ IF QU .EQ. 1 then goto END_LQ
$ IF QU .EQ. 2 then LQUAL = "LTTR"
$ IF QU .EQ. 2 then goto END_LQ
$ IF QU .EQ. 3 then LQUAL = "MEMO
$ IF QU .EQ. 3 then goto END_LQ
$ IF QU .EQ. 4 then LQUAL = "NLQ "
$ IF QU .EQ. 4 then goto END_LQ
$ IF QU .EQS. "" then QU = SAVE
$ IF QU .EQS. "?" then goto BEGIN
$ goto lqual
$END_LQ:W ESC,"[5i",ESC,"[",QU,"""z",ESC,"[4i"
$ GOTO BEGIN
$!=========================================================================<04>=
$!
$!=========================================================================<04>=
$UNI: W " Changing mode to unidirectional printing ..."
$ W ESC,"[5i",ESC,"[?41h",ESC,"[4i"
$ WAIT 0:00:01
$ GOTO START
$BI: W " Changing mode to bidirectional printing ..."
$ W ESC,"[5i",ESC,"[?41l",ESC,"[4i"
$ WAIT 0:00:01
$ GOTO START
$!=========================================================================<05>=
$PRINT: filename'files' = cmd2
$ IF len2 .GT. 0 THEN GOTO PRINT1
$ W ESC,"[K"
$ READ SYS$COMMAND/PROMPT = " <PRINT> File: " filename'files'
$ IF filename'files' .EQS. "" THEN GOTO START
$PRINT1:
$ filename_0 = filename'files'
$ AT_FLAG = 1
$ if f$locate("@",filename_0) .LT. f$length(filename_0) then goto MU_XX
$ found = F$SEARCH("''filename_0'")
$ IF (found .NES. "" .OR. P1 .EQS. "FF") .AND. (P1 .NES. "") THEN GOTO PRINT_IT
$ IF found .NES. "" .OR. filename_0 .EQS. "FF" THEN GOTO PRINT_OK
$ W BEL," '",filename_0,"' not found"
$ IF P1 .NES. "" THEN GOTO STOP
$ WAIT 0:00:01
$ len2 = 0
$ GOTO PRINT
$PRINT_OK:
$ W ESC,"[20H"
$PRINT_IT:
$ SET TERM/FORM/NOBROADCAST
$ GOSUB OPEN_PORT
$OPEN/READ filin 'filename_0'
$PR_0:lines = 0
$PR_NEXT: READ filin line /end_of_file=DONE
$W line
$lines = lines + 1
$IF lines .NE. page_size THEN GOTO PR_NEXT
$W FF
$GOTO PR_0
$!DONE: WAIT 'wait_time'
$DONE: CLOSE filin
$ W FF,ESC,"[4i"
$ IF P1 .NES. "" THEN GOTO STOP
$ GOTO START
$!=========================================================================<06>=
$MULTI: FILES = 0
$ ITEMS = 0
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"PRINT" ) THEN GOTO MU_XX
$ goto AT_ZERO
$CLOSE_M:close filein
$ IF cmd1 .EQS. F$EXTRACT(0,len1,"PRINT" ) THEN GOTO MULTI_END
$AT_ZERO:AT_FLAG = 0
$MULTI_INQUIRE:
$ W ESC,"[24H",ESC,"[K"
$ if AT_FLAG .EQ. 0 then READ SYS$COMMAND/PROMPT=" <MULTI> File : " filename'files'
$ if AT_FLAG .NE. 0 then read/end_of_file=CLOSE_M filein filename'files'
$ if AT_FLAG .NE. 0 .AND. filename'files' .EQS. "" then goto MULTI_INQUIRE
$ filename'files' = f$edit(filename'files', "UPCASE")
$MU_XX: if f$locate("@",filename'files') .EQ. f$length(filename'files') then-
goto NO_AT
$ filename'files' = filename'files' - "@"
$ filename_files = filename'files'
$ open/read/end_of_file=CLOSE_M filein 'filename_files'
$ AT_FLAG = 1
$ goto multi_inquire
$!
$NO_AT: IF filename'files' .EQS. "" THEN GOTO MULTI_END
$ found = F$SEARCH(filename'files')
$ IF found .NES. "" .OR. filename'files' .EQS. "FF" THEN GOTO MULTI_OK
$ W BEL," '",filename'files',"' Not found"
$ WAIT 0:00:01
$ GOTO MULTI_INQUIRE
$MULTI_OK:
$ IF found .NES. "" THEN ITEMS = ITEMS + 1
$ IF found .NES. "" THEN W ESC,"[22H",ITEMS,": ",filename'files'
$ IF found .EQS. "" THEN W ESC,"[22H <Form Feed>"
$ FILES = FILES + 1
$ GOTO MULTI_INQUIRE
$MULTI_END:
$ W ESC,"[21H"
$ SET TERM/FORM/NOBROADCAST
$ GOSUB OPEN_PORT
$ file = 0
$MULTI_NEXT:
$ filename_file = filename'file'
$ IF filename_file .NES. "FF" THEN TYPE 'filename_file'
$ IF filename_file .EQS. "FF" THEN W FF
$ file = file + 1
$ if file .LT. files then goto multi_next
$ W FF,ESC,"[4i"
$ WAIT 'wait_time'
$ IF P1 .NES. "" THEN GOTO STOP
$ GOTO START
$!=========================================================================<07>=
$TYPE: filename = cmd2
$ IF len2 .GT. 0 THEN GOTO TYPE1
$ W ESC,"[24H",ESC,"[K"
$ READ SYS$COMMAND/PROMPT= <Type> File : " filename
$ IF filename .EQS. "" THEN GOTO START
$TYPE1: found = F$SEARCH(filename)
$ IF found .NES. "" THEN GOTO TYPEOK
$ W BEL," '",filename,"' not found"
$ len2 = 0
$ WAIT 0:00:01
$ GOTO TYPE
$TYPEOK:W ESC,"[21H"
$ TYPE 'filename'
$ GOTO START
$!=========================================================================<08>=
$DCL: prompt = f$environment("prompt") ! user's prompt
$ IF f$getjpi("","PRCLM") .EQ. 0 THEN GOTO UNREC
$ DCL_cmd = cmd2
$ IF len2 .GT. 0 THEN GOTO DCL1
$ W ESC,"[24H",ESC,"[K"
$ READ SYS$COMMAND /PROMPT=" <DCL> Enter DCL Command: " DCL_cmd
$ IF DCL_cmd .EQS. "" THEN GOTO START
$DCL1: W ESC,"[22H''prompt'",DCL_cmd
$ 'DCL_cmd'
$ GOTO START
$!=========================================================================<09>=
$!
$!=========================================================================<09>=
$REGIS: filename = cmd2
$ IF len2 .GT. 0 THEN GOTO REGIS1
$ W ESC,"[K"
$ READ SYS$COMMAND/PROMPT = " <ReGIS> File: " filename
$ IF filename .EQS. "" THEN GOTO START
$REGIS1:found = F$SEARCH(filename)
$ IF found .NES. "" THEN GOTO REGIS_OK
$ W BEL," '",filename,"' not found"
$ WAIT 0:00:01
$ len2 = 0
$ GOTO REGIS
$REGIS_OK:SET TERM/FORM/NOBROADCAST
$ W ESC,"[2J"
$ TYPE 'filename'
$ W ESC,"PpS(H)S(E)",ESC,"\",ESC,"[5i",FF,ESC,"[4i"
$ GOTO INIT
$!=========================================================================<10>=
$WRAP: IF WRAP .EQS. "NOWRAP" THEN GOTO WRAP_ON
$ WRAP = "NOWRAP"
$ WR = "OFF "
$ SET TERM/NOWRAP
$ GOTO BEGIN
$WRAP_ON:
$ WRAP = "WRAP "
$ WR = "ON "
$ SET TERM/WRAP
$ GOTO BEGIN
$!=========================================================================<11>=
$LN03: W " <LN03>",ESC,"[K"
$ W ESC,"[22H",ESC,"[K",ESC,"[1J",ESC,"[H"
$ W ESC,"[A","=============< ",TITLE," ",VERSION," ",REV_DATE," ",AUTHOR," >============="
$ W ""
$ IF prop .EQS. "?" THEN -
W "LMP ------ selects monospaced/proportional printing ..(?)
$ IF prop .EQS. "h" THEN -
W "LMP ------ selects monospaced/proportional printing ..(proportional)
$ IF prop .EQS. "l" THEN -
W "LMP ------ selects monospaced/proportional printing ..(monospaced)
$ IF PFS .EQS. "?" THEN -
W "LPFS ------ selects page mode portrait/landscape ......(?)
$ IF PFS .EQS. "0" THEN -
W "LPFS ------ selects page mode portrait/landscape ......(portrait)
$ IF PFS .EQS. "1" THEN -
W "LPFS ------ selects page mode portrait/landscape ......(landscape)
$ W "FONT ------ selects which font to use (SGR () ).......(",FONT,")"
$ W "GSS ------ graphic size selection (font size) ........(",GSS,")"
$ W "LSUM ------ prints a summary sheet on LN03"
$ W "LSHO ------ prints out a sample of fonts 10 - 19"
$ W "LRES ------ resets LN03 to initial state"
$ GOTO BEGIN
$!=========================================================================<11>=
$HELP: W " <Help>",ESC,"[K"
$ W ESC,"[22H",ESC,"[K",ESC,"[1J",ESC,"[H"
$ W ESC,"[A","=============< ",TITLE," ",VERSION," ",REV_DATE," ",AUTHOR," >============="
$ type sys$input
BI ------ selects bidirectional printing
DCL ----- allows VMS commands to be executed
H_PITCH - sets the number of horizontal characters/inch (normal = 12 char/inch)
LQUAL --- sets printing quality of an LAXX printer
MULTI --- outputs one or more files and/or form feeds to an LAXX printer
(use file-spec or @file-spec - for each formfeed enter FF)
PAGE ---- number of lines to insert a form feed after (initially disabled)
PRINT --- outputs one file (or form feed if filename is FF) to an LAXX printer
REGIS --- outputs a ReGIS graphic file to an LAXX printer
SCREEN -- changes terminal form 80 to 132 or 132 to 80
TYPE ---- outputs a text file to the screen only
UNI ----- selects unidirectional printing
V_PITCH - sets the number of lines/inch (normal = 6 lines/inch)
WRAP ---- sets screen to wrap mode (On) or no-wrap mode (Off)
LN03 ---- outputs LN03 help screen to the terminal
===< End of HELP >===[A
$ GOTO START
$!=========================================================================<12>=
$!
$!=========================================================================<12>=
$H_PITCH:SAVE = H_PITCH
$ H_PITCH = cmd2
$ IF len2 .GT. 0 THEN GOTO HP_1
$H_ASK: W ESC,"[24H",ESC,"[K"
$ READ SYS$COMMAND/prompt=" <HORIZONTAL PITCH> (5, 6, 8, [10], 12, 16) : " H_PITCH
$HP_1: IF H_PITCH .EQS. "" then H_PITCH = save
$ IF H_PITCH .EQS. " ?" then goto START
$ IF H_PITCH .EQ. 5 then HP = 5
$ IF H_PITCH .EQ. 5 then goto end_hp
$ IF H_PITCH .EQ. 6 then HP = 6
$ IF H_PITCH .EQ. 6 then goto end_hp
$ IF H_PITCH .EQ. 8 then HP = 8
$ IF H_PITCH .EQ. 8 then goto end_hp
$ IF H_PITCH .EQ. 10 then HP = 1
$ IF H_PITCH .EQ. 10 then goto end_hp
$ IF H_PITCH .EQ. 12 then HP = 2
$ IF H_PITCH .EQ. 12 then goto end_hp
$ IF H_PITCH .EQ. 16 then HP = 4
$ IF H_PITCH .EQ. 16 then goto end_hp
$ len2 = 0
$ goto H_ASK
$END_HP:W ESC,"[5i",ESC,"[",HP,"w",ESC,"[4i"
$ goto BEGIN
$!=========================================================================<13>=
$WIDTH: IF WIDTH .EQ. 80 THEN GOTO W_132
$ HP = "1"
$ GOTO W_80
$W_80: WIDTH = 80
$ SET TERM/WIDTH=80
$ cmd = "SCREEN"
$ GOTO INIT
$W_132: WIDTH = 132
$ HP = "4"
$ SET TERM/WIDTH=132
$ cmd = "SCREEN"
$ GOTO INIT
$!=========================================================================<14>=
$!
$!=========================================================================<14>=
$V_PITCH:SAVE = V_PITCH
$ V_PITCH = cmd2
$ IF len2 .GT. 0 THEN GOTO VP_1
$V_ASK: W ESC,"[24H",ESC,"[K"
$ READ SYS$COMMAND/PROMPT=" <VERTICAL PITCH> (2, 3, 4, [6], 8, 12) : " V_PITCH
$VP_1: IF V_PITCH .EQS. "" then V_PITCH = save
$ IF V_PITCH .EQS. " ?" then goto START
$ IF V_PITCH .EQ. 2 then VP = 4
$ IF V_PITCH .EQ. 2 then goto END_VP
$ IF V_PITCH .EQ. 3 then VP = 5
$ IF V_PITCH .EQ. 3 then goto END_VP
$ IF V_PITCH .EQ. 4 then VP = 6
$ IF V_PITCH .EQ. 4 then goto END_VP
$ IF V_PITCH .EQ. 6 then VP = 1
$ IF V_PITCH .EQ. 6 then goto END_VP
$ IF V_PITCH .EQ. 8 then VP = 2
$ IF V_PITCH .EQ. 8 then goto END_VP
$ IF V_PITCH .EQ. 12 then VP = 3
$ IF V_PITCH .EQ. 12 then goto END_VP
$ len2 = 0
$ goto v_pitch
$END_VP:W ESC,"[5i",ESC,"[",VP,"z",ESC,"[4i"
$ goto BEGIN
$!=========================================================================<15>=
$PAGE: SAVE = page_size
$ page_size = cmd2
$ IF len2 .GT. 0 THEN GOTO PG_1
$PG_ASK:W ESC,"[24H",ESC,"[K"
$ READ SYS$COMMAND/PROMPT=" <PAGE> Lines per page [Current=''SAVE'] (enter 0 to disable): " page_size
$PG_1: IF page_size .EQS. "" then page_size = save
$ IF page_size .EQ. save then goto START
$ IF page_size .GE. 1000 .OR. page_size .LT. 0 THEN GOTO PG_ASK
$ GOTO BEGIN
$!=========================================================================<15>=
$PORTOFF:W ESC,"[4i"
$ IF abort_on_control .EQ. 1 THEN GOTO STOP
$ IF p1 .EQS. "" THEN GOTO START
$!=========================================================================<16>=
$END: W ESC,"[1;24r"
$!=========================================================================<17>=
$STOP: IF BROAD .EQS. "ON " THEN SET TERM/BROADCAST
$ SET TERM/WIDTH='SAVEWID'/'SAVEWRAP'
$ EXIT
$!=========================================================================<18>=
$!
$! ANT::SYS$SYSDEVICE:[TOOLS]VTPRINT.COM
$! ASIC::SYS$SYSDEVICE:[TOOLS]VTPRINT.COM
$! BUSY::SYS$SYSDEVICE:[TOOLS]VTPRINT.COM
$! HEAVEN::SYS$SYSDEVICE:[TOOLS]VTPRINT.COM
$! KAISER::SYS$SYSDEVICE:[TOOLS]VTPRINT.COM
$! PIPA::SYS$SYSDEVICE:[TOOLS]VTPRINT.COM
$! WILLEE::SYS$SYSDEVICE:[TOOLS]VTPRINT.COM
$!
$!==========================< End of VTPRINT.COM >==============================
|