program reboot;

   { Make sure that DOS wrote everything out }
PROCEDURE Flush_DOS_Buffers;
begin
   Inline(   $B8/$40/$00           {MOV AX,0040   }
            /$8E/$D8               {MOV DS,AX     }
            /$89/$C3               {MOV BX,AX     }
            /$B8/$34/$12           {MOV AX,1234   }
            /$A3/$72/$00           {MOV [0072],AX }
            /$EA/$00/$00/$FF/$FF   {JMP FFFF:0000 }
         );

END;  { Procedure Boot_PC }




{
   Flush DOS' internal file buffers to insure that all data has been
   physically written to disk.
}

BEGIN

	flush_dos_buffers;
	INLINE
        ($B4/$0D/             {     MOV  AH,0DH      ;function to flush }
        $CD/$21);             {     INT  21H         ;perform it        }

END.  { Procedure Flush_DOS_Buffers }

