From:	CSBVAX::CSBVAX::MRGATE::"SMTP::CRVAX.SRI.COM::RELAY-INFO-VAX"  2-DEC-1988 02:33
To:	MRGATE::"ARISIA::EVERHART"
Subj:	RE:  WRITE without CR/LF from DCL, if not SPAWN'ed


Received: From KL.SRI.COM by CRVAX.SRI.COM with TCP; Thu,  1 DEC 88 08:46:18 PDT
Received: from oregon.uoregon.edu by KL.SRI.COM with TCP; Wed, 30 Nov 88 22:00:39 PST
Received: from uoneuro.uoregon.edu by oregon.uoregon.edu; Wed, 30 Nov 88 21:04
 PST
Date: Wed, 30 Nov 88 21:03 PST
From: Michael Bass <MBASS@uoneuro.uoregon.edu>
Subject: RE:  WRITE without CR/LF from DCL, if not SPAWN'ed
To: info-vax@kl.sri.com
X-VMS-To: IN%"info-vax@kl.sri.com"

Pete Klammer <PKLAMMER%CUDNVR%VAXF.COLORADO.EDU@CUNYVM.CUNY.EDU> writes:
>What I really wanted to do is keep the terminal busy by posting a clock
>in the corner of the screen: {pushcursor}-{position}-{DATE/TIME}-{popcursor}.

I solved this problem from Fortran rather than DCL.  The Fortran program
set up a scheduled wake-up, printed the time (as above) and hibernated. 
These were sys$ calls, so they'd be accessible from any language.  To
start the ball rolling, you "SPAWN/NOWAIT RUN ProgramName"

In case you are interested, here's the source....

------------------------------------------------------------
      program time

      integer*4 systime(2),settime(2)
      character*30 reset_time,in_time
      character*9 save_set
      character*2 restore
      character*5 display_time
      character car_cntl
      byte null       /'00'X/
      equivalence (in_time(13:17),display_time)
      equivalence (car_cntl,null)

C  awaken every minute
C
      reset_time = '0 0:01'
      call sys$bintim(reset_time,settime)
C
C  set up ANSI codes
C
      save_set(1:1) = CHAR(27)
      save_set(2:2) = '7'
      save_set(3:3) = CHAR(27)
      save_set(4:9) = '[1;70H'
      restore(1:1) = CHAR(27)
      restore(2:2) = '8'
C
C  set scheduled wakeup and enter time_display loop
C
      call sys$schdwk(,,settime,settime)
      do while (.TRUE.)
         call sys$gettim(systime)
         call sys$asctim(leng,in_time,systime)
         write (6,100) car_cntl,save_set,display_time,restore
100      format(A1,A9,A8,A2)
         call sys$hiber
      enddo
      end


