Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.sys.acorn.programmer > #5999

Re: Subtracting times

From Martin <News03@avisoft.f9.co.uk>
Subject Re: Subtracting times
Newsgroups comp.sys.acorn.programmer
Date 2020-02-24 13:05 +0000
Message-ID <58475466f3News03@avisoft.f9.co.uk> (permalink)
References (2 earlier) <80ec8ad6-58f7-4862-8ccd-34d8d5627c3c@googlegroups.com> <12ecd44558.Alan.Adams@ArmX6.adamshome.org.uk> <20c98ac0-98f6-4d7a-be0a-8ccaf93e1276@googlegroups.com> <r308ag$h4j$1@gioia.aioe.org> <21f8494758.Alan.Adams@ArmX6.adamshome.org.uk>
Organization None

Show all headers | View raw


On 24 Feb in article <21f8494758.Alan.Adams@ArmX6.adamshome.org.uk>,
   Alan Adams <alan@adamshome.org.uk> wrote:
> My preference is Martin's, because although all the options return
> the time difference in an integer for valid ranges, Martin's
> returns a defined -1 to indicate negative or overflow, which helps
> with the calling code.

In in case anyone is interested, I have posted it below. I had to
send it direct to Alan because I was away with no csap access.

DEF FNsub(A%,B%) = USR tsub%      :REM = B% - A% (=> 5 byte times)
REM Returns -1 (error) if result negative, 
REM or over &7fffffff (~35 weeks)

.tsub%
  ; Entry  r0 = A% => 5 byte start time (word aligned) lsb..msb
  ;        r1 = B% => 5 byte stop time  (word aligned) lsb..msb
  ; Exit   r0 = B%-A% 4 byte time difference or -1 if start after stop
  ; r0 = r3 - r2 (low  word)
  ; r4 = r6 - r5 (high byte)
  LDR    r2,[r0]         ; get low 4 bytes start
  LDR    r3,[r1]         ; get low 4 bytes stop
  LDRB   r5,[r0,#4]      ; get high byte start
  LDRB   r6,[r1,#4]      ; get high byte stop
  SUBS   r0,r3,r2        ; get low bytes difference
  SBCS   r4,r6,r5        ; get high bytes difference - set Z if zero
  ; r4 = 0 if positive, -1 if negative, else over ~70 weeks
  Bne    error           ;
  TST    r0,#1<<31       ; r0 'negative' if over 35 weeks
  MOVeq  pc,r14          ; ok to return positive result

.error
  ; Return error indicator if negative or > ~35 weeks positive
  MVN    r0,#0           ; set return to -1 to indicate error
  MOV    pc,r14

It could be extended, and prbably improved!

Martin

-- 
Martin Avison 
Note that unfortunately this email address will become invalid
without notice if (when) any spam is received. 

Back to comp.sys.acorn.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Subtracting times Alan Adams <alan@adamshome.org.uk> - 2020-02-18 11:55 +0000
  Re: Subtracting times Jean-Michel <jmc.bruck@orange.fr> - 2020-02-18 19:11 +0100
    Re: Subtracting times Steve Drain <steve@kappa.me.uk> - 2020-02-21 03:28 -0800
      Re: Subtracting times Alan Adams <alan@adamshome.org.uk> - 2020-02-21 12:45 +0000
      Re: Subtracting times Alan Adams <alan@adamshome.org.uk> - 2020-02-21 15:17 +0000
        Re: Subtracting times Steve Drain <steve@kappa.me.uk> - 2020-02-22 10:37 +0000
          Re: Subtracting times Steve Drain <steve@kappa.me.uk> - 2020-02-25 16:05 +0000
            Re: Subtracting times Alan Adams <alan@adamshome.org.uk> - 2020-02-25 16:35 +0000
              Re: Subtracting times Steve Drain <steve@kappa.me.uk> - 2020-02-27 17:10 +0000
                Re: Subtracting times Steve Drain <steve@kappa.me.uk> - 2020-02-27 10:06 -0800
                Re: Subtracting times Alan Adams <alan@adamshome.org.uk> - 2020-02-28 11:21 +0000
                Re: Subtracting times jeffrey.a.doggett@gmail.com - 2020-04-22 12:00 -0700
                Re: Subtracting times Martin <News03@avisoft.f9.co.uk> - 2020-04-23 00:07 +0100
                Re: Subtracting times jeffrey.a.doggett@gmail.com - 2020-04-23 03:13 -0700
                Re: Subtracting times Martin <News03@avisoft.f9.co.uk> - 2020-04-23 18:01 +0100
                Re: Subtracting times "John Williams (News)" <UCEbin@tiscali.co.uk> - 2020-04-23 18:06 +0100
                Re: Subtracting times jeffrey.a.doggett@gmail.com - 2020-04-23 11:18 -0700
                Re: Subtracting times Martin <News03@avisoft.f9.co.uk> - 2020-04-23 21:23 +0100
                Re: Subtracting times David Higton <dave@davehigton.me.uk> - 2020-04-24 15:24 +0100
                Re: Subtracting times David Higton <dave@davehigton.me.uk> - 2020-04-23 20:57 +0100
        Re: Subtracting times jgh@mdfs.net - 2020-02-23 17:39 -0800
          Re: Subtracting times Steve Drain <steve@kappa.me.uk> - 2020-02-24 10:23 +0000
            Re: Subtracting times Alan Adams <alan@adamshome.org.uk> - 2020-02-24 11:12 +0000
              Re: Subtracting times Martin <News03@avisoft.f9.co.uk> - 2020-02-24 13:05 +0000
  Re: Subtracting times Matthew Phillips <spam2011m@yahoo.co.uk> - 2020-02-19 08:35 +0000
    Re: Subtracting times Alan Adams <alan@adamshome.org.uk> - 2020-02-19 10:03 +0000
      Re: Subtracting times Sebastian Barthel <naitsabes@freenet.de> - 2020-02-19 13:04 +0000
        Re: Subtracting times Alan Adams <alan@adamshome.org.uk> - 2020-02-19 16:41 +0000
          Re: Subtracting times jgh@mdfs.net - 2020-02-19 12:01 -0800
      Re: Subtracting times Matthew Phillips <spam2011m@yahoo.co.uk> - 2020-02-23 20:46 +0000
  Re: Subtracting times Martin <News03@avisoft.f9.co.uk> - 2020-02-19 23:54 +0000
    Re: Subtracting times Alan Adams <alan@adamshome.org.uk> - 2020-02-20 11:18 +0000

csiph-web