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;