home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1996 May
/
PCW596.iso
/
wtest
/
clico
/
sunsoft
/
pcnfs51
/
pcnfs51.lzh
/
TELNET.ZOO
/
menu.ecf
< prev
next >
Wrap
Text File
|
1994-08-27
|
28KB
|
994 lines
set nover
!-------------------------------------------------------------------------------
! TELNET/TELNETW Function Menu
!-------------------------------------------------------------------------------
!
!###############################################################################
!
! Customized versions of this cmd file can be made by modifing existing
! menu entries and adjusting the cmd lines marked with a !* comment with
! applicable changes.
!
!###############################################################################
!-------------------------------------------------------------------------------
! Automatic KERMIT File Transfer Definitions
!-------------------------------------------------------------------------------
! Following symbols are used by KERTRANS.ECF for auto file transfers.
! If not defined, the HOST must be at the command prompt ready for KERMIT
! commands. KERTRANS.ECF may need minor modification for different
! versions of KERMIT. (EX: Set file type binary)
!-------------------------------------------------------------------------------
! Note: A USERNAME and/or PASSWORD of "ANSWERBACK" forces the command
! SEND/ANSWERBACK to be used to send a consealed username/password
! or password. Make sure that the ANSWERBACK string ends with a
! RETURN or the login will fail.
!-------------------------------------------------------------------------------
username = "" !* User account *
password = "" !* Password *
nodename = "" !* Hose Node Name *
!-------------------------------------------------------------------------------
d$bdon = "<esc>[1m" !Turn bold on
d$uron = "<esc>[4;7m" !Turn underline & reverse on
disp/nocr "<esc>7" !save cursor, attributes & underline mode
disp/nocr "<esc>[?25l<esc>)0" !Set cursor invisible & DEC graphics in G1
cls = "disp ""<esc>[2J"""
set term/width=80
set term/nopseudo !Disable pseudo underlining
! If no color mode, set menu for non reverse video attribute
dcolor = "d$bdon"
if 'f$getinfo("color") then dcolor = "d$uron"
search_flag = 0
up_proc := up
down_proc := down
! Following two symbols used to set general window information
first_row = 5 !* First function row position *
row_width = 56 !* Length of menu (even number) *
cnt = 1 !* Current function number *
row = first_row !Current function row position
cur_pos = "[''row',''(41-row_width/2)']" !Current cursor position
START:
on warning then goto error
on abort then goto error
! Following symbols and text blocks used to display general window
ftop = 1 !* First Function *
fbottom = 14 !* Last Function *
ftotal = 14 !* Function count *
exec_proc := exec_cmd
!* * Create MAIN Fast Search Table *
fst1 := AS
fst2 := AR
fst3 := DI
fst4 := DO
fst5 := E
fst6 := H
fst7 := K
fst8 := L
fst9 := P
fst10:= SE
fst11:= SC
fst12:= M
fst13:= XS
fst14:= XR
!* * Assign MAIN Fast Search Table cnt *
AS = 1
AR = 2
DI = 3
DO = 4
E = 5
H = 6
K = 7
L = 8
P = 9
SE = 10
SC = 11
M = 12
XS = 13
XR = 14
cls
! Window Function Menu
!* * Display BOX and Menu Functions *
disp/nocr "<esc>[0;4;7m" + -
d$box(first_row-1,40-row_width/2,first_row+ftotal,41+row_width/2)
disp/nocr "<esc>[0m" + 'dcolor + d$block(first_row,41-row_width/2)
{
Ascii Send - ASCII File Transfer TO Host ''
Ascii Rcv - ASCII File Transfer FROM Host ''
DIal - Dial Directory Menu ''
DOS - DOS Command Mode ''
Emulation - Emulation Mode ( ALT/X to return ) ''
Help - Help Menu Mode ''
Kermit - Kermit Menu ''
Log File - Open/Close a Log File ''
Playback - Playback a Log File ''
SEtup - Setup Menus ''
SCroll Back - Scroll Back Mode ''
Margin - Set Left Vertical Margin ''
Xmodem Send - Xmodem Binary File Transfer TO Host ''
Xmodem Rcv - Xmodem Binary File Transfer FROM Host ''
}
!* * Display Key at bottom *
disp/nocr "<esc>[0m<esc>[4;7m" + -
d$box(first_row+ftotal,40-row_width/2,first_row+ftotal+4,41+row_width/2)
disp/nocr ['(first_row+ftotal),'(40-row_width/2)] "<so>t"
disp/nocr ['(first_row+ftotal),'(41+row_width/2)] "u<si>"
disp/nocr "<esc>[0;7m" + d$block(first_row+ftotal+1,41-row_width/2)
{
Use Capitalized Letter(s) or use <UP> and <DOWN> ''
Arrow Keys to move through Menu. Use <F1> to QUIT ''
Enter <RETURN> or <SPACEBAR> to execute selection ''
}
!* * Display Title BOX *
title_width = 22 !* Length of title (even number) *
disp/nocr "<esc>[0m<esc>[4;7m<so>" + d$block(first_row-3,40-title_width/2)
{
lqqqqqqqqqqqqqqqqqqqqqqk
x <si><esc>[1;4;7m TELNET/TELNETW Function Menu <esc>[22m<so> x
vqqqqqqqqqqqqqqqqqqqqqqv<si>
}
disp/nocr "<esc>[0m"
goto f'cnt
!-------------------------------------------------------------------------------
! Ascii Send Function
!-------------------------------------------------------------------------------
F1:
command := ASCSEND
bell = ""
title_blk = " Ascii Send "
goto input_proc
!-------------------------------------------------------------------------------
! Ascii Receive Function
!-------------------------------------------------------------------------------
F2:
command := ASCRECEIVE
bell = ""
title_blk = " Ascii Rcv "
goto input_proc
!-------------------------------------------------------------------------------
! Dial Menu Function
!-------------------------------------------------------------------------------
F3:
command := DIAL/MENU
bell = ""
title_blk = " DIal "
goto input_proc
!-------------------------------------------------------------------------------
! DOS Command Function
!-------------------------------------------------------------------------------
F4:
command := DOS
bell = ""
title_blk = " DOS "
goto input_proc
!-------------------------------------------------------------------------------
! Emulation Function
!-------------------------------------------------------------------------------
F5:
command := GOTO F5_SUB
bell = ""
title_blk = " Emulation "
goto input_proc
F5_SUB:
disp/nocr "<esc>[?25h" !set cursor visible
disp/nocr "<esc>7" !save cursor, attributes & underline mode
set disconnect !Turn on exit of EMULATE if disconnect
set device_error !Turn on exit of EMULATE if LOG or PRINT errors
on disconnect then goto f5_sub2
on device_error then goto f5_sub2
emulate !Enter vt emulation mode
F5_SUB1:
set nodisconnect !reset default
set nodevice_error !reset default
disp/nocr [24,1] "<esc>8" !Restore cursor, attributes & underline mode
disp/nocr "<esc>[?25l<esc>)0" !Set cursor invisible & DEC graphics in G1
goto start
F5_SUB2:
delay /nomess 5 !delay for disconnect and device error
goto f5_sub1
!-------------------------------------------------------------------------------
! Help Command Function
!-------------------------------------------------------------------------------
F6:
command := HELP
bell = ""
title_blk = " Help "
goto input_proc
!-------------------------------------------------------------------------------
! Kermit Command Function
!-------------------------------------------------------------------------------
F7:
command := GOSUB KER_MENU
bell = ""
title_blk = " Kermit "
goto input_proc
!-------------------------------------------------------------------------------
! Log Function
!-------------------------------------------------------------------------------
F8:
command := LOG/PROMPT
bell = ""
title_blk = " Log File "
goto input_proc
!-------------------------------------------------------------------------------
! Playback Function
!-------------------------------------------------------------------------------
F9:
command := GOTO F9_SUB
bell = ""
title_blk = " Playback "
goto input_proc
F9_SUB:
disp/nocr "<esc>7" !save cursor, attributes & underline mode
on error then goto F9_SUB1
on abort then goto F9_SUB1
play/prompt
F9_SUB1:
disp/nocr [24,1] "<esc>8" !Restore cursor, attributes & underline mode
disp/nocr "<esc>[?25l<esc>)0" !Set cursor invisible & DEC graphics in G1
goto start
!-------------------------------------------------------------------------------
! Setup Function
!-------------------------------------------------------------------------------
F10:
command := GOSUB SETUP_MENU
bell = ""
title_blk = " SEtup "
goto input_proc
!-------------------------------------------------------------------------------
! Scroll Back Function
!-------------------------------------------------------------------------------
F11:
command := SCROLLBACK
bell = ""
title_blk = " SCroll Back "
goto input_proc
!-------------------------------------------------------------------------------
! Margin Function
!-------------------------------------------------------------------------------
F12:
command := MARGIN
bell = ""
title_blk = " Margin "
goto input_proc
!-------------------------------------------------------------------------------
! Xmodem Send Function
!-------------------------------------------------------------------------------
F13:
on abort then goto START
command := XSEND
bell = ""
title_blk = " Xmodem Send "
goto input_proc
!-------------------------------------------------------------------------------
! Xmodem Receive Function
!-------------------------------------------------------------------------------
F14:
on abort then goto START
command := XRECEIVE
bell = ""
title_blk = " Xmodem Rcv "
goto input_proc
!===============================================================================
!-------------------------------------------------------------------------------
! KERMIT Menu Processor
!-------------------------------------------------------------------------------
KER_MENU:
sfirst_row = first_row !Save symbols
srow = row
scnt = cnt
! Following two symbols used to set general window information
first_row = 10 !* First function row position *
cnt = 30 !* Current function number *
row = first_row !Current function row position
cur_pos = "[''row',''(41-row_width/2)']" !Current cursor position
!* * Create SUB Fast Search Table *
fst1 := AS
fst2 := AR
fst3 := BS
fst4 := BR
fst5 := S
! Execute KERMIT Menu
gosub ker_start
!* * Delete SUB Fast Search Table *
delete symbol 'fst1
delete symbol 'fst2
delete symbol 'fst3
delete symbol 'fst4
delete symbol 'fst5
first_row = sfirst_row !First function position
row = srow !Current function position
cnt = scnt !Current function number
cur_pos = "[''row',''(41-row_width/2)']" !Reset current cursor position
up_proc := up
down_proc := down
return
!-------------------------------------------------------------------------------
! KERMIT Menu
!-------------------------------------------------------------------------------
KER_START:
ftop = 30 !* First Function *
fbottom = 34 !* Last Function *
ftotal = 5 !* Function count *
exec_proc := exec_cmd_sub !* Sub Process call *
!* * Assign SUB Fast Search Table cnt *
'fst1 = 30
'fst2 = 31
'fst3 = 32
'fst4 = 33
'fst5 = 34
cls
! KERMIT Window Function Menu
! Display BOX and Menu Functions
disp/nocr "<esc>[0m<esc>[4;7m" + -
d$box(first_row-1,40-row_width/2,first_row+ftotal,41+row_width/2)
disp/nocr "<esc>[0m" + 'dcolor + d$block(first_row,41-row_width/2)
{
Ascii Send - ASCII File Transfer TO Host ''
Ascii Rcv - ASCII File Transfer FROM Host ''
Binary Send - Binary File Transfer TO Host ''
Binary Rcv - Binary File Transfer FROM Host ''
Setup - KERMIT Setup Menu ''
}
!* * Display Key at bottom *
disp/nocr "<esc>[0m<esc>[4;7m" + -
d$box(first_row+ftotal,40-row_width/2,first_row+ftotal+4,41+row_width/2)
disp/nocr ['(first_row+ftotal),'(40-row_width/2)] "<so>t"
disp/nocr ['(first_row+ftotal),'(41+row_width/2)] "u<si>"
disp/nocr "<esc>[0;7m" + d$block(first_row+ftotal+1,41-row_width/2)
{
Use Capitalized Letter(s) or use <UP> and <DOWN> ''
Arrow Keys to move through Menu. Use <F1> to QUIT ''
Enter <RETURN> or <SPACEBAR> to execute selection ''
}
!* * Display Title BOX *
title_width = 30 !* Length of title (even number) *
disp/nocr "<esc>[0m<esc>[4;7m<so>" + d$block(first_row-3,40-title_width/2)
{
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x <si><esc>[1;4;7m KERMIT File Transfer Menu <esc>[22m<so> x
vqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqv<si>
}
disp/nocr "<esc>[0m"
goto f'cnt
!-------------------------------------------------------------------------------
! KERMIT Ascii Send Function
!-------------------------------------------------------------------------------
F30:
command := GOTO F30_SUB
bell = ""
title_blk = " Ascii Send "
goto input_proc
F30_SUB:
inq/stat inp1 "<esc>[?25h<esc>[7m" + "Enter PC File name(s) : <esc>[27m "
if inp1 .eqs. "" then goto ker_start
if .not. ((f$loc(",",inp1) .eq. f$length(inp1)) .and. -
(f$loc(" ",inp1) .eq. f$length(inp1))) then goto F30_SUB1
inq/stat inp2 "<esc>[7mEnter Vax File name : <esc>[27m "
if inp2 .eqs. "" then inp2 = inp1
F30_SUB1:
disp/nocr [24,1] "<esc>[?25l<esc>[2J"
on abort then goto F30_SUB2
set noon
@KERTRANS 'username 'password 1 SEND A "''inp1'" "''inp2'" 'nodename
F30_SUB2:
set on
cls
goto ker_start
!-------------------------------------------------------------------------------
! KERMIT Ascii Receive Function
!-------------------------------------------------------------------------------
F31:
command := GOTO F31_SUB
bell = ""
title_blk = " Ascii Rcv "
goto input_proc
F31_SUB:
inq/stat inp1 "<esc>[?25h<esc>[7mEnter Vax File name : <esc>[27m "
if inp1 .eqs. "" then goto ker_start
if .not. ((f$loc(",",inp1) .eq. f$length(inp1)) .and. -
(f$loc(" ",inp1) .eq. f$length(inp1))) then goto F31_SUB1
inq/stat inp2 "<esc>[7mEnter PC File name : <esc>[27m "
if inp2 .eqs. "" then inp2 = inp1
F31_SUB1:
disp/nocr [24,1] "<esc>[?25l<esc>[2J"
on abort then goto F31_SUB2
set noon
@KERTRANS 'username 'password 1 GET A "''inp1'" "''inp2'" 'nodename
F31_SUB2:
set on
cls
goto ker_start
!-------------------------------------------------------------------------------
! KERMIT Binary Send Function
!-------------------------------------------------------------------------------
F32:
command := GOTO F32_SUB
bell = ""
title_blk = " Binary Send "
goto input_proc
F32_SUB:
inq/stat inp1 "<esc>[?25h<esc>[7mEnter PC File name(s) : <esc>[27m "
if inp1 .eqs. "" then goto ker_start
if .not. ((f$loc(",",inp1) .eq. f$length(inp1)) .and. -
(f$loc(" ",inp1) .eq. f$length(inp1))) then goto F32_SUB1
inq/stat inp2 "<esc>[7mEnter Vax File name : <esc>[27m "
if inp2 .eqs. "" then inp2 = inp1
F32_SUB1:
disp/nocr [24,1] "<esc>[?25l<esc>[2J"
on abort then goto F32_SUB2
set noon
@KERTRANS 'username 'password 1 SEND B "''inp1'" "''inp2'" 'nodename
F32_SUB2:
set on
cls
goto ker_start
!-------------------------------------------------------------------------------
! KERMIT Binary Receive Function
!-------------------------------------------------------------------------------
F33:
command := GOTO F33_SUB
bell = ""
title_blk = " Binary Rcv "
goto input_proc
F33_SUB:
inq/stat inp1 "<esc>[?25h<esc>[7mEnter Vax File name : <esc>[27m "
if inp1 .eqs. "" then goto ker_start
if .not. ((f$loc(",",inp1) .eq. f$length(inp1)) .and. -
(f$loc(" ",inp1) .eq. f$length(inp1))) then goto F33_SUB1
inq/stat inp2 "<esc>[7mEnter PC File name : <esc>[27m "
if inp2 .eqs. "" then inp2 = inp1
F33_SUB1:
disp/nocr [24,1] "<esc>[?25l<esc>[2J"
on abort then goto F33_SUB2
set noon
@KERTRANS 'username 'password 1 GET B "''inp1'" "''inp2'" 'nodename
F33_SUB2:
set on
cls
goto ker_start
!-------------------------------------------------------------------------------
! KERMIT Setup Function
!-------------------------------------------------------------------------------
F34:
command := GOTO F34_SUB
bell = ""
title_blk = " Setup "
goto input_proc
F34_SUB:
SETUP KERMIT
goto f34
!-------------------------------------------------------------------------------
! KERMIT Quit Function
!-------------------------------------------------------------------------------
!F35:
!command := RETURN
!bell = ""
!title_blk = " Quit "
!goto input_proc
!===============================================================================
!-------------------------------------------------------------------------------
! SETUP Menu Processor
!-------------------------------------------------------------------------------
SETUP_MENU:
sfirst_row = first_row !Save symbols
srow = row
scnt = cnt
! Following two symbols used to set general window information
first_row = 7 !* First function row position *
cnt = 40 !* Current function number *
row = first_row !Current function row position
cur_pos = "[''row',''(41-row_width/2)']" !Current cursor position
!* * Create SUB Fast Search Table *
fst1 := A
fst2 := KER
fst3 := KEY
fst4 := M
fst5 := P
fst6 := SC
fst7 := SP
fst8 := T
fst9 := X
fst10:= B
! Execute SETUP Menu
gosub setup_start
!* * Delete SUB Fast Search Table *
delete symbol 'fst1
delete symbol 'fst2
delete symbol 'fst3
delete symbol 'fst4
delete symbol 'fst5
delete symbol 'fst6
delete symbol 'fst7
delete symbol 'fst8
delete symbol 'fst9
delete symbol 'fst10
first_row = sfirst_row !First function position
row = srow !Current function position
cnt = scnt !Current function number
cur_pos = "[''row',''(41-row_width/2)']" !Reset current cursor position
up_proc := up
down_proc := down
return
!-------------------------------------------------------------------------------
! SETUP Menu
!-------------------------------------------------------------------------------
SETUP_START:
ftop = 40 !* First Function *
fbottom = 49 !* Last Function *
ftotal = 10 !* Function count *
exec_proc := exec_cmd_sub !* Sub Process call *
!* * Assign SUB Fast Search Table cnt *
'fst1 = 40
'fst2 = 41
'fst3 = 42
'fst4 = 43
'fst5 = 44
'fst6 = 45
'fst7 = 46
'fst8 = 47
'fst9 = 48
'fst10 = 49
cls
! SETUP Window Function Menu
! display BOX and Menu Functions
disp/nocr "<esc>[0m<esc>[4;7m" + -
d$box(first_row-1,40-row_width/2,first_row+ftotal,41+row_width/2)
disp/nocr "<esc>[0m" + 'dcolor + d$block(first_row,41-row_width/2)
{
Ascii - ASCII File Transfer Setup Menu ''
KERmit - Kermit File Transfer Setup Menu ''
KEYboard - Keyboard Setup Menu ''
Main - Main Setup Menu ''
Printer - Printer Setup Menu ''
SCreen - Screen Setup Menu ''
SPecial - Special Setup Menu ''
Tab - Tab Setup Menu ''
Xmodem - Xmodem File Transfer Setup Menu ''
132Boards - 132 Board Setup Menu ''
}
!* * Display Key at bottom *
disp/nocr "<esc>[0m<esc>[4;7m" + -
d$box(first_row+ftotal,40-row_width/2,first_row+ftotal+4,41+row_width/2)
disp/nocr ['(first_row+ftotal),'(40-row_width/2)] "<so>t"
disp/nocr ['(first_row+ftotal),'(41+row_width/2)] "u<si>"
disp/nocr "<esc>[0m<esc>[7m" + d$block(first_row+ftotal+1,41-row_width/2)
{
Use Capitalized Letter(s) or use <UP> and <DOWN> ''
Arrow Keys to move through Menu. Use <F1> to QUIT ''
Enter <RETURN> or <SPACEBAR> to execute selection ''
}
!* * Display Title BOX *
title_width = 28 !* Length of title (even number) *
disp/nocr "<esc>[0m<esc>[4;7m<so>" + d$block(first_row-3,40-title_width/2)
{
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x <si><esc>[1m SETUP File Transfer Menu <esc>[22m<so> x
vqqqqqqqqqqqqqqqqqqqqqqqqqqqqv<si>
}
disp/nocr "<esc>[0m"
goto f'cnt
!-------------------------------------------------------------------------------
! SETUP Ascii Function
!-------------------------------------------------------------------------------
F40:
command := GOTO F40_SUB
bell = ""
title_blk = " Ascii "
goto input_proc
F40_SUB:
SETUP ASCII
goto f40
!-------------------------------------------------------------------------------
! SETUP Kermit Function
!-------------------------------------------------------------------------------
F41:
command := GOTO F41_SUB
bell = ""
title_blk = " KERmit "
goto input_proc
F41_SUB:
SETUP KERMIT
goto f41
!-------------------------------------------------------------------------------
! SETUP Keyboard Function
!-------------------------------------------------------------------------------
F42:
command := GOTO F42_SUB
bell = ""
title_blk = " KEYboard "
goto input_proc
F42_SUB:
SETUP KEYBOARD
goto f42
!-------------------------------------------------------------------------------
! SETUP Main Function
!-------------------------------------------------------------------------------
F43:
command := GOTO F43_SUB
bell = ""
title_blk = " Main "
goto input_proc
F43_SUB:
SETUP MAIN
goto f43
!-------------------------------------------------------------------------------
! SETUP Printer Function
!-------------------------------------------------------------------------------
F44:
command := GOTO F44_SUB
bell = ""
title_blk = " Printer "
goto input_proc
F44_SUB:
SETUP PRINTER
goto f44
!-------------------------------------------------------------------------------
! SETUP Screen Function
!-------------------------------------------------------------------------------
F45:
command := GOTO F45_SUB
bell = ""
title_blk = " SCreen "
goto input_proc
F45_SUB:
SETUP SCREEN
goto f45
!-------------------------------------------------------------------------------
! SETUP Special Function
!-------------------------------------------------------------------------------
F46:
command := GOTO F46_SUB
bell = ""
title_blk = " SPecial "
goto input_proc
F46_SUB:
SETUP SPECIAL
goto f46
!-------------------------------------------------------------------------------
! SETUP TAB Function
!-------------------------------------------------------------------------------
F47:
command := GOTO F47_SUB
bell = ""
title_blk = " Tab "
goto input_proc
F47_SUB:
SETUP TAB
goto f47
!-------------------------------------------------------------------------------
! SETUP Xmodem Function
!-------------------------------------------------------------------------------
F48:
command := GOTO F48_SUB
bell = ""
title_blk = " Xmodem "
goto input_proc
F48_SUB:
SETUP Xmodem
goto f48
!-------------------------------------------------------------------------------
! SETUP 132Boards Function
!-------------------------------------------------------------------------------
F49:
command := GOTO F49_SUB
bell = ""
title_blk = " 132Boards "
goto input_proc
F49_SUB:
SETUP 132BOARDS
goto f49
!-------------------------------------------------------------------------------
! SETUP Quit Function
!-------------------------------------------------------------------------------
!F50:
!command := RETURN
!bell = ""
!title_blk = " Quit "
!goto input_proc
!===============================================================================
!-------------------------------------------------------------------------------
! Input Processor
!-------------------------------------------------------------------------------
INPUT_PROC:
disp/nocr 'cur_pos "<esc>[1;7m" + title_blk + "<esc>[0m"
if cnt .eq. ftop then up_proc := input_proc
if cnt .eq. fbottom then down_proc := input_proc
if search_flag then goto search_inp
inq/key input bell
bell = "<bell>"
if (input .eqs. "DOWN") .or. (input .eqs. "KP2") then goto 'down_proc
if (input .eqs. "UP") .or. (input .eqs. "KP8") then goto 'up_proc
if (input .eqs. "RETURN") .or. (input .eqs. "SPACE") then goto 'exec_proc
if (input .eqs. "F1") .and. (cnt .lt. 30) then goto exit
if input .eqs. "F1" then return
search_funct = ""
search_flag = 1
pri_cur_pos = cur_pos
pri_title = title_blk
bell = ""
set mess
inp_funct = input
goto fast_search !Do Fast Search
down:
disp/nocr 'cur_pos 'dcolor + title_blk + "<esc>[0m"
cnt = cnt + 1
row = row + 1
cur_pos = "[''row',''(41-row_width/2)']"
up_proc := up
down_proc := down
goto f'cnt
up:
disp/nocr 'cur_pos 'dcolor + title_blk + "<esc>[0m"
cnt = cnt - 1
row = row - 1
cur_pos = "[''row',''(41-row_width/2)']"
up_proc := up
down_proc := down
goto f'cnt
!-------------------------------------------------------------------------------
! Fast Search processor
!-------------------------------------------------------------------------------
SEARCH_INP:
disp/nocr 'pri_cur_pos 'dcolor + pri_title + "<esc>[0m"
pri_cur_pos = cur_pos
pri_title = title_blk
SEARCH_INPUT:
bell = ""
SEARCH_INPUT1:
set mess
inq/stat/key inp_funct bell + "<esc>[?25h<esc>[7m" + -
"Enter Menu Selection :<esc>[27m " + search_funct
FAST_SEARCH:
search_ret = exec_proc
if (inp_funct .eqs. "RETURN") .or. (inp_funct .eqs. "SPACE") -
then goto search_done
search_ret = "f''cnt'"
if inp_funct .eqs. "F1" then goto search_done
if inp_funct .eqs. "BS" then goto search_del
bell = "<bell>"
if (inp_funct .eqs. "UP") .or. (inp_funct .eqs. "KP8") then goto search_up
if (inp_funct .eqs. "DOWN") .or. (inp_funct .eqs. "KP2") then goto search_down
if f$length(inp_funct) .gt. 1 then goto search_input1
if (inp_funct .gts. "0") .and. (inp_funct .lts. "9") then goto search_input1
search_funct = search_funct + inp_funct
pri_cnt = cnt
set nomess
on warning then goto search_input
cnt = 'search_funct
set mess
on warning then goto error
search_funct = ""
search_flag = 0
if pri_cnt .eq. cnt then goto search_same
disp/nocr 'cur_pos 'dcolor + title_blk + "<esc>[0m"
row = row + cnt - pri_cnt
cur_pos = "[''row',''(41-row_width/2)']"
search_ret := f'cnt
goto search_done
SEARCH_DEL:
search_funct = f$ext(0,f$length(search_funct)-1,search_funct)
goto search_input
SEARCH_SAME:
search_ret := input_proc
goto search_done
SEARCH_UP:
search_ret := 'up_proc
goto search_done
SEARCH_DOWN:
search_ret := 'down_proc
SEARCH_DONE:
search_flag = 0
disp/nocr "<esc>[?25l" !Set cursor invisible
up_proc := up
down_proc := down
goto 'search_ret
!-------------------------------------------------------------------------------
! Command Processor
!-------------------------------------------------------------------------------
EXEC_CMD:
!* * Delete MAIN Fast Search Table *
delete symbol 'fst1
delete symbol 'fst2
delete symbol 'fst3
delete symbol 'fst4
delete symbol 'fst5
delete symbol 'fst6
delete symbol 'fst7
delete symbol 'fst8
delete symbol 'fst9
delete symbol 'fst10
delete symbol 'fst11
delete symbol 'fst12
delete symbol 'fst13
delete symbol 'fst14
cls
EXEC_CMD_SUB:
'command' !execute command
set nover
goto start
exit:
cls
error:
disp/nocr "<esc>[?25h"
disp [24,1] "<esc>8" ! Restore cursor, attributes & underline mode
exit