FOCAL PROGRAM: AUTHOR: THOMAS J. FORD WHITE MOUNTAINS REGIONAL HIGH SCHOOL WHITEFIELD, NEW HAMPSHIRE 03598 ABSTRACT: THE OPERATING PROGRAM CONSISTING OF GROUPS 1 AND 2 WILL PUNCH TAPE-HIGH READABLE CHARACTERS USING THE LOW SPEED PUNCH. GROUPS 3,4,5, CONSTITUTE THE FUNDAMENTAL PROGRAM WHICH WAS USED TO BUILD GROUP 2, AND WHICH MAY BE USED TO CHANGE OR COMPLETELY REBUILD IT. LIMITATIONS: THIS PROGRAM WILL OPERATE ONLY IN FOCAL 5/69 [DECUS-FOCAL8-52] SINCE IT REQUIRES INPUT AND OUTPUT OF SINGLE CHARACTERS AS WELL AS CALCULATED LINE NUMBERS. THE EXTENDED FUNCTIONS MUST BE DELETED TO OPERATE ALL OF GROUP 2 IN 4K. TO RUN THE EXISTING PROGRAM: LOAD GROUPS 1,2 (AT LEAST); TYPE GO AND CARRIAGE RETURN. FOLLOW THE INSTRUCTIONS THAT APPEAR ON THE TTY PAGE. STRIKE THE APPROPRIATE KEYTOPS AND ALLOW THE L.S. PUNCH TO OUTLINE THE CHARACTER. CAUTION STRIKING A KEY OR KEY COMBINATION THAT HAS NOT BEEN CODED WILL RESULT IN AN ERROR MESSAGE AS LINE 1.04 ATTEMPTS TO DO A NON-EXIST. LINE AND HALTS THE PROGRAM. *ERROR MESSAGE IS 02.45* TO LOOK AT THE CHARACTERS AVAILABLE IN GROUP 2: TYPE OPTION C;DO 2 AND CARRIAGE RETURN. [WITH THE PUNCH ON!] TO BUILD A NEW GROUP 2: LAYOUT REQUIRED HOLE PATTERNS USING 1/10 INCH GRAPH PAPER OR SECTION OF "RUBOUT" TAPE. ASSIGN THE APPROPRIATE DECIMAL ASCII CODE TO THE PATTERN FOR EACH READABLE CHARACTER. LOAD GROUPS 3,4,5, AND GOTO 3.05 ANSWER WITH THE OCTAL VALUE OF EACH ROW OF HOLES REQUIRED TO FORM THE READABLE CHARACTER, TERMINATING EACH WITH THE SPACE (OR C.R. OR COMMA) [[NOTICE THAT THE KEYBOARD ECHO AND COLON-ON-ASK ARE SUPPRESSED]] FOR EXAMPLE, 1,1,377,1,1,0,0,400 WILL CODE A "T" WITH A TWO SOCKET HOLE SPACE FOR CHARACTER SEPARATION. THE OCTAL VALUE 400 CONCLUDES ONE READABLE CHARACTER AND BEGINS THE NEXT. >>> CAUTION, ANY CODE WHICH CAUSES A CARRIAGE RETURN WILL ALSO CAUSE FOCAL TO ECHO A LINE FEED CODE. IT IS BEST TO AVOID THE CR UNLESS YOU CAN USE THE LF. PAGE TWO FOCAL READABLE PUNCH CHARACTERS WILL BE CALLED IN THE ORDER OF DECIMAL ASCII 160 (SPACE) THRU 223 (BACK ARROW) AND THE LINE NUMBERING WILL ALSO BE CONSTRUCTED BASED ON THIS CODE. IN THIS WAY, THE LINE-FINDING CALCULATION OF LINE 1.04 WILL CORRESPOND TO THE LINE-BUILDING CALCULATION. IT SHOULD BE EMPHASIZED THAT RUNNING GROUPS 3,4,5 WILL ONLY GENERATE A GROUP 2 ON TAPE. THIS TAPE MUST BE LOADED INTO CORE BEFORE IT CAN BE USED BY GROUP 1. WHILE THE TAPE WILL LOAD AND RUN IN A STRAIGHT- FORWARD MANNER, CONSIDERABLE STORAGE IS USED FOR NON-ESSENTIAL SYMBOLS AND EXTRANEOUS SPACES. THIS STORAGE MAY BE REGAINED BY ERASING THE UNUSED LINES AND RUBBING OUT THE UNNESSARY SPACES USING THE MODIFY OPERATION IN THE USUAL WAY. THE CODES FINALLY LISTED IN GROUP 2 ARE DECIMAL. SINCE THE PROGRAM INPUT WAS OCTAL, IT IS OBVIOUS THAT THE BASE CONVERSION IS ACCOM- PLISHED BY THE PROGRAM - - - AND NOT TOO RAPIDLY! SINCE THE KEYBOARD ECHO IS SUPPRESSED, AND THE USUAL INDICATIONS ARE NOT AVAILABLE TO THE OPERATOR, CARE MUST BE EXERCISED TO ENSURE THAT THE CONVERSION AND PRINTOUT HAVE BEEN ACCOMPLISHED BEFORE KEYING IN THE NEXT OCTAL CODE TO PREVENT INPUT BUFFER OVERFLOW. THE PATTERN WILL SOON BECOME EVIDENT, AND THE VISIBLE RECORD ON THE TTY IS SUFFICIENT TO GUIDE THE OPERATOR. ( $" "0( $"!& %3) $" 01.02 T !"THIS PROGRAM WILL PUNCH FULL HEIGHT READABLE CHARACTERS 01.03 T !"AND BOOTSTRAP ITSELF TO CONTAIN ANY FONT"!,"USE ONLY ALPHA 01.04 T "-NUMERICS AND ^[]!@-*\+/ BELL QUOTES BACK^";D 3.05;CG 3.05 01.05 A N;D +N/100+.5;G 1.05 01.85 T 96,96,76,66,66,193,66,66,76,96,96,0,0 03.05 O C;O X;O N;T !"TURN ON PUNCH AND SPACE 03.10 A Z;O S 160;W 1,3,4,5;O I 03.20 F L=160,223;T %3.2,L/100+.5;T " T";D 4;T ! 04.10 A NU;I(NU-378)4.15;R 04.15 S A=0;F I=0,2;D 5 04.20 T %3,A,",";G 4.1 05.05 S D=FITR(NU/10^(2-I));S NU=NU-D*10^(2-I);S A=A+D*8^(2-I) 02.10 T 0,0,0,0,0,0,0 02.11 T 4,2,1,1,2,4,8,32,64,128,128,64,32,8 02.12 T 7,1,0,1,7,0,0 02.20 T 8,74,44,24,255,24,44,74,8,0,0, 02.21 T 8,8,60,8,8,0,0 02.23 T 8,8,8,8,8,0,0 02.25 T 128,64,32,16,8,0,4,2,1,0,0 02.26 T 190,33,137,132,125,0,0, 02.27 T 130,255,128,0,0 02.28 T 226,145,137,133,130,0,0 02.29 T 66,129,137,149,98,0,0 02.30 T 12,10,9,255,8,0,0 02.31 T 79,137,137,137,113,0,0, 02.32 T 120,132,146,145,97,0,0 02.33 T 3,1,249,5,3,0,0 02.34 T 118,137,137,137,118,0,0 02.35 T 134,137,73,33,30,0,0 02.42 T 173,82,173,82,173,82 02.43 T 254,9,9,9,254,0,0 02.44 T 255,137,137,137,118,00 02.45 T 126,129,129,129,66,0,0 02.46 T 255,129,129,129,126,0,0 02.47 T 255,137,137,129,129,0,0 02.48 T 255,9,9,1,1,0,0 02.49 T 126,129,129,137,122,0,0 02.50 T 255,8,8,8,255,0,0 02.51 T 129,255,129,0,0 02.52 T 65,129,127,1,0,0 02.53 T 255,8,20,34,193,0,0 02.54 T 255,128,128,128,128,0,0 02.55 T 255,2,4,2,255,0,0 02.56 T 255,6,48,96,255,0,0 02.57 T 126,129,129,129,126,0,0 02.58 T 255,9,9,9,6,0,0 02.59 T 126,129,161,65,190,0,0 02.60 T 255,25,41,73,134,0,0 02.61 T 70,137,137,137,114,0,0 02.62 T 1,1,255,1,1,0,0 02.63 T 127,128,128,128,127,0,0 02.64 T 6,56,192,56,7,0,0 02.65 T 255,128,96,128,255,0,0 02.66 T 231,16,8,16,231,0,0 02.67 T 7,8,248,8,7,0,0 02.68 T 135,133,137,177,225,0,0 02.69 T 255,129,129,129,0,0 02.71 T 129,129,129,255,0,0, 02.72 T 4,6,255,6,4,0,0 02.73 T 8,8,248,8,8,0,112,136,136,136,112,0,248,16,32;D 2.75 02.75 T 16,248,0,0,0,0,0,248,40,40,40,8,0,112,136,136,136,112;D 2.76 02.76 T 0,248,40,40,104,176,0,248,136,136,136,112,0,0,0 _ ``LBBABBL``xppx xx(((ppx((h0xp @@  @@  @@  @@ 8