ASMB,R,L,C * * * ************************************************************** * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978. ALL RIGHTS * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- * * PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH- * * OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * ************************************************************** * * * * NAME: SYMB * SOURCE: 92840-18110 * RELOC: 92840-16012 * * * ************************************************************* * NAM SYMB,8 92840-16012 REV.1913 790110 * * * **************************************************************** * * * * **************************************************************** * ENT Z12SB * EXT Z12PT,SIN,COS,.ENTR,ERR0,IFIX,FLOAT * **************************************************** * * ROUTINE: SYMB (SYMBOL) * * -FORTRAN LINKAGE- * CALL SYMB(X,Y,SIZE,BCD,THETA,N) * * -CALLING SEQUENCE- * JSB SYMB * DEF *+7 * DEF X * DEF Y * DEF SIZE * DEF BCD * DEF THETA * DEF N * * WHERE X AND Y ARE THE PAGE COORDINATES * OF THE LOWER LEFT CORNER OF THE FIRST * CHARACTER. SIZE IS THE DESIRED LETTER * HEIGHT. BCD IS THE LOCATION OF THE * ASCII ARRAY. THETA IS THE ANGLE OF * LETTERING WITH RESPECT TO THE X-AXIS. * * - X,Y,SIZE AND THETA ARE FLOATING POINT * NUMBERS. (THETA IS IN DEGREES). * * N=1 PLOT THE ASCII STRING DEFINED BY BCD * N=-1 PLOT THE SPECIAL CHARACTER GIVEN AND LEAVE THE * PEN DOWN * N=-2 PLOT THE SPECIAL CHARACTER GIVEN AND LEAVE THE * PEN UP * * BCD CAN BE AN INTEGER ARRAY OF THE ACTUAL CHARACTERS * TO BE PLOTTED (ASCII STRING CONVENTION IS USED * WHICH MEANS THAT THE FIRST WORD INDICATES THE * NUMBER OF CHARCTERS THAT FOLLOWS) OR AN INTEGER * THAT SPECIFIES THE SPECIAL CHARACTER TO BE PLOTTED. * ******************************************************* * X DEF FL999 PARAMETER AREA Y DEF FL999 (SET BY .ENTR AFTER CALL) SIZE DEF OFCT (INITIALIZED TO FIXED VALUES BCD DEF C.02 TO PROTECT ROUTINE FROM SHORT THETA DEF OTHET PARAMETER LIST). N DEF CM.8 * * Z12SB NOP JSB .ENTR SET UP PARAMETER DEF Z12SB-6 LINKAGE AREA * LDA C.03 INITIALIZE PEN TO STA PEN UP POSITION. LDA N,I CHECK -N- SSA,RSS IF N >= 0, GO TO JMP S1 SET FOR ARRAY PLOT. * * SPECIAL CHARACTER ( N < 0 ) * LDB C.02 CMA,SZA IF N<=-1 THEN SET PEN=2 STB PEN FOR PEN DOWN CONDITION. CCA SET CHCNT = -1 FOR ONE CHAR STA CHCNT TO BE DRAWN. LDA TAB2A SET TABA TO REFERENCE TAB2 - STA TABA SPECIAL CHARACTER TABLE. DLD BCD,I GET CHAR VALU, SAVE A JSB IFIX STA CHAR INDEX TO TAB2. JMP S2 -NORMAL OFFSET- (GT 14(8)) * * ASCII CHARACTER PLOT (ARRAY OR SINGLE CHARACTER) * S1 LDA BCD,I GET CHAR COUNT ISZ BCD INCREMENT ADDRESS TO CHARACTERS AND M377 MASK OUT HIGH ORDER BITS CMA,INA SET N NEGATIVE - STA B (SAVE TEMPORARILY) SZA,RSS IF N = 0 (SINGLE CHAR PLOT), CCA SET N = -1. STA CHCNT SET N AS INDEX FOR CHAR. COUNT. * LDA BCD GET ARRAY ADDRESS - CONVERT TO RAL CHAR. ADDRESS (UPPER CHAR) SZB,RSS IF SINGLE CHAR. OUTPUT, SET ADDR. INA TO LOWER (BIT 0 =1) STA ARRAD SAVE ADDRESS. LDA N,I CHECK FOR TYPE OF PLOT SZA USE VECTORS? JMP DOTPA NO,USE DOT PATTERNS LDA TAB1A SET TABLE ADDRESS = TAB1A TO STA TABA REFERENCE ASCII SET TABLE. * S2 DLD SIZE,I GET SIZE PARAMETER, DIVIDE BY * (ADDR OF F7 OR F4 - SET AT S2+1) DST FCT SET FACTOR (SIZE/DIV). * * CHECK FOR NEW THETA (ROTATIONAL) PARAMETER * DLD THETA,I CHECK NEW THETA CPA OTHET AGAINST OLD THETA VALUE RSS (INITIALIZED TO 0-DEGREES.) JMP S3 -NEW- CPB OTHET+1 JMP S4 -SAME AS OLD VALUE- * * CONVERT THETA TO RADIANS, COMPUTE SIN, COS * S3 DST OTHET SAVE AS NEW OLD-THETA JSB SICOS CALC. SIN AND COS JMP S5 * * * SICOS NOP CONV. THETA TO SIN AND COS DST TEMP1 JSB SIN CALCULATE SINE JSB ERR0 DST INCS DLD TEMP1 JSB COS CALCULATE COSINE JSB ERR0 DST INCC DLD FCT JMP SICOS,I RETURN * * CHECK FOR NEW FACTOR PARAMETER (SIZE/DIV) * S4 DLD FCT CHECK FOR CHANGE IN CPA OFCT FACTOR RSS JMP S5 -NEW- CPB OFCT+1 JMP S8 -SAME AS OLD VALUE * * CALCULATE POINT FACTORS FOR POINT (X1,Y1) * S5 DST OFCT SET NEW VALUE AS OLD FACTOR FMP INCC CALCULATE XA1 = FCT * INCC DST XA1 DLD OFCT FMP INCS CALCULATE YA1 = FCT * INCS DST YA1 * * CALCULATE POINT FACTORS FOR 10X10 MATRIX (2 TO 9) * LDA XA2A SET ADDR. FOR STA TEMP1 XA(2) LDA CM.8 SET INDEX FOR RANGE STA TEMP2 XA(2) TO XA(9) DLD XA1 XA(I) = XA(1) + XA(I-1) S6 FAD XA1 DST TEMP1,I SET XA(I) FOR I = 2-9 ISZ TEMP1 -SET ADDR. ISZ TEMP1 FOR NEXT FLPT NUMBER. ISZ TEMP2 INDEX FOR 2 TO 9 JMP S6 -CONTINUE * LDA YA2A REPEAT STA TEMP1 ABOVE LDA CM.8 PROCESSING STA TEMP2 FOR DLD YA1 YA(2) TO YA(9) S7 FAD YA1 ACCORDING TO: DST TEMP1,I ISZ TEMP1 YA(I) = YA(1) + YA(I-1) ISZ TEMP1 ISZ TEMP2 JMP S7 * * PROCESS X,Y COORDINATES IN CALL * S8 DLD X,I IF -X- IS GT OR = TO * FSB XA2 FAD YA2 XORG = X - XA(2) + YA(2) DST XORG * S9 DLD Y,I IF -Y- IS GT OR = TO * FSB XA2 FSB YA2 YORG = Y - XA(2) - YA(2) DST YORG * S10 LDB N,I IF N < 0, THEN SET LDA CHAR (A) = CHAR INDEX SSB AND GO TO JMP S12 GET CHAR. OFFSETS. * * EXTRACT CHAR FROM BCD ARRAY AND INDEX TO TABLES * S11 LDB ARRAD GET CURRENT CHARACTER ADDRESS LBT STB ARRAD - SET FOR NEXT CHARACTER ADDR.- AND M77 IN A. (USE ONLY LOW 6-BITS) * S12 ADA TABA SET APPROPRIATE TABLE STA TEMP1 ADDRESS - LDA A,I GET TABLE VALUE FOR -CHAR- AND M377 GET ADDR OF FIRST OFFSET WORD ADA TABLA IN OFFSET TABLE - CONVERT TO RAL UPPER POSITION STA OFFST CHARACTER ADDRESS. LDA TEMP1,I GET TABLE WORD AGAIN. SSA IF BIT 15 = 1, SET OFFSET ADDRESS ISZ OFFST TO LOWER POSITION. ALF,ALF ROTATE OFFSET COUNT TO AND M177 LOW A (7-BITS) AND SET CMA,INA NEGATIVE FOR STA OFFCT INDEX FOR INDEX FACTORS * * EXTRACT AND PROCESS EACH OFFSET PAIR FOR CHARACTER * S13 LDB OFFST GET CURRENT OFFSET-PAIR CHARACTER LBT STB OFFST ADDRESS, SET FOR NEXT ADDRESS. ALF,ALF (X,Y) OF 8-BITS. STA B SAVE X,Y. ALF PUT X AND M17 IN LOW A, ALS MULTIPLY BY 2 STA TEMP1 AND SAVE FOR INDEX TO XA-ARRAY LDA B PUT ALF,ALF Y IN LOW A, AND M17 MULTIPLY ALS BY 2 STA TEMP2 AND SAVE FOR INDEX TO YA. LDA M36 IF X OFFSET = 17(8) FOR LDB C.03 PEN-UP, THEN CPA TEMP1 GO TO SET IC AND GET JMP S14 NEXT OFFSET PAIR. * LDA XAD COMPUTE ADDRESS OF ADA TEMP1 XA-ARRAY FOR X-OFFSET STA TEMP3 LDA YAD COMPUTE ADDRESS OF ADA TEMP2 YA-ARRAY FOR Y-OFFSET STA TEMP4 DLD XORG COMPUTE: FAD TEMP3,I FSB TEMP4,I XT = XORG + XA(KX) - YA(KY) DST XT * LDA YAD COMPUTE ADDRESS OF ADA TEMP1 YA-ARRAY FOR X-OFFSET STA TEMP3 LDA XAD COMPUTE ADDRESS OF ADA TEMP2 XA-ARRAY FOR Y-OFFSET STA TEMP4 DLD YORG COMPUTE FAD TEMP3,I FAD TEMP4,I YT = YORG + YA(KX) + XA(KY) DST YT * * CALL FOR PLOT FOR CURRENT XT,YT * JSB Z12PT DEF *+4 DEF XT DEF YT DEF PEN * * LDB C.02 SET FOR PEN DOWN S14 STB PEN * ISZ OFFCT INDEX CHARACTER OFFSET COUNT JMP S13 - MORE TO PROCESS - * * SET X-ORIGIN AND Y-ORIGIN FOR NEXT CHARACTER. * DLD XORG FAD XA7 X-ORIGIN = X-ORIGIN + XA(7) DST XORG * DLD YORG FAD YA7 Y-ORIGIN = Y-ORIGIN + YA(7) DST YORG LDA C.03 STA PEN * ISZ CHCNT INDEX CHARACTER COUNTER JMP S11 - MORE TO PLOT - * * CALL TO SYMB COMPLETED * SYMBR JMP Z12SB,I HED USE ACTUAL DOT PATTERNS DOTPA EQU * USE DOT PATTERNS DLD SIZE,I SIZE OF CHAR. JSB IFIX SSA CMA,INA FORM ABSOLUTE VALUE SZA,RSS INVALID 0? CLA,INA YES, SET IT TO 1 STA SIZEF SAVE ABSOL. SIZE (FIXED PT.) DLD THETA,I ANGLE FAD D45.0 "ROUND" JSB SICOS CALC. SINE AND COS * DETERMINE IF HORIZ. OR VERTICAL AXIS CLB FLAG FOR VERTICAL LDA INCS SINE OF THETA XOR INCC COS OF THETA SSA HORIZ? INB NO STB HVFLG HORIZ/VERT. FLAG * DETERMINE ACTUAL QUADRANTS CLB,INB LDA INCS SIN OF THETA SSA QUAD. 1 OR 2? CMB,INB NO. 3 OR 4 LDA HVFLG HORIZ/VERT FLAG SZA HORIZ.? CMB,INB NO STB MY + OR - 1 CLB,INB LDA INCC COS OF THETA SSA QUAD. 1 OR 4? CMB,INB NO, 2 OR 3 LDA HVFLG HORIZ/VERT FLAG SZA HORIZ.? CMB,INB NO STB MX + OR - 1 * PICK UP ADDRESS TO DOT PATTERNS CLB ADDR. ONLY FLAG FOR GPARA * SET UP VALUES & CONVERT TO INTEGER CLA,INA BOTTOMS UP READ JSB Z12PT DEF *+4 DEF X,I DEF Y,I DEF D3 PEN UP STA IX SAVE INTEGER VALUE OF X-COORD. STB IY SAVE INTEGER VALUE OF Y-COORD. STA IIX ESTABLISH RESET VALUE FOR X-COORD. STB IIY ESTABLISH RESET VALUE FOR Y-COORD. * EXTRACT CHAR. FROM BCD ARRAY NXCHR EQU * NEXT CHARACTER LDA ARRAD CHAR. POINTER TO USER'S BUFFER ISZ ARRAD POINT TO NEXT CHAR. IN BCD STRING CLE,ERA SHIFT RIGHT/LEFT BIT & /2 LDA A,I PICK UP DESIRED WORD SEZ,RSS RIGHT-HAND CHAR.? ALF,ALF NO AND B177 * DETERMINE RIGHT OR LEFT PORTION OF BIT-PAT.-WORD CLE,ERA SHIFT RIGHT/LEFT BIT & /2 CLB FLAG FOR LEFT SEZ USE RIGHT HALF OF BIT-PATTERNS? CCB YES STB RORL 0=LEFT, NOT 0=RIGHT ADA CHBIS CHAR. BIAS/2 MPY D9 9 WORDS/CHAR. ADA D9 POINT TO BOTTOM OF LIST ADA ACBUF START OF BIT-PATTERNS STA ABITP SAVE POINTER TO BIT-PATTERNS LDA MD9 ROWS/CHAR. STA IDX1 INDEX FOR LOOP NXROW EQU * NEXT ROW LDB RORL RIGHT OR LEFT BIT-PAT. FLAG LDA ABITP POINTER TO BIT PATTERNS ADA MD1 BUMP POINTER TO NEXT ROW STA ABITP RESTORE IT LDA A,I PICK UP CURRENT BIT PATTERN CLE,ERB SHIFT RIGHT/LEFT FLAG SEZ LEFT HALF? ALF,ALF NO CLE,ELA IGNORE 1ST COL. STA BITP NEXT ROW OF BIT PATTERNS LDA NOCOL NO. COLUMNS (7 OR 5) STA IDX2 INITIALIZE INDEX FOR COLUMNS NXBIT EQU * NEXT BIT LDA BITP CURRENT BIT PATTERN FOR THIS ROW CLE,ELA SHIFT BIT INTO POSITION STA BITP SAVE REMAINING BITS SEZ,RSS BIT SET? JMP NOTST NO DLD IX X,Y JSB TBITO TURN THIS BIT ON IN DISC LDA SIZEF POSSIBLE SIZE OF CHAR. CPA D1 *2? JMP NOTX2 NO CLA LDB MY Y = Y + MY JSB HVCK HORIZ/VERT CHECK FOR SWAP X&Y JSB TBITO SET THIS BIT ON IN DISC LDA MX X = X + MX CLB JSB HVCK CHECK FOR SWAP JSB TBITO SET BIT ON CLA LDB MY Y = Y - MY CMB,INB JSB HVCK CHECK FOR SWAP JSB TBITO SET BIT ON JMP NOTX2 INC. X BY ONLY 1 FOR X2 NOW NOTST EQU * BIT NOT SET LDA SIZEF POSSIBLE SIZE OF CHAR. CPA D1 *2? JMP NOTX2 NO LDA MX X = X + MX CLB JSB HVCK CHECK FOR SWAP NOTX2 EQU * NOT TWICE AS BIG LDA MX X = X + MX CLB JSB HVCK CHECK FOR SWAP CKROW EQU * CHECK IF ROW COMPLETE ISZ IDX2 FINISHED W/ ALL COL. IN ROW? JMP NXBIT NO,CHECK NEXT BIT IN ROW LDB AIIX ADDR. OF RESET VALUES ADB HVFLG BIAS TO APPROPIATE VALUE LDA B,I PICK UP X OR Y COORD. ADB D2 BIAS TO PROPER COORD. STA B,I SAVE APPROPIATE COORD. CLA LDB MY Y = Y + MY JSB HVCK CHECK FOR SWAP LDA SIZEF POSSIBLE SIZE OF CHAR. CPA D1 *2? JMP CKR NO CLA LDB MY Y = Y + MY JSB HVCK CHECK FOR SWAP CKR ISZ IDX1 FINISHED WITH CHAR.? JMP NXROW NO, START ON NEXT ROW LDA IIX RESET VALUE FOR X-COORD. LDB IIY RESET VALUE FOR Y-COORD. STA IX RESET X-COORD. STB IY RESET Y-COORD. LDA SIZE,I POSSIBLE SIZE & ORIENTATION SSA "LEFT-TO-RIGHT"? JMP TTB NO, "TOP-TO-BOTTOM" LDA MX STEP-DIRECTION FOR X-COORD. MPY D7 ASSUME 5X9 STA TEMP1 SAVE X FOR POSSIBLE *2 CLB X = X + (7*MX) JSB HVCK CHECK FOR SWAP LDA SIZEF POSSIBLE SIZE OF CHAR. CPA D1 *2? JMP RSTA NO, RESTORE LDA TEMP1 PICK UP X VALUE CLB JSB HVCK CHECK FOR SWAP RSTA LDA IX RESTORE X-COORD. JMP CKCHR CHECK FOR NEXT CHAR. IN STRING TTB EQU * "TOP-TO-BOTTOM" LDA MY MPY D11 ASSUME 5X9 STA B Y = Y - (11*MY) CMB,INB STB TEMP1 TEMP. SAVE FOR POSSIBLE *2 CLA JSB HVCK CHECK FOR H/V SWAP LDA SIZEF POSSIBLE SIZE OF CHAR. CPA D1 *2? JMP RSTB NO LDB TEMP1 RESTORE Y VALUE CLA JSB HVCK CHECK FOR H/V SWAP RSTB LDA IX RESTORE X-COORD CKCHR EQU * CHECK CHAR. DST IIX SAVE NEW RESET COORD. VALUES ISZ CHCNT FINISHED W/ USER'S CHAR. STRING? JMP NXCHR NO,START ON NEXT CHAR. JSB FLOAT FLOAT VALUE OF X-COORD. DST TEMP1 AND SAVE IT LDA IIY RESET VALUE JSB FLOAT FLOAT VALUE OF Y-COORD. DST TEMP3 AND SAVE IT JSB Z12PT INITIALIZE ALL REQ'D. FLAGS DEF *+4 DEF TEMP1 DEF TEMP3 DEF D3 PEN UP JMP SYMBR RETURN TO USER * * ROUTINE TO CHECK AND SWAP HORIZ/VERT. VALUES IF REQ'D. * HVCK NOP HORIZ/VERT. CHECK STA RX SAVE TEMP RELATIVE VALUES STB RY LDA HVFLG HORIZ/VERT. FLAG SZA HORIZ. AXIS? JMP VERT NO LDA RX JMP VERT+2 VERT LDA RY SWAP HORIZ. & VERT. VALUES LDB RX ADA IX STEP IN PROPER DIRECTION ADB IY DST IX RESTORE VALUES JMP HVCK,I RETURN * * ROUTINE TO PLOT DESIRED POINT * TBITO NOP TURN BIT ON LDA AXY ADDR. OF X-Y COORD. LDB APENC ADDR. OF PEN CONTROL JMP TBITO,I RETURN * * * AXY DEF IX APENC DEF D1 ADDR. OF PEN CONTROL D45.0 DEC 45.0 D11 DEC 11 D7 DEC 7 NOCOL DEC -7 NO. COLUMNS (7 OR 5) MD1 DEC -1 MD9 DEC -9 D9 DEC 9 D3 DEC 3 D2 DEC 2 D1 DEC 1 CHBIS OCT -20 CHAR. BIAS/2 B177 OCT 177 HVFLG OCT 0 HORIZ./VERT. FLAG MX OCT 0 MOVEMENT IN "X" DIRECTION MY OCT 0 MOVEMENT IN "Y" DIRECTION ACBUF OCT 0 ADDR. OF CHAR DOT PAT. BUFFER AIIX DEF IIX * PRESERVE THE FOLLOWING 4-WORD SEQUENCE IIX OCT 0 RESET VALUE FOR X-COORD. IIY OCT 0 RESET VALUE FOR Y-COORD. IX OCT 0 X-COORDINATE IY OCT 0 Y-COORDINATE RORL OCT 0 RIGHT OR LEFT IDX1 OCT 0 INDEX REGISTER 1 IDX2 OCT 0 INDEX REGISTER 2 ABITP OCT 0 ADDR. OF CURRENT BIT PATTERN BITP OCT 0 CURRENT ROW OF BITS FOR PATTERN RX OCT 0 RELATIVE X-COORD. RY OCT 0 RELATIVE Y-COORD. SIZEF OCT 0 ABSOL. VALUE OF FIXED PT. SIZE * * * CONSTANT, FLAG AND STORAGE SECTION * A EQU 0 A, B B EQU 1 REGISTERS * C.02 DEC 2 C.03 DEC 3 CM.8 DEC -8 CM15 DEC -15 * M17 OCT 17 M36 OCT 36 M77 OCT 77 M177 OCT 177 M377 OCT 377 M1774 OCT 177400 * FL999 DEC 999.0 * F4A DEF F4 F4 DEC 4.0 F7A DEF F7 F7 DEC 7.0 * PEN NOP * CHCNT NOP CHAR NOP OFFST NOP OFFCT NOP ARRAD NOP * TEMP1 NOP TEMPORARY TEMP2 NOP TEMP3 NOP STORAGE TEMP4 NOP * INCS DEC 0. INCC DEC 1.0 * FCT DEC 0. OFCT DEC .02 FOR .14 INCH INCREMENTS (.01 FOR .07) * OTHET DEC 0. INITIALIZE TO ZERO DEGREES ROTATION * RADN DEC .0174533 FACTOR FOR DEGREES TO RADIANS * * * XAD DEF XA0 XA2A DEF XA2 * XA0 DEC .00 INITIAL XA1 DEC .02 VALUES XA2 DEC .04 SET XA3 DEC .06 FOR XA4 DEC .08 .14 INCH XA5 DEC .10 INCREMENTS XA6 DEC .12 XA7 DEC .14 (FOR .07 INCH INCREMENTS, XA8 DEC .16 HALVE VALUES) XA9 DEC .18 * * * YAD DEF YA0 YA2A DEF YA2 * YA0 DEC 0. YA1 DEC 0. YA2 DEC 0. YA3 DEC 0. YA4 DEC 0. YA5 DEC 0. YA6 DEC 0. YA7 DEC 0. YA8 DEC 0. YA9 DEC 0. * * * XORG DEC 0. YORG DEC 0. * XT DEC 0. YT DEC 0. * * TABA NOP * TAB1A DEF TAB1 * TAB2A DEF TAB2 * * * CHARACTER REFERENCE TABLES - * * THE FOLLOWING TABLES (TAB1 AND TAB2) CONTAIN * THE INFORMATION TO ACCESS THE OFFSET TABLE * FOR EACH AVAILABLE CHARACTER. * * EACH CHARACTER OR SPECIAL SYMBOL AVAILABLE * FOR PLOTTING IS ASSOCIATED WITH ONE UNIQUE * WORD IN ONE OF THE FOLLOWING TABLES. * * EACH REFERENCE WORD CONTAINS THE FOLLOWING * INFORMATION: * 1. RELATIVE ADDRESS OF WORD IN OFFSET TABLE * FOR START OF OFFSET STRING * (BITS 07-00) * 2. NUMBER OF OFFSET PAIRS (8-BITS) IN STRING * (BITS 14-08) * 3. STARTING POSITION OF STRING IN WORD, * 0 MEANS UPPER, 1 MEANS LOWER. * (BIT 15) * * TAB1 COMPRISES THE STANDARD CHARACTER SET * TAB2 COMPRISES SPECIAL CHARACTERS AND * CENTERED SYMBOLS WHICH CAN BE ACCESSED * BY POSITION WHEN PARAMETER N < 0, IN CALL. * * TAB1 IS ORDERED BY POSITION DESIGNATED BY LOWER * 6-BITS OF ASCII CODE (E.G. A = 101 = 01) * - THIS TABLE IS LIMITED TO 64 ENTRIES - 00 * TO 77. * * * POS CNT ADDR CODE CHARACTER * --- --- ---- ---- --------- * TAB2 OCT 103641 1 7 241 00 OCT 106244 1 14 244 01 OCT 003252 0 6 252 02 OCT 003660 0 7 260 03 OCT 103663 1 7 263 04 OCT 003666 0 7 266 05 OCT 003671 0 7 271 06 OCT 004274 0 10 274 07 OCT 005700 0 13 300 08 OCT 003705 0 7 305 09 OCT 007310 0 16 310 10 OCT 006660 0 15 260 11 OCT 103316 1 6 316 12 OCT 002260 0 4 260 13 OCT 006252 0 14 252 14 OCT 101321 1 2 321 15 OCT 101325 1 2 325 16 OCT 102726 1 5 326 17 OCT 103233 1 6 233 18 OCT 104321 1 10 321 19 OCT 002731 0 5 331 20 OCT 102733 1 5 333 21 OCT 103236 1 6 236 22 OCT 001746 0 3 346 23 OCT 004336 0 10 336 24 OCT 004342 0 10 342 25 * * * TAB1 OCT 110347 1 20 347 00 @ OCT 004400 0 11 0 01 A OCT 106005 1 14 5 02 B OCT 104014 1 10 14 03 C OCT 103404 1 7 4 04 D OCT 003422 0 7 22 05 E OCT 003022 0 6 22 06 F OCT 006036 0 14 36 07 G OCT 103025 1 6 25 10 H OCT 003044 0 6 44 11 1 OCT 103047 1 6 47 12 J OCT 003033 0 6 33 13 K OCT 001425 0 3 25 14 L OCT 102431 1 5 31 15 M OCT 102030 1 4 30 16 N OCT 004414 0 11 14 17 O OCT 103453 1 7 53 20 P OCT 006014 0 14 14 21 Q OCT 104453 1 11 53 22 R OCT 006460 0 15 60 23 S OCT 102066 1 4 66 24 T OCT 003447 0 7 47 25 U OCT 001473 0 3 73 26 V OCT 002452 0 5 52 27 W OCT 102474 1 5 74 30 X OCT 002477 0 5 77 31 Y OCT 103467 1 7 67 32 Z OCT 002156 0 4 156 33 OCT 001076 0 2 76 34 OCT 002160 0 4 160 35 OCT 002562 0 5 162 36 OCT 102564 1 5 164 37 _ OCT 100471 1 1 71 40 OCT 003574 0 7 174 41 ! OCT 004577 0 11 177 42 " OCT 105603 1 13 203 43 # OCT 006611 0 15 211 44 $ OCT 106217 1 14 217 45 % OCT 105357 0 12 357 46 & OCT 002177 0 4 177 47 ' OCT 002152 0 4 152 50 ( OCT 002154 0 4 154 51 ) OCT 005542 0 13 142 52 * OCT 002542 0 5 142 53 + OCT 103230 1 6 230 54 , OCT 101143 1 2 143 55 - OCT 102630 1 5 230 56 . OCT 101074 1 2 74 57 / OCT 105013 1 12 13 60 0 OCT 102501 1 5 101 61 1 OCT 004504 0 11 104 62 2 OCT 006524 0 15 124 63 3 OCT 102110 1 4 110 64 4 OCT 105112 1 12 112 65 5 OCT 106113 1 14 113 66 6 OCT 102521 1 5 121 67 7 OCT 010524 0 21 124 70 8 OCT 105534 1 13 134 71 9 OCT 105625 1 13 225 72 : OCT 106225 1 14 225 73 ; OCT 001635 0 3 235 74 < OCT 102547 1 5 147 75 = OCT 001640 0 3 240 76 > OCT 007167 0 16 167 77 ? * * * * * CHARACTER - OFFSET - TABLE * -EACH WORD CONTAINS 2 PAIRS OF X,Y OFFSETS, * "X1Y1X2Y2", EACH PAIR IS 8-BITS AND 4 * BITS IN EACH PAIR SPECIFY THE X AND Y POINT * FOR THE OFFSET. * * THE STRING OF OFFSET PAIRS FOR A CHARACTER MAY * START IN THE UPPER OR LOWER POSITION OF A * WORD. THE STARTING LOCATION, POSITION INDICATOR * AND OFFSET COUNT FOR EACH CHARACTER IS CONTAINED * IN THE REFERENCE TABLES. * * * PORTIONS OF OFFSET STRINGS MAY OVERLAP OTHER * STRINGS WHEN LINE SEGMENTS AMONG CHARACTERS * ARE IDENTICAL. * * TABLA DEF TABLE DEFINE STARTING ADDRESS OF TABLE * * OCTAL PAIRS ADDRESS SYMBOL * TABLE OCT 021045 2-2 2-5 00 +A OCT 062445 6-5 2-5 OCT 024071 2-10 3-11 OCT 054550 5-11 6-10 OCT 061131 6-2 5-11 -D OCT 064143 6-10 6-3 -B OCT 051042 5-2 2-2 OCT 024531 2-11 5-11 OCT 064147 6-10 6-7 10 OCT 053046 5-6 2-6 OCT 053145 5-6 6-5 OCT 061527 6-3 5-7 -0 OCT 064143 6-10 6-3 +Q,+0,-C OCT 051062 5-2 3-2 OCT 021450 2-3 2-10 OCT 034531 3-11 5-11 OCT 064360 6-10 17-0 20 OCT 042142 4-4 6-2 OCT 064451 6-11 2-11 +E,+F OCT 023126 2-6 5-6 OCT 023042 2-6 2-2 OCT 061042 6-2 2-2 +L,-H OCT 024446 2-11 2-6 OCT 063151 6-6 6-11 OCT 061042 6-2 2-2 30 -N OCT 024542 2-11 6-2 -M OCT 064506 6-11 4-6 OCT 024442 2-11 2-2 +K OCT 022551 2-5 6-11 OCT 043542 4-7 6-2 OCT 072525 7-5 5-5 +G OCT 062543 6-5 6-3 OCT 051062 5-2 3-2 40 OCT 021450 2-3 2-10 OCT 034531 3-11 5-11 OCT 064147 6-10 6-7 OCT 051062 5-2 3-2 +I OCT 041111 4-2 4-11 OCT 034531 3-11 5-11 OCT 024444 2-11 2-4 +U,-J OCT 021462 2-3 3-2 50 OCT 051143 5-2 6-3 OCT 064542 6-11 6-2 +W OCT 043042 4-6 2-2 -P,-R OCT 024531 2-11 5-11 OCT 064147 6-10 6-7 OCT 053046 5-6 2-6 OCT 043142 4-6 6-2 OCT 022043 2-4 2-3 60 +S OCT 031122 3-2 5-2 OCT 061545 6-3 6-5 OCT 053066 5-6 3-6 OCT 023450 2-7 2-10 OCT 034531 3-11 5-11 OCT 064102 6-10 4-2 -T OCT 044451 4-11 2-11 -Z OCT 064442 6-11 2-2 70 OCT 061360 6-2 17-0 -(PEN UP) OCT 033126 3-6 5-6 OCT 024502 2-11 4-2 +V OCT 064442 6-11 2-2 -X,-/ OCT 064760 6-11 17-0 OCT 024542 2-11 6-2 +\ OCT 024506 2-11 4-6 +Y OCT 041106 4-2 4-6 100 OCT 064522 6-11 5-2 -1 OCT 031102 3-2 4-2 OCT 044470 4-11 3-10 OCT 023450 2-7 2-10 +2 OCT 034531 3-11 5-11 OCT 064147 6-10 6-7 OCT 021442 2-3 2-2 OCT 061122 6-2 5-2 110 -4 OCT 054444 5-11 2-4 OCT 062151 6-4 6-11 -5 OCT 024446 2-11 2-6 -6 OCT 053145 5-6 6-5 OCT 061522 6-3 5-2 OCT 031043 3-2 2-3 OCT 022050 2-4 2-10 OCT 034531 3-11 5-11 120 OCT 064050 6-10 2-10 -7 OCT 024551 2-11 6-11 OCT 064102 6-10 4-2 OCT 024071 2-10 3-11 +8,+3 OCT 054550 5-11 6-10 OCT 063526 6-7 5-6 OCT 033126 3-6 5-6 OCT 062543 6-5 6-3 130 OCT 051062 5-2 3-2 OCT 021445 2-3 2-5 OCT 033047 3-6 2-7 OCT 024043 2-10 2-3 +9 OCT 031122 3-2 5-2 OCT 061550 6-3 6-10 OCT 054471 5-11 3-11 OCT 024046 2-10 2-6 140 OCT 032545 3-5 6-5 END OF BASIC OCT 041507 4-3 4-7 ++,+* OCT 042445 4-5 2-5 -- OCT 062505 6-5 4-5 OCT 021547 2-3 6-7 OCT 042447 4-5 2-7 OCT 061446 6-3 2-6 -= OCT 063360 6-6 17-0 150 OCT 021543 2-3 6-3 OCT 041063 4-2 3-3 +( OCT 034111 3-10 4-11 OCT 041123 4-2 5-3 +) OCT 054111 5-10 4-11 OCT 051062 5-2 3-2 +[ OCT 034531 3-11 5-11 OCT 031122 3-2 5-2 160 +] OCT 054471 5-11 3-11 OCT 041111 4-2 4-11 +^ OCT 034130 3-10 5-10 OCT 044545 4-11 6-5 -_. OCT 022466 2-5 3-6 OCT 032045 3-4 2-5 OCT 023450 2-7 2-10 +? OCT 034531 3-11 5-11 170 OCT 064147 6-10 6-7 OCT 053106 5-6 4-6 OCT 042360 4-4 17-0 OCT 031122 3-2 5-2 +! OCT 041462 4-3 3-2 OCT 170104 17-0 4-4 OCT 044507 4-11 4-7 +',+" OCT 054511 5-11 4-11 200 OCT 170051 17-0 2-11 OCT 023471 2-7 3-11 OCT 024463 2-11 3-3 -# OCT 033466 3-7 3-6 OCT 023146 2-6 6-6 OCT 053127 5-6 5-7 OCT 051524 5-3 5-4 OCT 062044 6-4 2-4 210 OCT 022063 2-4 3-3 +$ OCT 051544 5-3 6-4 OCT 062446 6-5 2-6 OCT 023470 2-7 3-10 OCT 054147 5-10 6-7 OCT 170111 17-0 4-11 OCT 041050 4-2 2-10 -% OCT 034071 3-10 3-11 220 OCT 024360 2-10 17-0 OCT 021151 2-2 6-11 OCT 170142 17-0 6-2 OCT 061522 6-3 5-2 OCT 061107 6-2 4-7 OCT 043126 4-6 5-6 OCT 053507 5-7 4-7 OCT 170123 17-0 5-3 OCT 041504 4-3 4-4 OCT 052123 5-4 5-3 OCT 041043 4-2 2-3 OCT 061760 6-3 17-0 OCT 062046 6-4 2-6 +> OCT 064043 6-10 2-3 - OCT 061760 6-3 17-0 OCT 022146 2-4 6-6 240 +> OCT 024042 2-10 2-2 OCT 042004 4-4 0-4 OCT 000100 0-0 4-0 OCT 042042 4-4 2-2 OCT 022024 2-4 1-4 OCT 001401 0-3 0-1 OCT 010060 1-0 3-0 OCT 040503 4-1 4-3 250 OCT 032044 3-4 2-4 OCT 021044 2-2 2-4 OCT 000501 0-1 4-1 OCT 022042 2-4 2-2 OCT 021403 2-3 0-3 OCT 020103 2-0 4-3 OCT 021442 2-3 2-2 OCT 021044 2-2 2-4 260 OCT 020042 2-0 2-2 OCT 001102 0-2 4-2 OCT 021004 2-2 0-4 OCT 040042 4-0 2-2 OCT 000104 0-0 4-4 OCT 021044 2-2 2-4 OCT 001040 0-2 2-0 OCT 041044 4-2 2-4 270 OCT 021002 2-2 0-2 OCT 022040 2-4 2-0 OCT 022102 2-4 4-2 OCT 021004 2-2 0-4 OCT 042042 4-4 2-2 OCT 000042 0-0 2-2 OCT 040042 4-0 2-2 OCT 021022 2-2 1-2 300 OCT 031042 3-2 2-2 OCT 042004 4-4 0-4 OCT 042000 4-4 0-0 OCT 040000 4-0 0-0 OCT 021004 2-2 0-4 OCT 021104 2-2 4-4 OCT 021040 2-2 2-0 OCT 021104 2-2 4-4 310 OCT 031423 3-3 1-3 OCT 002023 0-4 1-3 OCT 010400 1-1 0-0 OCT 010461 1-1 3-1 OCT 040061 4-0 3-1 OCT 031442 3-3 2-2 OCT 002104 0-4 4-4 OCT 000100 0-0 4-0 320 OCT 021042 2-2 2-2 OCT 061360 6-2 17-0 OCT 022545 2-5 6-5 OCT 170050 17-0 2-10 OCT 064051 6-10 2-11 -1,#16 OCT 021111 2-2 4-11 - OCT 041063 4-2 3-3 OCT 051502 5-3 4-2 330 OCT 022545 2-5 6-5 + OCT 053124 5-6 5-4 OCT 062562 6-5 7-2 OCT 021126 2-2 5-6 OCT 024571 2-11 7-11 OCT 023146 2-6 6-6 + OCT 170043 17-0 2-3 OCT 061760 6-3 17-0 340 OCT 053462 5-7 3-2 OCT 021543 2-3 6-3 + OCT 170046 17-0 2-6 OCT 063106 6-6 4-6 OCT 044104 4-10 4-4 345 OCT 021507 2-3 4-7 + OCT 061544 6-3 6-4 -@ OCT 051463 5-3 3-3 350 OCT 022047 2-4 2-7 OCT 034130 3-10 5-10 OCT 063545 6-7 6-5 OCT 052104 5-4 4-4 OCT 032466 3-5 3-6 OCT 043527 4-7 5-7 OCT 063142 6-6 6-2 OCT 033470 3-73-10 OCT 044530 4-11 5-10 OCT 022444 2-5 2-4 OCT 031503 3-3 3-4 OCT 062000 6-4 * * END