Changes between Version 170 and Version 171 of Archi-1-TP9
- Timestamp:
- Nov 29, 2021, 12:16:29 PM (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Archi-1-TP9
v170 v171 952 952 **Questions** 953 953 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 ?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_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 ? 955 955 {{{#!protected ------------------------------------------------------------------------------------ 956 956 '' … … 1000 1000 void kinit (void) 1001 1001 { 1002 tty_ write (0, hello, sizeof (hello) );// print hello string1002 tty_puts (0, hello); // print hello string 1003 1003 guess(); 1004 tty_ write (0, end, sizeof (end));// print end string on terminal 01005 while (1); 1004 tty_puts (0, end); // print end string on terminal 0 1005 while (1); // infinite loop 1006 1006 } 1007 1007 }}} … … 1020 1020 #include <harch.h> 1021 1021 #include <hcpu.h> 1022 1023 #define msg(s) tty_write(0,s,sizeof(s))1024 #define get(c) tty_read(0,&c,1)1025 1022 1026 1023 void guess (void) … … 1034 1031 do { 1035 1032 do { 1036 msg("Donnez un nombre : ");1037 get(c);1033 tty_puts(0,"Donnez un nombre : "); 1034 c = tty_getc(0); 1038 1035 } while ( (c < '0') && (c > '9') ); 1039 1036 num = c - '0'; 1040 1037 1041 1038 if (num < random) 1042 msg(" —> trop petit\n");1039 tty_puts(0," -> trop petit\n"); 1043 1040 else if (num > random) 1044 msg(" —> trop grand\n");1041 tty_puts(0," -> trop grand\n"); 1045 1042 1046 1043 } while (random != num); 1047 1044 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"); 1052 1049 1053 1050 } while (c != 'N');