[GTO] . 8 (A,C) produces 35 51 04 (h SF 4) (hex 0x8e) HP67 Logging started. ;[GTO] [.] 8 (00167 - 00213 wait loop) ; A= 001fffffffff84 S= .......789ab.d.f P= 10 M1=001fffffffff80 ;[A,C]=0xa6 00214 ... 00217 keys to a ; A= 001ffffffffa64 00231 shift left a[x] ; A= 001ffffffff380 ; a6 -> 5*10+6=56= 0x38 00234 load constant 4 ; C= 00000000000400 P= 1 00254 m1 exch c ; C= 001fffffffff80 M1=00000000000400 00255 delayed rom 03 00256 a -> rom address ; 0x38= 0011 1000= 00 111 000= 070 ; 01470 c + 1 -> c[x] ; C= 001fffffffff81 01471 c + 1 -> c[x] ; C= 001fffffffff82 01472 c + 1 -> c[x] ; C= 001fffffffff83 01473 c + 1 -> c[x] ; C= 001fffffffff84 01474 c + 1 -> c[x] ; C= 001fffffffff85 01475 c + 1 -> c[x] ; C= 001fffffffff86 01476 p <- 8 ; P= 8 01477 c + 1 -> c[x] ; C= 001fffffffff87 01500 p - 1 -> p ; P= 7 01501 if p # 0 01502 then go to 01477 ... ; C= 001fffffffff88 P= 6 ; C= 001fffffffff89 P= 5 ; C= 001fffffffff8a P= 4 ; C= 001fffffffff8b P= 3 ; C= 001fffffffff8c P= 2 ; C= 001fffffffff8d P= 1 ; C= 001fffffffff8e P= 0 01501 if p # 0 01502 then go to 01477 01503 if n/c go to 01566 01566 delayed rom 01 01567 if n/c go to 0437 00437 c -> a[w] ; A= 001fffffffff8e 00440 m1 exch c ; C= 00000000000400 M1=001fffffffff8e 00441 delayed rom 02 00442 jsb 01205 ; S= .........9.b...f 00443 if 1 = s 11 ; in w/prgm mode 00444 then go to 0340 00340 0 -> s 3 00341 jsb 0022 ; step++ (001 -> 002) ... ; C= 0000000000052f 00342 if 1 = s 3 00343 then go to 01366 00344 CRC 1100 ; S= ...3.....9.b...f 00345 nop 00346 0 -> s 3 ; S= .........9.b...f 00347 delayed rom 013 00350 if n/c go to 05616 05616 p <- 1 ; P= 1 05617 if 0 = s 3 05620 then go to 05625 05625 c -> addr 05626 b exchange c[w] ; B= 0000000000052f C= 00000000000000 05627 m1 exch c ; C= 001fffffffff8e M1=00000000000000 *** ram[47] -> c (=00000000000000) 05630 data -> c ; C= 00000000000000 05631 b exchange c[ms] 05632 b -> c[x] ; C= 0000000000052f 05633 c + 1 -> c[xs] ; C= 0000000000062f 05634 c + 1 -> c[xs] ; C= 0000000000072f 05635 c + 1 -> c[xs] ; C= 0000000000082f 05636 decimal 05637 0 - c - 1 -> c[xs] ; C= 0000000000012f 05640 binary 05641 if n/c go to 05646 05646 c - 1 -> c[xs] ; C= 0000000000002f 05647 if n/c go to 05642 05642 p + 1 -> p ; P= 2 05643 p + 1 -> p ; P= 3 05644 shift left a[wp] ; A= 001ffffffff8e0 05645 shift left a[wp] ; A= 001fffffff8e00 05646 c - 1 -> c[xs] ; C= 00000000000f2f 05647 if n/c go to 05642 *** ram[47] -> c (=00000000000000) 05650 data -> c ; C= 00000000000000 05651 a exchange c[w] ; A= 00000000000000 C= 001fffffff8e00 05652 rotate a left 05653 rotate a left 05654 shift right a[wp] 05655 shift right a[wp] 05656 c -> a[p] ; A= 00000000008000 05657 p - 1 -> p ; P= 2 05660 c -> a[p] ; A= 00000000008e00 05661 b -> c[w] ; C= 0000000000052f 05662 if n/c go to 05672 05672 a exchange c[w] ; A= 0000000000052f C= 00000000008e00 05673 p <- 0 ; P= 0 ; ; Note: hex 0x8e about to go into step 002 ; *** c -> ram[47] (=00000000008e00) 05674 c -> data 05675 a exchange c[w] ; A= 00000000008e00 C= 0000000000052f 05676 c - 1 -> c[p] ; C= 0000000000052e 05677 if n/c go to 05663 ; ; Shift everything else down (old step 002 -> 003, etc) ; 05663 c -> a[w] ; A= 0000000000052e 05664 c -> addr *** ram[46] -> c (=00000000000000) 05665 data -> c ; C= 00000000000000 05666 p <- 11 ; P= 11 05667 a exchange c[wp] ; A= 00000000000000 C= 0000000000052e 05670 rotate a left 05671 rotate a left 05672 a exchange c[w] ; A= 0000000000052e C= 00000000000000 05673 p <- 0 ; P= 0 *** c -> ram[46] (=00000000000000) 05674 c -> data 05675 a exchange c[w] ; A= 00000000000000 C= 0000000000052e 05676 c - 1 -> c[p] ; C= 0000000000052d 05677 if n/c go to 05663 ... ; ram[45] (=00000000000000) A= 00000000000000 C= 0000000000052c ; ram[44] (=00000000000000) A= 00000000000000 C= 0000000000052b ; ram[43] (=00000000000000) A= 00000000000000 C= 0000000000052a ... ; ram[17] (=00000000000000) A= 00000000000000 C= 00000000000510 ; ram[16] (=00000000000000) A= 00000000000000 C= 0000000000051f 05677 if n/c go to 05663 05700 p <- 1 ; P= 1 05701 c - 1 -> c[p] ; C= 0000000000050f 05702 if c[p] # 0 05703 then go to 05663 05704 m1 -> c ; C= 00000000000000 05705 b exchange c[w] ; B= 00000000000000 C= 0000000000052f 05706 delayed rom 00 05707 if n/c go to 0125 ; ; update display ; 00125 ... 02414 a - 1 -> a[wp] ; A= 002fffffffffff *** ram[47] -> c (=00000000008e00) 00013 data -> c ; C= 00000000008e00 00016 rotate a left ; A= 0000000000008e 01103 a exchange c[w] ; A= 002fff35f51f04 C= 0ffffffffff000 01106 display off 01107 display toggle ; "002 35 51 04"