1st program for the Roads system, around December 1975

Loading...

Sign in or sign up now!
Alert icon
Upgrade to the latest Flash Player for improved playback performance. Upgrade now or more info.
42 views
Loading...
Alert icon
Sign in or sign up now!
Alert icon

Uploaded by on Jan 29, 2010

I have arbitrarily numbered the programs 1 to 3. This indicates their increasing size.

Here is the rest of the code for program 1.
I compiled it recently using F95 from Salford (silverfrost)
C RM ******** THIS LOOKS ODD - if I can find a system routine I will use it instead SUBROUTINE CLEARB(IB,N) INTEGER IB(800) DO 10 I=1,N IB(I) = 0
10 CONTINUE RETURN END
C RM ******* MAKE A MOCK UP FOR THIS
C I am guessing that it reads data into IB from channel 5
C suggestion: experiment writing little bit of code to write out, say, 3 blocks of 800 numbers.
C then verify that we can read this back. SUBROUTINE BCDTRM(IB,IC,IEOF)
C as used in this program, IC is 5 INTEGER IB(800) INTEGER IW(40) INTEGER IPOS
C I don't have the specification for IEOF, but I think what I wrote below will suffice for this mockup
C it is only tested elsewhere to see if it is less than 1 IPOS = 1
C




C purpose: read data into IB array.
C proposed method: copy code already tested in TIN005.for DO 10 I=1,20 READ(IC,400,END=20) IW
400 FORMAT(40A2)
C move IW array to next position in IB array CALL SHIFTC(IW,1,40,IB,IPOS)
10 IPOS = IPOS + 40
C if there is no data at all, IPOS is still 1
20 IEOF = IPOS - 1 RETURN END




C read 800 numbers from channel IC
C if eof set IEOF = 1
C perhaps assume that all the data will be there, except if eof, when none will be there SUBROUTINE SHIFTC(IW,I,J,IB,IPOS) INTEGER IW(40) INTEGER IB(800) DO 10 I1=I,J
10 IB(IPOS+I1-I) = IW(I1) RETURN END SUBROUTINE PUTREC
C PRINT 80 CHARACTERS STARTING AT IB(IPOS)
C IF FIRST CHARACTER = "H" DOUBLE SPACE
C "N" DOUBLE SPACE
C "S" SINGLE SPACE COMMON/CIB/IB(800) COMMON/CPOS/IPOS INTEGER*1 MY(4) EQUIVALENCE (MX,MY)
C the following may not work ??????????????? MX = IB(IPOS) IF (MY(1).EQ."H") GO TO 10 IF (MY(1).EQ."N") GO TO 20 WRITE(4,1000) (IB(I),I=IPOS,IPOS+39)
1000 FORMAT(" ",40A2) RETURN
20 WRITE(4,1020) (IB(I),I=IPOS,IPOS+39)
1020 FORMAT(" ",40A2,//) RETURN
10 WRITE(4,1010) (IB(I),I=IPOS,IPOS+39)
1010 FORMAT("0",40A2,//) RETURN END

Category:

Comedy

Tags:

License:

Standard YouTube License

  • likes, 0 dislikes

Link to this comment:

Share to:
see all

All Comments (0)

Sign In or Sign Up now to post a comment!
Loading...

Alert icon
0 / 00Unsaved Playlist Return to active list
    1. Your queue is empty. Add videos to your queue using this button:
      or sign in to load a different list.
    Loading...Loading...Saving...
    • Clear all videos from this list
    • Learn more