Changes between Version 170 and Version 171 of Archi-1-TP9


Ignore:
Timestamp:
Nov 29, 2021, 12:16:29 PM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Archi-1-TP9

    v170 v171  
    952952**Questions**
    953953
    954 1. Le code du driver du TTY est dans le fichier `harch.c` et les prototypes sont dans `harch.h`. Si vous ouvrez `harch.h` vous allez voir que seuls les prototypes des fonctions `tty_read()` et `tty_write()` sont présents. La structure décrivant la carte des registres du `TTY` est déclarée dans le `.c`. Pourquoi avoir fait ainsi ?
     9541. Le code du driver du TTY est dans le fichier `harch.c` et les prototypes sont dans `harch.h`. Si vous ouvrez `harch.h` vous allez voir que seuls les prototypes des fonctions `tty_gets()` et `tty_puts()` sont présents. La structure décrivant la carte des registres du `TTY` est déclarée dans le `.c`. Pourquoi avoir fait ainsi ?
    955955{{{#!protected ------------------------------------------------------------------------------------
    956956''
     
    10001000void kinit (void)
    10011001{
    1002     tty_write (0, hello, sizeof (hello) );          // print hello string
     1002    tty_puts (0, hello);         // print hello string
    10031003    guess();
    1004     tty_write (0, end, sizeof (end));               // print end string on terminal 0
    1005     while (1);                                      // infinite loop
     1004    tty_puts (0, end);           // print end string on terminal 0
     1005    while (1);                   // infinite loop
    10061006}
    10071007}}}
     
    10201020#include <harch.h>
    10211021#include <hcpu.h>
    1022 
    1023 #define msg(s) tty_write(0,s,sizeof(s))
    1024 #define get(c) tty_read(0,&c,1)
    10251022
    10261023void guess (void)
     
    10341031        do {
    10351032            do {
    1036                 msg("Donnez un nombre : ");
    1037                 get(c);
     1033                tty_puts(0,"Donnez un nombre : ");
     1034                c = tty_getc(0);
    10381035            } while ( (c < '0') && (c > '9') );
    10391036            num = c - '0';
    10401037
    10411038            if (num < random)
    1042                 msg(" —> trop petit\n");
     1039                tty_puts(0," -> trop petit\n");
    10431040            else if (num > random)
    1044                 msg(" —> trop grand\n");
     1041                tty_puts(0," -> trop grand\n");
    10451042
    10461043        } while (random != num);
    10471044
    1048         msg("\nGagné\n");
    1049         msg("\nOn recommence [Y]/N ? ");
    1050         get(c);
    1051         msg("\n\n");
     1045        tty_puts(0,"\nGagné\n");
     1046        tty_puts(0,"\nOn recommence [Y]/N ? ");
     1047        c = tty_getc(0);
     1048        tty_puts(0,"\n\n");
    10521049
    10531050    } while (c != 'N');