int main()
{
decl
    int temp, pid, a, flag, retcom;
    string input, username, password;
enddecl

begin
    a=1;
    while(a == 1) do
        temp = exposcall("Write",-2, "---Enter---");
        temp = exposcall("Read",-1, input);

        flag=0;
        if(input == "Logout" OR input == "Shutdown") then
            flag=1;
        endif;
              
        if(input == "Remusr" OR input == "Getuid" OR input == "Getuname") then
            flag=1;
            temp = exposcall("Read",-1, username);
        endif;
              
        if(input == "Newusr" OR input == "Setpwd") then
            flag=1;
            temp = exposcall("Read",-1, username);
            temp = exposcall("Read",-1, password);
        endif;
              
        if(flag==1) then
            retcom = exposcall(input, username, password);
            if(retcom < 0) then
                temp = exposcall("Write",-2, "BAD COMMAND");
            else
                if(input == "Getuid" OR input == "Getuname") then
                    temp = exposcall("Write",-2, retcom);
                endif;
            endif;
        else
            pid = exposcall("Fork");
            if(pid < 0) then
                temp = exposcall("Write",-2, "Fork Fail");
                continue;
            endif;
            
            if(pid != 0) then
                temp = exposcall("Wait",pid);
            else
                temp = exposcall("Exec",input);
                if(temp != 0) then
                    temp = exposcall("Write",-2, "BAD COMMAND");
                    break;
                endif;
            endif;
        endif;
    endwhile;
          
    return 0;
end
}