📄 access.lst
字号:
566 2 }
567 1 while (1);
568 1 }
569
570 void RTDCodeW(unsigned char code *array)
571 {
572 1 unsigned char len, m;
573 1
574 1 do
575 1 {
576 2 if (0 == (array[0] & 0xfc)) return;
577 2
578 2 len = array[0] - 3;
579 2 array = array + 1;
580 2 bRTD_SCSB = 0;
581 2
582 2 if (BURST == array[0])
583 2 {
584 3 RTDSendAddr(array[1], 0, N_INC);
585 3
586 3 array = array + 2;
587 3 m = array[0];
588 3
589 3 do
590 3 {
591 4 RTDSendByte(m);
592 4 }
593 3 while (--len);
594 3
595 3 array = array + 1;
596 3 }
597 2 else
598 2 {
599 3 RTDSendAddr(array[1], 0, array[0]);
600 3
601 3 array = array + 2;
602 3 do
603 3 {
604 4 RTDSendByte(*array++);
605 4 }
C51 COMPILER V7.06 ACCESS 11/21/2005 13:47:43 PAGE 11
606 3 while (--len);
607 3 }
608 2 RTDSendStop();
609 2
610 2 }
611 1 while (1);
612 1 }
613
614 void RTDOSDW(unsigned char code *array)
615 {
616 1 unsigned char len;
617 1 do
618 1 {
619 2 if (array[0] == _end_) return;
620 2
621 2 bRTD_SCSB = 0;
622 2 RTDSendAddr(OSD_ROW_90,WRITE,Y_INC);
623 2 RTDSendByte(*array++);
624 2 RTDSendByte(*array++);
625 2
626 2 RTDSendStop();
627 2
628 2 bRTD_SCSB = 0;
629 2 RTDSendAddr(OSD_DATA_92,WRITE,N_INC);
630 2 do
631 2 {
632 3 if(array[0] == _ext_)
633 3 {
634 4 if(array[2] == _bb_)
635 4 {
636 5 do
637 5 {
638 6 len = array[3] - 1;
639 6 RTDSendByte(_ext_ + array[1]);
640 6 }while(len--);
641 5
642 5 array += 4;
643 5 }
644 4 else
645 4 {
646 5 RTDSendByte(_ext_ + array[1]);
647 5 array += 2;
648 5 }
649 4 }
650 3 else if(array[1] == _bb_)
651 3 {
652 4 len = array[2] - 1;
653 4 do
654 4 {
655 5 RTDSendByte(*array);
656 5 }while(len--);
657 4
658 4 array += 3;
659 4 }
660 3 else
661 3 RTDSendByte(*array++);
662 3
663 3
664 3 }while(array[0] != _nn_);
665 2 array +=1 ;
666 2 RTDSendStop();
667 2
C51 COMPILER V7.06 ACCESS 11/21/2005 13:47:43 PAGE 12
668 2 }
669 1 while (1);
670 1
671 1 }
672
673
674 void RTDSetByte(unsigned char addr, unsigned char val)
675 {
676 1 // Set Write Address
677 1 bRTD_SCSB = 0;
678 1
679 1 RTDSendAddr(addr, 0, 1);
680 1
681 1 // Write one Byte
682 1 RTDSendByte(val);
683 1
684 1 RTDSendStop();
685 1
686 1 }
687
688 void RTDSetBit(unsigned char addr, unsigned char and, unsigned char or)
689 {
690 1 // Set Read Address
691 1 bRTD_SCSB = 0;
692 1 RTDSendAddr(addr, 1, 1);
693 1
694 1 // Read 1 Byte
695 1 or = (RTDGetByte() & and) | or;
696 1
697 1 RTDSendStop();
698 1
699 1 // Set Write Address
700 1 bRTD_SCSB = 0;
701 1 RTDSendAddr(addr, 0, 1);
702 1
703 1 // Write one Byte
704 1 RTDSendByte(or);
705 1
706 1 RTDSendStop();
707 1
708 1
709 1 }
710
711 #if(VLC_COMPRESS)
712 void Load_VLC_Font(unsigned char code *array, unsigned int start, unsigned int length)
713 {
714 1 unsigned char n,m;
715 1 unsigned char ucTemp[3];
716 1 unsigned char idata ucTemp_VLD[3];
717 1
718 1 #if(PARALLEL_PORT)
// unsigned char ucTemp1;
#endif
721 1
722 1 start += FONT_BASE_ADDRESS;
723 1
724 1 bRTD_SCSB = 0;
725 1 RTDSendAddr(OSD_ROW_90, WRITE, Y_INC);
726 1 ucTemp[0] = (unsigned char)((start >> 8) & 0x000f) | 0xd0;
727 1 RTDSendByte(ucTemp[0]);
728 1 ucTemp[0] = (unsigned char)(start & 0x00ff);
729 1 RTDSendByte(ucTemp[0]);
C51 COMPILER V7.06 ACCESS 11/21/2005 13:47:43 PAGE 13
730 1
731 1 RTDSendStop();
732 1
733 1 bRTD_SCSB = 0;
734 1 RTDSendAddr(OSD_DATA_92, WRITE, N_INC);
735 1
736 1 ucCnt = 0;
737 1 uiCount = 0;
738 1 bBit = 0;
739 1 ucByte_Temp = 0;
740 1
741 1 do
742 1 {
743 2 for(m=0; m<9; m++)
744 2 {
745 3
746 3 ucTemp_VLD[0] = Get_VLD(array) << 4;
747 3 ucTemp_VLD[0] |= Get_VLD(array);
748 3 ucTemp_VLD[1] = Get_VLD(array) << 4;
749 3 ucTemp_VLD[1] |= Get_VLD(array);
750 3 ucTemp_VLD[2] = Get_VLD(array) << 4;
751 3 ucTemp_VLD[2] |= Get_VLD(array);
752 3
753 3 //Rearrange the byte order
754 3 ucTemp[0] = (ucTemp_VLD[1] << 4) | (ucTemp_VLD[2] & 0x0f);
755 3 ucTemp[1] = (ucTemp_VLD[2] & 0xf0) | (ucTemp_VLD[0] & 0x0f);
756 3 ucTemp[2] = (ucTemp_VLD[0] & 0xf0) | (ucTemp_VLD[1] >> 4);
757 3
758 3 for(n=0;n<3;n++)
759 3 {
760 4 #if(PARALLEL_PORT)
#if(KINGMICE)
bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x01);
bRTD_SDIO_1 = (bit)(ucTemp[n] & 0x02);
bRTD_SDIO_2 = (bit)(ucTemp[n] & 0x04);
bRTD_SDIO_3 = (bit)(ucTemp[n] & 0x08);
bRTD_SCLK = 1;
bRTD_SCLK = 0;
bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x10);
bRTD_SDIO_1 = (bit)(ucTemp[n] & 0x20);
bRTD_SDIO_2 = (bit)(ucTemp[n] & 0x40);
bRTD_SDIO_3 = (bit)(ucTemp[n] & 0x80);
bRTD_SCLK = 1;
bRTD_SCLK = 0;
bRTD_SDIO_0 = 1;
bRTD_SDIO_1 = 1;
bRTD_SDIO_2 = 1;
bRTD_SDIO_3 = 1;
bRTD_SCLK = 1;
#else
ucTemp1 = P0 & 0xf0;
P0 = ucTemp1 | (ucTemp[n] & 0x0f);
bRTD_SCLK = 1;
bRTD_SCLK = 0;
P0 = ucTemp1 | (ucTemp[n] >> 4);
bRTD_SCLK = 1;
bRTD_SCLK = 0;
P0 = ucTemp1 | 0x0f;
bRTD_SCLK = 1;
#endif
C51 COMPILER V7.06 ACCESS 11/21/2005 13:47:43 PAGE 14
#else
794 4 bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x01);
795 4 bRTD_SCLK = 1;
796 4 bRTD_SCLK = 0;
797 4 bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x02);
798 4 bRTD_SCLK = 1;
799 4 bRTD_SCLK = 0;
800 4 bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x04);
801 4 bRTD_SCLK = 1;
802 4 bRTD_SCLK = 0;
803 4 bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x08);
804 4 bRTD_SCLK = 1;
805 4 bRTD_SCLK = 0;
806 4 bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x10);
807 4 bRTD_SCLK = 1;
808 4 bRTD_SCLK = 0;
809 4 bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x20);
810 4 bRTD_SCLK = 1;
811 4 bRTD_SCLK = 0;
812 4 bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x40);
813 4 bRTD_SCLK = 1;
814 4 bRTD_SCLK = 0;
815 4 bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x80);
816 4 bRTD_SCLK = 1;
817 4 bRTD_SCLK = 0;
818 4 bRTD_SDIO_0 = 1;
819 4 bRTD_SCLK = 1;
820 4 #endif
821 4 }
822 3 }
823 2 }
824 1 while (--length);
825 1
826 1 RTDSendStop();
827 1
828 1 }
829
830 unsigned char Get_VLD(unsigned char code *array)
831 {
832 1 unsigned char data ucZero_Cnt = 0;
833 1 bit bSec_Part = 0;
834 1
835 1 while(1)
836 1 {
837 2 if( ucCnt == 0 )
838 2 {
839 3 ucByte_Temp = *(array + uiCount);
840 3 ucCnt = 0x80;
841 3 uiCount++;
842 3 }
843 2
844 2 while( ucCnt > 0 )
845 2 {
846 3 bBit = (bit)(ucByte_Temp & ucCnt);
847 3 ucCnt >>= 1;
848 3
849 3 if( (bBit) && (bSec_Part == 0) )
850 3 {
851 4 bSec_Part = 1;
852 4 }
853 3 else
C51 COMPILER V7.06 ACCESS 11/21/2005 13:47:43 PAGE 15
854 3 {
855 4 ucZero_Cnt++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -