*20 /SERINDEX /FOR PDP-12 /PETER GUTTERMAN /UNIV. WISCONSIN / /SEARCHES FOR A NAME IN A DIAL INDEX / ENTER WITH THE NAME TO BE SEARCHED IN / MEMORY STARTING AT LOCATION FWA, / WITH THE INDEX IN QUARTERS 6 ? 7, / AND WITH FWA IN THE ACCUMULATOR. /IF FOUND, INDEX 1 POINTS TO LAST WORD / OF THE NAME IN THE INDEX UPON RETURN /CALLING SEQUENCE: / LOAD FWA / JMP SINDEX / RETURN: NOT FOUND / RETURN: FOUND /NON-INTERRUPTABLE / SINDEX, STC .+15 /SAVE FWA ADD 0 /SAVE RETURN STC .+26 SET I 1 /SET POINTER TO 7007 /FIRST INDEX ENTRY LDA /MOVE INDEX POINTER TO END OF ENTRY 1 BSE I 7 AZE I /END OF INDEX? JMP .+16 /YES: SEARCH FAILED STC 1 /NO: SAVE INDEX POINTER SET I 2 0 /NAME FWA SET I 3 /FOUR WORDS PER NAME -4 LDA 2 /LOAD FIRST 2 CHARACTERS JMP .+2 /SKIP LDA I 2 /LOAD NEXT 2 CHARACTERS SAE I 1 /MATCH TO INDEX? JMP .-17 /NO: MOVE TO NEXT ENTRY XSK I 3 /ENOUGH MATCHED? JMP .-4 /NO: GET NEXT TWO CHARS SET I 2 /YES: EXIT TO .+2 JMP 0 /USE THIS IF SEARCH FAILED XSK I 2 JMP 2 /RETURN IF NAME FOUND /END SERINDEX /