[Back to MISC SWAG index] [Back to Main SWAG index] [Original]

    (*
    {***********************************************************************
    * WRITE_TIME:                                                          *
    *                                                                      *
    * Very fast, can it be done any faster, routine to plonk the current   *
    * system time into a variable and to write it out as header for any    *
    * data that might follow...                                            *
    *                                                                      *
    * Note: Requires {$G+} directive                                       *
    *                                                                      *
    * (C) Copyright Robert AH Prins, 1995. All rights reserved.            *
    *                                                                      *
    * May be copied, used and distributed freely for non-profit purposes,  *
    * including the inclusion in shareware, provided credit is given.      *
    ***********************************************************************}
    *)

    procedure write_time;
    const
      wt_time: string[14] = '00:00:00.00 - ';

    begin
      asm
        mov   ax, $2c00
        int   $21
        mov   bx, "00"
        mov   al, ch                  {hours}
        aam
        rol   ax, 8
        or    ax, bx
        cmp   al, bl                  {<-  delete these four}
        jne   @1                      {<-  lines if you want}
        mov   al, " "                 {<-  leading zeroes in}
      @1:                             {<-  the hours        }
        mov   word ptr wt_time(1), ax
        mov   al, cl                  {minutes}
        aam
        rol   ax, 8
        or    ax, bx
        mov   word ptr wt_time[4], ax
        mov   al, dh                  {seconds}
        aam
        rol   ax, 8
        or    ax, bx
        mov   word ptr wt_time[7], ax
        mov   al, dl                  {hundreds of seconds}
        aam
        rol   ax, 8
        or    ax, bx
        mov   word ptr wt_time[10], ax
      end;

      write(wt_time);
    end; {write_time}

    Regards,

    Robert AH Prins <nlklmpum@ibmmail.com>

[Back to MISC SWAG index] [Back to Main SWAG index] [Original]