Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

70

Transcript of Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

Page 1: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

���������������������������������

�����������������

����������������

����������������������������������������������������

Page 2: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

����� � � � ������

� �

� ���������� ������������������� !"#���

$����#%&' ()*+,-��#./0123# �

� ���������4567�8+9:;< =�>?@A9:BC< DE9:F

C< G7HI<J K)L*+,-��M,-NO#.P QR ��STU�-

V#.P WXY./01Z-���� �

� ���������[T\)�>]^_`abc#�de�F STfghiQj

klm�$nopq�r��

�@Alm�s>�tutv>��#>wt�xxyxz�xxyaz�xx`_z�xx{_z�

xx|{z�xxx{� }tudwe>��#}udx`az}ud_~az}�u{�z}�ux� ?�utw��#nopq�

?�__>�`y`z`y{z`y|s?�`ayx $?�{x�y`zy{zyxzy_z`azaxs�?�x��yxJlm� ST�

u��?�t�:���"�� �@A<� ST -Vf�:E��j���#

��� �

� �������������]> ��v�]�> ev��M�tv��#���:E$�]�d�]:E

Tj��;�������������(�-V�5#,-��� �

������FC<�[Tj:��7DE ev�� �tv������8-V�:EF S

T4�� ¡D"E¢9 �

Page 3: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � � �

� � � � ������

� �

������������� � ���������������������� ������������������������������������������������������������������������������������������������������������������������������������������

1.1 .................................................................. 1 1.2 IC��� ............................................................. 1

������������� ������������������������������������� ���������������������������������������������������������������������������������������������������������������������

2.1 ��IC�������..................................................... 2 2.2 CRW��IC������ ................................................. 2 2.3 CRW��IC������� ................................................. 2 2.4 ���� ............................................................... 3

������������� ����������������� !���� !���� !���� ! ���������������������������������������������������������������������������������������������������������������������

3.1 CRW-I"#$IC����� !.............................................. 5 3.2 CRW-II�%$IC����� !............................................. 5 3.3 &'()*+............................................................ 6

�,��,��,��,�� �-./012*-./012*-./012*-./012*++++ ������������������������������������������������������������������������������������������������������������������������������� ��

4.1 ��/012............................................................ 7 1. 345IC����67�80CT_open ........................................ 7 2. 9:5IC����67�80CT_close ....................................... 7 3. ;<=�>?�12@ABCDE(F*+ICC-message .......................... 8 4. =IC����GHCT_reset ............................................... 8 5. =IC�GHICC_reset ................................................... 9 6. ICPU�J���KLMNO/P@A�2QICC_tsi_api......................... 9 7. R%��S CT_config.................................................. 10

4.2 �()T2Q........................................................... 10 1. ��UV()ICC_read_bin .............................................. 11 2. �WX() ICC_read_record............................................ 11 3. YZ[H�\]�ICC_read_bin_p......................................... 11 4. ̂ H�\]�ICC_read_bit .............................................. 11 5. _`�\]� ICC_read_bin_s ........................................... 12

4.3 �()T2Q........................................................... 12 1. ��UV() ICC_write_bin ............................................ 12 2. �WX() ICC_write_record........................................... 12 3. YZ[H�\]�abc ICC_write_bin_p.................................. 13 4. ̂ H�\]�ICC_write_bit ............................................. 13 5. _`�\]�ICC_write_bin_s ........................................... 13

4.4 de ................................................................ 13 Hde ICC_erase_bit ................................................. 13

4.5 0Na�fg.......................................................... 14 1. hgPIN ICC_verify................................................... 14 2. i=PINOjkPIN ICC_change_pin....................................... 14 3. jkKEY ICC_send_key................................................. 14 4. lmfg ICC_internal_auth ........................................... 14 5. �mfg ICC_external_auth ........................................... 15

4.6 no() ............................................................. 15 no() ICC_select_file............................................... 15

4.7 CPU�pqrs2....................................................... 15 tCPU�pqrs2 ICC_get_challenge..................................... 15

4.8 CPU�pquv2Q ..................................................... 16 tCPU�pquv2QICC_get_response..................................... 16

Page 4: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

4.9 DES_`wx.......................................................... 14 1. y/ICPU�KLDES_`MN ............................................. 14�1. DES z`{|}DESsubkey .............................................. 16 2. DES _`DESencrypt .................................................. 16 3. DES ~`DESdecrypt .................................................. 17

4.10 �� ................................................................ 17 1. R%CPU�����NAD ICC_set_NAD ...................................... 17 2. R%�N���� CLA ICC_set_CLA ...................................... 17

������������� � ��������/0�12/0�12/0�12/0�12 ���������������������������������������������������������������������������������������������������������������������

5.1 ��/012 .......................................................... 19 1. 345IC����67�80CT_open....................................... 19 2. 9:5IC����67�80CT_close...................................... 19 3. ;<=�>?�12@ABCDE(F*+msgTcmsg ........................... 19 4. =IC����GHCT_reset .............................................. 19 5. =IC�GHICC_RESET .................................................. 20 6. ICPU�J���KLMNO/P@A�2Qtsi-api ........................... 20 7.R%��SCT_config ................................................... 20

5.2 �2QT() .......................................................... 21 1. ��UV()readb..................................................... 21 2. �WX()readr ...................................................... 21 3. �F�readstr........................................................ 19�4.YZ[H�\]readp.................................................... 19 5. ̂ H�\]�readbit................................................... 22 6. _`�\]�reads..................................................... 22

5.3 �2QT() .......................................................... 23 1. ��UV()writeb.................................................... 23 2. �WX()writer ..................................................... 23 3. �F�writestr....................................................... 20�3. YZ[H�\]�abcwritep ........................................... 21 4. ̂ H�\]�writebit.................................................. 24 5. _`�\]�writes.................................................... 24

5.4 de ................................................................ 24 5.5 0Na�fg ......................................................... 24 1. hgPIN verify ...................................................... 22 2. i=PINOjkPIN changepin ........................................... 25 3. jkKEY sendkey ..................................................... 25 4. lmfg inteauth .................................................... 25 5. �mfg exteauth .................................................... 25

5.6 no()............................................................. 26 5.7 CPU�pqrs2 ...................................................... 26 5.8 CPU�pquv2Q..................................................... 26 5.9 DES_`wx.......................................................... 26 1. y/ICPU�KLDES_`MN ............................................. 23 1. DES z`{|}DESsubkey .............................................. 27 2. DES _`DESencrypt .................................................. 27 3. DES ~`DESdecrypt .................................................. 27

5.10 �� ................................................................ 27

�X�X�X�X�� ��������������� �����������������������������������������������������������������������������������������������������������������������������������������

�X�X�X�X� �� � �����������������/012�������/012�������/012�������/012���� ��������������������������������������������������������������������������������������������

1 DOS�C FOXPRO��IC�/012���� .................................. 31

2 WIN95�VISUALBASIC5��IC�/012����............................. 32

Page 5: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

3 WIN95�POWERBUILDER5��IC�/012���� ............................ 35

4 WIN95�VISUALFOXPRO5��IC�/012���� ............................ 36

5 AT1604 AT88SC1604 ������....................................... 41

6 MIFARE�/��/012................................................. 42

�X�X�X�X�� � ���������������������������� ���������������������������������������������������������������������������������������������������������������

�X�X�X�X�� � ���������F�8�0*+����F�8�0*+����F�8�0*+����F�8�0*+ ���������������������������������������������������������������������������������������������������������

�X�X�X�X�� ����5�����5�����5�����5�� ���87#*+���87#*+���87#*+���87#*+ �����������������������������������������������������������������������������������������������������

�X�X�X�X � � ��������4���4���4���4K��*+K��*+K��*+K��*+ ����������������������������������������������������������������������������������������������������������������

�X�X�X�X�� � �������� *+������ *+������ *+������ *+�������������������������������������������������������������������������������������������������������������������������

�X�X�X�X�� ��¡�¢�¡�¢�¡�¢�¡�¢ ��������������������������������������������������������������������������������������������������������������������������������������������������

Page 6: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03
Page 7: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

������������� � �����������������������

���� ���������

��

� ���s�£¤��¥¦§¨�� ��©ª��s�«¬­¤W���®¯°±²±³¯°´��µ±¶·µ¯��³±´�

¸��>¹³±¯�¶³±´� ���º�lm no$��»¼ª½#¥¦§¨¾¿ÀÁLÂÃ%

¿� Ä+ź�©ªÆ£�LÇÈ#�¿s�WÉÊËÌ»¼MÍÎ���Ï+Ð�#

HÑs�Ï0ÒÓÔÕ�Ö×#ØÙ �

����U���ÚÁ#¥¦§¨ÛÜ ����P�jkÝÞß �

� lm�� ��#¥¦§¨WÏbc#D"ttd�]u �

� nolm�� ��#¥¦§¨WÈ�nopq#D"ttd�]u �

� �de� ��#¥¦§¨[�È�nopq D"ttd�]uF SÈ�໼�

�de �

� ���áâªT�WÝ+ lm� º��de#�㩪�ä å橪� ©ª�#

Yç� Ïè¸8襦§¨¾¿é¦ Qêë¦�LÖ×ÇÈ#�¿ ©ª�¾¿

º�ìí¸îï#��lmª½ �BðT�Fñò ¸�Bñ»¼Móôõ- �

¾¿BSº�pq»¼âª -LhiMö,Fñ��#ËÌM¾¿÷øóYA¨Mù

úû"#pq⪠å橪�Sº�fü#ýþ �����M§� ��'��Ï

è�<à7 �������������������������

� ��Ö×�º��de�M�de#����¤W�����㸩ª�ä ��3, iW

ã��älm�M©ª� �

����

���� � �������������������

��

� �����5���s�-�Ï���#no��s�C�8æo�s��æ��sj

���sº��X#ÛT��R�Fñ��#lm sQRW-V��8+��no;

s�-V!" o���4�¸567õ#ÍÎís$�j��%���#&<l�s

�'�(��)�o�*+ò¸,- .'XiK-L/" �0 12 3ÐJ4o

P/56#ñ7 �

Page 8: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

��������� ����������� ����� ����� ����� ����

���� �������������� ���� ���� ���� �

��

� � «¬­¤W���?����?��t>>��u]�ewt� 89��3Ó����"��

#�: �%÷âª�;¦��#�� âª<#STj�"��»¼ (='

Tj�9�#>? @Tj�WñA&<Á������B âª' Tj9�º:

�� ��»¼J⪠@Tj4567¸�����);¦��#�� �

#é¦ñAÞCDE �F �G:E ��9H áý$I�ëCJ T;¦#JK

�P� �#L� ËÌ»¼ lm I�$�GJ �%÷DM����,

-��#NAé¦ 'RSO$�ñ�PA .Q �,-��#01�ÕRSTUØ

#�- �

� �#+ßU��âªVW TXYWZß [�� ��< �

\]< �$Z-�ëC �

��������������������������������������

��

� º�ZZ#⪠^×�L���,-�_#�5��4`ÛÜ#P/s���

� #!"abØP �

� �-����º�K-cde T�fg�-#*+lm��"��#X

h .'5i�j2kñ7#lm n�op,- ) q= �oÏè567rs'

tP/�:��������uBF!"#���$����#%&' ()uB

,-��#./ 0124õvw#���7º ������- Z-����x

��Ä+yzk,{'�# Üí �����Z-�[º:�-�#Ï|âª

F S�fü#�Xâª�r�

����9}~�no �os������jk�h �

�������-����"ZZ � �����Z-���íT����"no»

¼ Ä+no�#����� �ª������Z-�'x�2 ����'

2#�����3�#�� �

�����T����nEú � ��í�YÏEú �

� ���x����Eúõ� �ª��B��x�2 �

�����3ë9:;<89 ��DE¸Z-��A4567¢9 �

��������������TK-L8+��� =r��

�@Alm� >�tutv>��#�>wt�

xxyxz�xxyaz�xx`_z�xx{_z�xx|{z�xxx{� }tudwe>��#}dux`a�

}du_~az}�u{�z}�ux�s?�utw��#nopq�?�__>�`y`z`y{z`y| ?�`ayx$lm�

?�{x�y`zy{zyxzy_z`azax ?�x��yxJsST�u?��?�t�:���"�� �de��

['�lm�F ST\)�>]z�t�^_`a�`z{z|zxbc#�de� �

����

����

��� � ����������������������������������

��

���������U�4567#9:&<T�WBC< FC< G7< �

Page 9: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

������ �����BC<�W567@A< Û�-567DE T3ëLb�

� ����c|��«��þ�g���� �

������ ������FC<�4�7��D"E9: �

������ �������G7<�WZ-� BëT�§§� T -Vf"�,

-��k�a�� �

�������� � � � �@ABC<���� � � �

��������� FC<���� �

��������� � È�ýþM�����#lm�������� ���� 6 �

�Z-��TU�-V.PY�Z-���� ���� $���6 �

��� �����������������

��

� ��������

���

� Bë<����#3ë��\)|��«��þ�g�#3ëbc T�:��d�

7#P�3ë�� I����d�7@A��� .�v§�s�3ë W;� �

Page 10: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

���� ���� �� �� �� �������������������

���

���

� FC<����v��¡F:§�s4d�7DE¸�� ¡DE¢9 T¢CL£¤

' �

� ���� �

��

����

� �

� � �G7<����º�ýþM¥¦����� T -Vf"�,-����D

Ek�a�� ����

Page 11: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

������������� ����������� ����� ����� ����� ����

���BC<BC<BC<BC<����#��#��#��#3333ëëëë�

� ���>?@A:E���567#@A�� �4@A:E��567Bñ��`aA

��§§9: �����P���� '¨©ª «���§§#¬­b®�i

�,L�¯'°#`±²$@A:E�#`±² �¨�T �z]�z]�z]�z]�³ @A:E�

´{ ´x�Y �,b�µk¶ �

�E­� ´{� ´x� �³� �ô�

�]u�`� {�|� {�|� |�_� ��·x�

�]u�{� {�|� `�{� {�_� ��·|�

�]u�|� `�{� {�|� |t_� ��·x�

�]u�x� `�{� `�{� {t_� ��·|�

���� ����

������������������������������������ ������� ������� ������� ���������������

��������FC<FC<FC<FC<����#��#��#��#3333ëëëë�

����FC<������~¸�~¸¸{�¸§§A4567DE9: ��¡F:§�:

���!�Fã�F¾W�¹�¡ä �

� =º»#567�-�²�F t.�-�¸��¸§§A 9A§A±=k �

�� � �� � � ����� � � � � � � � � � � � � � � � � � � � ����� � ��

� � ¸� � �� �� � � � � � � � � � � � � � � � � � � � ���� �¸� � � � �

� � �� � � ������� � ��

� � ¼� � ������ � � � � � � � � � � � � � � � � � ����� �¼�

� � �� � ��� �� � � � � � � � � � � � � � � � � � � ����� � � � � �

� � F� � ���� � � � � � � � � � � � � � � � � � � �� �� �F�

���������������� � � � � � � � � � � � � � � � � � � �� �� � �

=º»#567�-{�²�F t.�-~¸�{�¸§§A 9A§A±=k �

� � ��

���~����{:½������������������¾1�{�����{��

���¸���|1¾������������������:½�|�����¸�

�����������������˱��������������^�������

���¼���x����������������������������{y���¼�

�������a��>�����������������������>�a������

���F���^���>������������������������>x� F�

��������_���>������������������������>��

Page 12: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

���� �PPPPþ¬þ¬þ¬þ¬A�¿A�¿A�¿A�¿�

��� !"�#$%� � {"&'()* !"�'+'�í��#À�vC ��¬AÁ¢�� � � � � � � � � � �

� � � � � � � � �-V,-��ÜÏÃÄÅk �

��� !"�'+'� � ����� �

��� !"# �,� � � � � � ���-V:E�¿­¬A �

���'+-.*/'�� �����q��� �-V01,-��íÇȸÀÉ �

���'+-.*/'�'+'� '+-.*/'�� �-�¦#û"�� �

�������0��(+(� � � � ��1�2��0���-�¿ �

���( 3 45&� � ���67���67�2������%5!�45&:EÊ~�ÃÄÅ� �

���3 "#$�� � 67�2������%5!�"#$45"&:EÊ~�ÃÄÅ� �

���.& 45&� � 1# !5&5%(���%5!�45&:EÊ~�ÃÄÅ� �

�0��.& "#$� � 1# !5&5%(���%5!�"#$45"&:EÊ~�ÃÄÅ� �

����8 45&� � 9#&)-/���%5!�45&:EÊ~�ÃÄÅ� �

����8 "#$� � 9#&)-/���%5!�"#$45"&:EÊ~�ÃÄÅ� �

����%5+45&� � �7:��7�%5!�45&:EÊ~�ÃÄÅ� �

����%5+"#$� � �7:��7�%5!�"#$45"&:EÊ~�ÃÄÅ� �

�������:� � ���:�����:E~��

���� !"��4//� � � � � ��ËgÌÊÃÄÅ �

���� !"4//� � � � � � � � "#$45"&NOkgÌÊÃÄÅ �

���� %5+3-&'� � � � � � �5+3-&':EÊ~�ÃÄÅ �

���� �6�'+-.*� � � �5"'!6)#/4'!��0qÃ��ÃÄÅ �

�0�� 96�'+-.*� � � 9#&)-/6-&# ��0qÃ��ÃÄÅ �

���� 9��'+-.*� � � 9#&)-/�5+*!5��0qÃ��ÃÄÅ �

����.#%-!'� � � � � � ��:���-�¿$qÃ��ÃÄÅ �

��

�� �

����

Page 13: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

����

������������� ����������������������������������

�------------------------------------------------------------------------- ������������ IC��:E�¿ CRW.H 1998-02-03 Version 2.1 K-� : BC<CRW-I � FC<CRW-II K-����: DOS UNIX XENIX NO K-IC� : \)ISO 7816-1 2 3 4#CPU� SIEMENS��# SLE4404/4406/4418/4428/4432 / 4442I2C@Alm�

GEMPLUS��#GPM416/GPM896/GFM2K/GFM4K ATMEL��#AT24C01/02/04/08/16/64/AT4D504 AT88SC101/102/103/ATMEL1604

---------------------------------------------------------------------------

� � ����%÷:E%÷:E%÷:E%÷:E~~~~�����

-------------------------------------------------------------------------

� � ��� �ÍÍÍÍ04040404����¢9#�E��¢9#�E��¢9#�E��¢9#�E������

int CT_ope n(char *portname); À�: portnameW4�¢9#�E­¤. “AUTO” fgÎÏ4��¢�#�E,nÐ-Q~�í�ÁÂÑ'§ �DOS��kTò COM1 COM2 COM3” COM4 �UNIXkTò/dev/tty1a /dev/tty1b /dev/tty2a .... �UNIXk��� E��ÒÀÓÔÅD ÕÖ: ×L0WÍ0�EØÙ; ÞL0W¦âÕÖÍ0#�EÚ�\,-L���~� -------------------------------------------------------------------------

� ��� �bÛbÛbÛbÛ4444����¢9#�E��¢9#�E��¢9#�E��¢9#�E��� ����ÁÁÁÁ.-.-.-.-�����ÍÍÍÍ0#�E0#�E0#�E0#�E �

int CT_close(int fd); À�: fdW~�CT_openÚÕÖ#�EÚ�\ ÕÖ: ×L0WØÙ JL0¦â

Page 14: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

----------------------------------------------------------------------

���T�����#T�����#T�����#T�����#~~~~����ÕÖÜÝÞÕÖÜÝÞÕÖÜÝÞÕÖÜÝÞW¬W¬W¬W¬¦�¿¦�¿¦�¿¦�¿����������U�U�U�U����bcYçbcYçbcYçbcYç��

ßÚ��#�ÕÖyÌSW1 SW2àç4ISOÛÜtÀÉ¢,Há charICC-message (unsigned ret); À�: retWjk~�ÚÕÖ#Ê� ÕÖÜ: Ê��¿ àç 0xffff: "Communication error" �Gâã 0x900x: "OK" ��x� 0x61xx: “OK” ��x� SW2ù¿äåT jæç#¢,¦è� 0x6200: "No card or time out or invalid NAD or PIN" � 0x6281: "Reading error/data error" âã 0x6282: "End of file" ¬A(é 0x6300: "Error in PIN check" âã#PIN 0x63Cx: "incorrect PIN,x retries possible" xêâãPIN 0x6400: "Reset not successful" �ËÛ¦â 0x6500: "EDC or write error" ë�â 0x6581: "Update not successful" ìí��Û¦â 0x6700: "Wrong length Lc" âã#îúïð 0x6900: "Wrong state" âã#yÌ 0x6981: "Wrong file type PUK point" âã#¬Aßi 0x6982: "No file selected" ¬Añ!" 0x6983: "No retry possible" ÛT«ò 0x6985: "file exists alread" ¬AÑl� 0x6A00: "Wrong P1/P2 or file not find" âã#P1/P2 0x6A80: "Wrong parameters command" âã#À� 0x6A81: "Wrong value for P2" âã#P2 0x6A82: "File not found" ¬Aóô� 0x6A84: "No enough memory in file" ¬ATõö# 0x6A86: "Wrong parameters" âã#À� 0x6B00: "Wrong offset" âã#÷øù 0x6D00: "Invalid instruction code" (#ùúÊ� 0x6E00: "Invalid Class Byte" (#CLA 0x6FF0: "System error" ��âã jkÚ�~���ÕÖ0X900X�¦âû" ��Wâã(�¿µ') -------------------------------------------------------------------------

��������������������������� �

unsigned CT_reset(int fd); À�: fdÑÍ0#�EÚ�\. ÕÖ: 0x9000 ¦â

Page 15: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

0xffff �GØÙ �¿: f,-PAM��GÛúÐíTÐ-Q~� -------------------------------------------------------------------------

� � ��� � �����������������������

unsigned ICC_reset(int fd,char *len,char *resp); À�: fd :ÑÍ0#�EÚ�\. len :W�IC��ËÚÕÖ#�Ë��#ïð resp :W�Ë#��(º ÕÖ: 0x9000 ¦â 0x6200 � 0x6201 úûÛLh 0xffff �GØÙ -------------------------------------------------------------------------

� � ���}}}}����¸�1�¸�1�¸�1�¸�1¾î¾î¾î¾îúQ:úQ:úQ:úQ:½ÕÖ½ÕÖ½ÕÖ½ÕÖ#��#��#��#�������� �� �

comm#(=: CLA INS P1 P2 Lc DATA [Le] ��DATAïðWLc¦è resp#(=: DATA��DATAïðWLe¦è unsigned ICC_tsi_api(int fd,unsigned char len, char *comm, unsigned char *lenr,char *resp); À�: fd : ÑÍ0#�EÚ�\. len : îúcomm#ïð comm : 1}�'#îú lenr : ��':½�#��ïð resp : ��':½�#�� ÕÖ: 0xffff�GØÙ(1¾îú¸:½ÕÖ#��ØÙ. ��W��'ÕÖ#yÌSW1 SW2,�¿µ3 �¿:1.�~�K-LÚ�CPU��� 2.ü-�~�Tf�,-����÷�ÛýI#lm�¸âª Ð-À�=k: CLA=80 INS=10 P1=0áËòIO��, 1á¦èòIO��(U��¤í�.P) P2=í�þNê�(�û"D1..Dlc D1...Dlc...),ßW0t�û"Ïê Lc= í�� D1...Dlc Lc¦èí�,àç=k: �Ϧè64˶��CIC���y̸IO��,�4˶��í b7E1R%£¤¥ b6-b4¦R%�£¤ b3E§¨©H b2-b0§¨ª«

fb7-b4W0í,¶�Û�C��yÌ

Page 16: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

fb7W1'b6-b4W0í,¶�Û�C��yÌ'�IOyÌ ���zW�C��yÌ,����=k: 1=C1 (VCC) C5 (GND) 2=C2 (RST) 5=C6 (VPP) 3=C3 (CLK) 6=C7 (IO) 4=C4 (FUS) 7=C8 (PGM) b3=1¶��í9ËW��, 0¶��í9ËW2à� b2-b0¶��íïð,.Q1¦è8T�í7��¸14à� jIC��ËWq,îúW: 80 10 00 00 07 90 20 34 a4 b4 20 �Ë��îúW: 80 10 01 ff 03 80 b5 35 -------------------------------------------------------------------------

� � !�����C�ßC�ßC�ßC�ß¼¼¼¼�ûûûûÛÛÛÛÐÐÐÐ----Q~Q~Q~Q~����....�fgóô�ß�fgóô�ß�fgóô�ß�fgóô�ß¼¼¼¼����� ��" ��

unsigned CT_config(int fd,char CardType); À�: fd : ÑÍ0#�EÚ�\. CardType: 0x00 �C4�#�GúûISO7816-3 T=0úû 0x01 �C4�#�GúûISO7816-3 T=1úû 0x08 I2@A� AT24C01/02/04/08/16... 0x09 SLE4418 SLE4428 0x0A SLE4432 SLE4442 0x0B SLE4402 SLE4404 GPM416 0x0C SLE4403 SLE4406 0x0D SLE4403 ST1304 0x0E AT88SC101 0x0F AT88SC102 0x10 AT88SC103 0x11 GPM896 0x12 AT1604 0x13 AT24C64 0x14 AT4D504 0xFF ÕÖ�ß¼ ÕÖ: 0x9000 ¦â 0xffff �GØÙ 0x6A80 À�ÛLh �¿: �fgóô�ß¼([AT88SC101/AT88SC103/GPM896F),.QÏ �ÛÁÐ-Q~�,[��Ûªhi�. -------------------------------------------------------------------------

� � ����¬¬¬¬AAAAM��M��M��M���

-------------------------------------------------------------------------

Page 17: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

� � ���������������¬¬¬¬AAAA������#�$ �������!%������

unsigned ICC_read_bin(int fd,int offset,int len,char *resp); À�: fd : ÑÍ0#�EÚ�\ offset : �CPU�W¬A÷øù�lm�W ��³ len : ���#ïð resp : 2#�� �¿: K-LCPU�MÚ�ýI#lm��b�ISO 7816-4#~�¶�K- L\)ISO 7816-4bc#CPU�(jkÜ) -------------------------------------------------------------------------

� � ��� �®Å®Å®Å®Å¬¬¬¬AAAA� ������#�� ��#�����!%������

unsigned ICC_read_record(int fd,char rec,char arg,char len,char *resp); À�: fd : ÑÍ0#�EÚ�\. rec: Ñ!"#®Å¬A#®Å±(1-255 0¶�fg®Å) arg: 65ËW0¶�fgÑ!"#¬A �t65ËW0¶ �P#¬A�3ËW100 ¶�ùY#rec®Å, 101 ¶��rec®Å��Ïè®Å,110 ¶�� �Ïè®Å�rec®Å. len : ���#ïð resp: 2#�� ------------------------------------------------------------------------

� � ���ÈÈÈÈ4444����ËËËËlm�lm�lm�lm�������#�$ ����&'����(��(�%(�%��

unsigned ICC_read_bin_p(int fd,int offset,int len,char *resp); À�: fd : ÑÍ0#�EÚ�\. offset : lm�# ��³ len : ���#ïð resp : 2#���è��¦èõ��Ïè¦è4�Ë�¿ q= 01 00 02 00 03 00 04 01 05 01 06 01 07 01 08 01 ���1 2 3¦è¶�Ñ4� �4 5 6 7 8¦è¶�ñ4� ------------------------------------------------------------------------

� � ���ááááËËËËlm�lm�lm�lm�������#�$ ���&'��)�()�()�()��*�%%���)�(�)�(�)�� �

� � � � � � � � � � � � � � � � � � � � � � � � � � � � � *���)��+�,���(%-���

unsigned ICC_read_bit(int fd,int offset,int len,char *resp); À�: fd : ÑÍ0#�EÚ�\. offset : lm�# ��³

Page 18: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

len : ���#ïð resp : 2#�� �¿ offsetWË�³ ------------------------------------------------------------------------

� � ���nolm�nolm�nolm�nolm�� ������#�$ ����ÁÁÁÁ....����----��#�./ìíìíìíìíoooo������ � � � �

÷�X�#noâª,������í#o��ªx�2) unsigned ICC_read_bin_s(int fd,int offset,int len,char *resp); À�: fd : ÑÍ0#�EÚ�\. offset : lm�# ��³ len : ���#ïð resp : 2#Ñ�o#�� -------------------------------------------------------------------------

� ����¬¬¬¬AAAAM��M��M��M���

-------------------------------------------------------------------------

� � ���������������¬¬¬¬AAAA� ����0� ��$ �������!%������

unsigned ICC_write_bin(int fd,int offset,int len,char *data); À�: fd : ÑÍ0#�EÚ�\. offset : �CPU�W¬A÷øù �lm�W ��³ len : ���#ïð data : �#�� ------------------------------------------------------------------------

� � ���®Å®Å®Å®Å¬¬¬¬AAAA� ����0� ��� ��#�����!%������

unsigned ICC_write_record(int fd,char rec,char arg,char len,char *data); À�: fd : ÑÍ0#�EÚ�\. rec : Ñ!"#®Å¬A#®Å±(1-255 0¶�fg®Å) arg : 65ËW0¶�fgÑ!"#¬A �t65ËW¬A± �3ËW100 ¶�ùY#rec®Å101 ¶��rec®Å� �Ïè®Å110 ¶���Ïè®Å�rec®Å len : ���#ïð data : �#��

Page 19: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

-------------------------------------------------------------------------

� � ���ÈÈÈÈ4444����ËËËËlm�$lm�$lm�$lm�$��������� ����0� ��$ ���

unsigned ICC_write_bin_p(int fd,int offset,int len,char *data); À�: fd :ÑÍ0#�EÚ�\ offset :lm�# ��³ (��íW��#Ë�³) len : ���#ïð (��íàç) data : �#�� (��íàç) �¿: 1. -Q~���#��j� *�í(SLE4432/42/18/28) 2. �SLE4404 AT88SC101/102/103 GPM416 GPM896T-Q~���� �� ------------------------------------------------------------------------

� � ���ááááËËËËlm�lm�lm�lm�����0� ��$ ���&'��)�()�()�()��*�%%���)�(�)�(�)�� � � � �

� � � � � � � � � *���)��+�,���(%-���

unsigned ICC_write_bit(int fd,int offset,int len,char *data); À�: fd : ÑÍ0#�EÚ�\. offset : lm�# ��³ len : ���#ïð data : #�� -------------------------------------------------------------------------

� � ���nolm�nolm�nolm�nolm�����0� ��$ �����ÁÁÁÁ....����----��#�./ìíìíìíìíoooo������

÷�X�#noâª,�����o��ªx�2) unsigned ICC_write_bin_s(int fd,int offset,int len,char *data); À�: fd : ÑÍ0#�EÚ�\. offset : lm�# ��³ len : ���#ïð data : �#�� -------------------------------------------------------------------------

���� �����[[[[�

------------------------------------------------------------------

� � ���ËËËË����[[[[� ��������$ ���&'��)�()�()�()��*�%%���)�(�)�(�)��+�,���(%-���

unsigned ICC_erase_bit(int fd,int offset); À�: fd : ÑÍ0#�EÚ�\.

Page 20: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

offset : lm�# ��³ �¿ �[��Ë�³0Ò»#16Ë �2¦èBð

���� �Eú$�Eú$�Eú$�Eú$�L�L�L�L��

-------------------------------------------------------------------------

� � �������������1�����2� "/�����!%������

unsigned ICC_verify(int fd,char pin_len,char *pin); À�: fd : ÑÍ0#�EÚ�\. pin_len: Eúïð pin : Eú �¿: K-LCPU�MÚ�ýI#È�nopq#lm� AT1604���o���µ ÔÅB���� ------------------------------------------------------------------------

� � �������������1QQQQìíìíìíìí��1����� 3���� ��

unsigned ICC_change_pin(int fd,char pin_len,char *oldpin,char *newpin); À�: fd : ÑÍ0#�EÚ�\. pin_len: Eúïð oldpin : �Eú newpin: �Eú �¿: AT1604���Qìío� µÔÅB���� ------------------------------------------------------------------------

� � ��� � �ìíìíìíìí4'5�������#�./���lm�#no¸�lm�#no¸�lm�#no¸�lm�#no¸ÁÂÁÂÁÂÁÂ����ÐÐÐÐ----Q~Q~Q~Q~������

unsigned ICC_send_key(int fd,char len,char *key); À�: fd : ÑÍ0#�EÚ�\. len : key#ïð(×L17¦è) key : keyBð ------------------------------------------------------------------------

� � ���BñBñBñBñL�L�L�L�� ���� ��������6�3������!%������

unsigned ICC_internal_auth(int fd,char kid,char *randifd,char rlen,char *encrand); À�: fd : ÑÍ0#�EÚ�\. kid : key�ISF�#�±

Page 21: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

randifd: F�#8è!7� rlen : �CPU�'òÖ#no��#ïð encrand: CPU�"�DESno{6�#�� ------------------------------------------------------------------------

� � ��� �FñFñFñFñL�L�L�L�� ����7�������6�3������!%������

unsigned ICC_external_auth(int fd,char kid,char *encrand); À�: fd : ÑÍ0#�EÚ�\. kid : key�ISF�#�± encrand: 8èno�#o¬ -------------------------------------------------------------------------

�� � �!"!"!"!"¬¬¬¬AAAA�

-------------------------------------------------------------------------

� ��� �!"!"!"!"¬¬¬¬AAAA� ������ ��" �������!%������

unsigned ICC_select_file(int fd,int fid); À�: fd : ÑÍ0#�EÚ�\. fid : �!"#¬A± ( MF�¬A±W#0x3f00) -------------------------------------------------------------------------

��������'ò�'ò�'ò�'ò!!!!7�7�7�7��

-------------------------------------------------------------------------

� � ��� ���������'ò�'ò�'ò�'ò!!!!7�7�7�7�� ������� 3�����������!%������

unsigned ICC_get_challenge(int fd,char len,char *rand); À�: fd : ÑÍ0#�EÚ�\. len : �CPU�'!7�#ïð rand : 2#!7� -------------------------------------------------------------------------

Page 22: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

� � ���� � ����'òö,���'òö,���'òö,���'òö,���

-------------------------------------------------------------------------

� �����������'òö,���'òö,���'òö,���'òö,��������������������!%������8)úûúûúûúû��

unsigned ICC_get_response(int fd,char len,char *resp); À�: fd : ÑÍ0#�EÚ�\. len: �CPU�'òö,��#ïð rand: ò2#�� -------------------------------------------------------------------------

� � ���� � ���nononono{{{{6666 �

-----------------------------------------------------------------------------------------

� � �������::::}}}}��1��1��1��1¾¾¾¾9'�nonononoîîîîúúúú�

unsigned ICC_tsi_api(int fd,21,char*comm,unsigned char *lenr, char *resp); À� fd : ÑÍ0#�EÚ�\ 21 : DESnoîúïð comm: 1}�'#DESnoîú lenr : ÕÖ��ïð resp : ÕÖ�� �¿ DESnoîúW 10 02 P1 00 10 8¦èo� 8¦è�� P1 00no01�o � � ������������������������������������������������������������������������

9'�{{{{6666@@@@TTTTÐÐÐÐ-jk-jk-jk-jk~~~~���� �

� � ���9'��ÃÃÃÃoooo��������¦¦¦¦� 9'��6$./�

void DESsubkey(char *subkey,char *key); subkey: 8¦èkey�¦#768¦èÃo�,Ão�-LnoM�o -------------------------------------------------------------------------

� � ���9'��nononono9'�� �/��

void DESencrypt(char *subkey,char *dest,char *sour); subkey: key�¦#768¦èÃo� dest : no�#o¬ sour : ¿¬

Page 23: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

-------------------------------------------------------------------------

� � ���9'������oooo9'�# �/��

void DESdecrypt(char *subkey,char *dest,char *sour); subkey: key�¦#768¦èÃo� dest : �o�#¿¬ sour : o¬ -------------------------------------------------------------------------

� ��������������

-------------------------------------------------------------------------

� � ����C�C�C�C�����������³³³³1*9��������1*9�

void ICC_set_NAD(char nad); À�: NAD �³ �¿: =Û�C��#$ÜW00 -------------------------------------------------------------------------

� � ����CùúßiÊ�CùúßiÊ�CùúßiÊ�CùúßiÊ����� �&*���������&*�

void ICC_set_CLA(char cla); À�: cla ùúßiÊ�. �¿: ÛÜ#CPU��ùúßiÊ�TªÛÜ

Page 24: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

���� � ����������������

����

------------------------------------------------------------------------- ������������ IC��:E�¿ 1996-03-03 Version 2.1 ÷:EK-L�]�d�]{����]���]>M��]�d�]{����]����v�]�> ��-í,%���þ'¢,ÃÄÅk#ʬAM&°¯·'¶±(�°)°*�{"��#fgÄŸd?�+Úª�

,�#ÄÅ �

{"&°¯·'¶±(�°)°�¦¶±(�µ®- �

Ð-~�g¸��0ÒíÁÂ-k��.Í0ʬA �

� � � � >t��w�/�?��]v��]�:EʬA­ �

K-� : BC<CRW-I FC<CRW-II K-����: DOS UNIX XENIX NO K-IC� : \)ISO 7816-1 2 3 4#CPU� SIEMENS��# SLE4404/4406/4418/4428/4432 / 4442 I2C@Alm�

GEMPLUS��#GPM416/GPM896/GFM2K/GFM4K ATMEL��#AT24C01/02/04/08/16/64 AT4D504 AT88SC101/102/103 AT1604

�¿ `�[���¿#~�F Ú�FOXPRO:E~�#ÕÖÜ$º�=k(= �

� � >�`�>�{�0wtv��?�?1�

������>�`�>�{��ÕÖÊ� �àç �>]^_`a¸�#����2Y àç#�¿µ 4.1.2 TÐ-u>}ãä¸�u>}ãä~���ÝÞW«¬¸�¬#¬¦�¿ ÕÖ�

� � 3~yy�3íx� ��ZËïð#¦\¼Ü �

������wtv�ÕÖÜ#��4Ë j`a��¶��¤��#ïð �#~�Q� �

�������?�?��¤#�� �#~�Q� �

�q= �

�������ÕÖ�~yyyy?y`y{�tyxy�yay^y_y~�t�

��������>�`�>�{5�~yyy�¶�¦â�

�������wtv5y?�¶��6¦è���

�������?�?5y`y{�tyxy�yay^y_y~�t¶����W�

�������������y`�y{��t�yx�y��ya�y^�y_�y~��t�

{��LîúJ}�1��#îú Ú1��#�<�-?>����¶�#`a�����

� ���� ��,W y � ~ ? � � ßW�7¦\ îúÛ4�(º

� ���%à ? � � �ª-Þ¦8 Ûª-× �

��q= ��#�³`y0Ò�è¦\``+ {{+ ??+ ��+ t�+-=kîú�É �

� �����t��5�����t/ �� `y � ``{{??��t� �

��ïðù¦\ïð �

Page 25: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

---------------------------------------------------------------------------

� ����%÷:E%÷:E%÷:E%÷:E~~~~�����

-------------------------------------------------------------------------

� � ���ÍÍÍÍ04040404����¢9#�E��¢9#�E��¢9#�E��¢9#�E������

ret= CT_open(portname) À�: portnameW4�¢9#�E­¤(¦\¼ ‘AUTO’ fgÎÏ4��¢�#�E,nÐ-Q~�í�ÁÂÑ'§ �DOS��kTò’COM1’ ‘COM2’ ‘COM3’ ‘COM4’ ÕÖ: �ܼ ×L0WÍ0�EØÙ; ÞL0W¦â fdWÍ0#�EÚ�\,-L���~� -------------------------------------------------------------------------

� ���bÛbÛbÛbÛ4444����¢9#�E��¢9#�E��¢9#�E��¢9#�E��� ����ÁÁÁÁ.-.-.-.-�����ÍÍÍÍ0#�E0#�E0#�E0#�E �

=CT_close(fd) À�: fdW~�CT_openÚÕÖ#�EÚ�\ ÕÖ: ÕÖÜ ----------------------------------------------------------------------

� � ���T�����#T�����#T�����#T�����#~~~~����ÕÖÜÝÞÕÖÜÝÞÕÖÜÝÞÕÖÜÝÞW¬W¬W¬W¬¦�¿¦�¿¦�¿¦�¿���MMMM ����U�U�U�U����bcYçbcYçbcYçbcYç��

ßÚ��#�ÕÖyÌSW1 SW2àç4ISOÛÜtÀÉ¢,Há aa=msg( SW) aa=cmsg(SW) À�: ret(¦\¼ Wjk~�ÚÕÖ#Ê� -------------------------------------------------------------------------

� ��������������������� ������� �

ret = CT_reset(fd) À�: fdÑÍ0#�EÚ�\. �¿: f,-PAM��GÛúÐíTÐ-Q~� -------------------------------------------------------------------------

Page 26: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � ���������������������:'�'��

ret = ICC_RESET(fd) À�: fd :ÑÍ0#�EÚ�\. -------------------------------------------------------------------------

� � ���}}}}����¸�1�¸�1�¸�1�¸�1¾î¾î¾î¾îúQ:úQ:úQ:úQ:½ÕÖ½ÕÖ½ÕÖ½ÕÖ#��#��#��#���� �� �

comm#(=: CLA INS P1 P2 Lc DATA [Le] ��DATAïðWLc¦è RET = tsi_api(fd,len,comm) À�: fd : ÑÍ0#�EÚ�\. len(�ܼ<240) : îúcomm#ïð comm(¦\¼ : 1}�'#îú �¿:1.�~�K-LÚ�CPU��� 2.ü-�~�Tf�,-����÷�ÛýI#lm�¸âª Ð-À�=k: CLA=80 INS=10 P1=0áËòIO��, 1á¦èòIO��(U��¤í�.P) P2=í�þNê�(�û"D1..Dlc D1...Dlc...),ßW0t�û"Ïê Lc= í�� D1...Dlc Lc¦èí�,àç=k: �Ϧè64˶��CIC���y̸IO��,�4˶��í b7E1R%£¤¥ b6-b4¦R%�£¤ b3E§¨©H b2-b0§¨ª«

fb7-b4W0í,¶�Û�C��yÌ fb7W1'b6-b4W0í,¶�Û�C��yÌ'�IOyÌ ���zW�C��yÌ,����=k: 1=C1 (VCC) C5 (GND) 2=C2 (RST) 5=C6 (VPP) 3=C3 (CLK) 6=C7 (IO) 4=C4 (FUS) 7=C8 (PGM) b3=1¶��í9ËW��, 0¶��í9ËW2à� b2-b0¶��íïð,.Q1¦è8T�í7��¸14Ë� jIC��ËWq,îúW: 80 10 00 00 07 90 20 34 a4 b4 20 �Ë��îúW: 80 10 01 ff 03 80 b5 35 -------------------------------------------------------------------------

� � !��C�ß�C�ß�C�ß�C�ß¼¼¼¼��� ��" ��ûûûûÛÛÛÛÐÐÐÐ----Q~Q~Q~Q~����....�fgóô�ß�fgóô�ß�fgóô�ß�fgóô�ß¼¼¼¼��

ret = CT_config(fd,CardType); À�: fd : ÑÍ0#�EÚ�\. CardType(�ܼ) 0 �C4�#�GúûISO7816-3 T=0úû

Page 27: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

1�C4�#�GúûISO7816-3 T=1úû 8 I2

@A� AT24C01/02/04/08/16... 9 SLE4418 SLE4428 10 SLE4432 SLE4442 11 SLE4402 SLE4404 GPM416 12 SLE4403 SLE4406 13 SLE4403 ST1304 14 AT88SC101 15 AT88SC102 16 AT88SC103 17 GPM896 18 AT1604 19 AT24C64 20 AT4D504 FFÕÖ�ß¼ �¿: �fgóô�ß¼([AT88SC101/AT88SC103/GPM896F),.QÏ �ÛÁÐ-Q~�,[��Ûªhi�. -------------------------------------------------------------------------

� ������M¬��M¬��M¬��M¬AAAA�

-------------------------------------------------------------------------

� � ���������������¬¬¬¬AAAA��#$������!%������

ret = readb(fd,offset,len) À�: fd : ÑÍ0#�EÚ�\ offset(�ܼ) : �CPU�W¬A÷øù�lm�W ��³ len(�ܼ) : ���#ïð �¿: K-LCPU�MÚ�ýI#lm��b�ISO 7816-4#~�¶�K- L\)ISO 7816-4bc#CPU�(jkÜ) -------------------------------------------------------------------------

� � ��� �®Å®Å®Å®Å¬¬¬¬AAAA� ��#������!%������

ret= readr(fd,rec,arg,len); À�: fd : ÑÍ0#�EÚ�\. rec(�ܼ): Ñ!"#®Å¬A#®Å±(1-255 0¶�fg®Å) arg(�ܼ): 65ËW0¶�fgÑ!"#¬A �t65ËW0¶�P #¬A�3ËW100 ¶�ùY#rec®Å101 ¶��rec®Å ��Ïè®Å110 ¶���Ïè®Å�rec®Å len(�ܼ) : ���#ïð

Page 28: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

------------------------------------------------------------------------

� � ���¦¦¦¦\D\D\D\D��#��������!%������

ret = readstr(fd,offset,len) À�: fd : ÑÍ0#�EÚ�\. offset(�ܼ) : �CPU�W¬A÷øù�lm�W ��³ len(�ܼ) : �¦\D#ïð ----------------------------------------------------------------------------

� � ���ÈÈÈÈ4444����ËËËËlm�lm�lm�lm�� ��#��&'����(��(�%(�%��

ret = readp(fd,offset,len); À�: fd : ÑÍ0#�EÚ�\. offset(�ܼ) : lm�# ��³ len(�ܼ) : ���#ïð �¿ 2#���è��¦èõ��Ïè¦è4�Ë�¿ 00 ¶�Ñ4�

01 ¶�ñ4� q= 01 00 02 00 03 00 04 01 05 01 06 01 07 01 08 01 ¶����1 2 3¦è¶�Ñ4� �4 5 6 7 8¦è¶�ñ4� ------------------------------------------------------------------------

� � ���ááááËËËËlm�lm�lm�lm���#$ ���&'��)�()�()�()��*�%%���)�(�)�(�)��+�,���(%-���

ret = readbit(fd,offset,len); À�: fd : ÑÍ0#�EÚ�\. offset(�ܼ) : lm�# ��³ len(�ܼ) : ���#ïð ------------------------------------------------------------------------

� � ���nolm�nolm�nolm�nolm�� ��#��ÁÁÁÁ....����----��#�./ìíìíìíìíoooo������ � � � �

÷�X�#noâª,������í#o��ªx�2 ret = reads(fd,offset,len); À�: fd : ÑÍ0#�EÚ�\. offset(�ܼ) : lm�# ��³ len(�ܼ) : ���#ïð

Page 29: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

-------------------------------------------------------------------------

������M¬��M¬��M¬��M¬AAAA�

-------------------------------------------------------------------------

� � ���������������¬¬¬¬AAAA0� �$�����!%������

ret = writeb(fd,offset,len,data) À�: fd : ÑÍ0#�EÚ�\. offset(�ܼ) : �CPU�W¬A÷øù �lm�W ��³ len(�ܼ): ���#ïð data(¦\¼) : �#�� ------------------------------------------------------------------------

� � ���®Å®Å®Å®Å¬¬¬¬AAAA0� ��������!%������

ret = writer(fd,rec,arg,len,data) À�: fd : ÑÍ0#�EÚ�\. rec(�ܼ) : Ñ!"#®Å¬A#®Å±(1-255 0¶�fg®Å) arg(�ܼ) : 65ËW0¶�fgÑ!"#¬A �t65ËW¬A± �3ËW100 ¶�ùY#rec®Å101 ¶��rec®Å� �Ïè®Å110 ¶���Ïè®Å�rec®Å len(�ܼ): ���#ïð data(¦\¼): �#�� -------------------------------------------------------------------------

� � ���¦¦¦¦\D\D\D\D0� ���������!%������ �

ret = writestr(fd,offset,data) À�: fd(�ܼ) : ÑÍ0#�EÚ�\ offset(�ܼ) : �CPU�W¬A÷øù�lm�W ��³ data(¦\¼) : �#¦\D -----------------------------------------------------------------------

� � ���ÈÈÈÈ4444����ËËËËlm�$lm�$lm�$lm�$��������0� ��

ret = writep(fd,offset,len,data) À�: fd(�ܼ) :ÑÍ0#�EÚ�\ offset(�ܼ) :lm�# ��³ (��íW��#Ë�³) len(�ܼ) : ���#ïð (��íàç)

Page 30: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

data(¦\¼) : �#�� (��íàç) �¿: 1. -Q~���#��j� *�í(SLE4432/42/18/28) 2. �SLE4404 AT88SC101/102/103 GPM416 GPM896T-Q~���� �� ------------------------------------------------------------------------

� � ���ááááËËËËlm�lm�lm�lm�0� �$ ���&'��)�()�()�()��*�%%���)�(�)�(�)��+�,���(%-���

ret = writebit(fd,offset,len,data) À�: fd : ÑÍ0#�EÚ�\. offset (�ܼ): lm�# ��³ len (�ܼ): ���#ïð data (¦\¼): �#�� -------------------------------------------------------------------------

� � ���nolm�nolm�nolm�nolm�0� ����ÁÁÁÁ....����----��#�./ìíìíìíìíoooo������

÷�X�#noâª,�����o��ªx�2 ret = writebit(fd,offset,len,data) À�: fd : ÑÍ0#�EÚ�\. offset(�ܼ) : lm�# ��³ len(�ܼ) : ���#ïð data(¦\¼) : �#�� -------------------------------------------------------------------------

���� �����[[[[�

------------------------------------------------------------------ 1. Ë�[(SLE4403/06/02/04 AT88SC101/102/103 GPM416/896 ret = erasebit(fd,offset) À�: fd : ÑÍ0#�EÚ�\. offset (�ܼ): lm�# ��³

���� �Eú$�Eú$�Eú$�Eú$�L�L�L�L��

-------------------------------------------------------------------------

� � �������������1�2� "/������!%������

ret =verify(fd, pin_len, pin)

Page 31: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

À�: fd : ÑÍ0#�EÚ�\. pin_len(�ܼ): Eúïð pin(¦\¼) : Eú �¿: K-LCPU�MÚ�ýI#È�nopq#lm� AT1604���o��� µÔÅB#��� ------------------------------------------------------------------------

� � �������������1QQQQìíìíìíìí��1� 3��� ��

ret = changpin( fd, pin_len,oldpin,newpin) À�: fd : ÑÍ0#�EÚ�\. pin_len(�ܼ): Eúïð oldpin (¦\¼): �Eú newpin(¦\¼): �Eú ------------------------------------------------------------------------

� � ��� � �ìíìíìíìí4'5���#./���lm�#no¸�lm�#no¸�lm�#no¸�lm�#no¸ÁÁÁÁÂÂÂÂ����ÐÐÐÐ----Q~Q~Q~Q~������

ret = sendkey( fd, len, key) À�: fd : ÑÍ0#�EÚ�\. len(�ܼ) : key#ïð(×L17¦è) key(¦\¼) : keyBð ------------------------------------------------------------------------

� � ���BñBñBñBñL�L�L�L�� ���6�3������!%������

ret = inteauth( fd, kid, rlen, randifd); À�: fd : ÑÍ0#�EÚ�\. kid(�ܼ) : key�ISF�#�± randifd(¦\¼): F�#8è!7� rlen(�ܼ) : �CPU�'òÖ#no��#ïð ------------------------------------------------------------------------

� � ��� �FñFñFñFñL�L�L�L�� 7��6�3�����!%������

ret = exteauth(fd, kid,encrand) À�: fd : ÑÍ0#�EÚ�\. kid(�ܼ) : key�ISF�#�± encrand(¦\¼): 8èno�#o¬

Page 32: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

-------------------------------------------------------------------------

�� � �!"!"!"!"¬¬¬¬AAAA�

------------------------------------------------------------------------- 1. !"¬A selefile(ISO 7816-4) ret =selefile( fd, fid); À�: fd : ÑÍ0#�EÚ�\. fid (�ܼ): �!"#¬A± ( MF�¬A±W#0x3f00) -------------------------------------------------------------------------

��������'ò�'ò�'ò�'ò!!!!7�7�7�7��

------------------------------------------------------------------------- 1. �CPU�'ò!7�getchall (ISO 7816-4) ret = getchall(fd, len) À�: fd : ÑÍ0#�EÚ�\. len(�ܼ) : �CPU�'!7�#ïð ----------------------------------------------------------------------

� ���� � ����'òö,���'òö,���'òö,���'òö,���

------------------------------------------------------------------------- 1. �CPU�'òö,��getresp (ISO 7816-4 T=0úû) ret =getresp(fd, len) À�: fd : ÑÍ0#�EÚ�\. len(�ܼ): �CPU�'òö,��#ïð -------------------------------------------------------------------------

� ���� � ���nononono{{{{6666�

� � �������::::}}}}��1��1��1��1¾¾¾¾9'�nonononoîîîîúúúú�

ret = tsi_api( fd,21,comm) À� fd : ÑÍ0#�EÚ�\ 21 : DESnoîúïð comm(¦\¼): 1}�'#DESnoîú

Page 33: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

ÕÖ(¦\¼): no�#o¬¸�o�#¿¬ �¿ DESnoîúW 10 02 P1 00 10 8¦èo�8¦è�� P1 00no 01�o 9'�{{{{6666@@@@TTTTÐÐÐÐ-jk-jk-jk-jk~~~~���� �

� � ���9'��ÃÃÃÃoooo��������¦¦¦¦9'��6$./�

subkey = DESsubkey(key) À� key(¦\¼ : 8¦èo� ÕÖ(¦\¼) -Lno�o#768¦èÃo� -------------------------------------------------------------------------

� � ���9'��nononono9'�� �/��

ret = DESencrypt(subkey,sour) À� subkey(¦\¼): key�¦#768¦èÃo� sour (¦\¼) : 8¦è¿¬ ÕÖ(¦\¼) : 8¦èno�#o¬ -------------------------------------------------------------------------

� � ���9'������oooo9'�# �/��

ret = DESdecrypt(subkey,sour) À� subkey(¦\¼): key�¦#768¦èÃo� sour (¦\¼) : 8¦èo¬ ÕÖ(¦\¼) : 8¦è�o�#¿¬ -------------------------------------------------------------------------

� ��������������

------------------------------------------------------------------------- 1. �CCPU��³NAD =setnad(nad) À�(�ܼ) nad �³ ÕÖÜ �¿: =Û�C��#$ÜW00 ------------------------------------------------------------------------- 2. �CùúßiÊ� CLA =setcla(cla) À�(�ܼ) cla ùúßiÊ�.

Page 34: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

ÕÖÜ �¿: ÛÜ#CPU��ùúßiÊ�TªÛÜ

��

Page 35: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

� � � � �� �!"!"!"!"���#$�#$�#$�#$�

� � � � �

� ¾¿����#%&;��#ƪM¦÷�9Þ�ð':öR���#;eM�

�-;�k¤8P<=Ïk>+?¼���Z-¾¿ �

�<�=� ��1�� �� 2����0����0�����������������������

<�=���1�2������0��0��0��0����M���� ��0��

<�=�����0��

<�=�>?�0�� � �

<�=� � ��1�� � 2�����0���0���0���00�����

<�=� ���:��1�������

`�@7Ãlm� �

� >wtxxyx�>wtxxya� >wtxx`_� >wtxx{_� >wtxx|{� >wtxxx{�

� x`a�Aµ¯�`yx�Aµ¯� `y{x�AB¯°� `y{x�AB¯°� {�a�AB¯°� {�a�AB¯°�

�_�� ttd�]u� /��� ttd�]u� ttd�]u� ttd�]u� ttd�]u�

� ÈEú� no� 4�� 4��

MEú�

4�� 4��

MEú�

�]u� `a�Aµ¯Ë`a�Aµ¯Ë� ���|{�Aµ¯ÑCÞ� |{�Aµ¯ÑCÞ�

d�]u� x_�Aµ¯Ëx_�Aµ¯Ë� �� �� �� ��

ttd�]u� |�{�Aµ¯Ëxy�Aµ¯Ë� `��AB¯°¦è�̀ ��AB¯°¦è{�a�AB¯°� {�a�AB¯°�

3ÐXÆ�

-Vo�

�[o�

no�

§ÃDD�

¦èTCÞ�

-Vo��

¦èTCÞ�

g|{¦è�

¦èTCÞ

-Vo�g�

|{èTCÞ�

��-� Tj� ۪� C�۪� C�۪�Tj� Tj�

×�í#��¹&� `y�¹&� ��¹&� ��¹&� {���¹&� {���¹&�

E�§F� ��¡� ��¡� ��¡� ��¡� ��¡� ��¡�

E�§!� `���¹?� `���¹?� |�¹?� |�¹?� |�¹?� |�¹?�

§�GH� �y�¹�� �y�¹�� ay�¹�� ay�¹�� ^y�¹�� ^y�¹��

NOIð

ã ä�

�|� ¹_y�|� ¹_y� �|� ¹`yy� �|� ¹`yy� �|� ¹^y� �|� ¹^y�

Jî ê� `yyyy� `yyyy� `yyyy� `yyyy� `yyyy� `yyyy�

4Ií#��`yK� `yK� `yK� `yK� `yK� `yK�

� � � � � �

Page 36: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

{����

�@Alm� ?�utw���_ �

� ?�u{x�y`�?�u{x�y{?�u{x�yx� ?�u{x�y_� ?�u{x�`a� ?�__>�`y{�

�_�

��

`�� {�� x�� _�� `a�� `��no�

pq�

ttd�]u� `{_�AB¯°�{�a�AB¯°�`{�AB¯°� `y{x�AB¯°�{yx_�AB¯°��

��

LM�

`y�¹&� `y�¹&� `y�¹&� `y�¹&� `y�¹&� `y�¹&�

E��

§F�

��¡� ��¡� ��¡� ��¡� ��¡� ��¡�

E��

§!�

|�¹?� |�¹?� |�¹?� |�¹?� |�¹?� �

NO�

Ið�

�xy ¹_��

� �

�xy ¹_�

� �

�xy ¹_��

� �

�xy ¹_��

� �

�xy ¹_��

� �

�{� ¹^y��

Jî ê�`yyyyy� `yyyyy� `yyyyy� `yyyyy� `yyyyy� `yyyyy�

���

4I�

`yK� `yK� `yK� `yK� `yK� `yK�

Page 37: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

?�__>�`y{� �

��

�⪠� ðù�

/N�t�

lm�

߼�

��������â�����������ª�

2ObPã�Qä�{� �]u� l¢��ORÊ� 2OíÑCÞ�

��

1" ã�Qä� _� tt� l¢1"RÊ�M����

j�

-Vo�ã>�ä�{� tt� ��>�x���ª�¸�[��S�

Bð�

âã5�ã�?�ä{� tt� 5�>���âãê�s9Txê�fU�

=ºxê��`êx� âã5�V��

-Vb%ã�dQä_� tt� ���ËÌ����#b%�

� Ïò ã�Qä� {� tt� Ïò�¿�ƪ JWXA�TÏò�

,�

ã?���ä�

{� tt� ZËW y í?QÛT W ` �

tT�

-�

�� ã?Qä� a{� tt� �PËÌl¢ Tl[\M*+ËÌ�

Ï� �[o�ãtQä�a� tt� �[�?Qí ÁÂ��tQ�

��

⪠� ðù�

/N�t�

lm�

߼�

���������â�����������ª�

ã?���ä�

{� tt� ZËW y í?QÛT W ` �

tT�

,�

-�

�� �

ã?Qä�

a{� tt� �PËÌl¢ Tl[\M*+ËÌ�

��

�[o�ãtQä�x� tt� �[�?Qí ÁÂ��tQ �

� �[5�ãt�ä�`a� tt� �[�?Q5� T5�`{_ê �

��

ô�

h�

û"�e>t����ôh*�ô �ô��jkXh �

�Q BðCÞ ÛT�í � o���x�� o�ÛTµ �

?Q �ª�����[o� �[ R�ª�[`{_ê �

|�?�`ayx� �

?�`ayx��@o� Zè,- *� o�M�[o� o�ïð�W{¦è .Q

�� ìíQß�o�#îú�X�]Y µÔÅ/�#��� �

Page 38: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

?�`ayx� 8P�¿ �

Ë�³� ¦è�¿� ¦èïð� �¿�

y�`�� y�`� {� O^��

`a�^~� {�~� _� 1"R��

_y�~�� `y�``� {� �o��

~a�`y|� `{� `� �o�âã5���

`yx�`a^� `|�{y� _� �4� �

`a_�`_|� {`�{{� {� Ï o��

`_x�`~`� {|� `� Ï o�âã5���

`~{�{y^� {x�{�� {� Ï �[o��

{y_�{`�� {a� `� Ï �[o�âã5���

{`a�~^^�� {^@`{{`� ``~�� ,- �

~^^a�~^~`� `{{{�`{{|� {� � o��

~^~{�~_y^� `{{x�`{{�� {� � �[o��

~_y_�~_`�� `{{a� `� � �[o�âã5���

~_`a�``_a|� `{{^�`x_{� {�a� ,- ��

``_ax�``_^~� `x_|�`x_x� {� Ý o��

``__y�``_~�� `x_��`x_a� {� Ý �[o��

``_~a�``~y|� `x_^� `� Ý �[o�âã5���

``~yx�`|~�`� `x__�`^x|� {�a� ,- �

`|~�{�`|~a^� `^xx�`^x�� {� Z o��

`|~a_�`|~_|� `^xa�`^x^� {� Z �[o��

`|~_x�`|~~`� `^x_� `� Z �[o�âã5���

`|~~{�`ay|~� `^x~�{yyx� {�a� ,- Z�

`ayxy�`ay��� {yy��{yya� {� Ïò �

x�+�Q�{y`¼¥¦§¨� �

� +�Q�{y`¼¥¦§¨��Ï+pq4o¼¥¦§¨� _`aEkÞÇà§Ã�

S�5 ��º�8+bcT!#4o7� �-;�Td QTjW-Vj¾¿ e

f �¿J8+&<���_ �

� � � � � � �

Page 39: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

�P�P�P�Pghghghghùbùbùbùb����

lm��

!"�-§T��lm� ttd�]u� �

!"4o�-íðùWaxyAµ¯& �4o�-íðùW�`{�Aµ¯& �!"��§FBñ�� Fñ�.��9Ï�¡§�§F �

!"lm���ê�ãt®´·±³®¶°ä`yyyyê ��4lí#`yK �

4o���

!"º�4o��#òiT -V�Y �

!"º�zo�M�[o� �

!"º����[5�� �

!"o�9T��Ûx��fj �

!"º��jo� �

���

!"�XÆ4Fk��\)�>]^_`a�'³±¯`s{ �!"�#�Ëúû\)�>]^_`a�'³±¯|#Ülúû �

!"�-�u]>Em �âG �

!"n�õnÏò �_oùTd �����

����

�P�P�P�P����

º�p+�-e<�

+�Q�{y`¼����p+�-;< 4o�-;<M4o�-;< �

4o�-íÚ�axyAµ¯&$W-VÚ- TJàq ��� �

�����4o�-í���`{Aµ¯&TW-V�- �`{Aµ¯&�-ñ�*�Wßr s *

���i*+4o���� '4o���-VTj!"# �

º���� �°³´�t®uB�´³¯³ �

��JWív x��-¸fj Û.��o�ÓTj2 Ïw�xÓÛª�����������

í �

4o�� &°¶±°¯�´³¯³ �

��x��-í ��fzo�*x�����ª*2M� �tÛª*

��f�[o�*x���R�[®�ÜnÏ��ª*�[ �tÛª*�[ fjí

��zo�*x�����ª*2 nJWXAk$Ûª*íM�[ ÄÏß

��T-Llm4o-V�� �

º�zo��

������Qo�x�����ª�4o��qz�� =9Tyêo���Ûx�

�»LfjyÌ �fjyÌk��Qo�*x��� @Û«z{�4o��qí

zo�òi ïð ËCT -VùY o��WTío�MÛTío� Û

Tío�ÏwxÓÛªíg Tío�Tj*�[Q*í �

º��[o��

����P�4o��q�[ ÁÂx���Qo� 'R'§�ÁÂÏêÆx��� �

t« x��� �fjyÌk Qo��-|Ø o�òi ïð ËC -Vù

Y o��WTío�MÛTío� ÛTío�x�ÓÛªíg Tío

�Tj*�[Q*í �

�[5���

Page 40: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

����=-V!" ��Q5��ÜnÏ��z{�4o��q�[�� Q5��5�

cdWy {�� RT�XA}~ �

�jo��

Qo�ïð|{Aµ¯& WÛTo� âª�pè Ïè��fj�ßP�jÁÂx

���Qo� �Ïè�ßP��[5�Ü}~ ÁÂx���Qo� =9TyêQ

o���Ûx� o�âª|Ø �

fj4�j�

� fzo�9Tyêñ*x���� �fj fj#����Ûª«*í �

j#� �x���zo�M�jo� �T���Wx��-#� �

� � � � � � �

�PX�PX�PX�PXhhhh����

!"�ðƨT4u�Üß¼����_�ð T�Ê�b�_ �

!"4oÆ<�!"º�zo� �[o� �[5�� 1"ÖbP�CJ8+4o7� o��

��-�3ÐTd#�� �Ägpq4o¼����3Ð�ð6#�_ �

!"�-bc�� �Ú�4o7�T -VùY�!ò QRo�ïðTjÐè ñ*o�Ú-#l ������������

Tjl-V4o�� �'�6�lm��-(� �

� �� � � � �

Page 41: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

��@7�de��

� >twxx�`y� >twxx�xy� >twxx�_y�>twxx�{yy� >twxx�d{�

�_Ú��������_Ë4oI��� � _Ë4o�

I���

�xyËno�

ú»¼���

� ` ^�� � ` ^�� � ` ^�� �` ^�� � y |y� �

noú»

¼��

�� �� �� �xyË6 � �xyË6 �

�]u� _�� _�� `a�� `y�� �

d�]u� |{�� |{�� |{�� |{�� �

ttd�]u� `�� x�� _�� {���� �

�?u� {�a� {�a� {�a� {�a¹|�y� |�y�

>wttdu]�t y�`¹?� y�`u³� y�`¹?� y�`¹?� �

¡��� �¡ `y � �¡ `y � �¡ `y ��¡ `y � �

��u?�� `y�¹?� `y�¹?� `y�¹?� `��¹?� `��¹?�

�í#�`���¹&� |���¹&� |���¹&� |���¹&� �

��`yyyy� `yyyy� `yyyy� `yyyy� �

��`yK� `yK� `yK� `yK� �

a�u��?�t�:���

MIFARE1 card%÷(=: 8KBit EEPROMé¦ 8KBit EEPROM*��¦16è� (0....15) �è�

£��¦4f,�fW16è¦è..QfW�ß¼�#×��9Ë.���Ï� #�ÏfWo�f,lm��� �" ��,��#o�M��f�"��#I�XA.º?�èÀÉ¢,�#gh�

à �MIFARE1�#�� µÔÅB��4�

Page 42: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

� � � � �������������"%����&"'(�"%����&"'(�"%����&"'(�"%����&"'(�

� � � � �

�����������������]> ��v�]�>#���:EM�]�d�]:E ÜíSTj�

�Ð-01þ���#|{ËgÌÊ���v~�k�- k¤��#qÃDE#NO� �]>

k� �]�d�]NO ��v~�k¡/� d/� ¡�� SDM?�`ayx�Mu��?�t�:��#�-$

:E~� ¢ËTj�¡L-V�*+NOk01fü#,-�� �

Ï �]>k� �]�d�]NO���:E~��-�q�

q` �lm��� �`y�³0Ò`y¦è�� �

�¹³µ®ãä�

��

���µ®¯�-´sµ��

���·®&µ²®°´�¶�³±�A·-0{y1��

���-´5���t'°®ã��]u`�ä��

���µ-ã±°³´�Aµ®ã-´s`ys{ysA·-ä��5�y)~yyyä��

������'±µ®¯-ã��t?��t��]����®�ä��

���°u&°���

�������'±µ®¯-ã���°�´³¯³�µ&r�®�ä��

�������-t±ãµ5y�µ�{y�µ¹¹ä�

�����������'±µ®¯-ã��y{)��sA·-0µ1ä��

������

�������¶ut&°ã-´ä��

��

q{ �\)�>]�̂ _`a x�bc#�de��� !"¬A`Q�`y�³0Ò`y¦è�� �

�¹³µ®ãä�

��

���µ®¯�-´sµ��

���·®&µ²®°´�¶�³±�A·-0{y1��

���-´5���t'°®ã��]u`�ä��

���µ-ã�&°u°�-µu°ã-´s`ä��5�y)~yyyä���

�������'±µ®¯-ã��µu°�`�®t¯�°)µ&¯��®�ä��

����������¶ut&°ã-´ä��

�����

���µ-ã±°³´�Aµ®ã-´s`ys{ysA·-ä��5�y)~yyyä��

������'±µ®¯-ã��t?��t��]����®�ä��

���°u&°���

�������'±µ®¯-ã���°�´³¯³�µ&r�®�ä��

�������-t±ãµ5y�µ�{y�µ¹¹ä�

�����������'±µ®¯-ã��y{)��sA·-0µ1ä��

������

�������¶ut&°ã-´ä��

��

Page 43: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

q|r�Û\)�>]�^_`a x�bc#�de��� =>¶�u·¹A°±²°±�ut{yyy�!"¬A`Q

�`y�³0Ò`y¦è�� �

�¹³µ®ãä�

��

���µ®¯�-´sµ��

���·®&µ²®°´�¶�³±�u°®±sA·-0{y1��

���-´5���t'°®ã��]u`�ä��

���A·-0y1�5�y���A·-0`1�5�y)°x���A·-0{1�5�`��

���A·-0|1�5�y���A·-0x1�5�y��

���µ-ã�¯&µ�³'µã-´s�sA·-s�u°®±sA·-ä��5�y)~yyy�ä���

�������'±µ®¯-ã��µu°�`�®t¯�°)µ&¯��®�ä��

����������¶ut&°ã-´ä��

�����

���A·-0y1�5�y����A·-0`1�5�y)¶a���A·-0{1�5�y���

���A·-0|1�5�`y���A·-0x1�5�`y��

���µ-ã�¯&µ�³'µã-´s�sA·-s�u°®±sA·-ä��5�y)~yyy�ä���

������'±µ®¯-ã��t?��t��]����®�ä��

���°u&°���

�������'±µ®¯-ã���°�´³¯³�µ&r�®�ä��

�������-t±ãµ5y�µ�u°®±�µ¹¹ä�

�������'±µ®¯-ã��y{)��sA·-0µ1ä��

������

�������¶ut&°ã-´ä��

��

qx ��]�d�]lm��� �`y�³0Ò`y¦è�� ��

� ���>t��w�/���]��?���]��

���������5���]dtv ?e�] �

�������/e��t��5��t?�/ �� `y `y �

������� /e��t��

� ¡�>e?w/?>����yNOk���:E~��-�q�

�qÃ���WIN95����,Visual Basic 5.0kÏò��. ��Ð-32ËgÌÊcrwicc.dll�É����FC<��CRW_II#�� '%à:,�-4����ÜÏÄÅk#32ËgÌÊcrwicc.dll '#If Win32 Then Declare Function CT_open Lib "crwicc.dll" (ByVal portname As String) As Long Declare Function CT_close Lib "crwicc.dll" (ByVal fd As Long) As Long Declare Function ICC_reset Lib "crwicc.dll" (ByVal fd As Long, ByRef lenr As Byte, ByVal resp As String) As Integer

Page 44: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

Declare Function ICC_read_bin Lib "crwicc.dll" (ByVal fd As Long, ByVal offset As Long, ByVal lenr As Long, ByVal resp As String) As Long Declare Function ICC_write_bin Lib "crwicc.dll" (ByVal fd As Long, ByVal offset As Long, ByVal lenw As Long, ByVal data As String) As Integer Declare Function ICC_tsi_api Lib "crwicc.dll" (ByVal fd As Long, ByVal lenc As Byte, ByVal comm As String, ByRef lenr As Byte, _ ByVal resp As String) As Integer #Else 16 byte dll #End If Global fd As Long Private Sub cardreset_Click() Dim ICCresetReturn As Integer Dim lenr As Byte Dim resp As String resp = String(250, vbNullStr) ICCresetReturn = ICC_reset(fd, lenr, resp) Print Hex(ICCresetReturn) End Sub Private Sub cpucommand_Click() Dim comm, resp As String Dim lenc, lenr As Byte Dim TsiApiReturn As Integer TsiApiReturn = 0 comm = String(250, vbNullStr) resp = String(250, vbNullStr) jkîú���CPU�TIMCOS V1.0�� Print "delete MF:" comm = Chr(128) + Chr(14) + Chr(0) + Chr(0) + Chr(0) lenc = 5 TsiApiReturn = ICC_tsi_api(fd, lenc, comm, lenr, resp) Print Hex(TsiApiReturn) Print "create KEY" comm = Chr(128) + Chr(224) + Chr(10) + Chr(1) + Chr(7) + Chr(63) + Chr(0) _ + Chr(200) + Chr(255) + Chr(240) + Chr(255) + Chr(255) lenc = 12 TsiApiReturn = ICC_tsi_api(fd, lenc, comm, lenr, resp) Print Hex(TsiApiReturn) Print "create EF" comm = Chr(128) + Chr(224) + Chr(0) + Chr(1) + Chr(7) + Chr(40) + Chr(0) _ + Chr(100) + Chr(240) + Chr(240) + Chr(255) + Chr(255) lenc = 12

Page 45: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

TsiApiReturn = ICC_tsi_api(fd, lenc, comm, lenr, resp) Print Hex(TsiApiReturn) Print "write:" comm = Chr(0) + Chr(208) + Chr(129) + Chr(0) + Chr(3) + Chr(54) + _ Chr(53) + Chr(52) '654 lenc = 8 TsiAppReturn = ICC_tsi_api(fd, lenc, comm, lenr, resp) Print Hex(TsiAppReturn) Print "read" comm = Chr(0) + Chr(176) + Chr(129) + Chr(0) + Chr(3) lenc = 5 TsiAppReturn = ICC_tsi_api(fd, lenc, comm, lenr, resp) Print Hex(TsiAppReturn) Print resp End Sub Private Sub Form_Initialize() outwindow.Text = "" fd = CT_open("COM1") If fd < 0 Then outwindow.Text = "Cannot open COM1" Else outwindow.Text = "Open COM1 success!" End If End Sub Private Sub Form_Terminate() CT_close (fd) End Sub Private Sub readbinary_Click() Dim val As Long Dim resp As String Dim hdk As Integer resp = String(255, vbNullStr) val = ICC_read_bin(fd, 0, 1, resp) hdk = Asc(resp) Print "Readed data:" Print hdk End Sub Private Sub writebinary_Click() Dim data As String Dim ascii As Long ascii = val(data) data = Chr(ascii) data = "9999" ascii = ICC_write_bin(fd, 0, 4, data)

Page 46: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

End Sub �

Ý d]�t�/e�w�t�� 0NOk���:E~��-�q�

�PB5.0NOkÐ-gÌÊí#l� 1.�Crwicc.dll*afgÄŸ��#$ÄÅk 2.!�Declare/Global External Functions.. �9� �� �Ð-#gÌÊ�~�#�¼ 3.�PB Script��"~�Ð- %à2� A.�j'l�2� .%àPB4VC++���ß¼#VW = �VC++� ~��¼W: HANDLE CT_open(char *portname) t �PB� ,��W ulong CT_open(REF string portname) �b#��ß¼Ý��,¶=k VC++ PB UNSIGNED UINT 16-bit unsigned integer LONG LONG 32-bit unsigned integer BYTE,CHAR CHAR 8-bit unsigned character BOOL BOOLEAN 16-bit signed integer WORD UINT 16-bit unsigned integer DWORD ULONG 32-bit unsigned integer LPSTR STRING 32-bit pointer to a character string LPBYTE STRING 32-bit pointer to a character string LPINT STRING 32-bit pointer to a character LPWORD STRING 32-bit pointer to a unsigned integer LPLONG STRING 32-bit pointer to a long LPDWORD STRING 32-bit pointer to a double word LPVOID STRING 32-bit pointer to any date type HANDLE ULONG 32-bit handle to a window object B.FUNCTION4SUBROUTINE VC++�È�ÕÖÜ#~� �PB�,��WFUNCTION,='q VC++�ÕÖÜ#~� �PB�,��WSUBROUTINE,= �VC++� ~��¼W: void MyFunc(long Var1,long Var2) t �PB� ,��W SUBROUTINE MyFunc(long Var1,long Var2) C.ù²#»¼

Page 47: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

PB�ó�ù²��ß¼ �»¼~�#À�¶í �ù²�ù ,n'REFg� �VC++� ~��¼W: unsigned ICC_reset(HANDLE fd,char *len,char *resp); t �PB� ,��W Function uint ICC_reset(ulong CrwHandle,REF string len, REF string resp) Library "Crwicc.dll" D.¦\D#»¼ .%àjkph a. �PB�Ð-VC++gÌÊí ßj REF string ;<ÍΦ\D t

PB��ÍÎ#�string ÷ø b. �PB�Ð-VC++gÌÊí :E��#Bl�ÒÐñ�PB�;¦ .Q

Ûª�Ïè¦\Dù²�:Í�PB,=kqÚ� �VC++� ~��¼W: char *ICC_message(unsigned ret) t �PB� ,��W string ICC_message(uint ret) //Powerscript code =k string msg uint rtn ... ... msg=ICC_message(rtn) MessageBox("Show",msg) E.PowerBuilder #�æ�¿ PowerBuilder V5.0 ��Ð-MS Visual C++ 4.2 (or Higher) �¦#gÌÊí l� âã Sybase ��Ñ�� .�PB�æaVersion 5.0.03 k�#r³

W ftp://ftp.powersoft.com/pub2/pbuilder/maintfls/win ÔÅ. Declare\External Functions\ �~��¼�¶ Function ulong GetSysColor(int index) Library "User32.DLL" Function ulong CT_open(REF string portname) Library "Crwicc.dll" Function UINT CT_reset(ulong CrwHandle) Library "Crwicc.dll" Function int CT_close(ulong CrwHandle) Library "Crwicc.dll" Function string ICC_message(uint rtn) Library "Crwicc.dll" Function uint ICC_reset(ulong CrwHandle,REF string len,REF string resp) Library "Crwicc.dll" Z VISUALFOXPRO5.0NOkIC�:E~��-�q �qÃ���WIN95����,Visual FOXPRO 5.0kÏò��. ��Ð-32ËgÌÊcrwicc.dll�É����FC<��CRW_II#��

Page 48: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

%à:�ü-À�ÕÖ(º#~�Ð-,,YçWÍ�³,�YçMÐ- í$,�n'@'\). crwicc="crwicc.dll" declare integer CT_open IN (crwicc) string declare short ICC_reset IN (crwicc) integer,string @,string @ declare short ICC_read_bin IN (crwicc) integer,integer,integer,string @ declare short ICC_write_bin IN (crwicc) integer,integer,integer,string declare short CommRece IN (crwicc) integer,integer@ ,string @,integer declare short CommSend IN (crwicc) integer,integer,string,integer declare short ICC_tsi_api IN (crwicc) integer,integer,string,integer@,string@ declare DESsubkey IN (crwicc) string@,string declare DESencrypt IN (crwicc) string,string@,string declare string ICC_message IN (crwicc) integer declare integer CT_close IN (crwicc) integer SET TALK OFF CLEAR qybm=space(8) usrcode=space(8) resp=space(100) commbuf=space(100) dest=space(100) subkey=space(800) step1=0 crwfd=-1 fd=-1 len1=space(5) lenr=0 ReturnCode=-28672 *0x9000 fd=CT_open("Com1") if fd<0 ? " Can't open port !" ? "Card termianl not ready!" return endif crwfd=CT_open("com2") if crwfd<0 ? "Can't open port!" ? "Read Card Device not ready!" CT_close(fd) return endif

Page 49: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

do while .T. clea ? ?" Please insert IC card ... " do while .T. store IC_format(crwfd) to ret if ret<>0 * ? " Card format error!" CT_close(crwfd) CT_close(fd) RETURN endif do while .t. ? " :i�VËÌ..." ret=CommRece(fd,@lenr,@resp,128) if ret<>0 ? " �Hâã..." loop endif usrcode=substr(resp,1,lenr) =CommSend(fd,2,"01",128) ? " ËÌx�!" exit enddo ? " Resetting IC card " ret=ICC_reset(crwfd,@len1,@resp) if ret<> ReturnCode exit endif step1=step1+1 ? " Selecting MF" commbuf=chr(0)+chr(164)+chr(0)+chr(0)+chr(2)+chr(63)+chr(0) ret=ICC_tsi_api(crwfd,7,commbuf,@lenr,@resp) if ret<>ReturnCode exit endif step1=step1+1 ?" Getting challenge" commbuf=chr(0)+chr(132)+chr(0)+chr(0)+chr(8) ret=ICC_tsi_api(crwfd,5,commbuf,@lenr,@resp) if ret<>ReturnCode exit endif step1=step1+1 deskey="12345678" DESsubkey(@subkey,deskey) commbuf=chr(0)+chr(130)+chr(0)+chr(1)+chr(8)

Page 50: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

DESencrypt(substr(subkey,1,768),@dest,substr(resp,1,8)) commbuf=commbuf+substr(dest,1,8) ? " Making external authentication..." ret=ICC_tsi_api(crwfd,13,commbuf,@lenr,@resp) if ret<>ReturnCode exit endif step1=step1+1 ? " Selecting file01 " commbuf=chr(0)+chr(164)+chr(0)+chr(0)+chr(2)+chr(0)+chr(1) ret=ICC_tsi_api(crwfd,7,commbuf,@lenr,@resp) if ret<>ReturnCode exit endif step1=step1+1 ? " Writing file01." *input qybm commbuf=chr(0)+chr(208)+chr(0)+chr(0)+chr(7)+qybm ret=ICC_tsi_api(crwfd,12,commbuf,@lenr,@resp) if ret<>ReturnCode exit endif step1=step1+1 ? " success" commbuf=chr(128)+chr(36)+chr(0)+chr(4)+chr(16)+"12345678"+usrcode ret=ICC_tsi_api(crwfd,21,commbuf,@lenr,@resp) if ret<>ReturnCode exit endif exit enddo if ret<>ReturnCode ? " Error occurs at step" ?? step1 ??":[" ?? ret ??"]--" ??ICC_message(ret) else ? " �¦â!" endif CT_close(crwfd) CT_close(fd) exit enddo

Page 51: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

function IC_format parameter crwfd do while .T. step1=1 ret=ICC_reset(crwfd,@len1,@resp) if ret<>ReturnCode exit endif step1=step1+1 if substr(resp,1,1)==chr(233).OR.substr(resp,1,1)==chr(105) ? " Card type:***TIMECOS V1.0***!" endif * erase DF commbuf=chr(128)+chr(14)+chr(00)+chr(00)+chr(00) ret=ICC_tsi_api(crwfd,5,commbuf,@lenr,@resp) if ret<>ReturnCode exit endif ret=ICC_reset(crwfd,@len1,@resp) if ret<>ReturnCode exit endif ? " Creating MF" commbuf=chr(128)+chr(224)+chr(63)+chr(0)+chr(13)+chr(56)+chr(3)+chr(200)+chr(240)+chr(240) commbuf=commbuf+chr(255)+chr(255)+chr(255)+chr(255)+chr(255)+chr(255)+chr(255)+chr(255) ret=ICC_tsi_api(crwfd,18,commbuf,@lenr,@resp) * if left(ret,4)<>"9000" .AND. left(ret,4)<>"6A86" * 27270=6a86 stand for: file exists already if ret<>ReturnCode .AND. ret<>27270 exit endif ? " Resetting TIMECOS" ret=ICC_reset(crwfd,@len1,@resp) if ret<>ReturnCode exit endif step1=step1+1 ? " Selecting MF" commbuf=chr(0)+chr(164)+chr(0)+chr(12)+chr(2)+chr(63)+chr(0) ret=ICC_tsi_api(crwfd,7,commbuf,@lenr,@resp)

Page 52: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

if ret<>ReturnCode exit endif step1=step1+1 ? " Creating key file space" commbuf=chr(128)+chr(224)+chr(161)+chr(01)+chr(07)+chr(63)+chr(0)+chr(96)+chr(255)+chr(240)+chr(255)+chr(255) ret=ICC_tsi_api(crwfd,12,commbuf,@lenr,@resp) if ret<>ReturnCode exit endif return 0 enddo ? " Error occures at step ",step1,": [",ret,"]-",ICC_message(ret) return 1 � AT1604 AT88SV1604 ��-�q K-����: DOS UNIX WINDOWS WIN95/NT XENIX NO 1. á¦è¸áË# �[$����äå�-Ü���¢Ü#Ð-~�. 2. ��*� o�Ð-tsi_api(fd,7, "0020P1P202p¦èo�") ìí*� o�Ð-tsi_api(fd,10,"0024P1P20502�o��o�") ��Ô±�#��W16��¶�: P1=00¶���*� o�,P1=01¶���� �[o� P2=04¶��Z� , 03¶�Ý , 02¶�� , 01¶�Ï , 00¶�@o� [%]ßÐ-C����o�tÐ-ICC_tsi_api(fd,7,"\x00\x20P1P2\x02p¦èo�",&lenr,resp) 3. �@o�[tsi_api(fd,7,"0020000002p¦èo�")F,STÐ-�3#VERIFY~� ìí@o�tsi_api(fd,10,"002400000502�o��o�"),STÐ-�3#CHANGE~� jkjFOXPROWq�¿����=k

���

��>t���?w��]v�

��&°¯�uµA�¯t�¶±(µµ-t)�

��-´�5����t'°®ã�]u`ä�

���-´�

�� ��?�`ayx�Eúy�y��

���?�� y �

��¯¯5¡°±µ-Bã-´s{sy�y�ä�

�� ��?�`ayx� ÏEú�����

���?�� ` �

����`�5�¯&µ�³'µã-´s^s�yy{yyyy`y{�����ä�

�� ��?�`ayx� Ï�[Eú�����

����`�5�¯&µ�³'µã-´s^s�yy{yy`y`y{�����ä�

�� �[?�`ayx� Ï�Ë�³{`a�{�~�

��5°±³&°Aµ¯ã-´s{`aä�

Page 53: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

��5°±³&°Aµ¯ã-´s{{xä�

��5°±³&°Aµ¯ã-´s{|{ä�

��5°±³&°Aµ¯ã-´s{xyä�

��5°±³&°Aµ¯ã-´s{x_ä�

��5°±³&°Aµ¯ã-´s{�{ä�

�� á¦è?�`ayx� Ï�³{^ ¢fLË�³{`a �

��¯A5(±µ¯°Aã-´s{^sas�``{{||xx��aayy�ä�

�� á¦è?�`ayx� Ï�³{^ ¢fLË�³{`a �

��¯A5±°³´Aã-´s{^s`yä�

*��AT1604� �EúFFFF WAIT 2 TT2 = tsi_api(fd,”0020000202FFFF”) *ìí� ÏEú TT2 = tsi_api(fd,10,”002400010502FFFF5555) 4 �:��MIFARE1:E~��-�¿ Ú�~��E�ÏèÀ� fd ¶�-CT_openÍ0#4�¢9#DE± Ú�~�ÕÖ: 0x9000¶�¦â, ��Wâã(6¦è�¢l�±,�¦èW�Ü). 1. fd: CT_openÍ0#�E± TagType: ÕÖ��s��#bPÊ�.�MIFARE1 card W0x0004. ßâã1�,tTagTypeÕÖ. short Mif_request(int fd,short *TagType) { char lenr; return ICC_tsi_api(fd,29,"\x10\x3\x0\x0\x18\x11\x8c\x15\x0e\x12\xc0\x17\xc6\x11\x0c\x1e\x02\x13\x07\x14\x10\x10\x52\x16\xa\xf1\x48\x0\x0",&lenr,(char *)TagType); } 2. snr: ÕÖ*!��#�±. short Mif_anticoll(int fd,char *snr) { char lenr; return ICC_tsi_api(fd,22,"\x10\x3\x0\x0\x11\x13\x10\x11\x0d\x10\x93\x10\x20\x16\xa\xf1\x48\x0\x0\x0\x0\x0",&lenr,snr); } 3. snr : *!��#�±(�Mif_anticoll()~�ÕÖ#�±). size: ÕÖ��EEPROM#Þ×.�MIFARE1 card W0x08(�8KË) ßâã1�,tW0. short Mif_select(int fd,char *snr,char *size) {

Page 54: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

char lenr,comm[]="\x10\x3\x0\x0\x19\x12\xf0\x13\x38\x14\x8\x10\x93\x10\x70\x10\x1\x10\x2\x10\x3\x10\x4\x10\x5\x16\xa\xf1\x78\x0"; comm[16] = *snr++; comm[18] = *snr++; comm[20] = *snr++; comm[22] = *snr++; comm[24] = comm[16]^comm[18]^comm[20]^comm[22]; return ICC_tsi_api(fd,30,comm,&lenr,size); } 4. mode: L�;<. x x x x x AB KS1 KS2 AB: 0-!"o�A. 1-!"o�B. KS1KS2: 00-�-���RAMo� 1�#o�. 01-�-���RAMo� 2�#o�. 02-�-���RAMo� 3�#o�. 03-�-���ROMo� �#o�. sector: ��"o�L�#� ±(0....15). ���#� �"JW��(,,l£,¤£)õg, ÁÂ��� �"L�,�tÛª�"��. short Mif_authentication(int fd,char mode,char sector) { char lenr,comm[]="\x10\x3\x0\x0\x10\x16\x0a\x13\x10\x1b\x80\x1c\x80\x10\x60\x10\x1\x16\xa\xf1\x78"; if(mode&4){ comm[14] = 0x61; sector |=0x40;/*comm[7] |= 0x40;*/ }/* AB=1,auth 1b*/ comm[10] |= mode&3; /* which set 0,1,2; 3=ROM_key*/ comm[12] |= sector; /* sector =0,1,...15 ...*/ comm[16] = sector<<2; return ICC_tsi_api(fd,21,comm,&lenr,comm); } 5. block: f�³(0....63). data: ÕÖ���2#Ïf��(ÏfW16¦è), �MIFARE1 card�jf�W%÷���¥. short Mif_read(int fd,char block, char *data) { char lenr,temp[34],comm[49]="\x10\x3\x0\x0\x2c\x13\x10\x14\x80\x10\x30\x10\x0\x16\xa\xf1\x78"; short val; comm[12] = block; memset(comm+17,0,32); /* read 16 *2 */ val = ICC_tsi_api(fd,49,comm,&lenr,temp); memcpy(data,temp,16); for(lenr=0;lenr<16;lenr++) if(temp[lenr]!=temp[16+lenr]) return 0x6283; return val; }

Page 55: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

6.block:f�³(1...63),���±W0#fÛª,�ª.�ORÑ��f���(=�±J). data:ÕÖ���2#Ïf��(ÏfW16¦è), �MIFARE1 card�jf�W%÷���¥. short Mif_write(int fd,char block, char *data) { char lenr,comm[65]="\x10\x3\x0\x0\x3c\x13\x10\x14\x4\x10\xa0\x10\x0\x16\xa\xf1\x48\xe0\xab\x13\x80\x14\x4"; short val; comm[12] = block; for(lenr=0;lenr<16;lenr++){ comm[23+2*lenr] = 0x10; comm[24+2*lenr] = *data++; /* write data */ } memcpy(comm+55,"\x16\x10\xf1\x28\x16\x5f\xf1\x48\xe0\xaf",10); return ICC_tsi_api(fd,65,comm,&lenr,comm); } 7. block: ��f�³. value: l£�. %à:��"l£¸¤£��õg,.�-Mif_write~�� �f�"¦ÒÞ(�õ¦W�Üf),�tÛªl£¸¤£. �Üf(=: ¦è: 0------3 4------7 8------11 12 13 14 15 value ~value value block ~block block ~block ~:ʶ/§. value:Z¦èï>&,�¦è�g. block :l£¸¤£#f�³. q:�� 0#f2�¦ÒÜ10000(0x2710).¢,#dataº�jkÜ. data[0]=0x10;data[1]=0x27;data[2]=00;data[3]=00; data[4]=0xef;data[5]=0xd8;data[6]=ff;data[7]=ff; data[8]=0x10;data[9]=0x27;data[10]=00;data[11]=00; data[12]=2;data[13]=0xfd;data[14]=2;data[15]=0xfd; short Mif_increment(int fd,char block,unsigned long value) { char lenr,comm[]="\x10\x3\x0\x0\x1e\x13\x10\x14\x4\x10\xc1\x10\x0\x16\xa\xf1\x48\xe0\xab\x13\x20\x14\x4\x16\xa\x10\x1\x10\x2\x10\x3\x10\x4\xf0\x40"; comm[12]= block; comm[26] = *((char *)&value); comm[28] = *((char *)&value+1); comm[30] = *((char *)&value+2); comm[32] = *((char *)&value+3); return ICC_tsi_api(fd,35,comm,&lenr,comm); } 8. block: ��f�³. value: l£�. ��ÜMif_increment~�Ϩ.

Page 56: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

short Mif_decrement(int fd,char block,unsigned long value) { char lenr,comm[]="\x10\x3\x0\x0\x1e\x13\x10\x14\x4\x10\xc0\x10\x0\x16\xa\xf1\x48\xe0\xab\x13\x20\x14\x4\x16\xa\x10\x1\x10\x2\x10\x3\x10\x4\xf0\x40"; comm[12] = block; comm[26] = *((char *)&value); comm[28] = *((char *)&value+1); comm[30] = *((char *)&value+2); comm[32] = *((char *)&value+3); return ICC_tsi_api(fd,35,comm,&lenr,comm); } 9. mode: o�ë�;<. x x x x x AB KS1 KS2 AB: 0-!"o�A. 1-!"o�B. KS1KS2: 00-�-���RAMo� 1�#o�. 01-�-���RAMo� 2�#o�. 02-�-���RAMo� 3�#o�. block: o�*ë�#� ±.f�"o�L�í,���~�ë�# o�4�'�,� #o��"��,ßx�tL���. oldkey: ���ROMo� �#o�.-L�RAM�ë�o�í� "ø©L�,ß�o�Û�,tÛª�RAM ë�o�. newkey: *ë�RAM�#o�,4��#o�¢ÏC. short Mif_load_key(int fd,char mode,char block,char *oldkey,char *newkey) { char lenr,comm[35]="\x10\x3\x0\x0\x1e\x1b\x3\x1c"; comm[6] &= mode; comm[8] = block; if(mode&4) comm[8]|= 0x40; for(lenr=0;lenr<6;lenr++){ comm[9+lenr*2] = 0x1a; comm[10+lenr*2] = *oldkey++; comm[21+lenr*2] = 0x1a; comm[22+lenr*2] = *newkey++; } comm[33] = 0xe1; comm[34] = 0x04; return ICC_tsi_api(fd,35,comm,&lenr,comm); } 10. block: ��f�³. %à: ��";Mif_increment¸MIf_decrement���,,x�Ð-�~�, �¢l��#��l�¢,�³#EEPROM�B.�tl£¸¤£��Ûª�(. short Mif_transfer(int fd,char block) { char lenr,comm[]="\x10\x3\x0\x0\x12\x13\x10\x14\x4\x10\xb0\x10\x0\x16\x10\xf1\x28\x16\x5f\xf1\x48\xe0\xaf"; comm[12]=block; return ICC_tsi_api(fd,23,comm,&lenr,comm); } 11. �~����4�õ##JW�G$ª).

Page 57: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

short Mif_halt(int fd) { char lenr,resp[20]; return ICC_tsi_api(fd,17,"\x10\x3\x0\x0\x0c\x13\x10\x14\x4\x10\x50\x10\x00\x16\x0a\xf0\x40",&lenr,resp); } % �:��#�q��W01þmifareÃÄÅkmifdemo.c

Page 58: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � � � �� � ���'()*'()*'()*'()*��� ����

/************************************************************************/ /* ¬­®¯2Q�°±²³´ 1995-03-19 example.c */ /************************************************************************/ #include <stdio.h> #include <conio.h> #include <time.h> #include <stdlib.h> #include <string.h> #include "crw.h" unsigned CT_version(int fd,char *lenr,char *version); int get_hex(char *s,int i); int main(int argc,char *argv[]) { int fd; unsigned char *data,lenr; unsigned short len,val; int record,offset; int select; clock_t tb,te; if(argc<2){ if( (fd = CT_open("AUTO") ) < 0) { printf("Usage: %s COM1 (/dev/tty1a)\n",argv[0]); exit(-1); } } else if( (fd = CT_open(argv[1]) ) < 0) { printf("Cannot open %s\n",argv[1]); exit(-2); } if((data=(unsigned char *)malloc(4096))==NULL) { printf("No enough memory\n"); CT_close(fd); } for(;;) { printf("\n\n 1 . card_reset 2 . CT_reset "); printf("\n 3 . CT_version 4 . CT_config"); printf("\n -------------------------------------------------"); printf("\n 5 . select file 6 . verify PIN"); printf("\n 7 . read_binary 8 . write_binary"); printf("\n 9 . read_record 10. write_record"); printf("\n 11. external_auth 12. internal_auth"); printf("\n 13. get_challenge 14. CPU CARD COMMAND"); printf("\n 15. set_CLA(default 00) 16. set_NAD (default 00)"); printf("\n 17. get_response 18. send_key"); printf("\n 19. read_binary with key 20. write_binary witch key"); printf("\n 21. read binary with protect 22. write binary with protect"); printf("\n 23. change PIN 24. erase bit"); printf("\n 25. read bit 26. write bit");

Page 59: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

printf("\n 27. quit"); printf("\n Please select : "); scanf("%s",data); switch( atoi(data) ) { case 1: val = ICC_reset(fd,&lenr,data); printf("%s RESET:",ICC_message(val)); for(val=0;val<lenr;val++) printf("%02x ",data[val]); break; case 2: val = CT_reset(fd); printf("%s ",ICC_message(val)); break; case 3: val = CT_version(fd,&lenr,data); printf("%s VERSION:",ICC_message(val)); if( (val&RE_OK) == RE_OK ) for(val=0;val<lenr;val++) printf("%c",data[val]); break; case 4: printf(" 01:T=0 02:T=1 08:I2bus 09:18/28 0a:32/42 0b:02/04\n"); printf(" 0c:03/06 0d:ST1304 0e:AT101 0f:AT102 10:AT103 11:GPM896"); printf("\n input:"); scanf("%X",&select); printf("%s ",ICC_message(CT_config(fd,select) ) ); break; case 5: printf(" Input file name(hex MF=3F00 DF>FF EF<FF): "); scanf("%X",&val); printf("%s ",ICC_message( ICC_select_file(fd,val) ) ); break; case 6 : printf(" Input PIN len : "); scanf("%X",&len); printf(" Input PIN(hex): "); get_hex(data,len); printf("%s ",ICC_message( ICC_verify(fd,len,data) ) ); break; case 7 :printf(" Input Offset (hex) : "); scanf("%X",&offset); printf(" Input length(decimal): "); scanf("%d",&len); tb = clock(); val = ICC_read_bin(fd,offset,len,data); te = clock(); printf("%s ",ICC_message(val)); if(val==RE_OK) if(len){ printf("DATA is :\n"); for(val=0;val<len;val++) printf("%02X ",data[val]); } printf(" Use time %f sec ",1.0*(te-tb)/CLK_TCK); break; case 8 : printf(" Input Offset (hex) : "); scanf("%X",&offset); printf(" Input length(decimal): "); scanf("%d",&len); if(len<80) { printf(" Input write data(hex): "); get_hex(data,len); }

Page 60: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

else { printf(" Input write 1byte data(hex): "); get_hex(data,1); for(val=0;val<len;val++) data[val] = *data; } /**/tb = clock(); val = ICC_write_bin(fd,offset,len,data); /**/te = clock(); /**/printf(" Use time %f sec ",1.0*(te-tb)/CLK_TCK); printf("%s ",ICC_message(val)); break; case 9 : printf(" Input record(hex) : "); scanf("%X",&record); printf(" Input arg(hex) : "); scanf("%X",&offset); printf(" Input length(decimal): "); scanf("%d",&len); val = ICC_read_record(fd,record,offset,len,data); printf("%s ",ICC_message(val)); if(val==RE_OK) if(len){ printf("DATA is :\n"); for(val=0;val<len;val++) printf("%02X ",data[val]); } break; case 10: printf(" Input record(hex) : "); scanf("%X",&record); printf(" Input arg(hex) : "); scanf("%X",&offset); printf(" Input length(decimal): "); scanf("%d",&len); printf(" Input write data(hex): "); get_hex(data,len); val = ICC_write_record(fd,record,offset,len,data); printf("%s ",ICC_message(val)); break; case 11: printf(" Input kid(hex): "); scanf("%X",&val); printf(" Input ek(RNDicc)(8byte hex): "); get_hex(data,8); printf("%s ",ICC_message( ICC_external_auth(fd,val,data) ) ); break; case 12: printf(" Input kid(hex): "); scanf("%X",&val); printf(" Input ek(RNDicc)(8byte hex): "); get_hex(data,8); printf(" Input the length of encRND: "); scanf("%X",&len); val = ICC_internal_auth(fd,val,data,len,data); printf("%s ",ICC_message(val)); if(val==RE_OK){ printf("enc(RND):"); for(val=0;val<len;val++) printf("%02x ",data[val]); } break; case 13 : val = ICC_get_challenge(fd,8,data); printf("%s ",ICC_message(val)); if(val==RE_OK){ printf(" Rand is:"); for(len=0;len<8;len++) printf("%02x ",data[len]); } break; case 14: printf(" Input CLA(hex) :"); get_hex(data,1); printf(" Input INS(hex) :"); get_hex(data+1,1); printf(" Input P1(hex) :"); get_hex(data+2,1); printf(" Input P2(hex) :"); get_hex(data+3,1); printf(" Input Lc(hex) :"); get_hex(data+4,1); len=data[4];

Page 61: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

if(len){ printf(" Input DATA :"); get_hex(data+5,len); } else { printf(" Input Le(hex) :"); get_hex(data+4,1); } val = ICC_tsi_api(fd,5+len,data,&lenr,data+200); printf("%s ",ICC_message(val)); if(val==RE_OK){ printf(" RESP:"); for(len=0;len<lenr;len++) printf("%02x ",data[len+200]); } break; case 15: printf("input new CLA :"); scanf("%X",&val); ICC_set_CLA(val); break; case 16: printf("input new NAD :"); scanf("%X",&val); ICC_set_NAD(val); break; case 17: printf(" Input get data length: "); scanf("%X",&lenr); printf("%s ",ICC_get_response(fd,lenr,data)); for(len=0;len<lenr;len++) printf("%02x ",data[len]); break; /*------------------------------------*/ case 18: printf(" Input key len : "); scanf("%X",&len); printf(" Input key(hex) : "); get_hex(data,len); printf("%s ",ICC_message( ICC_send_key(fd,len,data) ) ); break; case 19: printf(" Input Offset (hex) : "); scanf("%X",&offset); printf(" Input length(decimal): "); scanf("%d",&len); val = ICC_read_bin_s(fd,offset,len,data); printf("%s ",ICC_message(val)); if(val==RE_OK) if(len){ printf("DATA is :\n"); for(val=0;val<len;val++) printf("%02X ",data[val]); } break; case 20: printf(" Input Offset (hex) : "); scanf("%X",&offset); printf(" Input length(decimal): "); scanf("%d",&len); printf(" Input write data(hex): "); get_hex(data,len); val = ICC_write_bin_s(fd,offset,len,data); printf("%s ",ICC_message(val)); break; case 21: printf(" Input Offset (hex) : "); scanf("%X",&offset); printf(" Input length(decimal): "); scanf("%d",&len); val = ICC_read_bin_p(fd,offset,len,data); printf("%s ",ICC_message(val)); if(val==RE_OK) if(len){ printf("DATA is :\n"); for(val=0;val<2*len;val++) printf("%02X ",data[val]); } break; case 22: printf(" Input Offset (hex) : "); scanf("%X",&offset);

Page 62: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

printf(" Input length(decimal): "); scanf("%d",&len); printf(" Input write data(hex): "); get_hex(data,len); val = ICC_write_bin_p(fd,offset,len,data); printf("%s ",ICC_message(val)); break; case 23: printf(" Input PIN len : "); scanf("%X",&len); printf(" Input OLD PIN(hex): "); get_hex(data,len); printf(" Input NEW PIN(hex): "); get_hex(data+20,len); printf("%s ",ICC_message( ICC_change_pin(fd,len,data,data+20) ) ); break; case 24: printf(" Input offset(hex): "); scanf("%X",&len); printf("%s ",ICC_message( ICC_erase_bit(fd,len) ) ); break; case 25:printf(" Input Offset (hex) : "); scanf("%X",&offset); printf(" Input length(decimal): "); scanf("%d",&len); val = ICC_read_bit(fd,offset,len,data); if(val==RE_OK) if(len){ printf("DATA is :\n"); for(val=0;val<len;val++) printf("%02X ",data[val]); } printf(" Use time %f sec ",1.0*(te-tb)/CLK_TCK); break; case 26:printf(" Input Offset (hex) : "); scanf("%X",&offset); printf(" Input length(decimal): "); scanf("%d",&len); if(len<80) { printf(" Input write data(hex): "); get_hex(data,len); } val = ICC_write_bit(fd,offset,len,data); printf("%s ",ICC_message(val)); break; default: CT_close(fd); free(data); exit(0); } /* switch */ }/* while */ } int get_hex(char *s,int i) { int val,l=0; char buf1[500]; while(l<3*i-1){ scanf("%s",buf1+l); l = strlen(buf1); buf1[l] = 0x20; buf1[++l] = 0; } for(l=0;l<i;l++){ sscanf(buf1+3*l,"%X",&val); s[l] = val; } return 0; }

Page 63: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

� � � � �������+,-./012���+,-./012���+,-./012���+,-./012���� ����

����

`�� EYç�

�����ev��NOks-��������:E~�#,-��sÅTj��7DE'�

-sÜíSTj��� E'�-s�.Í0¢,#�:¬A �

�����-�7DEí Â�4�DEÛ*�7���� = z°¯¶z²°¯¯BJJ P-�

���#îúbÛÚ����� å���DE#�:¬A#YÆí�Waaas��Ú�

Ö$T��: �

�����-�� Eí .PU���XÆ��� E�:¬A �� E�:¬A�

Ïè¬÷¬A T-JW�q�� ¬A�jk¤�<Yçjk«�À� �

����u]�t5/�v?�N¸?>����

����]dtv5))))))�

�����w]>t5))))))�

�������/t}�v5))))))�

�������tv�5))))))�

����d�t���5))�

����>e����5))�

������ �

�������u]�t�����Yç��4����õ##�Ë;< ��

�������]dtv��� YçÍ0 E#îú�� �

��������w]>t�� YçÍ0 E#îú���

����������/t}�v�Yç|�� E�"�Ë#îú���

�����tv����Yç|�Ö�E ¸x��� �Ë#îú���

��d�t���M>e����Yç E¾Ö�è¦\#g�¦\M��¦\ îú���#I

�¦\-�yyyM�y)��¶�s���yyy¶�ÝËy��� ��¶�pË64���

=ºÚ-��ó�o�Yç t��À�YçW�y = �

d�t���5�y�

�����>e����5�y)y�

������"YçÏèÀ� �-¬0­#"�%­" �

� ��è�� ��-���������í ÛªÜíÍ08è E Í0Ïè E

4����¸i#F��Ë� ,bÛ� E «4i#F��Ë �

{����C�

��������������4�7DE�Ë#À�YW ~ayyA'&s�_Ë��Ës®ë� `

˪)Ë Új ��# E�ËÀ�,�W'¤#Ü �

� QF �p��# E�ËýI�t®��t--ã&¯³±�`yä  EÛ¯°I�¦\ Ä+

��4����#Tj�/�v?�N;<�Ë Ä+;<�Ë(�6 �

� �ÛýI/�v?�N;<#�� =}�{{y/  EÛ¯°I�¦\ Ä+��4���

�#�ª?>���;<�Ë Ä+;<�Ë(��Ïp �

��������������(E��±L#�Ë;<�/�v?�N;< �

�|�U�j'Yç ^×jjkuB�-��Sq=k �

� q` ���

Page 64: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

¬}�{{y/¼�� E`�:I�¬A�

u]�t5?>����

]dtv5�y�

�w]>t5�y�

���/t}�v5�y||0³�

���tv�5�y||0��

d�t���5�

>e����5�

¬�� E�Ë´�W~ayy _Ë®ë� �

q{ �µ�`y�� E` ¶·/d_~y`�Ë�

u]�t5/�v?�N�

]dtv5�)`A�y�{�y�yN�||0z�y��

�w]>t5�y||0z�y`�

���/t}�v5�y||���

���tv�5y||�?�

d�t���5�)y�

>e����5�y�

q| �µ�`y�� E|�

u]�t5/�v?�N��

]dtv5�y||�y�{�y�y��y||0z�y��y||0z�|`�y||0z�x`�

�w]>t5�y||0z�y`�

���/t}�v5�y||0z�`��

���tv�5�y||0z�``�

d�t���5�)_y�

>e����5�)_`�

Page 65: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

� � � � �� �34343434 560178��560178��560178��560178���

Ï u¸���¿ u¸925A¼����Ïè25²DEMÏè9²DE ��25²DE:�7 9²D:u¸��7¸o�×ýþ ß.9:�� ¡DE�: t.Pjk>�XA 1 �������÷,�5.0j' Q�÷±��07í�� 2 ��'9²DE�ª:u¸Z-�: :��.�25²DE��A:29²DE �A; W ² 25 2 3 RXD : ² 3 2 TXD � ̧ � 7 5 GND 7 D 5 GND : E 12 3 TXD IC ²< 13 2 RXD � 23 1 +5V : 24 �A�¿ 25²�DE 2 � ��1¾ 3 � ��:½ 7 � ˱� 12 �  E��1¾ 13 �  E��:½ 23 � +5V§� 24 � +12V§� 9²�DE 2 � ��1¾ 3 � ��:½ 5 � ˱� 9² ¡DE 2 � ��1¾ 3 � ��:½ 5 � ˱� 1 � §� +5V IC��:�-�¿ �'¬Ú�#9:A�au¸�� �7MIC���' x��-IC�:E~� = CT_open(),CT_close()J u¸��Ú-�:­W GG925A f,-CT_open ~�Í0 E¦âí ��¯¹';yÌ"�� �����7�7�7�7I�I�I�I� �

ÄíT�-IC�� �~��"x��� nQíx�¯¹�� �2Ý}Y

ça E .QÛª�"¯¹�� �a,-CT_open()~�bÛ E��ªV�x�

Page 66: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

Ô u¸��9ACRW-II¼��#Æ���Ñ Ïºlm� �10�³0Ò10è¦è main() { int fd,i; unsigned char buf[15]; char *len,*resp; fd=CT_open(“COM1’); if(ICC_reset(fd,char *len,char *resp)!=0x9000){ CT_close(fd); /*�bÛ E«¯¹�2*/ printf(“ IC reset error!\n”); } else if(read_bin(fd,10,10,buf)!=0x9000){ CT_close(fd); printf(“READ ERROR!\n”);

} else{

CT_close; printf(“The data is: \n”);

for(i = 0;i <10;i++) printf(“%x”,buf[i]); } }

� �µ510¼��9A» �E 25¾²< 1· � 2· TXD 3· RXD 4· +12V 5· NC 6· ���COK 7· ˱� 8· CD 20 ����OIC-  E 9¾²<  E1M E3WRS-232§�  E2WTTL§� 1 +5V 2· RXD1 3· TXD1 4· SELECT 5· GND 6· -12V 7· +12V 8· RXA2 9· TXA2

Page 67: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

� � � � �� � ������ �9:;<��� �9:;<��� �9:;<��� �9:;<���

W�;�-V01*+ÛÜ����#IC�,-�� ^×��CRW-II4�7#

�G�< j�Û�-�g��'���:DE���ªIC� Ï �C567DEW9600¼X� 8è��Ë ®ë� � }DE1îú 12 00 îú�ïð îú� W¸ë� �120Ò�îú�(é îú� CLA INS P1 P2 Lc DATA q1 �00 040Ò�³0F¦è�� 12 00 05 00 B0 00 04 0F AC q2 }00 050Ò�³4¦è��

12 00 09 00 D0 00 05 04 11 22 33 44 XOR q3 ��Eú 12 00 08 00 20 00 00 03 FF FF FF C6 q4 ìíEú 12 00 0C 00 24 00 00 07 03 FF FF FF 55 55 55 XOR ��� ��� q5 ò�¿�ËËÌ 12 00 05 00 12 00 00 00 05 q6 ��û"DES{6 12 00 15 10 02 P1 00 10 8¦èKEY 8¦è�� XOR P1 00 no 01 �o

Ý �IC�ÕÖ#ËÌ 21 XX��ïðL 1¦è L¦è�� XOR ����#�p¦è¶�yÌSW1 SW2 q1 j � ��00 040Ò0F¦è�Wq ÕÖËÌ=k 21 XX 11 0F¦è�� 90 00 XOR ���11

Page 68: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� �

� � � � �� � ���� �='>���� �='>���� �='>���� �='>���

����

��U��Fñù�½óô�Ú»yÌ �

ãÏä������@ABC<� �

������¤¾�Ïè¿ÀÁÂ1¸� � -Lù�yÌM���� �

����ÁÀ¶�Ûhi�� �

����ÂÀ¶�hi�� �

�����ã�ä������FC<��

� � ÃĽÅÆR¯Ä½Ç ó����¸�¿ñ��È �

� � ÃÄ½É Ñ����� �

� � ¯ÄÂ½É hi-V��#� �

� � ¯ÄÁ½ÅÆ Ûhi����#�¿ �

� � � ¯Ä½ÅÆ ¶��x����"�� �

� � �

Page 69: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

� � � � ��?@=A?@=A?@=A?@=A�

����

E�§F ���¡�

E�§! ����yy¹?�

§�§F ��{{y¡§�§F�Þ�`y�ãFC<ä�

â����G ���{��¡?�

E�Ið ��`y ¹�� �

4lIð ��|� ¹^� �

Ê����ð |� E�í�¢�ÊðÛ,ÞL~y��

����

����

Page 70: Ç° ÑÔ - watchdata.com.cn · ˘ˇˆ˙˝----- ˘ ic :e ¿ crw.h 1998-02-03

� � �

��������u�u�u�u�ghghghgh)��)��)��)��SSSS����

////°µ°µ°µ°µËËË˵®²��®¯°±®³¯µµ®²��®¯°±®³¯µµ®²��®¯°±®³¯µµ®²��®¯°±®³¯µtttt®³®³®³®³uuuu��°¶��°¶��°¶��°¶����®®®®tuttuttuttut²²²²BBBB��������tt'tt'tt'tt'°±³¯µ°±³¯µ°±³¯µ°±³¯µtttt®��°®¯°±®��°®¯°±®��°®¯°±®��°®¯°±����

����������������������������������������������������

////t�t�t�t�´́́́�v}��?���v}��?���v}��?���v}��?��++++��?�?�>��?�?�>��?�?�>��?�?�>NNNN>�tu��]>�tu��]>�tu��]>�tu��]�����w���w���w���w������

����³³³³r�r�r�r�������������ÌÍÌÍÌÍÌÍ ÎÎÎÎ��N��N��N��NÏÏÏϨ̈̈̈~~~~±±±±����

ÐÑÐÑÐÑÐÑ��������r`yyy`�r`yyy`�r`yyy`�r`yyy`�����

�twrãy`yäax|a``aa�twrãy`yäax|a``aa�twrãy`yäax|a``aa�twrãy`yäax|a``aa {`�{{`�{{`�{{`�{ {`�|{`�|{`�|{`�|����

��������� ��� ����

� � ������������������������������