home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d2xx / d258 / suplib.lha / Suplib / src / remht.asm < prev    next >
Encoding:
Assembly Source File  |  1989-10-18  |  742 b   |  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.