⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lists.a

📁 汇编编程艺术
💻 A
字号:
StdGrp		group	stdlib, stddata

stddata		segment	para public 'sldata'
stddata		ends

stdlib		segment	para public 'slcode'
;
; lists.a:	Important data structures and equates used by all the
;		list routines.


slcall	macro	adrs
	db	09ah			;Far call
	dd	stdgrp:adrs		;Address of routine to call
	endm


List		struc
ListSize	dw	?
Head		dd	0		;Ptr to start of list
Tail		dd	0		;Ptr to end of list
CurrentNode	dd	0		;Ptr to current node
List		ends

Node		struc
Next		dd	?		;Ptr to next node in list
Prev		dd	?		;Ptr to prev node in list
Node		ends


CreateList	macro
		ifndef	sl_CreateList
stdlib		segment	para public 'slcode'
		extrn	sl_CreateList:far
stdlib		ends
		endif
		slcall	sl_CreateList
		endm

AppendLast	macro
		ifndef	sl_AppendLast
stdlib		segment	para public 'slcode'
		extrn	sl_AppendLast:far
stdlib		ends
		endif
		slcall	sl_AppendLast
		endm

AppendLastm	macro
		ifndef	sl_AppendLastm
stdlib		segment	para public 'slcode'
		extrn	sl_AppendLastm:far
stdlib		ends
		endif
		slcall	sl_AppendLastm
		endm

Remove1st	macro
		ifndef	sl_Remove1st
stdlib		segment	para public 'slcode'
		extrn	sl_Remove1st:far
stdlib		ends
		endif
		slcall	sl_Remove1st
		endm

Peek1st		macro
		ifndef	sl_Peek1st
stdlib		segment	para public 'slcode'
		extrn	sl_Peek1st:far
stdlib		ends
		endif
		slcall	sl_Peek1st
		endm


Insert1st	macro
		ifndef	sl_Insert1st
stdlib		segment	para public 'slcode'
		extrn	sl_Insert1st:far
stdlib		ends
		endif
		slcall	sl_Insert1st
		endm

Insert1stm	macro
		ifndef	sl_Insert1stm
stdlib		segment	para public 'slcode'
		extrn	sl_Insert1stm:far
stdlib		ends
		endif
		slcall	sl_Insert1stm
		endm

RemoveLast	macro
		ifndef	sl_RemoveLast
stdlib		segment	para public 'slcode'
		extrn	sl_RemoveLast:far
stdlib		ends
		endif
		slcall	sl_RemoveLast
		endm

PeekLast	macro
		ifndef	sl_PeekLast
stdlib		segment	para public 'slcode'
		extrn	sl_PeekLast:far
stdlib		ends
		endif
		slcall	sl_PeekLast
		endm

InsertCur	macro
		ifndef	sl_InsertCur
stdlib		segment	para public 'slcode'
		extrn	sl_InsertCur:far
stdlib		ends
		endif
		slcall	sl_InsertCur
		endm


InsertCurm	macro
		ifndef	sl_InsertCurm
stdlib		segment	para public 'slcode'
		extrn	sl_InsertCurm:far
stdlib		ends
		endif
		slcall	sl_InsertCurm
		endm

AppendCur	macro
		ifndef	sl_AppendCur
stdlib		segment	para public 'slcode'
		extrn	sl_AppendCur:far
stdlib		ends
		endif
		slcall	sl_AppendCur
		endm


AppendCurm	macro
		ifndef	sl_AppendCurm
stdlib		segment	para public 'slcode'
		extrn	sl_InsertCurm:far
stdlib		ends
		endif
		slcall	sl_AppendCurm
		endm


RemoveCur	macro
		ifndef	sl_RemoveCur
stdlib		segment	para public 'slcode'
		extrn	sl_RemoveCur:far
stdlib		ends
		endif
		slcall	sl_RemoveCur
		endm

PeekCur		macro
		ifndef	sl_PeekCur
stdlib		segment	para public 'slcode'
		extrn	sl_PeekCur:far
stdlib		ends
		endif
		slcall	sl_PeekCur
		endm


Insert		macro
		ifndef	sl_Insert
stdlib		segment	para public 'slcode'
		extrn	sl_Insert:far
stdlib		ends
		endif
		slcall	sl_Insert
		endm


Insertm		macro
		ifndef	sl_Insertm
stdlib		segment	para public 'slcode'
		extrn	sl_Insertm:far
stdlib		ends
		endif
		slcall	sl_Insertm
		endm

Append		macro
		ifndef	sl_Append
stdlib		segment	para public 'slcode'
		extrn	sl_Append:far
stdlib		ends
		endif
		slcall	sl_Append
		endm


Appendm		macro
		ifndef	sl_Appendm
stdlib		segment	para public 'slcode'
		extrn	sl_Insertm:far
stdlib		ends
		endif
		slcall	sl_Appendm
		endm



Remove		macro
		ifndef	sl_Remove
stdlib		segment	para public 'slcode'
		extrn	sl_Remove:far
stdlib		ends
		endif
		slcall	sl_Remove
		endm

SetCur		macro
		ifndef	sl_SetCur
stdlib		segment	para public 'slcode'
		extrn	sl_SetCur:far
stdlib		ends
		endif
		slcall	sl_SetCur
		endm


PrevNode	macro
		ifndef	sl_PrevNode
stdlib		segment	para public 'slcode'
		extrn	sl_PrevNode:far
stdlib		ends
		endif
		slcall	sl_PrevNode
		endm


NextNode	macro
		ifndef	sl_NextNode
stdlib		segment	para public 'slcode'
		extrn	sl_NextNode:far
stdlib		ends
		endif
		slcall	sl_NextNode
		endm



stdlib		ends

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -