home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / DVD!OMA2.DMS / in.adf / Include1.3.LHA / Include1.3 / exec / lists.i < prev    next >
Encoding:
Text File  |  1994-10-12  |  1.6 KB  |  129 lines

  1.  IFND EXEC_LISTS_I
  2. EXEC_LISTS_I EQU 1
  3.  
  4.  IFND EXEC_TYPES_I
  5.  INCLUDE "exec/types.i"
  6.  ENDC
  7.  IFND EXEC_NODES_I
  8.  INCLUDE "exec/nodes.i"
  9.  ENDC
  10.  
  11.  RSRESET
  12. LH rs.b 0
  13. LH_HEAD rs.l 1
  14. LH_TAIL rs.l 1
  15. LH_TAILPRED rs.l 1
  16. LH_TYPE rs.b 1
  17. LH_pad rs.b 1
  18. LH_SIZE rs.b 0
  19.  
  20.  RSRESET
  21. MLH rs.b 0
  22. MLH_HEAD rs.l 1
  23. MLH_TAIL rs.l 1
  24. MLH_TAILPRED rs.l 1
  25. MLH_SIZE rs.b 0
  26.  
  27. NEWLIST MACRO
  28.  MOVE.L \1,(\1)
  29.  ADDQ.L #LH_TAIL,(\1)
  30.  CLR.L LH_TAIL(\1)
  31.  MOVE.L \1,LH_TAIL+LN_PRED(\1)
  32.  ENDM
  33.  
  34. TSTLIST MACRO
  35.  IFC '\1',''
  36.  CMP.L LH_TAIL+LN_PRED(A0),A0
  37.  ELSE
  38.  CMP.L LH_TAIL+LN_PRED(\1),\1
  39.  ENDC
  40.  ENDM
  41.  
  42. SUCC MACRO
  43.  MOVE.L (\1),\2
  44.  ENDM
  45.  
  46. PRED MACRO
  47.  MOVE.L LN_PRED(\1),\2
  48.  ENDM
  49.  
  50. IFEMPTY MACRO
  51.  CMP.L LH_TAIL+LN_PRED(\1),\1
  52.  BEQ \2
  53.  ENDM
  54.  
  55. IFNOTEMPTY MACRO
  56.  CMP.L LH_TAIL+LN_PRED(\1),\1
  57.  BNE \2
  58.  ENDM
  59.  
  60. TSTNODE MACRO
  61.  MOVE.L (\1),\2
  62.  TST.L (\2)
  63.  ENDM
  64.  
  65. NEXTNODE MACRO
  66.  MOVE.L \1,\2
  67.  MOVE.L (\2),\1
  68.  IFC '\0',''
  69.  BEQ \3
  70.  ELSE
  71.  BEQ.S \3
  72.  ENDC
  73.  ENDM
  74.  
  75. ADDHEAD MACRO
  76.  MOVE.L (A0),D0
  77.  MOVE.L A1,(A0)
  78.  MOVEM.L D0/A0,(A1)
  79.  MOVE.L D0,A0
  80.  MOVE.L A1,LN_PRED(A0)
  81.  ENDM
  82.  
  83. ADDTAIL MACRO
  84.  LEA LH_TAIL(A0),A0
  85.  MOVE.L LN_PRED(A0),D0
  86.  MOVE.L A1,LN_PRED(A0)
  87.  MOVE.L A0,(A1)
  88.  MOVE.L D0,LN_PRED(A1)
  89.  MOVE.L D0,A0
  90.  MOVE.L A1,(A0)
  91.  ENDM
  92.  
  93. REMOVE MACRO
  94.  MOVE.L (A1),A0
  95.  MOVE.L LN_PRED(A1),A1
  96.  MOVE.L A0,(A1)
  97.  MOVE.L A1,LN_PRED(A0)
  98.  ENDM
  99.  
  100. REMHEAD MACRO
  101.  MOVE.L (A0),A1
  102.  MOVE.L (A1),D0
  103.  BEQ.S REMHEAD\@
  104.  MOVE.L D0,(A0)
  105.  EXG.L D0,A1
  106.  MOVE.L A0,LN_PRED(A1)
  107. REMHEAD\@
  108.  ENDM
  109.  
  110. REMHEADQ MACRO
  111.  MOVE.L (\1),\2
  112.  MOVE.L (\2),\3
  113.  MOVE.L \3,(\1)
  114.  MOVE.L \1,LN_PRED(\3)
  115.  ENDM
  116.  
  117. REMTAIL MACRO
  118.  MOVE.L LH_TAIL+LN_PRED(A0),A1
  119.  MOVE.L LN_PRED(A1),D0
  120.  BEQ.S REMTAIL\@
  121.  MOVE.L D0,LH_TAIL+LN_PRED(A0)
  122.  EXG.L D0,A1
  123.  MOVE.L A0,(A1)
  124.  ADDQ.L #4,(A1)
  125. REMTAIL\@
  126.  ENDM
  127.  
  128.  ENDC
  129.