File PLCHAR.FT (FORTRAN source file)

Directory of image this file is from
This file as a plain text file

C  PLCHAR.FT
C	
C CALL PLCHAR(X,Y,WIDTH,HEIGHT,ROTATE,VAL)
C PLOT CHARACTER SUBROUTINE
C AT POSITION (X,Y)
C SIZE= WIDTH X HEIGHT
C VAL IS 6 BIT ASCII VALUE
C ALSO POSITION IN PATTERN ARRAY INDEXERS
C	
	SUBROUTINE PLCHAR(X,Y,WIDTH,HEIGHT,ROTATE,VAL)
C	
	INTEGER DIR1(22), DIR2(11)
	INTEGER COORDS(85), PART1(15), PART2(15), PART3(15)
	INTEGER PART4(15), PART5(15), PART6(10)

C C CHARACTER PATTERN DATA STATEMENTS C CHARACTER SPACE IS 4X7 C EACH 6 BITS IS A VALUE C VALUE GREATER THAN 7 MEANS RAISE PEN ON NEXT MOVE C DATA PART1/O000344030405,O400501074101,O030103070206, C ============ ==== (((((((( C ############ ############ ######## C X O020103000200,O020703070207,O030543070105, C (((((((( """""""" """""""""""" C [[[[[[[[ [[[[[[[[ C '''''''' '''''''' C X O000701070105,O020502060106,O410502020102, C """""""""""" ,,,,,,,, C ;;;; ;;;;;;;;;;;; ;;;;;;;;;;;; C :::: :::::::::::: :::::::::::: C ........ C X O010302030202,O010002024400,O040304060307, C ,,,,,,,,,,,, ,,,,QQQQQQQQ QQQQQQQQQQQQ C ;;;;;;;;;;;; ;;;; GGGGGGGG C :::::::::::: C ............ C X O010700060001,O010003000401,O040303034103/ C QQQQQQQQQQQQ QQQQQQQQQQQQ QQQQZZZZZZZZ C GGGGGGGGGGGG GGGGGGGGGGGG GGGGGGGG C DATA PART2/O000704070000,O040000000007,O440700040304, C ZZZZZZZZZZZZ ZZZZFFFFFFFF FFFFFFFFFFFF C EEEEEEEEEEEE EEEEEEEEEEEE C LLLLLLLLLLLL C X O010702060201,O010002000207,O010701060006, C )))))))))))) )))) %%%%%%%%%%%% C ]]]]]]]]]]]] ]]]] C X O000741070301,O040104000300,O430100004407, C %%%%%%%%%%%% %%%%%%%%%%%% %%%%%%%%%%%% C //////// C XXXXXXXX C X O000704000000,O000702040407,O040000070000, C MMMM MMMMMMMMMMMM MMMMDDDDDDDD C \\\\\\\\ NNNN NNNNNNNNNNNN C XXXXXXXX C X O030004010406,O030700070000,O000304070205/ C DDDDDDDDDDDD DDDDDDDD C KKKKKKKK KKKKKKKKKKKK C DATA PART3/O040004070404,O000400070000,O000601070307, C HHHHHHHHHHHH HHHHHHHHHHHH C KKKK AAAA AAAAAAAAAAAA C X O040604000403,O000301040102,O000344030205, C ____________ ________ C AAAAAAAAAAAA AAAA ************ C ++++++++++++ C -------- C X O420100014405,O000504010300,O000000070307, C BBBBBBBB BBBBBBBBBBBB C ************ ******** RRRRRRRRRRRR C ++++ PPPPPPPPPPPP C X O040604050304,O000403040403,O040104000300, C BBBBBBBBBBBB BBBBBBBBBBBB BBBB IIII C RRRRRRRRRRRR RRRRRRRRRRRR RRRRRRRR C PPPPPPPPPPPP PPPPPPPPPPPP PPPP C X O010002000207,O010703070407,O000700010100/ C IIIIIIIIIIII IIIIIIII UUUUUUUUUUUU C TTTTTTTT TTTTTTTTTTTT TTTTJJJJJJJJ C DATA PART4/O030004010407,O000404010001,O040400070200, C UUUUUUUUUUUU VVVVVVVV C JJJJJJJJJJJJ C <<<< <<<<<<<<>>>> >>>>>>>> C X O040704000203,O000000070407,O040602010200, C VVVV 77777777 777777777777 C WWWWWWWWWWWW WWWWWWWW YYYY C X O020400070204,O040700070004,O030404030401, C 555555555555 555555555555 C YYYYYYYYYYYY YYYY C X O030001000001,O010003000401,O440501040005, C 555555555555 88888888 C 9999 999999999999 999999999999 C X O000601070307,O040604050304,O010403040403/ C 888888888888 888888888888 888888888888 C 999999999999 999999999999 9999 C 333333333333 333333333333 333333333333 C 666666666666 C DATA PART5/O040103000100,O000100030104,O000300060107, C 888888888888 888888888888 C C 333333333333 3333 C 666666666666 666666666666 666666666666 C X O030704060307,O010700060001,O010003000401, C CCCCCCCC CCCCCCCCCCCC CCCCCCCCCCCC C OOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO C 00000000 000000000000 000000000000 C 66666666 C X O040600010100,O030004010403,O030401040005, C SSSSSSSS SSSSSSSSSSSS SSSSSSSSSSSS C OOOO$$$$$$$$ $$$$$$$$$$$$ $$$$$$$$$$$$ C 00000000 C X O000601070307,O440602070200,O040003000307, C SSSSSSSSSSSS SSSS 1111 111111111111 C $$$$$$$$$$$$ $$$$$$$$$$$$ 44444444 C X O020600020402,O020101010002,O000303060207/ C 1111 &&&& &&&&&&&&&&&& &&&&&&&&&&&& C 444444444444 C DATA PART6/O010601050400,O000000020103,O030404050406, C &&&&&&&&&&&& C 2222 222222222222 222222222222 C X O030701070006,O010703070406,O040503040204, C ???? ???????????? ???????????? C 222222222222 C X O420202010100,O020042010207,O010702020207, C ???????????? ???????? ^^^^^^^^ C !!!!!!!! !!!!!!!!!!!! !!!!!!!!!!!! C X O010603060207/ C ^^^^^^^^^^^^ C
C C START LOCATIONS OF PATTERN SEGMENTS C VALUES ARE OCTAL 12 BIT UNSIGNED INTEGERS C DATA DIR1/O027703410575,O023701410143,O010502650373, C AAAABBBBCCCC DDDDEEEEFFFF GGGGHHHHIIII C X O041302530141,O022502330575,O034500770345, C JJJJKKKKLLLL MMMMNNNNOOOO PPPPQQQQRRRR C X O061703770411,O043504410215,O046101270025, C SSSSTTTTUUUU VVVVWWWWXXXX YYYYZZZZ[[[[ C X O022101630765,O031500000751,O003300010617, C \\\\]]]]^^^^ ____ !!!! """"####$$$$ C X O017106650033,O001701550323,O032300630323, C %%%%&&&&'''' (((())))**** ++++,,,,---- C X O006302150575,O065107070527,O065504710543, C ....////0000 111122223333 444455556666 C X O045105230511,O005100510423,O000104310731/ C 777788889999 ::::;;;;<<<< ====>>>>???? C C C C LENGTHS OF PATTERN SEGMENTS C 6 BIT ARRAY C DATA DIR2/O203020161412,O241414121406,O121022163026, C AABBCCDDEEFF GGHHIIJJKKLL MMNNOOPPQQRR C 1 O301414061210,O121410041012,O120020202034, C SSTTUUVVWWXX YYZZ[[\\]]^^ __ !!""##$$ C 2 O302410101020,O101404120424,O122432122234, C %%&&''(())** ++,,--..//00 112233445566 C 3 O124234242606,O100630000000/ C 778899::;;<< ==>>?? C EQUIVALENCE (COORDS(1),PART1(1)), (COORDS(16),PART2(1)), X (COORDS(31),PART3(1)), (COORDS(46),PART4(1)), X (COORDS(61),PART5(1)), (COORDS(76),PART6(1)) C
LCHAR= MOD(VAL,64) IF (LCHAR.LE.0) RETURN CALL CGET(DIR2,LCHAR,LENG) IF (LENG.EQ.0) RETURN LCHAR= LCHAR*2 CALL CGET(DIR1,LCHAR-1,I) CALL CGET(DIR1,LCHAR,INIT) INIT= 64*I+INIT LENG= INIT-1+LENG ST= ROTATE*.0174533 CT= COS(ST) ST= SIN(ST) C C NORMAL SIZE IS 7X4 C HSIZE= HEIGHT/7. YCEN= HSIZE*3.5 WSIZE= WIDTH/4. XCEN= WSIZE*2. C IPEN= 1 DO 500 ICUR= INIT,LENG,2 CALL CGET(COORDS,ICUR,XVAL) CALL CGET(COORDS,ICUR+1,YL) XL= WSIZE*MOD(XVAL,8)-XCEN YL= HSIZE*YL-YCEN XP= -YL*ST+X+XL*CT YP= Y+XL*ST+YL*CT CALL DPLOT(1,XP,YP,IPEN) IPEN= 0 IF (XVAL.GT.7) IPEN=1 500 CONTINUE CALL DPLOT(1,XCEN+X,YCEN+Y,1) END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search