In the listing of ED.PLM there is a gap: lines 738 to 748 are missing. Larry Green was able to suggest the following code to fill in the gap, based on a slightly later version of CP/M. FIND: PROCEDURE(PA,PB) BYTE; DECLARE (PA,PB) BYTE; /* FIND THE STRING IN SCRATCH STARTING AT PA AND ENDING AT PB */ DECLARE J ADDRESS, (K, MATCH) BYTE; J = BACK ; MATCH = FALSE; DO WHILE NOT MATCH AND (MAXM > J); /* START SCAN AT J */ LAST,J = J + 1; K = PA ; /* ATTEMPT STRING MATCH AT K */ DO WHILE SCRATCH(K) = MEMORY(LAST) AND NOT (MATCH := K = PB); K = K + 1; LAST = LAST + 1; END; END; IF MATCH THEN /* MOVE STORAGE */ DO; LAST = LAST - 1; CALL MOVER; END; RETURN MATCH; END FIND;