HP29w Ver 0.02 Copyright 2018 Greg Sydney-Smith CPU speed is 200 kHz >>> g,152 Breakpoint 1 at 00152 >>> ts 00152: 0 -> s 1 ; S=...3.5...9.....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=00000000000000 C=29000000000000 00177: keys to a ; A=0000FFFFFFFB10 00200: 0 -> s 13 ; 00201: binary ; 00202: 0 -> c[x] ; 00203: c + 1 -> c[x] ; C=29000000000001 00204: a - 1 -> a[xs] ; A=0000FFFFFFFA10 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000002 00204: a - 1 -> a[xs] ; A=0000FFFFFFF910 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000003 00204: a - 1 -> a[xs] ; A=0000FFFFFFF810 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000004 00204: a - 1 -> a[xs] ; A=0000FFFFFFF710 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000005 00204: a - 1 -> a[xs] ; A=0000FFFFFFF610 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000006 00204: a - 1 -> a[xs] ; A=0000FFFFFFF510 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000007 00204: a - 1 -> a[xs] ; A=0000FFFFFFF410 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000008 00204: a - 1 -> a[xs] ; A=0000FFFFFFF310 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000009 00204: a - 1 -> a[xs] ; A=0000FFFFFFF210 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=2900000000000A 00204: a - 1 -> a[xs] ; A=0000FFFFFFF110 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=2900000000000B 00204: a - 1 -> a[xs] ; A=0000FFFFFFF010 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=2900000000000C 00204: a - 1 -> a[xs] ; A=0000FFFFFFFF10 00205: if n/c goto 0203 ; 00206: c - 1 -> c[x] ; C=2900000000000B 00207: 0 -> a[xs] ; A=0000FFFFFFF010 00210: shift right a[x] ; A=0000FFFFFFF001 00211: a + c -> a[x] ; A=0000FFFFFFF00C 00212: c + c -> c[x] ; C=29000000000016 00213: c + c -> c[x] ; C=2900000000002C 00214: a + c -> a[x] ; A=0000FFFFFFF038 00215: shift left a[x] ; A=0000FFFFFFF380 00216: p <- 1 ; P= 1 00217: m1 -> c ; C=00000000000000 00220: 0 -> c[x] ; 00221: delayed rom 1 ; 00222: a -> rom address ; key_gto: 00470: if n/c goto 0227 ; 00627: if 1 = s 4 then goto 00635 ; 00631: load constant 8 ; C=00000000000080 P= 0 00632: 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 ; 00633: 1 -> s 8 ; S=...3.5..89.....F 00634: if n/c goto 0215 ; 00615: 1 -> s 7 ; S=...3.5.789.....F 00616: 1 -> s 13 ; S=...3.5.789...D.F 00617: if n/c goto 0163 ; 00563: if 1 = s 13 then goto 00124 ; 00124: 0 -> s 11 ; 00125: 0 -> c[s] ; 00126: m1 exch c ; C=00000000000000 M1=00000000000080 00127: b -> c[w] ; 00130: 0 -> s 3 ; 00131: if 0 = s 3 then goto 00232 ; 00133: if 0 = s 12 then goto 00140 ; 00140: delayed rom 4 ; 00141: jsb 0000 ; 02000: jsb 0235 ; 02235: p <- 1 ; P= 1 02236: load constant 2 ; C=00000000000020 P= 0 02237: c -> addr ; 02240: data register -> c 14 ; C=03493428400200 02241: return ; 02001: a exchange c[w] ; A=03493428400200 C=0000FFFFFFF380 02002: jsb 0205 ; 02205: p <- 1 ; P= 1 02206: load constant 1 ; C=0000FFFFFFF310 P= 0 02207: c -> addr ; 02210: b -> c[w] ; C=00000000000000 02211: c -> data register 14 ; 02212: return ; 02003: shift right a[x] ; A=03493428400020 02004: shift right a[x] ; A=03493428400002 02005: f exch a ; A=03493428400000 02006: a -> b[s] ; 02007: decimal ; 02010: a - 1 -> a[s] ; A=93493428400000 02011: if n/c goto 0042 ; 02012: c -> a[w] ; A=00000000000000 02013: if a[xs] # 0 then goto 00031 ; 02015: p <- 1 ; P= 1 02016: load constant 1 ; C=00000000000010 P= 0 02017: load constant 0 ; P=13 02020: if a >= c[x] then goto 00037 ; 02022: b exchange c[x] ; B=00000000000010 C=00000000000000 02023: 0 -> a[x] ; 02024: f -> a ; A=00000000000002 02025: a + c -> a[x] ; 02026: if a >= b[x] then goto 00045 ; 02030: if n/c goto 0047 ; 02047: data register -> c 14 ; 02050: jsb 0213 ; 02213: 0 -> c[s] ; 02214: p <- 13 ; 02215: p - 1 -> p ; P=12 02216: a - 1 -> a[x] ; A=00000000000001 02217: if n/c goto 0215 ; 02215: p - 1 -> p ; P=11 02216: a - 1 -> a[x] ; A=00000000000000 02217: if n/c goto 0215 ; 02215: p - 1 -> p ; P=10 02216: a - 1 -> a[x] ; A=00000000000999 02217: if n/c goto 0215 ; 02220: return ; 02051: if b[s] = 0 then goto 00177 ; 02177: if c[xs] # 0 then goto 00054 ; 02201: if n/c goto 0053 ; 02053: p - 1 -> p ; P= 9 02054: jsb 0221 ; 02221: 0 -> a[w] ; A=00000000000000 02222: c -> a[wp] ; 02223: a + c -> a[ms] ; 02224: 0 -> a[wp] ; 02225: a exchange c[ms] ; 02226: return ; 02055: if c[s] = 0 then goto 00071 ; 02071: jsb 0227 ; 02227: c -> a[ms] ; 02230: binary ; 02231: a - 1 -> a[wp] ; A=0000FFFFFFFFFF 02232: c -> a[x] ; A=0000FFFFFFF000 02233: decimal ; 02234: return ; 02072: if b[s] = 0 then goto 00150 ; 02150: if a[xs] # 0 then goto 00141 ; 02152: if n/c goto 0155 ; 02155: if a[x] # 0 then goto 00153 ; 02157: binary ; 02160: 0 -> a[x] ; 02161: a - 1 -> a[x] ; A=0000FFFFFFFFFF 02162: rotate a left ; A=000FFFFFFFFFF0 02163: f exch a ; A=000FFFFFFFFFF2 02164: shift right a[w] ; A=0000FFFFFFFFFF 02165: f -> a ; A=0000FFFFFFFFF0 02166: data register -> c 14 ; 02167: c -> a[s] ; 02170: b exchange c[w] ; B=00000000000000 C=00000000000010 02171: b -> c[w] ; C=00000000000000 02172: return ; 00142: delayed rom 2 ; 00143: jsb 0371 ; 01371: if n/c goto 0060 ; 01060: b exchange c[w] ; 01061: binary ; 01062: 0 -> c[w] ; 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=00000000000000 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=0000FFFFFFFF00 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=0100FFFFFFFF00 01104: if n/c goto 0106 ; 01106: a - 1 -> a[p] ; A=0000FFFFFFFF00 01107: return ; 00144: cpu woodstock ; 00145: display off ; 00146: display toggle ; 00147: 0 -> s 15 ; S=...3.5.789...D.. 00150: if 1 = s 15 then goto 00147 ; Breakpoint 1 at 00152 >>> ts 00152: 0 -> s 1 ; S=...3.5.789...D.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=00000000000000 C=29000000000000 00177: keys to a ; A=0000FFFFFFF910 00200: 0 -> s 13 ; S=...3.5.789.....F 00201: binary ; 00202: 0 -> c[x] ; 00203: c + 1 -> c[x] ; C=29000000000001 00204: a - 1 -> a[xs] ; A=0000FFFFFFF810 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000002 00204: a - 1 -> a[xs] ; A=0000FFFFFFF710 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000003 00204: a - 1 -> a[xs] ; A=0000FFFFFFF610 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000004 00204: a - 1 -> a[xs] ; A=0000FFFFFFF510 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000005 00204: a - 1 -> a[xs] ; A=0000FFFFFFF410 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000006 00204: a - 1 -> a[xs] ; A=0000FFFFFFF310 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000007 00204: a - 1 -> a[xs] ; A=0000FFFFFFF210 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000008 00204: a - 1 -> a[xs] ; A=0000FFFFFFF110 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000009 00204: a - 1 -> a[xs] ; A=0000FFFFFFF010 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=2900000000000A 00204: a - 1 -> a[xs] ; A=0000FFFFFFFF10 00205: if n/c goto 0203 ; 00206: c - 1 -> c[x] ; C=29000000000009 00207: 0 -> a[xs] ; A=0000FFFFFFF010 00210: shift right a[x] ; A=0000FFFFFFF001 00211: a + c -> a[x] ; A=0000FFFFFFF00A 00212: c + c -> c[x] ; C=29000000000012 00213: c + c -> c[x] ; C=29000000000024 00214: a + c -> a[x] ; A=0000FFFFFFF02E 00215: shift left a[x] ; A=0000FFFFFFF2E0 00216: p <- 1 ; P= 1 00217: m1 -> c ; C=00000000000080 00220: 0 -> c[x] ; C=00000000000000 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 ; 00411: if 0 = s 6 then goto 00575 ; 00575: if 0 = s 8 then goto 00404 ; 00577: jsb 0363 ; 00763: m1 exch c ; C=00000000000080 M1=00000000000000 00764: 0 -> s 7 ; S=...3.5..89.....F 00765: 1 -> s 8 ; 00766: 0 -> s 10 ; 00767: return ; 00600: 1 -> s 10 ; S=...3.5..89A....F 00601: if n/c goto 0216 ; 00616: 1 -> s 13 ; S=...3.5..89A..D.F 00617: if n/c goto 0163 ; 00563: if 1 = s 13 then goto 00124 ; 00124: 0 -> s 11 ; 00125: 0 -> c[s] ; 00126: m1 exch c ; C=00000000000000 M1=00000000000080 00127: b -> c[w] ; 00130: 0 -> s 3 ; 00131: if 0 = s 3 then goto 00232 ; 00133: if 0 = s 12 then goto 00140 ; 00140: delayed rom 4 ; 00141: jsb 0000 ; 02000: jsb 0235 ; 02235: p <- 1 ; 02236: load constant 2 ; C=00000000000020 P= 0 02237: c -> addr ; 02240: data register -> c 14 ; C=03493428400200 02241: return ; 02001: a exchange c[w] ; A=03493428400200 C=0000FFFFFFF2E0 02002: jsb 0205 ; 02205: p <- 1 ; P= 1 02206: load constant 1 ; C=0000FFFFFFF210 P= 0 02207: c -> addr ; 02210: b -> c[w] ; C=00000000000000 02211: c -> data register 14 ; 02212: return ; 02003: shift right a[x] ; A=03493428400020 02004: shift right a[x] ; A=03493428400002 02005: f exch a ; A=03493428400000 02006: a -> b[s] ; 02007: decimal ; 02010: a - 1 -> a[s] ; A=93493428400000 02011: if n/c goto 0042 ; 02012: c -> a[w] ; A=00000000000000 02013: if a[xs] # 0 then goto 00031 ; 02015: p <- 1 ; P= 1 02016: load constant 1 ; C=00000000000010 P= 0 02017: load constant 0 ; P=13 02020: if a >= c[x] then goto 00037 ; 02022: b exchange c[x] ; B=00000000000010 C=00000000000000 02023: 0 -> a[x] ; 02024: f -> a ; A=00000000000002 02025: a + c -> a[x] ; 02026: if a >= b[x] then goto 00045 ; 02030: if n/c goto 0047 ; 02047: data register -> c 14 ; 02050: jsb 0213 ; 02213: 0 -> c[s] ; 02214: p <- 13 ; 02215: p - 1 -> p ; P=12 02216: a - 1 -> a[x] ; A=00000000000001 02217: if n/c goto 0215 ; 02215: p - 1 -> p ; P=11 02216: a - 1 -> a[x] ; A=00000000000000 02217: if n/c goto 0215 ; 02215: p - 1 -> p ; P=10 02216: a - 1 -> a[x] ; A=00000000000999 02217: if n/c goto 0215 ; 02220: return ; 02051: if b[s] = 0 then goto 00177 ; 02177: if c[xs] # 0 then goto 00054 ; 02201: if n/c goto 0053 ; 02053: p - 1 -> p ; P= 9 02054: jsb 0221 ; 02221: 0 -> a[w] ; A=00000000000000 02222: c -> a[wp] ; 02223: a + c -> a[ms] ; 02224: 0 -> a[wp] ; 02225: a exchange c[ms] ; 02226: return ; 02055: if c[s] = 0 then goto 00071 ; 02071: jsb 0227 ; 02227: c -> a[ms] ; 02230: binary ; 02231: a - 1 -> a[wp] ; A=0000FFFFFFFFFF 02232: c -> a[x] ; A=0000FFFFFFF000 02233: decimal ; 02234: return ; 02072: if b[s] = 0 then goto 00150 ; 02150: if a[xs] # 0 then goto 00141 ; 02152: if n/c goto 0155 ; 02155: if a[x] # 0 then goto 00153 ; 02157: binary ; 02160: 0 -> a[x] ; 02161: a - 1 -> a[x] ; A=0000FFFFFFFFFF 02162: rotate a left ; A=000FFFFFFFFFF0 02163: f exch a ; A=000FFFFFFFFFF2 02164: shift right a[w] ; A=0000FFFFFFFFFF 02165: f -> a ; A=0000FFFFFFFFF0 02166: data register -> c 14 ; 02167: c -> a[s] ; 02170: b exchange c[w] ; B=00000000000000 C=00000000000010 02171: b -> c[w] ; C=00000000000000 02172: return ; 00142: delayed rom 2 ; 00143: jsb 0371 ; 01371: if n/c goto 0060 ; 01060: b exchange c[w] ; 01061: binary ; 01062: 0 -> c[w] ; 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=00000000000000 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=0000FFFFFFFF00 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=0100FFFFFFFF00 01104: if n/c goto 0106 ; 01106: a - 1 -> a[p] ; A=0000FFFFFFFF00 01107: return ; 00144: cpu woodstock ; 00145: display off ; 00146: display toggle ; 00147: 0 -> s 15 ; S=...3.5..89A..D.. 00150: if 1 = s 15 then goto 00147 ; Breakpoint 1 at 00152 >>> ts 00152: 0 -> s 1 ; S=...3.5..89A..D.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=00000000000000 C=29000000000000 00177: keys to a ; A=0000FFFFFFF710 00200: 0 -> s 13 ; S=...3.5..89A....F 00201: binary ; 00202: 0 -> c[x] ; 00203: c + 1 -> c[x] ; C=29000000000001 00204: a - 1 -> a[xs] ; A=0000FFFFFFF610 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000002 00204: a - 1 -> a[xs] ; A=0000FFFFFFF510 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000003 00204: a - 1 -> a[xs] ; A=0000FFFFFFF410 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000004 00204: a - 1 -> a[xs] ; A=0000FFFFFFF310 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000005 00204: a - 1 -> a[xs] ; A=0000FFFFFFF210 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000006 00204: a - 1 -> a[xs] ; A=0000FFFFFFF110 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000007 00204: a - 1 -> a[xs] ; A=0000FFFFFFF010 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000008 00204: a - 1 -> a[xs] ; A=0000FFFFFFFF10 00205: if n/c goto 0203 ; 00206: c - 1 -> c[x] ; C=29000000000007 00207: 0 -> a[xs] ; A=0000FFFFFFF010 00210: shift right a[x] ; A=0000FFFFFFF001 00211: a + c -> a[x] ; A=0000FFFFFFF008 00212: c + c -> c[x] ; C=2900000000000E 00213: c + c -> c[x] ; C=2900000000001C 00214: a + c -> a[x] ; A=0000FFFFFFF024 00215: shift left a[x] ; A=0000FFFFFFF240 00216: p <- 1 ; P= 1 00217: m1 -> c ; C=00000000000080 00220: 0 -> c[x] ; C=00000000000000 00221: delayed rom 1 ; 00222: a -> rom address ; key_2: 00444: c + 1 -> c[x] ; C=00000000000001 00445: if n/c goto 0332 ; 00732: c + 1 -> c[x] ; C=00000000000002 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 ; 01045: a exchange c[x] ; A=0000FFFFFFF002 C=00000000000240 01046: m1 exch c ; C=00000000000080 M1=00000000000240 01047: p <- 0 ; P= 0 01050: a exchange c[p] ; A=0000FFFFFFF000 C=00000000000082 01051: if c[xs] # 0 then goto 01306 ; 01053: a exchange c[x] ; A=0000FFFFFFF082 C=00000000000000 01054: shift left a[x] ; A=0000FFFFFFF820 01055: a exchange c[x] ; A=0000FFFFFFF000 C=00000000000820 01056: delayed rom 1 ; 01057: if n/c goto 0216 ; 00616: 1 -> s 13 ; S=...3.5..89A..D.F 00617: if n/c goto 0163 ; 00563: if 1 = s 13 then goto 00124 ; 00124: 0 -> s 11 ; 00125: 0 -> c[s] ; 00126: m1 exch c ; C=00000000000240 M1=00000000000820 00127: b -> c[w] ; C=00000000000000 00130: 0 -> s 3 ; 00131: if 0 = s 3 then goto 00232 ; 00133: if 0 = s 12 then goto 00140 ; 00140: delayed rom 4 ; 00141: jsb 0000 ; 02000: jsb 0235 ; 02235: p <- 1 ; P= 1 02236: load constant 2 ; C=00000000000020 P= 0 02237: c -> addr ; 02240: data register -> c 14 ; C=03493428400200 02241: return ; 02001: a exchange c[w] ; A=03493428400200 C=0000FFFFFFF000 02002: jsb 0205 ; 02205: p <- 1 ; P= 1 02206: load constant 1 ; C=0000FFFFFFF010 P= 0 02207: c -> addr ; 02210: b -> c[w] ; C=00000000000000 02211: c -> data register 14 ; 02212: return ; 02003: shift right a[x] ; A=03493428400020 02004: shift right a[x] ; A=03493428400002 02005: f exch a ; A=03493428400000 02006: a -> b[s] ; 02007: decimal ; 02010: a - 1 -> a[s] ; A=93493428400000 02011: if n/c goto 0042 ; 02012: c -> a[w] ; A=00000000000000 02013: if a[xs] # 0 then goto 00031 ; 02015: p <- 1 ; P= 1 02016: load constant 1 ; C=00000000000010 P= 0 02017: load constant 0 ; P=13 02020: if a >= c[x] then goto 00037 ; 02022: b exchange c[x] ; B=00000000000010 C=00000000000000 02023: 0 -> a[x] ; 02024: f -> a ; A=00000000000002 02025: a + c -> a[x] ; 02026: if a >= b[x] then goto 00045 ; 02030: if n/c goto 0047 ; 02047: data register -> c 14 ; 02050: jsb 0213 ; 02213: 0 -> c[s] ; 02214: p <- 13 ; 02215: p - 1 -> p ; P=12 02216: a - 1 -> a[x] ; A=00000000000001 02217: if n/c goto 0215 ; 02215: p - 1 -> p ; P=11 02216: a - 1 -> a[x] ; A=00000000000000 02217: if n/c goto 0215 ; 02215: p - 1 -> p ; P=10 02216: a - 1 -> a[x] ; A=00000000000999 02217: if n/c goto 0215 ; 02220: return ; 02051: if b[s] = 0 then goto 00177 ; 02177: if c[xs] # 0 then goto 00054 ; 02201: if n/c goto 0053 ; 02053: p - 1 -> p ; P= 9 02054: jsb 0221 ; 02221: 0 -> a[w] ; A=00000000000000 02222: c -> a[wp] ; 02223: a + c -> a[ms] ; 02224: 0 -> a[wp] ; 02225: a exchange c[ms] ; 02226: return ; 02055: if c[s] = 0 then goto 00071 ; 02071: jsb 0227 ; 02227: c -> a[ms] ; 02230: binary ; 02231: a - 1 -> a[wp] ; A=0000FFFFFFFFFF 02232: c -> a[x] ; A=0000FFFFFFF000 02233: decimal ; 02234: return ; 02072: if b[s] = 0 then goto 00150 ; 02150: if a[xs] # 0 then goto 00141 ; 02152: if n/c goto 0155 ; 02155: if a[x] # 0 then goto 00153 ; 02157: binary ; 02160: 0 -> a[x] ; 02161: a - 1 -> a[x] ; A=0000FFFFFFFFFF 02162: rotate a left ; A=000FFFFFFFFFF0 02163: f exch a ; A=000FFFFFFFFFF2 02164: shift right a[w] ; A=0000FFFFFFFFFF 02165: f -> a ; A=0000FFFFFFFFF0 02166: data register -> c 14 ; 02167: c -> a[s] ; 02170: b exchange c[w] ; B=00000000000000 C=00000000000010 02171: b -> c[w] ; C=00000000000000 02172: return ; 00142: delayed rom 2 ; 00143: jsb 0371 ; 01371: if n/c goto 0060 ; 01060: b exchange c[w] ; 01061: binary ; 01062: 0 -> c[w] ; 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=00000000000000 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=0000FFFFFFFF00 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=0100FFFFFFFF00 01104: if n/c goto 0106 ; 01106: a - 1 -> a[p] ; A=0000FFFFFFFF00 01107: return ; 00144: cpu woodstock ; 00145: display off ; 00146: display toggle ; 00147: 0 -> s 15 ; S=...3.5..89A..D.. 00150: if 1 = s 15 then goto 00147 ; Breakpoint 1 at 00152 >>> ts 00152: 0 -> s 1 ; S=...3.5..89A..D.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=00000000000000 C=29000000000000 00177: keys to a ; A=0000FFFFFFF700 00200: 0 -> s 13 ; S=...3.5..89A....F 00201: binary ; 00202: 0 -> c[x] ; 00203: c + 1 -> c[x] ; C=29000000000001 00204: a - 1 -> a[xs] ; A=0000FFFFFFF600 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000002 00204: a - 1 -> a[xs] ; A=0000FFFFFFF500 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000003 00204: a - 1 -> a[xs] ; A=0000FFFFFFF400 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000004 00204: a - 1 -> a[xs] ; A=0000FFFFFFF300 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000005 00204: a - 1 -> a[xs] ; A=0000FFFFFFF200 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000006 00204: a - 1 -> a[xs] ; A=0000FFFFFFF100 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000007 00204: a - 1 -> a[xs] ; A=0000FFFFFFF000 00205: if n/c goto 0203 ; 00203: c + 1 -> c[x] ; C=29000000000008 00204: a - 1 -> a[xs] ; A=0000FFFFFFFF00 00205: if n/c goto 0203 ; 00206: c - 1 -> c[x] ; C=29000000000007 00207: 0 -> a[xs] ; A=0000FFFFFFF000 00210: shift right a[x] ; 00211: a + c -> a[x] ; A=0000FFFFFFF007 00212: c + c -> c[x] ; C=2900000000000E 00213: c + c -> c[x] ; C=2900000000001C 00214: a + c -> a[x] ; A=0000FFFFFFF023 00215: shift left a[x] ; A=0000FFFFFFF230 00216: p <- 1 ; P= 1 00217: m1 -> c ; C=00000000000820 00220: 0 -> c[x] ; C=00000000000000 00221: delayed rom 1 ; 00222: a -> rom address ; key_3: 00443: c + 1 -> c[x] ; C=00000000000001 00444: c + 1 -> c[x] ; C=00000000000002 00445: if n/c goto 0332 ; 00732: c + 1 -> c[x] ; C=00000000000003 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 ; 01045: a exchange c[x] ; A=0000FFFFFFF003 C=00000000000230 01046: m1 exch c ; C=00000000000820 M1=00000000000230 01047: p <- 0 ; P= 0 01050: a exchange c[p] ; A=0000FFFFFFF000 C=00000000000823 01051: if c[xs] # 0 then goto 01306 ; 01306: 0 -> c[xs] ; C=00000000000023 01307: 0 -> s 8 ; S=...3.5...9A....F 01310: delayed rom 4 ; 01311: if n/c goto 0326 ; 02326: decimal ; 02327: if c[x] = 0 then goto 00360 ; 02331: 0 -> c[xs] ; 02332: 0 -> c[ms] ; 02333: jsb 0303 ; 02303: c + 1 -> c[x] ; C=00000000000024 02304: if c[xs] = 0 then goto 00311 ; 02311: c - 1 -> c[x] ; C=00000000000023 02312: return ; 02334: c + 1 -> c[x] ; C=00000000000024 02335: 0 - c - 1 -> c[x] ; C=00000000000975 02336: a exchange c[x] ; A=0000FFFFFFF975 C=00000000000000 02337: 0 -> a[ms] ; A=00000000000975 02340: shift left a[x] ; A=00000000000750 02341: shift left a[w] ; A=00000000007500 02342: shift left a[w] ; A=00000000075000 02343: p <- 3 ; P= 3 02344: load constant 7 ; C=00000000007000 P= 2 02345: if n/c goto 0350 ; 02350: decimal ; 02351: a - c -> a[ms] ; A=00000000068000 02352: if n/c goto 0346 ; 02346: binary ; 02347: a + 1 -> a[x] ; A=00000000068001 02350: decimal ; 02351: a - c -> a[ms] ; A=00000000061001 02352: if n/c goto 0346 ; 02346: binary ; 02347: a + 1 -> a[x] ; A=00000000061002 02350: decimal ; 02351: a - c -> a[ms] ; A=00000000054002 02352: if n/c goto 0346 ; 02346: binary ; 02347: a + 1 -> a[x] ; A=00000000054003 02350: decimal ; 02351: a - c -> a[ms] ; A=00000000047003 02352: if n/c goto 0346 ; 02346: binary ; 02347: a + 1 -> a[x] ; A=00000000047004 02350: decimal ; 02351: a - c -> a[ms] ; A=00000000040004 02352: if n/c goto 0346 ; 02346: binary ; 02347: a + 1 -> a[x] ; A=00000000040005 02350: decimal ; 02351: a - c -> a[ms] ; A=00000000033005 02352: if n/c goto 0346 ; 02346: binary ; 02347: a + 1 -> a[x] ; A=00000000033006 02350: decimal ; 02351: a - c -> a[ms] ; A=00000000026006 02352: if n/c goto 0346 ; 02346: binary ; 02347: a + 1 -> a[x] ; A=00000000026007 02350: decimal ; 02351: a - c -> a[ms] ; A=00000000019007 02352: if n/c goto 0346 ; 02346: binary ; 02347: a + 1 -> a[x] ; A=00000000019008 02350: decimal ; 02351: a - c -> a[ms] ; A=00000000012008 02352: if n/c goto 0346 ; 02346: binary ; 02347: a + 1 -> a[x] ; A=00000000012009 02350: decimal ; 02351: a - c -> a[ms] ; A=00000000005009 02352: if n/c goto 0346 ; 02346: binary ; 02347: a + 1 -> a[x] ; A=0000000000500A 02350: decimal ; 02351: a - c -> a[ms] ; A=9999999999800A 02352: if n/c goto 0346 ; 02353: a + c -> a[ms] ; A=0000000000500A 02354: shift left a[x] ; A=000000000050A0 02355: a exchange c[w] ; A=00000000007000 C=000000000050A0 02356: load constant 2 ; C=000000000052A0 P= 1 02357: shift right c[w] ; C=0000000000052A 02360: c -> a[w] ; A=0000000000052A 02361: delayed rom 12 ; 02362: if n/c goto 0171 ; 06171: c -> a[w] ; 06172: m2 -> c ; C=00000000000000 06173: if 0 = s 8 then goto 00214 ; 06214: a exchange c[x] ; A=00000000000000 C=0000000000052A 06215: m2 exch c ; C=00000000000000 M2=0000000000052A 06216: delayed rom 0 ; 06217: if n/c goto 0055 ; 00055: 1 -> s 9 ; 00056: jsb 0323 ; 00323: p <- 1 ; 00324: load constant 2 ; C=00000000000020 P= 0 00325: c -> addr ; 00326: data register -> c 15 ; C=00000000000000 00327: b exchange c[w] ; 00330: return ; 00057: 0 -> s 12 ; 00060: if n/c goto 0115 ; 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 ; S=...3.5...9.....F 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=00000000000230 M1=00000000000000 00127: b -> c[w] ; C=00000000000000 00130: 0 -> s 3 ; 00131: if 0 = s 3 then goto 00232 ; 00133: if 0 = s 12 then goto 00140 ; 00140: delayed rom 4 ; 00141: jsb 0000 ; 02000: jsb 0235 ; 02235: p <- 1 ; P= 1 02236: load constant 2 ; C=00000000000020 P= 0 02237: c -> addr ; 02240: data register -> c 14 ; C=03493428400200 02241: return ; 02001: a exchange c[w] ; A=03493428400200 C=00000000000000 02002: jsb 0205 ; 02205: p <- 1 ; P= 1 02206: load constant 1 ; C=00000000000010 P= 0 02207: c -> addr ; 02210: b -> c[w] ; C=00000000000000 02211: c -> data register 14 ; 02212: return ; 02003: shift right a[x] ; A=03493428400020 02004: shift right a[x] ; A=03493428400002 02005: f exch a ; A=03493428400000 02006: a -> b[s] ; 02007: decimal ; 02010: a - 1 -> a[s] ; A=93493428400000 02011: if n/c goto 0042 ; 02012: c -> a[w] ; A=00000000000000 02013: if a[xs] # 0 then goto 00031 ; 02015: p <- 1 ; P= 1 02016: load constant 1 ; C=00000000000010 P= 0 02017: load constant 0 ; P=13 02020: if a >= c[x] then goto 00037 ; 02022: b exchange c[x] ; B=00000000000010 C=00000000000000 02023: 0 -> a[x] ; 02024: f -> a ; A=00000000000002 02025: a + c -> a[x] ; 02026: if a >= b[x] then goto 00045 ; 02030: if n/c goto 0047 ; 02047: data register -> c 14 ; 02050: jsb 0213 ; 02213: 0 -> c[s] ; 02214: p <- 13 ; 02215: p - 1 -> p ; P=12 02216: a - 1 -> a[x] ; A=00000000000001 02217: if n/c goto 0215 ; 02215: p - 1 -> p ; P=11 02216: a - 1 -> a[x] ; A=00000000000000 02217: if n/c goto 0215 ; 02215: p - 1 -> p ; P=10 02216: a - 1 -> a[x] ; A=00000000000999 02217: if n/c goto 0215 ; 02220: return ; 02051: if b[s] = 0 then goto 00177 ; 02177: if c[xs] # 0 then goto 00054 ; 02201: if n/c goto 0053 ; 02053: p - 1 -> p ; P= 9 02054: jsb 0221 ; 02221: 0 -> a[w] ; A=00000000000000 02222: c -> a[wp] ; 02223: a + c -> a[ms] ; 02224: 0 -> a[wp] ; 02225: a exchange c[ms] ; 02226: return ; 02055: if c[s] = 0 then goto 00071 ; 02071: jsb 0227 ; 02227: c -> a[ms] ; 02230: binary ; 02231: a - 1 -> a[wp] ; A=0000FFFFFFFFFF 02232: c -> a[x] ; A=0000FFFFFFF000 02233: decimal ; 02234: return ; 02072: if b[s] = 0 then goto 00150 ; 02150: if a[xs] # 0 then goto 00141 ; 02152: if n/c goto 0155 ; 02155: if a[x] # 0 then goto 00153 ; 02157: binary ; 02160: 0 -> a[x] ; 02161: a - 1 -> a[x] ; A=0000FFFFFFFFFF 02162: rotate a left ; A=000FFFFFFFFFF0 02163: f exch a ; A=000FFFFFFFFFF2 02164: shift right a[w] ; A=0000FFFFFFFFFF 02165: f -> a ; A=0000FFFFFFFFF0 02166: data register -> c 14 ; 02167: c -> a[s] ; 02170: b exchange c[w] ; B=00000000000000 C=00000000000010 02171: b -> c[w] ; C=00000000000000 02172: return ; 00142: delayed rom 2 ; 00143: jsb 0371 ; 01371: if n/c goto 0060 ; 01060: b exchange c[w] ; 01061: binary ; 01062: 0 -> c[w] ; 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=00000000000000 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=0000FFFFFFFF00 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=0100FFFFFFFF00 01104: if n/c goto 0106 ; 01106: a - 1 -> a[p] ; A=0000FFFFFFFF00 01107: return ; 00144: cpu woodstock ; 00145: display off ; 00146: display toggle ; 00147: 0 -> s 15 ; S=...3.5...9...... 00150: if 1 = s 15 then goto 00147 ; Breakpoint 1 at 00152 >>> q