📄 mouse.lis
字号:
256:../src/mouse.c **** else
257:../src/mouse.c **** {
258:../src/mouse.c **** mouse_length = 3 ;
615 033b 2FF10300 ld dpr:pof(@mouse_length),#3
615 00
616 .LMM82:
259:../src/mouse.c **** if( mouse_ret( 0xF2) == 0xFA) /* READ_DT */
618 0340 0CF2 ld r0,#242
619 0342 D2030C call @mouse_ret
620 0345 95D1FA cp r1,#250
621 0348 EB17 jxnz .L189
622 .LMM83:
260:../src/mouse.c **** {
261:../src/mouse.c **** BYTE id ;
624 .LBB5:
625 .LMM84:
262:../src/mouse.c ****
263:../src/mouse.c **** id = mouse_read() ;
627 034a D20183 call @mouse_read
628 .LMM85:
264:../src/mouse.c **** if( ms_tout && (id == 3))
630 034d 36910000 cpw dpr:pof(@ms_tout),#0
630 0000
631 0353 6BDF jxz .L192
632 0355 95D103 cp r1,#3
633 0358 EBDA jxnz .L192
634 .LMM86:
265:../src/mouse.c **** {
266:../src/mouse.c **** mouse_length += 1 ;
636 035a 2F410100 add dpr:pof(@mouse_length),#1
636 00
637 .LMM87:
267:../src/mouse.c **** // if( mouse_ret( 0xE7) == 0xFA) /* Set resolution */
268:../src/mouse.c **** // {
269:../src/mouse.c **** // if( mouse_ret( 0x03) == 0xFA) /* 16 counts per mm */
270:../src/mouse.c **** // {
271:../src/mouse.c **** // nop() ;
272:../src/mouse.c **** // }
273:../src/mouse.c **** // }
274:../src/mouse.c **** }
275:../src/mouse.c ****
276:../src/mouse.c **** mouse_fsm += 1 ;
277:../src/mouse.c **** }
639 .LBE5:
640 035f 8BD3 jxt .L192
641 .L189:
642 .LMM88:
278:../src/mouse.c **** else
279:../src/mouse.c **** mouse_fsm = 0 ;
644 0361 2FF10000 ld dpr:pof(@mouse_fsm),#0
644 01
645 .L188:
646 .LMM89:
280:../src/mouse.c **** }
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s page 16
281:../src/mouse.c ****
282:../src/mouse.c **** /* Release bus */
283:../src/mouse.c **** CLK_HIGH() ;
648 0366 F5E3FF ld @P3DR,#-1
649 .LMM90:
284:../src/mouse.c **** ei() ;
651 ; #APP
652 0369 00 ei
653 ; #NO_APP
654 .LMM91:
285:../src/mouse.c **** }
656 .LBE4:
657 036a 46 ret
658 .endproc
664 .Lscope3:
667
668 .globl mouse_poll
669
670 .desc mouse_poll, near
671 .proc mouse_poll
672 mouse_poll:
286:../src/mouse.c ****
287:../src/mouse.c **** void mouse_poll( void)
288:../src/mouse.c **** {
674 036b 66D8 push r8
675 .LMM93:
289:../src/mouse.c **** BYTE ack ;
677 .LBB6:
678 .LMM94:
290:../src/mouse.c ****
291:../src/mouse.c **** ack = mouse_ret( 0xEB) ;
680 036d 0CEB ld r0,#235
681 036f D2030C call @mouse_ret
682 0372 88D1 ld r8,r1
683 .LMM95:
292:../src/mouse.c **** if( ack == 0xFA) /* READ_DATA */
685 0374 95D8FA cp r8,#250
686 0377 EB52 jxnz .L194
687 .LMM96:
293:../src/mouse.c **** {
294:../src/mouse.c **** Mouse_Buffer[ 0] = mouse_read() & 0x07 ;
689 0379 D20183 call @mouse_read
690 037c 15D107 and r1,#7
691 037f C5F10000 ld dpr:pof(@Mouse_Buffer),r1
692 .LMM97:
295:../src/mouse.c **** if( ms_tout)
694 0383 36910000 cpw dpr:pof(@ms_tout),#0
694 0000
695 0389 6B3D jxz .L195
696 .LMM98:
296:../src/mouse.c **** {
297:../src/mouse.c **** Mouse_Buffer[ 1] = mouse_read() ;
698 038b D20183 call @mouse_read
699 038e C5F10001 ld dpr:pof(@Mouse_Buffer+1),r1
700 .LMM99:
298:../src/mouse.c **** if( ms_tout)
702 0392 36910000 cpw dpr:pof(@ms_tout),#0
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s page 17
702 0000
703 0398 6B36 jxz .L200
704 .LMM100:
299:../src/mouse.c **** {
300:../src/mouse.c **** Mouse_Buffer[ 2] = (BYTE) -((signed char) mouse_read()) ;
706 039a D20183 call @mouse_read
707 039d 80D1 cpl r1
708 039f 50D1 inc r1
709 03a1 C5F10002 ld dpr:pof(@Mouse_Buffer+2),r1
710 .LMM101:
301:../src/mouse.c **** if( ms_tout && (mouse_length == 4))
712 03a5 36910000 cpw dpr:pof(@ms_tout),#0
712 0000
713 03ab 6B14 jxz .L197
714 03ad 2F910400 cp dpr:pof(@mouse_length),#4
714 00
715 03b2 EB0D jxnz .L197
716 .LMM102:
302:../src/mouse.c **** {
303:../src/mouse.c **** Mouse_Buffer[ 3] = (BYTE) -((signed char) mouse_read()) ;
718 03b4 D20183 call @mouse_read
719 03b7 80D1 cpl r1
720 03b9 50D1 inc r1
721 03bb C5F10003 ld dpr:pof(@Mouse_Buffer+3),r1
722 .LMM103:
304:../src/mouse.c **** // ms_data[ 3] = (BYTE) -((signed char) ms_data[ 3]) ;
305:../src/mouse.c **** // ms_data[ 3] ; // <<= 1 ; // 2 ;
306:../src/mouse.c **** }
724 03bf 8B0F jxt .L200
725 .L197:
726 .LMM104:
307:../src/mouse.c **** else
308:../src/mouse.c **** {
309:../src/mouse.c **** Mouse_Buffer[ 3] = 0 ;
728 03c1 2FF10000 ld dpr:pof(@Mouse_Buffer+3),#0
728 03
729 .LMM105:
310:../src/mouse.c **** }
311:../src/mouse.c **** }
312:../src/mouse.c **** }
731 03c6 8B08 jxt .L200
732 .L195:
733 .LMM106:
313:../src/mouse.c **** else
314:../src/mouse.c **** nop() ;
735 ; #APP
736 03c8 FF nop
737 ; #NO_APP
738 .LMM107:
315:../src/mouse.c **** } else
740 03c9 8B05 jxt .L200
741 .L194:
742 .LMM108:
316:../src/mouse.c **** mouse_fsm = 0 ;
744 03cb 2FF10000 ld dpr:pof(@mouse_fsm),#0
744 01
745 .L200:
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s page 18
746 .LMM109:
317:../src/mouse.c ****
318:../src/mouse.c **** /* Release bus */
319:../src/mouse.c **** CLK_HIGH() ;
748 03d0 F5E3FF ld @P3DR,#-1
749 .LMM110:
320:../src/mouse.c **** ei() ;
751 ; #APP
752 03d3 00 ei
753 ; #NO_APP
754 .LMM111:
321:../src/mouse.c ****
322:../src/mouse.c **** if( ms_tout && (ack == 0xFA))
756 03d4 36910000 cpw dpr:pof(@ms_tout),#0
756 0000
757 03da 6B08 jxz .L201
758 03dc 95D8FA cp r8,#250
759 03df EB03 jxnz .L201
760 .LMM112:
323:../src/mouse.c **** MOUSE_Send() ;
762 03e1 D20409 call @MOUSE_Send
763 .L201:
764 .LMM113:
324:../src/mouse.c **** }
766 .LBE6:
767 03e4 76D8 pop r8
768 03e6 46 ret
769 .endproc
773 .Lscope4:
775
776 .globl ENDPR5_A
777 .desc ENDPR5_A, 8bit register
778 ENDPR5_A= 250
780
781 .globl MOUSE_proc
782
783 .desc MOUSE_proc, near
784 .proc MOUSE_proc
785 MOUSE_proc:
325:../src/mouse.c ****
326:../src/mouse.c **** void MOUSE_proc( void)
327:../src/mouse.c **** {
787 .LMM115:
328:../src/mouse.c **** if( configuration_status[ 2])
789 03e7 2F910000 cp dpr:pof(@configuration_status+2),#0
789 02
790 03ec 6B1A jxz .L203
791 .LMM116:
329:../src/mouse.c **** {
330:../src/mouse.c **** // spp( 4) ;
331:../src/mouse.c **** // if( (ENDPR5_A & 0x30) == 0x20 /* STAT_NAK */)
332:../src/mouse.c **** // {
333:../src/mouse.c **** // if( mouse_fsm < (MSINIT_SIZE + 1))
334:../src/mouse.c **** // mouse_init() ;
335:../src/mouse.c **** // else
336:../src/mouse.c **** // mouse_poll() ;
337:../src/mouse.c **** // }
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s page 19
338:../src/mouse.c **** if( mouse_fsm <= MSINIT_SIZE)
793 03ee 2F910B00 cp dpr:pof(@mouse_fsm),#11
793 01
794 03f3 BB04 jxugt .L204
795 .LMM117:
339:../src/mouse.c **** {
340:../src/mouse.c **** mouse_init() ;
797 03f5 D2031A call @mouse_init
798 .LMM118:
341:../src/mouse.c **** }
800 03f8 46 ret
801 .L204:
802 .LMM119:
342:../src/mouse.c **** else
343:../src/mouse.c **** {
344:../src/mouse.c **** spp( 4) ;
804 ; #APP
805 03f9 C712 spp #4
806 ; #NO_APP
807 .LMM120:
345:../src/mouse.c **** if( (ENDPR5_A & 0x30) == 0x20 /* STAT_NAK */)
809 03fb 08FA ld r0,@ENDPR5_A
810 03fd 15D030 and r0,#48
811 0400 95D020 cp r0,#32
812 0403 EB03 jxnz .L203
813 .LMM121:
346:../src/mouse.c **** {
347:../src/mouse.c **** mouse_poll() ;
815 0405 D2036B call @mouse_poll
816 .L203:
817 .LMM122:
348:../src/mouse.c **** }
349:../src/mouse.c **** }
350:../src/mouse.c **** }
351:../src/mouse.c **** }
819 0408 46 ret
820 .endproc
821 .Lscope5:
823
824 .section .data
825
826 .desc cnt$14, near
827 cnt$14:
828 0002 04 .byte 4
829
830 .globl EP5TxAddr
831 .desc EP5TxAddr, 16bit register
832 EP5TxAddr= 40
833
834 .globl EP5TxCount
835 .desc EP5TxCount, 16bit register
836 EP5TxCount= 42
837
838 .section .text
840
841 .desc MOUSE_Send, near
842 .proc MOUSE_Send
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s page 20
843 MOUSE_Send:
352:../src/mouse.c ****
353:../src/mouse.c **** static void MOUSE_Send( void)
354:../src/mouse.c **** {
845 .LMM124:
355:../src/mouse.c **** static BYTE cnt = 4 ;
847 .LBB7:
848 .LMM125:
356:../src/mouse.c ****
357:../src/mouse.c **** if( !Mouse_Buffer[ 0] &&
850 0409 2F910000 cp dpr:pof(@Mouse_Buffer),#0
850 00
851 040e EB23 jxnz .L208
852 0410 2F910000 cp dpr:pof(@Mouse_Buffer+1),#0
852 01
853 0415 EB1C jxnz .L208
854 0417 2F910000 cp dpr:pof(@Mouse_Buffer+2),#0
854 02
855 041c EB15 jxnz .L208
856 041e 2F910000 cp dpr:pof(@Mouse_Buffer+3),#0
856 03
857 0423 EB0E jxnz .L208
858 .LMM126:
358:../src/mouse.c **** !Mouse_Buffer[ 1] &&
359:../src/mouse.c **** !Mouse_Buffer[ 2] &&
360:../src/mouse.c **** !Mouse_Buffer[ 3])
361:../src/mouse.c **** {
362:../src/mouse.c **** if( cnt)
860 0425 2F910000 cp dpr:pof(@cnt$14),#0
860 02
861 042a 6B20 jxz .L211
862 .LMM127:
363:../src/mouse.c **** cnt-- ;
864 042c 2F41FF00 add dpr:pof(@cnt$14),#-1
864 02
865 .LMM128:
364:../src/mouse.c **** }
867 0431 8B05 jxt .L210
868 .L208:
869 .LMM129:
365:../src/mouse.c **** else
366:../src/mouse.c **** {
367:../src/mouse.c **** cnt = 4 ;
871 0433 2FF10400 ld dpr:pof(@cnt$14),#4
871 02
872 .L210:
873 .LMM130:
368:../src/mouse.c **** }
369:../src/mouse.c ****
370:../src/mouse.c **** if( cnt)
875 0438 2F910000 cp dpr:pof(@cnt$14),#0
875 02
876 043d 6B0D jxz .L211
877 .LMM131:
371:../src/mouse.c **** {
372:../src/mouse.c **** EP5TxAddr = Mouse_Buffer ;
879 043f BF280000 ldw @EP5TxAddr,#dpr:pof(@Mouse_Buffer)
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s page 21
880 .LMM132:
373:../src/mouse.c **** EP5TxCount = sizeof Mouse_Buffer ;
882 0443 BF2A0004 ldw @EP5TxCount,#4
883 .LMM133:
374:../src/mouse.c **** spp( 4) ;
885 ; #APP
886 0447 C712 spp #4
887 ; #NO_APP
888 .LMM134:
375:../src/mouse.c **** ENDPR5_A |= 0x30 ; /* Tx Valid */
890 0449 05FA30 or @ENDPR5_A,#48
891 .L211:
892 .LMM135:
376:../src/mouse.c **** }
377:../src/mouse.c **** }
894 .LBE7:
895 044c 46 ret
896 .endproc
900 .Lscope6:
902
903 .globl ENDPR4_A
904 .desc ENDPR4_A, 8bit register
905 ENDPR4_A= 248
906
907 .globl EP4RxAddr
908 .desc EP4RxAddr, 16bit register
909 EP4RxAddr= 36
910
911 .globl EP4RxCount
912 .desc EP4RxCount, 16bit register
913 EP4RxCount= 38
914
915 .globl EP4TxAddr
916 .desc EP4TxAddr, 16bit register
917 EP4TxAddr= 32
918
919 .globl ENDPR4_B
920 .desc ENDPR4_B, 8bit register
921 ENDPR4_B= 249
922
923 .globl ENDPR5_B
924 .desc ENDPR5_B, 8bit register
925 ENDPR5_B= 251
926
927 .globl DADDR2
928 .desc DADDR2, 8bit register
929 DADDR2= 242
931
932 .globl MOUSE_reset
933
934 .desc MOUSE_reset, near
935 .proc MOUSE_reset
936 MOUSE_reset:
378:../src/mouse.c ****
379:../src/mouse.c **** void MOUSE_reset( void)
380:../src/mouse.c **** {
938 .LMM137:
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s page 22
381:../src/mouse.c **** /* Always called in Endpoint 0 (HUB) context */
382:../src/mouse.c **** spp( 4) ;
940 ; #APP
941 044d C712 spp #4
942 ; #NO_APP
943 .LMM138:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -