| |
INT 68 - APPC/PC
Input |
Output |
AX
|
02h |
|
|
|
AX |
BX
|
|
|
|
|
BX |
CX
|
|
|
|
|
CX |
|
|
|
|
|
DX |
DS:DX |
Control
Block |
|
CF |
Control Block:
12 BYTEs reserved
WORD verb (action)
BYTE 1 if MC_ (mapped conversation) form of
verb
0 if basic verb
5 BYTEs 0
WORD (high byte first) primary return code
0000h successful
0001h parameter check
0002h state check
0003h allocation error
0005h deallocate abended
0006h deallocate abended program
0007h deallocate abended SVC
0008h deallocate abended timer
0009h deallocate normal return
000Ah data posting blocked
000Bh posting not active
000Ch PROG_ERROR_NO_TRUNC
000Dh PROG_ERROR_TRUNC
000Eh PROG_ERROR_PURGING
000Fh CONV_FAILURE_RETRY
0010h CONV_FAILURE_NO_RETRY
0011h SVC_ERROR_NO_TRUNC
0012h SVC_ERROR_TRUNC
0013h SVC_ERROR_PURGING
0014h unsuccessful
0018h CNOS partner logical unit reject
0019h conversation type mixed
F001h APPC disabled
F002h APPC busy
F003h APPC abended
F004h incomplete
DWORD (high byte first) error code
0001h bad TP ID
0002h bad conversation ID
0004h allocation error, no retry
0005h allocation error, retry
0006h data area crosses segment boundary
0010h bad TPN length
0011h bad CONV length
0012h bad SYNC level
0013h bad security selection
0014h bad return control
0015h SEC_TOKENS too big
0016h PIP_LEN incorrect
0017h no use of SNASVCMG
0018h unknown partner mode
0031h confirm: SYNC_NONE
0032h confirm: bad state
0033h confirm: NOT_LL_BDY
0041h confirmed: bad state
0051h deallocate: bad type
0052h deallocate: flush bad state
0053h deallocate: confirm bad state
0055h deallocate: NOT_LL_BDY
0057h deallocate: log LL_WRONG
0061h flush: not send state
0091h post on receipt: invalid length
0092h post on receipt: not in receive
state
0093h post on receipt: bad fill
00A1h prepare to receive:invalid type
00A2h prepare to receive: unfinished LL
00A3h prepare to receive: not in send
state
00B1h receive and wait: bad state
00B2h receive and wait: NOT_LL_BDY
00B5h receive and wait: bad fill
00C1h receive immediate: not in receive
state
00C4h receive immediate: bad fill
00E1h request to send: not in receive
state
00F1h send data: bad LL
00F2h send data: not in send state
0102h send error: log LL wrong
0103h send error: bad type
0121h test: invalid type
0122h test: not in receive state
8 BYTEs (high byte first) TP_ID
DWORD (high byte first) conversation ID
if verb=0100h (Allocate or MC_Allocate), control block continues:
BYTE (MC_Allocate only) 0 basic conversation
1 mapped conversation
BYTE 0 SYNC_LEVEL = none
1 SYNC_LEVEL = confirm
WORD 0
BYTE 0 RETURN_CONTROL: when session allocated
1 RETURN_CONTROL: immediate
2 RETURN_CONTROL: when session free
8 BYTEs 0
8 BYTEs (high byte first) partner logical unit name
8 BYTEs (high byte first) mode name
65 BYTEs (counted string) TP name
BYTE 0 security: none
1 security: same
2 security: pgm
11 BYTEs 0
11 BYTEs (counted string) password
11 BYTEs (counted string) user ID
WORD PIP_DATA length
DWORD pointer to PIP_DATA
if verb=0300h (Confirm or MC_Confirm), then control block
continues:
BYTE request to send received (0=no, 1=yes)
if verb=0400h (Confirmed or MC_Confirmed), no additional fields
if verb=0500h (Deallocate or MC_Deallocate), then control block
continues:
BYTE 0
BYTE type 0 SYNC_LEVEL
1 FLUSH
2 ABEND_PROC
3 ABEND_SVC
4 ABEND_TIMER
5 ABEND
WORD (MC_Deallocate only) length of error log data
DWORD (MC_Deallocate only) pointer to error log data
if verb=0600h (Flush or MC_Flush), no additional fields
if verb=0700h (Get_Attributes or MC_Get_Attributes), control
block continues:
8 BYTEs (high byte first) logical unit ID
BYTE 0
BYTE SYNC_LEVEL (0=none, 1=confirm)
8 BYTEs (high byte first) mode name
8 BYTEs (high byte first) own net name
8 BYTEs (high byte first) own logical unit name
8 BYTEs (high byte first) partner logical unit name
18 BYTEs (counted string) partner's fully qualified logical
unit name
BYTE 0
11 BYTEs (counted string) user ID
if verb=0800h (Get_Type), then control block continues:
BYTE type (0=basic conversation, 1=mapped conversation)
if verb=0900h (Post_on_Receipt), then control block continues:
WORD maximum length
BYTE fill (0=buffer, 1=LL)
if verb=0A00h (Prepare_to_Receive or MC_Prepare_to_Receive):
BYTE type (0=SYNC_LEVEL, 1=FLUSH)
BYTE locks (0=short, 1=long)
if verb=0B00h (Receive_and_Wait or MC_Receive_and_Wait), control
block cont:
BYTE what received
0 data
1 data complete
2 data incomplete
3 confirm
4 confirm send
5 confirm deallocate
6 send
BYTE (MC_Receive_and_Wait only) fill (0=buffer, 1=LL)
BYTE Request_to_Send_Received (0=no, 1=yes)
WORD maximum length
WORD data length
DWORD pointer to data
if verb=0C00h (Receive_Immediate or MC_Receive_Immediate),
control block:
BYTE what received
0 data
1 data complete
2 data incomplete
3 confirm
4 confirm send
5 confirm deallocate
6 send
BYTE (MC_Receive_Immediate only) fill (0=buffer, 1=LL)
BYTE Request_to_Send_Received (0=no, 1=yes)
WORD maximum length
WORD data length
DWORD pointer to data
if verb=0E00h (Request_to_Send or MC_Request_to_Send), no
additional fields
if verb=0F00h (Send_Data or MC_Send_Data), then control block
continues:
BYTE request to send received (0=no, 1=yes)
BYTE 0
WORD data length
DWORD pointer to data
if verb=1000h (Send_Error or MC_Send_Error)
BYTE request to send received (0=no, 1=yes)
BYTE type (0=program, 1=SVC)
DWORD 0
WORD (MC_Send_Error only) LOG_DATA length
DWORD (MC_Send_Error only) pointer to LOG_DATA
if verb=1200h (Test or MC_Test), then control block continues:
BYTE (MC_Test only) test (0=posted, 1=request_to_send
received)
Note: Error code has different interpretations for:
0 posted data
1 posted not data (primary return code = 0)
1 bad TP_ID (primary return code = 1)
if verb=1300h (Wait), then control block continues:
BYTE number of conversations to wait on
Note: Error codes have interpretations as for 1200h (Test)
above |