.TITLE MN06.. NODE MANIPULATION ROUTINES .IDENT /MN06../ ; .PAGE ; N$DELETE:: ;MARK NODE FOR DELETE ; ; ENTRY CONDITIONS ; R1 = MARKERS ; ; EXIT CONDITIONS ; R0 -> ACCESS ADDRESS OF NEXT NODE IF STATUS = SUCCESS ; CALL N$SEEK ;LOCATE NODE IFERROR 30$ ;EXIT IF NODE NOT FOUND TST -2(R0) ;IS NODE PROTECTED OR IS THIS ;THE LAST NODE BLE 30$ ;J IF LAST NODE OR PROTECTED BIS #100000,-4(R0) ;MARK NODE FOR DELETION ADD -2(R0),NLOST ;LOAD LOST BYTES FROM NODE ADD #6,NLOST ;LOAD LOST BYTES FROM HEADER 10$: CALL N$NEXT ;LOCATE NEXT NODE IFERROR 30$ ;J IF ERROR CMP NPRESENT,NNEXT ;HAVE ALL NODES BEEN CHECKED BEQ 30$ ;J IF NO NODES LEFT BIT #100000,-4(R0) ;IS NEW NODE MARKED FOR DELETE BNE 10$ ;J IF NODE DELETED TRY NEXT NODE MOV NNEXT,NPRESENT ;HOLD NEW NODE ADDRESS 20$: EXITSUCCESS 30$: EXITERROR ; ; .END ; ; ;