home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpmug / cpmug026.ark / EDITM.FOR < prev    next >
Text File  |  1984-04-29  |  2KB  |  71 lines

  1. C    =========================
  2. C    : E D I T M   -  FORTRAN:
  3. C    :  R. C. Minnick        :
  4. C    :     Box 306           :
  5. C    : Ouray, Colorado 81427 :
  6. C    =========================
  7. C
  8. C M80  .PRN FILE EDITOR  VERSION 1.2  6/29/78
  9. C THIS PROGRAM EDITS THE  .PRN FILE PRODUCED BY THE M80
  10. C ASSEMBLER AND WRITES TO THE LST: DEVICE.  THE OUTPUT
  11. C IS NARROW ENOUGH TO FIT ON 8.5" PAPER.  FORM FEEDS AND
  12. C PAGE HEADINGS ARE FILTERED OUT IN THE PROCESS.
  13. C
  14.     PROGRAM EDITM
  15.     EXTERNAL OPEN
  16.     LOGICAL A(128),B(11)
  17. C
  18.     WRITE(1,10)
  19. 10    FORMAT(' FILE NAME: ')
  20.     READ(1,20)B
  21. 20    FORMAT(11A1)
  22.     DO 25 I=2,8
  23. 25        IF (B(I).EQ.13) B(I)=32
  24.     B(9)='P'
  25.     B(10)='R'
  26.     B(11)='N'
  27. C IFLAG=END RECOGNIZED, J CONTROLS HEADING DELETES
  28.     IFLAG=0
  29.     J=0
  30. C
  31.     CALL OPEN(6,B,0)
  32.     READ(6,30,END=1000)A
  33.     READ(6,30,END=1000)A
  34.     WRITE(2,37)(A(I),I=1,11)
  35. 37    FORMAT(' ',17X,11A1)
  36.     READ(6,30,END=1000)A
  37.     READ(6,30,END=1000)A
  38.     WRITE(2,36)
  39. 36    FORMAT('0')
  40. C
  41. 200    READ(6,30,END=1000)A
  42. 30    FORMAT(128A1)
  43. C REMOVE FORM FEED & SIGNAL FOR LINE DELETES
  44.     IF (J.GT.0) GO TO 45
  45.     DO 40 I=1,128
  46.         IF (A(I).EQ.12) J=I
  47. 40        IF (A(I).EQ.12) A(I)=13
  48.     IF (J.EQ.0) GO TO 47
  49.     IF (A(J-3).NE.69) GO TO 47
  50.     IF (A(J-2).NE.78) GO TO 47
  51.     IF (A(J-1).NE.68) GO TO 47
  52.     IFLAG=1
  53. 47    IF (J.NE.0) J=5
  54. C FIND ACTUAL LINE LENGTH & CALL IT L
  55. 45    L=128
  56.     DO 50 I=0,127
  57.         IF (A(-1*I+128).NE.13.AND.A(-1*I+128).NE.32) GO TO 60
  58. 50        L=L-1
  59. 60    IF (L.LT.128) L=L+1
  60.     J=J-1
  61.     IF (J.LT.0) J=0
  62.     IF (J.GT.0.AND.J.LT.4) GO TO 200
  63.     IF (IFLAG.EQ.0) WRITE(2,35)(A(I),I=1,20),(A(I),I=32,L)
  64.     IF (IFLAG.EQ.1) WRITE(2,35)(A(I),I=1,L)
  65. 35    FORMAT('+',128A1)
  66.     GO TO 200
  67. C
  68. 1000    ENDFILE 6
  69.     END
  70.