1 ON ERROR GOTO 32767 \ I$=SYS(CHR$(6%)+CHR$(9%)) ! SET UP ^C TRAP FOR ACCOUNTING DUMP TO ACCOUNT G$. ! THE GAME MANAGER DUMPS THE ACCUMULATED ACCOUNTING DATA TO THE ! CURRENT ACCOUNT BEFORE CHAINING TO ANY GAME. THE GAME MAY, AT ! THE END OF ITS RUN, DUMP THE ACCOUNTING DATA TO THE GAME ACCOUNT ! IF IT IS DESIRED TO KEEP TRACK OF GAME USAGE IN THIS WAY. 10! PICTUR VER 6B EDIT 00 01-MAR-77 J.CONDICT WRITTEN BY JIM CONDICT '78 MIDDLEBURY COLLEGE, VERMONT 20! THIS PROGRAM PRINTS A PICTURE FILE FROM THE GAME ACCOUNT ON THE USER'S TERMINAL. THE PICTURES SHOULD BE STORED ON THE GAME ACCOUNT WITH A .PIC EXTENSION. THE GAME ACCOUNT IS DEFINED IN LINE 1000. ALL FILES IN THE GAME ACCUONT WITH A .PIC EXTENSION WILL BE CONSIDERED PICTURES AND WILL BE PRINTABLE THROUGH THIS PROGRAM AND LISTED AS NAMES OF PICTURES THROUGH THE PICTURE DIRECTORY OPTION OF THIS PROGRAM. THIS IS REGARDLESS OF THE PROTECTION CODE ON THE PICTURES. THIS PROGRAM SHOULD BE STORED COMPILED WITH A PROTECTION CODE OF <232>. ON THE LIBRARY ACCOUNT IF IT IS TO BE AVAILABLE AT ANY TIME FOR GENERAL USE. IT IS DESIGNED, HOWEVER, TO BE USED WITH THE GAME MANAGER AND, USED AS SUCH, SHOULD BE STORED ON THE GAME ACCOUNT WITH A PROTECTION CODE OF <252> SO THAT IT IS RUNNABLE ONLY THROUGH THE GAME MANAGER. THE PROGRAM SUPPRESSES THE PRINTING OF THE "Ready" MESSAGE WHEN THE PICTURE HAS BEEN PRINTED OUT. 1000 DIM#2%, U%(3583%,7%) \ ON ERROR GOTO 19000 \ G$="[8,9]" ! DIMENSION UFD. ! SET ERROR TRAP. 1020 PRINT "PICTUR - ";CVT$$(RIGHT(SYS(CHR$(6%)+CHR$(9%)),3%),4%) \ PRINT ! PRINT PROGRAM HEADER. 1100 PRINT 'TYPE "DIR" FOR DIRECTORY OF PICTURES.' ! INFORM USER OF DIRECTORY OPTION. 1110 INPUT "PICTURE"; P$ \ P$=CVT$$(P$,255%) \ GOTO 11000 IF P$="DIR" \ OPEN G$+P$+".PIC" FOR INPUT AS FILE 1% ! GET PICTURE NAME. ! GO PRINT DIRECTORY IF ASKED. ! OTHERWISE OPEN PICTURE FILE. 2000 PRINT "POSITION PAPER AND TYPE RETURN WHEN READY FOR PICTURE."; \ OPEN "KB:" AS FILE 3% \ INPUT#3%, P$ ! WAIT UNTIL USER IS READY FOR PICTURE. 3000 WHILE -1% \ INPUT LINE#1%, P$ \ PRINT P$; \ NEXT ! PRINT OUT PICTURE. 11000! ! P I C T U R E D I R E C T O R Y S U B R O U T I N E 11005 PRINT \ PRINT "PICTURES AVAILABLE:" \ PRINT ! PRINT HEADER FOR SUBROUTINE. 11010 OPEN "SY:"+G$ FOR INPUT AS FILE 2% \ F%=U%(31%,0%) ! OPEN UFD FOR 8,0 AND GET CLUSTER SIZE. 11020 U%=0% \ C%=25963% ! INITIALIZE FILE POINTER. ! DEFINE RADIX-50 VALUE FOR "PIC". 11030 I%=U%(U%,0%) \ U%=(((I% AND 3584%)/512%)*F%+(SWAP%(I% AND -4096%)/16%))*32%+ ((I% AND 496%)/16%) \ IF U%=0% THEN CLOSE 2% \ PRINT \ PRINT \ GOTO 1110 ! FIND NEXT UFD FILE POINTER. ! RETURN IF NO MORE FILES. 11040 IF U%(U%,3%)=C% THEN PRINT IF POS(0%)>70% \ PRINT USING "\ \\ \", RAD$(U%(U%,1%)), RAD$(U%(U%,2%)); ! PRINT NAME OF FILE IF EXTENSION IS "PIC". 11050 GOTO 11030 ! GO LOOK AT NEXT FILE. 19000! ! E R R O R T R A P R O U T I N E 19010 IF ERR=11% AND ERL=3000% THEN PRINT CHR$(11%);CHR$(12%); \P$=SYS(CHR$(5%)) ! END OF PRINTING PICTURE; EXIT WITH FORM-FEED AND NO "READY". 19015 IF ERR=11% OR ERR=28% THEN RESUME 32767 ! PROGRAM ENDED BY USER CTRL/Z OR CTRL/C. 19020 IF ERL=1110 THEN PRINT CVT$$(RIGHT(SYS(CHR$(6%)+CHR$(9%)+CHR$(ERR)),3%),4%) \ RESUME 1110 ! ERROR IN FINDING OR OPENING PICTURE FILE. 32767 I$=SYS(CHR$(6%)+CHR$(-15%)+' '+CHR$(9%)+CHR$(8%)) \ ON ERROR GOTO 0 UNLESS ERR=28% \ END ! DUMP ACCOUNTING DATA TO ACCOUNT G$. REPORT ERROR UNLESS ^C.