ClavinJune

MyConsole.java

Jun 21st, 2017
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.84 KB | None | 0 0
  1. package nachos.myproj;
  2.  
  3. import nachos.machine.Machine;
  4. import nachos.threads.Semaphore;
  5.  
  6. public class MyConsole{
  7.     Semaphore sem;
  8.     String text;
  9.     public MyConsole(){
  10.         Machine.console().setInterruptHandlers(new Runnable() {
  11.            
  12.             @Override
  13.             public void run() {
  14.                 // recv
  15.                 int karakter = Machine.console().readByte();
  16.                 if(karakter == 10){
  17.                     sem.V();
  18.                     return;
  19.                 }
  20.                 text+= (char)karakter;
  21.             }
  22.         }, new Runnable() {
  23.            
  24.             @Override
  25.             public void run() {
  26.                 // sent
  27.                 sem.V();
  28.             }
  29.         });
  30.        
  31.     }
  32.     public String readLine(){
  33.         text = "";
  34.         Machine.console().readByte();
  35.         sem = new Semaphore(0);
  36.         sem.P();
  37.        
  38.         return text;
  39.     }
  40.    
  41.     public void writeLine(String text){
  42.         for(int i=0;i<text.length();i++){
  43.             Machine.console().writeByte(text.charAt(i));
  44.             sem = new Semaphore(0);
  45.             sem.P();
  46.         }
  47.     }
  48.  
  49. }
Add Comment
Please, Sign In to add comment