Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
IBM 3270
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Technical Information== ===3270 character set=== The 3270 displays are available with a variety{{sfn|3270 Character Set}} of keyboards and character sets. The following table shows the 3275/3277/3284β3286 character set{{sfn|3270 Character Set|loc=[http://bitsavers.org/pdf/ibm/3270/GA27-2837-9_3270_Character_Set_Reference_Apr87.pdf#page=223 Figure 9-1. Control Character Assignments (EBCDIC)]|p=9-2}}{{sfn|3270 Character Set|loc=[http://bitsavers.org/pdf/ibm/3270/GA27-2837-9_3270_Character_Set_Reference_Apr87.pdf#page=230 Figure 9-8. English (U.S.) I/O Interface Code (3277, 3286, and 3287)]|p=9-9}} for US English EBCDIC (optional characters were available for US ASCII, and UK, French, German, and Italian EBCDIC). On the 3275 and 3277 terminals without the a text feature, lower case characters display as uppercase. NL, EM, DUP, and FM control characters display and print as 5, 9, *, and ; characters, respectively, except by the printer when WCC or CCC bits 2 and 3 = '00'b, in which case NL and EM serve their control function and do not print.<ref name=CompDesc />{{rp|p.15}} {|{{chset-table-header1|3270 Character Set (US EBCDIC)}} |- |{{chset-left1|0x}} |{{chset-ctrl1|U+0000 NULL|{{Control code link|NUL}}}} |{{chset-ctrl1|U+0001 START OF HEADING|{{Control code link|SOH}}}} |{{chset-ctrl1|U+0002 START OF TEXT|{{Control code link|STX}}}} |{{chset-ctrl1|U+0003 END OF TEXT|{{Control code link|ETX}}}} |{{chset-cell1|||style=background:#DDD}} |{{chset-ctrl1| | [[Program Tab|PT]] }} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |- |{{chset-left1|1x}} |{{chset-ctrl1|U+0010 DATA LINK ESCAPE|{{Control code link|DLE}}}} |{{chset-ctrl1| |[[Set Buffer Address|SBA]]}} |{{chset-ctrl1| |[[Erase Unprotected to Address|EUA]]}} |{{chset-ctrl1| | [[Insert Cursor|IC]] }} |{{chset-cell1|||style=background:#DDD}} |{{chset-ctrl1|U+0085 NEXT LINE (NEL)| {{Control code link|NL}} }} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-ctrl1|U+0019 END OF MEDIUM| {{Control code link|EM}} }} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-ctrl1| |[[Dup Key|DUP]]}} |{{chset-ctrl1| | [[Start Field|SF]] }} |{{chset-ctrl1| | [[Field Mark|FM]] }} |{{chset-ctrl1| | [[End of Intermediate Transmission Block|ITB]] }} |- |{{chset-left1|2x}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-ctrl1|U+0017 END OF TRANSMISSION BLOCK|{{Control code link|ETB}}}} |{{chset-ctrl1|U+001B ESCAPE|{{Control code link|ESC}}}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-ctrl1|U+0005 ENQUIRY|{{Control code link|ENQ}}}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |- |{{chset-left1|3x}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-ctrl1|U+0016 SYNCHRONOUS IDLE|{{Control code link|SYN}}}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-ctrl1|U+0004 END OF TRANSMISSION|{{Control code link|EOT}}}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-ctrl1| | [[Repeat to Address|RA]] }} |{{chset-ctrl1|U+0015 NEGATIVE ACKNOWLEDGE|{{Control code link|NAK}}}} |{{chset-cell1|||style=background:#DDD}} |{{chset-ctrl1|U+001A SUBSTITUTE|{{Control code link|SUB}}}} |- |{{chset-left1|4x}} |{{chset-ctrl1|U+0020 SPACE| [[Space character|SP]] }} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|U+00A2 CENT SIGN|[[Β’]]}} |{{chset-cell1|U+002E FULL STOP|[[full stop|.]]}} |{{chset-cell1|U+003C LESS-THAN SIGN|[[less-than sign|<]]}} |{{chset-cell1|U+0028 LEFT PARENTHESIS|[[Left parenthesis|(]]}} |{{chset-cell1|U+002B PLUS SIGN|[[+]]}} |{{chset-cell1|U+007C VERTICAL LINE|[[vertical bar|{{pipe}}]]}} |- |{{chset-left1|5x}} |{{chset-cell1|U+0026 AMPERSAND|[[ampersand|&]]}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|U+0021 EXCLAMATION MARK|[[!]]}} |{{chset-cell1|U+0024 DOLLAR SIGN|[[$]]}} |{{chset-cell1|U+002A ASTERISK|[[asterisk|*]]}} |{{chset-cell1|U+0029 RIGHT PARENTHESIS|[[right parenthesis|)]]}} |{{chset-cell1|U+003B SEMICOLON|[[;]]}} |{{chset-cell1|U+00AC NOT SIGN|[[Β¬]]}} |- |{{chset-left1|6x}} |{{chset-cell1|U+002D HYPHEN-MINUS|[[Hyphen-minus|-]]}} |{{chset-cell1|U+002F SOLIDUS|[[/]]}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|U+00A6 BROKEN BAR|[[Β¦]]}} |{{chset-cell1|U+002C COMMA|[[,]]}} |{{chset-cell1|U+0025 PERCENT SIGN|[[%]]}} |{{chset-cell1|U+005F LOW LINE|[[underscore|_]]}} |{{chset-cell1|U+003E GREATER-THAN SIGN|[[greater-than sign|>]]}} |{{chset-cell1|U+003F QUESTION MARK|[[?]]}} |- |{{chset-left1|7x}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|U+003A COLON|[[colon (punctuation)|:]]}} |{{chset-cell1|U+0023 NUMBER SIGN|[[number sign|#]]}} |{{chset-cell1|U+0040 COMMERCIAL AT|[[@]]}} |{{chset-cell1|U+0027 APOSTROPHE|[[apostrophe|']]}} |{{chset-cell1|U+003D EQUALS SIGN|[[equals sign|{{=}}]]}} |{{chset-cell1|U+0022 QUOTATION MARK|[["]]}} |- |{{chset-left1|8x}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|U+0061 LATIN SMALL LETTER A|[[a]]}} |{{chset-cell1|U+0062 LATIN SMALL LETTER B|[[b]]}} |{{chset-cell1|U+0063 LATIN SMALL LETTER C|[[c]]}} |{{chset-cell1|U+0064 LATIN SMALL LETTER D|[[d]]}} |{{chset-cell1|U+0065 LATIN SMALL LETTER E|[[e]]}} |{{chset-cell1|U+0066 LATIN SMALL LETTER F|[[f]]}} |{{chset-cell1|U+0067 LATIN SMALL LETTER G|[[g]]}} |{{chset-cell1|U+0068 LATIN SMALL LETTER H|[[h]]}} |{{chset-cell1|U+0069 LATIN SMALL LETTER I|[[i]]}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |- |{{chset-left1|9x}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|U+006A LATIN SMALL LETTER J|[[j]]}} |{{chset-cell1|U+006B LATIN SMALL LETTER K|[[k]]}} |{{chset-cell1|U+006C LATIN SMALL LETTER L|[[l]]}} |{{chset-cell1|U+006D LATIN SMALL LETTER M|[[m]]}} |{{chset-cell1|U+006E LATIN SMALL LETTER N|[[n]]}} |{{chset-cell1|U+006F LATIN SMALL LETTER O|[[o]]}} |{{chset-cell1|U+0070 LATIN SMALL LETTER P|[[p]]}} |{{chset-cell1|U+0071 LATIN SMALL LETTER Q|[[q]]}} |{{chset-cell1|U+0072 LATIN SMALL LETTER R|[[r]]}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |- |{{chset-left1|Ax}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|U+0073 LATIN SMALL LETTER S|[[s]]}} |{{chset-cell1|U+0074 LATIN SMALL LETTER T|[[t]]}} |{{chset-cell1|U+0075 LATIN SMALL LETTER U|[[u]]}} |{{chset-cell1|U+0076 LATIN SMALL LETTER V|[[v]]}} |{{chset-cell1|U+0077 LATIN SMALL LETTER W|[[w]]}} |{{chset-cell1|U+0078 LATIN SMALL LETTER X|[[x]]}} |{{chset-cell1|U+0079 LATIN SMALL LETTER Y|[[y]]}} |{{chset-cell1|U+007A LATIN SMALL LETTER Z|[[z]]}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |- |{{chset-left1|Bx}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |- |{{chset-left1|Cx}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|U+0041 LATIN CAPITAL LETTER A|[[A]]}} |{{chset-cell1|U+0042 LATIN CAPITAL LETTER B|[[B]]}} |{{chset-cell1|U+0043 LATIN CAPITAL LETTER C|[[C]]}} |{{chset-cell1|U+0044 LATIN CAPITAL LETTER D|[[D]]}} |{{chset-cell1|U+0045 LATIN CAPITAL LETTER E|[[E]]}} |{{chset-cell1|U+0046 LATIN CAPITAL LETTER F|[[F]]}} |{{chset-cell1|U+0047 LATIN CAPITAL LETTER G|[[G]]}} |{{chset-cell1|U+0048 LATIN CAPITAL LETTER H|[[H]]}} |{{chset-cell1|U+0049 LATIN CAPITAL LETTER I|[[I]]}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |- |{{chset-left1|Dx}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|U+004A LATIN CAPITAL LETTER J|[[J]]}} |{{chset-cell1|U+004B LATIN CAPITAL LETTER K|[[K]]}} |{{chset-cell1|U+004C LATIN CAPITAL LETTER L|[[L]]}} |{{chset-cell1|U+004D LATIN CAPITAL LETTER M|[[M]]}} |{{chset-cell1|U+004E LATIN CAPITAL LETTER N|[[N]]}} |{{chset-cell1|U+004F LATIN CAPITAL LETTER O|[[O]]}} |{{chset-cell1|U+0050 LATIN CAPITAL LETTER P|[[P]]}} |{{chset-cell1|U+0051 LATIN CAPITAL LETTER Q|[[Q]]}} |{{chset-cell1|U+0052 LATIN CAPITAL LETTER R|[[R]]}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |- |{{chset-left1|Ex}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|U+0053 LATIN CAPITAL LETTER S|[[S]]}} |{{chset-cell1|U+0054 LATIN CAPITAL LETTER T|[[T]]}} |{{chset-cell1|U+0055 LATIN CAPITAL LETTER U|[[U]]}} |{{chset-cell1|U+0056 LATIN CAPITAL LETTER V|[[V]]}} |{{chset-cell1|U+0057 LATIN CAPITAL LETTER W|[[W]]}} |{{chset-cell1|U+0058 LATIN CAPITAL LETTER X|[[X]]}} |{{chset-cell1|U+0059 LATIN CAPITAL LETTER Y|[[Y]]}} |{{chset-cell1|U+005A LATIN CAPITAL LETTER Z|[[Z]]}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |- |{{chset-left1|Fx}} |{{chset-cell1|U+0030 DIGIT ZERO|[[0]]}} |{{chset-cell1|U+0031 DIGIT ONE|[[1]]}} |{{chset-cell1|U+0032 DIGIT TWO|[[2]]}} |{{chset-cell1|U+0033 DIGIT THREE|[[3]]}} |{{chset-cell1|U+0034 DIGIT FOUR|[[4]]}} |{{chset-cell1|U+0035 DIGIT FIVE|[[5]]}} |{{chset-cell1|U+0036 DIGIT SIX|[[6]]}} |{{chset-cell1|U+0037 DIGIT SEVEN|[[7]]}} |{{chset-cell1|U+0038 DIGIT EIGHT|[[8]]}} |{{chset-cell1|U+0039 DIGIT NINE|[[9]]}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |{{chset-cell1|||style=background:#DDD}} |} ===Data stream=== Data sent to the 3270 consist of commands, a Copy Control Character (CCC){{efn|BSC only|name=BSC}} or Write Control Character (WCC) if appropriate, a device address{{efn|name=BSC}} for copy, orders, character data and{{efn|name=extended}} structured fields. Commands instruct the 3270 control unit to perform some action on a specified device, such as a read or write. Orders are sent as part of the data stream to control the format of the device buffer. Structured fields are to convey additional control functions and data to or from the terminal.{{efn|name=extended}} On a local non-SNA controller, the command is a CCW opcode rather than the first byte of the outbound display stream; on all other controllers, the command is the first byte of the display stream, exclusive of protocol headers. ====Commands==== The following table includes datastream commands and CCW opcodes for local non-SNA controllers; it does not include CCW opcodes for local SNA controllers. <!-- Add page number for each command from 3270 Data Stream 0r 3274 Description. --> {| class="wikitable" |+3270 commands{{sfn|3274 Description|loc=Figure 1-8. Command Codes|p=1-14}} ! scope="col" | Command ! scope="col" colspan=3 | Hexadecimal ! scope="col" |Graphic ! scope="col" | Function |- ! scope="col" | ! scope="col" | local<br />non-SNA ! scope="col" | EBCDIC ! scope="col" | ASCII ! scope="col" | ! scope="col" | |- | Copy{{efn|name=BSC}} | {{n/a}} | F7 | 37 | 7 | Copy from one device buffer to another, e.g., from a display to a printer |- | Erase All Unprotected{{sfn|3270 Data Stream|loc=Erase All Unprotected (EAU) Command|p=3-7}} | 0F | 6F | 3F | ? | Erase all unprotected fields and reset modified data tags |- | Erase/Write{{sfn|3270 Data Stream|loc=Erase/Write Command|p=3-6}} | 05 | F5 | 35 | 5 | Erase device buffer, then write WCC followed by orders and data |- | Erase/Write Alternate{{efn|Not available on 3271, 3272 or 3275|name=alternate}}{{sfn|3270 Data Stream|loc=Erase/Write Alternate Command|p=3-6}} | 0D | 7E | 3D | = | Erase device buffer, set alternate size, then write WCC followed by orders and data |- | No Operation | 03 | {{n/a}} | {{n/a}} | {{n/a}} | May be used to retrieve pending status |- | Read Buffer{{sfn|3270 Data Stream|loc=Read Buffer Command|pp=3-11β3-12}} | 02 | F2 | 22 | 2 | Read entire device buffer, including attributes |- | Read Modified{{sfn|3270 Data Stream|loc=Read Modified Command|pp=3-12β3-13}} | 06 | F6 | 36 | 6 | Read AID, cursor and, except for short read, modified fields from device |- | Read Modified All{{sfn|3270 Data Stream|loc=Read Modified All Command|pp=3-13β3-14}} | {{n/a}} | 6E | 3E | : | Read AID, cursor and modified fields from device; no short read |- | Select{{sfn|3274 Description|loc=Select Command (3274 B Units)|p=1-70}} | 0B | {{n/a}} | {{n/a}} | {{n/a}} | Transfer data from device to control unit with channel disconnected |- | Select RB{{efn|Only available on 3274 D models and 3174|name=3274D}}{{sfn|3274 Description|loc=Select Read Buffer (RB) Command (3274 D Units)|p=1-71}} | 1B | {{n/a}} | {{n/a}} | {{n/a}} | Select Read Buffer;<br />may only be chained to Read Buffer |- | Select RBP{{efn|name=3274D}}{{sfn|3274 Description|loc=Select Read Buffer from Position (RBP) Command (3274 D Units)|p=1-72}} | 3B | {{n/a}} | {{n/a}} | {{n/a}} | Select Read Buffer from Position;<br />may only be chained to Read Buffer |- | Select RM{{efn|name=3274D}}{{sfn|3274 Description|loc=Select Read Modified (RM) Command (3274 D Units)|p=1-71}} | DB | {{n/a}} | {{n/a}} | {{n/a}} | Select Read Modified |- | Select RMP{{efn|name=3274D}}{{sfn|3274 Description|loc=Select Read Modified from Position (RMP) Command (3274 D Units)|p=1-71}} | 2B | {{n/a}} | {{n/a}} | {{n/a}} | Select Read Modified from Position |- | Select WRT{{efn|name=3274D}}{{sfn|3274 Description|loc=Select WRT Command (3274 D Units)|p=1-72}} | 4B | {{n/a}} | {{n/a}} | {{n/a}} | Select WRT Command<br />May only be chained to a Write or Write Structured Field |- | Sense{{sfn|3274 Description|loc=Sense Command (3274 Band D Units)|p=1-73}} | 04 | {{n/a}} | {{n/a}} | {{n/a}} | Retrieve error information after unit check |- | Sense ID{{efn|name=alternate}}{{sfn|3274 Description|loc=Sense ID Command (3274 Band D Units)|p=1-73}} | E4 | {{n/a}} | {{n/a}} | {{n/a}} | Retrieve control unit identification |- | Write{{sfn|3270 Data Stream|loc=Write Command|p=3-5}} | 01 | F1 | 31 | 1 | Write WCC followed by orders and data |- | Write Structured Field{{efn|name=alternate}}{{efn|name=extended}}{{sfn|3270 Data Stream|loc=Write Structured Field Command|p=3-7}} | 11 | F3 | {{n/a}} | 3 | Write Structured Field |- | colspan=6 | For remote 3270s non-significant bits are set so that the command forms a valid EBCDIC (or ASCII) character. |} ====Write control character==== The data sent by Write or Erase/Write consists of the command code itself followed by a ''Write Control Character'' (WCC) optionally followed by a buffer containing orders or data (or both). The WCC controls the operation of the device. Bits may start printer operation and specify a print format. Other bit settings will sound the audible alarm if installed, unlock the keyboard to allow operator entry, or reset all the Modified Data Tags in the device buffer. ====Orders==== Orders{{sfn|3270 Data Stream|loc=[http://bitsavers.org/pdf/ibm/3270/GA23-0059-4_3270_Data_Stream_Programmers_Reference_Dec88.pdf#page=66 Ch. 4. 3270 Data Stream Orders and Attributes]|pp=44-1β4-28}} consist of the order code byte followed by zero to three bytes of variable information. {| class="wikitable" |+ Orders for 3277{{efn| Later models added *Start Field Extended (SFE) *Modify Field (MF) *Set Attribute (SA) *Graphic Escape (GE) }} |- ! rowspan=2| Order ! colspan=4| Hexadecimal code (EBCDIC) ! rowspan=2| Description<ref name=CompDesc /> |- !Byte 1 !! Byte 2 !! Byte 3 !! Byte 4 |- | Start Field (SF) || 1D || Attribute character<br />(see [[#Attributes|Attributes]]) || || || Indicates the start of a field at the current buffer position and provides its attribute |- | Set Buffer Address (SBA) || 11 || Address byte 1 || Address byte 2 || || Specifies a buffer address to become the current buffer position<br />(see [[#Buffer_addressing|Buffer addressing]]) |- | Insert Cursor (IC) || 13 || || || || Positions the cursor at the current buffer position |- | Program Tab (PT) || 05 || || || || Advances the current buffer address to the first position of the next unprotected field |- | Repeat to Address (RA) || 3C || Address byte 1 || Address byte 2 || Character to repeat || Stores the character in byte 4 in all buffer locations starting at the current buffer position up to but not including the specified address and sets the current buffer position to the specified address |- | Erase Unprotected to Address (EUA)|| 12 || Address byte 1 || Address byte 2 || || Fills all unprotected fields with nulls starting at the current buffer position up to but not including the specified address |} ====Attributes==== The 3270 has three{{sfn|3270 Data Stream|pp=[http://bitsavers.org/pdf/ibm/3270/GA23-0059-4_3270_Data_Stream_Programmers_Reference_Dec88.pdf#page=27 1-6β1-9]}} kinds of attributes: * [[#Field attributes|Field attributes]] * [[#Extended attributes|Extended attributes]]{{efn|name=extended}} * [[#Character attributes|Character attributes]]{{efn|name=extended}} =====Field attributes===== The original 3277 and 3275 displays used an 8-bit field attribute byte{{sfn|3270 Data Stream|loc=[http://bitsavers.org/pdf/ibm/3270/GA23-0059-4_3270_Data_Stream_Programmers_Reference_Dec88.pdf#page=27 Field Attributes]|pp=1-6β1-7}} of which five bits were used.<ref name=CompDesc />{{rp|p.18}} * Bits 0 and 1 are set so that the attribute will always be a valid EBCDIC (or ASCII) character. * Bit 2 is zero to indicate that the associated field is ''unprotected'' (operator could enter data) or one for ''protected''. * Bit 3 is zero to indicate that this field, if unprotected, could accept alphanumeric input. One indicates that only numeric input is accepted, and automatically shifts to numeric for some keyboards. * Bit 4 and 5 operate in tandem: ** '00'B indicate that the field is displayed on the screen and is not ''selector-pen detectable''. ** '01'B indicates that the field is displayable and selector-pen detectable. ** '10'B indicates that the field is ''intensified'' (bright), displayable, and selector-pen detectable. ** '11'B indicates that the field is non-display, non-printable, and not pen detectable. This last can be used in conjunction with the modified data tag to imbed static data on the screen that will be read each time data was read from the device. * Bit 7 is the "Modified Data Tag", where '0' indicates that the associated field has not been modified by the operator and '1' indicates that it has been modified. As noted above, this bit can be set programmatically to cause the field to be treated as modified. Later models include ''base color'': "Base color (four colors) can be produced on color displays and color printers from current 3270 application programs by use of combinations of the field intensify and field protection attribute bits. For more information on color, refer to IBM 3270 Information System: Color and Programmed Symbols, GA33-3056."{{sfn|3270 Data Stream|loc=[http://bitsavers.org/pdf/ibm/3270/GA23-0059-4_3270_Data_Stream_Programmers_Reference_Dec88.pdf#page=27 Field Attributes]|pp=1-6β1-7}}{{rp|1β7}} =====Extended attributes===== The [[IBM 3278|3278]] and [[IBM 3279|3279]] and later models used ''extended attributes''{{sfn|3270 Data Stream|loc=[http://bitsavers.org/pdf/ibm/3270/GA23-0059-4_3270_Data_Stream_Programmers_Reference_Dec88.pdf#page=28 Extended Field Attributes]|p=1-7}} to add support for seven colors, blinking, reverse video, underscoring, field outlining, field validation, and programmed symbols. =====Character attributes===== The [[IBM 3278|3278]] and [[IBM 3279|3279]] and later models allowed attributes on individual characters{{sfn|3270 Data Stream|loc=[http://bitsavers.org/pdf/ibm/3270/GA23-0059-4_3270_Data_Stream_Programmers_Reference_Dec88.pdf#page=28 Character Attributes]|pp=1-7β1-9}} in a field to override the corresponding field attributes. This allowed programs (such as the [[LEXX (text editor)|LEXX]] text editor) to assign any font (including the programmable fonts), colour, etc. to any character on the screen. ====Buffer addressing==== 3270 displays and printers have a buffer containing one byte for every screen position. For example, a 3277 model 2 featured a screen size of 24 rows of 80 columns for a buffer size of 1920 bytes. Bytes are addressed from zero to the screen size minus one, in this example 1919. "There is a fixed relationship between each ... buffer storage location and its position on the display screen."<ref name=CompDesc />{{rp|p.13}} Most orders start operation at the "current" buffer address, and executing an order or writing data will update this address. The buffer address can be set directly using the ''Set Buffer Address (SBA)'' order, often followed by ''Start Field'' or ''Start Field Extended''. For a device with a 1920 character display a twelve bit address is sufficient. Later 3270s with larger screen sizes use fourteen or sixteen bits. Addresses are encoded within orders in two bytes.{{sfn|3270 Data Stream|loc=Appendix D. 12-, 14-, and 16-Bit Addressing|pp=D-1βD-2}} For twelve bit addresses the high order two bits of each byte are set to form valid EBCDIC (or ASCII) characters. For example, address 0 is coded as X'4040', or space-space, address 1919 is coded as X'5D7F', or '{{not a typo|"}}'.<ref name=CompDesc />{{rp|pp.75β90}} Programmers hand-coding panels usually keep the table of addresses from the 3270 Component Description or the 3270 Reference Card handy. For fourteen and sixteen-bit address, the address uses contiguous bits in two bytes. ====Example==== The following data stream writes an attribute in row 24, column 1, writes the (protected) characters '> ' in row 24, columns 2 and 3, and creates an unprotected field on row 24 from columns 5-79. Because the buffer wraps around an attribute is placed on row 24, column 80 to terminate the input field. This data stream would normally be written using an Erase/Write command which would set undefined positions on the screen to '00'x. Values are given in hexadecimal. <pre> Data Description D3 WCC [reset device + restore (unlock) keyboard + reset MDT] 11 5C F0 SBA Row 24 Column 1 1D F0 SF/Attribute [protected, alphanumeric, display normal intensity, not pen-detectable, MDT off] 6E 40 '> ' 1D 40 SF/Attribute [unprotected, alphanumeric, display normal intensity, not pen-detectable, MDT off] SBA is not required here since this is being written at the current buffer position 13 IC β cursor displays at current position: Row 24, column 5 11 5D 7F SBA Row 24 Column 80 1D F0 SF/Attribute [protected, alphanumeric, display normal intensity, not pen-detectable, MDT off] </pre> ===Extended Data Stream=== {{expand section|date=September 2020}} Most 3270 terminals newer than the 3275, 3277, 3284 and 3286 support an extended data stream (EDS) that allows many new capabilities, including: *Display buffers larger than 4096 characters *Additional field attributes, e.g., color *Character attributes within a field *Redefining display geometry *Querying terminal characteristics *Programmed Symbol Sets *All Points Addressable (APA) graphics
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
IBM 3270
(section)
Add topic