home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_progs / prog_c / suplib.lzh / SUPLIB / SRC / REMHT.ASM < prev    next >
Assembly Source File  |  1991-08-16  |  742b  |  34 lines

  1.  
  2.         section CODE
  3.  
  4.         xdef    _RemHeadOff        ; sptr = RemHeadOff(list:4(sp), off:8(sp))
  5.  
  6. _RemHeadOff:    movem.l  4(sp),D0/D1
  7.  
  8.         move.l    D0,A0
  9.         move.l    (A0),A0     ; first node, (A0) == NULL if EOL
  10.         tst.l    (A0)
  11.         beq.s    .rho0
  12. .rhok        move.l    A0,D0
  13.         sub.l    D1,D0        ; subtract offset (D0 = return value)
  14.         move.l    (A0),A1     ; A1 = successor (or &lh_Tail)
  15.         move.l    4(A0),A0    ; A0 = predecess (or &lh_Head)
  16.         move.l    A0,4(A1)    ; succ->pred = pred
  17.         move.l    A1,(A0)     ; pred->succ = succ
  18.         rts
  19. .rho0:        moveq.l #0,D0
  20.         rts
  21.  
  22.         xdef    _RemTailOff        ; sptr = RemTailOff(list:4(sp), off:8(sp))
  23.  
  24. _RemTailOff:    movem.l  4(sp),D0/D1
  25.         move.l    D0,A0
  26.         move.l    8(A0),A0    ; last node, 4(A0) == NULL if EOL
  27.         tst.l    4(A0)
  28.         bne.s    .rhok
  29.         moveq.l #0,D0
  30.         rts
  31.  
  32.         END
  33.  
  34.