13736
UTILITAIRE -> Divers
© BD Software (19??)
 
 
 
BDS-C 1.5
cpc
 
 

NOTICE / MANUAL

TXT (1)

NOTICE TEXTE n° 1 (15.61 Ko)

------------------------------------------------------------------------- | | | BDS-C 1.5 (BD Software) | | | | Compilateur C pour Z80 sous-ensemble du C de K&R | | | ------------------------------------------------------------------------- ------------------------------------------------------------------------- | | | CONTENU DE LA DISQUETTE | | ----------------------- | | | | - cc.com compilateur passe 1 | | - cc2.com compilateur passe 2 | | - cl.com editeur de liens (ou clink.com) | | - c.ccc run-time pour ajoute a l'edition de lien| | - clib.com gestionnaire de librairies | | - deff.crl librairie standard ecrite en C | | - deff2.crl librairie standard ecrite en assembleur | | - deff3.crl librairie extension ecrite en C | | - dio.crl librairie pour redirection d'E/S | | - stdio.h en-tete pour entrees/sorties standard | | - dio.h en-tete pour redirection d'E/S | | - float.crl librairie pour les reels | | - c.doc documentation on-line de C | | | |-----------------------------------------------------------------------| | | | COMPILATION | | ----------- | | | | Compilateur rapide en 2 passes (le compilateur est ecrit en | | assembleur). | | | | A>cc source.c [-options ... ] | | | | | | | facultatives | | | |---- -p listing avec lignes numerotees | | source | apres #define et #include | | de |---- -d n objet .CRL sur disque "n" | | type |---- -e xxxx adresse des donnees globales | | .C |---- -o optimisation en vitesse | | |---- -r x reservation de xKoctets pour | | la table des symboles,defaut=10K| | | | A>cc prog.c -p -db -e8000 -r11 | | | | Cree un fichier relogeable de PROG.CRL sur le disque B: avec | | production d'un listing de precompilation, donnees globales en | | 8000 hexa de la memoire et table des symboles de 11 Koctets. | | | |-----------------------------------------------------------------------| | | | EDITION DE LIENS | | ---------------- | | | | A>cl objet [objet1 objet2...] [-options ...] | | | | | | | | | facultatives | | objet objets | | | principal secondaires |-- -s edition map implantation| | |-- -e xxxx force la base des | | | donnees globales en xxxx| | |-- -o name force un executable | | | de nom NAME.COM | | |-- -w cree un fichier table | | | symboles OBJET.SYM | | |-- -y name dit aux overlays | | | d'aller lire OBJET.SYM | | |-- -l xxxx adresse d'implanta- | | | -tion des overlays | | |-- -v module = overlay | | |-- -r xxxx reserve xxxx hexoct | | table des references,600| | | | A>cl bed screen window move swap -e9000 -w -s -r800 | | A>cl list -v -l 8000 -y bed -s -o list | | A>cl help -v -l 8000 -y bed | | | |-----------------------------------------------------------------------| | | | LIBRAIRIES | | ---------- | | | | Fichiers de librairie satisfaits automatiquement : | | | | - DEFF.CRL , DEFF2.CRL , DEFF3.CRL | | | | Autres Librairies : | | | | - DIO.CRL (redirection des E/S) , FLOAT.CRL (reels) , | | SCREEN.CRL (terminal ecran compatible TERMCAP). | | | |-----------------------------------------------------------------------| | | | FONCTIONS DE LA LIBRAIRIE BDS STANDARD | | -------------------------------------- | | | | Interface Systeme CP/M | | ---------------------- | | | | exit() fin normale d'un programme retour CP/M | | int bdos(c,de) appel fonction BDOS no. c, arg. = de | | retour valeur de l'accumulateur A | | char bios(n,bc) appel nieme entree de la table des | | vecteurs de branchement du BIOS, arg. bc| | equivaut a la paire de registres BC | | int biosh(n,bc,de) appel BIOS nieme entree, registres BC DE| | int inp(p) retourne l'octet lu sur le port "p" | | outp(p,c) ecrit l'octet "c" sur le port "p" | | pause() attend qu'un caractere soit tape au clav| | sleep(n) attend n/20 secondes, n=20 => 1 seconde | | int call(adr,a,h,b,d) appel un sous-programme systeme a l'adr-| | -esse "adr" avec les registres A,HL,BC, | | DE; retourne le contenu de HL | | char calla(adr,a,h,b,d) idem a "call"; retourne contenu de A | | int swapin(fname, adr) chargement d'un programme a l'adresse | | "adr" en memoire (overlay) | | char *codend() retourne l'adresse qui suit la fin du | | code du segment racine | | char *externs() retourne l'adresse du debut de la zone | | des variables globales | | char *endext() retourne l'adresse qui suit la fin de la| | zone des donnees globales | | char *topofmem() retourne la derniere adresse disponible | | char *alloc(n) retourne un pointeur octet sur une zone | | de "n" octets allouee sinon 0 | | free(ptr) libere la zone precedemment allouee | | debutant a l'adresse pointee par "ptr" | | char *sbrk(n) allocation de bas niveau de "n" octets | | int kbhit() retourne 1 si une touche du clavier a | | ete frappee sinon 0 | | | | Fonctions Standard compatibles UNIX | | ----------------------------------- | | | | int getchar() lecture d'un caractere a la console | | si <CTRL+Z> retourne (EOF) = (-1) | | si <CTRL+C> abandon du programme | | putchar(c) ecriture du caractere "c" sur l'ecran | | si <CTRL+S> suspension sortie | | si <CTRL+Q> reprise sortie | | si <CTRL+C> abandon du programme | | char ungetch(c) le caractere c est empile et sera rendu | | par le prochain getchar() | | putch(c) idem a putchar() pas de test sur CTRL+C | | puts(str) ecrit la chaine de car. "str" en sortie | | int getline(buf, max) lit une ligne complete a la console | | terminee par un <CR> ou au plus "max" | | caractere de longueur. retourne le | | nombre de caracteres effectivement lus. | | <CR> et remplace dans "buf" par un 0. | | char *gets(str) idem a getline() mais pas de max (135), | | retourne l'adresse de "str" . | | printf(format,arg1,...) impression avec format | | scanf(format,arg1,...) lecture avec format | | | | int isalpha(c) retourne 1 si c est alphabetique sinon 0| | int isalnum(c) retourne 1 si c est alphanumerique | | int isupper(c) retourne 1 si c est une lettre majuscule| | int islower(c) retourne 1 si c est une lettre minuscule| | int isdigit(c) retourne 1 si c est un chiffre | | int isxdigit(c) retourne 1 si c est un chiffre hexa 0..F| | int isspace(c) retourne 1 si c est un espace blanc, | | tabulation, return ou line-feed | | int isprint(c) retourne 1 si c est imprimable | | int isgraph(c) retourne 1 si c est caractere graphique | | int iscntrl(c) retourne 1 si c est caractere controle | | int isascii(c) retourne 1 si c est ASCII (0..7F) | | int tolower(c) convertit c en minuscule si majuscule | | int toupper(c) convertit c en majuscule si minuscule | | int abs(n) retourne valeur absolue de n | | int min(a,b) retourne le mininum de a et de b | | int max(a,b) retourne le maximum de a et de b | | | | char *strcat(s1,s2) concatene la chaine s2 a la chaine s1 | | et retourne un pointeur sur s1. | | char *strncat(s1,s2,n) idem strcat() pour n caracteres au plus.| | int strcmp(s1,s2) retourne >0 si s1>s2, =0 si s1=s2, | | <0 si s1<s2 alphabetiquement. | | int strncmp(s1,s2,n) idem strcmp() pour n caracteres au plus | | char *strcpy(s1,s2) copie la chaine s2 dans la chaine s1. | | et retourne un pointeur sur s1. | | strncpy(s1,s2,n) idem strcpy() pour n caracteres au plus.| | int strlen(str) retourne la longueur de "str". | | char *strchr(str,c) retourne le pointeur sur le premier | | caractere c trouve dans "str" sinon 0. | | char *strrchr(str,c) retourne le pointeur sur le dernier | | caractere c trouve sinon 0. | | int index(c,str) retourne la position du premier octet c | | trouve dans la chaine "str" sinon -1. | | reverse(str) renverse la chaine str. | | int atoi(str) convertit la chaine numerique decimale | | str en un entier (valeur retournee). | | itoa(n, str) convertit un entier en une chaine | | numerique decimale en str. | | sprintf(buf,format,args)idem printf mais la sortie se fait en | | memoire a l'adresse "buf". | | sscanf(buf,format,args) idem scanf mais l'entree se fait en | | memoire a partir de l'adresse "buf". | | pad(adr, c, n) remplissage de la zone pointee par adr | | de taille n par le caractere c. | | | | Entrees-Sorties Directes fd = numero file descriptor | | ------------------------ | | | | int open(fname,mode) ouverture d'un fichier en lecture mode=0| | ecriture (mode=1) ou scratch (mode=2) | | retourne le file descriptor fd (numero) | | sinon -1 si le fichier n'existe pas | | int creat(fname) creation d'une entree dans le directory | | retourne le fd sinon -1 (sature) | | int close(fd) fermeture du fichier reference par fd | | int read(fd,buf,nbl) lecture de nbl enregistrements CP/M de | | 128 octets chacun dans le buffer buf | | retourne le nombre d'enregitrement lus | | sinon 0 si EOF ou -1 si erreur | | int write(fd,buf,nbl) ecriture de nbl enregistrements CP/M de | | 128 octets chacun depuis le buffer buf | | retourne -1 si erreur hard | | int seek(fd,depl,code) positionnement sur un enregistrement | | donne par son numero "depl". | | si code=0 par rapport au debut du fich. | | si code=1 par rapport a la pos. courante| | si code=2 par rapport a la fin du fich. | | "depl" peut etre <0, si erreur retour -1| | int tell(fd) retourne la valeur du deplacement bloc | | courante dans le fichier. | | int unlink(fname) supprime le fichier du directory | | int rename(old,new) renomme le fichier, -1 si erreur | | int errno() retourne le code d'erreur de la derniere| | condition d'erreur detectee. | | char *errmsg(errno()) retourne un pointeur sur un message en | | clair de la derniere erreur rencontree. | | int setfcb(afcb,fname) initialise un FCB (file control block) | | de 36 octets a partir du nom de fichier.| | char *fcbaddr(fd) retourne l'adresse memoire du FCB | | associe a fd. | | | | Entrees-Sorties Bufferisees fp = pointeur structure fichier | | --------------------------- FILE *fp; | | | | int fopen(fname,fp) ouverture du fichier en entree (lecture)| | retourne le fd correspondant. | | fp doit etre: char fp[BUFSIZ]; | | fp est du type: FILE *fp; | | int getc(fp) retourne le caractere suivant, -1 si EOF| | int ungetc(c,fp) voir ungetch(c) | | int getw(fp) retourne l'entier suivant. | | int fcreat(fname,fp) cree un fichier et l'ouvre en sortie. | | retourne le fd ou -1 si erreur. | | int putc(c,fp) ecrit le caractere c dans le fichier et | | se positionne sur la case suivante. | | int putw(w,fp) ecrit l'entier w a la suite du fichier. | | int fflush(fp) vide le buffer courant dans le fichier. | | int fclose(fp) fermeture du fichier surtout si fcreat()| | fprintf(fp,format,args) sortie formatee idem a printf dans le | | fichier pointe par fp. | | fscanf(fp,format,args) entree formatee idem a scanf a partir du| | fichier pointe par fp. | | char *fgets(str,fp) lecture d'une ligne entiere du fichier, | | la ligne doit etre terminee par CR LF. | | la ligne est copiee dans str, elle se | | termine en memoire par LF '\0' (NULL). | | int fputs(str,fp) ecriture d'un chaine str dans le fichier| | pointe par fp. Dans le fichier, la fin | | de ligne se termine par CR-LF (newline).| | int fappend(fname,fp) ouverture en sortie d'un fichier et | | positionnement a la fin du fichier. | | int fileno(fp) retourne le fd associe au fp. | | rewind(fp) se positionne au debut du fichier. | | | | Fonctions diverses | | ------------------ | | | | srand(n) initialise le generateur de nombre | | pseudo-aleatoire avec la valeur n. | | si n=0 une question est posee a l'usager| | qui doit taper CR, le temps d'attente | | exploite pour initialiser le generateur.| | srand1(str) idem a srand(0) mais la question est | | personnalisee par l'utilisateur ("str").| | int rand() retourne un nombre pseudo-aleatoire dans| | la gamme 0..32768 si on a fait srand(). | | setmem(adr,cnt,byte) initialise la zone memoire debutant a | | adr, de longueur cnt, avec l'octet byte.| | movmem(src,dst,cnt) copie de la zone memoire scr de taille | | cnt vers la zone memoire dst. | | qsort(base,nel,lg,comp) "Tri de Shell" debutant a l'adresse base| | pour nel elements de taille lg. "comp" | | est le nom d'un fonction de comparaison | | que doit fournir l'utilisateur. | | int exec(progname) chainage de programme. Charge et execute| | le programme de nom "progname" qui doit | | etre de type .COM (executable). | | Il n'y a pas de retour a l'appelant. | | int execl(prog,args,...,0) idem a exec() mais passage des argum-| | ents arg1, arg2, ... | | int execv(prog,argv) idem a exec() mais passage du pointeur | | de la table des arguments. char **argv. | | int setjmp(contexte) marque le contexte au premier passage. | | retour derriere setjmp si longjmp() sur | | ce meme contexte. | | longjmp(contexte,val) branchement a l'instruction qui suit le | | setjmp() associe au meme contexte. | | initw(array,str) initialisation d'un tableau d'entiers | | par une liste de valeur dans une chaine.| | initb(array,str) idem a initw mais tableau de caracteres.| | | |-----------------------------------------------------------------------| | | | STDIO.H | | ------- | | Le fichier "stdio.h" contient des declarations necessaires | | lorsqu'on utilise les entrees-sorties en mode "flow" c'est-a- | | dire "bufferisees". | | | | Les principales constantes definies sont : | | | | NULL 0 | | EOF -1 Fin de fichier physique | | CPMEOF 0x1a Marque de fin de fichier (CTRL+Z) | | TRUE 1 | | FALSE 0 | | ERROR -1 | | | | Le fichier "stdio.h" doit s'inclure en tete de programme de la | | facon suivante : | | | | #include <stdio.h> | | ... suite du programme ... | |-----------------------------------------------------------------------| | | | RESTRICTIONS de BDS-C par rapport au Kernighan/Ritchie | | --------------------- | | | | Fonctionnalites non supportees : | | | | - les types : short, long, float, double, enum | | | | - les classes : static, extern | | | | - l'initialisation des variables globales | | | | - l'operateur sizeof(type) | | | | - l'operateur "cast" (type) | | | |-----------------------------------------------------------------------| | | | DOCUMENTS UTILES | | ---------------- | | | | - Langage C par Ph. Dax Editions Eyrolles (photocopie) | | | | - The C Programming Language by Kernighan and Ritchie | | | | - The BD Software C Compiler V1.5 Manual | | | | - C par l'exemple Editions Eyrolles | | | | - Learning to programm in C by Plum | | | | - Revue Byte special issue C aout 1983 | | | | - Revue Doctor Dobb's Journal , de nombreux articles | | | -------------------------------------------------------------------------
 



Goto Top
CPC-POWER/CPCSOFTS, programmation par Kukulcan © 2007-2024 tous droits réservés.
Reproduction sans autorisation interdite. Tous les titres utilisés appartiennent à leurs propriétaires respectifs.
Hébergement Web, Mail et serveurs de jeux haute performance