📄 mouse.lis
字号:
285 ; #APP
286 016a 00 ei
287 ; #NO_APP
288 .LMM32:
152:../src/mouse.c **** ms_tout = 0x17F ; /* Delay for Logitech mouse */
153:../src/mouse.c **** while( ms_tout--)
290 016b 36F1017E ldw dpr:pof(@ms_tout),#382
290 0000
291 .L75:
292 0171 E2F00000 ldw rr0,dpr:pof(@ms_tout)
293 0175 3641FFFF addw dpr:pof(@ms_tout),#-1
293 0000
294 017b 0E00 orw rr0,rr0
295 017d EBF2 jxnz .L75
296 .L74:
297 .LMM33:
154:../src/mouse.c **** ;
155:../src/mouse.c **** }
156:../src/mouse.c ****
157:../src/mouse.c **** ei() ;
299 ; #APP
300 017f 00 ei
301 ; #NO_APP
302 .LMM34:
158:../src/mouse.c **** return parity ;
304 0180 18D2 ld r1,r2
305 .LMM35:
159:../src/mouse.c **** }
307 .LBE2:
308 0182 46 ret
309 .endproc
314 .Lscope0:
317
318 .globl mouse_read
319
320 .desc mouse_read, near
321 .proc mouse_read
322 mouse_read:
160:../src/mouse.c ****
161:../src/mouse.c **** unsigned char mouse_read( void)
162:../src/mouse.c **** {
324 .LMM37:
163:../src/mouse.c **** unsigned char data = 0 ;
326 .LBB3:
327 0183 90D4 clr r4
328 .LMM38:
164:../src/mouse.c **** unsigned char cnt ;
165:../src/mouse.c **** unsigned char parity ;
166:../src/mouse.c **** // unsigned char error ;
167:../src/mouse.c ****
168:../src/mouse.c **** spp( P3C_PG) ;
330 ; #APP
331 0185 C70A spp #2
332 ; #NO_APP
333 .LMM39:
169:../src/mouse.c **** di() ;
335 ; #APP
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s page 9
336 0187 10 di
337 ; #NO_APP
338 .LMM40:
170:../src/mouse.c ****
171:../src/mouse.c **** /* Release bus == enable transmission */
172:../src/mouse.c **** CLK_HIGH() ;
340 0188 F5E3FF ld @P3DR,#-1
341 .LMM41:
173:../src/mouse.c **** WAIT_CLK_HIGH() ;
343 018b 36F101FF ldw dpr:pof(@ms_tout),#511
343 0000
344 0191 A5E320 tm @P3DR,#32
345 0194 EB0E jxnz .L91
346 .L92:
347 0196 3641FFFF addw dpr:pof(@ms_tout),#-1
347 0000
348 019c 6D02C7 jxz .L179
349 019f A5E320 tm @P3DR,#32
350 01a2 6BF2 jxz .L92
351 .L91:
352 01a4 36910000 cpw dpr:pof(@ms_tout),#0
352 0000
353 01aa 6D02C7 jxz .L179
354 .LMM42:
174:../src/mouse.c ****
175:../src/mouse.c **** /* Start bit */
176:../src/mouse.c **** WAIT_CLK_LOW() ;
356 01ad 36F101FF ldw dpr:pof(@ms_tout),#511
356 0000
357 01b3 A5E320 tm @P3DR,#32
358 01b6 6B0E jxz .L98
359 .L99:
360 01b8 3641FFFF addw dpr:pof(@ms_tout),#-1
360 0000
361 01be 6D02C7 jxz .L179
362 01c1 A5E320 tm @P3DR,#32
363 01c4 EBF2 jxnz .L99
364 .L98:
365 01c6 36910000 cpw dpr:pof(@ms_tout),#0
365 0000
366 01cc 6D02C7 jxz .L179
367 .LMM43:
177:../src/mouse.c **** parity = 0 ;
369 01cf 90D1 clr r1
370 .LMM44:
178:../src/mouse.c **** // error = 0 ;
179:../src/mouse.c **** WAIT_CLK_HIGH() ;
372 01d1 36F101FF ldw dpr:pof(@ms_tout),#511
372 0000
373 01d7 A5E320 tm @P3DR,#32
374 01da EB0E jxnz .L105
375 .L106:
376 01dc 3641FFFF addw dpr:pof(@ms_tout),#-1
376 0000
377 01e2 6D02C7 jxz .L179
378 01e5 A5E320 tm @P3DR,#32
379 01e8 6BF2 jxz .L106
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s page 10
380 .L105:
381 01ea 36910000 cpw dpr:pof(@ms_tout),#0
381 0000
382 01f0 6D02C7 jxz .L179
383 .LMM45:
180:../src/mouse.c **** for( cnt = 0 ; cnt < 8 ; cnt++)
385 01f3 90D0 clr r0
386 01f5 BFD201FF ldw rr2,#511
387 .L114:
388 .LMM46:
181:../src/mouse.c **** {
182:../src/mouse.c **** WAIT_CLK_LOW() ;
390 01f9 E2F30000 ldw dpr:pof(@ms_tout),rr2
391 01fd A5E320 tm @P3DR,#32
392 0200 6B0E jxz .L116
393 .L117:
394 0202 3641FFFF addw dpr:pof(@ms_tout),#-1
394 0000
395 0208 6D02C7 jxz .L179
396 020b A5E320 tm @P3DR,#32
397 020e EBF2 jxnz .L117
398 .L116:
399 0210 36910000 cpw dpr:pof(@ms_tout),#0
399 0000
400 0216 6D02C7 jxz .L179
401 .LMM47:
183:../src/mouse.c **** data >>= 1 ;
403 0219 11 rcf
404 021a D0D4 rrc r4
405 .LMM48:
184:../src/mouse.c **** if( DATA_IS_HIGH())
407 021c A5E310 tm @P3DR,#16
408 021f 6B07 jxz .L122
409 .LMM49:
185:../src/mouse.c **** {
186:../src/mouse.c **** data |= 0x80 ;
411 0221 0FE4 bset r4.7
412 .LMM50:
187:../src/mouse.c **** parity ^= 1 ;
414 0223 65D101 xor r1,#1
415 .LMM51:
188:../src/mouse.c **** }
417 0226 8B02 jxt .L123
418 .L122:
419 .LMM52:
189:../src/mouse.c **** else
190:../src/mouse.c **** {
191:../src/mouse.c **** data &= ~0x80 ;
421 0228 1FE4 bres r4.7
422 .L123:
423 .LMM53:
192:../src/mouse.c **** }
193:../src/mouse.c ****
194:../src/mouse.c **** WAIT_CLK_HIGH() ;
425 022a E2F30000 ldw dpr:pof(@ms_tout),rr2
426 022e A5E320 tm @P3DR,#32
427 0231 EB0E jxnz .L125
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s page 11
428 .L126:
429 0233 3641FFFF addw dpr:pof(@ms_tout),#-1
429 0000
430 0239 6D02C7 jxz .L179
431 023c A5E320 tm @P3DR,#32
432 023f 6BF2 jxz .L126
433 .L125:
434 0241 36910000 cpw dpr:pof(@ms_tout),#0
434 0000
435 0247 6B7E jxz .L179
436 .LMM54:
438 0249 50D0 inc r0
439 024b 95D007 cp r0,#7
440 024e 3BA9 jxule .L114
441 .LMM55:
195:../src/mouse.c **** }
196:../src/mouse.c ****
197:../src/mouse.c **** /* Parity */
198:../src/mouse.c **** WAIT_CLK_LOW() ;
443 0250 36F101FF ldw dpr:pof(@ms_tout),#511
443 0000
444 0256 A5E320 tm @P3DR,#32
445 0259 6B0D jxz .L133
446 .L134:
447 025b 3641FFFF addw dpr:pof(@ms_tout),#-1
447 0000
448 0261 6B64 jxz .L179
449 0263 A5E320 tm @P3DR,#32
450 0266 EBF3 jxnz .L134
451 .L133:
452 0268 36910000 cpw dpr:pof(@ms_tout),#0
452 0000
453 026e 6B57 jxz .L179
454 .LMM56:
199:../src/mouse.c **** if( DATA_IS_HIGH())
456 0270 A5E310 tm @P3DR,#16
457 0273 6B03 jxz .L139
458 .LMM57:
200:../src/mouse.c **** {
201:../src/mouse.c **** parity ^= 1 ;
460 0275 65D101 xor r1,#1
461 .L139:
462 .LMM58:
202:../src/mouse.c **** }
203:../src/mouse.c ****
204:../src/mouse.c **** if( !parity)
464 0278 0211 or r1,r1
465 027a 6B45 jxz .L178
466 .LMM59:
205:../src/mouse.c **** {
206:../src/mouse.c **** /* Parity error */
207:../src/mouse.c **** // error += 1 ;
208:../src/mouse.c **** FAIL() ;
209:../src/mouse.c **** }
210:../src/mouse.c ****
211:../src/mouse.c **** WAIT_CLK_HIGH() ;
468 027c 36F101FF ldw dpr:pof(@ms_tout),#511
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s page 12
468 0000
469 0282 A5E320 tm @P3DR,#32
470 0285 EB0D jxnz .L142
471 .L143:
472 0287 3641FFFF addw dpr:pof(@ms_tout),#-1
472 0000
473 028d 6B38 jxz .L179
474 028f A5E320 tm @P3DR,#32
475 0292 6BF3 jxz .L143
476 .L142:
477 0294 36910000 cpw dpr:pof(@ms_tout),#0
477 0000
478 029a 6B2B jxz .L179
479 .LMM60:
212:../src/mouse.c ****
213:../src/mouse.c **** /* Stop bit */
214:../src/mouse.c **** WAIT_CLK_LOW() ;
481 029c 36F101FF ldw dpr:pof(@ms_tout),#511
481 0000
482 02a2 A5E320 tm @P3DR,#32
483 02a5 6B0D jxz .L149
484 .L150:
485 02a7 3641FFFF addw dpr:pof(@ms_tout),#-1
485 0000
486 02ad 6B18 jxz .L179
487 02af A5E320 tm @P3DR,#32
488 02b2 EBF3 jxnz .L150
489 .L149:
490 02b4 36910000 cpw dpr:pof(@ms_tout),#0
490 0000
491 02ba 6B0B jxz .L179
492 .LMM61:
215:../src/mouse.c ****
216:../src/mouse.c **** if( !DATA_IS_HIGH())
494 02bc A5E310 tm @P3DR,#16
495 02bf EB09 jxnz .L155
496 .LMM62:
217:../src/mouse.c **** {
218:../src/mouse.c **** /* Stop bit error */
219:../src/mouse.c **** // error += 1 ;
220:../src/mouse.c **** FAIL() ;
498 .L178:
499 02c1 36F10000 ldw dpr:pof(@ms_tout),#0
499 0000
500 .L179:
501 02c7 1C01 ld r1,#1
502 02c9 46 ret
503 .L155:
504 .LMM63:
221:../src/mouse.c **** }
222:../src/mouse.c **** else
223:../src/mouse.c **** {
224:../src/mouse.c **** WAIT_CLK_HIGH() ;
506 02ca 36F101FF ldw dpr:pof(@ms_tout),#511
506 0000
507 02d0 A5E320 tm @P3DR,#32
508 02d3 EB0D jxnz .L158
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s page 13
509 .L159:
510 02d5 3641FFFF addw dpr:pof(@ms_tout),#-1
510 0000
511 02db 6BEA jxz .L179
512 02dd A5E320 tm @P3DR,#32
513 02e0 6BF3 jxz .L159
514 .L158:
515 02e2 36910000 cpw dpr:pof(@ms_tout),#0
515 0000
516 02e8 6BDD jxz .L179
517 .LMM64:
225:../src/mouse.c **** CLK_LOW() ; /* Inhibit IO */
519 02ea F5E3DF ld @P3DR,#-33
520 .LMM65:
226:../src/mouse.c **** ei() ;
522 ; #APP
523 02ed 00 ei
524 ; #NO_APP
525 .LMM66:
227:../src/mouse.c **** ms_tout = 0x17F ; /* Delay for Logitech mouse */
228:../src/mouse.c **** while( ms_tout--)
527 02ee 36F1017E ldw dpr:pof(@ms_tout),#382
527 0000
528 .L164:
529 02f4 E2F00000 ldw rr0,dpr:pof(@ms_tout)
530 02f8 3641FFFF addw dpr:pof(@ms_tout),#-1
530 0000
531 02fe 0E00 orw rr0,rr0
532 0300 EBF2 jxnz .L164
533 .LMM67:
229:../src/mouse.c **** ;
230:../src/mouse.c ****
231:../src/mouse.c **** ms_tout = 1 ;
535 0302 36F10001 ldw dpr:pof(@ms_tout),#1
535 0000
536 .LMM68:
232:../src/mouse.c **** }
233:../src/mouse.c ****
234:../src/mouse.c **** ei() ;
538 ; #APP
539 0308 00 ei
540 ; #NO_APP
541 .LMM69:
235:../src/mouse.c **** return data ;
543 0309 18D4 ld r1,r4
544 .LMM70:
236:../src/mouse.c **** }
546 .LBE3:
547 030b 46 ret
548 .endproc
554 .Lscope1:
558
559 .globl mouse_ret
560
561 .desc mouse_ret, near
562 .proc mouse_ret
563 mouse_ret:
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s page 14
237:../src/mouse.c ****
238:../src/mouse.c **** BYTE mouse_ret( BYTE val)
239:../src/mouse.c **** {
565 .LMM72:
240:../src/mouse.c **** if( !mouse_cmd( val))
567 030c D20000 call @mouse_cmd
568 030f 0211 or r1,r1
569 0311 6B03 jxz .L181
570 .LMM73:
241:../src/mouse.c **** return mouse_read() ;
242:../src/mouse.c **** else
243:../src/mouse.c **** return 1 ;
572 0313 1C01 ld r1,#1
573 0315 46 ret
574 .L181:
575 .LMM74:
577 0316 D20183 call @mouse_read
578 .LMM75:
244:../src/mouse.c **** }
580 0319 46 ret
581 .endproc
582 .Lscope2:
585
586 .globl mouse_init
587
588 .desc mouse_init, near
589 .proc mouse_init
590 mouse_init:
245:../src/mouse.c ****
246:../src/mouse.c **** void mouse_init( void)
247:../src/mouse.c **** {
592 .LMM77:
248:../src/mouse.c **** if( mouse_fsm < MSINIT_SIZE)
594 .LBB4:
595 031a 2F910A00 cp dpr:pof(@mouse_fsm),#10
595 01
596 031f BB1A jxugt .L185
597 .LMM78:
249:../src/mouse.c **** {
250:../src/mouse.c **** if( mouse_ret( mouse_str[ mouse_fsm]) == 0xFA)
599 0321 C4F10001 ld r1,dpr:pof(@mouse_fsm)
600 0325 0C00 ld r0,#0
601 0327 7FF00000 ld r0,dpr:pof(@mouse_str)(rr0)
601 D0
602 032c D2030C call @mouse_ret
603 032f 95D1FA cp r1,#250
604 0332 EB2D jxnz .L189
605 .LMM79:
251:../src/mouse.c **** {
252:../src/mouse.c **** mouse_fsm += 1 ;
607 .L192:
608 0334 2F410100 add dpr:pof(@mouse_fsm),#1
608 01
609 .LMM80:
253:../src/mouse.c **** } else
611 0339 8B2B jxt .L188
612 .L185:
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s page 15
613 .LMM81:
254:../src/mouse.c **** mouse_fsm = 0 ;
255:../src/mouse.c **** }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -