1 '*********************************************************************
3 '*********** LL.BAS ************************************************
5 '*********************************************************************
6 ' NCYCLE = NUMBER OF REPEATS OF PATTERNS FOR LAST WAVE OF DATA
11 ' NPATT = NUMBER OF UNIQUE PATTERNS ACROSS WAVES
16 ' NSIZE = EQUALS NUMBER OF ONES AND INCREMENTS UNTIL NUMBER OF ITEMS
21 ' IS FILLED BY ZEROS
26 ' IEND = (NUMBER OF ITEMS X WAVES-1)
31 ' IICOMP$ = STRING OF ONES AND ZEROS ACROSS WAVES
36 ' I = NUMBER OF ONES IN LAST WAVE
41 ' II = NUMBER OF PATTERNS WITHIN EACH CYCLE OF COMMON STRINGS FOR LAST WAVE
46 ' IOLDI = SET EQUAL TO I
51 ' NCOUNT = NUMBER OF PATERNS WITHIN EACH CYCLE OF COMMON STRINGS
56 ' AFTER THE FIRST PATTERN
61 ' NNCYCLE-1 = NUMBER OF ONES IN SECOND FROM LAST WAVE OF ITEMS
66 ' NNSIZE = SET EQUAL TO NUMBER OF ONES AND THEN INCREMENTED
71 ' IOLDITT = SET EQUAL TO NNCYCLE
76 ' NNCOUNT = ONE GREATER THAN NUMBER OF ONES IN PATTERN
81 ' NZERO = NUMBER OF ZEROS
86 ' ---------------04-03-90----------------------------------------------------
91 ' ---------------------------------------------------------------------------
96 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
101 OPEN "I",#1,"LG.OUT":INPUT #1,HEADER$:INPUT #1,QUICK$:INPUT #1,QUICKIE$:INPUT #1,ITEMS:NSUBJ=0
102 OPEN "O",#2,"LG3.OUT"
103 PRINT #2," ":PRINT #2,"":PRINT #2," ":
104 IF QUICKIE$="0" THEN GOTO 1151
110 OPEN "I",#3,"CHECKSUB":INPUT #3,NUM:IF NUM>1250 THEN GOTO 1151
146 DIM NTITLE(1250,4)
161 INPUT #1,TITLE$
166 NSUBJ=NSUBJ+1
171 IF MID$(TITLE$,1,1)="-" THEN NSUBJ=NSUBJ-1:GOTO 1141
176 FOR I=1 TO 80
181 IF MID$(TITLE$,I,1)="0" THEN IIZERO=IIZERO+1
186 IF MID$(TITLE$,I,1)="1" THEN IIONE=IIONE+1
191 NEXT I
196 ILENGTH=IIZERO+IIONE
201 IF NSUBJ>1 THEN GOTO 591
206 PRINT #2,"LONGITUDINAL SCALOGRAM ANALYSIS (LSA) PROGRAM (VERSION 2.1)":
211 PRINT #2," BY R. D. HAYS":
216 PRINT #2," RAND ":PRINT #2," "
218 PRINT #2,HEADER$
226 NPATT=1
246 IWAVES=INT(ILENGTH/ITEMS):PRINT "WAVES= ";IWAVES
591 FOR ITE=1 TO IWAVES
596 NTITLE(NSUBJ,ITE)=0
601 NEXT ITE
606 FOR IREP=1 TO IWAVES
611 NSTEP=(IREP-1)*ITEMS
616 FOR IT=1 TO ITEMS
621 IF MID$(TITLE$,IT+NSTEP,1)="0" GOTO 631
626 NTITLE(NSUBJ,IREP)=NTITLE(NSUBJ,IREP)+(2^(ITEMS-IT))
631 NEXT IT
636 NEXT IREP
746 IF NSUBJ=1 THEN PRINT "SUBJECT NUMBER= "
751 PRINT TAB(15);NSUBJ;
760 GOTO 161
1141 GOSUB 1386
1150 PRINT #2,""
1151 CLOSE
1156 SYSTEM
1161 END
1166 '*************************************
1386 '*************************************
1391 REM SORT ERROR PATTERNS
1393 IHALF=1+INT((ITEMS-2)/2)
1396 PRINT #2,"----------------------------------------------------------------"
1401 PRINT #2," ": PRINT #2,"FREQUENCIES FOR ALL Response Patterns: ":PRINT #2,
1406 PRINT #2," Pattern Frequency "
1407 FOR IIII=1 TO IWAVES
1408 FOR IIIII=1 TO IHALF
1409 HEAD$=HEAD$+" "
1410 NEXT IIIII
1411 TMPSTR$=STR$(IWAVES+1-IIII):HEAD$=HEAD$+ "W"+MID$(TMPSTR$,2,1)
1412 FOR IIIII=1 TO IHALF
1413 HEAD$=HEAD$+" "
1414 NEXT IIIII
1415 NEXT IIII
1416 PRINT #2,HEAD$:PRINT #2,"_________________________________________________________":ILINES=12
1417 SS=0
1421 WHILE SS=0
1426 SS=1
1431 FOR I=1 TO NSUBJ-1
1436 IREP=1
1441 IF NTITLE(I,IREP)<>NTITLE(I+1,IREP) THEN GOTO 1456
1446 IF IREP=IWAVES THEN GOTO 1491
1451 IREP=IREP+1:GOTO 1441
1456 IF NTITLE(I,IREP)<NTITLE(I+1,IREP) THEN GOTO 1491
1461 IREP=1
1466 T=NTITLE(I,IREP)
1471 NTITLE(I,IREP)=NTITLE(I+1,IREP):NTITLE(I+1,IREP)=T
1476 IF IREP<IWAVES THEN IREP=IREP+1:GOTO 1466
1486 SS=0
1491 NEXT I
1496 WEND
1501 FOR IT=1 TO NSUBJ-1
1506 IREP=1
1511 IF NTITLE(IT,IREP)<>NTITLE(IT+1,IREP) THEN GOTO 1536
1516 IF IREP=IWAVES THEN NCOUNT=NCOUNT+1:GOTO 1586
1521 IREP=IREP+1:GOTO 1511
1526 ' ***************************************************
1536 IREP=1:NRUN=NTITLE(IT,IREP):TITLE$=""
1541 FOR IN=1 TO ITEMS
1546 II=ITEMS-IN
1551 IF NRUN>= 2^II THEN TITLE$=TITLE$+"1":NRUN=NRUN-2^II:GOTO 1561
1556 TITLE$=TITLE$+"0"
1561 NEXT IN
1566 IF IREP<IWAVES THEN IREP=IREP+1:NRUN=NTITLE(IT,IREP):TITLE$=TITLE$+" ":GOTO 1541
1576 PRINT #2,USING "& : (####)";TITLE$,NCOUNT+1:ILINES=ILINES+1
1578 IF ILINES<61 THEN GOTO 1582
1579 PRINT #2,""
1580 PRINT #2," Pattern Frequency "
1581 PRINT #2,HEAD$:PRINT #2,"_________________________________________________________":ILINES=3
1582 NCOUNT=0
1586 NEXT IT
1591 IREP=1:NRUN=NTITLE(NSUBJ,IREP):TITLE$=""
1596 FOR IN=1 TO ITEMS
1601 II=ITEMS-IN
1606 IF NRUN>= 2^II THEN TITLE$=TITLE$+"1":NRUN=NRUN-2^II:GOTO 1616
1611 TITLE$=TITLE$+"0"
1616 NEXT IN
1621 IF IREP<IWAVES THEN IREP=IREP+1:NRUN=NTITLE(NSUBJ,IREP):TITLE$=TITLE$+" ":GOTO 1596
1631 PRINT #2,USING "& : (####)";TITLE$,NCOUNT+1
1633 PRINT #2," "
1636 RETURN