All pastes #446056 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-04-18 08:11 UTC
rendered paste body
//------------------------------------------------------------------------------
//  Promt command from user
//------------------------------------------------------------------------------
cPromtCommand: //0665
    push ESI;
    push EDX;

    //Promt & Read
    push #CurPos;

    mov ESI,msgOSPromt;
    mov ES:#ScrClk,1;
    mov EDX,1000999;
    call cWrite;
    call cReadString;
    call cNewLine;
    mov ES:#ScrClk,0;
    
    mov #A0665_TempCurPos,#CurPos;
    pop #CurPos;
    mov ES:#ScrClk,1;
    mov EDX,000999;
    call cWrite;
    mov ES:#ScrClk,0;
    mov #CurPos,#A0665_TempCurPos;

    mov ESI,ReadBuffer;
    call cParseCommand;

    pop EDX;
    pop ESI;
  ret
  
alloc A0665_TempCurPos;

//------------------------------------------------------------------------------
//  Parse command in ESI
//------------------------------------------------------------------------------
cParseCommand: //0687
    push EAX;
    push ECX;
    push EBP;
    push EDI;
    push EBX;
    call cGetKeyword;
    mov #A0687_TempString,ESI;
    cmp #KeyWordBuffer,0;
    je A0687_Exit;

    //Determine command and call
    mov ECX,0;
    mov EBP,cmdList;
    A0687_CommandCheckLoop:
      //mov EBX,ECX;
      //mul EBX,10;
      //mov EDX,000009;
      //call cWriteInt;
      //call cNewLine;
      
      //mov EBP,ECX;
      //mul EBP,10;
      //add EBP,cmdList;
      mov #A0687_TempDest,#EBP; //[FIXED]
      inc EBP; //1-st is command call
      
      //mov ESI,EBP;
      //call cWrite;
      //call cNewLine;
      
      mov ESI,KeyWordBuffer;
      mov EDI,EBP; //Compare keyword and current command
      call cCompareString;
      
      mov ESI,EBP;
      call cGetEOS;
      mov EBP,ESI;
      inc EBP;

      cmp EAX,0;
      jne A0687_CommandNotFound;
        //mov EBX,#A0687_TempDest;
        //call cWriteInt;
        //call cNewLine;
        mov ESI,#A0687_TempString;
        call #A0687_TempDest; //Call command
        jmp A0687_Exit;
      A0687_CommandNotFound:
      inc ECX;
      cmp ECX,cmdListSize;
      jl A0687_CommandCheckLoop;
      
    //ADD: Scan the "app" folder for application
      
    mov EDX,000700;
    mov ESI,msgOSUnknownCmd;
    mov ES:#ScrClk,0;
    call cWrite;
    call cNewLine;
    mov ES:#ScrClk,1;

    A0687_Exit:
    pop EBX;
    pop EDI;
    pop EBP;
    pop ECX;
    pop EAX;
  ret