IN_I .equ 0x410 IN_Q .equ 0x411 OUT_L .equ 0x410 OUT_R .equ 0x411 ; Programm a = [IN_I] [0] = a a = 0 a = a + 0.000044635694 * [ 0 ] a = a + 0.000070247486 * [ 1 ] a = a + 0.000097008456 * [ 2 ] a = a + 0.000120767339 * [ 3 ] a = a + 0.000136563851 * [ 4 ] a = a + 0.000139146875 * [ 5 ] a = a + 0.000123648175 * [ 6 ] a = a + 0.000086351480 * [ 7 ] a = a + 0.000025473668 * [ 8 ] a = a + -0.000058141424 * [ 9 ] a = a + -0.000160522260 * [ 10 ] a = a + -0.000274361546 * [ 11 ] a = a + -0.000389181183 * [ 12 ] a = a + -0.000491918355 * [ 13 ] a = a + -0.000567937945 * [ 14 ] a = a + -0.000602426298 * [ 15 ] a = a + -0.000582068924 * [ 16 ] a = a + -0.000496865922 * [ 17 ] a = a + -0.000341899734 * [ 18 ] a = a + -0.000118846358 * [ 19 ] a = a + 0.000162982096 * [ 20 ] a = a + 0.000486255353 * [ 21 ] a = a + 0.000826050801 * [ 22 ] a = a + 0.001151167644 * [ 23 ] a = a + 0.001426324925 * [ 24 ] a = a + 0.001615143071 * [ 25 ] a = a + 0.001683710789 * [ 26 ] a = a + 0.001604449568 * [ 27 ] a = a + 0.001359917350 * [ 28 ] a = a + 0.000946150767 * [ 29 ] a = a + 0.000375139577 * [ 30 ] a = a + -0.000323937689 * [ 31 ] a = a + -0.001105010207 * [ 32 ] a = a + -0.001907120035 * [ 33 ] a = a + -0.002658164294 * [ 34 ] a = a + -0.003280234262 * [ 35 ] a = a + -0.003696237531 * [ 36 ] a = a + -0.003837326843 * [ 37 ] a = a + -0.003650525147 * [ 38 ] a = a + -0.003105846724 * [ 39 ] a = a + -0.002202182041 * [ 40 ] a = a + -0.000971248064 * [ 41 ] a = a + 0.000520990910 * [ 42 ] a = a + 0.002175857472 * [ 43 ] a = a + 0.003866650510 * [ 44 ] a = a + 0.005446424425 * [ 45 ] a = a + 0.006758508286 * [ 46 ] a = a + 0.007649136192 * [ 47 ] a = a + 0.007981312769 * [ 48 ] a = a + 0.007648846872 * [ 49 ] a = a + 0.006589373842 * [ 50 ] a = a + 0.004795168054 * [ 51 ] a = a + 0.002320631546 * [ 52 ] a = a + -0.000714468781 * [ 53 ] a = a + -0.004126662958 * [ 54 ] a = a + -0.007675631222 * [ 55 ] a = a + -0.011076136967 * [ 56 ] a = a + -0.014014505847 * [ 57 ] a = a + -0.016168713269 * [ 58 ] a = a + -0.017230791170 * [ 59 ] a = a + -0.016929998971 * [ 60 ] a = a + -0.015055049652 * [ 61 ] a = a + -0.011473658323 * [ 62 ] a = a + -0.006147795387 * [ 63 ] a = a + 0.000856724075 * [ 64 ] a = a + 0.009367313763 * [ 65 ] a = a + 0.019108888152 * [ 66 ] a = a + 0.029715345736 * [ 67 ] a = a + 0.040747734073 * [ 68 ] a = a + 0.051718049256 * [ 69 ] a = a + 0.062117170877 * [ 70 ] a = a + 0.071445086464 * [ 71 ] a = a + 0.079241346580 * [ 72 ] a = a + 0.085113632911 * [ 73 ] a = a + 0.088762423923 * [ 74 ] a = a + 0.090000000000 * [ 75 ] a = a + 0.088762423923 * [ 76 ] a = a + 0.085113632911 * [ 77 ] a = a + 0.079241346580 * [ 78 ] a = a + 0.071445086464 * [ 79 ] a = a + 0.062117170877 * [ 80 ] a = a + 0.051718049256 * [ 81 ] a = a + 0.040747734073 * [ 82 ] a = a + 0.029715345736 * [ 83 ] a = a + 0.019108888152 * [ 84 ] a = a + 0.009367313763 * [ 85 ] a = a + 0.000856724075 * [ 86 ] a = a + -0.006147795387 * [ 87 ] a = a + -0.011473658323 * [ 88 ] a = a + -0.015055049652 * [ 89 ] a = a + -0.016929998971 * [ 90 ] a = a + -0.017230791170 * [ 91 ] a = a + -0.016168713269 * [ 92 ] a = a + -0.014014505847 * [ 93 ] a = a + -0.011076136967 * [ 94 ] a = a + -0.007675631222 * [ 95 ] a = a + -0.004126662958 * [ 96 ] a = a + -0.000714468781 * [ 97 ] a = a + 0.002320631546 * [ 98 ] a = a + 0.004795168054 * [ 99 ] a = a + 0.006589373842 * [ 100 ] a = a + 0.007648846872 * [ 101 ] a = a + 0.007981312769 * [ 102 ] a = a + 0.007649136192 * [ 103 ] a = a + 0.006758508286 * [ 104 ] a = a + 0.005446424425 * [ 105 ] a = a + 0.003866650510 * [ 106 ] a = a + 0.002175857472 * [ 107 ] a = a + 0.000520990910 * [ 108 ] a = a + -0.000971248064 * [ 109 ] a = a + -0.002202182041 * [ 110 ] a = a + -0.003105846724 * [ 111 ] a = a + -0.003650525147 * [ 112 ] a = a + -0.003837326843 * [ 113 ] a = a + -0.003696237531 * [ 114 ] a = a + -0.003280234262 * [ 115 ] a = a + -0.002658164294 * [ 116 ] a = a + -0.001907120035 * [ 117 ] a = a + -0.001105010207 * [ 118 ] a = a + -0.000323937689 * [ 119 ] a = a + 0.000375139577 * [ 120 ] a = a + 0.000946150767 * [ 121 ] a = a + 0.001359917350 * [ 122 ] a = a + 0.001604449568 * [ 123 ] a = a + 0.001683710789 * [ 124 ] a = a + 0.001615143071 * [ 125 ] a = a + 0.001426324925 * [ 126 ] a = a + 0.001151167644 * [ 127 ] a = a + 0.000826050801 * [ 128 ] a = a + 0.000486255353 * [ 129 ] a = a + 0.000162982096 * [ 130 ] a = a + -0.000118846358 * [ 131 ] a = a + -0.000341899734 * [ 132 ] a = a + -0.000496865922 * [ 133 ] a = a + -0.000582068924 * [ 134 ] a = a + -0.000602426298 * [ 135 ] a = a + -0.000567937945 * [ 136 ] a = a + -0.000491918355 * [ 137 ] a = a + -0.000389181183 * [ 138 ] a = a + -0.000274361546 * [ 139 ] a = a + -0.000160522260 * [ 140 ] a = a + -0.000058141424 * [ 141 ] a = a + 0.000025473668 * [ 142 ] a = a + 0.000086351480 * [ 143 ] a = a + 0.000123648175 * [ 144 ] a = a + 0.000139146875 * [ 145 ] a = a + 0.000136563851 * [ 146 ] a = a + 0.000120767339 * [ 147 ] a = a + 0.000097008456 * [ 148 ] a = a + 0.000070247486 * [ 149 ] a = a + 0.000044635694 * [ 150 ] [303] = a a = [IN_Q] [151] = a a = 0 a = a + 0.000044635694 * [ 151 ] a = a + 0.000070247486 * [ 152 ] a = a + 0.000097008456 * [ 153 ] a = a + 0.000120767339 * [ 154 ] a = a + 0.000136563851 * [ 155 ] a = a + 0.000139146875 * [ 156 ] a = a + 0.000123648175 * [ 157 ] a = a + 0.000086351480 * [ 158 ] a = a + 0.000025473668 * [ 159 ] a = a + -0.000058141424 * [ 160 ] a = a + -0.000160522260 * [ 161 ] a = a + -0.000274361546 * [ 162 ] a = a + -0.000389181183 * [ 163 ] a = a + -0.000491918355 * [ 164 ] a = a + -0.000567937945 * [ 165 ] a = a + -0.000602426298 * [ 166 ] a = a + -0.000582068924 * [ 167 ] a = a + -0.000496865922 * [ 168 ] a = a + -0.000341899734 * [ 169 ] a = a + -0.000118846358 * [ 170 ] a = a + 0.000162982096 * [ 171 ] a = a + 0.000486255353 * [ 172 ] a = a + 0.000826050801 * [ 173 ] a = a + 0.001151167644 * [ 174 ] a = a + 0.001426324925 * [ 175 ] a = a + 0.001615143071 * [ 176 ] a = a + 0.001683710789 * [ 177 ] a = a + 0.001604449568 * [ 178 ] a = a + 0.001359917350 * [ 179 ] a = a + 0.000946150767 * [ 180 ] a = a + 0.000375139577 * [ 181 ] a = a + -0.000323937689 * [ 182 ] a = a + -0.001105010207 * [ 183 ] a = a + -0.001907120035 * [ 184 ] a = a + -0.002658164294 * [ 185 ] a = a + -0.003280234262 * [ 186 ] a = a + -0.003696237531 * [ 187 ] a = a + -0.003837326843 * [ 188 ] a = a + -0.003650525147 * [ 189 ] a = a + -0.003105846724 * [ 190 ] a = a + -0.002202182041 * [ 191 ] a = a + -0.000971248064 * [ 192 ] a = a + 0.000520990910 * [ 193 ] a = a + 0.002175857472 * [ 194 ] a = a + 0.003866650510 * [ 195 ] a = a + 0.005446424425 * [ 196 ] a = a + 0.006758508286 * [ 197 ] a = a + 0.007649136192 * [ 198 ] a = a + 0.007981312769 * [ 199 ] a = a + 0.007648846872 * [ 200 ] a = a + 0.006589373842 * [ 201 ] a = a + 0.004795168054 * [ 202 ] a = a + 0.002320631546 * [ 203 ] a = a + -0.000714468781 * [ 204 ] a = a + -0.004126662958 * [ 205 ] a = a + -0.007675631222 * [ 206 ] a = a + -0.011076136967 * [ 207 ] a = a + -0.014014505847 * [ 208 ] a = a + -0.016168713269 * [ 209 ] a = a + -0.017230791170 * [ 210 ] a = a + -0.016929998971 * [ 211 ] a = a + -0.015055049652 * [ 212 ] a = a + -0.011473658323 * [ 213 ] a = a + -0.006147795387 * [ 214 ] a = a + 0.000856724075 * [ 215 ] a = a + 0.009367313763 * [ 216 ] a = a + 0.019108888152 * [ 217 ] a = a + 0.029715345736 * [ 218 ] a = a + 0.040747734073 * [ 219 ] a = a + 0.051718049256 * [ 220 ] a = a + 0.062117170877 * [ 221 ] a = a + 0.071445086464 * [ 222 ] a = a + 0.079241346580 * [ 223 ] a = a + 0.085113632911 * [ 224 ] a = a + 0.088762423923 * [ 225 ] a = a + 0.090000000000 * [ 226 ] a = a + 0.088762423923 * [ 227 ] a = a + 0.085113632911 * [ 228 ] a = a + 0.079241346580 * [ 229 ] a = a + 0.071445086464 * [ 230 ] a = a + 0.062117170877 * [ 231 ] a = a + 0.051718049256 * [ 232 ] a = a + 0.040747734073 * [ 233 ] a = a + 0.029715345736 * [ 234 ] a = a + 0.019108888152 * [ 235 ] a = a + 0.009367313763 * [ 236 ] a = a + 0.000856724075 * [ 237 ] a = a + -0.006147795387 * [ 238 ] a = a + -0.011473658323 * [ 239 ] a = a + -0.015055049652 * [ 240 ] a = a + -0.016929998971 * [ 241 ] a = a + -0.017230791170 * [ 242 ] a = a + -0.016168713269 * [ 243 ] a = a + -0.014014505847 * [ 244 ] a = a + -0.011076136967 * [ 245 ] a = a + -0.007675631222 * [ 246 ] a = a + -0.004126662958 * [ 247 ] a = a + -0.000714468781 * [ 248 ] a = a + 0.002320631546 * [ 249 ] a = a + 0.004795168054 * [ 250 ] a = a + 0.006589373842 * [ 251 ] a = a + 0.007648846872 * [ 252 ] a = a + 0.007981312769 * [ 253 ] a = a + 0.007649136192 * [ 254 ] a = a + 0.006758508286 * [ 255 ] a = a + 0.005446424425 * [ 256 ] a = a + 0.003866650510 * [ 257 ] a = a + 0.002175857472 * [ 258 ] a = a + 0.000520990910 * [ 259 ] a = a + -0.000971248064 * [ 260 ] a = a + -0.002202182041 * [ 261 ] a = a + -0.003105846724 * [ 262 ] a = a + -0.003650525147 * [ 263 ] a = a + -0.003837326843 * [ 264 ] a = a + -0.003696237531 * [ 265 ] a = a + -0.003280234262 * [ 266 ] a = a + -0.002658164294 * [ 267 ] a = a + -0.001907120035 * [ 268 ] a = a + -0.001105010207 * [ 269 ] a = a + -0.000323937689 * [ 270 ] a = a + 0.000375139577 * [ 271 ] a = a + 0.000946150767 * [ 272 ] a = a + 0.001359917350 * [ 273 ] a = a + 0.001604449568 * [ 274 ] a = a + 0.001683710789 * [ 275 ] a = a + 0.001615143071 * [ 276 ] a = a + 0.001426324925 * [ 277 ] a = a + 0.001151167644 * [ 278 ] a = a + 0.000826050801 * [ 279 ] a = a + 0.000486255353 * [ 280 ] a = a + 0.000162982096 * [ 281 ] a = a + -0.000118846358 * [ 282 ] a = a + -0.000341899734 * [ 283 ] a = a + -0.000496865922 * [ 284 ] a = a + -0.000582068924 * [ 285 ] a = a + -0.000602426298 * [ 286 ] a = a + -0.000567937945 * [ 287 ] a = a + -0.000491918355 * [ 288 ] a = a + -0.000389181183 * [ 289 ] a = a + -0.000274361546 * [ 290 ] a = a + -0.000160522260 * [ 291 ] a = a + -0.000058141424 * [ 292 ] a = a + 0.000025473668 * [ 293 ] a = a + 0.000086351480 * [ 294 ] a = a + 0.000123648175 * [ 295 ] a = a + 0.000139146875 * [ 296 ] a = a + 0.000136563851 * [ 297 ] a = a + 0.000120767339 * [ 298 ] a = a + 0.000097008456 * [ 299 ] a = a + 0.000070247486 * [ 300 ] a = a + 0.000044635694 * [ 301 ] [302] = a ; I -> 303 ; Q -> 302 ; 1500Hz Oscillator sina .EQU 0.309016994374947 cosa .EQU 0.951056516295154 max .EQU 0.25 Dc .EQU 0x401 Ds .EQU 0x402 ; oscillator a = [Dc] * sina ; b = [Ds] ; a = a + [Ds] * cosa; [Ds] = a a = b * (-sina) a = a + cosa * [Dc] [Dc] = a ; self reset code a = [Ds] Skip N osc3 a = b Skip Z osc2 Skip !N osc3 osc2: a = max [Dc] = a osc3: ; Now Weaver demodulation: I * sin + Q * cos a = [303] a = a * [Ds] b = a a = [302] a = a * [Dc] a = a - b [305] = a [OUT_L] = a [OUT_R] = a