home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 4: Demo 1 / almathera_demo1.bin / commercial / asmonedemo / asm-one / include / exec / lists.i < prev    next >
Text File  |  1995-03-16  |  2KB  |  109 lines

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