All pastes #494707 Raw Edit

Untitled

public text v1 · immutable
·published 2007-05-18 11:40 UTC
rendered paste body
DATA;
  alloc reader;
  alloc time1;
  alloc time2;
  alloc keyboard;
  alloc cursor;
  error:
  db 'Error. Program Terminated.',0;
  Loading:
     db 'Booting...',0;
  Terminated:
     db 'Program Terminated.',0;
  cWrite:
     mov cursor,65636;
     mov port6,cursor;
     mov #cursor,35;
     inc cursor;
     mov #cursor,999090;
     inc cursor;
     WriteLoop:
        cmp #esi,0;
        je Wend;
        mov #cursor,#esi;
        inc cursor;
        mov #cursor,edx;
        inc cursor;
        inc esi;
     jmp WriteLoop;
     Wend:
       add cursor,32;
       mov port6,0;
  ret

CODE;
Boot:
  mov cursor,65636;
  mov #reader,1;
  jmp Scan;
Load:
  mov esi,Loading;
  mov edx,000090;
  call cWrite;
jmp Terminate;



Scan:
  cmp #reader,1;
  je ScanPort1;
  
ScanPort1:
  mov port0,7464;
  timer time1;
  ScanLoop:
    timer time2;
    cmp port0,7664;
      je ScanPort1Suc;
    sub time2,time1;
  //  cmp time2,10;
 //     jge ScanPort1Fail;
 //   jmp ScanLoop;
    jmp ScanPort1Suc;
  ScanPort1Suc:
    mov keyboard,65537;
    jmp Load;
  ScanPort1Fail:
    mov esi,error;
    mov edx,1000900;
    call cWrite;
    jmp Terminate;

Terminate:
  mov esi,Terminated;
  mov edx,090999;
  add cursor,32;
  call cWrite;