Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
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

List of 33 messages in thread
TopicAuthorDate
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      

Back to Subject List