home *** CD-ROM | disk | FTP | other *** search
- IFND EXEC_LISTS_I
- EXEC_LISTS_I EQU 1
- * $Filename: exec/lists.i $
- * $Release: 2.04 Includes, V37.4 $
- * $Revision: 36.10 $
- * $Date: 91/02/19 $
- * Definitions and macros for use with Exec lists. Most of the
- * macros require ownership or locking of the list before use.
- * (C) Copyright 1985-1991 Commodore-Amiga, Inc.
- * All Rights Reserved
- IFND EXEC_NODES_I
- INCLUDE "exec/nodes.i"
- ENDC
- RSRESET
- LH rs.b 0
- LH_HEAD rs 2
- LH_TAIL rs 2
- LH_TAILPRED rs 2
- LH_TYPE rs.b 1
- LH_pad rs.b 1
- LH_SIZE rs.b 0
- RSRESET
- MLH rs.b 0
- MLH_HEAD rs 2
- MLH_TAIL rs 2
- MLH_TAILPRED rs 2
- MLH_SIZE rs.b 0
- NEWLIST MACRO
- MOVE.L \1,LH_TAILPRED(\1)
- ADDQ.L #4,\1
- CLR.L (\1)
- MOVE.L \1,-(\1)
- ENDM
- TSTLIST MACRO
- IFGT NARG-1
- FAIL
- ENDC
- IFC '\1',''
- CMP.L LH_TAIL+LN_PRED(A0),A0
- ENDC
- IFNC '\1',''
- CMP.L LH_TAIL+LN_PRED(\1),\1
- ENDC
- ENDM
- TSTLST2 MACRO
- MOVE.L \1,\2
- TST.L (\2)
- ENDM
- SUCC MACRO
- MOVE.L (\1),\2
- ENDM
- PRED MACRO
- MOVE.L LN_PRED(\1),\2
- ENDM
- IFEMPTY MACRO
- CMP.L LH_TAIL+LN_PRED(\1),\1
- BEQ \2
- ENDM
- IFNOTEMPTY MACRO
- CMP.L LH_TAIL+LN_PRED(\1),\1
- BNE \2
- ENDM
- TSTNODE MACRO
- MOVE.L (\1),\2
- TST.L (\2)
- ENDM
- NEXTNODE MACRO
- MOVE.L \1,\2
- MOVE.L (\2),\1
- IFC '\0',''
- BEQ \3
- ENDC
- IFNC '\0',''
- BEQ.S \3
- ENDC
- ENDM
- ADDHEAD MACRO
- MOVE.L (A0),D0
- MOVE.L A1,(A0)
- MOVEM.L D0/A0,(A1)
- MOVE.L D0,A0
- MOVE.L A1,LN_PRED(A0)
- ENDM
- ADDTAIL MACRO
- ADDQ.L #LH_TAIL,A0
- MOVE.L LN_PRED(A0),D0
- MOVE.L A1,LN_PRED(A0)
- MOVE.L A0,(A1)
- MOVE.L D0,LN_PRED(A1)
- MOVE.L D0,A0
- MOVE.L A1,(A0)
- ENDM
- REMOVE MACRO
- MOVE.L (A1),A0
- MOVE.L LN_PRED(A1),A1
- MOVE.L A0,(A1)
- MOVE.L A1,LN_PRED(A0)
- ENDM
- REMHEAD MACRO
- MOVE.L (A0),A1
- MOVE.L (A1),D0
- BEQ.S REMHEAD\@
- MOVE.L D0,(A0)
- EXG.L D0,A1
- MOVE.L A0,LN_PRED(A1)
- REMHEAD\@
- ENDM
- REMHEADQ MACRO
- MOVE.L (\1),\2
- MOVE.L (\2),\3
- MOVE.L \3,(\1)
- MOVE.L \1,LN_PRED(\3)
- ENDM
- REMTAIL MACRO
- MOVE.L LH_TAIL+LN_PRED(A0),A1
- MOVE.L LN_PRED(A1),D0
- BEQ.S REMTAIL\@
- MOVE.L D0,LH_TAIL+LN_PRED(A0)
- EXG.L D0,A1
- MOVE.L A0,(A1)
- ADDQ.L #4,(A1)
- REMTAIL\@
- ENDM
- ENDC
-