% VAX-11 Librarian V04-00``n;d|J  7; 8$DSCDEF  ASCII_DEFCARRIAGE_CONTROL_DEFEXIT_STATUS_DEFEXTREME_VALUES"FUNDAMENTAL_MATH_CONSTANTS,LINE_DRAWING_DEF1LOGARITHMIC_CONSTANTS LOGICAL_DEFFRECEIVED_TERMINAL_CODESSMG_DEF_TRANSMITTED_TERMINAL_CODESTERMINAL_CODESCODESITTED_TERMINAL_CODES ۮM!!###########################################################################M!!--------------------------------------------------------------------------- !! ASCII_DEF!!!! Version 3.0!! James Fullerton 27-APR-1989M!!---------------------------------------------------------------------------!!E!! The ASCII and DEC Multinational characters with mnemonic names areJ!! declared as character constants. All are of type CHARACTER *1 and have9!! the same name as the mnem onic in the reference tables.!!E!! Some special-use characters have additional names for convenience:!!!! HT is also TAB!! DC1 is also XON!! DC3 is also XOFF!! SP is also SPACE!! character *1 NUL !! null parameter ( NUL= CHAR( 0 ) ) character *1 SOH parameter ( SOH= CHAR( 1 ) ) character *1 STX parameter ( STX= CHAR( 2 ) ) character *1 ETX parameter ( ETX= CHAR( 3 ) ) character *1 EOT parameter ( EOT= CHAR( 4 ) ) character *1 ENQ parameter ( ENQ= CHAR( 5 ) ) character *1 ACK parameter ( ACK= CHAR( 6 ) ) character *1 BEL !! bell parameter ( BEL= CHAR( 7 ) ) character *1 BS parameter ( BS= CHAR( 8 ) )# character *1 HT !! horizontal tab parameter ( HT= CHAR( 9 ) )$ character *1 TAB !! horizontal tab parameter ( TAB= CHAR( 9 ) ) character *1 LF !! line feed parameter ( LF= CHAR( 10 ) )! character *1 VT !! vertical tab parameter ( VT= CHAR( 11 ) ) character *1 FF !! formfeed parameter ( FF= CHAR( 12 ) )$ character *1 CR !! carriage return parameter ( CR= CHAR( 13 ) ) character *1 SO !! shift out parameter ( SO= CHAR( 14 ) ) character *1 SI !! shift in parameter ( SI= CHAR( 15 ) ) character *1 DLE parameter ( DLE= CHAR( 16 ) ) character *1 DC1 parameter ( DC1= CHAR( 17 ) ) character *1 XON parameter ( XON= CHAR( 17 ) ) character *1 DC2 parameter ( DC2= CHAR( 18 ) ) character *1 DC3 parameter ( DC3= CHAR( 19 ) ) character *1 XOFF parameter ( XOFF= CHAR( 19 ) ) character *1 DC4 parameter ( DC4= CHAR( 20 ) ) character *1 NAK parameter ( NAK= CHAR( 21 ) ) character *1 SYN parameter ( SYN= CHAR( 22 ) ) character *1 ETB parameter ( ETB= CHAR( 23 ) ) character *1 CAN parameter ( CAN= CHAR( 24 ) ) character *1 EM parameter ( EM= CHAR( 25 ) ) character *1 SUB parameter ( SUB= CHAR( 26 ) ) character *1 ESC !! escape parameter ( ESC= CHAR( 27 ) ) character *1 FS parameter ( FS= CHAR( 28 ) ) character *1 GS parameter ( GS= CHAR( 29 ) ) character *1 RS parameter ( RS= CHAR( 30 ) ) character *1 US parameter ( US= CHAR( 31 ) ) character *1 SP !! space parameter ( SP= CHAR( 32 ) ) character *1 SPACE !! space! parameter ( SPACE= CHAR( 32 ) ) character *1 DEL parameter ( DEL= CHAR( 127 ) ) character *1 IND parameter ( IND= CHAR( 132 ) ) character *1 NEL parameter ( NEL= CHAR( 133 ) ) character *1 SSA parameter ( SSA= CHAR( 134 ) ) character *1 ESA parameter ( ESA= CHAR( 135 ) ) character *1 HTS parameter ( HTS= CHAR( 136 ) ) character *1 HTJ parameter ( HTJ= CHAR( 137 ) ) character *1 VTS parameter ( VTS= CHAR( 138 ) ) character *1 PLD parameter ( PLD= CHAR( 139 ) ) character *1 PLU parameter ( PLU= CHAR( 140 ) ) character *1 RI parameter ( RI= CHAR( 141 ) ) character *1 SS2 parameter ( SS2= CHAR( 142 ) ) character *1 SS3 parameter ( SS3= CHAR( 143 ) )- character *1 DCS !! Device Control Sequence parameter ( DCS= CHAR( 144 ) ) character *1 PU1 parameter ( PU1= CHAR( 145 ) ) character *1 PU2 parameter ( PU2= CHAR( 146 ) ) character *1 STS parameter ( STS= CHAR( 147 ) ) character *1 CCH parameter ( CCH= CHAR( 148 ) ) character *1 MW parameter ( MW= CHAR( 149 ) ) character *1 SPA parameter ( SPA= CHAR( 150 ) ) character *1 EPA parameter ( EPA= CHAR( 151 ) )1 character *1 CSI !! Control Sequence Introducer parameter ( CSI= CHAR( 155 ) )( character *1 ST !! Sequence Terminator parameter ( ST= CHAR( 156 ) ) character *1 OSC parameter ( OSC= CHAR( 157 ) ) character *1 PM parameter ( PM= CHAR( 158 ) ) character *1 APC parameter ( APC= CHAR( 159 ) )M!!###########################################################################wwM!!###########################################################################M!!---------------------------------------------------------------------------!! LOGICAL_DEF!!J!! The boolean constants TRUE and FALSE are given as LOGICAL *1 constants.!!!! Version 3.0!! James Fullerton 27-APR-1989M!!--------------------------------------------------------------------------- logical *1 TRUE parameter ( TRUE= .true. ) logical *1 FALSE parameter ( FALSE= .false. )M!!###########################################################################ww:`!!################################################################################################################################## !! SMG_DEFi!! James Fullerton/ Cessna Aircraft Company/ Wallace Division, Dept. 178/ PO Box 7704/ Wichita, KS 67277l!! 21-AUG-1989a!! Define terminator class values (a class code can refer to one or more terminator keys) (word):_ !! SMG$K_TRM_+_N parameter smg_trm_class_next_field= '00000001'x !! HT, NEXT_SCREEN, E6, CTRLIS par M!!###########################################################################M!!---------------------------------------------------------------------------!! CARRIAGE_CONTROL_DEF!!<!! All carriage control characters are of type CHARACTER *1.I!! They are named according to the number of lines advanced (spacing), so!! single spacing is SPACE_1.!!F!! NO_CR_LF suppresses the output of ASCII characters CR and LF at the!! end of an output record.!!1!! NEW_PAGE performs a page eject (form advance).!!!! Version 4.0!! James Fullerton 27-APR-1989M!!---------------------------------------------------------------------------> character *1 SPACE_0 !! Suppress line feed (overprint line). parameter ( SPACE_0= '+' )6 character *1 SPACE_1 !! Single space (running text). parameter ( SPACE_1= ' ' )8 character *1 SPACE_2 !! Double space (one blank line). parameter ( SPACE_2= '0' )9 character *1 SPACE_3 !! Triple space (two blank lines). parameter ( SPACE_3= '-' )6 character *1 PROMPT !! Advance and suppress CR LF at !! end of output. parameter ( PROMPT= '$' ): character *1 NO_CR_LF !! Suppress CR LF at end of output.# parameter ( NO_CR_LF= CHAR( 0 ) )/ character *1 NEW_PAGE !! Page eject on output. parameter ( NEW_PAGE= '1' )M!!###########################################################################ww`.!!!! Version 3.0!! James Fullerton 27-APR-1989M!!--------------------------------------------------------------------------- integer *2 EXIT_WITH_WARNING$ parameter ( EXIT_WITH_WARNING= 0 ) integer *2 EXIT_WITH_SUCCESS$ parameter ( EXIT_WITH_SUCCESS= 1 ) integer *2 EXIT_WITH_ERROR" parameter ( EXIT_WITH_ERROR= 2 )! integer *2 EXIT_WITH_INFORMATION( parameter ( EXIT_WITH_INFORMATION= 3 ) integer *2 EXIT_WITH_SEVERE# parameter ( EXIT_WITH_SEVERE= 4 )M!!###########################################################################ww `F!!##################################################################################################################################!!----------------------------------------------------------------------------------------------------------------------------------!! EXTREME_VALUES!!J!! For INTEGER *n types, the largest (highest positive) and smallest (most:!! negative) numbers representable are named as MAX or MIN!! _INTEGER_n constants.!!J!! For REAL *n types, the MAXimum value is the LARGEST POSITIVE VALUE thatA!! can be represented. This can be used as a practical value forD!! "infinity". The MINimum value is the SMALLEST COMPUTABLE CHANGE.!!F!! Values are named as [ MAX | MIN ] , where is !! one of:!! _INTEGER_2 (INTEGER *2)!! _INTEGER_4 (INTEGER *4)!! _F_FLOAT (REAL *4)!! _D_FLOAT (REAL *8)!! _G_FLOAT (REAL *8)!! _H_FLOAT (REAL *16)!!!! Version 3.0!! James Fullerton 27-APR-1989!!----------------------------------------------------------------------------------------------------------------------------------% integer *2 MAX_INTEGER_2 !! +32_767.& parameter ( MAX_INTEGER_2= '7FFF'x )% integer *2 MIN_INTEGER_2 !! -32,768.& parameter ( MIN_INTEGER_2= 'FFFF'x ), integer *4 MAX_INTEGER_4 !! +2_147_483_647.* parameter ( MAX_INTEGER_4= '7FFFFFFF'x ), integer *4 MIN_INTEGER_4 !! -2_147_483_648.* parameter ( MIN_INTEGER_4= 'FFFFFFFF'x )) real *4 MAX_F_FLOAT !! approx. +1.7e+3 8( parameter ( MAX_F_FLOAT= 'FFFF7FFF'x )) real *4 MIN_F_FLOAT !! approx. +2.9e-39( parameter ( MIN_F_FLOAT= '00000080'x )) real *8 MAX_D_FLOAT !! approx. +1.7e+380 parameter ( MAX_D_FLOAT= 'FFFFFFFFFFFF7FFF'x )) real *8 MIN_D_FLOAT !! approx. +2.9e-390 parameter ( MIN_D_FLOAT= '0000000000000080'x )* real *8 MAX_G_FLOAT !! approx. +9.0e+3070 parameter ( MAX_G_FLOAT= 'FFFFFFFFFFFF7FFF'x )* real *8 MIN_G_FLOAT !! approx. +5.6e-3090 parameter ( MIN_G_FLOAT= '000000 !0000000010'x )+ real *16 MAX_H_FLOAT !! approx. +5.9e+4931@ parameter ( MAX_H_FLOAT= 'FFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFF'x )+ real *16 MIN_H_FLOAT !! approx. +8.4e-4933@ parameter ( MIN_H_FLOAT= '00000000000000000000000000000001'x )!!----------------------------------------------------------------------------------------------------------------------------------!!##################################################################################################################################ww #^-!!##################################################################################################################################!!----------------------------------------------------------------------------------------------------------------------------------!! FUNDAMENTAL_MATH_CONSTANTS!!1!! Constants are named as .!!&!! The following s are provided:!! F_FLOAT_ (REAL *4)!! D_FLOAT_ (REAL *8)!! G_FLOAT_ (REAL *8)!! H_FLOAT_ ($REAL *16)!!/!! The following s are provided:!!!! Multiples of PI:!! 1 PI !! 2 TWO_PI!! 1/2 HALF_PI!! 1/4 QUARTER_PI!!!! Degrees and radians:!! deg/rad DEGREES_PER_RADIAN!!!! Special constants:/!! phi GOLDEN_RATIO phi= ( 1 + SQRT( 5 ) ) / 2!!!! Version 4.0!! James Fullerton 12-JUN-1989!!----------------------------------------------------------------------------------------------------------------------------------} !!-------------------%------------------------------------------------------------------------------------------------------- !! Multiples of PI:} !!-------------------------------------------------------------------------------------------------------------------------- !! +--------------------+ !! | pi | !! +--------------------+ real *4 F_FLOAT_PI' parameter ( F_FLOAT_PI= '0FDB4149'x ) real *8 D_FLOAT_PI/ parameter ( D_FLOAT_PI= '68C2A2210FDA4149'x ) real *8 G_FLOAT_PI/& parameter ( G_FLOAT_PI= '2D18544421FB4029'x ) real *16 H_FLOAT_PI? parameter ( H_FLOAT_PI= '01B8C517898C846942D1B544921F4002'x ) !! +--------------------+ !! | 2 pi | !! +--------------------+ real *4 F_FLOAT_TWO_PI+ parameter ( F_FLOAT_TWO_PI= '0FDB41C9'x ) real *8 D_FLOAT_TWO_PI3 parameter ( D_FLOAT_TWO_PI= '68C2A2210FDA41C9'x ) real *8 G_FLOAT_TWO_PI3 parameter ( G_FLOAT_TWO_PI= '2D18544421FB4039'x ) real *16 H_FLOAT_TWO_PIC parameter ( 'H_FLOAT_TWO_PI= '01B8C517898C846942D1B544921F4003'x ) !! +--------------------+ !! | pi / 2 | !! +--------------------+ real *4 F_FLOAT_HALF_PI, parameter ( F_FLOAT_HALF_PI= '0FDB40C9'x ) real *8 D_FLOAT_HALF_PI4 parameter ( D_FLOAT_HALF_PI= '68C2A2210FDA40C9'x ) real *8 G_FLOAT_HALF_PI4 parameter ( G_FLOAT_HALF_PI= '2D18544421FB4019'x ) real *16 H_FLOAT_HALF_PID parameter ( H_FLOAT_HALF_PI= '01B8C517898C846942D1B544921F4001'x ) !! +-------------(-------+ !! | pi / 4 | !! +--------------------+ real *4 F_FLOAT_QUARTER_PI/ parameter ( F_FLOAT_QUARTER_PI= '0FDB4049'x ) real *8 D_FLOAT_QUARTER_PI7 parameter ( D_FLOAT_QUARTER_PI= '68C2A2210FDA4049'x ) real *8 G_FLOAT_QUARTER_PI7 parameter ( G_FLOAT_QUARTER_PI= '2D18544421FB4009'x ) real *16 H_FLOAT_QUARTER_PIG parameter ( H_FLOAT_QUARTER_PI= '01B8C517898C846942D1B544921F4000'x )} !!------------------------------------------------------------------- )------------------------------------------------------- !! Degrees and radians:} !!--------------------------------------------------------------------------------------------------------------------------$ real *4 F_FLOAT_DEGREES_PER_RADIAN7 parameter ( F_FLOAT_DEGREES_PER_RADIAN= '2EE04365'x )$ real *8 D_FLOAT_DEGREES_PER_RADIAN? parameter ( D_FLOAT_DEGREES_PER_RADIAN= '0FBDD31E2EE04365'x )$ real *8 G_FLOAT_DEGREES_PER_RADIAN? parameter ( G_FLOAT_DEGREES_PER_RADIAN= 'C1F81A6 *3A5DC406C'x )$ real *16 H_FLOAT_DEGREES_PER_RADIANO parameter ( H_FLOAT_DEGREES_PER_RADIAN= '81A9A6FE152E7B863C1FC1A6CA5D4006'x )} !!-------------------------------------------------------------------------------------------------------------------------- !! Golden ratio:} !!-------------------------------------------------------------------------------------------------------------------------- real *4 F_FLOAT_GOLDEN_RATIO1 parameter ( F_FLOAT_GOLDEN_RATIO= '1BBD40CF'x ) r +eal *8 D_FLOAT_GOLDEN_RATIO9 parameter ( D_FLOAT_GOLDEN_RATIO= 'A53EDCBF1BBC40CF'x ) real *8 G_FLOAT_GOLDEN_RATIO9 parameter ( G_FLOAT_GOLDEN_RATIO= 'F4A89B97E3774019'x ) real *16 H_FLOAT_GOLDEN_RATIOI parameter ( H_FLOAT_GOLDEN_RATIO= '5CEEC060F39C7C157F4A79B99E374001'x )!!----------------------------------------------------------------------------------------------------------------------------------!!##################################################################################################################################ww -#)M!!###########################################################################M!!---------------------------------------------------------------------------!! LINE_DRAWING_DEF!!!! Version 3.0!! James Fullerton 27-APR-1989M!!---------------------------------------------------------------------------!!I!! Selected line drawing character constants are provided. All are namedF!! with the prefix "LDCS_" followed by a (hopefully) descriptive name. !! All are of type C.HARACTER *1.!!A!! Corner characters are named as _CORNER, where-!! is U (upper) or L (lower), and#!! is L (left) or R (right).!!D!! Straight lines are either H (horizontal) or V (vertical) followed !! by _LINE.!!G!! The "T" junction characters are named according to the direction theF!! bar of the tee points: e.g., the letter T points DOWN. Directions!! are UP, DOWN, LEFT, RIGHT.!!=!! The line-drawing equivalent of "+" is called INTERSECTION/.!!( character *1 LDCS_DIAMOND !! ASCII '`'( parameter ( LDCS_DIAMOND= CHAR( 96 ) )$ character *1 LDCS_BOX !! ASCII 'a'$ parameter ( LDCS_BOX= CHAR( 97 ) )' character *1 LDCS_DEGREE !! ASCII 'f'( parameter ( LDCS_DEGREE= CHAR( 102 ) )+ character *1 LDCS_PLUS_MINUS !! ASCII 'g', parameter ( LDCS_PLUS_MINUS= CHAR( 103 ) )* character *1 LDCS_UL_CORNER !! ASCII 'l'+ parameter ( LDCS_UL_CORNER= CHAR( 108 ) )* character *1 LDCS_LL_CORNER !! ASCII 'm'+ parameter ( LD0CS_LL_CORNER= CHAR( 109 ) )* character *1 LDCS_UR_CORNER !! ASCII 'k'+ parameter ( LDCS_UR_CORNER= CHAR( 107 ) )* character *1 LDCS_LR_CORNER !! ASCII 'j'+ parameter ( LDCS_LR_CORNER= CHAR( 106 ) )' character *1 LDCS_H_LINE !! ASCII 'q'( parameter ( LDCS_H_LINE= CHAR( 113 ) )' character *1 LDCS_V_LINE !! ASCII 'x'( parameter ( LDCS_V_LINE= CHAR( 120 ) )( character *1 LDCS_T_RIGHT !! ASCII 't') parameter ( LDCS_T_RIGHT= CHAR( 116 ) )' character *1 LDCS_T_LEFT !! ASCII 'u'( parameter ( LDCS_T_LEFT= CHAR( 117 ) )% character *1 LDCS_T_UP !! ASCII 'v'& parameter ( LDCS_T_UP= CHAR( 118 ) )' character *1 LDCS_T_DOWN !! ASCII 'w'( parameter ( LDCS_T_DOWN= CHAR( 119 ) ), character *1 LDCS_INTERSECTION !! ASCII 'n'. parameter ( LDCS_INTERSECTION= CHAR( 110 ) )M!!###########################################################################ww 2`!!##################################################################################################################################!!----------------------------------------------------------------------------------------------------------------------------------!! LOGARITHMIC_CONSTANTS!!1!! Constants are named as .!!&!! The following s are provided:!! F_FLOAT_ (REAL *4)!! D_FLOAT_ (REAL *8)!! G_FLOAT_ (REAL *8)!! H_FLOAT_ (REAL *316)!!/!! The following s are provided:!!!! Base values:!! NAPIERIAN_E (e)!! !! Logs of 2:!! LN_2 (ln 2)!! LOG_2 (log 2) (base 10)!!!! Logs of 10:!! LN_10 (ln 10)!!!! Version 3.0!! James Fullerton 27-APR-1989!!---------------------------------------------------------------------------------------------------------------------------------- !! +--------------------+ !! | e | !! +--------------------+ real *4 F_FLOAT_NA4PIERIAN_E0 parameter ( F_FLOAT_NAPIERIAN_E= 'F854412D'x ) real *8 D_FLOAT_NAPIERIAN_E8 parameter ( D_FLOAT_NAPIERIAN_E= 'BB4B58A2F854412D'x ) real *8 G_FLOAT_NAPIERIAN_E8 parameter ( G_FLOAT_NAPIERIAN_E= '57698B14BF0A4025'x ) real *16 H_FLOAT_NAPIERIAN_EH parameter ( H_FLOAT_NAPIERIAN_E= '4E7AAC405FB895354576A8B15BF04002'x ) !! +--------------------+ !! | ln 2 | !! +--------------------+ real *4 F_FLOAT_LN_2) parameter ( F_FLOAT_LN_2= '72184031'x 5) real *8 D_FLOAT_LN_21 parameter ( D_FLOAT_LN_2= 'CF79F7D172174031'x ) real *8 G_FLOAT_LN_21 parameter ( G_FLOAT_LN_2= '39EFFEFA2E424006'x ) real *16 H_FLOAT_LN_2A parameter ( H_FLOAT_LN_2= '07E6673093C7F357A39E2FEF62E44000'x ) !! +--------------------+ !! | log 2 | !! +--------------------+ real *4 F_FLOAT_LOG_2* parameter ( F_FLOAT_LOG_2= '209B3F9A'x ) real *8 D_FLOAT_LOG_22 parameter ( D_FLOAT_LOG_2= 'CFF784FB209A3F9A'x ) real *8 G_6FLOAT_LOG_22 parameter ( G_FLOAT_LOG_2= '79FF509F44133FF3'x ) real *16 H_FLOAT_LOG_2B parameter ( H_FLOAT_LOG_2= '16F9B3581F12EF31F79F350934413FFF'x ) !! +--------------------+ !! | ln 10 | !! +--------------------+ real *4 F_FLOAT_LN_10* parameter ( F_FLOAT_LN_10= '5D8E4113'x ) real *8 D_FLOAT_LN_102 parameter ( D_FLOAT_LN_10= 'A8ACDDAA5D8D4113'x ) real *8 G_FLOAT_LN_102 parameter ( G_FLOAT_LN_10= '5515BBB56BB14022'x ) real *16 H_FLOAT_LN_10B parameter ( H_FLOAT_LN_10= '05A6AC57D4AD582D55511BBB26BB4002'x )!!----------------------------------------------------------------------------------------------------------------------------------!!##################################################################################################################################wwG_FORMS_DEF& -h܅ FULLERTON SMG_FORMS_DEF&Sޅ FULLERTON SMG_FORMS_DEF&`Z[酒 FULLERTON SMG_FORMS_DEF&@  FULLERTON SMG_FORMS_DEF `g8ˆ FULLERTON $DSCDEF Z@̆ FULLERTON $DSCDEF Y7%ۆ FULLERTON $DSCDEF%܆ FULLERTON SMG_ROUTINES%`Iz݆ FULLERTON SMG_ROUTINES `>Ċ FULLERTON $DSCDEF \vL0 FULLERTON $DSCDEF%+: FULLERTON SMG_ROUTINES 8C FULLERTO9HL0P!!############################################################################## !! $DSCDEF!!!! Version 2.1!!I!! This module supplies prototype structure declarations for descriptors.r!!!! James Fullerton !! 2-AUG-1989e=!! Define prototype structure for FORTRAN scalar descriptors:h!!5!! /dsc_scalar_def/ is like the /DSCDEF/ structure in!I!! SYS$LIBRARY:FORSYSDEF.TLB, except that it does not have the extraneousA*!! garbage that is required for VAX BASIC. str ucture /dsc_scalar_def/!7 integer *2 dsc$w_length !! length in bytes of scalar.K, byte dsc$b_dtype !! DSC$K_DTYPE_xxx code., byte dsc$b_class !! DSC$K_CLASS_xxx code., integer *4 dsc$a_pointer !! %LOC( scalar )" end structure !! /dsc_scalar_def/P!!##############################################################################wwtes:nk!! 1 There is not necessarily any association between field(n) and label(n); they are separate concepts.f!! 2 Limited picture codes can be specifie<ameter smg_trm_class_prev_field= '00000002'x !! BS, PREV_SCREEN, F12, E5, CTRLHa7 parameter smg_trm_class_scroll_down= '00000004'x !! UPd7 parameter smg_trm_class_scroll_up= '00000008'x !! DOWNu: parameter smg_trm_class_scroll_left= '00000010'x !! RIGHT: parameter smg_trm_class_scroll_right= '00000020'x !! LEFTC parameter smg_trm_class_erase_field= '00000040'x !! LF, F13, CTRLJ#= parameter smg_trm_class_help= '00000080'x !! HELP, F15, PF2!7 parameter smg_trm_class_refresh= '00000100G_DEF%_ U FULLERTON SMG_ROUTINES @T} FULLERTON SMG_DEF { FULLERTON $SMGDEF @6w | FULLERTON SMG_DEF f| FULLERTON $SMGDEF=a {!*** MODULE $SMGDEF ***#1! Definitions for RTL Screen Management Facility#! ! Input terminator codes#! ! ! Control charactersG! 3 PARAMETER SMG$K_TRM_NULL_CHAR = '00000000'X ! NULa/ PARAMETER SMG$K_TRM_CTRLA = '00000001'X ! SOH / PARAMETER SMG$K_TRM_CTRLB = '00000002'X ! STXa/ PARAMETER SMG$K_TRM_CTRLC = '00000003'X ! ETXt/ PARAMETER SMG$K_TRM_CTRLD = '00000004'X ! EOT_/ PARAMETER SMG$K_TRM_CTRLE = '00000005'X ! ENQ0/ PARAMETER SMG$K_TRM_CTRLF = '000000>06'X ! ACKt/ PARAMETER SMG$K_TRM_CTRLG = '00000007'X ! BELE. PARAMETER SMG$K_TRM_CTRLH = '00000008'X ! BS. PARAMETER SMG$K_TRM_CTRLI = '00000009'X ! HT. PARAMETER SMG$K_TRM_CTRLJ = '0000000A'X ! LF. PARAMETER SMG$K_TRM_CTRLK = '0000000B'X ! VT. PARAMETER SMG$K_TRM_CTRLL = '0000000C'X ! FF. PARAMETER SMG$K_TRM_CTRLM = '0000000D'X ! CR. PARAMETER SMG$K_TRM_CTRLN = '0000000E'X ! SO. PARAMETER SMG$K_TRM_CTRLO = '0000000F'X ! SI/ PARAMETER SMG$K_TRM_CTRLP = '00000010'X ! DLE / PARAMET?'x !! CTRLR,C parameter smg_trm_class_exit_form= '00000200'x !! CR, ENTER, CTRLMu@ parameter smg_trm_class_exit_program= '00000400'x !! F10, CTRLZF parameter smg_trm_class_unknown_class= '00000000'x !! Something else.!!##################################################################################################################################ww necessarily any association between field(n) and label(n); they are separate concepts.-f!! 2 Limited picture codes can be specified: be@ER SMG$K_TRM_CTRLQ = '00000011'X ! DC1u/ PARAMETER SMG$K_TRM_CTRLR = '00000012'X ! DC2w/ PARAMETER SMG$K_TRM_CTRLS = '00000013'X ! DC3!/ PARAMETER SMG$K_TRM_CTRLT = '00000014'X ! DC4e/ PARAMETER SMG$K_TRM_CTRLU = '00000015'X ! NAK / PARAMETER SMG$K_TRM_CTRLV = '00000016'X ! SYNs/ PARAMETER SMG$K_TRM_CTRLW = '00000017'X ! ETBo/ PARAMETER SMG$K_TRM_CTRLX = '00000018'X ! CANr. PARAMETER SMG$K_TRM_CTRLY = '00000019'X ! EM/ PARAMETER SMG$K_TRM_CTRLZ = '0000001A'X ! SUB 0 PARAMETER SMG$KA_TRM_ESCAPE = '0000001B'X ! ESC+ PARAMETER SMG$K_TRM_FS = '0000001C'X ! FSm+ PARAMETER SMG$K_TRM_GS = '0000001D'X ! GSF+ PARAMETER SMG$K_TRM_RS = '0000001E'X ! RSt+ PARAMETER SMG$K_TRM_US = '0000001F'X ! USr. PARAMETER SMG$K_TRM_SPACE = '00000020'X ! SP9 PARAMETER SMG$K_TRM_EXCLAMATION_POINT = '00000021'X ! !u4 PARAMETER SMG$K_TRM_DOUBLE_QUOTE = '00000022'X ! "3 PARAMETER SMG$K_TRM_NUMBER_SIGN = '00000023'X ! #-3 PARAMETER SMG$K_TRM_DOLLAR_SIGN = '00000024'X ! $e4 PARAMETER SMG$K_TBRM_PERCENT_SIGN = '00000025'X ! %1 PARAMETER SMG$K_TRM_AMPERSAND = '00000026'X ! &e- PARAMETER SMG$K_TRM_QUOTE = '00000027'X ! '_2 PARAMETER SMG$K_TRM_LEFT_PAREN = '00000028'X ! (3 PARAMETER SMG$K_TRM_RIGHT_PAREN = '00000029'X ! )!0 PARAMETER SMG$K_TRM_ASTERISK = '0000002A'X ! *1 PARAMETER SMG$K_TRM_PLUS_SIGN = '0000002B'X ! +o2 PARAMETER SMG$K_TRM_COMMA_CHAR = '0000002C'X ! ,, PARAMETER SMG$K_TRM_DASH = '0000002D'X ! -+ PARAMETER SMG$K_TRM_DOT = '0000002E'X ! .-- PARAMETER SMG$K_TCRM_SLASH = '0000002F'X ! /-, PARAMETER SMG$K_TRM_ZERO = '00000030'X ! 0+ PARAMETER SMG$K_TRM_ONE = '00000031'X ! 1c+ PARAMETER SMG$K_TRM_TWO = '00000032'X ! 2o- PARAMETER SMG$K_TRM_THREE = '00000033'X ! 3r, PARAMETER SMG$K_TRM_FOUR = '00000034'X ! 4, PARAMETER SMG$K_TRM_FIVE = '00000035'X ! 5+ PARAMETER SMG$K_TRM_SIX = '00000036'X ! 6r- PARAMETER SMG$K_TRM_SEVEN = '00000037'X ! 7'- PARAMETER SMG$K_TRM_EIGHT = '00000038'X ! 8 , PARAMETER SMG$K_TRM_NINE = '00000039'X ! 9- PARAMETERD SMG$K_TRM_COLON = '0000003A'X ! : 1 PARAMETER SMG$K_TRM_SEMICOLON = '0000003B'X ! ;e1 PARAMETER SMG$K_TRM_LESS_THAN = '0000003C'X ! <- PARAMETER SMG$K_TRM_EQUAL = '0000003D'X ! =t4 PARAMETER SMG$K_TRM_GREATER_THAN = '0000003E'X ! >5 PARAMETER SMG$K_TRM_QUESTION_MARK = '0000003F'X ! ?s/ PARAMETER SMG$K_TRM_AT_SIGN = '00000040'X ! @m3 PARAMETER SMG$K_TRM_UPPERCASE_A = '00000041'X ! AE3 PARAMETER SMG$K_TRM_UPPERCASE_B = '00000042'X ! B03 PARAMETER SMG$K_TRM_UPPERCASE_C = '00000043'X !E Cm3 PARAMETER SMG$K_TRM_UPPERCASE_D = '00000044'X ! Dr3 PARAMETER SMG$K_TRM_UPPERCASE_E = '00000045'X ! E 3 PARAMETER SMG$K_TRM_UPPERCASE_F = '00000046'X ! F03 PARAMETER SMG$K_TRM_UPPERCASE_G = '00000047'X ! Gg3 PARAMETER SMG$K_TRM_UPPERCASE_H = '00000048'X ! H_3 PARAMETER SMG$K_TRM_UPPERCASE_I = '00000049'X ! Id3 PARAMETER SMG$K_TRM_UPPERCASE_J = '0000004A'X ! J3 PARAMETER SMG$K_TRM_UPPERCASE_K = '0000004B'X ! Kn3 PARAMETER SMG$K_TRM_UPPERCASE_L = '0000004C'X ! L3 PARAMETER SMGk$K_TRM_UPPERCASE_M = '0000004D'X ! MS3 PARAMETER SMG$K_TRM_UPPERCASE_N = '0000004E'X ! Nc3 PARAMETER SMG$K_TRM_UPPERCASE_O = '0000004F'X ! Ot3 PARAMETER SMG$K_TRM_UPPERCASE_P = '00000050'X ! Pr3 PARAMETER SMG$K_TRM_UPPERCASE_Q = '00000051'X ! Qr3 PARAMETER SMG$K_TRM_UPPERCASE_R = '00000052'X ! RT3 PARAMETER SMG$K_TRM_UPPERCASE_S = '00000053'X ! S 3 PARAMETER SMG$K_TRM_UPPERCASE_T = '00000054'X ! T 3 PARAMETER SMG$K_TRM_UPPERCASE_U = '00000055'X ! Uc3 PARAMETER SMG$K_TRM_UPPERCASE_V =G`@M!!###########################################################################M!!---------------------------------------------------------------------------!! RECEIVED_TERMINAL_CODES!!!! Version 3.0!! James Fullerton 27-APR-1989M!!---------------------------------------------------------------------------D !!----------------------------------------------------------------- !! Character Set Selection: !!# !! For "hard" character sets only.A !! Character sets a Hre designated for a graphic memory area named; !! Gn in the terminal by the code for a particular graphicA !! rendition. The set of available graphic renditions are named+ !! CS_ (listed below). !!< !! For example, to designate G1 as the DEC_SPECIAL_GRAPHICS !! character set, send# !! SET_G1, CS_DEC_SPECIAL_GRAPHICS !! to the terminal.D !!----------------------------------------------------------------- character *2 SET_G0) parameter ( SET_G0= CHAR( 27 ) /I/ '(' ) character *2 SET_G1) parameter ( SET_G1= CHAR( 27 ) // ')' ) character *2 SET_G2) parameter ( SET_G2= CHAR( 27 ) // '*' ) character *2 SET_G3) parameter ( SET_G3= CHAR( 27 ) // '+' ) character *1 CS_ASCII parameter ( CS_ASCII= 'B' )! character *1 CS_DEC_SUPPLEMENTAL( parameter ( CS_DEC_SUPPLEMENTAL= '<' )% character *1 CS_DEC_SPECIAL_GRAPHICS, parameter ( CS_DEC_SPECIAL_GRAPHICS= '0' ) character *1 CS_BRITISH parameter ( CS_BRITISH= 'A' ) character *1 CSJ_DUTCH parameter ( CS_DUTCH= '4' ) character *1 CS_FINNISH parameter ( CS_FINNISH= 'C' ) character *1 CS_FRENCH parameter ( CS_FRENCH= 'R' ) character *1 CS_FRENCH_CANADIAN' parameter ( CS_FRENCH_CANADIAN= 'Q' ) character *1 CS_GERMAN parameter ( CS_GERMAN= 'K' ) character *1 CS_ITALIAN parameter ( CS_ITALIAN= 'Y' ) character *1 CS_NORWEGIAN! parameter ( CS_NORWEGIAN= 'E' ) character *1 CS_DANISH parameter ( CS_DANISH= 'E' ) character *1 CS_SPANISH para Kmeter ( CS_SPANISH= 'Z' ) character *1 CS_SWEDISH parameter ( CS_SWEDISH= 'H' ) character *1 CS_SWISS parameter ( CS_SWISS= '=' )D !!----------------------------------------------------------------- !! Invoking Character Sets: !!C !! Once a character set has been loaded into a graphic memory (Gn)B !! (see above), that graphic rendition of a character code can beB !! displayed by LOCKing or SHIFTing that graphic memory (Gn) intoD !! the display translation memory (GL or GR). LGL is for characters8 !! whose MSB is 0; GR is for characters whose MSB is 1. !!@ !! Once a character set is LOCKed into a translation memory, it? !! remains there until another is LOCKed into the same memory.D !!----------------------------------------------------------------- character *1 LOCK_G0_INTO_GL+ parameter ( LOCK_G0_INTO_GL= CHAR( 15 ) ) character *1 LOCK_G1_INTO_GL+ parameter ( LOCK_G1_INTO_GL= CHAR( 14 ) ) character *2 LOCK_G1_INTO_GR2 parameter ( LOCK_G1_INTOM_GR= CHAR( 27 ) // '~' ) character *2 LOCK_G2_INTO_GL2 parameter ( LOCK_G2_INTO_GL= CHAR( 27 ) // 'n' ) character *2 LOCK_G2_INTO_GR2 parameter ( LOCK_G2_INTO_GR= CHAR( 27 ) // '}' ) character *2 LOCK_G3_INTO_GL2 parameter ( LOCK_G3_INTO_GL= CHAR( 27 ) // 'o' ) character *2 LOCK_G3_INTO_GR2 parameter ( LOCK_G3_INTO_GR= CHAR( 27 ) // '|' ) character *1 SHIFT_G2_INTO_GL- parameter ( SHIFT_G2_INTO_GL= CHAR( 142 ) ) character *1 SHIFT_G3_INTO_GL- parameter ( SHIFT_G3_INT NO_GL= CHAR( 143 ) )D !!----------------------------------------------------------------- !! Terminal Modes: !!B !! A variety of terminal features can be selected. All are namedB !! beginning with SET_. Those features that do not have distinctB !! names for their "set/on" vs. "reset/off" modes, the feature is/ !! turned on or off by SET_[NO]. !!B !! For several features this does not make much sense, so each ofE !! their modes is named, e.g., SET_INSERT_MODE and SET_OREPLACE_MODE.D !!-----------------------------------------------------------------! character *3 SET_KEYBOARD_LOCKED8 parameter ( SET_KEYBOARD_LOCKED= CHAR( 155 ) // '2h' )# character *3 SET_KEYBOARD_UNLOCKED: parameter ( SET_KEYBOARD_UNLOCKED= CHAR( 155 ) // '2l' ) character *3 SET_INSERT_MODE4 parameter ( SET_INSERT_MODE= CHAR( 155 ) // '4h' ) character *3 SET_REPLACE_MODE5 parameter ( SET_REPLACE_MODE= CHAR( 155 ) // '4l' ) character *4 SET_LOCAL_ECHO4 parameter ( SET_PLOCAL_ECHO =CHAR( 155 ) // '12h' ) character *4 SET_NOLOCAL_ECHO6 parameter ( SET_NOLOCAL_ECHO= CHAR( 155 ) // '12l' ) character *5 SET_CURSOR1 parameter ( SET_CURSOR= CHAR( 155 ) // '?25h' ) character *5 SET_NOCURSOR3 parameter ( SET_NOCURSOR= CHAR( 155 ) // '?25l' )! character *4 SET_APP_CURSOR_KEYS9 parameter ( SET_APP_CURSOR_KEYS= CHAR( 155 ) // '?1h' )! character *4 SET_NUM_CURSOR_KEYS9 parameter ( SET_NUM_CURSOR_KEYS= CHAR( 155 ) // '?1l' ) character *4 SET_132_COQLUMNS5 parameter ( SET_132_COLUMNS= CHAR( 155 ) // '?3h' ) character *4 SET_80_COLUMNS4 parameter ( SET_80_COLUMNS= CHAR( 155 ) // '?3l' ) character *4 SET_SMOOTH_SCROLL7 parameter ( SET_SMOOTH_SCROLL= CHAR( 155 ) // '?4h' ) character *4 SET_JUMP_SCROLL5 parameter ( SET_JUMP_SCROLL= CHAR( 155 ) // '?4l' ) character *4 SET_BRIGHT_SCREEN7 parameter ( SET_BRIGHT_SCREEN= CHAR( 155 ) // '?5h' ) character *4 SET_DARK_SCREEN5 parameter ( SET_DARK_SCREEN= CHAR( 155 ) // '?5lR' ) character *4 SET_SCROLL_ORIGIN7 parameter ( SET_SCROLL_ORIGIN= CHAR( 155 ) // '?6h' ) character *4 SET_SCREEN_ORIGIN7 parameter ( SET_SCREEN_ORIGIN= CHAR( 155 ) // '?6l' ) character *4 SET_AUTOWRAP2 parameter ( SET_AUTOWRAP= CHAR( 155 ) // '?7h' ) character *4 SET_NOAUTOWRAP4 parameter ( SET_NOAUTOWRAP= CHAR( 155 ) // '?7l' ) character *4 SET_AUTOREPEAT4 parameter ( SET_AUTOREPEAT= CHAR( 155 ) // '?8h' ) character *4 SET_NOAUTOREPEAT6 parameter ( SET_NOAUTOREPEATS= CHAR( 155 ) // '?8l' ) character *5 SET_PRINT_FORMFEED9 parameter ( SET_PRINT_FORMFEED= CHAR( 155 ) // '?18h' )" character *5 SET_NOPRINT_FORMFEED; parameter ( SET_NOPRINT_FORMFEED= CHAR( 155 ) // '?18l' ) character *5 SET_PRINT_SCREEN7 parameter ( SET_PRINT_SCREEN= CHAR( 155 ) // '?19h' )% character *5 SET_PRINT_SCROLL_REGION> parameter ( SET_PRINT_SCROLL_REGION= CHAR( 155 ) // '?19l' ) character *2 SET_APP_KEYPAD1 parameter ( SET_APP_KEYPAD= CHAR( 27 ) // '=' ) chara Tcter *2 SET_NUM_KEYPAD1 parameter ( SET_NUM_KEYPAD= CHAR( 27 ) // '>' ) character *5 SET_NATIONAL_MODE8 parameter ( SET_NATIONAL_MODE= CHAR( 155 ) // '?42h' )$ character *5 SET_MULTINATIONAL_MODE= parameter ( SET_MULTINATIONAL_MODE= CHAR( 155 ) // '?42l' )D !!----------------------------------------------------------------- !! Cursor Positioning: !!B !! Cursor positioning is accomplished by sending a construct likeB !! MOVE_CURSOR, how_much, , where is oneU of: !! LINES_UP, LINES_DOWN, !! COLUMNS_RIGHT, COLUMNS_LEFT, !! TO_POSITION. !!, !! Example 1: MOVE_CURSOR, '3', LINES_DOWN1 !! Example 2: MOVE_CURSOR, '10;41', TO_POSITIOND !!----------------------------------------------------------------- character *1 MOVE_CURSOR( parameter ( MOVE_CURSOR= CHAR( 155 ) ) character *1 LINES_UP parameter ( LINES_UP= 'A' ) character *1 LINES_DOWN parameter ( LINES_DOWN ='B' ) character *1 COLUMNS_RIGHT" parameter ( COLUMNS_RIGHVT= 'C' ) character *1 COLUMNS_LEFT! parameter ( COLUMNS_LEFT= 'D' ) character *1 TO_POSITION parameter ( TO_POSITION= 'H' ) character *2 SAVE_CURSOR. parameter ( SAVE_CURSOR= CHAR( 27 ) // '7' ) character *2 RESTORE_CURSOR1 parameter ( RESTORE_CURSOR= CHAR( 27 ) // '8' )D !!-----------------------------------------------------------------+ !! Graphic Rendition/Character Attributes: !!@ !! Select character video attributes. Attributes are turned on8 !! by . W They are turned off individually by> !! NO, or collectively by NORMAL (except selective !! erase attribute).D !!----------------------------------------------------------------- character *3 NORMAL+ parameter ( NORMAL= CHAR( 155 ) // '0m' ) character *3 BOLD) parameter ( BOLD= CHAR( 155 ) // '1m' ) character *4 NOBOLD, parameter ( NOBOLD= CHAR( 155 ) // '22m' ) character *3 UNDERLINE. parameter ( UNDERLINE= CHAR( 155 ) // '4m' ) character *4 NOUNDERLINE1 Xparameter ( NOUNDERLINE= CHAR( 155 ) // '24m' ) character *3 BLINK* parameter ( BLINK= CHAR( 155 ) // '5m' ) character *4 NOBLINK- parameter ( NOBLINK= CHAR( 155 ) // '25m' ) character *3 REVERSE, parameter ( REVERSE= CHAR( 155 ) // '7m' ) character *4 NOREVERSE/ parameter ( NOREVERSE= CHAR( 155 ) // '27m' ) character *3 ERASABLE. parameter ( ERASABLE= CHAR( 155 ) // '2"q' ) character *4 NOERASABLE0 parameter ( NOERASABLE= CHAR( 155 ) // '1"q' )D !!------------- Y---------------------------------------------------- !! Line Attributes: !!? !! A line can have characters of single- or double-height, and !! single- or double-width.D !!----------------------------------------------------------------- character *3 DOUBLE_HEIGHT_TOP5 parameter ( DOUBLE_HEIGHT_TOP= CHAR( 27 ) // '#3' )" character *3 DOUBLE_HEIGHT_BOTTOM8 parameter ( DOUBLE_HEIGHT_BOTTOM= CHAR( 27 ) // '#4' ) character *3 NODOUBLE_HEIGHT4 parameter ( NODOUBLE_HEIGHT= CHAR( 155Z ) // '0m' ) character *3 SINGLE_WIDTH0 parameter ( SINGLE_WIDTH= CHAR( 27 ) // '#5' ) character *3 DOUBLE_WIDTH0 parameter ( DOUBLE_WIDTH= CHAR( 27 ) // '#6' )D !!----------------------------------------------------------------- !! Erasing: !!? !! Erasing is accomplished by one of the following operations: !! _# !! __TO_ !!0 !! The s are: ERASE | SELECTERASE. !! !! The s of erasing are:. !! CURSOR cur[rent cursor position (inclusive)! !! BOL beginning of current line !! EOL end of current line !! BOS beginning of screen !! EOS end of screen !!* !! An is one of: LINE | SCREEN.D !!-----------------------------------------------------------------! character *2 ERASE_CURSOR_TO_EOL7 parameter ( ERASE_CURSOR_TO_EOL= CHAR( 155 ) // 'K' )! character *3 ERASE_BOL_TO_CURSOR8 parameter ( ERASE_BOL_TO_CURSOR= CHAR( 155 ) // '1K' ) character *3 ERASE_LINE/ parameter ( ER \ASE_LINE= CHAR( 155 ) // '2K' )! character *2 ERASE_CURSOR_TO_EOS7 parameter ( ERASE_CURSOR_TO_EOS= CHAR( 155 ) // 'J' )! character *3 ERASE_BOS_TO_CURSOR8 parameter ( ERASE_BOS_TO_CURSOR= CHAR( 155 ) // '1J' ) character *3 ERASE_SCREEN1 parameter ( ERASE_SCREEN= CHAR( 155 ) // '2J' )' character *3 SELECTERASE_CURSOR_TO_EOL> parameter ( SELECTERASE_CURSOR_TO_EOL= CHAR( 155 ) // '?K' )' character *4 SELECTERASE_BOL_TO_CURSOR? parameter ( SELECTERASE_BOL_TO_CURSOR= CHAR( 155 )] // '?1K' ) character *4 SELECTERASE_LINE6 parameter ( SELECTERASE_LINE= CHAR( 155 ) // '?2K' )' character *3 SELECTERASE_CURSOR_TO_EOS> parameter ( SELECTERASE_CURSOR_TO_EOS= CHAR( 155 ) // '?J' )' character *4 SELECTERASE_BOS_TO_CURSOR? parameter ( SELECTERASE_BOS_TO_CURSOR= CHAR( 155 ) // '?1J' ) character *4 SELECTERASE_SCREEN8 parameter ( SELECTERASE_SCREEN= CHAR( 155 ) // '?2J' )D !!----------------------------------------------------------------- !! Printing: !!D ! ^! An attached printer can be controlled from a program. Names for. !! the available printing modes are provided.D !!----------------------------------------------------------------- character *4 SET_AUTOPRINT3 parameter ( SET_AUTOPRINT= CHAR( 155 ) // '?5i' ) character *4 SET_NOAUTOPRINT5 parameter ( SET_NOAUTOPRINT= CHAR( 155 ) // '?4i' )# character *3 SET_PRINTERCONTROLLER: parameter ( SET_PRINTERCONTROLLER= CHAR( 155 ) // '5i' )% character *3 SET_NOPRINTERCONTROLLER< para meter ( SET_NOPRINTERCONTROLLER= CHAR( 155 ) // '4i' ) character *4 PRINT_CURSORLINE6 parameter ( PRINT_CURSORLINE= CHAR( 155 ) // '?1i' ) character *2 PRINT_SCREEN0 parameter ( PRINT_SCREEN= CHAR( 155 ) // 'i' )M!!###########################################################################ww ``m$M!!###########################################################################M!!---------------------------------------------------------------------------!! TRANSMITTED_TERMINAL_CODES!!!! Version 3.0!! James Fullerton 27-APR-1989M!!---------------------------------------------------------------------------D !!----------------------------------------------------------------- !! Editing Keypad: !!> !! Keys are named as En and as E_ for convenience.a= !! Arrow (cursor)keys are named as _, where0 !! is UP | DOWN | LEFT | RIGHT, and: !! is NUM (numeric or ASCII) | null (application).D !!----------------------------------------------------------------- character *3 E1' parameter ( E1= CHAR( 155 ) // '1~' ) character *3 E_FIND+ parameter ( E_FIND= CHAR( 155 ) // '1~' ) character *3 E2' parameter ( E2= CHAR( 155 ) // '2~' ) character *3 E_INSERT_HERE2 parameter ( E_INSERT_HERE= CHAR( 155b ) // '2~' ) character *3 E3' parameter ( E3= CHAR( 155 ) // '3~' ) character *3 E_REMOVE- parameter ( E_REMOVE= CHAR( 155 ) // '3~' ) character *3 E4' parameter ( E4= CHAR( 155 ) // '4~' ) character *3 E_SELECT- parameter ( E_SELECT= CHAR( 155 ) // '4~' ) character *3 E5' parameter ( E5= CHAR( 155 ) // '5~' ) character *3 E_PREV_SCREEN2 parameter ( E_PREV_SCREEN= CHAR( 155 ) // '5~' ) character *3 E6' parameter ( E6= CHAR( 155 ) // '6~' ) character *3 E_NEcXT_SCREEN2 parameter ( E_NEXT_SCREEN= CHAR( 155 ) // '6~' ) character *2 UP_ARROW_NUM0 parameter ( UP_ARROW_NUM= CHAR( 155 ) // 'A' ) character *2 UP_ARROW, parameter ( UP_ARROW= CHAR( 143 ) // 'A' ) character *2 DOWN_ARROW_NUM2 parameter ( DOWN_ARROW_NUM= CHAR( 155 ) // 'B' ) character *2 DOWN_ARROW. parameter ( DOWN_ARROW= CHAR( 143 ) // 'B' ) character *2 RIGHT_ARROW_NUM3 parameter ( RIGHT_ARROW_NUM= CHAR( 155 ) // 'C' ) character *2 RIGHT_ARROW/ parameter ( RIGHdT_ARROW= CHAR( 143 ) // 'C' ) character *2 LEFT_ARROW_NUM2 parameter ( LEFT_ARROW_NUM= CHAR( 155 ) // 'D' ) character *2 LEFT_ARROW. parameter ( LEFT_ARROW= CHAR( 143 ) // 'D' )D !!----------------------------------------------------------------- !! Keypad: !!' !! Keys are named as KPn_, where: !! is NUM (numeric or ASCII) | null (application). !!$ !! PF keys are named as PFn_.D !!----------------------------------------------------------------- charaecter *2 KP0' parameter ( KP0= CHAR( 143 ) // 'p' ) character *2 KP1' parameter ( KP1= CHAR( 143 ) // 'q' ) character *2 KP2' parameter ( KP2= CHAR( 143 ) // 'r' ) character *2 KP3' parameter ( KP3= CHAR( 143 ) // 's' ) character *2 KP4' parameter ( KP4= CHAR( 143 ) // 't' ) character *2 KP5' parameter ( KP5= CHAR( 143 ) // 'u' ) character *2 KP6' parameter ( KP6= CHAR( 143 ) // 'v' ) character *2 KP7' parameter ( KP7= CHAR( 143 ) // 'w' )f character *2 KP8' parameter ( KP8= CHAR( 143 ) // 'x' ) character *2 KP9' parameter ( KP9= CHAR( 143 ) // 'y' ) character *2 KPMINUS+ parameter ( KPMINUS= CHAR( 143 ) // 'm' ) character *2 KPCOMMA+ parameter ( KPCOMMA= CHAR( 143 ) // 'l' ) character *2 KPPERIOD, parameter ( KPPERIOD= CHAR( 143 ) // 'n' ) character *2 KPENTER+ parameter ( KPENTER= CHAR( 143 ) // 'M' ) character *2 PF1_NUM* parameter ( PF1_NUM= CHAR( 27 ) // 'P' ) character *2 PF1' gparameter ( PF1= CHAR( 143 ) // 'P' ) character *2 PF2_NUM* parameter ( PF2_NUM= CHAR( 27 ) // 'Q' ) character *2 PF2' parameter ( PF2= CHAR( 143 ) // 'Q' ) character *2 PF3_NUM* parameter ( PF3_NUM= CHAR( 27 ) // 'R' ) character *2 PF3' parameter ( PF3= CHAR( 143 ) // 'R' ) character *2 PF4_NUM* parameter ( PF4_NUM= CHAR( 27 ) // 'S' ) character *2 PF4' parameter ( PF4= CHAR( 143 ) // 'S' )D !!-----------------------------------------------------------------h !! Function Keys: !!# !! Function keys are named as Fnn. !!. !! The Help and Do keys are named as follows: !! Help -> FHELP or F15 !! Do -> FDO or F16D !!----------------------------------------------------------------- character *4 F6( parameter ( F6= CHAR( 155 ) // '17~' ) character *4 F7( parameter ( F7= CHAR( 155 ) // '18~' ) character *4 F8( parameter ( F8= CHAR( 155 ) // '19~' ) character *4 F9( parameter ( F9= CHAR( 155 ) // '20~' ) character *4 F10) iparameter ( F10= CHAR( 155 ) // '21~' ) character *4 F11) parameter ( F11= CHAR( 155 ) // '23~' ) character *4 F12) parameter ( F12= CHAR( 155 ) // '24~' ) character *4 F13) parameter ( F13= CHAR( 155 ) // '25~' ) character *4 F14) parameter ( F14= CHAR( 155 ) // '26~' ) character *4 F15) parameter ( F15= CHAR( 155 ) // '28~' ) character *4 FHELP+ parameter ( FHELP= CHAR( 155 ) // '28~' ) character *4 F16) parameter ( F16= CHAR( 155 ) // '29~' ) character *j4 FDO) parameter ( FDO= CHAR( 155 ) // '29~' ) character *4 F17) parameter ( F17= CHAR( 155 ) // '31~' ) character *4 F18) parameter ( F18= CHAR( 155 ) // '32~' ) character *4 F19) parameter ( F19= CHAR( 155 ) // '33~' ) character *4 F20) parameter ( F20= CHAR( 155 ) // '34~' )D !!----------------------------------------------------------------- !! Compatibility level: !!A !! Transmit codes as 7-bit or 8-bit codes. Named as SET_n_BITS.D !!----------------------- ------------------------------------------ character *7 SET_7_BIT2 parameter ( SET_7_BIT= CHAR( 155 ) // '62;0"p' ) character *7 SET_8_BIT2 parameter ( SET_8_BIT= CHAR( 155 ) // '62;1"p' )M!!###########################################################################wwl '00000056'X ! Vg3 PARAMETER SMG$K_TRM_UPPERCASE_W = '00000057'X ! We3 PARAMETER SMG$K_TRM_UPPERCASE_X = '00000058'X ! X!3 PARAMETER SMG$K_TRM_UPPERCASE_Y = '00000059'X ! Ys3 PARAMETER SMG$K_TRM_UPPERCASE_Z = '0000005A'X ! Zl4 PARAMETER SMG$K_TRM_LEFT_BRACKET = '0000005B'X ! [1 PARAMETER SMG$K_TRM_BACKSLASH = '0000005C'X ! \l5 PARAMETER SMG$K_TRM_RIGHT_BRACKET = '0000005D'X ! ]y- PARAMETER SMG$K_TRM_CARET = '0000005E'X ! ^e1 PARAMETER SMG$K_TRM_UNDERLINE = '0000005F'X ! _u4 PARAMETmER SMG$K_TRM_GRAVE_ACCENT = '00000060'X ! `3 PARAMETER SMG$K_TRM_LOWERCASE_A = '00000061'X ! ae3 PARAMETER SMG$K_TRM_LOWERCASE_B = '00000062'X ! b3 PARAMETER SMG$K_TRM_LOWERCASE_C = '00000063'X ! ca3 PARAMETER SMG$K_TRM_LOWERCASE_D = '00000064'X ! du3 PARAMETER SMG$K_TRM_LOWERCASE_E = '00000065'X ! et3 PARAMETER SMG$K_TRM_LOWERCASE_F = '00000066'X ! f 3 PARAMETER SMG$K_TRM_LOWERCASE_G = '00000067'X ! ge3 PARAMETER SMG$K_TRM_LOWERCASE_H = '00000068'X ! hb3 PARAMETER SMG$K_TRM_LOWERCAnSE_I = '00000069'X ! i3 PARAMETER SMG$K_TRM_LOWERCASE_J = '0000006A'X ! j/3 PARAMETER SMG$K_TRM_LOWERCASE_K = '0000006B'X ! kn3 PARAMETER SMG$K_TRM_LOWERCASE_L = '0000006C'X ! le3 PARAMETER SMG$K_TRM_LOWERCASE_M = '0000006D'X ! me3 PARAMETER SMG$K_TRM_LOWERCASE_N = '0000006E'X ! nu3 PARAMETER SMG$K_TRM_LOWERCASE_O = '0000006F'X ! od3 PARAMETER SMG$K_TRM_LOWERCASE_P = '00000070'X ! ps3 PARAMETER SMG$K_TRM_LOWERCASE_Q = '00000071'X ! q 3 PARAMETER SMG$K_TRM_LOWERCASE_R = '00000072'X !o rl3 PARAMETER SMG$K_TRM_LOWERCASE_S = '00000073'X ! st3 PARAMETER SMG$K_TRM_LOWERCASE_T = '00000074'X ! tg3 PARAMETER SMG$K_TRM_LOWERCASE_U = '00000075'X ! u 3 PARAMETER SMG$K_TRM_LOWERCASE_V = '00000076'X ! v$3 PARAMETER SMG$K_TRM_LOWERCASE_W = '00000077'X ! w!3 PARAMETER SMG$K_TRM_LOWERCASE_X = '00000078'X ! x 3 PARAMETER SMG$K_TRM_LOWERCASE_Y = '00000079'X ! y 3 PARAMETER SMG$K_TRM_LOWERCASE_Z = '0000007A'X ! z4A PARAMETER SMG$K_TRM_LEFT_BRACE = '0000007B'X ! left curly bracen5p PARAMETER SMG$K_TRM_VERTICAL_LINE = '0000007C'X ! |mC PARAMETER SMG$K_TRM_RIGHT_BRACE = '0000007D'X ! right curly brace - PARAMETER SMG$K_TRM_TILDE = '0000007E'X ! ~!0 PARAMETER SMG$K_TRM_DELETE = '0000007F'X ! DEL! "! Synonyms for control characters! % PARAMETER SMG$K_TRM_BS = '00000008'Xe% PARAMETER SMG$K_TRM_HT = '00000009'Xl% PARAMETER SMG$K_TRM_LF = '0000000A'X % PARAMETER SMG$K_TRM_VT = '0000000B'X% PARAMETER SMG$K_TRM_FF = '0000000C'X % PARAMETER SMG$K_TRM_CR = '0000000D'X4q! ! Keypad keys! & PARAMETER SMG$K_TRM_PF1 = '00000100'X& PARAMETER SMG$K_TRM_PF2 = '00000101'X& PARAMETER SMG$K_TRM_PF3 = '00000102'X& PARAMETER SMG$K_TRM_PF4 = '00000103'X& PARAMETER SMG$K_TRM_KP0 = '00000104'X& PARAMETER SMG$K_TRM_KP1 = '00000105'X& PARAMETER SMG$K_TRM_KP2 = '00000106'X& PARAMETER SMG$K_TRM_KP3 = '00000107'X& PARAMETER SMG$K_TRM_KP4 = '00000108'X& PARAMETER SMG$K_TRM_KP5 = '00000109'X& PARAMETER SMG$K_TRM_KP6 = '0000010A'X& PARAMETER SMG$K_TRM_KP7 = '0000010B'X&r PARAMETER SMG$K_TRM_KP8 = '0000010C'X& PARAMETER SMG$K_TRM_KP9 = '0000010D'X( PARAMETER SMG$K_TRM_ENTER = '0000010E'X( PARAMETER SMG$K_TRM_MINUS = '0000010F'X( PARAMETER SMG$K_TRM_COMMA = '00000110'X) PARAMETER SMG$K_TRM_PERIOD = '00000111'X#! ! Cursor positioning keys! % PARAMETER SMG$K_TRM_UP = '00000112'X#' PARAMETER SMG$K_TRM_DOWN = '00000113'XN' PARAMETER SMG$K_TRM_LEFT = '00000114'Xb( PARAMETER SMG$K_TRM_RIGHT = '00000115'X! ! Function keys! % PARAMETER SMG$K_TRM_F1 = '0s0000119'X % PARAMETER SMG$K_TRM_F2 = '0000011A'Xt% PARAMETER SMG$K_TRM_F3 = '0000011B'X % PARAMETER SMG$K_TRM_F4 = '0000011C'Xv% PARAMETER SMG$K_TRM_F5 = '0000011D'Xt% PARAMETER SMG$K_TRM_F6 = '0000011E'XT% PARAMETER SMG$K_TRM_F7 = '0000011F'Xc% PARAMETER SMG$K_TRM_F8 = '00000120'Xy% PARAMETER SMG$K_TRM_F9 = '00000121'Xn& PARAMETER SMG$K_TRM_F10 = '00000122'X& PARAMETER SMG$K_TRM_F11 = '00000123'X& PARAMETER SMG$K_TRM_F12 = '00000124'X& PARAMETER SMG$K_TRM_F13 = '00000125'X& PARAMETER SMGt$K_TRM_F14 = '00000126'X& PARAMETER SMG$K_TRM_F15 = '00000127'X& PARAMETER SMG$K_TRM_F16 = '00000128'X& PARAMETER SMG$K_TRM_F17 = '00000129'X& PARAMETER SMG$K_TRM_F18 = '0000012A'X& PARAMETER SMG$K_TRM_F19 = '0000012B'X& PARAMETER SMG$K_TRM_F20 = '0000012C'X! ! Synonyms for function keysh! ' PARAMETER SMG$K_TRM_HELP = '00000127'Xm% PARAMETER SMG$K_TRM_DO = '00000128'Xi! ! Editing keysl! - PARAMETER SMG$K_TRM_E1 = '00000137'X ! FIND-4 PARAMETER SMG$K_TRM_E2 = '00000138'X ! INSuERT_HERE/ PARAMETER SMG$K_TRM_E3 = '00000139'X ! REMOVE-/ PARAMETER SMG$K_TRM_E4 = '0000013A'X ! SELECTe4 PARAMETER SMG$K_TRM_E5 = '0000013B'X ! PREV_SCREEN4 PARAMETER SMG$K_TRM_E6 = '0000013C'X ! NEXT_SCREEN! ! Synonyms for editing keys! - PARAMETER SMG$K_TRM_FIND = '00000137'X ! E1n4 PARAMETER SMG$K_TRM_INSERT_HERE = '00000138'X ! E2/ PARAMETER SMG$K_TRM_REMOVE = '00000139'X ! E3f/ PARAMETER SMG$K_TRM_SELECT = '0000013A'X ! E4!4 PARAMETER SMG$K_TRM_PREV_SCREEN = '0000013B'X !v E54 PARAMETER SMG$K_TRM_NEXT_SCREEN = '0000013C'X ! E6! ! Locator keysl! A PARAMETER SMG$K_TRM_FIRST_DOWN = '00000141'X ! Left button downmD PARAMETER SMG$K_TRM_SECOND_DOWN = '00000142'X ! Middle button downB PARAMETER SMG$K_TRM_THIRD_DOWN = '00000143'X ! Right button downD PARAMETER SMG$K_TRM_FOURTH_DOWN = '00000144'X ! Fourth button down= PARAMETER SMG$K_TRM_FIRST_UP = '00000145'X ! Left button upt@ PARAMETER SMG$K_TRM_SECOND_UP = '00000146'X ! Middle button up> PARAMETER SMGw$K_TRM_THIRD_UP = '00000147'X ! Right button up@ PARAMETER SMG$K_TRM_FOURTH_UP = '00000148'X ! Fourth button up! ! Conditionsr! Q PARAMETER SMG$K_TRM_CANCELLED = '000001FC'X ! I/O cancelled by SMG$CANCEL_INPUToD PARAMETER SMG$K_TRM_TIMEOUT = '000001FD'X ! Timeout period expired@ PARAMETER SMG$K_TRM_BUFFER_FULL = '000001FE'X ! Buffer is full@ PARAMETER SMG$K_TRM_UNKNOWN = '000001FF'X ! Unknown terminator! H! Screen Management request types - These constants are used internally+! x by SMG$ and should not be used by users.R! / PARAMETER SMG$C_CHANGE_RENDITION = '0000000A'Xs+ PARAMETER SMG$C_DELETE_CHARS = '0000000B'Xs, PARAMETER SMG$C_ERASE_DISPLAY = '0000000C'X) PARAMETER SMG$C_ERASE_LINE = '0000000D'X0* PARAMETER SMG$C_HOME_CURSOR = '0000000E'X+ PARAMETER SMG$C_INSERT_CHARS = '0000000F'Xr* PARAMETER SMG$C_INSERT_LINE = '00000010'X( PARAMETER SMG$C_PUT_CHARS = '00000011'X' PARAMETER SMG$C_PUT_LINE = '00000012'X2 PARAMETER SMG$C_PUT_DISPLAY_ENCODED = '00000013'X0 PyARAMETER SMG$C_RETURN_CURSOR_POS = '00000014'X. PARAMETER SMG$C_PUT_WITH_SCROLL = '00000015'X- PARAMETER SMG$C_SET_CURSOR_ABS = '00000016'X- PARAMETER SMG$C_SET_CURSOR_REL = '00000017'XF* PARAMETER SMG$C_DELETE_LINE = '00000018'X* PARAMETER SMG$C_ERASE_CHARS = '00000019'X2 PARAMETER SMG$C_SCROLL_DISPLAY_AREA = '0000001A'X5 PARAMETER SMG$C_CHANGE_VIRTUAL_DISPLAY = '0000001B'Xc+ PARAMETER SMG$C_LABEL_BORDER = '0000001C'Xc1 PARAMETER SMG$C_END_DISPLAY_UPDATE = '0000001D'X( PARAMETER SMG$C_MOVzE_TEXT = '0000001E'X! ! Character Set Codes! 7 PARAMETER SMG$C_UNITED_KINGDOM = '00000000'X ! Unusedv6 PARAMETER SMG$C_ASCII = '00000001'X ! ASCII char set@ PARAMETER SMG$C_SPEC_GRAPHICS = '00000002'X ! Line drawing set1 PARAMETER SMG$C_ALT_CHAR = '00000003'X ! Unused 5 PARAMETER SMG$C_ALT_GRAPHICS = '00000004'X ! Unusede! A! The following constants define corner cursor positions used ind! SMG$HOME_CURSOR.e! M PARAMETER SMG$C_UPPER_LEFT = '00000000'X ! Home cursor to uppe{r left cornerrM PARAMETER SMG$C_LOWER_LEFT = '00000001'X ! Home cursor to lower left cornerrO PARAMETER SMG$C_UPPER_RIGHT = '00000002'X ! Home cursor to upper right cornerlO PARAMETER SMG$C_LOWER_RIGHT = '00000003'X ! Home cursor to lower right cornera! 9! The following constants define label positions used ind! SMG$LABEL_BORDER.! ? PARAMETER SMG$K_TOP = '00000000'X ! Place label on top bordersE PARAMETER SMG$K_BOTTOM = '00000001'X ! Place label on bottom border.A PARAMETER SMG$K_L|EFT = '00000002'X ! Place label on left borderRC PARAMETER SMG$K_RIGHT = '00000003'X ! Place label on right borderi! 4! The following constants define menu types used in! SMG$CREATE_MENU.r! < PARAMETER SMG$K_BLOCK = '00000000'X ! Matrix of menu itemsH PARAMETER SMG$K_VERTICAL = '00000001'X ! Vertical vector of menu itemsL PARAMETER SMG$K_HORIZONTAL = '00000002'X ! Horizontal vector of menu items! 3! Master color wheel for screen background colors.e,! Used with SMG$CHANGE_PBD_CH}ARACTERISTICS.! B PARAMETER SMG$C_COLOR_UNKNOWN = '00000000'X ! Unknown background> PARAMETER SMG$C_COLOR_WHITE = '00000001'X ! White background> PARAMETER SMG$C_COLOR_BLACK = '00000002'X ! Black background< PARAMETER SMG$C_COLOR_BLUE = '00000003'X ! Blue background< PARAMETER SMG$C_COLOR_CYAN = '00000004'X ! Cyan background> PARAMETER SMG$C_COLOR_GREEN = '00000005'X ! Green backgroundB PARAMETER SMG$C_COLOR_MAGENTA = '00000006'X ! Magenta background: PARAMETER SMG$C_COLOR_RED = '0000~0007'X ! Red background@ PARAMETER SMG$C_COLOR_YELLOW = '00000008'X ! Yellow background> PARAMETER SMG$C_COLOR_LIGHT = '00000009'X ! Light background< PARAMETER SMG$C_COLOR_DARK = '0000000A'X ! Dark background? PARAMETER SMG$C_COLOR_USER1 = '0000000B'X ! User 1 background=? PARAMETER SMG$C_COLOR_USER2 = '0000000C'X ! User 2 backgroundi! 8! The following constants describe the type of terminal3! and are used with SMG$GET_PASTEBOARD_ATTRIBUTES.o! 6 PARAMETER SMG$K_UNKNOWN = '00000000'X ! Unknown type- PARAMETER SMG$K_VT05 = '00000001'X ! Unusedd- PARAMETER SMG$K_VT52 = '00000002'X ! Unused#. PARAMETER SMG$K_VT100 = '00000003'X ! UnusedD PARAMETER SMG$K_VTFOREIGN = '00000004'X ! Foreign terminal (ft1-8): PARAMETER SMG$K_HARDCOPY = '00000005'X ! Hardcopy device< PARAMETER SMG$K_VTTERMTABLE = '00000006'X ! Video terminalI PARAMETER SMG$K_FIRST_PRIV_TYPE = '000000BF'X ! Used internally by SMG$ ! 8! Define bits, masks, and fields for the control modes.! > PARAMETER SMG$K_BUF_ENABLED = '00000000'X ! Enable Buffering? PARAMETER SMG$K_MINUPD = '00000001'X ! Enable minimal update bC PARAMETER SMG$K_CLEAR_SCREEN = '00000002'X ! Clear screen on exitb@ PARAMETER SMG$K_NOTABS = '00000003'X ! Don't use physical tabs> PARAMETER SMG$K_PROTECT = '00000004'X ! Protect against ASTs* PARAMETER SMG$M_BUF_ENABLED = '00000001'X% PARAMETER SMG$M_MINUPD = '00000002'X+ PARAMETER SMG$M_CLEAR_SCREEN = '00000004'Xr% PARAMETER SMG$M_NOTABS = '00000008'X& PARAMETER SMG$M_PROTECT = '00000010'X& PARAMETER SMG$m_spare15 = 'FFFFFFE0'X STRUCTURE /SMGMODE_BITS/#$ PARAMETER SMG$S_BUF_ENABLED = 19 PARAMETER SMG$V_BUF_ENABLED = 0 ! Enable buffering PARAMETER SMG$S_MINUPD = 1C PARAMETER SMG$V_MINUPD = 1 ! Enable minimal update (default)% PARAMETER SMG$S_CLEAR_SCREEN = 1= PARAMETER SMG$V_CLEAR_SCREEN = 2 ! Clear screen on exit PARAMETER SMG$S_NOTABS = 1; PARAMETER SMG$V_NOTABS = 3 ! Don't use physical tabs PARAM;N SMG_DEF `C FULLERTON SMG_DEF&9D FULLERTON SMG_FORMS_DEF% ~ FULLERTON SMG_ROUTINES  FULLERTON SMG_DEF% FULLERTON SMG_ROUTINES%`; FULLERTON SMG_ROUTINES oh FULLERTON SMG_DEF `ͽ FULLERTON SMG_DEF%$` FULLERTON SMG_ROUTINES GN= FULLERTON SMG_DEF%>' FULLERTON SMG_ROUTINES Ǒ FULLERTON SMG_DEF ťT FULLERTON SMETER SMG$S_PROTECT = 19 PARAMETER SMG$V_PROTECT = 4 ! Protect against ASTs#! PARAMETER SMG$S_spare15 = 27# PARAMETER SMG$V_spare15 = 5$ BYTE %FILL (4) ! extra bits END STRUCTURE ! SMGMODE_BITSD! ! Key definition attributes! ) PARAMETER SMG$M_KEY_NOECHO = '00000001'X , PARAMETER SMG$M_KEY_TERMINATE = '00000002'X' PARAMETER SMG$M_KEY_LOCK = '00000004'Xs, PARAMETER SMG$M_KEY_PROTECTED = '00000008'X+ PARAMETER SMG$M_KEY_SETSTATE = '00000010'X,& PARAMETER SMG$m_spare18 = 'FFFFFFE0'X STRUCTURE /SMG$R_KEY_DEF_ATTR/l# PARAMETER SMG$S_KEY_NOECHO = 1: PARAMETER SMG$V_KEY_NOECHO = 0 ! Don't echo strings& PARAMETER SMG$S_KEY_TERMINATE = 1B PARAMETER SMG$V_KEY_TERMINATE = 1 ! This key terminates read! PARAMETER SMG$S_KEY_LOCK = 1t4 PARAMETER SMG$V_KEY_LOCK = 2 ! Lock new state& PARAMETER SMG$S_KEY_PROTECTED = 1A PARAMETER SMG$V_KEY_PROTECTED = 3 ! Definition is protected% PARAMETER SMG$S_KEY_SETSTATE = 1cN PARAMETER SMG$V_KEY_SETSTATE = 4 ! Definition sets a state (output only)! PARAMETER SMG$S_spare18 = 27v PARAMETER SMG$V_spare18 = 5$ BYTE %FILL (4) ! extra bits# END STRUCTURE ! SMG$R_KEY_DEF_ATTRr! =! Define bit masks and values for display renditions.s! # PARAMETER SMG$M_BOLD = '00000001'Xe& PARAMETER SMG$M_REVERSE = '00000002'X$ PARAMETER SMG$M_BLINK = '00000004'X( PARAMETER SMG$M_UNDERLINE = '00000008'X( PARAMETER SMG$M_INVISIBLE = '00000010'X$ PARAMETER SMG$M_USER1 = '00000100'X$ PARAMETER SMG$M_USER2 = '00000200'X$ PARAMETER SMG$M_USER3 = '00000400'X$ PARAMETER SMG$M_USER4 = '00000800'X$ PARAMETER SMG$M_USER5 = '00001000'X$ PARAMETER SMG$M_USER6 = '00002000'X$ PARAMETER SMG$M_USER7 = '00004000'X$ PARAMETER SMG$M_USER8 = '00008000'X& PARAMETER SMG$m_spare14 = 'FFFF0000'X STRUCTURE /SMGDEF_BITS/ PARAMETER SMG$S_BOLD = 1r0 PARAMETER SMG$V_BOLD = 0 ! Bold rendition PARAMETER SMG$S_REVERSE = 1< PARAMETER SMG$V_REVERSE = 1 ! Reverse video rendition PARAMETER SMG$S_BLINK = 12 PARAMETER SMG$V_BLINK = 2 ! Blink rendition" PARAMETER SMG$S_UNDERLINE = 1: PARAMETER SMG$V_UNDERLINE = 3 ! Underline rendition" PARAMETER SMG$S_INVISIBLE = 1: PARAMETER SMG$V_INVISIBLE = 4 ! Invisible rendition PARAMETER SMG$S_USER1 = 13 PARAMETER SMG$V_USER1 = 8 ! User rendition 1d PARAMETER SMG$S_USER2 = 13 PARAMETER SMG$V_USER2 = 9 ! User rendition 2r PARAMETER SMG$S_USER3 = 14 PARAMETER SMG$V_USER3 = 10 ! User rendition 3 PARAMETER SMG$S_USER4 = 14 PARAMETER SMG$V_USER4 = 11 ! User rendition 4 PARAMETER SMG$S_USER5 = 14 PARAMETER SMG$V_USER5 = 12 ! User rendition 5 PARAMETER SMG$S_USER6 = 14 PARAMETER SMG$V_USER6 = 13 ! User rendition 6 PARAMETER SMG$S_USER7 = 14 PARAMETER SMG$V_USER7 = 14 ! User rendition 7 PARAMETER SMG$S_USER8 = 14 PARAMETER SMG$V_USER8 = 15 ! User rendition 8! PARAMETER SMG$S_spare14 = 16t! PARAMETER SMG$V_spare14 = 16h$ BYTE %FILL (4) ! extra bits END STRUCTURE ! SMGDEF_BITS5 PARAMETER SMG$M_NORMAL = '00000000'X ! no bits set ! /! The following masks define values to be used 6! to specify a display attribute. These may be added+! together to specify multiple attributes.n! % PARAMETER SMG$M_BORDER = '00000001'XE) PARAMETER SMG$M_TRUNC_ICON = '00000002'Xl/ PARAMETER SMG$M_DISPLAY_CONTROLS = '00000004'X+ PARAMETER SMG$M_USER_DISPLAY = '00000008'X0+ PARAMETER SMG$M_BLOCK_BORDER = '00000010'Xl& PARAMETER SMG$m_spare12 = 'FFFFFFE0'X STRUCTURE /DISPLAY_ATTRIBUTES/0 PARAMETER SMG$S_BORDER = 1m7 PARAMETER SMG$V_BORDER = 0 ! Display is bordered# PARAMETER SMG$S_TRUNC_ICON = 1'? PARAMETER SMG$V_TRUNC_ICON = 1 ! Truncation icon enabled0) PARAMETER SMG$S_DISPLAY_CONTROLS = 1tF PARAMETER SMG$V_DISPLAY_CONTROLS = 2 ! Display carriage controls% PARAMETER SMG$S_USER_DISPLAY = 1t? PARAMETER SMG$V_USER_DISPLAY = 3 ! User display for DEBUGO% PARAMETER SMG$S_BLOCK_BORDER = 1tB PARAMETER SMG$V_BLOCK_BORDER = 4 ! Display is block bordered! PARAMETER SMG$S_spare12 = 27 PARAMETER SMG$V_spare12 = 5$ BYTE %FILL (4) ! extra bits# END STRUCTURE ! DISPLAY_ATTRIBUTESt! @! The following defines bits used with subprocess manipulation.! + PARAMETER SMG$M_DATA_FOLLOWS = '00000001'X!' PARAMETER SMG$M_SEND_EOF = '00000002'X& PARAMETER SMG$m_spare11 = 'FFFFFFFC'X# STRUCTURE /SMG$R_SUBPROCESS_FLAGS/n% PARAMETER SMG$S_DATA_FOLLOWS = 1rF PARAMETER SMG$V_DATA_FOLLOWS = 0 ! The next call specifies data.! PARAMETER SMG$S_SEND_EOF = 1 K PARAMETER SMG$V_SEND_EOF = 1 ! Send an end-of-file to the subprocesst! PARAMETER SMG$S_spare11 = 30r PARAMETER SMG$V_spare11 = 2$ BYTE %FILL (4) ! extra bits' END STRUCTURE ! SMG$R_SUBPROCESS_FLAGS! ?! The following defines bits used with the FLAGS parameter forn! SMG$DELETE_PASTEBOARD. ! ( PARAMETER SMG$M_ERASE_PBD = '00000001'X& PARAMETER SMG$m_spare10 = 'FFFFFFFE'X# STRUCTURE /SMG$R_DELETE_PBD_FLAGS/m" PARAMETER SMG$S_ERASE_PBD = 1; PARAMETER SMG$V_ERASE_PBD = 0 ! Erase the pasteboard! PARAMETER SMG$S_spare10 = 31r PARAMETER SMG$V_spare10 = 1$ BYTE %FILL (4) ! extra bits' END STRUCTURE ! SMG$R_DELETE_PBD_FLAGSE! ?! The following defines bits used with the FLAGS parameter forr! SMG$CREATE_PASTEBOARD.)! , PARAMETER SMG$M_KEEP_CONTENTS = '00000001'X% PARAMETER SMG$m_spare9 = 'FFFFFFFE'Xd# STRUCTURE /SMG$R_CREATE_PBD_FLAGS/ & PARAMETER SMG$S_KEEP_CONTENTS = 1D PARAMETER SMG$V_KEEP_CONTENTS = 0 ! Don't erase the pasteboard PARAMETER SMG$S_spare9 = 31 PARAMETER SMG$V_spare9 = 1t$ BYTE %FILL (4) ! extra bits' END STRUCTURE ! SMG$R_CREATE_PBD_FLAGS ! ?! The following defines bits used with the FLAGS parameter for ! SMG$READ_xxxx.o! ( PARAMETER SMG$M_FUNC_KEYS = '00000001'X% PARAMETER SMG$M_NOKEEP = '00000002'Xu' PARAMETER SMG$M_NORECALL = '00000004'Xa% PARAMETER SMG$m_spare8 = 'FFFFFFF8'X STRUCTURE /SMG$R_READ_FLAGS/r" PARAMETER SMG$S_FUNC_KEYS = 1= PARAMETER SMG$V_FUNC_KEYS = 0 ! Disable line-editting.t PARAMETER SMG$S_NOKEEP = 1rE PARAMETER SMG$V_NOKEEP = 1 ! Don't save input in recall buffero! PARAMETER SMG$S_NORECALL = 1fH PARAMETER SMG$V_NORECALL = 2 ! Disable input recall for this call PARAMETER SMG$S_spare8 = 29 PARAMETER SMG$V_spare8 = 3r$ BYTE %FILL (4) ! extra bits! END STRUCTURE ! SMG$R_READ_FLAGSn! ?! The following defines bits used with the FLAGS parameter for ! SMG$SET_CURSOR_MODE.!! ) PARAMETER SMG$M_CURSOR_OFF = '00000001'X ( PARAMETER SMG$M_CURSOR_ON = '00000002'X* PARAMETER SMG$M_SCROLL_JUMP = '00000004'X, PARAMETER SMG$M_SCROLL_SMOOTH = '00000008'X& PARAMETER SMG$m_spare16 = 'FFFFFFF0'X# STRUCTURE /SMG$R_SET_CURSOR_FLAGS/ # PARAMETER SMG$S_CURSOR_OFF = 1iD PARAMETER SMG$V_CURSOR_OFF = 0 ! Turn the physical cursor off" PARAMETER SMG$S_CURSOR_ON = 1B PARAMETER SMG$V_CURSOR_ON = 1 ! Turn the physical cursor on$ PARAMETER SMG$S_SCROLL_JUMP = 18 PARAMETER SMG$V_SCROLL_JUMP = 2 ! Set jump scroll& PARAMETER SMG$S_SCROLL_SMOOTH = 1; PARAMETER SMG$V_SCROLL_SMOOTH = 3 ! Set smooth scrollw! PARAMETER SMG$S_spare16 = 28o PARAMETER SMG$V_spare16 = 4$ BYTE %FILL (4) ! extra bits' END STRUCTURE ! SMG$R_SET_CURSOR_FLAGS!! ?! The following defines bits used with the FLAGS parameter for#! SMG$GET_DISPLAY_ATTR.! ' PARAMETER SMG$M_VIEWPORT = '00000001'X#) PARAMETER SMG$M_SUBPROCESS = '00000002'X# PARAMETER SMG$M_MENU = '00000004'X% PARAMETER SMG$m_spare7 = 'FFFFFFF8'X$ STRUCTURE /SMG$R_GET_DISPLAY_FLAGS/! PARAMETER SMG$S_VIEWPORT = 1A PARAMETER SMG$V_VIEWPORT = 0 ! Display contains a viewport# PARAMETER SMG$S_SUBPROCESS = 1E PARAMETER SMG$V_SUBPROCESS = 1 ! Display contains a subprocess PARAMETER SMG$S_MENU = 19 PARAMETER SMG$V_MENU = 2 ! Display contains a menu PARAMETER SMG$S_spare7 = 29 PARAMETER SMG$V_spare7 = 3$ BYTE %FILL (4) ! extra bits( END STRUCTURE ! SMG$R_GET_DISPLAY_FLAGS! ?! The following defines bits used with the FLAGS parameter for! SMG$PUT_CHARS.! ) PARAMETER SMG$M_ERASE_LINE = '00000001'X+ PARAMETER SMG$M_ERASE_TO_EOL = '00000002'X% PARAMETER SMG$m_spare6 = 'FFFFFFFC'X" STRUCTURE /SMG$R_PUT_CHARS_FLAGS/# PARAMETER SMG$S_ERASE_LINE = 1= PARAMETER SMG$V_ERASE_LINE = 0 ! Erase the entire line% PARAMETER SMG$S_ERASE_TO_EOL = 1I PARAMETER SMG$V_ERASE_TO_EOL = 1 ! Erase from cursor to end of line PARAMETER SMG$S_spare6 = 30 PARAMETER SMG$V_spare6 = 2$ BYTE %FILL (4) ! extra bits& END STRUCTURE ! SMG$R_PUT_CHARS_FLAGS! ?! The following defines bits used with the FLAGS parameter for! SMG$MOVE_TEXT.! ( PARAMETER SMG$M_TEXT_SAVE = '00000001'X( PARAMETER SMG$M_TEXT_ONLY = '00000002'X& PARAMETER SMG$m_spare17 = 'FFFFFFFC'X" STRUCTURE /SMG$R_MOVE_TEXT_FLAGS/" PARAMETER SMG$S_TEXT_SAVE = 1G PARAMETER SMG$V_TEXT_SAVE = 0 ! Don't erase text after moving it" PARAMETER SMG$S_TEXT_ONLY = 1< PARAMETER SMG$V_TEXT_ONLY = 1 ! Don't move attributes! PARAMETER SMG$S_spare17 = 30 PARAMETER SMG$V_spare17 = 2$ BYTE %FILL (4) ! extra bits& END STRUCTURE ! SMG$R_MOVE_TEXT_FLAGS! ?! The following defines bits used with the FLAGS parameter for'! SMG$PUT_PASTEBOARD and SMG$SNAPSHOT.! ( PARAMETER SMG$M_FORM_FEED = '00000001'X% PARAMETER SMG$m_spare5 = 'FFFFFFFE'X! STRUCTURE /SMG$R_SNAPSHOT_FLAGS/" PARAMETER SMG$S_FORM_FEED = 1H PARAMETER SMG$V_FORM_FEED = 0 ! Output form feed before first row PARAMETER SMG$S_spare5 = 31 PARAMETER SMG$V_spare5 = 1$ BYTE %FILL (4) ! extra bits% END STRUCTURE ! SMG$R_SNAPSHOT_FLAGS! ?! The following defines bits used with the FLAGS parameter for! SMG$PUT_xxxx.! ( PARAMETER SMG$M_WRAP_CHAR = '00000001'X( PARAMETER SMG$M_WRAP_WORD = '00000002'X% PARAMETER SMG$m_spare4 = 'FFFFFFFC'X! STRUCTURE /SMG$R_PUT_LINE_FLAGS/" PARAMETER SMG$S_WRAP_CHAR = 1K PARAMETER SMG$V_WRAP_CHAR = 0 ! Do character wrapping at end of line" PARAMETER SMG$S_WRAP_WORD = 1F PARAMETER SMG$V_WRAP_WORD = 1 ! Do word wrapping at end of line PARAMETER SMG$S_spare4 = 30 PARAMETER SMG$V_spare4 = 2$ BYTE %FILL (4) ! extra bits% END STRUCTURE ! SMG$R_PUT_LINE_FLAGS! ?! The following defines bits used with the FLAGS parameter for! SMG$SET_KEYPAD_MODE.! 1 PARAMETER SMG$M_KEYPAD_APPLICATION = '00000001'X- PARAMETER SMG$M_KEYPAD_NUMERIC = '00000002'X% PARAMETER SMG$m_spare3 = 'FFFFFFFC'X STRUCTURE /SMG$R_KEYPAD_MODES/+ PARAMETER SMG$S_KEYPAD_APPLICATION = 1A PARAMETER SMG$V_KEYPAD_APPLICATION = 0 ! Application keypad' PARAMETER SMG$S_KEYPAD_NUMERIC = 19 PARAMETER SMG$V_KEYPAD_NUMERIC = 1 ! Numeric keypad PARAMETER SMG$S_spare3 = 30 PARAMETER SMG$V_spare3 = 2$ BYTE %FILL (4) ! extra bits# END STRUCTURE ! SMG$R_KEYPAD_MODES! ?! The following defines bits used with the FLAGS parameter for! SMG$GET_PASTING_INFO.! - PARAMETER SMG$M_DISPLAY_PASTED = '00000001'X& PARAMETER SMG$m_spare19 = 'FFFFFFFE'X% STRUCTURE /SMG$R_PASTING_INFO_FLAGS/' PARAMETER SMG$S_DISPLAY_PASTED = 1< PARAMETER SMG$V_DISPLAY_PASTED = 0 ! Display is pasted! PARAMETER SMG$S_spare19 = 31 PARAMETER SMG$V_spare19 = 1$ BYTE %FILL (4) ! extra bits) END STRUCTURE ! SMG$R_PASTING_INFO_FLAGS! :! The following defines bits used with menu manipulation.! * PARAMETER SMG$M_REMOVE_ITEM = '00000001'X+ PARAMETER SMG$M_FIXED_FORMAT = '00000002'X+ PARAMETER SMG$M_DOUBLE_SPACE = '00000004'X+ PARAMETER SMG$M_RETURN_IMMED = '00000008'X) PARAMETER SMG$M_ERASE_MENU = '00000010'X( PARAMETER SMG$M_WIDE_MENU = '00000020'X% PARAMETER SMG$m_spare2 = 'FFFFFFC0'X STRUCTURE /SMG$R_MENU_FLAGS/$ PARAMETER SMG$S_REMOVE_ITEM = 1> PARAMETER SMG$V_REMOVE_ITEM = 0 ! Only select item once% PARAMETER SMG$S_FIXED_FORMAT = 1< PARAMETER SMG$V_FIXED_FORMAT = 1 ! Use fixed size cols% PARAMETER SMG$S_DOUBLE_SPACE = 1? PARAMETER SMG$V_DOUBLE_SPACE = 2 ! Double space menu rows% PARAMETER SMG$S_RETURN_IMMED = 1= PARAMETER SMG$V_RETURN_IMMED = 3 ! Ret on non-arrow key# PARAMETER SMG$S_ERASE_MENU = 1@ PARAMETER SMG$V_ERASE_MENU = 4 ! Erase menu when deleting" PARAMETER SMG$S_WIDE_MENU = 16 PARAMETER SMG$V_WIDE_MENU = 5 ! Wide menu items PARAMETER SMG$S_spare2 = 26 PARAMETER SMG$V_spare2 = 6$ BYTE %FILL (4) ! extra bits! END STRUCTURE ! SMG$R_MENU_FLAGS! 2! The following are used with SMG$PUT_LINE_xxxx, .! SMG$SCROLL_DISPLAY_AREA, and SMG$DRAW_CHAR.! ! PARAMETER SMG$M_UP = '00000001'X# PARAMETER SMG$M_DOWN = '00000002'X$ PARAMETER SMG$M_RIGHT = '00000004'X# PARAMETER SMG$M_LEFT = '00000008'X% PARAMETER SMG$m_spare1 = 'FFFFFFF0'X STRUCTURE /SCROLL_DIRS/ PARAMETER SMG$S_UP = 1# PARAMETER SMG$V_UP = 0 ! Up PARAMETER SMG$S_DOWN = 1& PARAMETER SMG$V_DOWN = 1 ! Down PARAMETER SMG$S_RIGHT = 1( PARAMETER SMG$V_RIGHT = 2 ! Right PARAMETER SMG$S_LEFT = 1& PARAMETER SMG$V_LEFT = 3 ! Left PARAMETER SMG$S_spare1 = 28 PARAMETER SMG$V_spare1 = 4$ BYTE %FILL (4) ! extra bits END STRUCTURE ! SCROLL_DIRS! ! Define data structures! Q PARAMETER SMG$C_BAND_INFORMATION_TABLE = '0000000C'X ! Length of table in bytes! P PARAMETER SMG$C_PASTEBOARD_INFO_BLOCK = '00000020'X ! Length of table in bytes! N PARAMETER SMG$C_KEYBOARD_INFO_BLOCK = '00000014'X ! Length of table in bytes STRUCTURE /SMGDEF/ UNION! ;! When an out-of-band AST triggers, the user's AST routine5! will get called. The first argument passed to his6! routine is the address of a Band Information Table.3! The offsets into this table are described below.4! To make it easy to access from certain languages,4! the table is arranged so that it is convenient to=! reference it as a longword vector as well as a byte block.!  MAP8 INTEGER*4 SMG$L_PASTEBOARD_ID ! Pasteboard ID5 INTEGER*4 SMG$L_ARG ! User's AST argument UNION MAP> BYTE SMG$B_CHARACTER ! The character typed END MAP MAPE INTEGER*4 SMG$L_CHARACTER ! The character and 3 spaces END MAP END UNION END MAP0! When SMG$GET_PASTEBOARD_ATTRIBUTES is called,5! it returns data in a pasteboard information block.6! The following structure is used to reference fields! in this block.4! Items marked with a plus (+) will be 0 unless the,! device is a terminal (DEVCLASS=DC$_TERM).!  MAP< INTEGER*4 SMG$L_DEVCHAR ! Device characteristicsC INTEGER*4 SMG$L_DEVDEPEND ! Specific characteristics (1)D INTEGER*4 SMG$L_DEVDEPEND2 ! Specific characteristics (2)B BYTE SMG$B_DEVCLASS ! Device class (e.g. DC$_TERM)A BYTE SMG$B_SMG_DEVTYPE ! Internal SMG device typeN BYTE SMG$B_PHY_DEVTYPE ! Physical device type (e.g. DT$_VT100); BYTE SMG$B_ROWS ! Number of rows on device2 INTEGER*2 SMG$W_WIDTH ! Terminal width8 BYTE SMG$B_COLOR ! PBD background color: BYTE SMG$B_PARITY ! Parity attributes (+)6 INTEGER*2 SMG$W_SPEED ! Terminal Speed (+); INTEGER*2 SMG$W_FILL ! Fill characteristics (+)D INTEGER*2 SMG$W_CURSOR_ROW ! Row where physical cursor is ! (1-origin)D INTEGER*2 SMG$W_CURSOR_COL ! Col where physical cursor is ! (1-origin)= INTEGER*4 SMG$L_CURSOR_DID ! Display id of topmost! display that cursor is in.! 0 if cursor is not in a! virtual display END MAP.! When SMG$GET_KEYBOARD_ATTRIBUTES is called,3! it returns data in a keyboard information block.6! The following structure is used to reference fields! in this block.4! Items marked with a plus (+) will be 0 unless the,! device is a terminal (DEVCLASS=DC$_TERM).!  MAP: INTEGER*4 SMG$l_fill1 ! Device characteristics@ INTEGER*4 SMG$l_fill2 ! Specific characteristics (1)@ INTEGER*4 SMG$l_fill3 ! Specific characteristics (2)@ BYTE SMG$b_fill4 ! Device class (e.g. DC$_TERM)B BYTE SMG$B_RECALL_SIZE ! Size of recall buffer (+)I BYTE SMG$b_fill5 ! Physical device type (e.g. DT$_VT100)N BYTE SMG$B_TYPEAHEAD_CHAR ! First char in typeahead buffer (+)2 INTEGER*2 SMG$w_fill6 ! Terminal widthT INTEGER*2 SMG$W_TYPEAHEAD_COUNT ! Number of chars in typeahead buffer (+) END MAP END UNION END STRUCTURE ! SMGDEF! D! Define the out-of-band information table used when an out-of-band,! AST routine is called as it's own record.! $ STRUCTURE /SMG$R_OUT_OF_BAND_TABLE/. INTEGER*4 SMG$L_PBD_ID ! Pasteboard ID5 INTEGER*4 SMG$L_USER_ARG ! User's AST argument UNION MAP6 BYTE SMG$B_CHAR ! The character typed END MAP MAP= INTEGER*4 SMG$L_CHAR ! The character and 3 spaces END MAP END UNION( END STRUCTURE ! SMG$R_OUT_OF_BAND_TABLEL PARAMETER SMG$C_OUT_OF_BAND_TABLE = '0000000C'X ! Length of table in bytes! A! Define the subprocess information table used when a subprocess,! AST routine is called as it's own record.! ( STRUCTURE /SMG$R_SUBPROCESS_INFO_TABLE/, INTEGER*4 SMG$L_DISP_ID ! Display ID5 INTEGER*4 SMG$L_USR_ARG ! User's AST argument; INTEGER*4 SMG$L_STATUS ! Status of executed command, END STRUCTURE ! SMG$R_SUBPROCESS_INFO_TABLEP PARAMETER SMG$C_SUBPROCESS_INFO_TABLE = '0000000C'X ! Length of table in bytes! 7! Define an information table that can be used by both@! SMG$GET_PASTEBOARD_ATTRIBUTES and SMG$GET_KEYBOARD_ATTRIBUTES! as it's own record.! ' STRUCTURE /SMG$R_ATTRIBUTE_INFO_BLOCK/8 INTEGER*4 SMG$L_DEV_CHAR ! Device characteristics@ INTEGER*4 SMG$L_DEV_DEPEND ! Specific characteristics (1)A INTEGER*4 SMG$L_DEV_DEPEND2 ! Specific characteristics (2)? BYTE SMG$B_DEV_CLASS ! Device class (e.g. DC$_TERM) UNION MAP> BYTE SMG$B_PBD_TYPE ! Internal SMG device type END MAP MAPA BYTE SMG$B_RECALL_NUM ! Size of recall buffer (+) END MAP END UNIONG BYTE SMG$B_DEV_TYPE ! Physical device type (e.g. DT$_VT100) UNION MAP> BYTE SMG$B_NUM_ROWS ! Number of rows on device END MAP MAPL BYTE SMG$B_TYPEAHD_CHAR ! First char in typeahead buffer (+) END MAP END UNION3 INTEGER*2 SMG$W_NUM_COLUMNS ! Terminal width UNION MAPP INTEGER*2 SMG$W_TYPEAHD_CNT ! Number of chars in typeahead buffer (+) END MAP MAP? BYTE SMG$B_PBD_COLOR ! PBD background colorA BYTE SMG$B_DEV_PARITY ! Parity attributes (+) END MAP END UNION5 INTEGER*2 SMG$W_DEV_SPEED ! Terminal Speed (+): INTEGER*2 SMG$W_DEV_FILL ! Fill characteristics (+)E INTEGER*2 SMG$W_PHYS_CURSOR_ROW ! Row where physical cursor isE INTEGER*2 SMG$W_PHYS_CURSOR_COL ! Col where physical cursor isA INTEGER*4 SMG$L_DISPLAY_ID ! Display containing phy cursor+ END STRUCTURE ! SMG$R_ATTRIBUTE_INFO_BLOCKO PARAMETER SMG$C_ATTRIBUTE_INFO_BLOCK = '00000020'X ! Length of table in bytes ww  +W |!!################################################################################################################################## !! SMG_DEFi!! James Fullerton/ Cessna Aircraft Company/ Wallace Division, Dept. 178/ PO Box 7704/ Wichita, KS 67277!! 05-SEP-1989a!! Define terminator class values (a class code can refer to one or more terminator keys) (word): !! SMG$K_TRM_+F parameter smg_trm_class_unknown_class= '00000000'x !! Something else.N parameter smg_trm_class_next_field= '00000001'x !! HT, NEXT_SCREEN, E6, CTRLIS parameter smg_trm_class_prev_field= '00000002'x !! BS, PREV_SCREEN, F12, E5, CTRLH7 parameter smg_trm_class_scroll_down= '00000004'x !! UP7 parameter smg_trm_class_scroll_up= '00000008'x !! DOWN: parameter smg_trm_class_scroll_left= '00000010'x !! RIGHT: parameter smg_trm_class_scroll_right= '00000020'x !! LEFTD parameter smg_trm_class_next_screen= '00000040'x !! NEXT_SCREEN, E6D parameter smg_trm_class_prev_screen= '00000080'x !! PREV_SCREEN, E5C parameter smg_trm_class_erase_field= '00000100'x !! LF, F13, CTRLJ= parameter smg_trm_class_help= '00000200'x !! HELP, F15, PF27 parameter smg_trm_class_refresh= '00000400'x !! CTRLRC parameter smg_trm_class_exit_form= '00000800'x !! CR, ENTER, CTRLM@ parameter smg_trm_class_exit_program= '00001000'x !! F10, CTRLZ!!##################################################################################################################################ww