summaryrefslogtreecommitdiff
path: root/software/ttx/dottime.calc
blob: 5a793f17e3c28ad660ae4d3c41287cd6f56aeca4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
         movlw     n             1                +
         call      dottime       2                |
----------------                                  |
dottime                                           |
         movwf     DOTCNT1       1                |
dot_outer                                         |
         movlw     m             1           +    |
         movwf     DOTCNT0       1           |    |
dot_inner                               +    |    |
         x * nop                 x      | y  | z  | t
         decfsz    DOTCNT0,f     1 (2)  |    |    |
         goto      dot_inner     2      +    |    |
         decfsz    DOTCNT1,f     1 (2)       |    |
         goto      dot_outer     2           +    |
         return                  2                +



 y = (x + 1 + 2) * m - 1 = xm + 3m - 1
 z = (1 + 1 + y + 1 + 2) * n - 1 = (4 + xm + 3m) * n - 1 = 4n + 3mn + xmn - 1

 t = 1 + 2 + 1 + z + 2 = 5 + 4n + 3mn + xmn
 =                       ==================

 @ n = m = 256 (0): tmax = 197637 + 65536x �s
 @ n = m = 1:       tmin =     12 +      x �s

for x=0:   tmin = 12, tmax = 197637
    x=1:   tmin = 13, tmax = 263173
    x=2:   tmin = 14, tmax = 328709
    x=3:   tmin = 15, tmax = 394245
    x=4:   tmin = 16, tmax = 459781
    x=5:   tmin = 17, tmax = 525317
    x=6:   tmin = 18, tmax = 590853
    x=7:   tmin = 19, tmax = 656389


m(dot)             = m(dot)   =  36
m(dash)            = 3*m(dot) = 108
m(element space)   = m(dot)   =  36
m(character space) = 3*m(dot) = 108
m(word space)      = 7*m(dot) = 252

 @ m =  36;  tmax = 5 + 112n +  36xn
 @ m = 108:  tmax = 5 + 328n + 108xn
 @ m = 252:  tmax = 5 + 760n + 252xn

 n => CWSPEED
 x => nop count