.TITLE MN03.. NODE MANIPULATION ROUTINES .IDENT /MN03../ ; .PAGE ; N$INIT:: ;SET UP INTERNAL DATA AREAS ; ; ENTRY CONDITIONS ; R0 -> ADDRESS OF NODE TABLE ; ; EXIT CONDITIONS ; SUCCESS OR ERROR FLAG ONLY ; CALL R$ADDRESS ;VALIDATE ADDRESS IFERROR 40$ ;J IF ADDRESS INVALID CMP NBLKADD,R0 ;IS NODE TABLE ALREADY LOADED BEQ 35$ ;YEP SAVE R1,R2,R3 TST NBLKADD ;IS NODE BLOCK SET UP BEQ 20$ ;J IF NOT MOV #10.,R3 ;RESTORE NODE DATA TO PREVIOUS BLOCK MOV NBLKADD,R2 ;HOLD ADDRESS OF OUTPUT DATA AREA MOV #NBLKADD+2,R1 ;HOLD ADDRESS OF CONTROL AREA 10$: MOV (R1)+,(R2)+ ;COPY CONTROL DATA BACK TO NODE SOB R3,10$ ;LOOP TEN TIMES 20$: MOV #10.,R3 ;COPY IN NEW NODE DATA BLOCK MOV R0,NBLKADD ;HOLD ADDRESS OF NEW NODE TABLE MOV #NBLKADD+2,R1 ;HOLD ADDRESS OF CONTROL AREA MOV R0,R2 ;HOLD ADDRESS OF NEW NODE TABLE 30$: MOV (R2)+,(R1)+ ;COPY NEW NODE DATA INTO CONTROL AREA SOB R3,30$ ;COPY ALL WORDS UNSAVE R1,R2,R3 35$: SETSUCCESS ;INDICATE JOB SUCCESFULL 40$: RETURN ;EXIT ; .END ; ; ;