OSI/AS Programming Manual
Example 2: Presentation Layer and ACSE
Sample Programs
E–76 056783 Tandem Computers Incorporated
 --
 user_data.header.znum^elements := 1;
 user_data.element.ztype := ZAPS^VAL^DATA^TYPE^VALUE;
 user_data.element.zpcid := 1; -- ignored by ACSE
 user_data.value ':='
 [ %H28 -- EXTERNAL
 , 17 -- length
 , %H02 -- INTEGER
 , 1 -- length of INTEGER
 , 1 -- pcid
 , %H80 -- single-asn1-type
 , 12 -- length of user-info
 , %H04 -- octet string
 , 10 -- length of octet string
 , "releasereq" -- data
 ] -> @user_data_ptr;
 user_data.element.zlen :=
 @user_data_ptr - @user_data.value;
 --
 -- Issue ACSE release response.
 --
 acse_release_reason := ZAPS^VAL^RLS^RSN^NORMAL;
 print_aps( "APPL2: release request <-" );
 tag := $UDBL( error_releasereq_proc );
 status := APS_ASSOC_RELEASEREQ_( cepi
 , user_data
 , tag
 , acse_release_reason
 );
 CALL wait_for_aps_completion( error_releasereq_proc );
 IF ( status <> ZAPS^VAL^STATUS^OK ) THEN
 CALL display_aps_status( error_releasereq_proc );
 --
 -- Wait for ACSE release confirm.
 --
 CALL wait_for_event( ZAPS^VAL^EVT^RELEASE^CNF );
 --
 -- Get the ACSE release reason and release result.
 --
 error :=
 APS_ASSOC_GETPARAM_( cepi
 , ! conid !
 , ! local-appl !
 , ! remote-appl !
 , ! connect-result !
 , ! session-rqmnts !
 , release_result
 , ! abort-reason !
 , ! mode !
 , ! pres-context-list !
 , ! pres-context-result-list !
 , ! pres-default-context-name !
 , ! pres-default-context-result !










