📄 rqbcode.inc
字号:
; MMURTL Operating System Source Code
; Copyright 1991,1992,1993, Richard A. Burgess
; ALL RIGHTS RESERVED
; Version x0.8
;=============================================================================
NewRQB:
; INPUT : NONE
; OUTPUT : EAX
; REGISTERS : EAX,EBX,FLAGS
; MODIFIES : pFreeRQB
;
; This routine returns to the caller a pointer to the next free RQB.
; The data used in this algorithm is the free jcb pointer (pFreeRQB).
; This routine will return in EAX register the address of the next free jcb.
; If none exists, then EAX will contain NIL (0). This routine will also
; update the value of pFreeRQB to point to the next "unused" RQB in
; the free pool.
;
MOV EAX,pFreeRQB ;Get OS pointer to RQBs
CMP EAX,NIL ;IF pFreeRQB=NIL THEN Return;
JE NewRQBDone ;
MOV EBX,[EAX.pNextRQB] ;Get pointer to next free one
MOV pFreeRQB,EBX ;Put it in OS pointer
DEC _nRQBLeft ;
NewRQBDone:
RETN ;
;=============================================================================
DisposeRQB:
; INPUT : EAX
; OUTPUT : NONE
; REGISTERS : EAX, EBX, FLAGS
; MODIFIES : pFreeRQB
;
; This routine will place the RQB pointed to by EAX back into the free
; pool of RQBs pointed to by (pFreeRQB) if EAX is not NIL.
;
CMP EAX,NIL ; If pJQBin = NIL THEN Return;
JE DispRQBDone ;
MOV EBX,pFreeRQB ;EBX has OS ptr to free list
MOV [EAX.pNextRQB],EBX ;Move it into newly freed RQB
MOV pFreeRQB,EAX ;Move ptr to newly frred RQB to OS
INC _nRQBLeft ;
DispRQBDone:
RETN ;
;========================= End of Module =================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -