ASMB,R,L,C HED "IFATN" TEST BREAK BIT IN THIS PROG & CLEAR IN FATHERS 12-77 (DLB) * NAME: IFATN * NAM IFATN,7 PRE-REL 771215 (DLB) 20:45 NAM IFATN,7 PRE-REL 780406 (DLB) (RTE-IV) * ENT IFATN EXT $LIBR,$LIBX EXT .XLA,.XSA,.XLB SPC 1 A EQU 0 B EQU 1 XEQT EQU 1717B KEYWD EQU 1657B SPC 1 * CALLING SEQUENCE: * * IF(IFATN(IDMY)) 10,20 * * WHERE: 10 BRANCH WILL BE TAKEN IF SET & WILL CLEAR IT. * 20 BRANCH WILL BE TAKEN IF NOT SET * * JSB IFATN * DEF *+1 * A-REG. = -1 IF SET, ELSE A-REG = 0 * BREAK BIT WILL ALWAYS BE CLEARED IF SET! SPC 1 IFATN NOP ENTRY FROM FTN LDA IFATN,I GET P+1 ADDRESS STA IFATN SET RETURN ADDRESS LDB XEQT GET IDSEG ADDRESS OF THIS PROG ADB D20 GET ID(21) ADDRESS JSB .XLA GET CONTENTS OCT 100001 (LDA B,I) OR (XLA B,I) ALF,CLE,SLA,ERA PUT BIT IN E-REG AND TEST IF SET? JMP IFAT1 SET, CONTINUE CLA,CLE NO, EXIT JMP IFATN,I NO, RETURN A=0 SPC 1 IFAT1 JSB $LIBR TURN OFF INTERRUPTS NOP GO PRIV IFAT2 RAR,CLE,SLA PUT FATHER WAITING BIT IN E-REG CCE FATHER IS WAITING!! RAR,RAR AND POSITION WORD BACK TO PROPER POSITION JSB .XSA RESTORE WORD 21 OCT 100001 (STA B,I) CCB,SEZ,RSS CHECK IF FATHER IS WAITING? JMP IFAT3 NO, EXIT DONE AND O377 GET POSSIBLE FATHERS ID ADDRESS ADB KEYWD MINUS ONE ADB A JSB .XLB GET CONTENTS OF KEYWORD OCT 100001 ADB D20 AND INDEX INTO WORD 21 JSB .XLA AND GET THE CONTENTS OCT 100001 INDIRECT POINTER INTO B-REG ALF,CLE,SLA,ERA SWALLOW BIT AND TEST IF SET? JMP IFAT2 YES, CONTINUE IFAT3 CCA,CCE EXIT A-REG = -1 JSB $LIBX DEF IFATN SPC 1 D20 DEC 20 O377 OCT 377 END