HP29w Ver 0.02 Copyright 2018 Greg Sydney-Smith CPU speed is 200 kHz >>> g >>> dr A=0000FFFFFFFF00 D=00000000000000 M1=00000000000000 P=12 B=29000000000000 E=00000000000000 M2=00000000000000 C=00000000000000 F=00000000000000 S =...3.5...9...... >>> di Display : on (12 digits) Arithmetic base : 16 Ram address : 30 f : 0 carry : false bank/dlyrom : 0/-1 sp, stack : 0 [00144,02072] lastkey : 00 voltage : 2.5 >>> ts 00166: if 1 = s 5 then goto 00173 ; S=...3.5...9.....F 00173: if 0 = s 15 then goto 00152 ; 00175: display off ; 00176: b exchange c[w] ; B=00000000000000 C=29000000000000 00177: keys to a ; A=0000FFFFFFFA20 00200: 0 -> s 13 ; 00201: binary ; 00202: 0 -> c[x] ; >>> ts,152 00203: c + 1 -> c[x] ; C=29000000000001 00204: a - 1 -> a[xs] ; A=0000FFFFFFF920 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000002 00204: a - 1 -> a[xs] ; A=0000FFFFFFF820 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000003 00204: a - 1 -> a[xs] ; A=0000FFFFFFF720 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000004 00204: a - 1 -> a[xs] ; A=0000FFFFFFF620 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000005 00204: a - 1 -> a[xs] ; A=0000FFFFFFF520 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000006 00204: a - 1 -> a[xs] ; A=0000FFFFFFF420 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000007 00204: a - 1 -> a[xs] ; A=0000FFFFFFF320 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000008 00204: a - 1 -> a[xs] ; A=0000FFFFFFF220 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000009 00204: a - 1 -> a[xs] ; A=0000FFFFFFF120 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=2900000000000A 00204: a - 1 -> a[xs] ; A=0000FFFFFFF020 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=2900000000000B 00204: a - 1 -> a[xs] ; A=0000FFFFFFFF20 00205: if n/c goto 0203 ; 00206: c - 1 -> c[x] ; C=2900000000000A 00207: 0 -> a[xs] ; A=0000FFFFFFF020 00210: shift right a[x] ; A=0000FFFFFFF002 00211: a + c -> a[x] ; A=0000FFFFFFF00C 00212: c + c -> c[x] ; C=29000000000014 00213: c + c -> c[x] ; C=29000000000028 00214: a + c -> a[x] ; A=0000FFFFFFF034 00215: shift left a[x] ; A=0000FFFFFFF340 00216: p <- 1 ; P= 1 00217: m1 -> c ; C=00000000000000 00220: 0 -> c[x] ; 00221: delayed rom 1 ; 00222: a -> rom address ; key_4: 00464: if n/c goto 0042 ; 00442: c + 1 -> c[x] ; C=00000000000001 00443: c + 1 -> c[x] ; C=00000000000002 00444: c + 1 -> c[x] ; C=00000000000003 00445: if n/c goto 0332 ; 00732: c + 1 -> c[x] ; C=00000000000004 00733: if 1 = s 4 then goto 00745 ; 00735: if 1 = s 7 then goto 00747 ; 00737: if 1 = s 6 then goto 00756 ; 00741: if 1 = s 8 then goto 01045 ; 00743: if 1 = s 10 then goto 00747 ; 00745: c + 1 -> c[p] ; C=00000000000014 00746: if n/c goto 0153 ; 00553: p <- 1 ; 00554: if 0 = s 4 then goto 00562 ; 00562: jsb 0000 ; 00400: delayed rom 2 ; 00401: if n/c goto 0167 ; 01167: 0 -> s 4 ; 01170: 0 -> s 0 ; 01171: 0 -> s 14 ; 01172: 0 -> s 6 ; 01173: 0 -> s 7 ; 01174: 0 -> s 8 ; 01175: 0 -> s 10 ; 01176: 0 -> s 13 ; 01177: return ; 00563: if 1 = s 13 then goto 00124 ; 00565: c -> a[w] ; A=00000000000014 00566: m1 exch c ; C=00000000000000 M1=00000000000014 00567: jsb 0000 ; 00400: delayed rom 2 ; 00401: if n/c goto 0167 ; 01167: 0 -> s 4 ; 01170: 0 -> s 0 ; 01171: 0 -> s 14 ; 01172: 0 -> s 6 ; 01173: 0 -> s 7 ; 01174: 0 -> s 8 ; 01175: 0 -> s 10 ; 01176: 0 -> s 13 ; 01177: return ; 00570: 0 -> s 3 ; 00571: if 0 = s 3 then goto 00300 ; 00573: delayed rom 12 ; 00574: if n/c goto 0021 ; 06021: m1 -> c ; C=00000000000014 06022: c -> a[x] ; 06023: 0 -> a[xs] ; 06024: b -> c[w] ; C=00000000000000 06025: p <- 12 ; P=12 06026: 0 -> s 11 ; 06027: a -> rom address ; 06001: if n/c goto 0030 ; 06030: delayed rom 14 ; 06031: if n/c goto 0163 ; 07163: jsb 0014 ; 07014: a exchange c[x] ; A=00000000000000 C=00000000000014 07015: c -> a[w] ; A=00000000000014 07016: p <- 0 ; P= 0 07017: load constant 10 ; C=0000000000001A P=13 07020: decimal ; 07021: if a >= c[x] then goto 01025 ; 07023: b -> c[w] ; C=00000000000000 07024: return ; 07164: delayed rom 15 ; 07165: if n/c goto 0000 ; 07400: if 1 = s 12 then goto 01417 ; 07402: if 0 = s 9 then goto 01405 ; 07404: c -> stack ; 07405: 1 -> s 9 ; 07406: 0 -> c[w] ; 07407: binary ; 07410: c - 1 -> c[w] ; C=FFFFFFFFFFFFFF 07411: 0 -> c[s] ; C=0FFFFFFFFFFFFF 07412: f exch a ; A=00000000000010 07413: 0 -> a[x] ; A=00000000000000 07414: f exch a ; A=00000000000004 07415: 1 -> s 12 ; S=...3.5...9..C..F 07416: if n/c goto 0022 ; 07422: p <- 1 ; P= 1 07423: c + 1 -> c[p] ; C=0FFFFFFFFFFF0F 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000000000040 07426: p + 1 -> p ; P= 2 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0FFFFFFFFFF00F 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000000000400 07426: p + 1 -> p ; P= 3 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0FFFFFFFFF000F 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000000004000 07426: p + 1 -> p ; P= 4 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0FFFFFFFF0000F 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000000040000 07426: p + 1 -> p ; P= 5 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0FFFFFFF00000F 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000000400000 07426: p + 1 -> p ; P= 6 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0FFFFFF000000F 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000004000000 07426: p + 1 -> p ; P= 7 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0FFFFF0000000F 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000040000000 07426: p + 1 -> p ; P= 8 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0FFFF00000000F 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000400000000 07426: p + 1 -> p ; P= 9 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0FFF000000000F 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00004000000000 07426: p + 1 -> p ; P=10 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0FF0000000000F 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00040000000000 07426: p + 1 -> p ; P=11 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0F00000000000F 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00400000000000 07426: p + 1 -> p ; P=12 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0000000000000F 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=04000000000000 07426: p + 1 -> p ; P=13 07427: if p # 13 then goto 01423 ; 07431: p - 1 -> p ; P=12 07432: a exchange c[wp] ; A=0000000000000F C=04000000000000 07433: p - 1 -> p ; P=11 07434: c -> a[w] ; A=04000000000000 07435: c - 1 -> c[wp] ; C=04FFFFFFFFFFFF 07436: a exchange c[x] ; A=04000000000FFF C=04FFFFFFFFF000 07437: if a[m] # 0 then goto 01465 ; 07465: jsb 0067 ; 07467: a exchange b[x] ; A=04000000000000 B=00000000000FFF 07470: decimal ; 07471: 0 -> a[x] ; 07472: f -> a ; 07473: a + c -> c[x] ; 07474: p <- 12 ; P=12 07475: if c[p] # 0 then goto 01505 ; 07505: a exchange b[x] ; A=04000000000FFF B=00000000000000 07506: binary ; 07507: return ; 07466: if n/c goto 0041 ; 07441: a exchange c[ms] ; A=04FFFFFFFFFFFF C=04000000000000 07442: b exchange c[w] ; B=04000000000000 C=00000000000000 07443: b -> c[w] ; C=04000000000000 07444: jsb 0203 ; 07603: if 0 = s 4 then goto 01607 ; 07607: f -> a ; A=04FFFFFFFFFFF0 07610: binary ; 07611: if 0 = s 7 then goto 01617 ; 07617: p <- 1 ; P= 1 07620: load constant 1 ; C=04000000000010 P= 0 07621: c -> addr ; 07622: a exchange c[w] ; A=04000000000010 C=04FFFFFFFFFFF0 07623: c -> data register 14 ; 07624: a exchange c[w] ; A=04FFFFFFFFFFF0 C=04000000000010 07625: c -> a[s] ; 07626: return ; 07445: b -> c[w] ; C=04000000000000 07446: jsb 0347 ; 07747: p <- 1 ; P= 1 07750: load constant 2 ; C=04000000000020 P= 0 07751: c -> addr ; 07752: b -> c[w] ; C=04000000000000 07753: c -> data register 15 ; 07754: return ; 07447: delayed rom 0 ; 07450: if n/c goto 0063 ; 00063: jsb 0323 ; 00323: p <- 1 ; P= 1 00324: load constant 2 ; C=04000000000020 P= 0 00325: c -> addr ; 00326: data register -> c 15 ; C=04000000000000 00327: b exchange c[w] ; 00330: return ; 00064: if n/c goto 0114 ; 00114: jsb 0315 ; 00315: if 1 = s 2 then goto 00321 ; 00317: if 0 = s 1 then goto 00322 ; 00322: return ; 00115: binary ; 00116: delayed rom 2 ; 00117: jsb 0167 ; 01167: 0 -> s 4 ; 01170: 0 -> s 0 ; 01171: 0 -> s 14 ; 01172: 0 -> s 6 ; 01173: 0 -> s 7 ; 01174: 0 -> s 8 ; 01175: 0 -> s 10 ; 01176: 0 -> s 13 ; 01177: return ; 00120: b -> c[w] ; 00121: if 1 = s 2 then goto 00223 ; 00123: 0 -> s 1 ; 00124: 0 -> s 11 ; 00125: 0 -> c[s] ; 00126: m1 exch c ; C=00000000000014 M1=04000000000000 00127: b -> c[w] ; C=04000000000000 00130: 0 -> s 3 ; 00131: if 0 = s 3 then goto 00232 ; 00133: if 0 = s 12 then goto 00140 ; 00135: delayed rom 7 ; 00136: jsb 0360 ; 03760: a exchange c[w] ; A=04000000000000 C=04FFFFFFFFFFF0 03761: p <- 1 ; P= 1 03762: load constant 1 ; C=04FFFFFFFFFF10 P= 0 03763: c -> addr ; 03764: data register -> c 14 ; C=04FFFFFFFFFFF0 03765: decimal ; 03766: p <- 13 ; P=13 03767: c + c -> c[s] ; 03770: if n/c goto 0373 ; 03773: load constant 0 ; P=12 03774: a exchange c[w] ; A=04FFFFFFFFFFF0 C=04000000000000 03775: binary ; 03776: return ; 00137: if n/c goto 0142 ; 00142: delayed rom 2 ; 00143: jsb 0371 ; 01371: if n/c goto 0060 ; 01060: b exchange c[w] ; 01061: binary ; 01062: 0 -> c[w] ; C=00000000000000 01063: p <- 13 ; P=13 01064: load constant 2 ; C=20000000000000 P=12 01065: load constant 9 ; C=29000000000000 P=11 01066: b exchange c[w] ; B=29000000000000 C=04000000000000 01067: p <- 0 ; P= 0 01070: if n/c goto 0073 ; 01073: if a[p] # 0 then goto 01071 ; 01075: p <- 1 ; P= 1 01076: a + 1 -> a[p] ; A=04FFFFFFFFFF00 01077: if n/c goto 0116 ; 01100: p <- 12 ; P=12 01101: if b[p] = 0 then goto 01110 ; 01103: a + 1 -> a[p] ; A=05FFFFFFFFFF00 01104: if n/c goto 0106 ; 01106: a - 1 -> a[p] ; A=04FFFFFFFFFF00 01107: return ; 00144: cpu woodstock ; 00145: display off ; 00146: display toggle ; 00147: 0 -> s 15 ; S=...3.5...9..C... 00150: if 1 = s 15 then goto 00147 ; Breakpoint 1 at 00152 >>> ts 00152: 0 -> s 1 ; S=...3.5...9..C..F 00153: 0 -> s 3 ; 00154: if 0 = s 3 then goto 00163 ; 00156: if 0 = s 11 then goto 00165 ; 00165: 0 -> s 5 ; 00166: if 1 = s 5 then goto 00173 ; 00173: if 0 = s 15 then goto 00152 ; 00175: display off ; >>> ts,152 00176: b exchange c[w] ; B=04000000000000 C=29000000000000 00177: keys to a ; A=04FFFFFFFFFA10 00200: 0 -> s 13 ; 00201: binary ; 00202: 0 -> c[x] ; 00203: c + 1 -> c[x] ; C=29000000000001 00204: a - 1 -> a[xs] ; A=04FFFFFFFFF910 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000002 00204: a - 1 -> a[xs] ; A=04FFFFFFFFF810 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000003 00204: a - 1 -> a[xs] ; A=04FFFFFFFFF710 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000004 00204: a - 1 -> a[xs] ; A=04FFFFFFFFF610 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000005 00204: a - 1 -> a[xs] ; A=04FFFFFFFFF510 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000006 00204: a - 1 -> a[xs] ; A=04FFFFFFFFF410 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000007 00204: a - 1 -> a[xs] ; A=04FFFFFFFFF310 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000008 00204: a - 1 -> a[xs] ; A=04FFFFFFFFF210 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000009 00204: a - 1 -> a[xs] ; A=04FFFFFFFFF110 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=2900000000000A 00204: a - 1 -> a[xs] ; A=04FFFFFFFFF010 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=2900000000000B 00204: a - 1 -> a[xs] ; A=04FFFFFFFFFF10 00205: if n/c goto 0203 ; 00206: c - 1 -> c[x] ; C=2900000000000A 00207: 0 -> a[xs] ; A=04FFFFFFFFF010 00210: shift right a[x] ; A=04FFFFFFFFF001 00211: a + c -> a[x] ; A=04FFFFFFFFF00B 00212: c + c -> c[x] ; C=29000000000014 00213: c + c -> c[x] ; C=29000000000028 00214: a + c -> a[x] ; A=04FFFFFFFFF033 00215: shift left a[x] ; A=04FFFFFFFFF330 00216: p <- 1 ; P= 1 00217: m1 -> c ; C=04000000000000 00220: 0 -> c[x] ; 00221: delayed rom 1 ; 00222: a -> rom address ; key_5: 00463: c + 1 -> c[x] ; C=04000000000001 00464: if n/c goto 0042 ; 00442: c + 1 -> c[x] ; C=04000000000002 00443: c + 1 -> c[x] ; C=04000000000003 00444: c + 1 -> c[x] ; C=04000000000004 00445: if n/c goto 0332 ; 00732: c + 1 -> c[x] ; C=04000000000005 00733: if 1 = s 4 then goto 00745 ; 00735: if 1 = s 7 then goto 00747 ; 00737: if 1 = s 6 then goto 00756 ; 00741: if 1 = s 8 then goto 01045 ; 00743: if 1 = s 10 then goto 00747 ; 00745: c + 1 -> c[p] ; C=04000000000015 00746: if n/c goto 0153 ; 00553: p <- 1 ; 00554: if 0 = s 4 then goto 00562 ; 00562: jsb 0000 ; 00400: delayed rom 2 ; 00401: if n/c goto 0167 ; 01167: 0 -> s 4 ; 01170: 0 -> s 0 ; 01171: 0 -> s 14 ; 01172: 0 -> s 6 ; 01173: 0 -> s 7 ; 01174: 0 -> s 8 ; 01175: 0 -> s 10 ; 01176: 0 -> s 13 ; 01177: return ; 00563: if 1 = s 13 then goto 00124 ; 00565: c -> a[w] ; A=04000000000015 00566: m1 exch c ; C=04000000000000 M1=04000000000015 00567: jsb 0000 ; 00400: delayed rom 2 ; 00401: if n/c goto 0167 ; 01167: 0 -> s 4 ; 01170: 0 -> s 0 ; 01171: 0 -> s 14 ; 01172: 0 -> s 6 ; 01173: 0 -> s 7 ; 01174: 0 -> s 8 ; 01175: 0 -> s 10 ; 01176: 0 -> s 13 ; 01177: return ; 00570: 0 -> s 3 ; 00571: if 0 = s 3 then goto 00300 ; 00573: delayed rom 12 ; 00574: if n/c goto 0021 ; 06021: m1 -> c ; C=04000000000015 06022: c -> a[x] ; 06023: 0 -> a[xs] ; 06024: b -> c[w] ; C=04000000000000 06025: p <- 12 ; P=12 06026: 0 -> s 11 ; 06027: a -> rom address ; 06001: if n/c goto 0030 ; 06030: delayed rom 14 ; 06031: if n/c goto 0163 ; 07163: jsb 0014 ; 07014: a exchange c[x] ; A=04000000000000 C=04000000000015 07015: c -> a[w] ; A=04000000000015 07016: p <- 0 ; P= 0 07017: load constant 10 ; C=0400000000001A P=13 07020: decimal ; 07021: if a >= c[x] then goto 01025 ; 07023: b -> c[w] ; C=04000000000000 07024: return ; 07164: delayed rom 15 ; 07165: if n/c goto 0000 ; 07400: if 1 = s 12 then goto 01417 ; 07417: jsb 0142 ; 07542: p <- 1 ; P= 1 07543: binary ; 07544: load constant 1 ; C=04000000000010 P= 0 07545: c -> addr ; 07546: data register -> c 14 ; C=04FFFFFFFFFFF0 07547: a exchange c[p] ; A=04000000000010 C=04FFFFFFFFFFF5 07550: f exch a ; 07551: a exchange c[p] ; A=04000000000015 C=04FFFFFFFFFFF0 07552: p <- 13 ; P=13 07553: if c[s] = 0 then goto 01601 ; 07601: binary ; 07602: return ; 07420: if 1 = s 4 then goto 01510 ; 07422: p <- 1 ; P= 1 07423: c + 1 -> c[p] ; C=04FFFFFFFFFF00 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=40000000000150 07426: p + 1 -> p ; P= 2 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=04FFFFFFFFF000 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000000001500 07426: p + 1 -> p ; P= 3 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=04FFFFFFFF0000 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000000015000 07426: p + 1 -> p ; P= 4 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=04FFFFFFF00000 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000000150000 07426: p + 1 -> p ; P= 5 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=04FFFFFF000000 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000001500000 07426: p + 1 -> p ; P= 6 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=04FFFFF0000000 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000015000000 07426: p + 1 -> p ; P= 7 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=04FFFF00000000 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000150000000 07426: p + 1 -> p ; P= 8 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=04FFF000000000 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00001500000000 07426: p + 1 -> p ; P= 9 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=04FF0000000000 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00015000000000 07426: p + 1 -> p ; P=10 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=04F00000000000 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00150000000000 07426: p + 1 -> p ; P=11 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=04000000000000 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=01500000000000 07426: p + 1 -> p ; P=12 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=05000000000000 07424: if n/c goto 0051 ; 07451: c - 1 -> c[p] ; C=04000000000000 07452: if p # 3 then goto 01457 ; 07457: if 1 = s 7 then goto 01431 ; 07461: f exch a ; 07462: a + 1 -> a[x] ; A=01500000000001 07463: f exch a ; A=01500000000000 07464: if n/c goto 0031 ; 07431: p - 1 -> p ; P=11 07432: a exchange c[wp] ; A=01000000000000 C=04500000000000 07433: p - 1 -> p ; P=10 07434: c -> a[w] ; A=04500000000000 07435: c - 1 -> c[wp] ; C=045FFFFFFFFFFF 07436: a exchange c[x] ; A=04500000000FFF C=045FFFFFFFF000 07437: if a[m] # 0 then goto 01465 ; 07465: jsb 0067 ; 07467: a exchange b[x] ; A=04500000000000 B=04000000000FFF 07470: decimal ; 07471: 0 -> a[x] ; 07472: f -> a ; A=04500000000001 07473: a + c -> c[x] ; C=045FFFFFFFF001 07474: p <- 12 ; P=12 07475: if c[p] # 0 then goto 01505 ; 07505: a exchange b[x] ; A=04500000000FFF B=04000000000001 07506: binary ; 07507: return ; 07466: if n/c goto 0041 ; 07441: a exchange c[ms] ; A=045FFFFFFFFFFF C=04500000000001 07442: b exchange c[w] ; B=04500000000001 C=04000000000001 07443: b -> c[w] ; C=04500000000001 07444: jsb 0203 ; 07603: if 0 = s 4 then goto 01607 ; 07607: f -> a ; A=045FFFFFFFFFF1 07610: binary ; 07611: if 0 = s 7 then goto 01617 ; 07617: p <- 1 ; P= 1 07620: load constant 1 ; C=04500000000011 P= 0 07621: c -> addr ; 07622: a exchange c[w] ; A=04500000000011 C=045FFFFFFFFFF1 07623: c -> data register 14 ; 07624: a exchange c[w] ; A=045FFFFFFFFFF1 C=04500000000011 07625: c -> a[s] ; 07626: return ; 07445: b -> c[w] ; C=04500000000001 07446: jsb 0347 ; 07747: p <- 1 ; P= 1 07750: load constant 2 ; C=04500000000021 P= 0 07751: c -> addr ; 07752: b -> c[w] ; C=04500000000001 07753: c -> data register 15 ; 07754: return ; 07447: delayed rom 0 ; 07450: if n/c goto 0063 ; 00063: jsb 0323 ; 00323: p <- 1 ; P= 1 00324: load constant 2 ; C=04500000000021 P= 0 00325: c -> addr ; 00326: data register -> c 15 ; C=04500000000001 00327: b exchange c[w] ; 00330: return ; 00064: if n/c goto 0114 ; 00114: jsb 0315 ; 00315: if 1 = s 2 then goto 00321 ; 00317: if 0 = s 1 then goto 00322 ; 00322: return ; 00115: binary ; 00116: delayed rom 2 ; 00117: jsb 0167 ; 01167: 0 -> s 4 ; 01170: 0 -> s 0 ; 01171: 0 -> s 14 ; 01172: 0 -> s 6 ; 01173: 0 -> s 7 ; 01174: 0 -> s 8 ; 01175: 0 -> s 10 ; 01176: 0 -> s 13 ; 01177: return ; 00120: b -> c[w] ; 00121: if 1 = s 2 then goto 00223 ; 00123: 0 -> s 1 ; 00124: 0 -> s 11 ; 00125: 0 -> c[s] ; 00126: m1 exch c ; C=04000000000015 M1=04500000000001 00127: b -> c[w] ; C=04500000000001 00130: 0 -> s 3 ; 00131: if 0 = s 3 then goto 00232 ; 00133: if 0 = s 12 then goto 00140 ; 00135: delayed rom 7 ; 00136: jsb 0360 ; 03760: a exchange c[w] ; A=04500000000001 C=045FFFFFFFFFF1 03761: p <- 1 ; P= 1 03762: load constant 1 ; C=045FFFFFFFFF11 P= 0 03763: c -> addr ; 03764: data register -> c 14 ; C=045FFFFFFFFFF1 03765: decimal ; 03766: p <- 13 ; P=13 03767: c + c -> c[s] ; 03770: if n/c goto 0373 ; 03773: load constant 0 ; P=12 03774: a exchange c[w] ; A=045FFFFFFFFFF1 C=04500000000001 03775: binary ; 03776: return ; 00137: if n/c goto 0142 ; 00142: delayed rom 2 ; 00143: jsb 0371 ; 01371: if n/c goto 0060 ; 01060: b exchange c[w] ; 01061: binary ; 01062: 0 -> c[w] ; C=00000000000000 01063: p <- 13 ; P=13 01064: load constant 2 ; C=20000000000000 P=12 01065: load constant 9 ; C=29000000000000 P=11 01066: b exchange c[w] ; B=29000000000000 C=04500000000001 01067: p <- 0 ; P= 0 01070: if n/c goto 0073 ; 01073: if a[p] # 0 then goto 01071 ; 01071: shift right b[m] ; B=20900000000000 01072: a - 1 -> a[p] ; A=045FFFFFFFFFF0 01073: if a[p] # 0 then goto 01071 ; 01075: p <- 1 ; P= 1 01076: a + 1 -> a[p] ; A=045FFFFFFFFF00 01077: if n/c goto 0116 ; 01100: p <- 12 ; P=12 01101: if b[p] = 0 then goto 01110 ; 01110: a + 1 -> a[p] ; A=055FFFFFFFFF00 01111: if n/c goto 0113 ; 01113: a - 1 -> a[p] ; A=045FFFFFFFFF00 01114: p - 1 -> p ; P=11 01115: if n/c goto 0101 ; 01101: if b[p] = 0 then goto 01110 ; 01103: a + 1 -> a[p] ; A=046FFFFFFFFF00 01104: if n/c goto 0106 ; 01106: a - 1 -> a[p] ; A=045FFFFFFFFF00 01107: return ; 00144: cpu woodstock ; 00145: display off ; 00146: display toggle ; 00147: 0 -> s 15 ; S=...3.5...9..C... 00150: if 1 = s 15 then goto 00147 ; Breakpoint 1 at 00152 >>> ts 00152: 0 -> s 1 ; S=...3.5...9..C..F 00153: 0 -> s 3 ; 00154: if 0 = s 3 then goto 00163 ; 00156: if 0 = s 11 then goto 00165 ; 00165: 0 -> s 5 ; 00166: if 1 = s 5 then goto 00173 ; 00173: if 0 = s 15 then goto 00152 ; 00175: display off ; >>> ts,152 00176: b exchange c[w] ; B=04500000000001 C=20900000000000 00177: keys to a ; A=045FFFFFFFF910 00200: 0 -> s 13 ; 00201: binary ; 00202: 0 -> c[x] ; 00203: c + 1 -> c[x] ; C=20900000000001 00204: a - 1 -> a[xs] ; A=045FFFFFFFF810 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000002 00204: a - 1 -> a[xs] ; A=045FFFFFFFF710 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000003 00204: a - 1 -> a[xs] ; A=045FFFFFFFF610 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000004 00204: a - 1 -> a[xs] ; A=045FFFFFFFF510 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000005 00204: a - 1 -> a[xs] ; A=045FFFFFFFF410 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000006 00204: a - 1 -> a[xs] ; A=045FFFFFFFF310 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000007 00204: a - 1 -> a[xs] ; A=045FFFFFFFF210 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000008 00204: a - 1 -> a[xs] ; A=045FFFFFFFF110 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000009 00204: a - 1 -> a[xs] ; A=045FFFFFFFF010 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=2090000000000A 00204: a - 1 -> a[xs] ; A=045FFFFFFFFF10 00205: if n/c goto 0203 ; 00206: c - 1 -> c[x] ; C=20900000000009 00207: 0 -> a[xs] ; A=045FFFFFFFF010 00210: shift right a[x] ; A=045FFFFFFFF001 00211: a + c -> a[x] ; A=045FFFFFFFF00A 00212: c + c -> c[x] ; C=20900000000012 00213: c + c -> c[x] ; C=20900000000024 00214: a + c -> a[x] ; A=045FFFFFFFF02E 00215: shift left a[x] ; A=045FFFFFFFF2E0 00216: p <- 1 ; P= 1 00217: m1 -> c ; C=04500000000001 00220: 0 -> c[x] ; C=04500000000000 00221: delayed rom 1 ; 00222: a -> rom address ; key_dot: 00456: if n/c goto 0002 ; 00402: if 0 = s 4 then goto 00407 ; 00407: if 0 = s 7 then goto 00404 ; 00404: load constant 1 ; C=04500000000010 P= 0 00405: load constant 10 ; C=0450000000001A P=13 00406: if n/c goto 0153 ; 00553: p <- 1 ; P= 1 00554: if 0 = s 4 then goto 00562 ; 00562: jsb 0000 ; 00400: delayed rom 2 ; 00401: if n/c goto 0167 ; 01167: 0 -> s 4 ; 01170: 0 -> s 0 ; 01171: 0 -> s 14 ; 01172: 0 -> s 6 ; 01173: 0 -> s 7 ; 01174: 0 -> s 8 ; 01175: 0 -> s 10 ; 01176: 0 -> s 13 ; 01177: return ; 00563: if 1 = s 13 then goto 00124 ; 00565: c -> a[w] ; A=0450000000001A 00566: m1 exch c ; C=04500000000001 M1=0450000000001A 00567: jsb 0000 ; 00400: delayed rom 2 ; 00401: if n/c goto 0167 ; 01167: 0 -> s 4 ; 01170: 0 -> s 0 ; 01171: 0 -> s 14 ; 01172: 0 -> s 6 ; 01173: 0 -> s 7 ; 01174: 0 -> s 8 ; 01175: 0 -> s 10 ; 01176: 0 -> s 13 ; 01177: return ; 00570: 0 -> s 3 ; 00571: if 0 = s 3 then goto 00300 ; 00573: delayed rom 12 ; 00574: if n/c goto 0021 ; 06021: m1 -> c ; C=0450000000001A 06022: c -> a[x] ; 06023: 0 -> a[xs] ; 06024: b -> c[w] ; C=04500000000001 06025: p <- 12 ; P=12 06026: 0 -> s 11 ; 06027: a -> rom address ; 06001: if n/c goto 0030 ; 06030: delayed rom 14 ; 06031: if n/c goto 0163 ; 07163: jsb 0014 ; 07014: a exchange c[x] ; A=04500000000001 C=0450000000001A 07015: c -> a[w] ; A=0450000000001A 07016: p <- 0 ; P= 0 07017: load constant 10 ; P=13 07020: decimal ; 07021: if a >= c[x] then goto 01025 ; 07025: shift left a[w] ; A=450000000001A0 07026: b -> c[w] ; C=04500000000001 07027: a -> rom address ; 07032: if n/c goto 0070 ; 07070: delayed rom 15 ; 07071: if n/c goto 0227 ; 07627: if 1 = s 12 then goto 01635 ; 07635: jsb 0142 ; 07542: p <- 1 ; P= 1 07543: binary ; 07544: load constant 1 ; C=04500000000011 P= 0 07545: c -> addr ; 07546: data register -> c 14 ; C=045FFFFFFFFFF1 07547: a exchange c[p] ; A=450000000001A1 C=045FFFFFFFFFF0 07550: f exch a ; 07551: a exchange c[p] ; A=450000000001A0 C=045FFFFFFFFFF1 07552: p <- 13 ; P=13 07553: if c[s] = 0 then goto 01601 ; 07601: binary ; 07602: return ; 07636: 1 -> s 7 ; S=...3.5.7.9..C..F 07637: a exchange c[w] ; A=045FFFFFFFFFF1 C=450000000001A0 07640: b -> c[w] ; C=04500000000001 07641: if 0 = s 4 then goto 01444 ; 07444: jsb 0203 ; 07603: if 0 = s 4 then goto 01607 ; 07607: f -> a ; 07610: binary ; 07611: if 0 = s 7 then goto 01617 ; 07613: a + 1 -> a[s] ; A=145FFFFFFFFFF1 07614: if 0 = s 4 then goto 01617 ; 07617: p <- 1 ; P= 1 07620: load constant 1 ; C=04500000000011 P= 0 07621: c -> addr ; 07622: a exchange c[w] ; A=04500000000011 C=145FFFFFFFFFF1 07623: c -> data register 14 ; 07624: a exchange c[w] ; A=145FFFFFFFFFF1 C=04500000000011 07625: c -> a[s] ; A=045FFFFFFFFFF1 07626: return ; 07445: b -> c[w] ; C=04500000000001 07446: jsb 0347 ; 07747: p <- 1 ; P= 1 07750: load constant 2 ; C=04500000000021 P= 0 07751: c -> addr ; 07752: b -> c[w] ; C=04500000000001 07753: c -> data register 15 ; 07754: return ; 07447: delayed rom 0 ; 07450: if n/c goto 0063 ; 00063: jsb 0323 ; 00323: p <- 1 ; P= 1 00324: load constant 2 ; C=04500000000021 P= 0 00325: c -> addr ; 00326: data register -> c 15 ; C=04500000000001 00327: b exchange c[w] ; 00330: return ; 00064: if n/c goto 0114 ; 00114: jsb 0315 ; 00315: if 1 = s 2 then goto 00321 ; 00317: if 0 = s 1 then goto 00322 ; 00322: return ; 00115: binary ; 00116: delayed rom 2 ; 00117: jsb 0167 ; 01167: 0 -> s 4 ; 01170: 0 -> s 0 ; 01171: 0 -> s 14 ; 01172: 0 -> s 6 ; 01173: 0 -> s 7 ; S=...3.5...9..C..F 01174: 0 -> s 8 ; 01175: 0 -> s 10 ; 01176: 0 -> s 13 ; 01177: return ; 00120: b -> c[w] ; 00121: if 1 = s 2 then goto 00223 ; 00123: 0 -> s 1 ; 00124: 0 -> s 11 ; 00125: 0 -> c[s] ; 00126: m1 exch c ; C=0450000000001A M1=04500000000001 00127: b -> c[w] ; C=04500000000001 00130: 0 -> s 3 ; 00131: if 0 = s 3 then goto 00232 ; 00133: if 0 = s 12 then goto 00140 ; 00135: delayed rom 7 ; 00136: jsb 0360 ; 03760: a exchange c[w] ; A=04500000000001 C=045FFFFFFFFFF1 03761: p <- 1 ; P= 1 03762: load constant 1 ; C=045FFFFFFFFF11 P= 0 03763: c -> addr ; 03764: data register -> c 14 ; C=145FFFFFFFFFF1 03765: decimal ; 03766: p <- 13 ; P=13 03767: c + c -> c[s] ; C=245FFFFFFFFFF1 03770: if n/c goto 0373 ; 03773: load constant 0 ; C=045FFFFFFFFFF1 P=12 03774: a exchange c[w] ; A=045FFFFFFFFFF1 C=04500000000001 03775: binary ; 03776: return ; 00137: if n/c goto 0142 ; 00142: delayed rom 2 ; 00143: jsb 0371 ; 01371: if n/c goto 0060 ; 01060: b exchange c[w] ; 01061: binary ; 01062: 0 -> c[w] ; C=00000000000000 01063: p <- 13 ; P=13 01064: load constant 2 ; C=20000000000000 P=12 01065: load constant 9 ; C=29000000000000 P=11 01066: b exchange c[w] ; B=29000000000000 C=04500000000001 01067: p <- 0 ; P= 0 01070: if n/c goto 0073 ; 01073: if a[p] # 0 then goto 01071 ; 01071: shift right b[m] ; B=20900000000000 01072: a - 1 -> a[p] ; A=045FFFFFFFFFF0 01073: if a[p] # 0 then goto 01071 ; 01075: p <- 1 ; P= 1 01076: a + 1 -> a[p] ; A=045FFFFFFFFF00 01077: if n/c goto 0116 ; 01100: p <- 12 ; P=12 01101: if b[p] = 0 then goto 01110 ; 01110: a + 1 -> a[p] ; A=055FFFFFFFFF00 01111: if n/c goto 0113 ; 01113: a - 1 -> a[p] ; A=045FFFFFFFFF00 01114: p - 1 -> p ; P=11 01115: if n/c goto 0101 ; 01101: if b[p] = 0 then goto 01110 ; 01103: a + 1 -> a[p] ; A=046FFFFFFFFF00 01104: if n/c goto 0106 ; 01106: a - 1 -> a[p] ; A=045FFFFFFFFF00 01107: return ; 00144: cpu woodstock ; 00145: display off ; 00146: display toggle ; 00147: 0 -> s 15 ; S=...3.5...9..C... 00150: if 1 = s 15 then goto 00147 ; Breakpoint 1 at 00152 >>> ts 00152: 0 -> s 1 ; S=...3.5...9..C..F 00153: 0 -> s 3 ; 00154: if 0 = s 3 then goto 00163 ; 00156: if 0 = s 11 then goto 00165 ; 00165: 0 -> s 5 ; 00166: if 1 = s 5 then goto 00173 ; 00173: if 0 = s 15 then goto 00152 ; 00175: display off ; >>> ts,152 00176: b exchange c[w] ; B=04500000000001 C=20900000000000 00177: keys to a ; A=045FFFFFFFFA00 00200: 0 -> s 13 ; 00201: binary ; 00202: 0 -> c[x] ; 00203: c + 1 -> c[x] ; C=20900000000001 00204: a - 1 -> a[xs] ; A=045FFFFFFFF900 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000002 00204: a - 1 -> a[xs] ; A=045FFFFFFFF800 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000003 00204: a - 1 -> a[xs] ; A=045FFFFFFFF700 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000004 00204: a - 1 -> a[xs] ; A=045FFFFFFFF600 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000005 00204: a - 1 -> a[xs] ; A=045FFFFFFFF500 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000006 00204: a - 1 -> a[xs] ; A=045FFFFFFFF400 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000007 00204: a - 1 -> a[xs] ; A=045FFFFFFFF300 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000008 00204: a - 1 -> a[xs] ; A=045FFFFFFFF200 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000009 00204: a - 1 -> a[xs] ; A=045FFFFFFFF100 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=2090000000000A 00204: a - 1 -> a[xs] ; A=045FFFFFFFF000 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=2090000000000B 00204: a - 1 -> a[xs] ; A=045FFFFFFFFF00 00205: if n/c goto 0203 ; 00206: c - 1 -> c[x] ; C=2090000000000A 00207: 0 -> a[xs] ; A=045FFFFFFFF000 00210: shift right a[x] ; 00211: a + c -> a[x] ; A=045FFFFFFFF00A 00212: c + c -> c[x] ; C=20900000000014 00213: c + c -> c[x] ; C=20900000000028 00214: a + c -> a[x] ; A=045FFFFFFFF032 00215: shift left a[x] ; A=045FFFFFFFF320 00216: p <- 1 ; P= 1 00217: m1 -> c ; C=04500000000001 00220: 0 -> c[x] ; C=04500000000000 00221: delayed rom 1 ; 00222: a -> rom address ; key_6: 00462: if n/c goto 0021 ; 00421: c + 1 -> c[x] ; C=04500000000001 00422: 1 -> s 13 ; S=...3.5...9..CD.F 00423: if n/c goto 0063 ; 00463: c + 1 -> c[x] ; C=04500000000002 00464: if n/c goto 0042 ; 00442: c + 1 -> c[x] ; C=04500000000003 00443: c + 1 -> c[x] ; C=04500000000004 00444: c + 1 -> c[x] ; C=04500000000005 00445: if n/c goto 0332 ; 00732: c + 1 -> c[x] ; C=04500000000006 00733: if 1 = s 4 then goto 00745 ; 00735: if 1 = s 7 then goto 00747 ; 00737: if 1 = s 6 then goto 00756 ; 00741: if 1 = s 8 then goto 01045 ; 00743: if 1 = s 10 then goto 00747 ; 00745: c + 1 -> c[p] ; C=04500000000016 00746: if n/c goto 0153 ; 00553: p <- 1 ; 00554: if 0 = s 4 then goto 00562 ; 00562: jsb 0000 ; 00400: delayed rom 2 ; 00401: if n/c goto 0167 ; 01167: 0 -> s 4 ; 01170: 0 -> s 0 ; 01171: 0 -> s 14 ; 01172: 0 -> s 6 ; 01173: 0 -> s 7 ; 01174: 0 -> s 8 ; 01175: 0 -> s 10 ; 01176: 0 -> s 13 ; S=...3.5...9..C..F 01177: return ; 00563: if 1 = s 13 then goto 00124 ; 00565: c -> a[w] ; A=04500000000016 00566: m1 exch c ; C=04500000000001 M1=04500000000016 00567: jsb 0000 ; 00400: delayed rom 2 ; 00401: if n/c goto 0167 ; 01167: 0 -> s 4 ; 01170: 0 -> s 0 ; 01171: 0 -> s 14 ; 01172: 0 -> s 6 ; 01173: 0 -> s 7 ; 01174: 0 -> s 8 ; 01175: 0 -> s 10 ; 01176: 0 -> s 13 ; 01177: return ; 00570: 0 -> s 3 ; 00571: if 0 = s 3 then goto 00300 ; 00573: delayed rom 12 ; 00574: if n/c goto 0021 ; 06021: m1 -> c ; C=04500000000016 06022: c -> a[x] ; 06023: 0 -> a[xs] ; 06024: b -> c[w] ; C=04500000000001 06025: p <- 12 ; P=12 06026: 0 -> s 11 ; 06027: a -> rom address ; 06001: if n/c goto 0030 ; 06030: delayed rom 14 ; 06031: if n/c goto 0163 ; 07163: jsb 0014 ; 07014: a exchange c[x] ; A=04500000000001 C=04500000000016 07015: c -> a[w] ; A=04500000000016 07016: p <- 0 ; P= 0 07017: load constant 10 ; C=0450000000001A P=13 07020: decimal ; 07021: if a >= c[x] then goto 01025 ; 07023: b -> c[w] ; C=04500000000001 07024: return ; 07164: delayed rom 15 ; 07165: if n/c goto 0000 ; 07400: if 1 = s 12 then goto 01417 ; 07417: jsb 0142 ; 07542: p <- 1 ; P= 1 07543: binary ; 07544: load constant 1 ; C=04500000000011 P= 0 07545: c -> addr ; 07546: data register -> c 14 ; C=145FFFFFFFFFF1 07547: a exchange c[p] ; A=04500000000011 C=145FFFFFFFFFF6 07550: f exch a ; 07551: a exchange c[p] ; A=04500000000016 C=145FFFFFFFFFF1 07552: p <- 13 ; P=13 07553: if c[s] = 0 then goto 01601 ; 07555: c - 1 -> c[s] ; C=045FFFFFFFFFF1 07556: if c[s] # 0 then goto 01562 ; 07560: 1 -> s 7 ; S=...3.5.7.9..C..F 07561: if n/c goto 0201 ; 07601: binary ; 07602: return ; 07420: if 1 = s 4 then goto 01510 ; 07422: p <- 1 ; P= 1 07423: c + 1 -> c[p] ; C=045FFFFFFFFF01 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=45000000000160 07426: p + 1 -> p ; P= 2 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=045FFFFFFFF001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=50000000001600 07426: p + 1 -> p ; P= 3 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=045FFFFFFF0001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000000016000 07426: p + 1 -> p ; P= 4 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=045FFFFFF00001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000000160000 07426: p + 1 -> p ; P= 5 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=045FFFFF000001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000001600000 07426: p + 1 -> p ; P= 6 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=045FFFF0000001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000016000000 07426: p + 1 -> p ; P= 7 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=045FFF00000001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000160000000 07426: p + 1 -> p ; P= 8 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=045FF000000001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00001600000000 07426: p + 1 -> p ; P= 9 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=045F0000000001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00016000000000 07426: p + 1 -> p ; P=10 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=04500000000001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00160000000000 07426: p + 1 -> p ; P=11 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=04600000000001 07424: if n/c goto 0051 ; 07451: c - 1 -> c[p] ; C=04500000000001 07452: if p # 3 then goto 01457 ; 07457: if 1 = s 7 then goto 01431 ; 07431: p - 1 -> p ; P=10 07432: a exchange c[wp] ; A=00100000000001 C=04560000000000 07433: p - 1 -> p ; P= 9 07434: c -> a[w] ; A=04560000000000 07435: c - 1 -> c[wp] ; C=0456FFFFFFFFFF 07436: a exchange c[x] ; A=04560000000FFF C=0456FFFFFFF000 07437: if a[m] # 0 then goto 01465 ; 07465: jsb 0067 ; 07467: a exchange b[x] ; A=04560000000001 B=04500000000FFF 07470: decimal ; 07471: 0 -> a[x] ; A=04560000000000 07472: f -> a ; A=04560000000001 07473: a + c -> c[x] ; C=0456FFFFFFF001 07474: p <- 12 ; P=12 07475: if c[p] # 0 then goto 01505 ; 07505: a exchange b[x] ; A=04560000000FFF B=04500000000001 07506: binary ; 07507: return ; 07466: if n/c goto 0041 ; 07441: a exchange c[ms] ; A=0456FFFFFFFFFF C=04560000000001 07442: b exchange c[w] ; B=04560000000001 C=04500000000001 07443: b -> c[w] ; C=04560000000001 07444: jsb 0203 ; 07603: if 0 = s 4 then goto 01607 ; 07607: f -> a ; A=0456FFFFFFFFF1 07610: binary ; 07611: if 0 = s 7 then goto 01617 ; 07613: a + 1 -> a[s] ; A=1456FFFFFFFFF1 07614: if 0 = s 4 then goto 01617 ; 07617: p <- 1 ; P= 1 07620: load constant 1 ; C=04560000000011 P= 0 07621: c -> addr ; 07622: a exchange c[w] ; A=04560000000011 C=1456FFFFFFFFF1 07623: c -> data register 14 ; 07624: a exchange c[w] ; A=1456FFFFFFFFF1 C=04560000000011 07625: c -> a[s] ; A=0456FFFFFFFFF1 07626: return ; 07445: b -> c[w] ; C=04560000000001 07446: jsb 0347 ; 07747: p <- 1 ; P= 1 07750: load constant 2 ; C=04560000000021 P= 0 07751: c -> addr ; 07752: b -> c[w] ; C=04560000000001 07753: c -> data register 15 ; 07754: return ; 07447: delayed rom 0 ; 07450: if n/c goto 0063 ; 00063: jsb 0323 ; 00323: p <- 1 ; P= 1 00324: load constant 2 ; C=04560000000021 P= 0 00325: c -> addr ; 00326: data register -> c 15 ; C=04560000000001 00327: b exchange c[w] ; 00330: return ; 00064: if n/c goto 0114 ; 00114: jsb 0315 ; 00315: if 1 = s 2 then goto 00321 ; 00317: if 0 = s 1 then goto 00322 ; 00322: return ; 00115: binary ; 00116: delayed rom 2 ; 00117: jsb 0167 ; 01167: 0 -> s 4 ; 01170: 0 -> s 0 ; 01171: 0 -> s 14 ; 01172: 0 -> s 6 ; 01173: 0 -> s 7 ; S=...3.5...9..C..F 01174: 0 -> s 8 ; 01175: 0 -> s 10 ; 01176: 0 -> s 13 ; 01177: return ; 00120: b -> c[w] ; 00121: if 1 = s 2 then goto 00223 ; 00123: 0 -> s 1 ; 00124: 0 -> s 11 ; 00125: 0 -> c[s] ; 00126: m1 exch c ; C=04500000000016 M1=04560000000001 00127: b -> c[w] ; C=04560000000001 00130: 0 -> s 3 ; 00131: if 0 = s 3 then goto 00232 ; 00133: if 0 = s 12 then goto 00140 ; 00135: delayed rom 7 ; 00136: jsb 0360 ; 03760: a exchange c[w] ; A=04560000000001 C=0456FFFFFFFFF1 03761: p <- 1 ; P= 1 03762: load constant 1 ; C=0456FFFFFFFF11 P= 0 03763: c -> addr ; 03764: data register -> c 14 ; C=1456FFFFFFFFF1 03765: decimal ; 03766: p <- 13 ; P=13 03767: c + c -> c[s] ; C=2456FFFFFFFFF1 03770: if n/c goto 0373 ; 03773: load constant 0 ; C=0456FFFFFFFFF1 P=12 03774: a exchange c[w] ; A=0456FFFFFFFFF1 C=04560000000001 03775: binary ; 03776: return ; 00137: if n/c goto 0142 ; 00142: delayed rom 2 ; 00143: jsb 0371 ; 01371: if n/c goto 0060 ; 01060: b exchange c[w] ; 01061: binary ; 01062: 0 -> c[w] ; C=00000000000000 01063: p <- 13 ; P=13 01064: load constant 2 ; C=20000000000000 P=12 01065: load constant 9 ; C=29000000000000 P=11 01066: b exchange c[w] ; B=29000000000000 C=04560000000001 01067: p <- 0 ; P= 0 01070: if n/c goto 0073 ; 01073: if a[p] # 0 then goto 01071 ; 01071: shift right b[m] ; B=20900000000000 01072: a - 1 -> a[p] ; A=0456FFFFFFFFF0 01073: if a[p] # 0 then goto 01071 ; 01075: p <- 1 ; P= 1 01076: a + 1 -> a[p] ; A=0456FFFFFFFF00 01077: if n/c goto 0116 ; 01100: p <- 12 ; P=12 01101: if b[p] = 0 then goto 01110 ; 01110: a + 1 -> a[p] ; A=0556FFFFFFFF00 01111: if n/c goto 0113 ; 01113: a - 1 -> a[p] ; A=0456FFFFFFFF00 01114: p - 1 -> p ; P=11 01115: if n/c goto 0101 ; 01101: if b[p] = 0 then goto 01110 ; 01103: a + 1 -> a[p] ; A=0466FFFFFFFF00 01104: if n/c goto 0106 ; 01106: a - 1 -> a[p] ; A=0456FFFFFFFF00 01107: return ; 00144: cpu woodstock ; 00145: display off ; 00146: display toggle ; 00147: 0 -> s 15 ; S=...3.5...9..C... 00150: if 1 = s 15 then goto 00147 ; Breakpoint 1 at 00152 >>> ts 00152: 0 -> s 1 ; S=...3.5...9..C..F 00153: 0 -> s 3 ; 00154: if 0 = s 3 then goto 00163 ; 00156: if 0 = s 11 then goto 00165 ; 00165: 0 -> s 5 ; 00166: if 1 = s 5 then goto 00173 ; 00173: if 0 = s 15 then goto 00152 ; 00175: display off ; >>> ts,152 00176: b exchange c[w] ; B=04560000000001 C=20900000000000 00177: keys to a ; A=0456FFFFFFF620 00200: 0 -> s 13 ; 00201: binary ; 00202: 0 -> c[x] ; 00203: c + 1 -> c[x] ; C=20900000000001 00204: a - 1 -> a[xs] ; A=0456FFFFFFF520 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000002 00204: a - 1 -> a[xs] ; A=0456FFFFFFF420 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000003 00204: a - 1 -> a[xs] ; A=0456FFFFFFF320 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000004 00204: a - 1 -> a[xs] ; A=0456FFFFFFF220 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000005 00204: a - 1 -> a[xs] ; A=0456FFFFFFF120 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000006 00204: a - 1 -> a[xs] ; A=0456FFFFFFF020 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=20900000000007 00204: a - 1 -> a[xs] ; A=0456FFFFFFFF20 00205: if n/c goto 0203 ; 00206: c - 1 -> c[x] ; C=20900000000006 00207: 0 -> a[xs] ; A=0456FFFFFFF020 00210: shift right a[x] ; A=0456FFFFFFF002 00211: a + c -> a[x] ; A=0456FFFFFFF008 00212: c + c -> c[x] ; C=2090000000000C 00213: c + c -> c[x] ; C=20900000000018 00214: a + c -> a[x] ; A=0456FFFFFFF020 00215: shift left a[x] ; A=0456FFFFFFF200 00216: p <- 1 ; P= 1 00217: m1 -> c ; C=04560000000001 00220: 0 -> c[x] ; C=04560000000000 00221: delayed rom 1 ; 00222: a -> rom address ; key_7: 00440: if n/c goto 0020 ; 00420: c + 1 -> c[x] ; C=04560000000001 00421: c + 1 -> c[x] ; C=04560000000002 00422: 1 -> s 13 ; S=...3.5...9..CD.F 00423: if n/c goto 0063 ; 00463: c + 1 -> c[x] ; C=04560000000003 00464: if n/c goto 0042 ; 00442: c + 1 -> c[x] ; C=04560000000004 00443: c + 1 -> c[x] ; C=04560000000005 00444: c + 1 -> c[x] ; C=04560000000006 00445: if n/c goto 0332 ; 00732: c + 1 -> c[x] ; C=04560000000007 00733: if 1 = s 4 then goto 00745 ; 00735: if 1 = s 7 then goto 00747 ; 00737: if 1 = s 6 then goto 00756 ; 00741: if 1 = s 8 then goto 01045 ; 00743: if 1 = s 10 then goto 00747 ; 00745: c + 1 -> c[p] ; C=04560000000017 00746: if n/c goto 0153 ; 00553: p <- 1 ; 00554: if 0 = s 4 then goto 00562 ; 00562: jsb 0000 ; 00400: delayed rom 2 ; 00401: if n/c goto 0167 ; 01167: 0 -> s 4 ; 01170: 0 -> s 0 ; 01171: 0 -> s 14 ; 01172: 0 -> s 6 ; 01173: 0 -> s 7 ; 01174: 0 -> s 8 ; 01175: 0 -> s 10 ; 01176: 0 -> s 13 ; S=...3.5...9..C..F 01177: return ; 00563: if 1 = s 13 then goto 00124 ; 00565: c -> a[w] ; A=04560000000017 00566: m1 exch c ; C=04560000000001 M1=04560000000017 00567: jsb 0000 ; 00400: delayed rom 2 ; 00401: if n/c goto 0167 ; 01167: 0 -> s 4 ; 01170: 0 -> s 0 ; 01171: 0 -> s 14 ; 01172: 0 -> s 6 ; 01173: 0 -> s 7 ; 01174: 0 -> s 8 ; 01175: 0 -> s 10 ; 01176: 0 -> s 13 ; 01177: return ; 00570: 0 -> s 3 ; 00571: if 0 = s 3 then goto 00300 ; 00573: delayed rom 12 ; 00574: if n/c goto 0021 ; 06021: m1 -> c ; C=04560000000017 06022: c -> a[x] ; 06023: 0 -> a[xs] ; 06024: b -> c[w] ; C=04560000000001 06025: p <- 12 ; P=12 06026: 0 -> s 11 ; 06027: a -> rom address ; 06001: if n/c goto 0030 ; 06030: delayed rom 14 ; 06031: if n/c goto 0163 ; 07163: jsb 0014 ; 07014: a exchange c[x] ; A=04560000000001 C=04560000000017 07015: c -> a[w] ; A=04560000000017 07016: p <- 0 ; P= 0 07017: load constant 10 ; C=0456000000001A P=13 07020: decimal ; 07021: if a >= c[x] then goto 01025 ; 07023: b -> c[w] ; C=04560000000001 07024: return ; 07164: delayed rom 15 ; 07165: if n/c goto 0000 ; 07400: if 1 = s 12 then goto 01417 ; 07417: jsb 0142 ; 07542: p <- 1 ; P= 1 07543: binary ; 07544: load constant 1 ; C=04560000000011 P= 0 07545: c -> addr ; 07546: data register -> c 14 ; C=1456FFFFFFFFF1 07547: a exchange c[p] ; A=04560000000011 C=1456FFFFFFFFF7 07550: f exch a ; 07551: a exchange c[p] ; A=04560000000017 C=1456FFFFFFFFF1 07552: p <- 13 ; P=13 07553: if c[s] = 0 then goto 01601 ; 07555: c - 1 -> c[s] ; C=0456FFFFFFFFF1 07556: if c[s] # 0 then goto 01562 ; 07560: 1 -> s 7 ; S=...3.5.7.9..C..F 07561: if n/c goto 0201 ; 07601: binary ; 07602: return ; 07420: if 1 = s 4 then goto 01510 ; 07422: p <- 1 ; P= 1 07423: c + 1 -> c[p] ; C=0456FFFFFFFF01 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=45600000000170 07426: p + 1 -> p ; P= 2 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0456FFFFFFF001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=56000000001700 07426: p + 1 -> p ; P= 3 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0456FFFFFF0001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=60000000017000 07426: p + 1 -> p ; P= 4 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0456FFFFF00001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000000170000 07426: p + 1 -> p ; P= 5 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0456FFFF000001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000001700000 07426: p + 1 -> p ; P= 6 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0456FFF0000001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000017000000 07426: p + 1 -> p ; P= 7 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0456FF00000001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00000170000000 07426: p + 1 -> p ; P= 8 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=0456F000000001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00001700000000 07426: p + 1 -> p ; P= 9 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=04560000000001 07424: if n/c goto 0051 ; 07425: shift left a[w] ; A=00017000000000 07426: p + 1 -> p ; P=10 07427: if p # 13 then goto 01423 ; 07423: c + 1 -> c[p] ; C=04570000000001 07424: if n/c goto 0051 ; 07451: c - 1 -> c[p] ; C=04560000000001 07452: if p # 3 then goto 01457 ; 07457: if 1 = s 7 then goto 01431 ; 07431: p - 1 -> p ; P= 9 07432: a exchange c[wp] ; A=00010000000001 C=04567000000000 07433: p - 1 -> p ; P= 8 07434: c -> a[w] ; A=04567000000000 07435: c - 1 -> c[wp] ; C=04567FFFFFFFFF 07436: a exchange c[x] ; A=04567000000FFF C=04567FFFFFF000 07437: if a[m] # 0 then goto 01465 ; 07465: jsb 0067 ; 07467: a exchange b[x] ; A=04567000000001 B=04560000000FFF 07470: decimal ; 07471: 0 -> a[x] ; A=04567000000000 07472: f -> a ; A=04567000000001 07473: a + c -> c[x] ; C=04567FFFFFF001 07474: p <- 12 ; P=12 07475: if c[p] # 0 then goto 01505 ; 07505: a exchange b[x] ; A=04567000000FFF B=04560000000001 07506: binary ; 07507: return ; 07466: if n/c goto 0041 ; 07441: a exchange c[ms] ; A=04567FFFFFFFFF C=04567000000001 07442: b exchange c[w] ; B=04567000000001 C=04560000000001 07443: b -> c[w] ; C=04567000000001 07444: jsb 0203 ; 07603: if 0 = s 4 then goto 01607 ; 07607: f -> a ; A=04567FFFFFFFF1 07610: binary ; 07611: if 0 = s 7 then goto 01617 ; 07613: a + 1 -> a[s] ; A=14567FFFFFFFF1 07614: if 0 = s 4 then goto 01617 ; 07617: p <- 1 ; P= 1 07620: load constant 1 ; C=04567000000011 P= 0 07621: c -> addr ; 07622: a exchange c[w] ; A=04567000000011 C=14567FFFFFFFF1 07623: c -> data register 14 ; 07624: a exchange c[w] ; A=14567FFFFFFFF1 C=04567000000011 07625: c -> a[s] ; A=04567FFFFFFFF1 07626: return ; 07445: b -> c[w] ; C=04567000000001 07446: jsb 0347 ; 07747: p <- 1 ; P= 1 07750: load constant 2 ; C=04567000000021 P= 0 07751: c -> addr ; 07752: b -> c[w] ; C=04567000000001 07753: c -> data register 15 ; 07754: return ; 07447: delayed rom 0 ; 07450: if n/c goto 0063 ; 00063: jsb 0323 ; 00323: p <- 1 ; P= 1 00324: load constant 2 ; C=04567000000021 P= 0 00325: c -> addr ; 00326: data register -> c 15 ; C=04567000000001 00327: b exchange c[w] ; 00330: return ; 00064: if n/c goto 0114 ; 00114: jsb 0315 ; 00315: if 1 = s 2 then goto 00321 ; 00317: if 0 = s 1 then goto 00322 ; 00322: return ; 00115: binary ; 00116: delayed rom 2 ; 00117: jsb 0167 ; 01167: 0 -> s 4 ; 01170: 0 -> s 0 ; 01171: 0 -> s 14 ; 01172: 0 -> s 6 ; 01173: 0 -> s 7 ; S=...3.5...9..C..F 01174: 0 -> s 8 ; 01175: 0 -> s 10 ; 01176: 0 -> s 13 ; 01177: return ; 00120: b -> c[w] ; 00121: if 1 = s 2 then goto 00223 ; 00123: 0 -> s 1 ; 00124: 0 -> s 11 ; 00125: 0 -> c[s] ; 00126: m1 exch c ; C=04560000000017 M1=04567000000001 00127: b -> c[w] ; C=04567000000001 00130: 0 -> s 3 ; 00131: if 0 = s 3 then goto 00232 ; 00133: if 0 = s 12 then goto 00140 ; 00135: delayed rom 7 ; 00136: jsb 0360 ; 03760: a exchange c[w] ; A=04567000000001 C=04567FFFFFFFF1 03761: p <- 1 ; P= 1 03762: load constant 1 ; C=04567FFFFFFF11 P= 0 03763: c -> addr ; 03764: data register -> c 14 ; C=14567FFFFFFFF1 03765: decimal ; 03766: p <- 13 ; P=13 03767: c + c -> c[s] ; C=24567FFFFFFFF1 03770: if n/c goto 0373 ; 03773: load constant 0 ; C=04567FFFFFFFF1 P=12 03774: a exchange c[w] ; A=04567FFFFFFFF1 C=04567000000001 03775: binary ; 03776: return ; 00137: if n/c goto 0142 ; 00142: delayed rom 2 ; 00143: jsb 0371 ; 01371: if n/c goto 0060 ; 01060: b exchange c[w] ; 01061: binary ; 01062: 0 -> c[w] ; C=00000000000000 01063: p <- 13 ; P=13 01064: load constant 2 ; C=20000000000000 P=12 01065: load constant 9 ; C=29000000000000 P=11 01066: b exchange c[w] ; B=29000000000000 C=04567000000001 01067: p <- 0 ; P= 0 01070: if n/c goto 0073 ; 01073: if a[p] # 0 then goto 01071 ; 01071: shift right b[m] ; B=20900000000000 01072: a - 1 -> a[p] ; A=04567FFFFFFFF0 01073: if a[p] # 0 then goto 01071 ; 01075: p <- 1 ; P= 1 01076: a + 1 -> a[p] ; A=04567FFFFFFF00 01077: if n/c goto 0116 ; 01100: p <- 12 ; P=12 01101: if b[p] = 0 then goto 01110 ; 01110: a + 1 -> a[p] ; A=05567FFFFFFF00 01111: if n/c goto 0113 ; 01113: a - 1 -> a[p] ; A=04567FFFFFFF00 01114: p - 1 -> p ; P=11 01115: if n/c goto 0101 ; 01101: if b[p] = 0 then goto 01110 ; 01103: a + 1 -> a[p] ; A=04667FFFFFFF00 01104: if n/c goto 0106 ; 01106: a - 1 -> a[p] ; A=04567FFFFFFF00 01107: return ; 00144: cpu woodstock ; 00145: display off ; 00146: display toggle ; 00147: 0 -> s 15 ; S=...3.5...9..C... 00150: if 1 = s 15 then goto 00147 ; Breakpoint 1 at 00152 >>> q