home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / SHSUCD11.ZIP / NETBIOS.ADB < prev    next >
Encoding:
Text File  |  1995-12-08  |  1.6 KB  |  49 lines

  1. --************************************************************************
  2. --
  3. --  NETBIOS.ADB               Version 3.0
  4. --
  5. --  A copyright-reserved, free use program.
  6. --  (c)John H. McCoy, 1994, 1995, Sam Houston St. Univ., TX 77341-2206
  7. --************************************************************************
  8.  
  9. with interrupt, memory;
  10. package body NetBIOS is
  11.  
  12. procedure NetBiosCall ( Ncb: ncbAccess) is
  13.    use interrupt, memory;
  14.       regs   : interrupt.registers;
  15.       NetBios_Int: constant interrupt.interrupt_range := 16#5C#;
  16.    begin
  17.       split ( dos_address => ncbAccess_to_SA(Ncb),
  18.               segment     => memory_segment(regs.ES),
  19.               offset      => segment_offset(regs.BX) );
  20.  
  21.       interrupt.vector ( on             => NetBIOS_int,
  22.                          register_block => regs);
  23.  
  24. end NetBiosCall;
  25.  
  26. procedure NetAddName (NetName  : string16) is
  27.    NCB   : NetBiosCmdBlks;
  28. begin
  29.    NCB.Command    := NB_AddName;
  30.    NCB.Name       := NetName;
  31.    NCB.ReturnCode := NB_NetBiosNotLoaded;
  32.    NetBiosCall(SA_to_ncbAccess(Ncb'address));
  33.    case NCB.ReturnCode is
  34.      when NB_Ok | NB_DuplicateLocalName => null;
  35.      when NB_NetBiosNotLoaded   => raise NBX_NetBiosNotLoaded;
  36.      when NB_NameAlreadyClaimed => raise NBX_NameAlreadyClaimed;
  37.      when others                => raise NBX_GeneralError;
  38.    end case;
  39. end NetAddName;
  40.  
  41. procedure NetHangUp   ( Session : byte) is
  42.    NCB : NetBiosCmdBlks;
  43. begin
  44.    NCB.Command      := NB_HangUp;
  45.    NCB.LocalSession := Session;
  46.    NetBiosCall(SA_to_ncbAccess(Ncb'address));
  47. end NetHangUp;
  48.  
  49. end NetBios;