[A] >>> warp on
(C:$eeb2) (C:$eeb2) 
[B] >>> warp on
(C:$eeb1) (C:$eeb1) 
[A] >>> break 0800
BREAK: 1  C:$0800  (Stop on exec)
(C:$eeb2) 
[A] loading under warp ...
[A] #1 (Stop on  exec 0800)  173/$0ad,  31/$1f
.C:0800  4C 6C 0A    JMP $0A6C      - A:DE X:00 Y:02 SP:fe NV-B...C   73229161
(C:$0800) 
[A] >>> del
Deleting all checkpoints
(C:$0800) 
[A] >>> resourceset "WarpMode" "0"
Unknown resource "WarpMode".
(C:$0800) 
[A] >>> resourceset "Warp" "0"
Unknown resource "Warp".
(C:$0800) 
[A] >>> resourceset "WarpModeEnabled" "0"
Unknown resource "WarpModeEnabled".
(C:$0800) 
[B] >>> break 0800
BREAK: 1  C:$0800  (Stop on exec)
(C:$eeb1) 
[B] loading under warp ...
[B] #1 (Stop on  exec 0800)   16/$010,  15/$0f
.C:0800  4C 6C 0A    JMP $0A6C      - A:41 X:00 Y:02 SP:fe .V-B...C   73184750
(C:$0800) 
[B] >>> del
Deleting all checkpoints
(C:$0800) 
[B] >>> resourceset "WarpMode" "0"
Unknown resource "WarpMode".
(C:$0800) 
[B] >>> resourceset "Warp" "0"
Unknown resource "Warp".
(C:$0800) 
[B] >>> resourceset "WarpModeEnabled" "0"
Unknown resource "WarpModeEnabled".
(C:$0800) 
[A] >>> warp off
(C:$59ba) 
[B] >>> warp off
(C:$c387) 
[A] >>> m 91d5 91d5
(C:$2aa3) 
[A] >>> m 91d5 91d5
>C:91d5  01                                                   .
(C:$91d6) 
[A] menu row = 1
[A] >>> m 91d5 91d5
(C:$c639) 
[A] >>> m 91d5 91d5
>C:91d5  01                                                   .
(C:$91d6) 
[A] menu row = 1
[A] >>> m 91d5 91d5
(C:$c502) >C:91d5  00                 
[A] menu row = 0
[B] >>> m 91d5 91d5
(C:$fd6d) >C:91d5  01                 
[B] menu row = 1
[B] >>> m 91d5 91d5
(C:$611e) >C:91d5  00    
[B] menu row = 0
[A] >>> m e000 e00f
>C:e000  4c 11 e1 4c  9a e2 4c a9  e0 4c f6 e0  4c cb e3 60   L..L..L..L..L..`
(C:$e010) 
[A] the module is resident: the $E000 jump table matches
[A] >>> > e055 0f
(C:$0950) 
[B] >>> m e000 e00f
>C:e000  4c 11 e1 4c  9a e2 4c a9  e0 4c f6 e0  4c cb e3 60   L..L..L..L..L..`
(C:$e010) 
[B] the module is resident: the $E000 jump table matches
[B] >>> > e055 0f
(C:$0950) 
[A] >>> m e5be e5be
(C:$0971) 
[A] >>> m e5be e5be
>C:e5be  00                                                   .
(C:$e5bf) 
[relay] connection 1
[A] >>> m e5be e5be
(C:$c8ee) 
[A] >>> m e5be e5be
>C:e5be  09                                                   .
(C:$e5bf) 
[A] link opened after 2 attempt(s), command register = $09
[B] >>> m e5be e5be
(C:$66ca) >C:e5be  00                 
[relay] connection 2
[B] >>> m e5be e5be
(C:$c8ee) >C:e5be  09                 
[B] link opened after 2 attempt(s), command register = $09
[A] >>> m e040 e040
>C:e040  02                                                   .
(C:$e041) 
[B] >>> m e040 e040
>C:e040  01                                                   .
(C:$e041) 
  phases: {'A': 2, 'B': 1}
[A] >>> m e040 e040
>C:e040  03                                                   .
(C:$e041) 
[B] >>> m e040 e040
>C:e040  03                                                   .
(C:$e041) 
  phases: {'A': 3, 'B': 3}
both in the packet phase: True ({'A': 3, 'B': 3})
[A] >>> m e03b e047
>C:e03b  01 f8 f8 00  00 03 00 00  00 02 04 ff  00            .............
(C:$e048) 
[A] >>> m e0a5 e0a5
>C:e0a5  00                                                   .
(C:$e0a6) 
[A] >>> m e055 e056
>C:e055  0f 1e                                                ..
(C:$e057) 
[A] >>> m e5bb e5be
>C:e5bb  00 98 56 09                                          ..V.
(C:$e5bf) 
[A] >>> m de00 de03
>C:de00  56 10 09 1e                                          V...
(C:$de04) 
[A] >>> m eab7 eab7
>C:eab7  06                                                   .
(C:$eab8) 
[A] >>> m 0b7d 0b7d
>C:0b7d  00                                                   .
(C:$0b7e) 
[B] >>> m e03b e047
>C:e03b  01 f8 f8 00  00 03 00 00  00 02 01 ff  00            .............
(C:$e048) 
[B] >>> m e0a5 e0a5
>C:e0a5  00                                                   .
(C:$e0a6) 
[B] >>> m e055 e056
>C:e055  0f 1e                                                ..
(C:$e057) 
[B] >>> m e5bb e5be
>C:e5bb  00 98 55 09                                          ..U.
(C:$e5bf) 
[B] >>> m de00 de03
>C:de00  55 10 09 1e                                          U...
(C:$de04) 
[B] >>> m eab7 eab7
>C:eab7  07                                                   .
(C:$eab8) 
[B] >>> m 0b7d 0b7d
>C:0b7d  00                                                   .
(C:$0b7e) 
  [A] control $1E = 8N1, internal baud generator, rate bits $E = 19200 baud on a SwiftLink
  [A] phase=3 isLinkActive=1 linkErrorCount=0 linkStatus=$F8 baudIndex=15 $DE03=$1E $DE01=$10 $DE02=$09 bitPeriodLo=$1E statusSave=$98 cmdShadow=$09 txCharActive=$00 uartPending=$00 syncRound=$06 lastHotkey=$FF lockout=0
  [B] control $1E = 8N1, internal baud generator, rate bits $E = 19200 baud on a SwiftLink
  [B] phase=3 isLinkActive=1 linkErrorCount=0 linkStatus=$F8 baudIndex=15 $DE03=$1E $DE01=$10 $DE02=$09 bitPeriodLo=$1E statusSave=$98 cmdShadow=$09 txCharActive=$00 uartPending=$00 syncRound=$07 lastHotkey=$FF lockout=0
[A] >>> del
Deleting all checkpoints
(C:$e2f0) 
[A] >>> trace exec e685
TRACE: 1  C:$e685  (Trace exec)
(C:$e2f0) 
[A] >>> trace exec e699
TRACE: 2  C:$e699  (Trace exec)
(C:$e2f0) 
[A] >>> trace exec e6c9
TRACE: 3  C:$e6c9  (Trace exec)
(C:$e2f0) 
[A] >>> trace exec e6d6
TRACE: 4  C:$e6d6  (Trace exec)
(C:$e2f0) 
[A] >>> trace exec e6e9
TRACE: 5  C:$e6e9  (Trace exec)
(C:$e2f0) 
[A] >>> trace exec e67f
TRACE: 6  C:$e67f  (Trace exec)
(C:$e2f0) 
[A] >>> stopwatch
Stopwatch:  227159140
(C:$e2f0) 
[A] >>> stopwatch
Stopwatch:  235552786
(C:$c8ee) 
[A] >>> del
Deleting all checkpoints
(C:$c8ee) 
[A] captured 565361 bytes of trace into /home/scott/claude/modemwars/swiftlink/testLogs/cost.c192a.A.0.trace.txt; emulated cycles 227159140 -> 235552786

  ---- one pass of commNmiHandler [A round 0] ----
    window 8393646 cycles = 8.207 emulated s, 1343 complete passes = 164/s
    receive only: 740 passes, trace-to-trace min 164 median 165 max 250 cycles; whole interrupt 178 cycles
    transmit only: 455 passes, trace-to-trace min 165 median 165 max 209 cycles; whole interrupt 178 cycles
    transmit, ring ran dry: 114 passes, trace-to-trace min 162 median 162 max 162 cycles; whole interrupt 175 cycles
    receive+transmit: 33 passes, trace-to-trace min 242 median 253 max 285 cycles; whole interrupt 266 cycles
    neither half had work: 1 passes, trace-to-trace min 151 median 151 max 151 cycles; whole interrupt 164 cycles
    duty cycle in this window: 3.0%

    what that costs per character time, at each rate the table offers:
      rate  char period  one pass  two passes                      verdict
       300     34090.9c      178c        356c                1% of the CPU
      1200      8522.7c      178c        356c                4% of the CPU
      2400      4261.4c      178c        356c                8% of the CPU
      4800      2130.7c      178c        356c               17% of the CPU
      9600      1065.3c      178c        356c               33% of the CPU
     19200       532.7c      178c        356c               67% of the CPU
     38400       266.3c      178c        356c               cannot keep up
[B] >>> del
Deleting all checkpoints
(C:$e6e9) 
[B] >>> trace exec e685
TRACE: 1  C:$e685  (Trace exec)
(C:$e6e9) 
[B] >>> trace exec e699
TRACE: 2  C:$e699  (Trace exec)
(C:$e6e9) 
[B] >>> trace exec e6c9
TRACE: 3  C:$e6c9  (Trace exec)
(C:$e6e9) 
[B] >>> trace exec e6d6
TRACE: 4  C:$e6d6  (Trace exec)
(C:$e6e9) 
[B] >>> trace exec e6e9
TRACE: 5  C:$e6e9  (Trace exec)
(C:$e6e9) 
[B] >>> trace exec e67f
TRACE: 6  C:$e67f  (Trace exec)
(C:$e6e9) 
[B] >>> stopwatch
Stopwatch:  163873451
(C:$e6e9) 
[B] >>> stopwatch
Stopwatch:  172608996
(C:$12a2) 
[B] >>> del
Deleting all checkpoints
(C:$12a2) 
[B] captured 370440 bytes of trace into /home/scott/claude/modemwars/swiftlink/testLogs/cost.c192a.B.0.trace.txt; emulated cycles 163873451 -> 172608996

  ---- one pass of commNmiHandler [B round 0] ----
    window 8735545 cycles = 8.541 emulated s, 920 complete passes = 108/s
    receive only: 559 passes, trace-to-trace min 164 median 165 max 251 cycles; whole interrupt 178 cycles
    transmit, ring ran dry: 178 passes, trace-to-trace min 162 median 162 max 162 cycles; whole interrupt 175 cycles
    transmit only: 162 passes, trace-to-trace min 154 median 165 max 209 cycles; whole interrupt 178 cycles
    receive+transmit: 18 passes, trace-to-trace min 242 median 253 max 254 cycles; whole interrupt 266 cycles
    neither half had work: 3 passes, trace-to-trace min 77 median 151 max 151 cycles; whole interrupt 164 cycles
    duty cycle in this window: 2.0%

    what that costs per character time, at each rate the table offers:
      rate  char period  one pass  two passes                      verdict
       300     34090.9c      178c        356c                1% of the CPU
      1200      8522.7c      178c        356c                4% of the CPU
      2400      4261.4c      178c        356c                8% of the CPU
      4800      2130.7c      178c        356c               17% of the CPU
      9600      1065.3c      178c        356c               33% of the CPU
     19200       532.7c      178c        356c               67% of the CPU
     38400       266.3c      178c        356c               cannot keep up
[A] >>> del
Deleting all checkpoints
(C:$11be) 
[A] >>> trace exec e685
TRACE: 1  C:$e685  (Trace exec)
(C:$11be) 
[A] >>> trace exec e699
TRACE: 2  C:$e699  (Trace exec)
(C:$11be) 
[A] >>> trace exec e6c9
TRACE: 3  C:$e6c9  (Trace exec)
(C:$11be) 
[A] >>> trace exec e6d6
TRACE: 4  C:$e6d6  (Trace exec)
(C:$11be) 
[A] >>> trace exec e6e9
TRACE: 5  C:$e6e9  (Trace exec)
(C:$11be) 
[A] >>> trace exec e67f
TRACE: 6  C:$e67f  (Trace exec)
(C:$11be) 
[A] >>> stopwatch
Stopwatch:  250716053
(C:$11be) 
[A] >>> stopwatch
Stopwatch:  259468692
(C:$e6e4) 
[A] >>> del
Deleting all checkpoints
(C:$e6e4) 
[A] captured 781560 bytes of trace into /home/scott/claude/modemwars/swiftlink/testLogs/cost.c192a.A.1.trace.txt; emulated cycles 250716053 -> 259468692

  ---- one pass of commNmiHandler [A round 1] ----
    window 8752639 cycles = 8.558 emulated s, 1846 complete passes = 216/s
    receive only: 979 passes, trace-to-trace min 164 median 165 max 250 cycles; whole interrupt 178 cycles
    transmit only: 635 passes, trace-to-trace min 154 median 165 max 209 cycles; whole interrupt 178 cycles
    transmit, ring ran dry: 201 passes, trace-to-trace min 162 median 162 max 162 cycles; whole interrupt 175 cycles
    receive+transmit: 29 passes, trace-to-trace min 242 median 253 max 254 cycles; whole interrupt 266 cycles
    neither half had work: 2 passes, trace-to-trace min 77 median 151 max 151 cycles; whole interrupt 164 cycles
    duty cycle in this window: 4.0%

    what that costs per character time, at each rate the table offers:
      rate  char period  one pass  two passes                      verdict
       300     34090.9c      178c        356c                1% of the CPU
      1200      8522.7c      178c        356c                4% of the CPU
      2400      4261.4c      178c        356c                8% of the CPU
      4800      2130.7c      178c        356c               17% of the CPU
      9600      1065.3c      178c        356c               33% of the CPU
     19200       532.7c      178c        356c               67% of the CPU
     38400       266.3c      178c        356c               cannot keep up
[B] >>> del
Deleting all checkpoints
(C:$12a4) 
[B] >>> trace exec e685
TRACE: 1  C:$e685  (Trace exec)
(C:$12a4) 
[B] >>> trace exec e699
TRACE: 2  C:$e699  (Trace exec)
(C:$12a4) 
[B] >>> trace exec e6c9
TRACE: 3  C:$e6c9  (Trace exec)
(C:$12a4) 
[B] >>> trace exec e6d6
TRACE: 4  C:$e6d6  (Trace exec)
(C:$12a4) 
[B] >>> trace exec e6e9
TRACE: 5  C:$e6e9  (Trace exec)
(C:$12a4) 
[B] >>> trace exec e67f
TRACE: 6  C:$e67f  (Trace exec)
(C:$12a4) 
[B] >>> stopwatch
Stopwatch:  187806450
(C:$12a4) 
[B] >>> stopwatch
Stopwatch:  196507806
(C:$e310) 
[B] >>> del
Deleting all checkpoints
(C:$e310) 
[B] captured 724481 bytes of trace into /home/scott/claude/modemwars/swiftlink/testLogs/cost.c192a.B.1.trace.txt; emulated cycles 187806450 -> 196507806

  ---- one pass of commNmiHandler [B round 1] ----
    window 8701356 cycles = 8.508 emulated s, 1585 complete passes = 186/s
    receive only: 705 passes, trace-to-trace min 164 median 165 max 282 cycles; whole interrupt 178 cycles
    transmit only: 583 passes, trace-to-trace min 154 median 165 max 209 cycles; whole interrupt 178 cycles
    transmit, ring ran dry: 184 passes, trace-to-trace min 162 median 162 max 205 cycles; whole interrupt 175 cycles
    receive+transmit: 108 passes, trace-to-trace min 241 median 243 max 296 cycles; whole interrupt 256 cycles
    neither half had work: 5 passes, trace-to-trace min 77 median 151 max 151 cycles; whole interrupt 164 cycles
    duty cycle in this window: 3.6%

    what that costs per character time, at each rate the table offers:
      rate  char period  one pass  two passes                      verdict
       300     34090.9c      178c        356c                1% of the CPU
      1200      8522.7c      178c        356c                4% of the CPU
      2400      4261.4c      178c        356c                8% of the CPU
      4800      2130.7c      178c        356c               17% of the CPU
      9600      1065.3c      178c        356c               33% of the CPU
     19200       532.7c      178c        356c               67% of the CPU
     38400       266.3c      178c        356c               cannot keep up

================ SUMMARY ================
  A0: {'receive only': {'count': 740, 'min': 164, 'median': 165, 'max': 250, 'wholeInterrupt': 178}, 'transmit only': {'count': 455, 'min': 165, 'median': 165, 'max': 209, 'wholeInterrupt': 178}, 'transmit, ring ran dry': {'count': 114, 'min': 162, 'median': 162, 'max': 162, 'wholeInterrupt': 175}, 'receive+transmit': {'count': 33, 'min': 242, 'median': 253, 'max': 285, 'wholeInterrupt': 266}, 'neither half had work': {'count': 1, 'min': 151, 'median': 151, 'max': 151, 'wholeInterrupt': 164}}
  B0: {'receive only': {'count': 559, 'min': 164, 'median': 165, 'max': 251, 'wholeInterrupt': 178}, 'transmit, ring ran dry': {'count': 178, 'min': 162, 'median': 162, 'max': 162, 'wholeInterrupt': 175}, 'transmit only': {'count': 162, 'min': 154, 'median': 165, 'max': 209, 'wholeInterrupt': 178}, 'receive+transmit': {'count': 18, 'min': 242, 'median': 253, 'max': 254, 'wholeInterrupt': 266}, 'neither half had work': {'count': 3, 'min': 77, 'median': 151, 'max': 151, 'wholeInterrupt': 164}}
  A1: {'receive only': {'count': 979, 'min': 164, 'median': 165, 'max': 250, 'wholeInterrupt': 178}, 'transmit only': {'count': 635, 'min': 154, 'median': 165, 'max': 209, 'wholeInterrupt': 178}, 'transmit, ring ran dry': {'count': 201, 'min': 162, 'median': 162, 'max': 162, 'wholeInterrupt': 175}, 'receive+transmit': {'count': 29, 'min': 242, 'median': 253, 'max': 254, 'wholeInterrupt': 266}, 'neither half had work': {'count': 2, 'min': 77, 'median': 151, 'max': 151, 'wholeInterrupt': 164}}
  B1: {'receive only': {'count': 705, 'min': 164, 'median': 165, 'max': 282, 'wholeInterrupt': 178}, 'transmit only': {'count': 583, 'min': 154, 'median': 165, 'max': 209, 'wholeInterrupt': 178}, 'transmit, ring ran dry': {'count': 184, 'min': 162, 'median': 162, 'max': 205, 'wholeInterrupt': 175}, 'receive+transmit': {'count': 108, 'min': 241, 'median': 243, 'max': 296, 'wholeInterrupt': 256}, 'neither half had work': {'count': 5, 'min': 77, 'median': 151, 'max': 151, 'wholeInterrupt': 164}}
[relay] conn0 total 3850 bytes
[relay] conn1 total 3842 bytes
