📄 std1.lst
字号:
"File: STD1.ASM Holtek Cross-Assembler Version 2.86 Page 8
414 00C6 0087 MOV TBLP,A ; configuration
415 00C7
416 00C7 0FDB MOV A,LOW EndSend
417 00C8
418 00C8 3C00 E sz des_count.0 ;
419 00C9 28D8 jmp exit_of_ednpointDes
420 00CA 0FC8 mov a,GetInterfaceDes
421 00CB exit_of_ednpointDes:
422 00CB 0080 E MOV ReturnAddr,A ; to ReturnAddr
423 00CC 1480 E inc des_count
424 00CD 298F JMP GetTableLength
425 00CE ;----------------------------------------------------------------------------------------------
426 00CE EndSend:
427 00CE 3C00 E sz bFLAG_RsqF
428 00CF 3000 E set bFLAG_SndFC ;clear continue send flag
429 00D0
430 00D0 3C00 E sz bFLAG_SndFC
431 00D1 2800 E jmp RequestResponse
432 00D2
433 00D2
434 00D2 1080 E SZ FIFO_SendLen
435 00D3 28E3 jmp out_of_RequestResponse ;Responde
436 00D4 3000 E set bwait_setup
437 00D5 2800 E jmp SendHandshake
438 00D6
439 00D6 out_of_RequestResponse:
440 00D6 2800 E jmp RequestResponse
441 00D7
442 00D7 GetEnd:
443 00D7 2800 E JMP ExitExt
444 00D8 ;Class-----------------------------------------------------------------------
445 00D8 GetHID:
446 00D8 0700 E MOV a,FIFO_wIndexL ;
447 00D9 0080 E mov des_count,a
448 00DA 2011 call get_HID_des_adr
449 00DB 0087 MOV TBLP,A ;HID
450 00DC 0FDB MOV A,LOW EndSend ;Set Return Address
451 00DD 0080 E MOV ReturnAddr,A ;to ReturnAddr
452 00DE 298B jmp ReadTableAndSendcnf
453 00DF
454 00DF ;----------------------------------------------------------------------------------------------
455 00DF
456 00DF GetEntity:
457 00DF 0700 E MOV a,FIFO_wIndexL ;
458 00E0 0080 E mov des_count,a
459 00E1 2019 call get_entity_des_adr
460 00E2 0087 MOV TBLP,A ; Entity
461 00E3 0FDB MOV A,LOW EndSend ;Set Return Address
462 00E4 0080 E MOV ReturnAddr,A ; to ReturnAddr
463 00E5 2986 JMP ReadEntityAndSendCnf ;Read Entity table
464 00E6 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
465 00E6
466 00E6 ReadTASTag:
467 00E6 3000 E SET bFLAG_RsqF ;Send Request
468 00E7 ReadNextCnfLp:
469 00E7 3400 E CLR bFLAG_SndFC ;clear continue send flag
470 00E8 1080 E SZ TableLength ;Finished read ?
471 00E9 2996 JMP ReadAgain ;No
472 00EA
473 00EA ;Write next descriptor
"File: STD1.ASM Holtek Cross-Assembler Version 2.86 Page 9
474 00EA 0700 E MOV A,ReturnAddr ;Get return address
475 00EB ;!!!!! Need in same page
476 00EB std_des_end_pcl:
477 00EB 0086 MOV PCL,A ; & return
478 00EC ;Return
479 00EC ;----------------------------------------------------------------------------------------------
480 00EC ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
481 00EC SetFeature:
482 00EC 1080 E SZ FIFO_wValueH ;wValueH == 0 ?
483 00ED 2800 E JMP ToStallPipe0 ;No
484 00EE
485 00EE 1080 E SZ FIFO_wIndexH ;wIndexH == 0 ?
486 00EF 2800 E JMP ToStallPipe0 ;No
487 00F0
488 00F0 0700 E MOV A,FIFO_Type ;Type (Device, Interface or
489 00F1 0E1F AND A,Setup_Rev ; Endpoint)
490 00F2 0080 E MOV TEMP,A ;
491 00F3 0A04 SUB A,04H ;Over 4 item ?
492 00F4 3D0A SZ Z ;
493 00F5 2800 E JMP ToStallPipe0 ;Yes
494 00F6 ;!!!!! Need in same page
495 00F6 0700 E MOV A,TEMP ;
496 00F7 set_feature_pcl_5:
497 00F7 0386 ADDM A,PCL
498 00F8 2915 JMP DeviceStatusSF
499 00F9 2800 E JMP TostallPipe0
500 00FA 2909 JMP EndpointStatusSF
501 00FB 2800 E JMP ToStallPipe0
502 00FC ;-----------------------------------------------------------------------------
503 00FC EndpointStatusSF: ;clear stall flag
504 00FC 1080 E SZ FIFO_wValueL ;ENDPOINT_STALL = 0 ?
505 00FD 2800 E JMP ToStallPipe0 ;No
506 00FE
507 00FE ;Check Endpoint Number
508 00FE ; snz fifo_windexL.7
509 00FE ; jmp ToStallpipe0
510 00FE
511 00FE 0700 E MOV A,FIFO_wIndexL ;Get endpoint number
512 00FF 0E7F and a,01111111b
513 0100 0200 E SUB A,FIFO_temp
514 0101 3C0A SZ C
515 0102 2800 E JMP ToStallPipe0
516 0103
517 0103 0700 E MOV A,FIFO_wIndexL ;Get endpoint number
518 0104 0E0F AND A,0FH ; Ignore direction
519 0105 2000 E call GetPipeBit
520 0106 2000 E CALL SetStall ;Set endpoint stall
521 0107 2800 E JMP SendHandshake ;send handshake flag
522 0108 ;-----------------------------------------------------------------------------
523 0108 DeviceStatusSF:
524 0108 0700 E MOV A,FIFO_wValueL ;DEVICE_REMOTE_WAKEUP = 1 ?
525 0109 0C01 XOR A,01H ;
526 010A 390A SNZ Z ;
527 010B 2800 E JMP ToStallPipe0 ;No
528 010C
529 010C 1080 E SZ FIFO_wIndexL ;Is wIndex == 0 ?
530 010D 2800 E JMP ToStallPipe0 ;No
531 010E ;enable remote wakeup ;Yes
532 010E 3000 E SET bRmtWakeup ;enable remote wakeup (flag)
533 010F 1800 E rla cmd_addr
"File: STD1.ASM Holtek Cross-Assembler Version 2.86 Page 10
534 0110 0EFE and a,11111110b
535 0111 0080 E mov fifo_addr,a
536 0112 3000 E SET ADDR_Wake ;Set remote wakeup flag
537 0113 SetAddrWake:
538 0113 0F42 MOV A,USB_ADDR_WAKE ;Address & Remote wakeup address
539 0114 0083 MOV MP1,A ;
540 0115 0700 E MOV A,FIFO_ADDR ;Write to Address Register
541 0116 0082 MOV R1,A ;
542 0117 2800 E JMP SendHandshake ;send handshake flag
543 0118 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
544 0118 SetConfiguration: ;(ok)
545 0118 0F01 mov a,1
546 0119 0200 E sub a,FIFO_wValueL ;1 - FIFO_wValueL
547 011A 380A snz c
548 011B 2800 E jmp ToStallPipe0 ; other value except 0,1
549 011C 3400 E clr baddr_state
550 011D 390A snz z ;fifo_wvaluel=1 ?
551 011E 3000 E set baddr_state
552 011F
553 011F 0FF8 mov a,11111000b
554 0120 0080 E mov STALL,a
555 0121 0F43 MOV A,USB_STALL ;
556 0122 0083 MOV MP1,A ;
557 0123 1F02 CLR R1 ;
558 0124 3400 E CLR bFLAG_HvRpt ;reset to nonreport
559 0125
560 0125 1080 E sz FIFO_wvalueL
561 0126 2936 jmp set_cfg
562 0127 3400 E clr bcfgvalue
563 0128 2800 E JMP SendHandShake
564 0129
565 0129 set_cfg:
566 0129 3000 E set bcfgvalue
567 012A 2800 E JMP SendHandShake
568 012B
569 012B ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
570 012B
571 012B
572 012B
573 012B ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
574 012B GetDescriptor: ;No check bmRequestType D4..0
575 012B ;Check bmRequestType direction
576 012B 3800 E SNZ FIFO_Type.@Setup_D ;device to host ?
577 012C 2800 E JMP ToStallPipe0 ;No:Error
578 012D
579 012D 0700 E MOV A,FIFO_Type ;only (device,interface & endpoint)
580 012E 0E1F AND A,Setup_Rev
581 012F 0A03 SUB A,03H
582 0130 3C0A SZ C
583 0131 2800 E JMP ToStallPipe0
584 0132
585 0132 0700 E mov a,fifo_wlengthh
586 0133 0080 E mov lengthh,a
587 0134 0700 E mov a,fifo_wlengthl
588 0135 0080 E mov lengthl,a
589 0136 0FDB MOV A,LOW EndSend
590 0137 0080 E MOV ReturnAddr,A
591 0138
592 0138 0700 E MOV A,FIFO_Type
593 0139 0E1E and a,00011110b
"File: STD1.ASM Holtek Cross-Assembler Version 2.86 Page 11
594 013A 390A snz z
595 013B 2800 E jmp Tostallpipe0
596 013C
597 013C 3400 E clr brd_h_table
598 013D 1F00 E clr des_count
599 013E 3C00 E sz fifo_type.0
600 013F 29AC JMP ClassDst_Interface ; Class (new)
601 0140 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
602 0140
603 0140 StandardDst:
604 0140 0700 E MOV A,FIFO_wValueH ;Descriptor
605 0141 0E1F AND A,wValueH_Dst ; Stanard, Class & Vendor
606 0142 0080 E MOV TEMP,A ;
607 0143 0A04 SUB A,04H ;Over 4 item ?
608 0144 3C0A SZ C ;
609 0145 2800 E JMP ToStallPipe0 ;Yes
610 0146 0700 E MOV A,TEMP
611 0147 std_device_pcl_5:
612 0147 0386 ADDM A,PCL
613 0148 2800 E JMP ToStallPipe0 ;Reserve
614 0149 28B8 JMP GetDeviceDes ;Get device descriptor
615 014A 28BF JMP GetConfigurationDes ;Get configuration descriptor
616 014B 289E JMP GetstringDes ;Get string descriptor
617 014C
618 014C ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
619 014C
620 014C
621 014C GetTableBeg:
622 014C 0F00 E MOV A,OFFSET FIFO_OUT1 ;Let MP0 pointer to FIFO_OUT1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -