home *** CD-ROM | disk | FTP | other *** search
- PROGRAM NCB_Test;
-
- USES CRT,DOS,NCB;
-
- VAR NCB_Result : Byte;
- Send_Block : _NCB;
- Recv_Block : _NCB;
- Number : Byte;
-
- Message : String;
- Key : Char;
- Buffer : String;
-
- PROCEDURE UsrProc; ASSEMBLER;
- ASM
- NOP
- IRET
- END;
-
- BEGIN
- NCB_CLEAR_BLOCK(Send_Block);
-
- IF (ParamStr(1) = 'ONE') THEN
- NCB_Result := NCB_ADD_NAME(Send_Block,'ONE','TWO')
- ELSE
- NCB_Result := NCB_ADD_NAME(Send_Block,'TWO','ONE');
-
- { You can assign an asterix (*) as second name. The ADD_NAME-function
- has wildcard-facility !!! }
-
- Message := 'TEST-MESSAGE USING NETBIOS...';
-
- IF (NCB_Result IN [00,18]) THEN
- BEGIN
- Number := Send_Block.NCB_NUM;
-
-
- REPEAT
- ClrScr;
- WriteLn('Our name-number is : ',Number);
- WriteLn;
- WriteLn('Press S to send Message, L for Listening or Q to Quit...');
-
- Key := UpCase(ReadKey);
- CASE Key OF
- 'L' : BEGIN
- WriteLn('I''m listening for a message...');
- NCB_Result := NCB_RECV_DATAGRAM(Send_Block,Seg(Buffer),Ofs(Buffer),255,Addr(UsrProc));
- IF (NCB_Result = 00) THEN
- BEGIN
- GotoXY(1,24); WriteLn(Buffer);
- Delay(2000);
- END;
- END;
- 'S' : BEGIN
- NCB_Result := NCB_SEND_DATAGRAM(Send_Block,Seg(Message),Ofs(Message),Length(Message)+1);
- WriteLn('Message Sended...RETCODE = ',NCB_Result);
- Delay(2000);
- END;
- END;
- UNTIL Key = 'Q';
- NCB_Result := NCB_HANG_UP(Send_Block);
- END;
-
- NCB_Result := NCB_DELETE_NAME(Send_Block);
-
- IF (NCB_Result = NRC_GOODRET) THEN
- WriteLn('Session successfully released...') ELSE
- WriteLn('Releasing Session failed...');
- END.
-
-
-