All pastes #495444 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-05-18 19:24 UTC
rendered paste body
DATA;
  alloc keyboard;
  alloc cursor,65636;
  alloc keymem;
  alloc memstring;
  alloc memstringf;
  alloc previewstart;
  alloc memstringl;
  loaded:
  db 'OS loaded succesfully.',0;
  keyboardcon:
  db 'Keyboard found. Port number: ',0;
  error:
  db 'Error. Program Terminated.',0;
  Loading:
     db 'Booting...',0;
  Terminated:
     db 'Program Terminated.',0;
  cWrite:
     mov eax,#cursor;
     mov #eax,35;
     inc eax;
     mov #eax,999090;
     inc eax;
     WriteLoop:
        cmp #esi,0;
        je Wend;
        mov #eax,#esi;
        inc eax;
        mov #eax,edx;
        inc eax;
        inc esi;
     jmp WriteLoop;
     Wend:
       call cNewLine;
  ret
  
  cWriteChar:
     mov eax,#cursor;
     mov #eax,#ebx;
     inc eax;
     mov #eax,edx;
     inc eax;
     add #cursor,2;
  ret  
 
  cNewLine:
     add #cursor,60;
   ret
  
  cKeyScan:
    KReadloop:
      mov ecx,#keyboard;
      cmp #ecx,0;
         je Kend;
      mov #memstring,#ecx;
      inc memstring;
      inc #memstringl;
      //mov #ecx,#ecx;
    Kend:
      ret


  cPreview:
      mov edx,000999;
      mov esi,memstringf;
      mov eax,#previewstart;
      mov #ecx,0;
      mov #eax,35;
      inc #eax;
      mov #eax,000119;
      inc #eax;
      PrevLoop:
         cmp #ecx,#memstringl;
           je Pend;
	 mov #eax,#esi;
         inc #eax;
         inc esi;
         mov #eax,edx;
         inc esi;
         inc #eax;
         inc #ecx;
         jmp PrevLoop;
      Pend:
         ret
   
   cClearKeyBuff:
      mov #ecx,0;
      mov eax,#memstringf;
      ClearLoop:
          cmp #ecx,#memstringl;
             jge Cend;
          mov #eax,0;
          inc eax;
          inc #ecx;
      jmp ClearLoop;
     Cend:
        ret
     
     

CODE;
Boot:
  mov esi,Loading;
  mov edx,000090;
  call cWrite;
  jmp Scan;
Load:
  mov #memstringl,0;
  mov memstringf,memstring;
  mov esi,loaded;
  mov edx,000090;
  call cWrite;
jmp OS;

OS:
  mov #previewstart,#cursor;
  call cKeyScan;
  jmp KeyWrite;

  KeyWrite:
  call cPreview;
//  call cClearKeyBuff;
jmp OS;



Scan:
    mov esi,keyboardcon;
    mov edx,000090;
    call cWrite;
    mov #ebx,49;
    mov edx,000339;
 //   call cWriteChar;
    call cNewLine;
    mov #keyboard,65537;
    mov #keymem,55000;
    jmp Load;

Terminate:
  mov esi,Terminated;
  mov edx,900999;
  add #cursor,60;
  call cWrite;