; ; The other h PI (hex 4f) ; HP67 Logging started. (00167 - 00213 wait loop) ; [SST] pressed ; A= 0000fffffff100 B= 03000000000022 S= .........9.....f P= 11 00214 ... 00217 keys to a ; A= 0000fffffff900 (row=9 col=0) 00256 a -> rom address ; A= 0000fffffff2d0 P= 1 C= 00000000000000 M1=03000000000400 01455 if n/c go to 01526 do_sst: ; set sst flag, S 1 ; get pc from ram[61] (=52f) ; create step number (A= 002fffffffffff) ; get step (from ram[47] n=5, A= ff00000000004f, A[1,0]=4f) 01526 ... ; translate step to keycode (=35 73) 00323 delayed rom 07 00324 jsb 03764 .03764 bank switch .13765 0 -> c[w] ; C= 00000000000000 .13766 if n/c go to 013743 .13743 c - 1 -> c[w] ; C= ffffffffffffff .13744 p <- 1 ; P= 1 .13745 a exchange c[xs] ; A= ff000000000f4f C= fffffffffff0ff .13746 load constant 0 ; C= fffffffffff00f P= 0 .13747 load constant 10 ; C= fffffffffff00a P= 13 .13750 p <- 0 ; P= 0 .13751 if a >= c[p] .13752 then go to 012413 .12413 a + 1 -> a[p] ; A= ff000000000f40 .12414 if n/c go to 012421 .12415 load constant 4 ; C= fffffffffff004 P= 13 .12416 p <- 1 ; P= 1 .12417 load constant 2 ; C= fffffffffff024 P= 0 .12420 if n/c go to 012425 .12425 a - 1 -> a[p] ; A= ff000000000f4f (back to what it was) .12426 nop .12427 if n/c go to 012404 .12404 p <- 4 ; P= 4 .12405 load constant 3 ; C= fffffffff3f024 P= 3 .12406 load constant 0 ; C= fffffffff30024 P= 2 .12407 load constant 14 ; C= fffffffff30e24 P= 1 .12410 a exchange c[xs] ; A= ff000000000e4f C= fffffffff30f24 .12411 delayed rom 04 .12412 a -> rom address ; 0xe4 = 1110 0100 = 11 100 100 = 0344 .12344 if n/c go to 012330 ; All lookup keycode for 0x4[a-f] go here .12330 jsb 012361 ..12361 c + 1 -> c[m] ; C= fffffffff31f24 ..12362 c + 1 -> c[m] ; C= fffffffff32f24 ..12363 c + 1 -> c[m] ; C= fffffffff33f24 ..12364 c + 1 -> c[m] ; C= fffffffff34f24 ..12365 return .12331 c + 1 -> c[m] ; C= fffffffff35f24 (="h ...") .12332 load constant 6 ; C= fffffffff35f64 P= 0 .12333 load constant 2 ; C= fffffffff35f62 P= 13 .12334 p <- 1 ; P= 1 .12335 shift left a[x] ; A= ff0000000004f0 .12336 a -> rom address ; 0x4f = 0100 1111 = 01 001 111 = 0117 ; get here for 0x4f instruction .12117 if n/c go to 012163 .12163 c + 1 -> c[w] ; C= fffffffff35f63 .12164 if n/c go to 012250 .12250 c + 1 -> c[p] ; C= fffffffff35f73 (="h PI") .12251 return 10325 nop ; (implied bank switch) 00326 if n/c go to 01077 ; combine step number and keycode 01077 a exchange c[w] ; A= fffffffff35f73 C= ff0000000004f0 01100 m1 -> c ; C= 002ffffffff000 01101 p <- 10 ; P= 10 01102 a exchange c[wp] ; A= fffffffffff000 C= 002ffffff35f73 01103 a exchange c[w] ; A= 002ffffff35f73 C= fffffffffff000 01104 0 -> c[w] ; C= 00000000000000 01105 b exchange c[w] ; show the step and instruction (keycode) 01106 display off 01107 display toggle ; ="002 35 73" (h PI) 01110 0 -> s 3 ; wait for [SST] key to be released 01111 0 -> s 15 ; S= .1.......9...... 01112 if 1 = s 15 01113 then go to 01111 ; get instruction 01114 ... ; (ram[61] -> C= 0000000000052f) ; (ram[47] -> C= 00000000004fff) ; (A= ff00000000004f C= 002fffffff35f2f) ; run instruction 00356 display toggle 00357 a exchange c[w] ; A= 002ffffff35f2f C= ff00000000004f 00360 m1 exch c ; C= 002ffffffff000 M1=ff00000000004f 00361 delayed rom 014 00362 if n/c go to 06021 06021 m1 -> c ; C= ff00000000004f 06022 c -> a[x] ; A= 002ffffff3504f 06023 0 -> a[xs] 06024 b -> c[w] ; C= 00000000000000 06025 p <- 12 ; P= 12 06026 0 -> s 3 06027 a -> rom address ; 0x04= 0000 0100 =00 000 100 =004 ; hex 0x40-4f go here 06004 if n/c go to 06046 06046 decimal 06047 shift left a[x] ; A= 002ffffff354f0 06050 delayed rom 016 06051 a -> rom address ; 0x4f= 0100 1111 =01 001 111 =0117 ; ***** h PI (the other one) do_h_pi_rsvd: ; do nothing ; go straight to tidy up after a function 07117 if n/c go to 07313 07313 delayed rom 00 07314 if n/c go to 0074 ; ***** END ; tidy up after a function 00074 b -> c[w] ... display: 00161 hi im woodstock ; A= 0000fffffff100 P=11 B= 03000000000022 C= 00000000000000 00162 display off 00163 display toggle ; "0.00" 00164 0 -> s 15 00165 if 1 = s 15 00166 then go to 0164 waitloop: 00167 0 -> s 3 00170 CRC 1500 00171 if 1 = s 3 00172 then go to 0263 00173 0 -> s 1 00174 CRC 300 00175 if 1 = s 3 00176 then go to 0204 00177 if 0 = s 11 00200 then go to 0206 00206 0 -> s 3 00207 CRC 560 00210 if 1 = s 3 00211 then go to 01324 00212 if 0 = s 15 00213 then go to 0167