var prompt="$ "; var curDir="/home/user"; function howlong(arg) { if (length(arg)==1) { arg = "0" + arg; return arg; } else { arg = arg; return arg; } } function doCMD(cmd) { output_mc.textbox.text+=cmd; firstSpace=cmd.indexOf(" "); if (firstSpace <> -1) { params=cmd.substr(firstSpace+1); cmd=cmd.substring(0,firstSpace); } else { params=""; } //trace(cmd); switch (cmd) { case "": output_mc.textbox.text+="\n"+prompt; break; case "uptime": myDate = new Date(); hr = howlong(String(myDate.getHours())); mnt = howlong(String(myDate.getMinutes())); output_mc.textbox.text+="\n "+hr+":"+mnt+" up 99y364d, 1 user, load average 0.00, 0.00, 0.00\n"+prompt; break; case "echo": output_mc.textbox.text+="\n"+params+"\n"+prompt; break; case "pwd": output_mc.textbox.text+="\n"+curDir+"\n"+prompt; break; case "help": output_mc.textbox.text+="\n Lucky for you, I fell nice today.\n Available commands: help, uptime, pwd, echo (text), ls (-a -la), cat (file)\n"+prompt; break; case "ls": if (curDir=="/home/user") { if (params.length<1) { output_mc.textbox.text+="\n"+prompt; } if (params == "-la") { output_mc.textbox.text+="\n"; output_mc.textbox.text+="total 2\n"; output_mc.textbox.text+="drwxr-xr-x 2 user shell 1024 Jan 01 00:01 .\n"; output_mc.textbox.text+="drwxrwsr-x 56 root shell 1024 Jan 01 00:01 ..\n"; output_mc.textbox.text+="-rw-rw-r-- 1 user user 10 Jan 01 00:01 .profile\n"; output_mc.textbox.text+="-rw-rw-r-- 1 user user 25 Jan 01 00:01 .tmp\n"; output_mc.textbox.text+=prompt; } if (params == "-a") { output_mc.textbox.text+="\n. .. .profile .tmp\n"+prompt; } } break; case "cat": if (curDir=="/home/user") { if (params.length<1) { output_mc.textbox.text+="\ncat what?\n"+prompt; } if (params == ".tmp") { output_mc.textbox.text+="\nFollow the white rabbit.\n"+prompt; } else if (params == ".profile") { output_mc.textbox.text+="\nprompt=''\n"+prompt; } else { output_mc.textbox.text+="\ncat: "+params+": No such file or directory\n"+prompt; } } break; default: output_mc.textbox.text+="\n"+cmd+": command not found\n"+prompt; break; } input_mc.textbox.text=""; cursor_mc._x=14; output_mc.mScroll.setScrollPosition(output_mc.textbox.maxscroll); } keyboardListener=new Object(); keyboardListener.onKeyUp = function() { //trace(Key.getCode()); //trace(Selection.getCaretIndex()); switch(Key.getCode()) { case 13://Enter charIn=0; doCMD(input_mc.textbox.text); break; case 8: if (charIn > 0) charIn--; cursor_mc._x=14+charIn*7; break; case 16: case 17: case 18: case 9: break; default: charIn++; cursor_mc._x=14+charIn*7; break; } } Key.addListener(keyboardListener); Selection.setFocus(input_mc.textbox); //cursor_mc._alpha=0; charIn=0; output_mc.textbox.text="\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"+prompt; output_mc.mScroll.setScrollPosition(output_mc.textbox.maxscroll);