Programmer en zcbasic avec  un  Lecteur  PC/SC  en USB


Forum de discussion
Manuel BasiCard en anglais (indispenpsable pour programmer en ZCBasic)
Les Logiciels gratuits d'exploration de carte à puce
Programmer une BasicCard

Qu'est ce qu'est le ZCBASIC?

- C'est une création de la PME allemande ZeitControl.
- Il permet de communiquer avec les cartes à puces (cartes bancaires, vitales, Gsm télécartes et autres) via un simple lecteur PC/SC (USB ou port Com).
- C'est un langage compilé (c'est à dire qu'avec un compilateur appelé ZCMBasic fourni gratuitement par ZeitControl vous obtenez un .exe à partir d'un .bas)
- Vous pouvez obtenir gratuitement cet outil de développement pour Windows (BasicCard Development Software) sur le site de BasicCard.

Création d'un premier programme. 

Une fois que vous avez installé votre BasicCard Developpement Software vous vous retrouvez avec un dossier BasicCardPro à la racine de votre disque dur. C'est dans ce dossier que ce trouve le compilateur ZCMBasic.exe. La compilation se fait en ligne de commande sous dos.

Mode d'emploi:

ZC-Basic Compiler Version 4.52 (c) ZeitControl 2003

Usage: ZCMBASIC [param [param...]] input-file [param [param...]]

    input-file:  The ZC-Basic source file (.BAS)

         param: -CT              Compile for Terminal (default)
                -C1.1            Compile for Compact BasicCard ZC1.1
                -C3.x            Compile for Enhanced BasicCard ZC3.x
                -CFconfig-file   Compile for card in config-file (.ZCF)

                -Dsymbol[=val]   Define symbol (default val=1)
                -E[exe-file]     Win32 Console application (.EXE)
                -Ipath           Search path for #Include files

                -OD[debug-file]  Debug file (.DBG)
                -OE[error-file]  Error file (.ERR)
                -OI[image-file]  Image file (.IMG)
                -OL[list-file]   List file (.LST)
                -OM[map-file]    Map file (.MAP)

                -Sstack-size     Set size of P-Code stack

                -Sstate          Set card state = [L]oad/[P]ers/[T]est/[R]un

Editer votre premier programme

Ce que vous devez savoir: La réponse au reset (ATR) est la réponse que toute carte à puce émet lorsque celle si est rentré dans le lecteur. La réponse de la carte suit une norme (ISO  7816-3 ) La réponse est une suite d'octets dont la signification de chaque bits peut être donné suivant les normes citées précédemments. Exemple de réponse: ATR = 3F 2F 00 80 69 AF 02 04 02 31 00 00 00 0E 83 3E 9F 16
Les deux premiers octets sont obligatoires. Le premier octet peut être 3F pour une logique inverse (négative) ou 3B pour une logique directe (positive). Consulter les normes pour plus d'informations.

Grâce à l'éditeur ZeilControl Professional IDE (Menu demarrer->programmes->basicCard Pro) vous allez creer votre fichier .bas. Enregistrer le dans le dossier C:\BasicCardPro>


#Include CARDUTIL.DEF
#Include COMMERR.DEF
ComPort=101
Call WaitForCard()
ResetCard (P$) : Call CheckSW1SW2()
CLS:Print"Caract. Historiques de l'ATR : ";
FOR F=1 TO Len(P$)
M=ASC(MID$(P$,F,1))
M$=HEX$(M):IF Len(M$)=1 Then M$="0"+M$
PRINT M$;" ";
NEXT F
Print:Print:Call WaitForNoCard


#Include CARDUTIL.DEF
#Include COMMERR.DEF
ComPort= 101
Declare Command &HA0 &HA4 SL(S$,Disable Le)
Declare Command &HA0 &HB2 RREC(S$)
Call WaitForCard
ResetCard
Call CheckSW1SW2
Print : Print
S$=Chr$(&H7F)+Chr$(&H10)
Call SL(S$)
S$=Chr$(&H6F)+Chr$(&H3C)
Call Sl(S$)
S$=""
Call RREC(P1P2=&H0104,S$,Le=176)
For F=2 TO 176
C$=MID$(S$,F,1)
C=ASC(C$)
C$=HEX$(C)
IF LEN(C$)=1 Then C$="0"+C$
Print C$+Chr$(32);
NEXT F

Compilation de vos programmes

Dans le dossier C:\BasicCardPro> tapez sous dos la commande suivante:

ZCMBasic -CT -E programme.bas

Vous vous retrouverez avec un magnifique programme.exe 

Sites paretenaires :

Nouvelles Technologies et Petites histoires



 




Ahalia
Programmation
Cliquez ici

Annuaire internet
Annuaire FuN
Annuaire hitweb