HiLMAs reference
Back

Screen Handling

Next

BUILDMAP    OUT     or
BUILDMAP     OUTNEXT

BUILDMAP OUT/OUTNEXT,map,(field1,row,column[,attribute[,length]]),

[(field2,...)][,CURSOR=YES/NO/(row,column)][,OPTION=ALARM]

 

Description

With this instruction is possible construct a 3270 data stream in a map variable (a string variable about 2000 bytes long - just a full screen).
This statement must be used before CONVERSE statement, that is the instruction that do materially screen I/O on the terminal.
The various fields specified are translated and inserted in map variable; every field variable is enclosed in parenthesis and corresponding position and attribute (protect, unprotect, etc.) is specified with it. With OUTNEXT parameter is possible to add other fields to a partially built 3270 data stream (and so override the limit of 20 fields/instruction or put a custom logic in writing every field).

fields must be string variables containing the values to display; row and column are mandatory and can be numeric constants or even integer variables: in this way the position of a field can be decided run time, building dynamic maps.
Rows can be from 1 to 24 and columns can be from 1 to 80. No control is done at run time, so be care!

attribute is a variable that determines what type of field is displayed on the screen: protected, unprotected, hilight, etc.
Following are the predefined attribute variables that can be used by every program:

Variable Mean Value
$PROT Protected field (not writable) X'F0'
$UNPROT Unprotected field (writable) X'40'
$HIPROT Protected field highlight X'F8'
$HIUNP Unprotected field highlight X'C8'
$DARK Invisible unprotected (suitable for writing password) X'4C'
$MPROT   X'F1'
$MUNPROT   X'C1'
$MHIPROT   X'F9'
$MHIUNP   X'C9'
$MDARK   X'4D'

User variables can be added and used as screen attribute: these must be one byte long and must contain the correct value.

length can be used to override the defined length of the string to display.

With CURSOR=YES, in the output screen, cursor is moved at the first unprotected field.
With CURSOR=(row,column), cursor is moved to the specified point on the screen. Even here, row and column can be a numeric constant or an integer variable. Default is NO, that is cursor is leaved on the preceding position.

With OPTION=ALARM, a beep sounds when the map is displayed on the terminal.

With OUTNEXT as first parameter, the only differece is that, if there is a preceding BUILDMAP OUT that has filled a map variable, BUILDMAP OUTNEXT on the same map variable, add new fields at the end of the preceding built fields. $MAPLEN Hilmas variable is used to trace the output length of every BUILDMAP instruction.

 

Parameter specifications

Parameter Name  Mode Type coding Remark
1 OUT or OUTNEXT Input fixed word map variable is in Output
2 map Output String C or X variable to be used with CONVERSE
3.1 field1 Input String C or X field to display
3.2 row1 Input Integer F or H or const.  
3.3 column1 Input Integer F or H or const.  
3.4 attribute1 Input Integer F or H or const. default is Protected field
3.5 length1 Input Integer F or H or const. default is field1 length
up to 20 field occurrences
  CURSOR=        
  OPTION=ALARM        

 

 

 


BUILDMAP    IN    or
BUILDMAP     INNEXT

BUILDMAP IN/INNEXT,map,(field1[,row1[,column1]]),

[(field2,...)][,CURSOR=(row,column)][,OPTION=UPPER]

Description

With this instruction is possible decode a 3270 inbound data stream present in a map variable and put its fields in corresponding Hilmas variables. This statement must be used after CONVERSE statement, specifying the same map variable used by CONVERSE as a output variable.
Specified fields are the unprotected fields of the map displayed with CONVERSE instruction and filled by terminal operator. With INNEXT parameter is possible to decode other fields after you have partially decoded a 3270 data stream.

If neither row nor column are specified, field is filled with the first available field found on the specified 3270 datastream, i.e. the orded of the unprotected fields on the terminal screen is followed.

If row and column are specified, these must be equal to row and column of an unprotected field, otherwise no field is found and string variable remain empty. Besides this, following fields specified in this statement, must be after the preceding field, no matter that row and column are specified, otherwise no field is found. In other words, field specified in this statement should not be all the input field of the displayed map, but is mandatory that the natural order is obeyed, that is from left to right and from top to bottom.

With CURSOR=(row,column), cursor position is stored into the specified integer variables row and column.

With OPTION=UPPER, every read field is translated to upper case.

 

Parameter specifications

Parameter Name  Mode Type coding Remark
1 INor INNEXT Input fixed word map variable is in Input
2 map Input String C or X variable to be used after CONVERSE
3.1 field1 Output String C or X variable to fill in with typed screen field
3.2 row1 Input Integer F or H or const.  
3.3 column1 Input Integer F or H or const.  
up to 20 field occurrences
  CURSOR=(row,col) Output Integer F or H  
  OPTION=UPPER        

BUILDMAP    ALTER    

BUILDMAP ALTER,map-out[,(field1[,row[,column[,ATTR]]])[,(field2,...)]

 

Description

With this instruction is possible alter the fields attribute of a 3270 outbound data stream present in a map-out variable.

Nowadays, this instruction is not yet fully implemented.

Examples

 


Back Start Next
CLEAR Top CONVERSE