67-g-merge HP67 Logging started. ; A= 0000fffffff100 B= 03000000000022 S= .........9...... P= 11 00167 ... 00213 then go to 0167 00167 0 -> s 3 ; S= .........9.....f 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 ; key pressed 00214 display off 00215 b exchange c[w] ; B= 00000000000000 C= 03000000000022 00216 CRC 400 00217 keys to a ; A= 0000fffffff130 ; 0x13 = [g] 00220 0 -> c[x] ; C= 03000000000000 00221 a exchange c[xs] ; A= 0000fffffff030 C= 03000000000100 00222 shift right a[x] ; A= 0000fffffff003 00223 p <- 0 ; P= 0 00224 load constant 5 ; C= 03000000000105 P= 13 00225 a + c -> a[x] ; A= 0000fffffff108 00226 c - 1 -> c[xs] ; C= 03000000000005 00227 if n/c go to 0225 00225 a + c -> a[x] ; A= 0000fffffff10d 00226 c - 1 -> c[xs] ; C= 03000000000f05 00227 if n/c go to 0225 00230 a - c -> a[x] ; A= 0000fffffff208 00231 shift left a[x] ; A= 0000fffffff080 00232 0 -> c[x] ; C= 03000000000000 00233 p <- 2 ; P= 2 00234 load constant 4 ; C= 03000000000400 P= 1 00235 0 -> s 3 00236 if 0 = s 4 00237 then go to 0254 00254 m1 exch c ; C= 00000000000000 M1=03000000000400 00255 delayed rom 03 00256 a -> rom address ; key 0x13 -> 5*1+3 = 8 = 010 => 01410 01410 if n/c go to 01604 01604 jsb 01740 01740 0 -> s 10 01741 0 -> s 4 01742 0 -> s 6 01743 0 -> s 7 01744 0 -> s 8 01745 0 -> s 13 01746 return 01605 1 -> s 7 ; S= .......7.9.....f 01606 if n/c go to 01601 01601 1 -> s 4 ; S= ....4..7.9.....f 01602 1 -> s 6 ; S= ....4.67.9.....f 01603 if n/c go to 01570 01570 delayed rom 01 01571 if n/c go to 0451 00451 1 -> s 13 ; S= ....4.67.9...d.f 00452 delayed rom 00 00453 if n/c go to 0142 00142 0 -> s 3 00143 0 -> c[s] 00144 m1 exch c ; C= 03000000000400 M1=00000000000000 00145 if 1 = s 11 00146 then go to 0317 00147 delayed rom 017 00150 jsb 07706 07706 p <- 1 07707 load constant 3 ; C= 03000000000430 P= 0 07710 c -> addr *** ram[63] -> c (=00000000000000) 07711 data register -> c 15 ; C= 00000000000000 07712 return 00151 a exchange b[w] ; A= 00000000000000 B= 0000fffffff080 00152 a -> b[w] ; B= 00000000000000 00153 if 1 = s 12 00154 then go to 0157 00155 delayed rom 04 00156 jsb 02007 02007 p <- 1 ; P= 1 02010 load constant 3 ; C= 00000000000030 P= 0 02011 c -> addr 02012 0 -> s 3 *** ram[62] -> c (=00000012220000) 02013 data register -> c 14 ; C= 00000012220000 02014 decimal 02015 jsb 02137 02137 c -> a[w] ; A= 00000012220000 02140 0 -> c[w] ; C= 00000000000000 02141 p <- 3 ; P= 3 02142 0 -> a[wp] 02143 p <- 6 ; P= 6 02144 a exchange c[wp] ; A= 00000010000000 C= 00000002220000 02145 c -> a[p] ; A= 00000012000000 02146 c - 1 -> c[s] ; C= 90000002220000 02147 a - 1 -> a[p] ; A= 00000011000000 02150 if n/c go to 02146 02146 c - 1 -> c[s] ; C= 80000002220000 02147 a - 1 -> a[p] ; A= 00000010000000 02150 if n/c go to 02146 02146 c - 1 -> c[s] ; C= 70000002220000 02147 a - 1 -> a[p] ; A= 00000019000000 02150 if n/c go to 02146 02151 c -> a[s] ; A= 70000019000000 02152 p <- 12 ; P= 12 02153 c - 1 -> c[p] ; C= 79000002220000 02154 a - 1 -> a[s] ; A= 60000019000000 02155 if n/c go to 02153 02153 c - 1 -> c[p] ; C= 78000002220000 02154 a - 1 -> a[s] ; A= 50000019000000 02155 if n/c go to 02153 02153 c - 1 -> c[p] ; C= 77000002220000 02154 a - 1 -> a[s] ; A= 40000019000000 02155 if n/c go to 02153 02153 c - 1 -> c[p] ; C= 76000002220000 02154 a - 1 -> a[s] ; A= 30000019000000 02155 if n/c go to 02153 02153 c - 1 -> c[p] ; C= 75000002220000 02154 a - 1 -> a[s] ; A= 20000019000000 02155 if n/c go to 02153 02153 c - 1 -> c[p] ; C= 74000002220000 02154 a - 1 -> a[s] ; A= 10000019000000 02155 if n/c go to 02153 02153 c - 1 -> c[p] ; C= 73000002220000 02154 a - 1 -> a[s] ; A= 00000019000000 02155 if n/c go to 02153 02153 c - 1 -> c[p] ; C= 72000002220000 02154 a - 1 -> a[s] ; A= 90000019000000 02155 if n/c go to 02153 02156 return 02016 if 1 = s 3 02017 then go to 02023 02020 p <- 4 ; P= 4 02021 if c[p] # 0 02022 then go to 02066 02066 p <- 6 ; P= 6 02067 b -> c[x] 02070 if c[xs] = 0 02071 then go to 02124 02124 if c[x] = 0 02125 then go to 02116 02116 if 1 = s 3 02117 then go to 02105 02120 jsb 02162 02162 p <- 3 ; P= 3 02163 c -> a[w] ; A= 72000002220000 02164 c + 1 -> c[s] ; C= 82000002220000 02165 a - 1 -> a[p] ; A= 72000002229000 02166 if n/c go to 02164 02167 c - 1 -> c[s] ; C= 72000002220000 02170 0 -> s 3 02171 p <- 12 ; P= 12 02172 a exchange b[wp] ; A= 70000000000000 B= 02000002229000 02173 a -> b[wp] ; B= 00000000000000 02174 if b[m] = 0 02175 then go to 02232 02232 return 02121 if 0 = s 3 02122 then go to 02105 02105 c + 1 -> c[xs] ; C= 72000002220100 02106 if n/c go to 02063 02063 binary 02064 0 -> s 3 02065 return 00157 delayed rom 02 00160 jsb 01162 01162 jsb 01143 01143 c -> a[x] ; A= 70000000000100 01144 if b[s] = 0 01145 then go to 01147 01147 p <- 12 01150 shift right c[wp] ; C= 70200000222010 01151 if c[xs] = 0 01152 then go to 01156 01156 shift right c[wp] ; C= 70020000022201 01157 shift right c[wp] ; C= 70002000002220 01160 shift right c[wp] ; C= 70000200000222 01161 return 01163 p <- 3 ; P= 3 01164 shift left a[w] ; A= 00000000001000 01165 0 -> c[m] ; C= 70000000000222 01166 if c[s] = 0 01167 then go to 01174 01170 p + 1 -> p ; P= 4 01171 a - 1 -> a[p] ; A= 000000000f1000 01172 c - 1 -> c[s] ; C= 60000000000222 01173 if n/c go to 01166 01166 if c[s] = 0 01167 then go to 01174 01170 p + 1 -> p ; P= 5 01171 a - 1 -> a[p] ; A= 00000000ff1000 01172 c - 1 -> c[s] ; C= 50000000000222 01173 if n/c go to 01166 01166 if c[s] = 0 01167 then go to 01174 01170 p + 1 -> p ; P= 6 01171 a - 1 -> a[p] ; A= 0000000fff1000 01172 c - 1 -> c[s] ; C= 40000000000222 01173 if n/c go to 01166 01166 if c[s] = 0 01167 then go to 01174 01170 p + 1 -> p ; P= 7 01171 a - 1 -> a[p] ; A= 000000ffff1000 01172 c - 1 -> c[s] ; C= 30000000000222 01173 if n/c go to 01166 01166 if c[s] = 0 01167 then go to 01174 01170 p + 1 -> p ; P= 8 01171 a - 1 -> a[p] ; A= 00000fffff1000 01172 c - 1 -> c[s] ; C= 20000000000222 01173 if n/c go to 01166 01166 if c[s] = 0 01167 then go to 01174 01170 p + 1 -> p ; P= 9 01171 a - 1 -> a[p] ; A= 0000ffffff1000 01172 c - 1 -> c[s] ; C= 10000000000222 01173 if n/c go to 01166 01166 if c[s] = 0 01167 then go to 01174 01170 p + 1 -> p ; P= 10 01171 a - 1 -> a[p] ; A= 000fffffff1000 01172 c - 1 -> c[s] ; C= 00000000000222 01173 if n/c go to 01166 01166 if c[s] = 0 01167 then go to 01174 01174 if c[xs] = 0 01175 then go to 01201 01176 c - 1 -> c[xs] ; C= 00000000000122 01177 p + 1 -> p ; P= 11 01200 if n/c go to 01174 01174 if c[xs] = 0 01175 then go to 01201 01176 c - 1 -> c[xs] ; C= 00000000000022 01177 p + 1 -> p ; P= 12 01200 if n/c go to 01174 01174 if c[xs] = 0 01175 then go to 01201 01201 shift right a[wp] ; A= 0000fffffff100 01202 load constant 3 ; C= 03000000000022 P= 11 01203 b exchange c[w] ; B= 03000000000022 C= 00000000000000 01204 return 00161 hi im woodstock 00162 display off 00163 display toggle 00164 0 -> s 15 ; S= ....4.67.9...d.. 00165 if 1 = s 15 00166 then go to 0164 00167 ... 00213 then go to 0167 00167 ... 00213 then go to 0167 00167 0 -> s 3 ; S= ....4.67.9...d.f 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 00214 display off 00215 b exchange c[w] ; B= 00000000000000 C= 03000000000022 00216 CRC 400 00217 keys to a ; A= 0000fffffff330 ; 0x33 = [ENTER] 00220 0 -> c[x] ; C= 03000000000000 00221 a exchange c[xs] ; A= 0000fffffff030 C= 03000000000300 00222 shift right a[x] ; A= 0000fffffff003 00223 p <- 0 ; P= 0 00224 load constant 5 ; C= 03000000000305 P= 13 00225 a + c -> a[x] ; A= 0000fffffff308 0x08= col(=3) +5 00226 c - 1 -> c[xs] ; C= 03000000000205 00227 if n/c go to 0225 ; A= 0000fffffff50d C= 03000000000105 0x0d= col(=3) +5+5 ; A= 0000fffffff612 C= 03000000000005 0x12= col(=3) + row(=3)*5 ; A= 0000fffffff617 C= 03000000000f05 00227 if n/c go to 0225 00230 a - c -> a[x] ; A= 0000fffffff712 0x12=18=5*row+col 00231 shift left a[x] ; A= 0000fffffff120 00232 0 -> c[x] ; C= 03000000000000 00233 p <- 2 ; P= 2 00234 load constant 4 ; C= 03000000000400 P= 1 00235 0 -> s 3 00236 if 0 = s 4 00237 then go to 0254 00240 if 0 = s 6 00241 then go to 0254 00242 a + c -> a[xs] ; A= 0000fffffff520 A[2,1]= (s6?64:0)+5*row+col 00243 if 1 = s 8 00244 then go to 0251 00245 a + c -> a[xs] ; A= 0000fffffff920 A[2,1]= (s6?64:...)+(s8?...:64)+5*row+col 00246 if 1 = s 7 00247 then go to 0251 00251 m1 exch c ; C= 00000000000000 M1=03000000000400 00252 delayed rom 01 00253 a -> rom address ; rom 01 = 00400, a[2,1]=0x92 = 1001 0010 = 10 010 010 = 0222, => goto 00622 ; [g] (s4=1 s6=1 s8=0 s7=1) (A[2,1]=0x80) + [ENTER] (0x12) 00622 if n/c go to 0432 00432 c + 1 -> c[x] ; C= 00000000000001 00433 c + 1 -> c[x] ; C= 00000000000002 00434 c + 1 -> c[x] ; C= 00000000000003 00435 if n/c go to 0542 00542 c + 1 -> c[x] ; C= 00000000000004 00543 c + 1 -> c[x] ; C= 00000000000005 00544 if n/c go to 0436 00436 load constant 4 ; C= 00000000000045 P= 0 00437 c -> a[w] ; A= 00000000000045 (g ENTER = MERGE = hexcode 0x45) 00440 m1 exch c ; C= 03000000000400 M1=00000000000045 00441 delayed rom 02 00442 jsb 01205 01205 0 -> s 4 ; S= ......67.9...d.f 01206 0 -> s 6 ; S= .......7.9...d.f 01207 0 -> s 7 ; S= .........9...d.f 01210 0 -> s 8 01211 0 -> s 10 01212 0 -> s 13 ; S= .........9.....f 01213 return 00443 if 1 = s 11 00444 then go to 0340 00445 delayed rom 014 00446 if n/c go to 06021 06021 m1 -> c ; C= 00000000000045 06022 c -> a[x] 06023 0 -> a[xs] 06024 b -> c[w] ; C= 00000000000000 06025 p <- 12 ; P= 12 06026 0 -> s 3 06027 a -> rom address ; hexcode 0x45 to do_4X do_4X: ; HMS+ SPACE -STK- LASTx WDATA MERGE ... 06004 if n/c go to 06046 06046 decimal 06047 shift left a[x] ; A= 00000000000450 06050 delayed rom 016 06051 a -> rom address ; A[2,1]= 0x45 =0100 0101 =01 000 101 =0105 do_45_g_merge: 07105 if n/c go to 07055 07055 CRC 1200 ; set merge flag 07056 delayed rom 00 07057 if n/c go to 0125 00125 binary 00126 0 -> s 3 00127 delayed rom 02 00130 jsb 01205 01205 0 -> s 4 01206 0 -> s 6 01207 0 -> s 7 01210 0 -> s 8 01211 0 -> s 10 01212 0 -> s 13 01213 return 00131 CRC 1500 ; test/clear pause flag 00132 if 1 = s 3 00133 then go to 0257 00134 jsb 0116 00116 if 1 = s 2 00117 then go to 0122 00120 if 0 = s 1 00121 then go to 0123 00123 return 00135 ... ; A= 0000fffffff100 ; B= 03000000000022 00161 hi im woodstock 00162 display off 00163 display toggle ; " 0.00" 00164 0 -> s 15 ; S= .........9...... 00165 if 1 = s 15 00166 then go to 0164 00167 ... 00213 then go to 0167 00167 ... 00213 then go to 0167