Guest_imported
New member
- Jan 1, 1970
- 0
We're trying to convert our winnt 4.0 sp5 programs to run on Windows 2000. The tcpip programs run no problem. The Netbios are having problems. We still running MF cobol 4.0. The program gets an out of bounds message. Here's a sample of some simple code we use for testing. This one sends a datagram.
Thanks for the help.
Rob
$SET ANS85 MF OSVS
$SET OPTSPEED
$SET WARNING(1)
$SET PERFORM-TYPE"OSVS"
*SET DefaultByte"00"
$SET Case
IDENTIFICATION DIVISION.
PROGRAM-ID. senddg.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-PC.
OBJECT-COMPUTER. IBM-PC.
SPECIAL-NAMES.
CALL-CONVENTION 66 IS WINAPI.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 my-name.
05 filler pic x(04) value 'send'.
05 my-name-vari pic x(12) value space.
01 cob32api pic x(12) value "cob32api.dll".
01 netapi32 pic x(12) value "netapi32.dll".
01 netbios pic x(07) value "Netbios".
01 ncb-init.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 9(09) comp-5 value 0.
05 filler pic 9(04) comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 9(09) comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
01 network-control-block.
05 ncb-command pic 99 comp-5.
05 ncb-retcode pic 99 comp-5.
05 ncb-lsn pic 99 comp-5.
05 ncb-num pic 99 comp-5.
05 ncb-buffer-address pointer.
05 ncb-length pic 9(04) comp-5.
05 ncb-callname.
15 ncb-callname-00 pic 99 comp-5.
15 ncb-callname-01 pic 99 comp-5.
15 ncb-callname-02 pic 99 comp-5.
15 ncb-callname-03 pic 99 comp-5.
15 ncb-callname-04 pic 99 comp-5.
15 ncb-callname-05 pic 99 comp-5.
15 ncb-callname-06 pic 99 comp-5.
15 ncb-callname-07 pic 99 comp-5.
15 ncb-callname-08 pic 99 comp-5.
15 ncb-callname-09 pic 99 comp-5.
15 ncb-callname-10 pic 99 comp-5.
15 ncb-callname-11 pic 99 comp-5.
15 ncb-callname-12 pic 99 comp-5.
15 ncb-callname-13 pic 99 comp-5.
15 ncb-callname-14 pic 99 comp-5.
15 ncb-callname-15 pic 99 comp-5.
05 ncb-name.
15 ncb-name-00 pic 99 comp-5.
15 ncb-name-01 pic 99 comp-5.
15 ncb-name-02 pic 99 comp-5.
15 ncb-name-03 pic 99 comp-5.
15 ncb-name-04 pic 99 comp-5.
15 ncb-name-05 pic 99 comp-5.
15 ncb-name-06 pic 99 comp-5.
15 ncb-name-07 pic 99 comp-5.
15 ncb-name-08 pic 99 comp-5.
15 ncb-name-09 pic 99 comp-5.
15 ncb-name-10 pic 99 comp-5.
15 ncb-name-11 pic 99 comp-5.
15 ncb-name-12 pic 99 comp-5.
15 ncb-name-13 pic 99 comp-5.
15 ncb-name-14 pic 99 comp-5.
15 ncb-name-15 pic 99 comp-5.
05 ncb-rto pic 99 comp-5.
05 ncb-sto pic 99 comp-5.
05 ncb-post-address pointer.
05 ncb-lana-num pic 99 comp-5.
05 ncb-cmd-cplt pic 99 comp-5.
05 ncb-reserve occurs 14 times
pic 99 comp-5.
*****************************************************************
* Netbios Commands - All types *
*****************************************************************
78 free-resources value 1.
78 net-reset value h"32".
78 net-add-name value h"30".
78 net-delete-name value h"31".
78 net-add-group-name value h"36".
78 net-find-name value h"78".
78 net-send-datagram value h"20".
78 net-receive-datagram value h"21".
78 net-send-bcast-datagram value h"22".
78 net-receive-bcast-datagram value h"23".
78 net-call value h"10".
78 net-listen value h"11".
78 net-hang-up value h"12".
78 net-send value h"14".
78 net-receive value h"15".
78 net-receive-any value h"16".
78 net-chain-send value h"17".
78 net-session-status value h"34".
78 net-send-ack value h"71".
78 net-chain-send-no-ack value h"72".
78 net-call-nw value h"90".
78 net-listen-nw value h"91".
78 net-hang-up-nw value h"92".
78 net-send-nw value h"94".
78 net-receive-nw value h"95".
78 net-receive-any-nw value h"96".
78 net-chain-send-nw value h"97".
78 net-session-status-nw value h"B4".
78 net-send-ack-nw value h"F1".
78 net-chain-send-no-ack-nw value h"F2".
78 net-add-name-nw value h"B0".
78 net-delete-name-nw value h"B1".
78 net-add-group-name-nw value h"B6".
78 net-find-name-nw value h"F8".
78 net-send-datagram-nw value h"A0".
78 net-receive-datagram-nw value h"A1".
78 net-send-bcast-datagram-nw value h"A2".
78 net-receive-bcast-datagram-nw value h"A3".
PROCEDURE DIVISION WINAPI.
* Set Cobol api.
CALL 'COB32API'.
*load the netapi32.dll for use
CALL netapi32 USING BY REFERENCE NETWORK-CONTROL-BLOCK.
move 'myname' to my-name-vari.
******************************************************************
* ALLOCATE NETBIOS RESOURCES *
******************************************************************
MOVE NCB-INIT TO NETWORK-CONTROL-BLOCK.
MOVE NET-RESET TO NCB-COMMAND.
MOVE H'02' TO NCB-CALLNAME-00.
MOVE H'02' TO NCB-CALLNAME-01.
MOVE H'01' TO NCB-CALLNAME-02.
CALL WINAPI NETBIOS USING
BY REFERENCE NETWORK-CONTROL-BLOCK.
DISPLAY ncb-retcode ' reset'.
******************************************************************
* ADD NAME *
******************************************************************
MOVE my-name TO NCB-NAME.
MOVE NET-ADD-NAME TO NCB-COMMAND.
CALL WINAPI NETBIOS USING
BY REFERENCE NETWORK-CONTROL-BLOCK.
DISPLAY ncb-retcode ' add name'.
MOVE LENGTH OF WS30-NAME(2) TO NCB-LENGTH
MOVE WS30-NAME(1) TO NCB-CALLNAME
SET NCB-BUFFER-ADDRESS TO ADDRESS
OF WS30-NAME(2)
MOVE NET-SEND-DATAGRAM TO NCB-COMMAND
CALL WINAPI NETBIOS USING
BY REFERENCE NETWORK-CONTROL-BLOCK.
DISPLAY ncb-retcode ' send '.
stop run.
Thanks for the help.
Rob
$SET ANS85 MF OSVS
$SET OPTSPEED
$SET WARNING(1)
$SET PERFORM-TYPE"OSVS"
*SET DefaultByte"00"
$SET Case
IDENTIFICATION DIVISION.
PROGRAM-ID. senddg.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-PC.
OBJECT-COMPUTER. IBM-PC.
SPECIAL-NAMES.
CALL-CONVENTION 66 IS WINAPI.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 my-name.
05 filler pic x(04) value 'send'.
05 my-name-vari pic x(12) value space.
01 cob32api pic x(12) value "cob32api.dll".
01 netapi32 pic x(12) value "netapi32.dll".
01 netbios pic x(07) value "Netbios".
01 ncb-init.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 9(09) comp-5 value 0.
05 filler pic 9(04) comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 9(09) comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
05 filler pic 99 comp-5 value 0.
01 network-control-block.
05 ncb-command pic 99 comp-5.
05 ncb-retcode pic 99 comp-5.
05 ncb-lsn pic 99 comp-5.
05 ncb-num pic 99 comp-5.
05 ncb-buffer-address pointer.
05 ncb-length pic 9(04) comp-5.
05 ncb-callname.
15 ncb-callname-00 pic 99 comp-5.
15 ncb-callname-01 pic 99 comp-5.
15 ncb-callname-02 pic 99 comp-5.
15 ncb-callname-03 pic 99 comp-5.
15 ncb-callname-04 pic 99 comp-5.
15 ncb-callname-05 pic 99 comp-5.
15 ncb-callname-06 pic 99 comp-5.
15 ncb-callname-07 pic 99 comp-5.
15 ncb-callname-08 pic 99 comp-5.
15 ncb-callname-09 pic 99 comp-5.
15 ncb-callname-10 pic 99 comp-5.
15 ncb-callname-11 pic 99 comp-5.
15 ncb-callname-12 pic 99 comp-5.
15 ncb-callname-13 pic 99 comp-5.
15 ncb-callname-14 pic 99 comp-5.
15 ncb-callname-15 pic 99 comp-5.
05 ncb-name.
15 ncb-name-00 pic 99 comp-5.
15 ncb-name-01 pic 99 comp-5.
15 ncb-name-02 pic 99 comp-5.
15 ncb-name-03 pic 99 comp-5.
15 ncb-name-04 pic 99 comp-5.
15 ncb-name-05 pic 99 comp-5.
15 ncb-name-06 pic 99 comp-5.
15 ncb-name-07 pic 99 comp-5.
15 ncb-name-08 pic 99 comp-5.
15 ncb-name-09 pic 99 comp-5.
15 ncb-name-10 pic 99 comp-5.
15 ncb-name-11 pic 99 comp-5.
15 ncb-name-12 pic 99 comp-5.
15 ncb-name-13 pic 99 comp-5.
15 ncb-name-14 pic 99 comp-5.
15 ncb-name-15 pic 99 comp-5.
05 ncb-rto pic 99 comp-5.
05 ncb-sto pic 99 comp-5.
05 ncb-post-address pointer.
05 ncb-lana-num pic 99 comp-5.
05 ncb-cmd-cplt pic 99 comp-5.
05 ncb-reserve occurs 14 times
pic 99 comp-5.
*****************************************************************
* Netbios Commands - All types *
*****************************************************************
78 free-resources value 1.
78 net-reset value h"32".
78 net-add-name value h"30".
78 net-delete-name value h"31".
78 net-add-group-name value h"36".
78 net-find-name value h"78".
78 net-send-datagram value h"20".
78 net-receive-datagram value h"21".
78 net-send-bcast-datagram value h"22".
78 net-receive-bcast-datagram value h"23".
78 net-call value h"10".
78 net-listen value h"11".
78 net-hang-up value h"12".
78 net-send value h"14".
78 net-receive value h"15".
78 net-receive-any value h"16".
78 net-chain-send value h"17".
78 net-session-status value h"34".
78 net-send-ack value h"71".
78 net-chain-send-no-ack value h"72".
78 net-call-nw value h"90".
78 net-listen-nw value h"91".
78 net-hang-up-nw value h"92".
78 net-send-nw value h"94".
78 net-receive-nw value h"95".
78 net-receive-any-nw value h"96".
78 net-chain-send-nw value h"97".
78 net-session-status-nw value h"B4".
78 net-send-ack-nw value h"F1".
78 net-chain-send-no-ack-nw value h"F2".
78 net-add-name-nw value h"B0".
78 net-delete-name-nw value h"B1".
78 net-add-group-name-nw value h"B6".
78 net-find-name-nw value h"F8".
78 net-send-datagram-nw value h"A0".
78 net-receive-datagram-nw value h"A1".
78 net-send-bcast-datagram-nw value h"A2".
78 net-receive-bcast-datagram-nw value h"A3".
PROCEDURE DIVISION WINAPI.
* Set Cobol api.
CALL 'COB32API'.
*load the netapi32.dll for use
CALL netapi32 USING BY REFERENCE NETWORK-CONTROL-BLOCK.
move 'myname' to my-name-vari.
******************************************************************
* ALLOCATE NETBIOS RESOURCES *
******************************************************************
MOVE NCB-INIT TO NETWORK-CONTROL-BLOCK.
MOVE NET-RESET TO NCB-COMMAND.
MOVE H'02' TO NCB-CALLNAME-00.
MOVE H'02' TO NCB-CALLNAME-01.
MOVE H'01' TO NCB-CALLNAME-02.
CALL WINAPI NETBIOS USING
BY REFERENCE NETWORK-CONTROL-BLOCK.
DISPLAY ncb-retcode ' reset'.
******************************************************************
* ADD NAME *
******************************************************************
MOVE my-name TO NCB-NAME.
MOVE NET-ADD-NAME TO NCB-COMMAND.
CALL WINAPI NETBIOS USING
BY REFERENCE NETWORK-CONTROL-BLOCK.
DISPLAY ncb-retcode ' add name'.
MOVE LENGTH OF WS30-NAME(2) TO NCB-LENGTH
MOVE WS30-NAME(1) TO NCB-CALLNAME
SET NCB-BUFFER-ADDRESS TO ADDRESS
OF WS30-NAME(2)
MOVE NET-SEND-DATAGRAM TO NCB-COMMAND
CALL WINAPI NETBIOS USING
BY REFERENCE NETWORK-CONTROL-BLOCK.
DISPLAY ncb-retcode ' send '.
stop run.