IBM 컴퓨터가 사용하는 protocol.
옛날 IBM 컴퓨터가 데이터를 주고 받고 이를 디스플레이에 어떻게 표현하는지에 관한 통신 규약.
display 출력: 한 줄당 80 문자, 24줄 표현가능. maxium 1920 문자 표시
3270 패킷
3270은 8비트(1바이트)를 16진수로 표현하여, 정보를 나타낸다.
각 값의 종류
- outbound data stream:
a. Command-WCC-Data
b. WSF(write structured field)-Structured field-.......-Structured filed
WCC 는 write command type에만 사용된다!
- inbound data stream : device -> application program
a. AID(atention identifier) -Cursor address-data(optional)
b. AID-Structured fields
Write: X'F1'
Erase/Write: X'F5'
Erase/Write Alternate: X'7E'
Read Modified: X'F6'
Write Structured File: X'F3'
1바이트(8비트)로 각 자리의 수가 목적을 나타낸다.
1... .... = WCC NOP: True
.1.. .... = WCC Reset: True --- 리셋-> 시스템 정의된 디폴트로 리셋
..1. .... = WCC Printer1: True -- 1번 프린터 전원 통제
...0 .... = WCC Printer2: False -- 2번 프린터 전원 통제
.... 1... = WCC Start Printer: True --- 프린터 시작
.... .1.. = WCC Sound Alarm: False --- at the end of operation 타이밍에 알람소리 출력
.... ..1. = WCC Keyboard Restore: True -- 키보드 락 해제
.... ...0 = WCC Reset MDT: False -- 캐릭터 버퍼에 존재하는 필드 속성값의 MDT(Modified Data Tag)를 초기화
* 리셋 기능이 되지 않는다면, 0,1번 비트는 WCC 바이트를 EBCDIC(IBM 스펙에 맞는 8비트 문자열 )/ASCII 로 전환가능하게 만드는 기능.
* 리셋 기능이 된다면, 1번 비트가 reset을 통제하고, 0번 비트는 기능이 없다.
이때는, 바이트 전환기능이 되지 않기에 아스키 코드를 제공할 수 없다
command code, wcc 는 1개씩만 등장한다. 이후 패킷들은 전부 여기에 해당한다.
두가지 종류
(orders + 파라미터) 조합이 반복되는 데이터 구조이다.
- Orders
특정 필드를 조작하는 명령어.
명령어 | 16진수 값 | 파라미터1 | 파라미터2 | 파라미터3 |
---|---|---|---|---|
SF | 1D | Attribute Character | ||
SBA | 11 | Address Byte 1 | Address Byte 2 | |
IC | 13 | |||
PT | 05 | |||
RA | 3C | Address Byte 1 | Address Byte 2 | Address Byte3 |
EUA | 12 | Address Byte 1 | Address Byte 2 | |
SFE | 29 | Number of Attribute Pairs | type/value pairs | |
SA | 28 | Attribute type | Attribute Value | |
MF | 2C | Number of attribute pairs | Attribute type | Attribute Value |
SF(start field): 각 필드는 크기가 다르다. 각 필드의 시작임을 알리는 명령어이다.
SBA(set buffer address): 다음에 오는 데이터의 디스플레이상의 row, col 위치를 나타낸다.
IC(insert Cursor): 현재 버퍼위치에 커서를 놓는다. IC 명령어가 여러개라면, 가장 마지막의 IC 명령어를 따른다.
PT(Program Tab) : 버퍼의 위치를 다음 unprotected 영역의 첫번째 "문자" 위치로 이동한다. 버퍼 내용을 수정할 때 사용된다. PT 가 command, order, order sequence 를 따르지 않는다면, 해당 버퍼의 위치부터 필드의 끝까지 null 로 수정된다.
RA(Repeat To Address): 위치를 설정하고, 해당 위치부터 반복될 문자를 지정.
EUA(Erase Unprotected To Address): 현재 버퍼위치부터, ending point 버퍼까지 unprotected 를 전부다 null 로 만든다.
SA (set attribute): 속성을 추가한다.
SFE(start field extended) : SF 와 마찬가지로 필드의 시작을 알림과 함께, 깜빡임, 반전, 밑줄, 확장 색깔을 지원한다.
- 파라미터
- attribute type ----속성
a. field attribute
b. extended attribute
c. character attribute- attribute value ----속성값
field attribute type = X'c0' 고정
field attribute value = 8비트의 값에 따라 필드의 속성이 달라진다.
11.. .... 0,1 번 비트는 EBCDIC/ASCII 해석 가능한 필드를 만드는데 사용.
..1. .... unprotected / protected 수정 불가/ 수정 가능
...1 .... numeric / AlphaNumeric 숫자/문자 필드
.... 1...
.... .1..
4,5번 비트는 같이 조합되어 값을 나타낸다.``` 00 -> 디스플레이 강조 보통, light pen 탐지 불가 01 -> 디스플레이 강조 보통, light pen 탐지 가능 10 -> 디스플레이 강조, light pen 탐지 **가능** 11 -> 필드 데이터 출력 X light pen 은 대부분 사용하지 않는다함. .... ..0. 항상 0 이다. .... ...1 Modified Data Tag) MDT 해당 필드가 수정될 경우 1로 설정, 3270은 기본적으로 수정된 필드로만 스트림 구성.
색, character set, 유효성, 강조, 밑줄 기능
Foreground Color(X'42'): foreground 색 설정
background Color(X'45'): background 색 설정
색 value
Color | ID |
---|---|
Default | 00 |
Neutral | F0 |
Blue | F1 |
Red | F2 |
Pink | F3 |
Green | F4 |
Turquoise | F5 |
Yellow | F6 |
Neutral | F7 |
Black | F8 |
Deep Blue | F9 |
Orange | FA |
Purple | FB |
Pale Green | FC |
Pale Turquoise | FD |
Grey | FE |
White | FF |
validation (X'c1')
Outlininig (X'c2')
Character set(X'43')
Transparency (X'46')
정의할 수 있는 속성값은 extended attribute 와 같다.