home *** CD-ROM | disk | FTP | other *** search
- $TITLE: 'PLOT1 bit image dump'
- SUBROUTINE PLOT1
- CHARACTER*1 CHR
- C
- C This program requires MS-FORTRAN and the HALO Graphics
- C subroutine library.
- C
- C Copy the screen image to an IDS Microprism printer.
- C Must be in HALO graphics mode to call this routine.
- C Image is IXMX x IYMX (usually 640x200) pixels. The
- C height of the printed
- C copy appears about 1/2 as high as the screen image.
- C Use "PLOT2" if you want the printed copy to have the
- C same aspect ratio as the video screen.
- C
- OPEN(9,FILE='LPT1:',STATUS='OLD')
- C
- C put the printer in graphics mode.
- C
- CHR=CHAR(10)
- WRITE(9,'(A\)') CHR
- CHR=CHAR(3)
- WRITE(9,'(A\)') CHR
- C
- C Find out what the screen image size is
- C
- CALL INQDRA(IXMX,IYMX)
- C
- C The printer writes seven-pixel-high lines at a time.
- C The print head will move across the paper LINES number
- C of times.
- C
- LINES=IYMX/7 + 1
- C
- DO 1000 J=1,LINES
- IYLOW=(J-1)*7
- C
- C The printed image is IXMX pixels wide.
- C
- DO 900 I=0,IXMX
- ICHR=0
- IF(J.EQ.LINES) THEN
- C
- C handle the special case of the last rows of pixels
- C where there may not be 7 rows left.
- C
- MAX=MOD(IYMX,7) - 1
- ELSE
- MAX=6
- ENDIF
- C
- DO 500 M=0,MAX
- IY=IYLOW + M
- CALL INQCLR(I,IY,ICOL)
- IF(ICOL.NE.0) ICHR=ICHR + 2**M
- 500 CONTINUE
- C
- C Printer uses 03h as the 'escape' character when in graphics
- C mode- two 03h characters must be sent to print this bit pattern.
- C
- IF(ICHR.EQ.3) THEN
- CHR=CHAR(3)
- WRITE(9,'(A\)') CHR
- ENDIF
- CHR=CHAR(ICHR)
- WRITE(9,'(A\)') CHR
- 900 CONTINUE
- C
- C line feed / CR
- C
- CHR=CHAR(3)
- WRITE(9,'(A\)') CHR
- CHR=CHAR(14)
- WRITE(9,'(A\)') CHR
- 1000 CONTINUE
- C
- C form feed
- C
- CHR=CHAR(3)
- WRITE(9,'(A\)') CHR
- CHR=CHAR(12)
- WRITE(9,'(A\)') CHR
- C
- C exit graphics mode
- C
- CHR=CHAR(3)
- WRITE(9,'(A\)') CHR
- CHR=CHAR(2)
- WRITE(9,'(A\)') CHR
- C
- C
- CLOSE(9)
- RETURN
- END