??? 02/15/05 02:42 Modified: 02/15/05 02:53 Read: times |
#87466 - the whole LST file Responding to: ???'s previous message |
Sorry, i just notice that i didn't paste the whole LST file. Maybe it is too long. Here it is again.
<pre> MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 1 DOS 5.0 (038-N) MCS-51 MACRO ASSEMBLER, V2.2 OBJECT MODULE PLACED IN E:8051SIMB2.OBJ ASSEMBLER INVOKED BY: E:ASM51ASM51.EXE E:8051SIMB2.ASM LOC OBJ LINE SOURCE 1 0000 2 ORG 00H 0000 020008 3 LJMP Init 0003 4 ORG 0003H ;External 0 interrupt (INT0) 0003 C2AF 5 CLR EA ;disable all interrupts 0005 021AAF 6 LJMP FC 7 ; ORG 000BH ;Timer 0 overflow 8 ; LJMP TIM0 9 0008 758000 10 Init: mov P0,#00H ;clearing (Setting low) all ports. 000B 7590FF 11 mov P1,#0FFH 000E 75A0FF 12 mov P2,#0FFH 0011 75B0FF 13 mov P3,#0FFH 14 0014 D282 15 setb P0.2 ;setting "BUSY" 16 0016 75212B 17 mov 21H, #2BH ;the place to store the values of the calculate pul se duration in micro seconds. 0019 75202A 18 mov 20H, #2AH ;21H stores the TH0 while 20H stores TL0 001C 752332 19 mov 23H, #50 ;The start frequency, is set to 50Hz 001F 752408 20 mov 24H, #8 ;Ma is stored in here(0.8) 0022 752506 21 mov 25H, #06 ;Mf is stored in here(21) 22 ; mov 26H, #01 ;keep track of the pulse number 23 0025 C291 24 CLR P1.1 25 0027 120088 26 Call Mf1 002A 852227 27 mov 27H, 22H 002D 120397 28 Call a11b 29 0030 C292 30 CLR P1.2 ;CHECKING!!!! 31 0032 120591 32 Call a6 33 0035 C293 34 CLR P1.3 ;CHECKING!!! 0037 852227 35 mov 27H, 22H 003A 120397 36 Call a11b 003D 1205A2 37 call b6 0040 C295 38 CLR P1.5 ;CHECKING!!!! 0042 852227 39 mov 27H, 22H 0045 120397 40 Call a11b 0048 C297 41 CLR P1.7 ;CHECKING!!!! 004A 12022F 42 call Cal21 43 44 45 004D 758901 46 mov TMOD, #01H ;Timer 0, Mode 1 with 16-bit timer (no auto-reload) , interval timing 47 48 MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 2 LOC OBJ LINE SOURCE 49 ; CLR P1.0 ;CHECKING!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 0050 D282 50 setb P0.2 ;SAME!!! 0052 D2AF 51 setb EA 0054 D2A8 52 setb EX0 53 54 Ac1: ;This is the port connected to the H-Bridge. This p art is to initialize the number of pulse. 55 0056 C280 56 CLR P0.0 ;This is because my Port 0 has been burned.....Reme mber to change this later.maybe can choose this port cause it is further away from other pi ns, reduce noise 0058 C296 57 CLR P1.6 005A 75202A 58 mov 20H, #2AH ;shows the memory location for the pulses (Timer0) 005D 75212B 59 mov 21H, #2BH 60 0060 120088 61 Call Mf1 ;getting the total number of pulses. 62 0063 C295 63 CLR P1.5 ;CHECKING!!!!!! 64 65 0065 A820 66 Ac2: mov R0, 20H 0067 A921 67 mov R1, 21H 68 69 0069 878C 70 mov TH0, @R1 006B 868A 71 mov TL0, @R0 006D D28C 72 setb TR0 ;start Timer 0 73 74 ; CLR P1.6 ;CHECKING!!!!! 75 76 006F 308DFD 77 Wait1: JNB TF0, $ ;wait for Timer 0 to expire, and loop if it doesn't . 0072 C28D 78 CLR TF0 0074 C28C 79 CLR TR0 80 81 82 83 TIM0: 0076 B280 84 CPL P0.0 ;My port 0 was burned. Please change this later. 0078 B296 85 CPL P1.6 007A 0521 86 inc 21H ;shows the memory location for the pulses (Timer0) 007C 0521 87 inc 21H 007E 0520 88 inc 20H 0080 0520 89 inc 20H 0082 D522E0 90 DJNZ 22H,Ac2 ;this is to check whether the number of pulses has reached the end 0085 020056 91 LJMP Ac1 92 93 94 95 Mf1: ;getting the total number of pulses from the table depending on Mf 96 0088 E525 97 mov A, 25H MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 3 LOC OBJ LINE SOURCE 008A 12093B 98 CALL Cons01 008D F522 99 mov 22H, A 008F 22 100 RET 101 102 103 ADD16: ;adding 16-bit digits together. Results will be sto red in R0 & R1 0090 C3 104 CLR C 0091 E8 105 mov A, R0 0092 2A 106 add A, R2 0093 F8 107 mov R0, A ;store results 108 0094 4006 109 JC ADD16p2 ;check whether C is set or not 110 0096 E9 111 mov A, R1 0097 2B 112 add A, R3 0098 F9 113 mov R1, A ;store results 0099 4022 114 JC End1 009B 22 115 RET 116 117 ADD16p2: 009C C3 118 CLR C 009D E9 119 mov A, R1 009E 04 120 inc A 009F 2B 121 add A, R3 00A0 F9 122 mov R1, A 00A1 401A 123 JC End1 00A3 22 124 RET 125 126 127 SUB16: ;values will be stored in R1 & R0. R1R0 - R3R2 128 00A4 C3 129 CLR C 00A5 C2D6 130 CLR AC 131 00A7 E8 132 mov A, R0 00A8 9A 133 subb A, R2 00A9 4007 134 JC SUB16p2 00AB F8 135 mov R0, A 00AC E9 136 mov A, R1 00AD 9B 137 subb A, R3 00AE F9 138 mov R1, A 00AF 400C 139 JC End1 00B1 22 140 RET 141 142 SUB16p2: 00B2 C3 143 CLR C 00B3 C2D6 144 CLR AC 00B5 F8 145 mov R0, A 00B6 E9 146 mov A, R1 00B7 14 147 dec A 00B8 9B 148 subb A, R3 00B9 F9 149 mov R1, A 00BA 4001 150 JC End1 00BC 22 151 RET MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 4 LOC OBJ LINE SOURCE 152 153 End1: 00BD C290 154 CLR P1.0 ;ERROR has occured!!!! 00BF 022FE6 155 LJMP Ends 156 157 00C2 C0F0 158 UMUL16: push B 00C4 C082 159 push dpl 00C6 E8 160 mov a, r0 00C7 8AF0 161 mov b, r2 00C9 A4 162 mul ab ; multiply XL x YL 00CA C0E0 163 push acc ; stack result low byte 00CC C0F0 164 push b ; stack result high byte 00CE E8 165 mov a, r0 00CF 8BF0 166 mov b, r3 00D1 A4 167 mul ab ; multiply XL x YH 00D2 D000 168 pop 00H 00D4 28 169 add a, r0 00D5 F8 170 mov r0, a 00D6 E4 171 clr a 00D7 35F0 172 addc a, b 00D9 F582 173 mov dpl, a 00DB EA 174 mov a, r2 00DC 89F0 175 mov b, r1 00DE A4 176 mul ab ; multiply XH x YL 00DF 28 177 add a, r0 00E0 F8 178 mov r0, a 00E1 E582 179 mov a, dpl 00E3 35F0 180 addc a, b 00E5 F582 181 mov dpl, a 00E7 E4 182 clr a 00E8 3400 183 addc a, #0 00EA C0E0 184 push acc ; save intermediate carry 00EC EB 185 mov a, r3 00ED 89F0 186 mov b, r1 00EF A4 187 mul ab ; multiply XH x YH 00F0 2582 188 add a, dpl 00F2 FA 189 mov r2, a 00F3 D0E0 190 pop acc ; retrieve carry 00F5 35F0 191 addc a, b 00F7 FB 192 mov r3, a 00F8 A900 193 mov r1, 00H 00FA D000 194 pop 00H ; retrieve result low byte 00FC D082 195 pop dpl 00FE D0F0 196 pop B 0100 22 197 ret 198 199 200 0101 C008 201 UDIV32: push 08 ; Save Register Bank 1 0103 C009 202 push 09 0105 C00A 203 push 0AH 0107 C00B 204 push 0BH 0109 C00C 205 push 0CH 010B C00D 206 push 0DH MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 5 LOC OBJ LINE SOURCE 010D C00E 207 push 0EH 010F C00F 208 push 0FH 0111 C082 209 push dpl 0113 C083 210 push dph 0115 C0F0 211 push B 0117 D2D3 212 setb RS0 ; Select Register Bank 1 0119 7F00 213 mov r7, #0 ; clear partial remainder 011B 7E00 214 mov r6, #0 011D 7D00 215 mov r5, #0 011F 7C00 216 mov r4, #0 0121 75F020 217 mov B, #32 ; set loop count 218 0124 C2D3 219 div_lp32: clr RS0 ; Select Register Bank 0 0126 C3 220 clr C ; clear carry flag 0127 E8 221 mov a, r0 ; shift the highest bit of the 0128 33 222 rlc a ; dividend into... 0129 F8 223 mov r0, a 012A E9 224 mov a, r1 012B 33 225 rlc a 012C F9 226 mov r1, a 012D EA 227 mov a, r2 012E 33 228 rlc a 012F FA 229 mov r2, a 0130 EB 230 mov a, r3 0131 33 231 rlc a 0132 FB 232 mov r3, a 0133 D2D3 233 setb RS0 ; Select Register Bank 1 0135 EC 234 mov a, r4 ; ... the lowest bit of the 0136 33 235 rlc a ; partial remainder 0137 FC 236 mov r4, a 0138 ED 237 mov a, r5 0139 33 238 rlc a 013A FD 239 mov r5, a 013B EE 240 mov a, r6 013C 33 241 rlc a 013D FE 242 mov r6, a 013E EF 243 mov a, r7 013F 33 244 rlc a 0140 FF 245 mov r7, a 0141 EC 246 mov a, r4 ; trial subtract divisor from 0142 C3 247 clr C ; partial remainder 0143 9504 248 subb a, 04 0145 F582 249 mov dpl, a 0147 ED 250 mov a, r5 0148 9505 251 subb a, 05 014A F583 252 mov dph, a 014C EE 253 mov a, r6 014D 9400 254 subb a, #0 014F F506 255 mov 06, a 0151 EF 256 mov a, r7 0152 9400 257 subb a, #0 0154 F507 258 mov 07, a 0156 B3 259 cpl C ; complement external borrow 0157 5008 260 jnc div_321 ; update partial remainder if 261 ; borrow MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 6 LOC OBJ LINE SOURCE 0159 AF07 262 mov r7, 07 ; update partial remainder 015B AE06 263 mov r6, 06 015D AD83 264 mov r5, dph 015F AC82 265 mov r4, dpl 0161 E8 266 div_321: mov a, r0 ; shift result bit into partial 0162 33 267 rlc a ; quotient 0163 F8 268 mov r0, a 0164 E9 269 mov a, r1 0165 33 270 rlc a 0166 F9 271 mov r1, a 0167 EA 272 mov a, r2 0168 33 273 rlc a 0169 FA 274 mov r2, a 016A EB 275 mov a, r3 016B 33 276 rlc a 016C FB 277 mov r3, a 016D D5F0B4 278 djnz B, div_lp32 279 0170 8F07 280 mov 07, r7 ; put remainder, saved before the 0172 8E06 281 mov 06, r6 ; last subtraction, in bank 0 0174 8D05 282 mov 05, r5 0176 8C04 283 mov 04, r4 0178 8B03 284 mov 03, r3 ; put quotient in bank 0 017A 8A02 285 mov 02, r2 017C 8901 286 mov 01, r1 017E 8800 287 mov 00, r0 0180 C2D3 288 clr RS0 0182 D0F0 289 pop B 0184 D083 290 pop dph 0186 D082 291 pop dpl 0188 D00F 292 pop 0FH ; Retrieve Register Bank 1 018A D00E 293 pop 0EH 018C D00D 294 pop 0DH 018E D00C 295 pop 0CH 0190 D00B 296 pop 0BH 0192 D00A 297 pop 0AH 0194 D009 298 pop 09 0196 D008 299 pop 08 0198 22 300 ret 301 302 Cal11: 303 0199 A820 304 mov R0, 20H 019B E6 305 mov A, @R0 019C FA 306 mov R2, A 019D 7B00 307 mov R3, #00H 308 019F 78CE 309 mov R0, #0CEH ; this is 25600, which is from the formula (921600 instruction per second). 01A1 7957 310 mov R1, #57H 311 01A3 11C2 312 CALL UMUL16 ;results will be stored in r3, r2, r1, r0 = product P = X x Y. Alters "acc" and "C" 313 01A5 E523 314 mov A,23H MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 7 LOC OBJ LINE SOURCE 01A7 75F049 315 mov B, #73 ; 01AA A4 316 mul AB 01AB FC 317 mov R4, A 01AC ADF0 318 mov R5, B 319 01AE 3101 320 CALL UDIV32 ;results will be stored in R0 & R1(these are the on ly 2 values needed). r7, r6, r5, r4 = remainder 321 322 01B0 1202D9 323 Call Store1 ;values to be stored are in R0 & R1 01B3 D527E3 324 DJNZ 27H, Cal11 325 01B6 22 326 RET 327 328 Cal13: 329 01B7 A820 330 mov R0, 20H 01B9 E6 331 mov A, @R0 01BA FA 332 mov R2, A 01BB 7B00 333 mov R3, #00H 334 01BD 7800 335 mov R0, #00H ; this is 25600, which is from the formula (921600 instruction per second). 01BF 794B 336 mov R1, #4BH 337 01C1 11C2 338 CALL UMUL16 ;results will be stored in r3, r2, r1, r0 = product P = X x Y. Alters "acc" and "C" 339 01C3 E523 340 mov A,23H 01C5 75F04A 341 mov B, #74 ; 01C8 A4 342 mul AB 01C9 FC 343 mov R4, A 01CA ADF0 344 mov R5, B 345 01CC 3101 346 CALL UDIV32 ;results will be stored in R0 & R1(these are the on ly 2 values needed). r7, r6, r5, r4 = remainder 347 348 01CE 1202D9 349 Call Store1 ;values to be stored are in R0 & R1 01D1 D527E3 350 DJNZ 27H, Cal13 351 01D4 22 352 RET 353 354 Cal15: 355 01D5 A820 356 mov R0, 20H 01D7 E6 357 mov A, @R0 01D8 FA 358 mov R2, A 01D9 7B00 359 mov R3, #00H 360 01DB 783E 361 mov R0, #3EH ; this is 25600, which is from the formula (921600 instruction per second). 01DD 790E 362 mov R1, #0EH 363 01DF 11C2 364 CALL UMUL16 ;results will be stored in r3, r2, r1, r0 = product MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 8 LOC OBJ LINE SOURCE P = X x Y. Alters "acc" and "C" 365 01E1 E523 366 mov A,23H 01E3 75F010 367 mov B, #16 ; 01E6 A4 368 mul AB 01E7 FC 369 mov R4, A 01E8 ADF0 370 mov R5, B 371 01EA 3101 372 CALL UDIV32 ;results will be stored in R0 & R1(these are the on ly 2 values needed). r7, r6, r5, r4 = remainder 373 374 01EC 1202D9 375 Call Store1 ;values to be stored are in R0 & R1 01EF D527E3 376 DJNZ 27H, Cal15 377 01F2 22 378 RET 379 380 Cal17: 381 01F3 A820 382 mov R0, 20H 01F5 E6 383 mov A, @R0 01F6 FA 384 mov R2, A 01F7 7B00 385 mov R3, #00H 386 01F9 7800 387 mov R0, #00H ; this is 25600, which is from the formula (921600 instruction per second). 01FB 793C 388 mov R1, #3CH 389 01FD 11C2 390 CALL UMUL16 ;results will be stored in r3, r2, r1, r0 = product P = X x Y. Alters "acc" and "C" 391 01FF E523 392 mov A,23H 0201 75F04D 393 mov B, #77 ; 0204 A4 394 mul AB 0205 FC 395 mov R4, A 0206 ADF0 396 mov R5, B 397 0208 3101 398 CALL UDIV32 ;results will be stored in R0 & R1(these are the on ly 2 values needed). r7, r6, r5, r4 = remainder 399 400 020A 1202D9 401 Call Store1 ;values to be stored are in R0 & R1 020D D527E3 402 DJNZ 27H, Cal17 403 0210 22 404 RET 405 406 407 Cal19: 408 0211 A820 409 mov R0, 20H 0213 E6 410 mov A, @R0 0214 FA 411 mov R2, A 0215 7B00 412 mov R3, #00H 413 0217 782F 414 mov R0, #2FH ; this is 25600, which is from the formula (921600 MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 9 LOC OBJ LINE SOURCE instruction per second). 0219 7909 415 mov R1, #09H 416 021B 11C2 417 CALL UMUL16 ;results will be stored in r3, r2, r1, r0 = product P = X x Y. Alters "acc" and "C" 418 021D E523 419 mov A,23H 021F 75F00D 420 mov B, #13 ; 0222 A4 421 mul AB 0223 FC 422 mov R4, A 0224 ADF0 423 mov R5, B 424 0226 3101 425 CALL UDIV32 ;results will be stored in R0 & R1(these are the on ly 2 values needed). r7, r6, r5, r4 = remainder 426 427 0228 1202D9 428 Call Store1 ;values to be stored are in R0 & R1 022B D527E3 429 DJNZ 27H, Cal19 430 022E 22 431 RET 432 433 Cal21: ;calculate the time duration in cycles for Mf=31. 434 022F A820 435 mov R0, 20H 0231 E6 436 mov A, @R0 0232 FA 437 mov R2, A 0233 7B00 438 mov R3, #00H 439 0235 78A3 440 mov R0, #0A3H ; this is 163, which is from the formula (921600 in struction per second). 0237 7900 441 mov R1, #00H 442 0239 11C2 443 CALL UMUL16 ;results will be stored in r3, r2, r1, r0 = product P = X x Y. Alters "acc" and "C" 444 023B AC23 445 mov R4,23H 023D 7D00 446 mov R5, #00 447 023F 3101 448 CALL UDIV32 ;results will be stored in R0 & R1(these are the on ly 2 values needed). r7, r6, r5, r4 = remainder 449 450 0241 1202D9 451 Call Store1 ;values to be stored are in R0 & R1 0244 D527E8 452 DJNZ 27H, Cal21 453 0247 22 454 RET 455 456 Cal23: ;calculate the time duration in cycles for Mf=31. 457 0248 A820 458 mov R0, 20H 024A E6 459 mov A, @R0 024B FA 460 mov R2, A 024C 7B00 461 mov R3, #00H 462 024E 7896 463 mov R0, #96H ; this is 150, which is from the formula (921600 in MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 10 LOC OBJ LINE SOURCE struction per second). 0250 7900 464 mov R1, #00H 465 0252 11C2 466 CALL UMUL16 ;results will be stored in r3, r2, r1, r0 = product P = X x Y. Alters "acc" and "C" 467 0254 AC23 468 mov R4,23H 0256 7D00 469 mov R5, #00 470 0258 3101 471 CALL UDIV32 ;results will be stored in R0 & R1(these are the on ly 2 values needed). r7, r6, r5, r4 = remainder 472 473 025A 1202D9 474 Call Store1 ;values to be stored are in R0 & R1 025D D527E8 475 DJNZ 27H, Cal23 476 0260 22 477 RET 478 479 480 Cal25: 481 0261 A820 482 mov R0, 20H 0263 E6 483 mov A, @R0 0264 FA 484 mov R2, A 0265 7B00 485 mov R3, #00H 486 0267 78CF 487 mov R0, #0CFH ; this is 25600, which is from the formula (921600 instruction per second). 0269 7914 488 mov R1, #14H 489 026B 11C2 490 CALL UMUL16 ;results will be stored in r3, r2, r1, r0 = product P = X x Y. Alters "acc" and "C" 491 026D E523 492 mov A,23H 026F 75F027 493 mov B, #39 ; 0272 A4 494 mul AB 0273 FC 495 mov R4, A 0274 ADF0 496 mov R5, B 497 0276 3101 498 CALL UDIV32 ;results will be stored in R0 & R1(these are the on ly 2 values needed). r7, r6, r5, r4 = remainder 499 500 0278 1202D9 501 Call Store1 ;values to be stored are in R0 & R1 027B D527E3 502 DJNZ 27H, Cal25 503 027E 22 504 RET 505 506 Cal27: 507 027F A820 508 mov R0, 20H 0281 E6 509 mov A, @R0 0282 FA 510 mov R2, A 0283 7B00 511 mov R3, #00H 512 MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 11 LOC OBJ LINE SOURCE 0285 7800 513 mov R0, #00H ; this is 25600, which is from the formula (921600 instruction per second). 0287 7964 514 mov R1, #64H 515 0289 11C2 516 CALL UMUL16 ;results will be stored in r3, r2, r1, r0 = product P = X x Y. Alters "acc" and "C" 517 028B E523 518 mov A,23H 028D 75F0C9 519 mov B, #201 ; 0290 A4 520 mul AB 0291 FC 521 mov R4, A 0292 ADF0 522 mov R5, B 523 0294 3101 524 CALL UDIV32 ;results will be stored in R0 & R1(these are the on ly 2 values needed). r7, r6, r5, r4 = remainder 525 526 0296 1202D9 527 Call Store1 ;values to be stored are in R0 & R1 0299 D527E3 528 DJNZ 27H, Cal27 529 029C 22 530 RET 531 532 Cal29: 533 029D A820 534 mov R0, 20H 029F E6 535 mov A, @R0 02A0 FA 536 mov R2, A 02A1 7B00 537 mov R3, #00H 538 02A3 7836 539 mov R0, #36H ; this is 822 (a bit of error, but still reasonable ), which is from the formula (921600 instruction per second). 02A5 7903 540 mov R1, #03H 541 02A7 11C2 542 CALL UMUL16 ;results will be stored in r3, r2, r1, r0 = product P = X x Y. Alters "acc" and "C" 543 02A9 E523 544 mov A,23H 02AB 75F007 545 mov B, #7 ; 02AE A4 546 mul AB 02AF FC 547 mov R4, A 02B0 ADF0 548 mov R5, B 549 02B2 3101 550 CALL UDIV32 ;results will be stored in R0 & R1(these are the on ly 2 values needed). r7, r6, r5, r4 = remainder 551 552 02B4 1202D9 553 Call Store1 ;values to be stored are in R0 & R1 02B7 D527E3 554 DJNZ 27H, Cal29 555 02BA 22 556 RET 557 558 559 Cal31: 560 02BB A820 561 mov R0, 20H MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 12 LOC OBJ LINE SOURCE 02BD E6 562 mov A, @R0 02BE FA 563 mov R2, A 02BF 7B00 564 mov R3, #00H 565 02C1 7800 566 mov R0, #00H ; this is 25600, which is from the formula (921600 instruction per second). 02C3 7964 567 mov R1, #64H 568 02C5 11C2 569 CALL UMUL16 ;results will be stored in r3, r2, r1, r0 = product P = X x Y. Alters "acc" and "C" 570 02C7 E523 571 mov A,23H 02C9 75F0E9 572 mov B, #233 ;taking worst senario, 233*99=23067 (E817H) still c an fit into 16-bits 02CC A4 573 mul AB 02CD FC 574 mov R4, A 02CE ADF0 575 mov R5, B 576 02D0 3101 577 CALL UDIV32 ;results will be stored in R0 & R1(these are the on ly 2 values needed). r7, r6, r5, r4 = remainder 578 579 02D2 1202D9 580 Call Store1 ;values to be stored are in R0 & R1 02D5 D527E3 581 DJNZ 27H, Cal31 582 02D8 22 583 RET 584 585 586 587 588 589 590 591 Store1: ;input R0 & R1, the FFFFH minus it, and then stored in relative address 20H & 21H 592 02D9 C3 593 clr C 02DA E8 594 mov A, R0 ;subtracting to enter into timer0 later. 02DB FA 595 mov R2, A ;only R0 and R1 has values stored. 02DC E9 596 mov A, R1 02DD FB 597 mov R3, A 02DE 78FF 598 mov R0, #0FFH 02E0 79FF 599 mov R1, #0FFH 02E2 11A4 600 call SUB16 601 602 02E4 E9 603 mov A, R1 02E5 A921 604 mov R1, 21H 02E7 F7 605 mov @R1, A 606 02E8 E8 607 mov A, R0 02E9 A820 608 mov R0, 20H 02EB F6 609 mov @R0, A 610 02EC 0520 611 inc 20H MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 13 LOC OBJ LINE SOURCE 02EE 0520 612 inc 20H 02F0 0521 613 inc 21H 02F2 0521 614 inc 21H 615 616 02F4 22 617 RET 618 619 ; ----------------------------------------------------------------------------------------- -------------------------- 620 ;This part is to change the Ma values depending on the Mf values. 11 -> Mf=31, 1 -> Mf=11 621 622 623 624 a11: ;this is to calculate 0.9 -> 0.8 02F5 E526 625 mov A, 26H 02F7 121866 626 Call Cons101 ;getting Ma 0.9 values 02FA F9 627 mov R1, A 02FB E526 628 mov A, 26H 02FD 121A6E 629 CALL Cons109 ;minus off from 0.9 to the specific Ma 630 0300 120377 631 Call a11a ;check whether it is negative or positive, and stor e them into memory location pointed by 20H 0303 D527EF 632 djnz 27H, a11 0306 22 633 RET 634 635 b11: ;this is to calculate 0.8 -> 0.7 0307 A820 636 mov R0, 20H 0309 E6 637 mov A, @R0 030A F9 638 mov R1, A 030B E526 639 mov A, 26H 030D 121A2D 640 Call Cons108 641 0310 120377 642 Call a11a 0313 D527F1 643 djnz 27H, b11 0316 22 644 RET 645 646 c11: ;this is to calculate 0.7 -> 0.6 0317 A820 647 mov R0, 20H 0319 E6 648 mov A, @R0 031A F9 649 mov R1, A 031B E526 650 mov A, 26H 031D 1219EC 651 Call Cons107 652 0320 120377 653 Call a11a 0323 D527F1 654 djnz 27H, c11 0326 22 655 RET 656 657 d11: ;this is to calculate 0.6 -> 0.5 0327 A820 658 mov R0, 20H 0329 E6 659 mov A, @R0 032A F9 660 mov R1, A 032B E526 661 mov A, 26H 032D 1219AB 662 Call Cons106 663 0330 120377 664 Call a11a MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 14 LOC OBJ LINE SOURCE 0333 D527F1 665 djnz 27H, d11 0336 22 666 RET 667 668 e11: ;this is to calculate 0.5 -> 0.4 0337 A820 669 mov R0, 20H 0339 E6 670 mov A, @R0 033A F9 671 mov R1, A 033B E526 672 mov A, 26H 033D 12196A 673 Call Cons105 674 0340 120377 675 Call a11a 0343 D527F1 676 djnz 27H, e11 0346 22 677 RET 678 679 f11: ;this is to calculate 0.4 -> 0.3 0347 A820 680 mov R0, 20H 0349 E6 681 mov A, @R0 034A F9 682 mov R1, A 034B E526 683 mov A, 26H 034D 121929 684 Call Cons104 685 0350 120377 686 Call a11a 0353 D527F1 687 djnz 27H, f11 0356 22 688 RET 689 690 g11: ;this is to calculate 0.3 -> 0.2 0357 A820 691 mov R0, 20H 0359 E6 692 mov A, @R0 035A F9 693 mov R1, A 035B E526 694 mov A, 26H 035D 1218E8 695 Call Cons103 696 0360 120377 697 Call a11a 0363 D527F1 698 djnz 27H, g11 0366 22 699 RET 700 701 702 h11: ;this is to calculate 0.2 -> 0.1 0367 A820 703 mov R0, 20H 0369 E6 704 mov A, @R0 036A F9 705 mov R1, A 036B E526 706 mov A, 26H 036D 1218A7 707 Call Cons102 708 0370 120377 709 Call a11a 0373 D527F1 710 djnz 27H, h11 0376 22 711 RET 712 713 714 a11a: 715 0377 20E704 716 jb acc.7, to43p1 ;jump when it is a negative number (2's complement) 037A 02038B 717 LJMP to43p2 037D 22 718 RET 719 MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 15 LOC OBJ LINE SOURCE 720 721 722 to43p1: 037E F4 723 cpl A ;2's complement. Magnitude stored in A 037F 04 724 inc A 725 0380 29 726 add A, R1 ;placing all the values (0.9 -> 0.8) into the memor y locations ( >2A ) 727 ; JC Back1 0381 A920 728 mov R1, 20H 0383 F7 729 mov @R1, A 0384 0520 730 inc 20H 0386 0520 731 inc 20H 0388 0526 732 inc 26H 038A 22 733 RET 734 735 736 737 to43p2: ;continue, w/o complement cause value isn't negative 738 038B C9 739 XCH A, R1 038C 99 740 subb A, R1 741 ; JC Back1 038D A920 742 mov R1, 20H 038F F7 743 mov @R1, A 0390 0520 744 inc 20H 0392 0520 745 inc 20H 0394 0526 746 inc 26H 0396 22 747 RET 748 749 750 a11b: 0397 C3 751 CLR C 0398 C2D6 752 CLR AC 039A C2D2 753 CLR OV 039C 752601 754 mov 26H, #01 039F 75202A 755 mov 20H, #2AH 03A2 75212B 756 mov 21H, #2BH 03A5 852227 757 mov 27H, 22H 03A8 22 758 RET 759 ; ----------------------------------------------------------------------------------------- ------------------------------------------------- 760 761 a10: ;this is to calculate 0.9 -> 0.8 03A9 E526 762 mov A, 26H 03AB 121641 763 Call Cons91 ;getting Ma 0.9 values 03AE F9 764 mov R1, A 03AF E526 765 mov A, 26H 03B1 121829 766 CALL Cons99 ;minus off from 0.9 to the specific Ma 767 03B4 7177 768 Call a11a 03B6 D527F0 769 djnz 27H, a10 03B9 22 770 RET 771 772 b10: ;this is to calculate 0.8 -> 0.7 MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 16 LOC OBJ LINE SOURCE 03BA A820 773 mov R0, 20H 03BC E6 774 mov A, @R0 03BD F9 775 mov R1, A 03BE E526 776 mov A, 26H 03C0 1217EC 777 Call Cons98 778 03C3 7177 779 Call a11a 03C5 D527F2 780 djnz 27H, b10 03C8 22 781 RET 782 783 c10: ;this is to calculate 0.7 -> 0.6 03C9 A820 784 mov R0, 20H 03CB E6 785 mov A, @R0 03CC F9 786 mov R1, A 03CD E526 787 mov A, 26H 03CF 1217AF 788 Call Cons97 789 03D2 7177 790 Call a11a 03D4 D527F2 791 djnz 27H, c10 03D7 22 792 RET 793 794 d10: ;this is to calculate 0.6 -> 0.5 03D8 A820 795 mov R0, 20H 03DA E6 796 mov A, @R0 03DB F9 797 mov R1, A 03DC E526 798 mov A, 26H 03DE 121772 799 Call Cons96 800 03E1 7177 801 Call a11a 03E3 D527F2 802 djnz 27H, d10 03E6 22 803 RET 804 805 e10: ;this is to calculate 0.5 -> 0.4 03E7 A820 806 mov R0, 20H 03E9 E6 807 mov A, @R0 03EA F9 808 mov R1, A 03EB E526 809 mov A, 26H 03ED 121735 810 Call Cons95 811 03F0 7177 812 Call a11a 03F2 D527F2 813 djnz 27H, e10 03F5 22 814 RET 815 816 f10: ;this is to calculate 0.4 -> 0.3 03F6 A820 817 mov R0, 20H 03F8 E6 818 mov A, @R0 03F9 F9 819 mov R1, A 03FA E526 820 mov A, 26H 03FC 1216F8 821 Call Cons94 822 03FF 7177 823 Call a11a 0401 D527F2 824 djnz 27H, f10 0404 22 825 RET 826 827 g10: ;this is to calculate 0.3 -> 0.2 MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 17 LOC OBJ LINE SOURCE 0405 A820 828 mov R0, 20H 0407 E6 829 mov A, @R0 0408 F9 830 mov R1, A 0409 E526 831 mov A, 26H 040B 1216BB 832 Call Cons93 833 040E 7177 834 Call a11a 0410 D527F2 835 djnz 27H, g10 0413 22 836 RET 837 838 h10: ;this is to calculate 0.2 -> 0.1 0414 A820 839 mov R0, 20H 0416 E6 840 mov A, @R0 0417 F9 841 mov R1, A 0418 E526 842 mov A, 26H 041A 12167E 843 Call Cons92 844 041D 7177 845 Call a11a 041F D527F2 846 djnz 27H, h10 0422 22 847 RET 848 849 850 851 852 ; ----------------------------------------------------------------------------------------- -------------------------------------- 853 854 a9: ;this is to calculate 0.9 -> 0.8 855 0423 E526 856 mov A, 26H 0425 121440 857 Call Cons81 ;getting Ma 0.9 values 0428 F9 858 mov R1, A 0429 E526 859 mov A, 26H 042B 121608 860 CALL Cons89 ;minus off from 0.9 to the specific Ma 861 042E 7177 862 Call a11a 0430 D527F0 863 djnz 27H, a9 0433 22 864 RET 865 866 b9: ;this is to calculate 0.8 -> 0.7 867 0434 A820 868 mov R0, 20H 0436 E6 869 mov A, @R0 0437 F9 870 mov R1, A 0438 E526 871 mov A, 26H 043A 1215CF 872 Call Cons88 873 043D 7177 874 Call a11a 043F D527F2 875 djnz 27H, b9 0442 22 876 RET 877 878 c9: ;this is to calculate 0.7 -> 0.6 879 0443 A820 880 mov R0, 20H 0445 E6 881 mov A, @R0 MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 18 LOC OBJ LINE SOURCE 0446 F9 882 mov R1, A 0447 E526 883 mov A, 26H 0449 121596 884 Call Cons87 885 044C 7177 886 Call a11a 044E D527F2 887 djnz 27H, c9 0451 22 888 RET 889 890 d9: ;this is to calculate 0.6 -> 0.5 891 0452 A820 892 mov R0, 20H 0454 E6 893 mov A, @R0 0455 F9 894 mov R1, A 0456 E526 895 mov A, 26H 0458 12155D 896 Call Cons86 897 045B 7177 898 Call a11a 045D D527F2 899 djnz 27H, d9 0460 22 900 RET 901 902 e9: ;this is to calculate 0.5 -> 0.4 903 0461 A820 904 mov R0, 20H 0463 E6 905 mov A, @R0 0464 F9 906 mov R1, A 0465 E526 907 mov A, 26H 0467 121524 908 Call Cons85 909 046A 7177 910 Call a11a 046C D527F2 911 djnz 27H, e9 046F 22 912 RET 913 914 f9: ;this is to calculate 0.4 -> 0.3 915 0470 A820 916 mov R0, 20H 0472 E6 917 mov A, @R0 0473 F9 918 mov R1, A 0474 E526 919 mov A, 26H 0476 1214EB 920 Call Cons84 921 0479 7177 922 Call a11a 047B D527F2 923 djnz 27H, f9 047E 22 924 RET 925 926 g9: ;this is to calculate 0.3 -> 0.2 927 047F A820 928 mov R0, 20H 0481 E6 929 mov A, @R0 0482 F9 930 mov R1, A 0483 E526 931 mov A, 26H 0485 1214B2 932 Call Cons83 933 0488 7177 934 Call a11a 048A D527F2 935 djnz 27H, g9 048D 22 936 RET MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 19 LOC OBJ LINE SOURCE 937 938 h9: ;this is to calculate 0.2 -> 0.1 939 048E A820 940 mov R0, 20H 0490 E6 941 mov A, @R0 0491 F9 942 mov R1, A 0492 E526 943 mov A, 26H 0494 121479 944 Call Cons82 945 0497 7177 946 Call a11a 0499 D527F2 947 djnz 27H, h9 049C 22 948 RET 949 950 951 ; ----------------------------------------------------------------------------------------- -------------------------------------- 952 953 a8: ;this is to calculate 0.9 -> 0.8 954 049D E526 955 mov A, 26H 049F 121263 956 Call Cons71 ;getting Ma 0.9 values 04A2 F9 957 mov R1, A 04A3 E526 958 mov A, 26H 04A5 12140B 959 CALL Cons79 ;minus off from 0.9 to the specific Ma 960 04A8 7177 961 Call a11a 04AA D527F0 962 djnz 27H, a8 04AD 22 963 RET 964 965 b8: ;this is to calculate 0.8 -> 0.7 966 04AE A820 967 mov R0, 20H 04B0 E6 968 mov A, @R0 04B1 F9 969 mov R1, A 04B2 E526 970 mov A, 26H 04B4 1213D6 971 Call Cons78 972 04B7 7177 973 Call a11a 04B9 D527F2 974 djnz 27H, b8 04BC 22 975 RET 976 977 c8: ;this is to calculate 0.7 -> 0.6 978 04BD A820 979 mov R0, 20H 04BF E6 980 mov A, @R0 04C0 F9 981 mov R1, A 04C1 E526 982 mov A, 26H 04C3 1213A1 983 Call Cons77 984 04C6 7177 985 Call a11a 04C8 D527F2 986 djnz 27H, c8 04CB 22 987 RET 988 989 d8: ;this is to calculate 0.6 -> 0.5 990 MCS-51 MACRO ASSEMBLER B2 02/15/:5 PAGE 20 LOC OBJ LINE SOURCE 04CC A820 991 mov R0, 20H 04CE E6 992 mov A, @R0 04CF F9 993 mov R1, A 04D0 E526 994 mov A, 26H 04D2 12136C 995 Call Cons76 996 04D5 7177 997 Call a11a 04D7 D527F2 998 djnz 27H, d8 04DA 22 999 RET 1000 1001 e8: ;this is to calculate 0.5 -> 0.4 1002 04DB A820 1003 mov R0, 20H 04DD E6 1004 mov A, @R0 04DE F9 1005 mov R1, A 04DF E526 1006 mov A, 26H 04E1 121337 1007 Call Cons75 1008 04E4 7177 1009 Call a11a 04E6 D527F2 1010 djnz 27H, e8 04E9 22 1011 RET 1012 1013 f8: ;this is to calculate 0.4 -> 0.3 1014 04EA A820 1015 mov R0, 20H 04EC E6 1016 mov A, @R0 04ED F9 1017 mov R1, A 04EE E526 1018 mov A, 26H 04F0 121302 1019 Call Cons74 1020 04F3 7177 1021 Call a11a 04F5 D527F2 1022 djnz 27H, f8 04F8 22 1023 RET 1024 1025 g8: ;this is to calculate 0.3 -> 0.2 1026 04F9 A820 1027 mov R0, 20H 04FB E6 1028 mov A, @R0 04FC F9 1029 mov R1, A 04FD E526 1030 mov A, 26H 04FF 1212CD 1031 Call Cons73 1032 0502 7177 1033 Call a11a 0504 D527F2 1034 djnz 27H, g8 0507 22 1035 RET 1036 1037 h8: ;this is to calculate 0.2 -> 0.1 1038 0508 A820 1039 mov R0, 20H 050A E6 |
Topic | Author | Date |
Finding out the ROM limit | 01/01/70 00:00 | |
Tools? | 01/01/70 00:00 | |
More on Intel Hex - gaps! | 01/01/70 00:00 | |
k vs K | 01/01/70 00:00 | |
Apples & Pears! | 01/01/70 00:00 | |
Thanks | 01/01/70 00:00 | |
Err..., no | 01/01/70 00:00 | |
Forgot to ask - LST file? | 01/01/70 00:00 | |
d51 | 01/01/70 00:00 | |
Need clarification | 01/01/70 00:00 | |
More Clarification Needed! | 01/01/70 00:00 | |
Info | 01/01/70 00:00 | |
More Clarification Needed! | 01/01/70 00:00 | |
Yes | 01/01/70 00:00 | |
Unlikely | 01/01/70 00:00 | |
suspect | 01/01/70 00:00 | |
Info | 01/01/70 00:00 | |
Got there at last! | 01/01/70 00:00 | |
Got it :D | 01/01/70 00:00 | |
Too big! | 01/01/70 00:00 | |
Thanks | 01/01/70 00:00 | |
7 days | 01/01/70 00:00 | |
I suggest this | 01/01/70 00:00 | |
something amiss | 01/01/70 00:00 | |
the whole LST file | 01/01/70 00:00 | |
LST file | 01/01/70 00:00 | |
and the story is | 01/01/70 00:00 | |
well.... | 01/01/70 00:00 | |
7 days well spent! | 01/01/70 00:00 | |
of course it does | 01/01/70 00:00 | |
Noted | 01/01/70 00:00 | |
so | 01/01/70 00:00 | |
hexmap![]() | 01/01/70 00:00 |