Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Ralf Brown's Interrupt List (Part 1,2) - int 68 - appc/pc http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
INT 68 - APPC/PC
        AH = 01h
        DS:DX -> control block

Format of control block:
Offset  Size    Description
 00h 12 BYTEs   reserved
 0Ch    WORD    verb (action)
 0Eh  6 BYTEs   00h
 14h    DWORD   (high byte first) return code (see below)
---if verb = 1B00h (DISPLAY)---
 18h    WORD    00h
 1Ah  8 BYTEs   (high byte first) logical unit ID
 22h  8 BYTEs   (high byte first) partner logical unit name
 2Ah  8 BYTEs   (high byte first) mode name
 32h    BYTE    logical unit session limit
 33h    BYTE    partner logical unit session limit
 34h    BYTE    mode maximum negotiable session limit
 35h    BYTE    current session limit
 36h    BYTE    minimum negotiated winner limit
 37h    BYTE    maximum negotiated loser limit
 38h    BYTE    active session count
 39h    BYTE    active CONWINNER session count
 3Ah    BYTE    active CONLOSER session count
 3Bh    BYTE    session termination count
 3Ch    BYTE    bit 7: SESSION_TERMINATION_TARGET_DRAIN
                bit 6: SESSION_TERMINATION_SOURCE_DRAIN
---if verb=2000h (Attach Physical Unit)---
 18h    WORD    00h
 1Ah    BYTE    version
 1Bh    BYTE    release
 1Ch  8 BYTEs   (high byte first) net name
 24h  8 BYTEs   (high byte first) physical unit name
 2Ch  8 BYTEs   00h
 34h    DWORD   pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
 38h    DWORD   00h
 3Ch    BYTE    00h RETURN_CONTROL: COMPLETE
                01h RETURN_CONTROL: INCOMPLETE
---if verb=2100h (Attach Logical Unit)---
 18h    WORD    70  offset to partner logical unit record
 1Ah  8 BYTEs   (high byte first) logical unit name
 22h  8 BYTEs   (high byte first) logical unit ID
 2Ah    BYTE    logical unit local address
 2Bh    BYTE    logical unit session limit
 2Ch    DWORD   pointer to CREATE_TP_EXIT routine,
                FFFFFFFFh = reject incoming ALLOCATEs
                00000000h = queue ALLOCATEs
 30h    DWORD   00h
 34h    DWORD   pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
 38h    DWORD   00h
 3Ch    BYTE    maximum TPs
 3Dh    BYTE    queue depth
 3Eh    DWORD   pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh=no pswd exit
 42h    DWORD   00h
 46h    WORD    total length of partner records
    for each partner logical unit:
        WORD    length of this partner logical unit record
        WORD    42  offset to mode records
      8 BYTEs   (high byte first) partner logical unit name
        BYTE    partner logical unit security capabilities
                bit 7: already verified
                bit 6: conversation level security
                bit 5: session level security
        BYTE    partner logical unit session limit
        WORD    partner logical unit maximum MC_SEND_LL
      8 BYTEs   (high byte first) partner logical unit DLC name
        BYTE    partner logical unit adapter number
     17 BYTEs   (counted string) partner logical unit adapter address
        WORD    total length of mode records
   for each mode:
        WORD    16  length of this mode record
      8 BYTEs   (high byte first) mode name
        WORD    RU_SIZE high bound
        WORD    RU_SIZE low bound
        BYTE    mode maximum negotiable session limit
        BYTE    pacing size for receive
---if verb=2200h (Detach Logical Unit)---
 18h  8 BYTEs   (high byte first) logical unit ID
 20h    BYTE    00h
---if verb=2700h (Detach Physical Unit)---
 18h    BYTE    00h  type: hard
                01h  type: soft
---if verb=2B00h (Activate DLC)---
 18h  8 BYTEs   (high byte first) DLC name
 20h    BYTE    adapter number

Values for return code:
         0000h  successful
         0001h  BAD_TP_ID
         0002h  BAD_CONV_ID
         0003h  bad logical unit ID
         0008h  no physical unit attached
         0110h  bad state
         01B1h  BAD_PART_LUNAME
         01B2h  bad mode name
         0201h  physical unit already active
         0211h  logical unit already active
         0212h  BAD_PART_SESS
         0213h  BAD_RU_SIZES
         0214h  BAD_MODE_SESS
         0216h  BAD_PACING_CNT
         0219h  EXTREME_RUS
         021Ah  SNASVCMG_1
         0223h  SSCP_CONNECTED_LU
         0230h  invalid change
         0243h  too many TPs
         0272h  adapter close failure
         0281h  GET_ALLOC_BAD_TYPE
         0282h  unsuccessful
         0283h  DLC failure
         0284h  unrecognized DLC
         0286h  duplicate DLC
         0301h  SSCP_PU_SESSION_NOT_ACTIVE
         0302h  data exceeds RU size
         0401h  invalid direction
         0402h  invalid type
         0403h  segment overlap
         0404h  invalid first character
         0405h  table error
         0406h  conversion error
     F0010000h  APPC disabled
     F0020000h  APPC busy
     F0030000h  APPC abended
     F0040000h  incomplete

Routines defined by LU_LU_PASSWORD_EXIT, CREATE_TP_EXIT, and SYSTEM_LOG_EXIT
pointers are called by pushing the DWORD pointer to the verb on the stack and
then performing a FAR call.

Format of ACCESS_LU_LU_PW verb:
Offset  Size    Description
 00h 12 BYTEs   reserved
 0Ch    WORD    1900h
 0Eh  8 BYTEs   (high byte first) logical unit ID
 16h  8 BYTEs   (high byte first) logical unit name
 1Eh  8 BYTEs   (high byte first) partner logical unit name
 26h 17 BYTEs   (counted string) partner fully qualified logical unit name
 37h    BYTE    password available (0=no, 1=yes)
 38h  8 BYTEs   password

Format of CREATE_TP verb:
Offset  Size    Description
 00h 12 BYTEs   reserved
 0Ch    WORD    2300h
 0Eh  6 BYTEs   00h
 14h    DWORD   (high byte first) sense code
                00000000h       Ok
                080F6051h       SECURITY_NOT_VALID
                084B6031h       TP_NOT_AVAIL_RETRY
                084C0000h       TP_NOT_AVAIL_NO_RETRY
                10086021h       TP_NAME_NOT_RECOGNIZED
                10086034h       CONVERSATION_TYPE_MISMATCH
                10086041h       SYNC_LEVEL_NOT_SUPPORTED
 18h  8 BYTEs   (high byte first) TP ID
 20h  8 BYTEs   (high byte first) logical unit ID
 28h    DWORD   (high byte first) conversation ID
 2Ch    BYTE    0 basic conversation, 1 mapped conversation
 2Dh    BYTE    0 no sync level, 1 confirm
 2Eh    BYTE    reserved
 2Fh 65 BYTEs   (counted string) transaction program name
 70h  6 BYTEs   00h
 76h    WORD    length of ERROR_LOG_DATA to return
 78h    DWORD   pointer to ERROR_LOG_DATA buffer
 7Ch  8 BYTEs   (high byte first) partner logical unit name
 84h 18 BYTEs   (counted string) partner fully qualified logical unit name
 96h  8 BYTEs   (high byte first) mode name
 9Eh 12 BYTEs   00h
 AAh 11 BYTEs   (counted string) password
 B5h 11 BYTEs   (counted string) user ID
 C0h    BYTE    0 verification should be performed
                1 already verified

Format of SYSLOG verb:
Offset  Size    Description
 00h 12 BYTEs   reserved
 0Ch    WORD    2600h
 0Eh 10 BYTEs   00h
 18h    WORD    (high byte first) type
 1Ah    DWORD   (high byte first) subtype
 1Eh    DWORD   pointer to ADDITIONAL_INFO
 22h    DWORD   (high byte first) conversation ID
 26h  8 BYTEs   (high byte first) TP ID
 2Eh  8 BYTEs   (high byte first) physical unit or logical unit name
 36h    WORD    length of data
 38h    DWORD   pointer to data
 3Ch    BYTE    00h

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson