| 1 | C -+-+-+-+-+ \ e H A E M A R . F T \ e -+-+-+-+-+\r |
| 2 | C\r |
| 3 | C\r |
| 4 | SUBROUTINE MARK (SPEED)\r |
| 5 | C PRINT THE MINUTES AND SECONDS ELAPSING ONTO VIDEO TERMINAL\r |
| 6 | C THE INTEGER PARAMETER SPEED IS THE MULTIPLIER FOR THE REAL TIME.\r |
| 7 | C EACH TIME A MINUTE HAS PASSED WE ISSUE A XOUT(255) COMMAND\r |
| 8 | C CAUSING AN VC8E X OUTPUT VOLTAGE FOR ONE SECOND.\r |
| 9 | C\r |
| 10 | INTEGER SPEED\r |
| 11 | C\r |
| 12 | REAL TIME\r |
| 13 | INTEGER TOASCI,NCOND\r |
| 14 | EXTERNAL TIME,TOASCI,NCOND\r |
| 15 | C\r |
| 16 | INTEGER A,B,MM,SS,HH,I,T,\r |
| 17 | * SED(8) @ HOLDS THE LAST DIGIT OF THE MINUTES IN HEX (31,63)\r |
| 18 | \f DATA A,SED/9*0/\r |
| 19 | C\r |
| 20 | IF (TIME(B)+2.LT.A) GOTO 10 @ NEW CALL CLOCK\r |
| 21 | IF ((0.5+TIME(B)).LT.A) RETURN @ LESS THAN ONE SECOND SINCE LAST CALL\r |
| 22 | 10 A=INT(TIME(B)+0.5)\r |
| 23 | B=SPEED*A\r |
| 24 | SS=MOD(B,60)\r |
| 25 | IF (SS.NE.0) GOTO 40\r |
| 26 | CALL XOUT (128)\r |
| 27 | T=MOD(MOD(B/60,60),10)\r |
| 28 | DO 20 I=1,4\r |
| 29 | SED(I*2)=NCOND(MOD(T,2),63,31)\r |
| 30 | 20 T=T/2\r |
| 31 | I=8\r |
| 32 | GOTO 55\r |
| 33 | C\r |
| 34 | 40 IF (I.LT.1) GOTO 50\r |
| 35 | CALL XOUT(SED(I))\r |
| 36 | I=I-1\r |
| 37 | GOTO 55\r |
| 38 | 50 CONTINUE\r |
| 39 | CALL XOUT (0)\r |
| 40 | 55 CONTINUE\r |
| 41 | SS=TOASCI(SS)\r |
| 42 | MM=TOASCI(MOD(B/60,60))\r |
| 43 | HH=TOASCI(B/3600)\r |
| 44 | A=A+1\r |
| 45 | WRITE (4,1) HH,MM,SS\r |
| 46 | RETURN\r |
| 47 | 1 FORMAT (2H+ ,2(A2,1H:),A2)\r |
| 48 | END\r |
| 49 | \1a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 |