File: PXPA.FT of Tape: Sources/Other/new-14
(Source file text) 

C	MAIN PXPA
C
	COMMON JPLOT,JEXTR,JCHRS
	COMMON ICOMM,FNAME,IGREC,IGCHR
	COMMON IDUDS,IDASH,IDSHC,IDSHP
	COMMON X0,Y0,FAKTX,FAKTY,IFONT,DXW,DYW,DXH,DYH
C
	DIMENSION JPLOT(1536),JEXTR(1408),JCHRS(768)
	DIMENSION IDUDS(9,3)
C
	CALL POPEN(IPIC)
	WRITE(1,1100)
1100	FORMAT(' PRINTRONIX POST-PROCESSOR')
	CALL PLOTO
	CALL PLOT(0,0,0)
	RESOL=1024.
C
100	INCHR=IGETC(IPIC)
	IF (IPIC)539,105,1
105	IF (INCHR-53)106,530,106
106	INCHR=IGETC(1)
	GOTO 105
C
1	IF (INCHR-1)100,100,2
2	IF (INCHR-3)20,30,3
3	IF (INCHR-5)40,50,4
4	IF (INCHR-7)60,100,5
5	IF(INCHR-13)999,130,6
6	IF(INCHR-15)999,150,7
7	IF(INCHR-47)160,160,8
8	IF(INCHR-51)480,999,9
9	IF(INCHR-53)520,530,10
10	IF(INCHR-55)540,999,999
C
C	PEN DOWN CODE=2
20	IPEN=3
	IDASH=0
	X=0.
	Y=0.
	GOTO 165
C
C	PEN UP CODE=3
30	IPEN=2
	IDASH=0
	GOTO 100
C
C	SELECT PEN CODE=4
40	INCHR=IGETC(1)
	IF (INCHR-1)41,100,41
41	WRITE(1,1040) INCHR
1040	FORMAT(' NO SELECT PEN ',I3)
	GOTO 100
C
C	ASCII STRING CODE=5
50	N=IGETC(1)
	DO 51 I=1,N
	INCHR=IGETC(1)
51	CALL SYMBOL(INCHR)
	GOTO 100
C
C	CHAR SIZE + ROT CODE=6
60	INCHR=IGETC(1)
	CALL DELTA(DUMMY,DUMM2,INCHR)
	DXW=DUMMY*FAKTX/15.
	DYW=DUMM2*FAKTY/15.
	INCHR=IGETC(1)
	CALL DELTA(DDXH,DDYH,INCHR)
C	WRITE(1,1060) DUMMY,DUMM2,DDXH,DDYH
C1060	FORMAT(' SIZE/ROT = ',4F10.3)
61	IF (IWARP)999,62,63
62	DXH=DDXH*FAKTX/15.
	DYH=DDYH*FAKTY/15.
	GOTO 100
63	DXH=(DDXH+DDYH*.25)*FAKTX/15.
	DYH=(DDYH-DDXH*.25)*FAKTY/15.
	GOTO 100
C
C	DEF.DASH CODE=13
130	J=IGETC(1)
	N=2*IGETC(1)
	DO 131 I=1,N,2
	M=I+1
	INCHR=IGETC(1)
	CALL DELTA(DUMMY,DUMM2,INCHR)
	IDUDS(I,J)=DUMMY*FAKTX
131	IDUDS(M,J)=DUMM2*FAKTX
	IDUDS(I,J)=-1
C	WRITE(1,1130) J,(IDUDS(M,J),M=1,I)
C1130	FORMAT(' DEF.DASH ',I2,' = ',9I6)
	GOTO 100
C
C	END OF PLOT COMMAND CODE=15
150	ICOMM=0
	WRITE(1,1150)
1150	FORMAT(' END OF PLOT '//)
	CALL PLOTC
C
C	DELTA COMMAND CODE=16-47
160	CALL DELTA(X,Y,INCHR)
	IF (IDASH)161,165,161
161	IPEN=3
165	X0=X0+X*FAKTX
	Y0=Y0+Y*FAKTY
	IX=X0
	IY=Y0
	CALL PLOT(IPEN,IX,IY)
C	WRITE(1,1160)IPEN,IX,IY,X,Y
C1160	FORMAT(3I5,2F10.3)
	GOTO 100

C	SELECT DASH CODE=48-50
480	IDASH=INCHR-47
	IF (IDUDS(1,IDASH))481,482,482
481	IDASH=0
	IPEN=2
482	IDSHC=0	
	IDSHP=0
C	WRITE(1,1480) IDASH
C1480	FORMAT(' DASH TYPE = ',I3)
	GOTO 100

C	SELECT CHAR FONT CODE=52
520	INCHR=IGETC(1)
	IF (INCHR-1)527,528,521
521	IF (INCHR-3)528,526,522
522	IF (INCHR-11)527,525,523
523	IF (INCHR-13)525,527,527
C	LOWER ASCII
525	IWARP=INCHR-11
	IFONT=0
	GOTO 61
C	CENTEREDS, NO WARP
526	IWARP=0
	IFONT=1
	GOTO 61
C	NORMAL ASCII
527	WRITE(1,1520) INCHR
1520	FORMAT(' ILLEGAL CHAR. FONT = ',I3)
	INCHR=1
528	IWARP=INCHR-1
529	IFONT=-1
	GOTO 61

C	PICTURE SIZE CODE=53
530	IF (IPIC)537,538,537
538	INCHR=IGETC(1)
539	IPIC=1
	IPEN=2
	IFONT=-1
	IWARP=0
	DXW=0.
	DYW=0.
	DXH=0.
	DYH=0.
	IDASH=0
	IDUDS(1,1)=-1
	IDUDS(1,2)=-1
	IDUDS(1,3)=-1
	X0=0.
	Y0=0.
	DUMMY=1.
	CALL DELTA(WIDTH,HEIGT,INCHR)
	IF (54.2*RESOL-WIDTH)531,531,532
531	DUMMY=54.2*RESOL/WIDTH
532	IF (32.5*RESOL-HEIGT)533,533,535
533	IF (32.5*RESOL/HEIGT-DUMMY)534,535,535
534	DUMMY=32.5*RESOL/HEIGT
535	FAKTX=28.346*DUMMY/RESOL
	FAKTY=23.622*DUMMY/RESOL
	IF (DUMMY-.999)536,536,100
536	WRITE(1,1530) DUMMY
1530	FORMAT(' REDUCTION FACTOR = ',F7.5)
	GOTO 100
C
C	SECOND PICTURE COMING UP
537	ICOMM=-1024
	WRITE(1,1531)
1531	FORMAT(' END OF PICTURE')
	CALL PLOTC
C
C	SPECIAL STRING CODE=54
540	N=IGETC(1)*2
	DO 541 I=1,N
541	INCHR=IGETC(1)
	WRITE(1,1540)
1540	FORMAT(' NO DEVICE DEPENDENT CHARS')
	GOTO 100

C	ERROR
999	WRITE(1,1999) INCHR
1999	FORMAT(' ERROR IN COMMAND = ',I3)
	END