The program in this spreadsheet will handle upto 15 dichotomous variables on upto 800 cases with missing responses assumed to be coded as blanks and the lowest valued response assumed to be coded as a '1'. The data is entered in sheet 1 and the output is a tetrachoric correlation matrix in sheet 2. Ths matrix may be copied over and entered into a SPSS spreadsheet as input to a factor analysis as described here.