home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 6 / AACD06.ISO / AACD / Utilities / Resources / ProNET / src / include / devio_ports.s next >
Text File  |  1995-04-07  |  762b  |  50 lines

  1. ; -- Create a MsgPort
  2. CreatePort    ; RETURNS d0 *MsgPort or NULL
  3.         movem.l    a3/a6,-(sp)
  4.         move.l    4.w,a6
  5.  
  6.         moveq    #34,d0
  7.         move.l    #MEMF_CLEAR^MEMF_PUBLIC,d1
  8.         LIBCALL    AllocMem
  9.         move.l    d0,a3
  10.         tst.l    d0
  11.         beq.s    .ende
  12.  
  13.         moveq    #-1,d0
  14.         LIBCALL    AllocSignal
  15.         tst.b    d0
  16.         bmi.s    dpfreemem
  17.  
  18.         move.b    #4,8(a3)
  19.         clr.b    9(a3)
  20.         clr.b    14(a3)
  21.         move.b    d0,15(a3)
  22.         move.l    276(a6),16(a3)
  23.  
  24.         lea    20(a3),a1
  25.         move.l    a1,(a1)
  26.         addq.l    #4,(a1)
  27.         clr.l    4(a1)
  28.         move.l    a1,8(a1)
  29.  
  30.         move.l    a3,d0
  31. .ende        movem.l    (sp)+,a3/a6
  32.         rts
  33.  
  34. ; -- Delete a MsgPort got by CreatePort
  35. DeletePort    ; a0 *MsgPort
  36.         movem.l    a3/a6,-(sp)
  37.         move.l    4.w,a6
  38.         move.l    a0,a3
  39.  
  40.         move.b    15(a3),d0
  41.         LIBCALL    FreeSignal
  42.  
  43. dpfreemem    moveq    #34,d0
  44.         move.l    a3,a1
  45.         LIBCALL    FreeMem
  46.  
  47.         movem.l    (sp)+,a3/a6
  48.         moveq    #0,d0
  49.         rts
  50.