* DATE 05/08/85 16:29 * title.ref * this module makes a report of all books by title STOR CHR(peek (063)) TO dr REST from rdata additive * make sure index is in right order STOR 'Y' TO command ERAS STOR 'T' TO select @ 10,10 SAY 'This module print a list of all references in the file. The printer' @ 11,10 SAY 'should be set for 132 characters per line if you have not ' @ 12,10 SAY 'set the program to handle this automatically. The report is' @ 13,10 SAY 'designed to be printed on 8 x 11 paper loaded normally in the' @ 14,10 SAY 'printer.' @ 16,10 SAY 'Do you want the report alphabetically by uthor or itle ? ' @ 16,74 GET select PICTURE '!' READ DO WHIL @(select,'AT')=0 @ 16,74 GET select PICTURE '!' READ ENDD CLEA GETS IF select = 'A' SET index TO &dr.:&aindex ELSE SET INDEX TO &dr.:&tindex ENDI RELE select GO TOP @ 18,10 SAY 'Are you ready to proceed ? ' @ 18,40 GET command PICTURE '!' READ IF COMMAND = 'Y' REST from printrf.dat additive ERAS STOR 0 TO pagen STOR 0 TO counter STOR t TO more IF PRINTER = 'Y' SET PRINT ON SET MARGIN TO 5 IF SHIFT = 'Y' SET CONSOLE OFF ? CHR(chr121) + CHR(chr122) + CHR(chr123) SET CONSOLE ON ENDI shift ENDI printer DO WHIL more * do page counter etc IF $(date(),4,1) = '0' STOR $(date(),5,1) TO date2 ELSE STOR $(date(),4,2) TO date2 ENDI DO CASE CASE $(date(),1,2) = '01' STOR 'January ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '02' STOR 'February ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '03' STOR 'March ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '04' STOR 'April ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '05' STOR 'May ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '06' STOR 'June ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '07' STOR 'July ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '08' STOR 'August ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '09' STOR 'September ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '10' STOR 'October ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '11' STOR 'November ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '12' STOR 'December ' + date2 + ', 19' + $(date(),7,2) TO date1 ENDC STOR pagen+1 TO pagen STOR 7 TO lineno ERAS IF .NOT. EOF ? caption ? ' ' ? 'Report of ' +date1 + '. ' + 'PAGE ' + STR(pagen,2) ? "--------------------------------------------------------------------------------------------------------------------------" ? ' ' ENDI .NOT. EOF * now fill up rest of page to 55 lines with names etc DO WHIL lineno < 55 * now do a page if not end of file IF .NOT. EOF STOR counter + 1 TO counter STOR ' ' TO blnks IF author <> ' ' STOR TRIM(author)+'. ' TO auth ENDI IF LEN(auth)+LEN(TRIM($(title1,1,60)))+LEN(TRIM($(title1,61,60))) > 125 ? auth + $(title1,1,60) ? $(blnks,1,LEN(auth))+$(title1,61,60) STOR lineno+2 TO lineno ELSE ? auth +TRIM($(title1,1,60))+' '+TRIM($(title1,61,60)) STOR lineno+1 TO lineno ENDI IF title2 <> ' ' ? ' '+title2 STOR lineno+1 TO lineno ENDI title IF publdat <> ' ' ? ' '+TRIM(publdat)+'. '+librdat STOR lineno+1 TO lineno ENDI IF publdat = ' ' .AND. librdat <> ' ' ? ' '+librdat STOR lineno +1 TO lineno ENDI ? ' ' STOR lineno+1 TO lineno SKIP * however, skip again if record deleted IF * SKIP ENDI ELSE STOR f TO more STOR 60 TO lineno ENDI not EOF ENDD while lineno < 55 IF .NOT. EOF SET PRINT OFF @ 20,00 SAY ' ********************************************************************* ' @ 21,00 @ 22,00 @ 21,10 SAY 'CHANGE PAPER IF NECESSARY AND THEN HIT ANY KEY TO RESTART' SET CONSOLE OFF WAIT SET CONSOLE ON IF printer = 'Y' SET PRINT ON ENDI ENDI ENDD more SET PRINT OFF @ 20,00 SAY ' ********************************************************************* ' @ 21,00 @ 22,00 @ 21,10 SAY 'CHANGE PAPER IF NECESSARY AND THEN HIT ANY KEY TO RESTART' SET CONSOLE OFF WAIT SET CONSOLE ON IF printer = 'Y' SET PRINT ON ENDI ? ' ' ? "--------------------------------------------------------------------------------------------------------------------------" ? ' ' ? ' THE TOTAL NUMBER OF REFERENCES LISTED WAS ' + STR(counter,3,0) * if it was on turn it off EJEC SET PRINT OFF IF PRINTER = 'Y' .AND. SHIFT = 'Y' SET PRINT ON ? CHR(chrreg1) + CHR(chrreg2) + CHR(chrreg3) SET PRINT OFF ENDI printer ENDI command = 'Y' * release local variables RELE pagen, lineno, counter * restore memory varibles SET INDEX TO &dr.:&tindex STOR t TO more STOR t TO first