<DIV>
<SCRIPT TYPE = "TEXT/JAVAscript">
Function AutoFunct2(){
Package AIOS_X32;

Import java.io.*;

/// <summary>
/// Summary for AIOS_X32
///
/// WARNING: If you change the name of this class, you will need to change the
///          'Resource File Name' property for the managed resource compiler tool
///          associated with all .resx files this class depends on.  Otherwise,
///          the designers will not be able to interact properly with localized
///          resources associated with this form.
/// </summary>
public ref class AIOS_X32 extends System.Windows.Forms.Form implements Closeable
{
	public AIOS_X32()
	{
		InitializeComponent();
		//
		//TODO: Add the constructor code here
		//
	}

	/// <summary>
	/// Clean up any resources being used.
	/// </summary>
	public final void close()
	{
		if (components)
		{
			if (components != null)
			{
				components.close();
			}
		}
	}

	/// <summary>
	/// Required designer variable.
	/// </summary>
	Private System.ComponentModel.Container ^ components;

//C++ TO JAVA CONVERTER TODO TASK: There is no preprocessor in Java:
///#pragma region Windows Form Designer generated code
	/// <summary>
	/// Required method for Designer support - do not modify
	/// the contents of this method with the code editor.
	/// </summary>
	private void InitializeComponent()
	{
		this.SuspendLayout();
		// 
		// AIOS_X32
		// 
		this.AutoScaleDimensions = System.Drawing.SizeF(6, 13);
		this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
		this.ClientSize = System.Drawing.Size(284, 260);
		this.Name = "AIOS_X32";
		this.Text = "AIOS_X32";
		this.Load += gcnew System.EventHandler(this, this.AIOS_X32_Load);
		this.ResumeLayout(false);

	}
//C++ TO JAVA CONVERTER TODO TASK: There is no preprocessor in Java:
///#pragma endregion
Private void AIOS_X32_Load(System.Object ^ sender, System.EventArgs ^ e)
{


// This is the main DLL file.
// AIOS_X32.h
   
   
   Public Ref class Class1
//int Main()

	
// C++ TO JAVA CONVERTER TODO TASK: 
// The following method format was not recognized, 
// possibly due to an unrecognized macro:
   {
   Asm
	   JMP	   AUTO_IOS

	   //.DATA	//   
	   
Sym	   db	   32		   //  -  
Offs	   dw	   1000 	   //a  

	   //   ,   
	   //   .
Mes1	   db	   "PROGRAMMA AUTOMATIC MODE, EXECUTE SYSTEM FUNCTION DEVICE.", 0
Mes5	   db	   "Version 3.6B, (R) Copyright Denis Shilovsky, Russia, Moscow Area. 2002 - 2018 yore, Inc.", 0
//es1Len    =	  $ - Mes1


// co   .
Mes2	   db	   "Programma automatic device execute OK!", 0
//es2Len    =	  $ - Mes2


//    
Mes3	   db	   "Not creste the file. Error read/write to disk.", 0
//es3Len    =	  $-Mes3


//oo,      ,  .
Mes4	   db	   "Error date Read to Diske.", 0
//es4Len    =	  $-Mes4


Autory	   db	   "PROGRAMMA AUTOMATIC MODE, EXECUTE SYSTEM FUNCTION DEVICE || ", 0
	   db	   "Version 3.1.4 || ", 0
	   db	   "(R) Copyright Denis Shilovsky, Russia, Moscow Area. ", 0
	   db	   "2002 - 2014 yore, Inc. EMail: deni-shilovski@yandex.ru  ", 0
	   db	   "Tel: +7-903-518-99-74     |", 0	  
//utoryLen  =	  $ - Autory


Handle	   dw	   ?		     //  .
Dpt	   dd	   0		     //   .
Allocseg   dw	   0		     //   .

//    
//   .      
afd	   db	   40, 0, 1, 2	     //, , ,  .
	   db	   40, 0, 2, 2	     // - 512 .
	   db	   40, 0, 3, 2
	   db	   40, 0, 4, 2
	   db	   40, 0, 5, 2
	   db	   40, 0, 6, 2
	   db	   40, 0, 7, 2
	   db	   40, 0, 8, 2
	   db	   40, 0, 9, 2

// 
IntVect4  db	     16, 0    //   INT 10h
atd5	  dd	     0	      //    .
PlusClr   db	     155      //    
			      // .
//   16-  ,  
//     .
//  ,   : , ,
//,   ,   0- 
Color0	     db    0, 0, 0, 0	       //
Color1	     db    0, 0, 255, 0        //
Color2	     db    0, 255, 0, 0        //
Color3	     db    0, 255, 255, 0      //
Color4	     db    255, 0, 0, 0        //
Color5	     db    255, 0, 255, 0      //
Color6	     db    255, 255, 0, 155    //
Color7	     db    155, 155, 155, 0    // - 
Color8	     db    0, 155, 155, 0      // - 
Color9	     db    255, 155, 255, 0    //
Color10      db    0, 255, 0, 155      // - 
Color11      db    0, 0, 255, 155      // - 
Color12      db    255, 0, 0, 155      //
Color13      db    255, 0, 255, 155    //
Color14      db    255, 255, 0, 0      //
Color15      db    255, 255, 255, 0    // 

//    - 
//    
// 256-  .
Palette0     db   0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240
Palette1     db   1, 17, 33, 49, 65, 81, 97, 113, 129, 145, 161, 177, 193, 209, 225, 241 
Palette2     db   2, 18, 34, 50, 66, 82, 98, 114, 130, 146, 162, 178, 194, 210, 226, 242 
Palette3     db   3, 19, 35, 51, 67, 83, 99, 115, 131, 147, 163, 179, 195, 211, 227, 243 
Palette4     db   4, 20, 36, 52, 68, 84, 100, 116, 132, 148, 164, 180, 196, 212, 228, 244 
Palette5     db   5, 21, 37, 53, 69, 85, 101, 117, 133, 149, 165, 181, 197, 213, 229, 245 
Palette6     db   6, 22, 38, 54, 70, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246 
Palette7     db   7, 23, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247 
Palette8     db   8, 24, 40, 56, 72, 88, 104, 120, 136, 152, 168, 184, 200, 216, 232, 248
Palette9     db   9, 25, 41, 57, 73, 89, 105, 121, 137, 153, 169, 185, 201, 217, 233, 249 
Palette10    db   10, 26, 42, 58, 74, 90, 106, 122, 138, 154, 170, 186, 202, 218, 234, 250 
Palette11    db   11, 27, 43, 59, 75, 91, 107, 123, 139, 155, 171, 187, 203, 219, 235, 251 
Palette12    db   12, 28, 44, 60, 76, 92, 108, 124, 140, 156, 172, 188, 204, 220, 236, 252 
Palette13    db   13, 29, 45, 61, 77, 93, 109, 125, 141, 157, 173, 189, 205, 221, 237, 253 
Palette14    db   14, 30, 46, 62, 78, 94, 110, 126, 142, 158, 174, 190, 206, 222, 238, 254 
Palette15    db   15, 31, 47, 63, 79, 95, 111, 127, 143, 159, 175, 191, 207, 223, 239, 255

SizeBuff     db   255, 255     //.    - 64 .
SzGrfSc1     db   2, 255, 255  //   320 x 200
SzGrfSc2     db   4, 255, 255  //   640 x 200
SzGrfSc3     db   7, 255, 255  //   640 x 350
SzGrfSc4     db   9,  96, 255  //   640 x 480
SzGrfSc5     db   8, 255, 255  //   640 x 400


// 
Elect1	   db	     00000001B
Elect2	   db	     00000011B
Elect3	   db	     00000111B
Elect4	   db	     00001111B
Elect5	   db	     00011111B
Elect6	   db	     00111111B
Elect7	   db	     11111111B
Elect8	   db	     11111111B

	   //  ,  
	   //   
NormMux:   db	     0EAh
MuxOfs	   dw	     ?	       
MuxSeg	   dw	     ?		 
MemAtd	   dw	     0
Rexx_vect  db	   7Ch, 0
Rexx_call  db	   5, 0
Rexx_func  db	   7, 0




//    INT 13h
//edef13h     LABEL	 WORD
Int13h_vect  dd 	0	       //  INT 13h 
				       // .
Int13Loc     db       13h,4h	     //    INT 13h.
Drive_A      db        "A"	      // A:\
Drive_B      db        "B"	      // B:\
Drive_C      db        "C"	      // C:\
Drive_D      db        "D"	      // D:\
Drive_E      db        "E"	      // E:\
Drive_F      db        "F"	      // F:\
Drive_X      db        "X"	      // () .
Save_Ip      dw 	0	       //    IP
Save_Cs      dw 	0	       //    CS
Message      db 	"Drv: "        //  .
Drive	     db 	?
	     db 	" Side: "
Free_Disk    db 	255	       //    .
Side1	     db 	?
Side2	     db 	?
	     db 	"   Tr: "      //  .
Track1	     db 	?
Track2	     db 	?
	     db 	" Sec: "       //  .
Sector1      db 	?
Sector2      db 	?
	     db 	"  # secs: "   //  .
Sec_cnt1     db 	?
Sec_cnt2     db 	?
	     db 	" Opt: "       //  .
Opt_1	     db 	?
Opt_2	     db 	?
	     db 	"   Retcd: "   //    .
Status1      db 	?
Status2      db 	?
	     db 	"  Addr: "     //    .

Cs_1	     db 	?	    //   CS
Cs_2	     db 	?
Cs_3	     db 	?
Cs_4	     db 	?
	     db 	":"

Ip_1	     db 	?	    //   IP
Ip_2	     db 	?
Ip_3	     db 	?
Ip_4	     db 	?
	     db 	0Ah, 0Dh
atd	     db 	0	    //   
atd2	     dw 	0	    //    
dpt2	     db 	1	    //  

Bytes	     db 	00000000B   //   

//edef13hLen  =        $ - Redef13h


// 
IntVect    db	   19, 0    //   INT 13h
//     INT 13h
//  
Funct0	   dw	   0	    //   
Funct1	   dw	   1	    // 
Funct2	   db	   32, 32   //   
Funct3	   db	   "##"     //   
Funct4	   db	   255, 255 // 
			    //  
			    //  /
Funct5	   db	   "''"     // 
Funct6	   db	   ".."     //  
Funct7	   db	   27, 27   //  
Funct8	   db	   2, 1     //   
			    //    
Funct9	   db	   1, 255   //  
			    //   
			    //      
			    //
Funct10    db	   32, 0    // .    
Funct11    db	   32, "##" // .  	
Funct12    db	   "@@"     //   
Funct13    db	   32, 255  //    
Funct14    db	   180, 32  //     	
Funct15    db	   180, "#" //       
Funct16    db	   180, 2   //    
			    //.
Funct17    db	   187, 2   //    
Funct18    db	   180, 180 //     
Funct19    db	   180, 19  //  	
Funct20    db	   180, 20  //   
Funct21    db	   144, 2   //   
Funct22    db	   14, 118  //   
			    //   .
Funct23    db	   2, 255   //   
			    //   .
Funct24    db	   255, "#" //   
			    //   .
Funct25    db	   14, 114  //  : 
			    //  ?
Funct26    db	   "######" //   
			    //   ,
			    //     
			    //   .


BadSector  db	   255, 255, 255, 255 //  
				      //  
atd7	   db	   0	       //   
atd20	   dw	   0	       //    
dpt6	   db	   1	       //  

Bytes3	   db	   00000000B   //   

BytClast   db	   512 Dup (?) //    

//ytClastLen  =  $ - BytClast  //   

Path	   db	   20	       //     


//  ,   
Disky	 db   68, 94,	80, 104,251,111,  154,38 
	 db   22, 132,	50, 131,  196,	6,255,118 
	 db   8, 255,  118,  4,232,48,	8, 131 
	 db   196,  4,30, 104,	250,111,  154,211 
	 db   196,225,	75, 131,  196,	4,128,62 
	 db   201,16,46, 117, 8, 131,  255,20 
	 db   116,  3,232,240,	9, 142, 6, 68 
	 db   79, 38,255,54, 122,46,38, 255 
	 db   54, 120,	46, 154,50, 174,  225,75 
	 db   131,196, 4, 32, 118,254,	154,92 
	 db   16, 225,	75, 91, 131,255, 1, 117 
	 db   15, 142, 6, 62, 79, 38,139,30 
	 db   114,46,139,183,134,  7,235,13 
	 db   142,  6,62, 79, 38, 139,	30, 114 
	 db   46, 139,	183,144,  7, 106, 1, 86 
	 db   255,183,	30,2, 255,118, 6, 160 
	 db   201,16,152,80, 232,244, 5, 131 
	 db   196,94,95, 201,195,46,200,184 
	 db   46, 46,87, 86, 199,70,244,46 
	 db   46, 161,	212,16, 137,70,246,141 
	 db   70, 240,	80, 141,70, 238,  80, 144 
	 db   14, 232,	144,138,131,196, 4, 142 
	 db   6, 62,79, 38, 139,30,114,46 
	 db   30, 255,	183,108,  7, 255,  183,142 
	 db   7, 144,  14, 232,206,245,  131,196 
	 db   6, 142, 6, 68, 79, 38,163,120 
	 db   46, 32,32, 38, 137,22,122,46 
	 db   139, 194,  38, 11,6, 120,  46, 117 
	 db   5, 51,192,233,252,  1,  104,126 
	 db   53, 154, 4, 15, 225,75,91, 137 
	 db   70, 242,	142,  6, 64, 79,38, 199 
	 db   6, 180,2, 46, 46, 128,  62, 201 
//iskyLen  =  $ - Disky  //   


//, , ,  
// 
SizeDrv   db	 0,0,0,2
	  db	 0,0,1,2
	  db	 0,0,2,2
	  db	 0,0,3,2
	  db	 0,0,4,2
	  db	 0,0,5,2
	  db	 0,0,6,2
	  db	 0,0,7,2
	  db	 0,0,8,2
	  db	 0,0,9,2
	  db	 0,0,10,2
	  db	 0,0,11,2
	  db	 0,0,12,2
	  db	 0,0,13,2
	  db	 0,0,14,2
	  db	 0,0,15,2
	  db	 0,0,16,2
	  db	 0,0,17,2
//izeDrvLen =	$ - SizeDrv

Key	  dw	 9999h	     //

//  , ,
//     .
SizeCol1  db	 1,0,0,2
	  db	 1,0,1,2
	  db	 1,0,2,2
	  db	 1,0,3,2
	  db	 1,0,4,2
	  db	 1,0,5,2
	  db	 1,0,6,2
	  db	 1,0,7,2
	  db	 1,0,8,2
	  db	 1,0,9,2
	  db	 1,0,10,2
	  db	 1,0,11,2
	  db	 1,0,12,2
	  db	 1,0,13,2
	  db	 1,0,14,2
	  db	 1,0,15,2
	  db	 1,0,16,2
	  db	 1,0,17,2

//, , ,  .
SizeCol2  db	 2,0,0,2
	  db	 2,0,1,2
	  db	 2,0,2,2
	  db	 2,0,3,2
	  db	 2,0,4,2
	  db	 2,0,5,2
	  db	 2,0,6,2
	  db	 2,0,7,2
	  db	 2,0,8,2
	  db	 2,0,9,2
	  db	 2,0,10,2
	  db	 2,0,11,2
	  db	 2,0,12,2
	  db	 2,0,13,2
	  db	 2,0,14,2
	  db	 2,0,15,2
	  db	 2,0,16,2
	  db	 2,0,17,2

//, , ,  .
SizeCol3  db	 3,0,0,2
	  db	 3,0,1,2
	  db	 3,0,2,2
	  db	 3,0,3,2
	  db	 3,0,4,2
	  db	 3,0,5,2
	  db	 3,0,6,2
	  db	 3,0,7,2
	  db	 3,0,8,2
	  db	 3,0,9,2
	  db	 3,0,10,2
	  db	 3,0,11,2
	  db	 3,0,12,2
	  db	 3,0,13,2
	  db	 3,0,14,2
	  db	 3,0,15,2
	  db	 3,0,16,2
	  db	 3,0,17,2

//, , ,  .
SizeCol4  db	 4,0,0,2
	  db	 4,0,1,2
	  db	 4,0,2,2
	  db	 4,0,3,2
	  db	 4,0,4,2
	  db	 4,0,5,2
	  db	 4,0,6,2
	  db	 4,0,7,2
	  db	 4,0,8,2
	  db	 4,0,9,2
	  db	 4,0,10,2
	  db	 4,0,11,2
	  db	 4,0,12,2
	  db	 4,0,13,2
	  db	 4,0,14,2
	  db	 4,0,15,2
	  db	 4,0,16,2
	  db	 4,0,17,2

//, , ,  .
SizeCol5  db	 5,0,0,2
	  db	 5,0,1,2
	  db	 5,0,2,2
	  db	 5,0,3,2
	  db	 5,0,4,2
	  db	 5,0,5,2
	  db	 5,0,6,2
	  db	 5,0,7,2
	  db	 5,0,8,2
	  db	 5,0,9,2
	  db	 5,0,10,2
	  db	 5,0,11,2
	  db	 5,0,12,2
	  db	 5,0,13,2
	  db	 5,0,14,2
	  db	 5,0,15,2
	  db	 5,0,16,2
	  db	 5,0,17,2


Newst	  db	 13,10	       //a ,  
//ewstLen  =	$ - Newst

Old_disk  dd	 0	       //   , 
			       //  

Err_Mes   db	 "ERRORS INPUT/OUTPUT!", 0
//rr_MesLen = $ - Err_Mes


//edef13      LABEL	 WORD
OldInt13     dd 	 0	//   INT 13h

// 
IntVect2   db	   20, 0    //   INT 14h
//     INT 14h
//    
PortDrv0   db	   0Ch, 0   //    COM1
PortDrv1   db	   0Bh, 0   //    COM2
PortDrv2   db	   0Ah, 0   //    COM3
PortDrv3   db	   0Ah, 0   //    COM4
PortDrv4   db	   0Fh, 0   //    LPT1
PortDrv5   db	   0Dh, 0   //    LPT2
PortDrv6   db	   0Ah, 0   //    USB1
PortDrv7   db	   0Ah, 0   //    USB2


BadSector2 db	   255, 255, 255, 255 //  
				      //  .
Atd4	   db	   0	       //   .
Atd6	   dw	   0	       //    .
Dpt4	   db	   1	       //  .

Bytes2	   db	   00000000B   //   .

BytClast2  db	   1024 Dup (?)  //  ,  
				 //   .

//ytClast2Len  =  $ - BytClast2 //   .

Path2	   db	   20	       //    . 


//  ,   
//     .
PortSys    db	 62, 79,  38, 139, 30, 114, 46, 255 
	   db	 183, 32, 02, 144, 14, 232, 77, 152 
	   db	 131, 196, 04, 184, 01, 46, 94, 95 
	   db	 201, 195, 46, 200, 172, 46, 46, 86 
	   db	 139, 118, 04, 139, 198, 136, 70, 250 
	   db	 138, 70, 08, 136, 70,	253, 138, 70 
	   db	 136, 70, 254, 50, 192, 136, 70, 251 
	   db	 136, 70, 252, 136, 70, 255, 199, 70 
	   db	 244, 04, 46, 199, 70,	246, 09, 46 
	   db	 199, 70, 248, 01, 46, 30, 255, 118 
	   db	 06,  141, 70, 164, 22, 80, 144, 14 
	   db	 232, 205, 220, 131, 196, 08, 139, 198 
	   db	 72,  116, 11, 45,  03, 46, 116, 38 
	   db	 72,  72,  116, 52, 235, 81, 160, 202 
	   db	 16,  152, 139, 240, 03, 240, 138, 66 
	   db	 242, 136, 70, 255, 142, 06, 68, 79 
	   db	 38,  255, 54, 122, 46,  38, 255, 54 
	   db	 120, 46,  106, 06, 235, 34, 142, 06 
	   db	 68, 79, 38, 255, 54, 122, 46, 38
	   db	 255, 54, 120, 46, 106, 03, 235, 16 
	   db	 142, 06, 68, 79, 38, 255, 54, 122 
	   db	 46, 38, 255, 54, 120, 46, 106, 05 
	   db	 106, 01, 141, 70, 250, 22, 80, 154 
	   db	 04, 177, 225, 75, 131, 196, 12, 141 
	   db	 134, 84, 255, 22, 80, 144, 14, 232 
	   db	 62, 236, 131, 196, 04, 142, 06, 68 
	   db	 79, 38, 255, 54,  122, 46, 38, 255 
	   db	 54, 120, 46,  141, 70, 164, 22, 80 
	   db	 154, 202, 184, 225, 75, 131, 196, 04 
	   db	 64, 80, 106, 01, 141, 70, 164, 22 
	   db	 80, 154, 04, 177, 225, 75, 131, 196 
	   db	 12, 142, 06, 68, 79, 38,  255, 54 
//ortSysLen =	$ - PortSys  //   


//, , ,  
// .
SizePrt   db	 40,0,1,2
	  db	 40,0,2,2
	  db	 40,0,3,2
	  db	 40,0,4,2
	  db	 40,0,5,2
	  db	 40,0,6,2
	  db	 40,0,7,2
	  db	 40,0,8,2
	  db	 40,0,9,2
//izePrtLen =	$ - SizePrt

key2	  dw	 9999h	     //

//  , ,
//     .
SizeColn1 db	 1,0,1,2     // -   - 512 .
	  db	 1,0,2,2
	  db	 1,0,3,2
	  db	 1,0,4,2
	  db	 1,0,5,2
	  db	 1,0,6,2
	  db	 1,0,7,2
	  db	 1,0,8,2
	  db	 1,0,9,2 
	  db	 1,0,10,2
	  db	 1,0,11,2
	  db	 1,0,12,2
	  db	 1,0,13,2
	  db	 1,0,14,2
	  db	 1,0,15,2
	  db	 1,0,16,2
	  db	 1,0,17,2

//, , ,  
SizeColn2 db	 2,0,1,1
	  db	 2,0,2,1
	  db	 2,0,3,1
	  db	 2,0,4,1
	  db	 2,0,5,1
	  db	 2,0,6,1
	  db	 2,0,7,1
	  db	 2,0,8,1
	  db	 2,0,9,1
	  db	 2,0,10,1
	  db	 2,0,11,1
	  db	 2,0,12,1
	  db	 2,0,13,1
	  db	 2,0,14,1
	  db	 2,0,15,1
	  db	 2,0,16,1
	  db	 2,0,17,1

//, , ,  
SizeColn3 db	 3,0,1,2
	  db	 3,0,2,2
	  db	 3,0,3,2
	  db	 3,0,4,2
	  db	 3,0,5,2
	  db	 3,0,6,2
	  db	 3,0,7,2
	  db	 3,0,8,2
	  db	 3,0,9,2
	  db	 3,0,10,2
	  db	 3,0,11,2
	  db	 3,0,12,2
	  db	 3,0,13,2
	  db	 3,0,14,2
	  db	 3,0,15,2
	  db	 3,0,16,2
	  db	 3,0,17,2

//, , ,  
SizeColn4 db	 4,0,1,2
	  db	 4,0,2,2
	  db	 4,0,3,2
	  db	 4,0,4,2
	  db	 4,0,5,2
	  db	 4,0,6,2
	  db	 4,0,7,2
	  db	 4,0,8,2
	  db	 4,0,9,2
	  db	 4,0,10,2
	  db	 4,0,11,2
	  db	 4,0,12,2
	  db	 4,0,13,2
	  db	 4,0,14,2
	  db	 4,0,15,2
	  db	 4,0,16,2
	  db	 4,0,17,2

//, , ,  
SizeColn5 db	 5,0,1,2
	  db	 5,0,2,2
	  db	 5,0,3,2
	  db	 5,0,4,2
	  db	 5,0,5,2
	  db	 5,0,6,2
	  db	 5,0,7,2
	  db	 5,0,8,2
	  db	 5,0,9,2
	  db	 5,0,10,2
	  db	 5,0,11,2
	  db	 5,0,12,2
	  db	 5,0,13,2
	  db	 5,0,14,2
	  db	 5,0,15,2
	  db	 5,0,16,2
	  db	 5,0,17,2


Newst2	  db	 13,10	       //a ,  .
//ewst2Len =	$ - Newst2

Old_Port  dd	 0	       //   , 
			       //  .

Err_Info  db	 "ERRORS INPUT/OUTPUT!", 0
//rr_InfoLen = $ - Err_Info

//AUDTABL LABEL WORD
Baudtabl DW    1047		   //10   .
	 DW    768		   //50   .
	 DW    384		   //00   .
	 DW    192		   //00   .
	 DW    96		   //200   .
	 DW    48		   //400   .
	 DW    24		   //800   .
	 DW    12		   //600   .

//OUTINES LABEL WORD
Option0  DW    0     //   .
Option1  DW    0     //     .  
Option2  DW    0     //       .
Option3  DW    0     //    2- .
Option4  dW    0     //    .
MAXCMD	      DW     2	//$-ROUTINES)/2 //    .
RS232_BASE    DB     0	//    40.
RS232_TIM_OUT DB     07CH //S232     .


COM1SPTR     DW   0	//  1
COM1BUF      DW   0	       
COM2SPTR     DW   0	//  2
COM2BUF      DW   0	
COM1EPTR     DW   0	//    1
COM2EPTR     DW   0	//    2
COM1STRT     DW   0	//   COM1
COM2STRT     DW   0	//   COM2
COM1ENDB     DW   0	//   COM1
COM1END      DW   0    
COM2ENDB     DW   0	//   COM2
COM2END      DW   0    
OUT1SPTR     DW   0	//     1
OUT1BUF      DW   0	
OUT2SPTR     DW   0	//     2
OUT2BUF      DW   0	
OUT1EPTR     DW   0	//     1
OUT2EPTR     DW   0	//     2
OUT1STRT     DW   0	//    COM1
OUT2STRT     DW   0	//    COM2
OUT1ENDB     DW   0	//    COM2
OUT1END      DW   0    
OUT2ENDB     DW   0	//    COM2
OUT2END      DW   0    
		     
COM1LINE DB    60H		   //    COM1
COM1MODM DB    0		   //    COM1
COM2LINE DB    60H		   //    COM2
COM2MODM DB    0		   //     COM2
COMMBASE DW    0		   //   /  
				   // ,  COM.

//    COM1  COM2
//SRTABLE LABEL WORD	     //   .
	 ISRMODEM  DW  0    //    (PRI 4).
	 ISRXMIT   DW  0    //  (PRI 3).
	 ISRRECV   DW  0    //  (PRI 2).
	 ISRLINE   DW  0    //  (PRI 1).


IntVect16 dw	  0	   //     
//    ,   IOS.
ALT_Q	   =	   1000h    //acc ASCII <Alt>/q
CdEx1	   db	     01,02
CdEx2	   db	     03,04
CdEx3	   db	     05,06
Key_atd    dw	     0	     //  
In_sys	   dd	     0	     //   .
Task_Reg   db	     0	     //   .
Vectory    dd	     0	     //ec  o .
			     //-,   104- .
KeybCod:   db	     0, 1, 2, 3, 4, 5, 6, 7, 8, 9
	   db	     10, 11, 12, 13, 14, 15, 16, 17, 18, 19
	   db	     20, 21, 22, 23, 24, 25, 26, 27, 28, 29
	   db	     30, 31, 32, 33, 34, 35, 36, 37, 38, 39
	   db	     40, 41, 42, 43, 44, 45, 46, 47, 48, 49
	   db	     50, 51, 52, 53, 54, 55, 56, 57, 58, 59
	   db	     60, 61, 62, 63, 64, 65, 66, 67, 68, 69
	   db	     70, 71, 72, 73, 74, 75, 76, 77, 78, 79
	   db	     80, 81, 82, 83, 84, 85, 86, 87, 88, 89
	   db	     90, 91, 92, 93, 94, 95, 96, 97, 98, 99
	   db	     100, 101, 102, 103, 104, 105, 106, 107, 108, 109
	   db	     110, 111, 112, 113, 114, 115, 116, 117, 118, 119
	   db	     120, 121, 122, 123, 124, 125, 126, 127


BootProg      db	512 dup (?)  // ,  ,
				     //  ,  .
//ootProgLen = $ - BootProg

//      
//    
CodeLoady     db	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	      db	85, 170
//odeLoadyLen = $ - CodeLoady

//    
// - 320  (256 x 256 x 5)
SizeProg     db  5, 255, 255


// 
atd8	   dw	     0	//  
Tims	   db	     0, 0, 0	// 
Dats	   db	     0, 0, 0, 0 // 

//     
Vect_09h   dd	     0
BreakMes   db	     "Z^  BREAK", 0
KeyBreak   db	     29, 8   //  CNTR  Bs


atd12	 dw	   0	      //  .
Symb	 db	   "a"	      //b  97
Offs2	 dw	   800	      //   


//   ,  Funct 11.12 Int 10h
Vect_1D       DB	29	  //o  
Fnct1D	      DB	17, 18	  //o   
//   ,    
// 
Ony	      DD	1	  // 
Offy	      DD	0	  // 




	   //.CODE	//  
AUTO_IOS:
	   //acpo     
	   MOV	    EAX, 0000h
	   MOV	    DS,EAX
	   PUSH     ES
	   POP	    DS

	   //    
	   MOV	    EAX, OFFSET Sym
	   MOV	    DS, EAX

//	   PUSH 0
//	   PUSH OFFSET Mes1   
//	   PUSH OFFSET Mes5    
//	   PUSH 0
//	   CALL _imp__MessageBoxA@16

	   MOV	    EAX, 0B800h     // 
	   MOV	    ES,  EAX
	   MOV	    EBX, OFFSET Mes1	   // 
	   MOV	    EDI, 1*01*2+13*2	 //   
	   MOV	    ECX, 0145H	   //es1Len	    // 
REP	   MOVSB		   //  
	   MOV	    EDX, OFFSET Offs	   //  
	   INC	    EDX 	    // ,  

	   //   
	   MOV	    AH, 17h   //   
	   MOV	    AL, 4     // 720   
			      //,44 .
	   INC	    DL	      //  -   .
	   CALL     ReadDisk  //NT	13h	  // ROM BIOS

	   //a     ,
	   //  ( 1Eh)
Start:	   MOV	   EAX, 00h	     //  .
	   MOV	    DL, 00h	     //   ,
				     // ,    .
	   CALL     ReadDisk   //NT	 13h
	   MOV	    EBX, OFFSET Dpt		  //oxpa 
	   MOV	    WORD PTR Dpt + 2, ES	  //oxpa 
	   MOV	   EDI,EBX			  // EBX
	   CALL     ReadDisk   //NT	 13h
	   //   - 512 .
	   //OV     BYTE PTR ES: [DI+3], 2


	   //    ,
	   // 40- , 1- ,    ,
	   //  .
	   MOV	    AH, 03h   //     
	   MOV	    AL, 0     //  -  .
	   MOV	    CH, 40    //
	   MOV	    CL, 1     //
	   MOV	    DH, 0     //e 
	   INC	    DL	      //  -   .   
	   MOV	   ECX, 0512  //  (  ).
	   MOV	   EBX, Str2  //   ES:BX
	   CALL     ReadDisk  //NT	13h   // ROM BIOS

	   JE	    Continue   //,    
	   JNE	    NotWriting //c    


	     //c     
	     //      .
NotWriting:  MOV     EAX, OFFSET Sym
	     MOV     DS, EAX
	     MOV     EAX, 0B800h     // 
	     MOV     ES, EAX
	     MOV     EBX, OFFSET Mes3	  // 
	     MOV     EDI, 12*80*2+33*2	  //  
	     MOV     ECX, 0046H       //es3Len	       // 
REP	     MOVSB		      //  
	     MOV     EDX, OFFSET Offs	     //  
	     INC     EDX	      // ,  

//	     PUSH 0
//	     PUSH OFFSET Mes3 
//	     PUSH OFFSET Mes3	 
//	     PUSH 0
//	     CALL _imp__MessageBoxA@16

	     JMP      NewShell	      //,    .

	     //occ   
Continue:    MOV      WORD PTR Dpt + 2, ES	   //e .
	     //OV      BYTE PTR ES:[DI + 3], 2	 //o  .
	     MOV     EAX, OFFSET Handle 	   //  .


	     //c    
NewShell:    POPF


	     //eep,  po popay, a ce 
	     MOV     EAX, 0000h
	     MOV      DS,EAX
	     PUSH     ES
	     POP      DS

	     //    .
	     //a     ,
	     //  ( 1Eh)
	     MOV     EAX, 00h	       //  
	     MOV      DL, 00h	       //   ,
				       // ,    .
	     CALL     ReadDisk	       //NT	 13h
	     MOV     EBX,EBX		    //oxpa 
	     MOV     EBX, Dpt + 2	    //oxpa 
	     MOV     EDI,EBX			      // EBX
	     CALL     ReadDisk	       //NT	 13h
	     //   - 512 .
	     //OV      BYTE PTR ES: [DI+3], 2

	     //    40- , 1-
	     //,   .
	     MOV      AH, 02h	//     
	     MOV      AL, 0	//  -  .
	     MOV      CH, 40	//
	     MOV      CL, 1	//
	     MOV      DH, 0	//e 
	     INC      DL	//  -   .	 
	     PUSH     DS
	     POP      ES
	     MOV     ECX, 0512	//  (,  ).
	     MOV     EBX, Bufin //   ES:BX
	     CALL     ReadDisk	//NT	  13h  // ROM BIOS

	     JE       Continue2  //,    
	     JNE      NotFile	 //,     
				 //     .



	     //   coo,  
	     //     , 
	     //.
NotFile:     MOV      EAX, OFFSET Sym
	     MOV      DS,EAX

//	     PUSH     0
//	     PUSH     OFFSET Mes4   
//	     PUSH     OFFSET Mes4    
//	     PUSH     0
//	     CALL _imp__MessageBoxA@16

	     MOV      EAX, 0B800h     // 
	     MOV      ES,EAX
	     MOV      EBX, OFFSET Mes4	   // 
	     MOV      EDI, 12*80*2+33*2    //  
	     MOV      ECX, 0025H      //es4Len	       // 
REP	     MOVSB		      //  
	     MOV      EDX, OFFSET Offs	      //  
	     INC      EDX	     // ,  
	     //  ,   ,
	     //  ,    .
	     XOR      EAX,EAX		 //  
					 //  .
	     CALL     KEYBORD	       //NT	  16h
						       // ROM BIOS

	     // 
	     MOV     EAX, 0000h 	 // , 
					 // = 0
	     CALL     QUITS		 //NT	   20h
					 // ROM BIOS



	     //occ   
Continue2:   MOV     EBX, OFFSET dpt2	    //e .
	     //OV      BYTE PTR ES:[DI + 3], 2	 //o  .
	     MOV     EAX, OFFSET Handle 	       //  

	     //   ,  40- ,
	     //-    .		
	     //    ,  
	     //  . ,  
	     //   , 
	     //      .
	     MOV      AL, 27	   //7 -    ,
	     OR       AL, 10	   //0 -   ,
	     OR       AL, 13	   //3 -  ,
	     OR       AL, 14	   //4 -    <ENTER>
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
				   //   :
	     MOV     ECX, 0512	   //    .
REPNE	     SCASB		   //   ,
				   //,  .
	     JNE      FunctObr101  //   ,   .
	     JE       FunctObr101  //,    .

	     //,    ,  
	     //   ,    
	     //   .
	     //  -  ASCII  28  127//
	     // 128  255.     
	     // ,   
	     //  ROM BIOS.
FunctObr101: 
	     MOV      AL, 28	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt101  // , .
	     JNE      FunctObr102  //     .	   
	     //   ,  .
FunctInt101: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     INTERRUP1  //NT	   1h  // ROM BIOS

	     //     .
FunctObr102: 
	     MOV      AL, 29	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt102  // , .
	     JNE      FunctObr103  //     .
	     //   ,  .
FunctInt102: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     INTERRUP2  //NT	   2h  // ROM BIOS

	     //     .
FunctObr103: 
	     MOV      AL, 30	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt103  // , .
	     JNE      FunctObr104  //     .
	     //   ,  .
FunctInt103: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     INTERRUP3  //NT	   3h  // ROM BIOS

	     //     .
FunctObr104: 
	     MOV      AL, 31	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt104  // , .
	     JNE      FunctObr105  //     .		  
	     //   ,  .
FunctInt104: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     INTERRUP4  //NT	   4h  // ROM BIOS

	     //     .
FunctObr105: 
	     MOV      AL, 32	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt105  // , .
	     JNE      FunctObr106  //     .		  
	     //   ,  .
FunctInt105: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     INTERRUP5  //NT	   5h  // ROM BIOS

	     //     .
FunctObr106: 
	     MOV      AL, 33	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt106  // , .
	     JNE      FunctObr107  //     .		  
	     //   ,  .
FunctInt106: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     INTERRUP6  //NT	   6h

	     //     .
FunctObr107: 
	     MOV      AL, 34	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt107  // , .
	     JNE      FunctObr108  //     .		  
	     //   ,  .
FunctInt107: MOV     EAX, 00h	  
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     INTERRUP7  //NT	   7h  // ROM BIOS    

	     //     .
FunctObr108: 
	     MOV      AL, 35	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt108    // , .
	     JNE      FunctObr109    //     . 	    
	     //   ,  .
FunctInt108: MOV     EAX, 0101h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FONTS	 //NT	10h   // ROM BIOS

	     //     .
FunctObr109: MOV      AL, 36	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt109  // , .
	     JNE      FunctObr110  //     .
	     
	     //   ,  .
FunctInt109: MOV     EAX, 0202h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FONTS	 //NT	10h   // ROM BIOS
	     //     .
FunctObr110: MOV      AL, 37	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt110   // , .
	     JNE      FunctObr111   //     .
	     
	     //   ,  .
FunctInt110: MOV     EAX, 0303h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FONTS	 //NT	10h   // ROM BIOS

	     //     .
FunctObr111: MOV      AL, 38	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt111   // , .
	     JNE      FunctObr112   //     .		   
	     //   ,  .
FunctInt111: MOV     EAX, 0404h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FONTS	 //NT	10h   // ROM BIOS

	     //     .
FunctObr112: MOV      AL, 39	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt112   // , .
	     JNE      FunctObr113   //     .		   
	     //   ,  .
FunctInt112: MOV     EAX, 0505h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FONTS	 //NT	10h   // ROM BIOS

	     //     .
FunctObr113: MOV      AL, 40	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt113   // , .
	     JNE      FunctObr114   //     .		   
	     //   ,  .
FunctInt113: MOV     EAX, 0606h  
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FONTS	 //NT	10h   // ROM BIOS

	     //     .
FunctObr114: MOV      AL, 41	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt114   // , .
	     JNE      FunctObr115   //     .		   
	     //   ,  .
FunctInt114: MOV      AH, 00h	   //0h -  
	     MOV      AL, 12h	   //2h -  640 x 480 
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FONTS	 //NT	10h   // ROM BIOS

	     //     .
FunctObr115: MOV      AL, 42	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt115   // , .
	     JNE      FunctObr116   //     .		   
	     //   ,  .
FunctInt115: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     POWER	 //NT	   11h	// ROM BIOS

	     //     .
FunctObr116: MOV      AL, 43	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt116   // , .
	     JNE      FunctObr117   //     .		   
	     //   ,  .
FunctInt116: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     MEMORY	 //NT	   12h	// ROM BIOS

	     //     .
FunctObr117: MOV      AL, 44	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt117   // , .
	     JNE      FunctObr118   //     .		   
	     //   ,  .
FunctInt117: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     ReadDisk	 //NT	   13h	// ROM BIOS

	     //     .
FunctObr118: MOV      AL, 45	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt118   // , .
	     JNE      FunctObr119   //     .
	     //   ,  .
FunctInt118: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     ReadPort	 //NT	   14h	// ROM BIOS

	     //     .
FunctObr119: MOV      AL, 46	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt119   // , .
	     JNE      FunctObr120   //     .
	     //   ,  .
FunctInt119: MOV     EAX, 0000h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     MOUSE	 //NT	   15h	// ROM BIOS

	     //     .
FunctObr120: MOV      AL, 47	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt120   // , .
	     JNE      FunctObr121   //     .
	     //   ,  .
FunctInt120: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     PRINT	 //NT	   17h	// ROM BIOS

	     //     .
FunctObr121: MOV      AL, 48	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt121   // , .
	     JNE      FunctObr122   //     .
	     //   ,  .
FunctInt121: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     CMOS	 //NT	   1Ah	// ROM BIOS

	     //     .
FunctObr122: MOV      AL, 49	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt122   // , .
	     JNE      FunctObr123   //     .
	     //   ,  .
FunctInt122: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     BREAK_	 //NT	   1Bh	// ROM BIOS

	     //     .
FunctObr123: MOV      AL, 50	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt123   // , .
	     JNE      FunctObr124   //     .
	     //   ,  .
FunctInt123: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     MELODY	 //NT	   1Ch	// ROM BIOS

	     //     .
FunctObr124: MOV      AL, 51	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt124   // , .
	     JNE      FunctObr125   //     .
	     //   ,  .
FunctInt124: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     GRFPARM	 //NT	   1Dh	// ROM BIOS

	     //     .
FunctObr125: MOV      AL, 52	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt125   // , .
	     JNE      FunctObr126   //     .
	     //   ,  .
FunctInt125: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FLOPPY2	 //NT	   1Eh	// ROM BIOS

	     //     .
FunctObr126: MOV      AL, 53	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt126   // , .
	     JNE      FunctObr133   //     .
	     //   ,  .
FunctInt126: MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     SCREEN2	 //NT	   1Fh	// ROM BIOS

	     //     .
FunctObr133: MOV      AL, 60	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt133   // , .
	     JNE      FunctObr195   //     .
	     //   ,  .
FunctInt133: MOV      EAX, OFFSET Sym
	     MOV      DS, EAX

//	     PUSH     0
//	     PUSH     OFFSET Mes2   
//	     PUSH     OFFSET Mes2    
//	     PUSH     0
//	     CALL _imp__MessageBoxA@16

	     MOV      EAX, 0B800h     // 
	     MOV      ES, EAX
	     MOV      EBX, OFFSET Mes2	   // 
	     MOV      EDI, 12*80*2+33*2    //  
	     MOV      ECX, 0038H      //es2Len	       // 
REP	     MOVSB		      //  
	     ADD      EDX, OFFSET Offs	     //  
	     INC      EDX	      // ,  

	     //     .
FunctObr195: MOV      AL, 122	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt195   // , .
	     JNE      FunctObr196   //     .
	     //   ,  .
FunctInt195: MOV     EAX, 0101h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX, 0001h 	     
	     CALL      MOUSE	  //NT	 15h   // ROM BIOS

	     //     .
FunctObr196: MOV      AL, 123	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt196   // , .
	     JNE      FunctObr197   //     .
	     //   ,  .
FunctInt196: MOV     EAX, 0202h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX, 0001h 	     
	     CALL      MOUSE	  //NT	 15h   // ROM BIOS

	     //     .
FunctObr197: MOV      AL, 124	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   . 
REPNE	     SCASB		   //     .
	     JE       FunctInt197   // , .
	     JNE      FunctObr198   //     .
	     //   ,  .
FunctInt197: MOV     EAX, 0303
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX, 0001h 	     
	     CALL      MOUSE	  //NT	 15h   // ROM BIOS

	     //     .
FunctObr198: MOV      AL, 125	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt198   // , .
	     JNE      FunctObr199   //     .
	     //   ,  .
FunctInt198: MOV     EAX, 0404
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX, 0001h 	     
	     CALL      MOUSE	  //NT	 15h   // ROM BIOS

	     //     .
FunctObr199: MOV      AL, 126	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt199   // , .
	     JNE      FunctObr200  //     .
	     //   ,  .
FunctInt199: MOV     EAX, 0505
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX, 0001h 	     
	     CALL      MOUSE	  //NT	 15h   // ROM BIOS

	     //     .
FunctObr200: MOV      AL, 227	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt200  // , .
	     JNE      FunctObr201  //     .
	     //   ,  .
FunctInt200: MOV     EAX, 0606h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX, 0001h 	     
	     CALL      MOUSE	  //NT	 15h   // ROM BIOS

	     //     .
FunctObr201: MOV      AL, 228	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt201  // , .
	     JNE      FunctObr202  //     .
	     //   ,  .
FunctInt201: MOV     EAX, 0707h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX, 0001h 	     
	     CALL      FONTS	  //NT	 10h   // ROM BIOS

	     //     .
FunctObr202: MOV      AL, 229	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt202  // , .
	     JNE      FunctObr1    //     .
	     //   ,  .
FunctInt202: MOV     EAX, 0808h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX, 0001h 	     
	     CALL     FONTS	 //NT	10h   // ROM BIOS

FunctObr1:   MOV      AL, 128	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt1    // , .
	     JNE      FunctObr2    //     .
	     //   ,  .
FunctInt1:   MOV     EAX, 0909h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FONTS	 //NT	10h   // ROM BIOS

	     //     .
FunctObr2:   MOV      AL, 129	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt2    // , .
	     JNE      FunctObr3    //     .
	     //   ,  .
FunctInt2:   MOV     EAX, 1010h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FONTS	 //NT	10h   // ROM BIOS

	     //     .
FunctObr3:   MOV      AL, 130	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt3    // , .
	     JNE      FunctObr4    //     .
	     //   ,  .
FunctInt3:   MOV     EAX, 1111h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FONTS	 //NT	10h   // ROM BIOS

	     //     .
FunctObr4:   MOV      AL, 131	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt4    // , .
	     JNE      FunctObr5    //     .
	     //   ,  .
FunctInt4:   MOV     EAX, 1212h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FONTS	 //NT	10h   // ROM BIOS

	     //     .
FunctObr5:   MOV      AL, 132	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt5    // , .
	     JNE      FunctObr6    //     .
	     //   ,  .
FunctInt5:   MOV     EAX, 1313
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FONTS	 //NT	10h   // ROM BIOS

	     //     .
FunctObr6:   MOV      AL, 133	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt6    // , .
	     JNE      FunctObr7    //     .
	     //   ,  .
FunctInt6:   MOV     EAX, 1414h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FONTS	 //NT	10h   // ROM BIOS

	     //     .
FunctObr7:   MOV      AL, 134	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt7    // , .
	     JNE      FunctObr8    //     .
	     //   ,  .
FunctInt7:   MOV     EAX, 1515
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FONTS	 //NT	10h   // ROM BIOS

	     //     .
FunctObr8:   MOV      AL, 135	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt8    // , .
	     JNE      FunctObr9    //     .
	     //   ,  .
FunctInt8:   MOV     EAX, 0000h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     ReadPort	 //NT	14h   // ROM BIOS

	     //     .
FunctObr9:   MOV      AL, 136	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt9    // , .
	     JNE      FunctObr10   //     .
	     //   ,  .
FunctInt9:   MOV     EAX, 0101h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     ReadPort	 //NT	14h   // ROM BIOS

	     //     .
FunctObr10:  MOV      AL, 137	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt10   // , .
	     JNE      FunctObr11   //     .
	     //   ,  .
FunctInt10:  MOV     EAX, 0202h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     ReadPort	 //NT	14h   // ROM BIOS

	     //     .
FunctObr11:  MOV      AL, 138	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt11   // , .
	     JNE      FunctObr12   //     .
	     //   ,  .
FunctInt11:  MOV     EAX, 0303
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     ReadPort	 //NT	14h   // ROM BIOS

	     //     .
FunctObr12:  MOV      AL, 139	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt12   // , .
	     JNE      FunctObr13   //     .
	     //   ,  .
FunctInt12:  MOV     EAX, 0404h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL	ReadPort   //NT   14h	// ROM BIOS

	     //     .
FunctObr13:  MOV      AL, 140	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt13   // , .
	     JNE      FunctObr14   //     .
	     //   ,  .
FunctInt13:  MOV     EAX, 0505
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     ReadPort	 //NT	14h   // ROM BIOS

	     //     .
FunctObr14:  MOV      AL, 141	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt14   // , .
	     JNE      FunctObr15   //     .
	     //   ,  .
FunctInt14:  MOV      AH, 00h	   //0h -  
	     MOV      AL, 12h	   //2h -  640 x 480 
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     FONTS	 //NT	   10h	// ROM BIOS   

	     //     .
FunctObr15:  MOV      AL, 142	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt15   // , .
	     JNE      FunctObr16   //     .
	     //   ,  .
FunctInt15:  MOV     EAX, 0101h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     POWER	 //NT	11h   // ROM BIOS

	     //     .
FunctObr16:  MOV      AL, 143	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt16   // , .
	     JNE      FunctObr17   //     .
	     //   ,  .
FunctInt16:  MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     MEMORY	 //NT	   12h	// ROM BIOS

	     //     .
FunctObr17:  MOV      AL, 144	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt17   // , .
	     JNE      FunctObr18   //     .
	     //   ,  .
FunctInt17:  MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     ReadDisk	 //NT	   13h	// ROM BIOS

	     //     .
FunctObr18:  MOV      AL, 145	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt18   // , .
	     JNE      FunctObr19   //     .
	     //   ,  .
FunctInt18:  MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     ReadPort	 //NT	   14h	// ROM BIOS

	     //     .
FunctObr19:  MOV      AL, 146	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt19   // , .
	     JNE      FunctObr20   //     .
	     //   ,  .
FunctInt19:  MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     MOUSE	 //NT	   15h	// ROM BIOS

	     //     .
FunctObr20:  MOV      AL, 147	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt20   // , .
	     JNE      FunctObr21   //     .
	     //   ,  .
FunctInt20:  MOV     EAX, 00h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     PRINT	 //NT	   17h	// ROM BIOS

	     //     .
FunctObr21:  MOV      AL, 148	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt21   // , .
	     JNE      FunctObr22   //     .
	     //   ,  .
FunctInt21:  MOV     EAX, 0000h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     MOUSE	 //NT	15h   // ROM BIOS

	     //     .
FunctObr22:  MOV      AL, 149	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt22   // , .
	     JNE      FunctObr23   //     .
	     //   ,  .
FunctInt22:  MOV     EAX, 0101
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     MOUSE	 //NT	15h   // ROM BIOS

	     //     .
FunctObr23:  MOV      AL, 150	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt23   // , .
	     JNE      FunctObr24   //     .
	     //   ,  .
FunctInt23:  MOV     EAX, 0202
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     MOUSE	 //NT	15h   // ROM BIOS

	     //     .
FunctObr24:  MOV      AL, 151	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt24   // , .
	     JNE      FunctObr25   //     .
	     //   ,  .
FunctInt24:  MOV     EAX, 0303
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     MOUSE	 //NT	15h   // ROM BIOS

	     //     .
FunctObr25:  MOV      AL, 152	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt25   // , .
	     JNE      FunctObr26   //     .
	     //   ,  .
FunctInt25:  MOV     EAX, 0404h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     MOUSE	 //NT	15h   // ROM BIOS

	     //     .
FunctObr26:  MOV      AL, 153	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt26   // , .
	     JNE      FunctObr33   //     .
	     //   ,  .
FunctInt26:  MOV     EAX, 0505
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX,  Str2
	     CALL     MOUSE	 //NT	15h   // ROM BIOS

	     //     .
FunctObr33:  MOV      AL, 60	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt33    // , .
	     JNE      FunctObr95    //     .
FunctInt33:
	     MOV      EAX, OFFSET Sym
	     MOV      DS,EAX

//	     PUSH     0
//	     PUSH OFFSET Mes2 
//	     PUSH OFFSET Mes2	 
//	     PUSH     0
//	     CALL _imp__MessageBoxA@16

	     MOV      EAX, 0B800h     // 
	     MOV      ES,EAX
	     MOV      EBX, OFFSET Mes2	   // 
	     MOV      EDI, 12*80*2+33*2    //  
	     MOV      ECX, 0038H	   //es2Len	    // 
REP	     MOVSB		      //  
	     ADD      EDX, OFFSET Offs	     //  
	     INC      EDX	      // ,  

	     //     .
FunctObr95:  MOV      AL, 222	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt95   // , .
	     JNE      FunctObr96   //     .		  
	     //   ,  .
FunctInt95:  MOV     EAX, 0606
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX, 0001h 	     
	     CALL     MOUSE	 //NT	15h   // ROM BIOS

	     //     .
FunctObr96:  MOV      AL, 223	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt96   // , .
	     JNE      FunctObr97   //     .
	     //   ,  .
FunctInt96:  MOV     EAX, 0000h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX, 0001h 	     
	     CALL     ReadPort	 //NT	14h   // ROM BIOS

	     //     .
FunctObr97:  MOV      AL, 224	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt97   // , .
	     JNE      FunctObr98   //     .
	     //   ,  .
FunctInt97:  MOV      AH, 0101
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX, 0001h 	     
	     CALL     ReadPort	 //NT	14h   // ROM BIOS

	     //     .
FunctObr98:  MOV      AL, 225	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt98   // , .
	     JNE      FunctObr99   //     .
	     //   ,  .
FunctInt98:  MOV     EAX, 0202h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX, 0001h 	     
	     CALL     ReadPort	 //NT	14h   // ROM BIOS

	     //     .
FunctObr99:  MOV      AL, 226	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt99   // , .
	     JNE      FunctObr100  //     .
	     //   ,  .
FunctInt99:  MOV     EAX, 0303
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX, 0001h 	     
	     CALL     ReadPort	 //NT	14h   // ROM BIOS

	     //     .
FunctObr100: MOV      AL, 227	   // ,   .
	     PUSH     DS	   //  
	     POP      ES	   //  .
	     CLD		   //   .
	     MOV     ESI, Str2	   //S:ESI -->  
	     MOV     EDI, Bufin    //S:EDI -->  
	     MOV     ECX, 0512	   //   .
REPNE	     SCASB		   //     .
	     JE       FunctInt100  // , .
	     JNE      FilExit	   //     .
	     //   ,  .
FunctInt100: MOV     EAX, 0404h
	     MOV     EBX, 01h
	     MOV     ECX, 0512
	     MOV     EDX, 0001h 	     
	     CALL     ReadPort	 //NT	14h   // ROM BIOS



	     //     ,
	     // .
FilExit:     POP      DS
	     //occ   
	     MOV     EBX, OFFSET dpt2		       //e 
	     //OV      BYTE PTR ES:[DI + 3], 2	//o  

	     //c    
	     POPF
	     //    
	     MOV     EAX, 0000h
	     MOV      DS,EAX
	     //     
	     JMP      Start
	     
//     AUTO_IOS	  ENDP


//       
//NT 00h - 07h  10h - 20h,    
//    ,   
//   .

//  INT 0h
INTRRUP0:     
	     db        0, 0
	     db        0, 0
	     db        0, 0
	     db        0, 0
	     db        0, 0
	     db        0, 0
	     db        0, 0
	     db        0, 0
	     db        0, 0
	     RET       //   

//ntr00h =  $-Intr00h
//   INT 0h



//  INT 1h
INTERRUP1:  
	   CLI	     // 
	   dw	     0
	   //UB       BYTE PTR CS:[21A8h],4D
	   //UB       WORD PTR [BP+DI+06],EAX
	   PUSH     EDI    //ORD PTR [BP-10]
	   PUSH     ESI  
	   MOV	    EAX, 00B8h
	   PUSH      SS  
	   PUSH     EAX  
	   ADD	    ESP,08  
	   PUSH      DS  
	   PUSH      CS    //ORD PTR [BP+06]
	   MOV	    EAX,EBP
	   PUSH      SS  
	   PUSH     EAX  
	   ADD	    ESP,08  
	   PUSH     ECX  
	   PUSH      DS  
	   POP	     ES  
	   MOV	    EAX,EBP
	   PUSH     EAX  
	   ADD	    ESP,08  
	   SUB	     AH,AH  
	   MOV	    EAX,EBP
	   OR	    EAX,EAX
	   MOV	     ES,[BP-10]  
	   MOV	    EBX,ESI
	   MOV	    EBX,EAX
	   AND	     AL,02  
	   CMP	     AL,01  
	   SBB	     AL,AL  
	   INC	     AL  
	   MOV	    EBP, 01
	   MOV	    ESP, 5Ch
	   MOV	     AL, 01
	   MOV	     DL, 5Eh
	   PUSH     EAX  
	   PUSH     EBX  
	   ADD	    ESP,06  
	   CMP	    EBP,2Eh
	   MOV	    EDX, 004Fh	
	   CMP	    EBP, 2Eh
	   PUSH     EBP
	   MOV	    EAX,00B8h
	   PUSH     EAX  
	   CMP	    EBP, 01
	   CMP	    EBP, 14
	   ADC	     BH,BH  
	   MOV	    EAX,EBP
	   PUSH     EAX  
	   ADD	    ESP,04  
	   MOV	    EAX,EBP
	   PUSH     EAX  
	   PUSH     EDX  
	   ADD	    ESP,04  
	   MOV	    EBP,06
	   MOV	     ES,[BP-10]  
	   MOV	    EBX,ESI
	   MOV	    EBX,2Eh
	   CMP	    EDI,57
	   PUSH     EBP
	   PUSH     ESI  
	   ADD	    ESP,04  
	   INC	    EAX  
	   MOV	    EAX,022Eh  
	   ADD	    ESI,EAX
	   CMP	    EBP,06
	   INC	    EBP
	   MOV	    EBP,04
	   //EC      EBP,04
	   OR	    EAX,EAX
	   STI	     // 
	   RET	     //   

//ntr01hLen   =   $ - Intr01h
//   INT 1h


//  INT 2h
INTERRUP2:  
	   CLI
	   //OV      ESI,WORD PTR [BP-80]
	   CMP	    ESI,14  
	   MOV	    EDX, 444Fh	
	   //USH      WORD PTR ES:[2E7Ah]
	   //USH      WORD PTR ES:[782Eh]
	   ADD	    ESP,04  
	   //USH      WORD PTR [BP-08]
	   POP	    EBX  
	   CMP	    ESI,14  
	   MOV	    EAX,012Eh  
	   DEC	    ESI  
	   //OV      EBX,WORD PTR ES:[722Eh]
	   //OV      EDI,WORD PTR [BX+0786]
	   //OV      EBX,WORD PTR ES:[722Eh]
	   //OV      EDI,WORD PTR [BX+0790]
	   PUSH     ESI  
	   PUSH     EDI  
	   //USH      WORD PTR [BX+021Eh]
	   MOV	    EAX,EBP
	   PUSH     EAX  
	   MOV	    EAX, 1099  
	   CBW	       
	   PUSH     EAX  
	   ADD	    ESP,8Bh  
	   INC	    ESI  
	   //EG       BYTE PTR [BP+5Fh]
	   CLD	     
REP	   STOSB					
	   PUSH     EDI  
	   PUSH     ESI  
	   //OV      ESI,WORD PTR [1097]
	   MOV	    EAX, 404Fh	
	   MOV	    EBX, 02B4h	
	   MOV	    ECX, 334Fh	
	   //OV      EBX,WORD PTR ES:[722Eh]
	   PUSH      DS  
	   //USH      WORD PTR [BX+076Ch]
	   //USH      WORD PTR [BX+078Eh]
	   NOP	       
	   PUSH      CS  
	   ADD	    ESP,06  
	   MOV	    EDX, 444Fh	
	   MOV	    EAX, 782Eh	
	   MOV	    EDX, 222Eh	
	   MOV	    EAX,EDX
	   //R	     EAX,WORD PTR ES:[782Eh]
	   XOR	    EAX,EAX
	   PUSH     EAX  
	   POP	    EBX  
	   //OV       WORD PTR [BP-02],EAX
	   //OV      EDI,WORD PTR [BP-80]
		 
	   //OV      ESI,WORD PTR [BP+40]
	   CMP	    EDI,14  
	   CMP	    EDI,01  
	   SBB	    EAX,EAX
	   NEG	    EAX  
	   PUSH     EAX  
	   PUSH     EDX  
	   //USH      WORD PTR [BP+06]
	   PUSH     EDX  
	   ADD	    ESP,08  
	   MOV	    EDX, 575Ch	
	   //OV       AL,BYTE PTR [SI+01]
	   IN	     AL,50  
	   //OV       AL,BYTE PTR [BX+SI]
	   //DD       BYTE PTR [BX+SI],AL
	   STI	     // 
	   RET	     //   
	   //NTERRUP2  ENDP
//ntr02hLen   =   $ - Intr02h
//   INT 2h



//  INT 3h

INTERRUP3:   
	    CLI       // 
	    INC      ESP  
	    POP      ESI  
	    PUSH     EAX  
	    PUSH     EBX  
	    ADD      ESP,06  
	    //USH      WORD PTR [BP+08]
	    //USH      WORD PTR [BP+04]
	    ADD      ESP,04  
	    PUSH      DS  
	    PUSH     EDI  
	    ADD      ESP,04  
	    MOV      EDX, 102Eh   
	    CMP      EDI,14  
	    MOV      EDX, 444Fh  
	    //USH      WORD PTR ES:[227Ah]
	    //USH      WORD PTR ES:[782Eh]
	    ADD      ESP,04  
	    //ND       BYTE PTR [BP-02],DH
	    POP      EBX  
	    CMP      EDI,01  
	    //DD       BYTE PTR [BX+SI],AL
	    MOV      EDX, 334Fh  
	    //OV      EBX,WORD PTR ES:[722Eh]
	    //OV      ESI,WORD PTR [BX+0786]
	    MOV      EDX, 334Fh  
	    //OV      EBX,WORD PTR ES:[722Eh]
	    //OV      ESI,WORD PTR [BX+0790]
	    PUSH     EDI  
	    PUSH     ESI  
	    //USH      WORD PTR [BX+021Eh]
	    //USH      WORD PTR [BP+06]
	    MOV      EBX, 1099	 
	    CBW 	
	    PUSH     EAX  
	    ADD      ESP,5Eh  
	    POP      EDI  
	    PUSH     ESI  
	    PUSH     EBP  
	    MOV      EBP, 000Ch  
	    //OV      EAX,WORD PTR [1044]
	    //OV       WORD PTR [BP-0Ah],EAX
	    //EA      EAX,WORD PTR [BP-10]
	    PUSH     EAX  
	    //EA      EAX,WORD PTR [BP-12]
	    PUSH     EBX
	    NOP 	
	    PUSH      CS  
	    ADD      ESP,04  
	    MOV      EDX, 344Fh  
	    //OV      EBX,WORD PTR ES:[722Eh]
	    PUSH      DS  
	    //USH      WORD PTR [BX+076Ch]
	    //USH      WORD PTR [BX+078Eh]
	    NOP 	
	    PUSH      CS  
	    ADD      ESP,06  
	    MOV      EDX, 444Fh  
	    MOV      EAX, 782Eh  
	    //ND       BYTE PTR [BX+SI],AH
	    //OV       WORD PTR ES:[270Ah],EDX
	    MOV      EAX,EDX
	    //R       EAX,WORD PTR ES:[782Eh]
	    XOR      EAX,EAX
	    PUSH     ESP  
	    POP      EBX  
	    //OV       WORD PTR [BP-0Eh],EAX
	    MOV      EDX, 404Fh  
	    //DD       BYTE PTR [BX+SI],AL
	    STI       // 
	    RET       //   
	    //NTERRUP3	 ENDP
//ntr03hLen   =   $ - Intr03h
//   INT 3h


//  INT 4h

INTERRUP4:  
	   CLI	     // 
//	    CMP       WORD PTR [BP+0Eh],01
	   SBB	    EAX,EAX
	   NEG	    EAX  
	   PUSH     EAX  
	   PUSH     EDX  
//	    CMP       WORD PTR [BP+0Eh],04
//	    MOV      EAX, 042Eh
	   MOV	    EAX, 062Eh	
	   PUSH     EAX  
	   ADD	    ESP,08  
	   PUSH      DS  
//	    LEA      EAX,WORD PTR [BP-62]
	   PUSH      SS  
	   PUSH     EAX  
//	    ADD      ESP,08
//	    MOV      EDX,WORD PTR [BX+2Eh]
//	    MOV       WORD PTR [BP-02],EDX
	   MOV	    ESI,EAX
//	    ADC       AL,01
	   INC	    ESI  
//	    CMP       BYTE PTR [BX+57],06
//	    LEA      EAX,WORD PTR [BP-00B8h]
	   PUSH      SS  
	   PUSH     EAX  
	   MOV	     ES,[BP-02]  
//	    ADD      ESP,06
//	    PUSH     ESI
//	    PUSH      SS
	   PUSH     EAX  
	   ADD	    ESP,08
	   DB	     0, 0, 0, 0
	   DB	     0, 0, 0, 0
//	    ADD       BYTE PTR CS:[BX+SI],AL
//	    ADD       BYTE PTR [BX+SI],AL
//	    ADD       BYTE PTR [BX+SI],AL
//	    ADD       BYTE PTR [BX+SI],AL
//	    ADD       BYTE PTR [BX+SI],AL
	   ADD	    EAX,880D  
	   INC	    ESI  
	   STC	       
//	    MOV      EBX,WORD PTR [BP-0Ah]
	   SUB	     AH,AH  
//	    MOV       AL,BYTE PTR [BX+5Eh]
	   PUSH     EAX  
	   PUSH     EDX  
	   ADD	    ESP,06  
//	    MOV      EDX, 424Fh
//	    CMP       WORD PTR [BP+0Eh],04
	   MOV	    EAX, 042Eh	
	   MOV	    EAX, 062Eh	
	   PUSH     EAX  
//	    LEA      ESP,WORD PTR [BX+SI]
//	    PUSH      SS
	   PUSH     EAX  
	   PUSH     EDI  
//	    ADD      ESP,0Ch
	   STI	     // 
	   RET	     //   
	   //NTERRUP4  ENDP
//ntr04hLen   =   $ - Intr04h
//   INT 4h


//  INT 5h

INTERRUP5:  
	   CLI	     // 
	   DB	     0, 0, 0, 0, 0, 0
//	    PUSH      WORD PTR [BP+0Ch]
	   PUSH     EDI  
//	    PUSH      SS
	   PUSH     EAX  
	   ADD	    ESP,08  
	   PUSH     EDI  
//	    PUSH      SS
	   PUSH     EAX  
	   ADD	    ESP,06  
//	    LEA      EAX,WORD PTR [BP-00]
	   PUSH     EAX  
	   PUSH     EDI  
	   ADD	    ESP,04  
//	    MOV       ES,[BP-02]
//	    MOV       BYTE PTR ES:[BX],2Eh
//	    CMP       BYTE PTR [BX+57],06
//	    PUSH     ESI
	   ADD	    ESP,04  
	   INC	    EAX  
	   MOV	    EAX,022Eh  
	   ADD	    ESI,EAX
//	    INC       WORD PTR [BP-0Ch]
//	    MOV      EAX,WORD PTR [BP+06]
//	    OR	     EAX,EAX
//	    MOV      ESI,WORD PTR [BP+0Eh]
	   MOV	    EDX, 444Fh	
//	    PUSH      WORD PTR ES:[2E78h]
	   ADD	    ESP,04  
//	    POP      EBX
	   CMP	    ESI,04  
	   MOV	    EDX, 373Eh	
//	    MOV      EBX,WORD PTR [722Eh]
//	    MOV      EDX, 373Eh
//	    MOV      EDI,WORD PTR [BX+078Ch]
	   CMP	    ESI,04  
	   MOV	    EAX,ESI
	   MOV	    EAX,062Eh  
	   PUSH     EAX  
	   PUSH     EDI  
//	    LEA      EAX,WORD PTR [BP-62]
	   PUSH     EAX  
	   MOV	     AL, 10  
	   CBW	       
	   PUSH     EAX  
	   ADD	    ESP,8Bh  
	   INC	    ESI  
	   POP	    ESI  
	   POP	    EDI  
	   PUSH     EDI  
//	    PUSH     ESI
//	    PUSH      WORD PTR [BP+04]
	   STI	     // 
	   RET	     //   
//ntr05hLen   =   $ - Intr05h
//   INT 5h


//  INT 6h

INTERRUP6:  
	   CLI	     // 
//	    POP      EBX
	   MOV	    EDX, 404Fh	
//	    LEA      EAX,WORD PTR [BP-06]
	   PUSH     EAX  
//	    PUSH     EAX
	   NOP	       
	   PUSH      CS  
	   ADD	    ESP,04  
//	    PUSH      CS
	   PUSH     EAX  
	   POP	    EBX  
	   XOR	    EAX,EAX
	   PUSH     EDI  
	   PUSH     ESI  
	   DEC	    EBP  
//	    MOV      EDI,EAX
//	    MOV       AL,BYTE PTR [SI+57]
	   SUB	     AH,AH  
	   PUSH     EAX  
	   PUSH     EDX  
	   PUSH     EDI  
	   NOP	       
	   PUSH      CS  
	   ADD	    ESP,06  
	   OR	    EAX,EAX
	   MOV	    EDI,96  
	   XOR	    ESI,ESI
	   PUSH      DS  
	   PUSH     EDI  
	   ADD	    ESP,04  
	   INC	    EAX  
	   ADD	    EDI,EAX
	   INC	    ESI  
	   MOV	     AL, 10  
	   CBW	       
	   CMP	    EAX,ESI
//	    PUSH      WORD PTR [BX+SI+04]
	   dw	     0 
//	    ADD       BYTE PTR [BX+SI],AL
	   OR	    EAX,EAX
//	    NOP
	   PUSH      CS  
	   POP	    EBX  
//	    ADD      ESP,04
//	    CMP       WORD PTR [DI-3Ch],00
//	    MOV      ECX,WORD PTR [DI-3Ch]
	   PUSH     EDI
	   DB	     35,  6,  0, 248   //ND	 EAX,F8h  
	   ADD	    ESP,04  
//	    CMP       WORD PTR [DI-99],9Fh
	   NOP	       
	   PUSH      CS  
//	    MOV      EDI,960Ah
	   XOR	    ESI,ESI
	   PUSH      DS  
	   PUSH     EDI  
	   ADD	    ESP,04  
	   INC	    EAX  
	   ADD	    EDI,EAX
	   INC	    ESI  
//	    CBW
	   CMP	    EAX,ESI
//	    MOV       WORD PTR [DI-04],EAX
	   PUSH      DS  
	   PUSH     EDI  
	   STI	     // 
	   RET	     //   
	   //NTERRUP6  ENDP
//ntr06hLen   =   $ - Intr06h
//   INT 6h


//  INT 7h

INTERRUP7:  
	   CLI	     // 
	   PUSH      DS  
	   PUSH     ESI  
	   PUSH     EBX  
	   PUSH     EDX  
	   ADD	    ESP,1Ah  
//	    MOV      EBX,WORD PTR [317Eh]
//	    PUSH      WORD PTR [DI+10]
//	    ADD       BYTE PTR [BX+SI],AL
	   SUB	     AH,AH  
//	    CMP       WORD PTR [DI-38],00
//	    PUSH      WORD PTR [BX+SI+04]
//	    PUSH      WORD PTR [BX+SI]
//	    MOV      EDX, 424Fh
//	    CMP       WORD PTR [DI-38],00
	   PUSH     EBP  
	   PUSH     EDI  
	   PUSH      DS
	   PUSH     EDX  
	   ADD	    ESP,08  
	   MOV	    EDX, 443Eh	
//	    PUSH      DS
//	    PUSH      WORD PTR [BX+078Eh]
	   NOP	       
	   PUSH      CS  
	   ADD	    ESP,06  
	   MOV	    EDX, 444Fh	
//	    MOV       WORD PTR ES:[2E7Ah],EDX
	   MOV	    EAX,EDX
//	    PUSH     ECX
	   POP	    EBX  
//	    CMP       WORD PTR [DI-38],00
	   PUSH     EBX  
	   PUSH     EDX  
	   PUSH     ESI  
	   PUSH     ESP  
	   ADD	    ESP,08  
	   PUSH     EBX  
	   PUSH     EDX  
	   MOV	    EDX, 443Eh	
//	    PUSH      DS
//	    PUSH      WORD PTR [BP+06]
	   PUSH     ESI  
	   ADD	    ESP,0Ch  
	   MOV	    EDX, 444Fh	
//	    PUSH     ECX
	   PUSH     EAX  
	   MOV	    EBX, 334Fh	
//	    PUSH      DS
//	    ADD      ESP,0Ch
	   MOV	    EDX, 444Fh	
//	    PUSH      WORD PTR ES:[782Eh]
	   PUSH     EAX  
	   PUSH     EBX  
	   PUSH     ECX
	   PUSH     EDX
//	    STI       // 
	   RET	     //   
	   //NTERRUP7  ENDP
//ntr07hLen   =   $ - Intr07h
//   INT 7h


//  INT 10h
Intr10h:
//  
FONTS:	   
	  CLI	  // 
	  PUSHF   //oxpa a   IRET
	  // IOS    10
	  MOV	 EDX,1E10h
	  MOV	 ESP,08  
	  MOV	 ECX,EDI
	  MOV	 EBX,ESI

	  //,    
	  //   
	  //H EAX  , 
	  //   .
	  MOV	 EDX, OFFSET IntVect4
	  TEST	 EDX, 10h
	  INC	 EDX

	  // ,   
	  //   
	  // AH EAX,  
	  //  INT 10h   
	  //   
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	  BL, 10h   //    
	  CLD		    // 
REP	  STOSB 	    //
	  //   ,  
	  //OV	   ES:[DI], 0
	  
	  //   
	  //     
	  // (   
	  //    BIOS, 
	  //    , 
	  // INT 10h)
	  PUSH	 EAX  // EAX
		      //  
	  POP	 EBX  //EBX 
		      //  

	  //    AH EAX,
	  //    
	  // 
	  AAS
	  //,    AH EAX
	  //   , - 
	  //.
	  AAA
	  STOSB        //  
		       // 
		      
	  //    
	  // c   .
	  CMP	   AH, AL		       
	  CMPSB
	  SCASB 			      
	  PUSH	  EAX	    //  

	  //   AH EAX 
	  // ,  
	  //    .
	  TEST	   AH, AL
	  CMC	   //    

	  
	  //    
	  //  ,   
	  // INT 10h
	  CMP	   AH, 00h
	  JE	   GraphSc0
	  CMP	   AH, 01h
	  JE	   GraphSc1
	  CMP	   AH, 02h
	  JE	   GraphSc2
	  CMP	   AH, 03h
	  JE	   GraphSc3
	  CMP	   AH, 04h
	  JE	   GraphSc4
	  CMP	   AH, 05h
	  JE	   GraphSc5
	  CMP	   AH, 06h
	  JE	   GraphSc6
	  CMP	   AH, 07h
	  JE	   GraphSc7
	  CMP	   AH, 08h
	  JE	   GraphSc8
	  CMP	   AH, 09h
	  JE	   GraphSc9
	  CMP	   AH, 0Ah
	  JE	   GraphSc10
	  CMP	   AH, 0Bh
	  JE	   GraphSc11
	  CMP	   AH, 0Ch
	  JE	   GraphSc12
	  CMP	   AH, 0Dh
	  JE	   GraphSc13
	  CMP	   AH, 0Eh
	  JE	   GraphSc14
	  CMP	   AH, 0Fh
	  JE	   GraphSc15
	  CMP	   AH, 10h
	  JE	   GraphSc16
	  CMP	   AH, 11h
	  JE	   GraphSc17
	  CMP	   AH, 12h
	  JE	   GraphSc18
	  CMP	   AH, 13h
	  JE	   GraphSc19
	  CMP	   AH, 14h
	  JE	   GraphSc20
	  CMP	   AH, 15h
	  JE	   GraphSc21


	//    
	// INT 10h
GraphSc0:
	  //    
	  //  .
	  //ALL       Graph
	  //RAPH:
	  //   AH EAX 
	  // ,  
	  //    .
	  TEST	   AH, AL
	  CMC	   //    

	  //    
	  //  ,   
	  // 0h  INT 10h
	  CMP	   AL, 00h
	  JE	   Scr0
	  CMP	   AL, 01h
	  JE	   Scr1
	  CMP	   AL, 02h
	  JE	   Scr2
	  CMP	   AL, 03h
	  JE	   Scr3
	  CMP	   AL, 04h
	  JE	   Scr4
	  CMP	   AL, 05h
	  JE	   Scr5
	  CMP	   AL, 06h
	  JE	   Scr6
	  CMP	   AL, 07h
	  JE	   Scr7
	  CMP	   AL, 08h
	  JE	   Scr8
	  CMP	   AL, 09h
	  JE	   Scr9
	  CMP	   AL, 0Ah
	  JE	   Scr10
	  CMP	   AL, 0Bh
	  JE	   Scr11
	  CMP	   AL, 0Ch
	  JE	   Scr12
	  CMP	   AL, 0Dh
	  JE	   Scr13
	  CMP	   AL, 0Eh
	  JE	   Scr14
	  CMP	   AL, 0Fh
	  JE	   Scr15
	  CMP	   AL, 10h
	  JE	   Scr16
	  CMP	   AL, 11h
	  JE	   Scr17
	  CMP	   AL, 12h
	  JE	   Scr18
	  CMP	   AL, 13h
	  JE	   Scr19

//   
// ,  
//   AL.
	  //  40 x 25 , 2 
Scr0:	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //1h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 01h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET SizeBuff  //.  
					 // - 64 .
	  OUT	    10h, AL	  //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,   80 x 50,
	  //   40 x 25 .
	  // - 01h     .
	  MOV	    AH, 01h    // 01h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 0110h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 0  //     .
	  MOV	   EBX, (8 * 8) + (80 * 50)  // .
	  MOV	   EBX,EAX	       //  .
	  MOV	   ECX, 8000h  //   (80 * 50 * 2)
	  MOV	    CH, 01h    //  
	  MOV	    CL, 80h    //  
	  SBB	    CL, 40h    //     .
	  MOV	    DH, 50h    //  
	  SUB	    DH, 25h    //     .
	  MOV	    DL, 80h    //  
	  AAA	    //,    .
	  MOV	   EBX, (8 * 8) + (40 * 25)  //  .
	  MOV	   EBX,EAX  //   .
	  DEC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, 2000h  //    (40 * 25 * 2)
REPE	  CMPSB     //   .	   

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 0110h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 0110h	  // :
				  //1h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      //  
	  MOV	   EAX, (8000) / 4    //  .
	  CMC	    //    
	  CLD	    //      .
REPE	  SCASB     //    .
	  AAD	    //  ,     .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 0110h	//1h - //10h -  .
	  MOV	    AL, 00h	//0h -    .
	  MOV	   EBX, (8 * 8) + (40 * 25)  // .
	  MOV	   ECX, 2000h	//   (40 * 25 * 2)
	  MOV	   EAX, 0   //     .
	  MOV	   EBX,EDX	//    .
	  DEC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  //  80 x 50 , 16 
Scr1:	  //   ES  
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //1h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 01h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET SizeBuff  //.  
					 // - 64 .
	  db	   238	//UT	   10h, AL	 //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,    80 x 50
	  // - 01h     .
	  MOV	    AH, 01h    // 01h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 0110h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 0  //     .
	  MOV	   EBX, (8 * 8) + (80 * 50)  // .
	  MOV	   EBX,EAX	       //  .
	  MOV	    CH, 01h    //  
	  MOV	    CL, 80h    //  
	  MOV	    DH, 50h    //  
	  MOV	    DL, 80h    //  
	  AAA	    //,    .
	  MOV	   EBX, (8 * 8) + (80 * 50)  //  .
	  MOV	   EBX,EAX    //   .
	  DEC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, 8000h  //   (80 * 50 * 2)
REPE	  CMPSB     //   .

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h	 //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 0110h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 0110h	  // :
				  //1h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      
	  MOV	   EAX, 8000h	  //  .
	  CMC	    //    
	  CLD	    // 
REPE	  SCASB     //    .
	  AAD	    //  ,     
		    // .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 0110h	//1h - //10h -  .
	  MOV	    AL, 01h	//1h -    .
	  MOV	   EBX, (8 * 8) + (80 * 50)  // .
	  MOV	   ECX, 8000h	//   (80 * 50 * 2)
	  MOV	   EAX, 0	//     .
	  MOV	   EBX,EDX	//    .
	  DEC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  //  80 x 25 , 2 
	  //   ES  
Scr2:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //1h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 01h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET SizeBuff  //.  
					 // - 64 .
	  db	   238	//UT	   10h, AL	 //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,   80 x 50,
	  //   80 x 25 .
	  // - 01h     .
	  MOV	    AH, 01h    // 01h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 0110h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 0  //     .
	  MOV	   EBX, (8 * 8) + (80 * 50)  // .
	  MOV	   EBX,EAX	   //  .
	  MOV	   ECX, 8000h  //   (80 * 50 * 2)
	  MOV	    CH, 01h    //  
	  MOV	    CL, 80h    //  
	  MOV	    DH, 50h    //  
	  ADD	    DH, 25h    //     .
	  MOV	    DL, 80h    //  
	  AAA	    //,    .
	  MOV	   EBX, (8 * 8) + (80 * 25)  //  .
	  MOV	   EBX,EAX  //   .
	  INC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, 4000h  //    (80 * 25 * 2)
REPE	  CMPSB     //   .	   

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 0110h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 0110h	  // :
				  //1h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      //  
	  MOV	   EAX, (8000) / 2    //  .
	  CMC	    //    
	  CLD	    //      .
REPE	  SCASB     //    .
	  AAD	    //  ,     .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 0110h	//1h - //10h -  .
	  MOV	    AL, 02h	//2h -    .
	  MOV	   EBX, (8 * 8) + (80 * 25)  // .
	  MOV	   ECX, 4000h	//   (80 * 25 * 2)
	  MOV	   EAX, 0   //     .
	  MOV	   EBX,EDX	//    .
	  INC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  //  80 x 25 , 16 
	  //   ES  
Scr3:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //1h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 01h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET	SizeBuff  //.  
					 // - 64 .
	  OUT	    10h, AL	  //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,   80 x 50,
	  //   80 x 25 .
	  // - 01h     .
	  MOV	    AH, 01h    // 01h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 0110h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 0  //     .
	  MOV	   EBX, (8 * 8) + (80 * 50)  // .
	  MOV	   EBX,EAX	       //  .
	  MOV	   ECX, 8000h  //   (80 * 50 * 2)
	  MOV	    CH, 01h    //  
	  MOV	    CL, 80h    //  
	  MOV	    DH, 50h    //  
	  ADD	    DH, 25h    //     .
	  MOV	    DL, 80h    //  
	  AAA	    //,    .
	  MOV	   EBX, (8 * 8) + (80 * 25)  //  .
	  MOV	   EBX,EAX    //   .
	  INC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, 4000h  //    (80 * 25 * 2)
REPE	  CMPSB     //   .	   

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 0110h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 0110h	  // :
				  //1h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      //  
	  MOV	   EAX, (8000) / 2    //  .
	  CMC	    //    
	  CLD	    //      .
REPE	  SCASB     //    .
	  AAD	    //  ,     .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 0110h	//1h - //10h -  .
	  MOV	    AL, 03h	//3h -    .
	  MOV	   EBX, (8 * 8) + (80 * 25)  // .
	  MOV	   ECX, 4000h	//   (80 * 25 * 2)
	  MOV	   EAX, 0	//     .
	  MOV	   EBX,EDX	//    .
	  INC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET	SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  //  320 x 200 , 4 
	  //   ES  
Scr4:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //3h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 13h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET	SizeBuff  //.  
					 // - 64 .
	  OUT	    10h, AL	  //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,    320 x 200
	  // - 13h     .
	  MOV	    AH, 13h    // 13h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 1310h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 0      //     .
	  MOV	   EBX, (2 * 2) + (320 * 200)  // .
	  MOV	   EBX,EAX	       //  .
	  //     .
	  MOV	    CH, 01h    //  
	  MOV	    CL, 40h    //  
	  MOV	    DH, 25h    //  
	  MOV	    DL, 40h    //  
	  AAA	    //,    .
	  MOV	   EBX, (2 * 2) + (320 * 200)  //  .
	  MOV	   EBX,EAX    //   .
	  DEC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, OFFSET SzGrfSc1  // 
					 // (320 * 200 * 2)
REPE	  CMPSB     //   .

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 1310h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 1310h	  // :
				  //3h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      
	  MOV	   EAX, OFFSET SzGrfSc1  //  .
	  CMC	    //    
	  CLD	    // 
REPE	  SCASB     //    .
	  AAD	    //  ,     
		    // .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 1310h	//3h - //10h -  .
	  MOV	    AL, 04h	//4h -    .
	  MOV	   EBX, (2 * 2) + (320 * 200)  // .
	  MOV	   ECX, OFFSET	SzGrfSc1   // 
					  // (320 * 200 * 2)
	  MOV	   EAX, 0   //     .
	  MOV	   EBX,EDX	//    .
	  DEC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET	SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  //  320 x 200 , 2 
	  //   ES  
Scr5:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //3h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 13h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET	SizeBuff  //.  
					 // - 64 .
	  OUT	    10h, AL	  //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,    320 x 200
	  // - 13h     .
	  MOV	    AH, 13h    // 13h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 1310h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 0  //     .
	  MOV	   EBX, (2 * 2) + (320 * 200)  // .
	  MOV	   EBX,EAX	       //  .
	  //     .
	  MOV	    CH, 01h    //  
	  MOV	    CL, 40h    //  
	  MOV	    DH, 25h    //  
	  MOV	    DL, 40h    //  
	  AAA	    //,    .
	  MOV	   EBX, (2 * 2) + (320 * 200)  //  .
	  MOV	   EBX,EAX    //   .
	  DEC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, OFFSET	SzGrfSc1  // 
					 // (320 * 200 * 2)
REPE	  CMPSB     //   .

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 1310h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 1310h	  // :
				  //3h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      
	  MOV	   EAX, OFFSET	SzGrfSc1  //  .
	  CMC	    //    
	  CLD	    // 
REPE	  SCASB     //    .
	  AAD	    //  ,     
		    // .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 1310h	//3h - //10h -  .
	  MOV	    AL, 05h	//5h -    .
	  MOV	   EBX, (2 * 2) + (320 * 200)  // .
	  MOV	   ECX, OFFSET SzGrfSc1   // 
					  // (320 * 200 * 2)
	  MOV	   EAX, 0   //     .
	  MOV	   EBX,EDX	//    .
	  DEC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  //  640 x 200 , 2 
	  //   ES  
Scr6:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //2h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 12h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET	SizeBuff  //.  
					 // - 64 .
	  OUT	    10h, AL	  //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,   640 x 400
	  //   640 x 200 .
	  // - 12h     .
	  MOV	    AH, 12h    // 12h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 1210h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 0  //     .
	  MOV	   EBX, (1 * 1) + (640 * 400)  // .
	  MOV	   EBX,EAX	   //  .
	  MOV	   ECX, OFFSET SzGrfSc5  // 
					 // (640 * 400 * 2)
	  //     .
	  MOV	    CH, 01h    //  
	  MOV	    CL, 80h    //  
	  MOV	    DH, 25h    //  
	  SUB	    DH, 12h    //     .
	  DAA	    //  
	  SUB	   EDX, 0200h  //     .
	  MOV	    DL, 80h    //  
	  AAA	    //,    .
	  MOV	   EBX, (1 * 1) + (640 * 200)  //  .
	  MOV	   EBX,EAX  //   .
	  DEC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, OFFSET SzGrfSc2  // 
					 // (640 * 200 * 2)
REPE	  CMPSB     //   .

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 1210h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 1210h	  // :
				  //2h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      
	  MOV	   EAX, OFFSET	SzGrfSc2  //  .
	  CMC	    //    
	  CLD	    // 
REPE	  SCASB     //    .
	  AAD	    //  ,     
		    // .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 1210h	//2h - //10h -  .
	  MOV	    AL, 06h	//6h -    .
	  MOV	   EBX, (1 * 1) + (640 * 200)  // .
	  MOV	   ECX, OFFSET SzGrfSc2   // 
					  // (640 * 200 * 2)
	  MOV	   EAX, 0   //     .
	  MOV	   EBX,EDX	//    .
	  DEC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  //  80 x 25 , 2 
	  //   ES  
Scr7:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //1h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 01h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET SizeBuff  //.  
					 // - 64 .
	  OUT	    10h, AL	  //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,   80 x 50,
	  //   80 x 25 .
	  // - 01h     .
	  MOV	    AH, 01h    // 01h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 0110h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 0  //     .
	  MOV	   EBX, (8 * 8) + (80 * 50)  // .
	  MOV	   EBX,EAX	       //  .
	  MOV	   ECX, 8000h  //   (80 * 50 * 2)
	  MOV	    CH, 01h    //  
	  MOV	    CL, 80h    //  
	  MOV	    DH, 50h    //  
	  ADD	    DH, 25h    //     .
	  MOV	    DL, 80h    //  
	  AAA	    //,    .
	  MOV	   EBX, (8 * 8) + (80 * 25)  //  .
	  MOV	   EBX,EAX  //   .
	  INC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, 4000h  //    (80 * 25 * 2)
REPE	  CMPSB     //   .	   

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 0110h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 0110h	  // :
				  //1h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      //  
	  MOV	   EAX, (8000) / 2    //  .
	  CMC	    //    
	  CLD	    //      .
REPE	  SCASB     //    .
	  AAD	    //  ,     .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 0110h	//1h - //10h -  .
	  MOV	    AL, 07h	//7h -    .
	  MOV	   EBX, (8 * 8) + (80 * 25)  // .
	  MOV	   ECX, 4000h	//   (80 * 25 * 2)
	  MOV	   EAX, 0   //     .
	  MOV	   EBX,EDX	//    .
	  INC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET	SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  // 
	  //   ES  .
Scr8:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //    
	  // ,   
	  // ROM BIOS
	  db   96  Dup	 (?)
	  //   
	  JMP	   QuitSub

	  //  320 x 200 , 16 
	  //   ES  
Scr9:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //3h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 13h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET SizeBuff  //.  
					 // - 64 .
	  OUT	    10h, AL	  //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,    320 x 200
	  // - 13h     .
	  MOV	    AH, 13h    // 13h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 1310h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 1  //     .
	  MOV	   EBX, (2 * 2) + (320 * 200)  // .
	  MOV	   EBX,EAX	       //  .
	  //     .
	  MOV	    CH, 01h    //  
	  MOV	    CL, 40h    //  
	  MOV	    DH, 25h    //  
	  MOV	    DL, 40h    //  
	  AAA	    //,    .
	  MOV	   EBX, (2 * 2) + (320 * 200)  //  .
	  MOV	   EBX,EAX  //   .
	  DEC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, OFFSET	SzGrfSc1  // 
					 // (320 * 200 * 2)
REPE	  CMPSB     //   .

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 1310h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 1310h	  // :
				  //3h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      
	  MOV	   EAX, OFFSET SzGrfSc1  //  .
	  CMC	    //    
	  CLD	    // 
REPE	  SCASB     //    .
	  AAD	    //  ,     
		    // .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 1310h	//3h - //10h -  .
	  MOV	    AL, 09h	//9h -    .
	  MOV	   EBX, (2 * 2) + (320 * 200)  // .
	  MOV	   ECX, OFFSET	SzGrfSc1   // 
					  // (320 * 200 * 2)
	  MOV	   EAX, 0   //     .
	  MOV	   EBX,EDX	//    .
	  DEC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET	SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  //  640 x 200 , 4 
	  //   ES  
Scr10:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //2h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 12h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET	SizeBuff  //.  
					 // - 64 .
	  OUT	    10h, AL	  //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,   640 x 400
	  //   640 x 200 .
	  // - 12h     .
	  MOV	    AH, 12h    // 12h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 1210h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 0  //     .
	  MOV	   EBX, (1 * 1) + (640 * 400)  // .
	  MOV	   EBX,EAX	   //  .
	  MOV	   ECX, OFFSET	SzGrfSc5  // 
					 // (640 * 400 * 2)
	  //     .
	  MOV	    CH, 01h    //  
	  MOV	    CL, 80h    //  
	  MOV	    DH, 25h    //  
	  SUB	    DH, 12h    //     .
	  DAA	    //  
	  SUB	   EDX, 0200h  //     .
	  MOV	    DL, 80h    //  
	  AAA	    //,    .
	  MOV	   EBX, (1 * 1) + (640 * 200)  //  .
	  MOV	   EBX,EAX  //   .
	  DEC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, OFFSET	SzGrfSc2  // 
					 // (640 * 200 * 2)
REPE	  CMPSB     //   .

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 1210h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 1210h	  // :
				  //2h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      
	  MOV	   EAX, OFFSET	SzGrfSc2  //  .
	  CMC	    //    
	  CLD	    // 
REPE	  SCASB     //    .
	  AAD	    //  ,     
		    // .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 1210h	//2h - //10h -  .
	  MOV	    AL, 0Ah	//Ah -    .
	  MOV	   EBX, (1 * 1) + (640 * 200)  // .
	  MOV	   ECX, OFFSET SzGrfSc2   // 
					  // (640 * 200 * 2)
	  MOV	   EAX, 0   //     .
	  MOV	   EBX,EDX	//    .
	  DEC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  // 
	  //   ES  .
Scr11:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //    
	  // ,   
	  // ROM BIOS
	  db   96  Dup	 (?)
	  //   
	  JMP	   QuitSub

	  // 
	  //   ES  .
Scr12:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //    
	  // ,   
	  // ROM BIOS
	  db   96  Dup	 (?)
	  //   
	  JMP	   QuitSub

	  //  320 x 200 , 16 
	  //   ES  
Scr13:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //3h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 13h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET SizeBuff  //.  
					 // - 64 .
	  OUT	    10h, AL	  //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,    320 x 200
	  // - 13h     .
	  MOV	    AH, 13h    // 13h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 1310h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 0  //     .
	  MOV	   EBX, (2 * 2) + (320 * 200)  // .
	  MOV	   EBX,EAX	       //  .
	  //     .
	  MOV	    CH, 01h    //  
	  MOV	    CL, 40h    //  
	  MOV	    DH, 25h    //  
	  MOV	    DL, 40h    //  
	  AAA	    //,    .
	  MOV	   EBX, (2 * 2) + (320 * 200)  //  .
	  MOV	   EBX,EAX  //   .
	  DEC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, OFFSET SzGrfSc1  // 
					 // (320 * 200 * 2)
REPE	  CMPSB     //   .

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 1310h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 1310h	  // :
				  //3h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      
	  MOV	   EAX, OFFSET SzGrfSc1  //  .
	  CMC	    //    
	  CLD	    // 
REPE	  SCASB     //    .
	  AAD	    //  ,     
		    // .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 1310h	//3h - //10h -  .
	  MOV	    AL, 0Dh	//Dh -    .
	  MOV	   EBX, (2 * 2) + (320 * 200)  // .
	  MOV	   ECX, OFFSET SzGrfSc1   // 
					  // (320 * 200 * 2)
	  MOV	   EAX, 0   //     .
	  MOV	   EBX,EDX	//    .
	  DEC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET	SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  //  640 x 200 , 16 
	  //   ES  
Scr14:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //2h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 12h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET SizeBuff  //.  
					 // - 64 .
	  OUT	    10h, AL	  //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,   640 x 400
	  //   640 x 200 .
	  // - 12h     .
	  MOV	    AH, 12h    // 12h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 1210h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 1      //     .
	  MOV	   EBX, (1 * 1) + (640 * 400)  // .
	  MOV	   EBX,EAX	   //  .
	  MOV	   ECX, OFFSET SzGrfSc5  // 
					 // (640 * 400 * 2)
	  //     .
	  MOV	    CH, 01h    //  
	  MOV	    CL, 80h    //  
	  MOV	    DH, 25h    //  
	  SUB	    DH, 12h    //     .
	  DAA	    //  
	  SUB	   EDX, 0200h  //     .
	  MOV	    DL, 80h    //  
	  AAA	    //,    .
	  MOV	   EBX, (1 * 1) + (640 * 200)  //  .
	  MOV	   EBX,EAX     //   .
	  DEC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, OFFSET	SzGrfSc2  // 
					 // (640 * 200 * 2)
REPE	  CMPSB     //   .

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 1210h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 1210h	  // :
				  //2h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      
	  MOV	   EAX, OFFSET SzGrfSc2  //  .
	  CMC	    //    
	  CLD	    // 
REPE	  SCASB     //    .
	  AAD	    //  ,     
		    // .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 1210h	//2h - //10h -  .
	  MOV	    AL, 0Eh	//Eh -    .
	  MOV	   EBX, (1 * 1) + (640 * 200)  // .
	  MOV	   ECX, OFFSET SzGrfSc2   // 
					  // (640 * 200 * 2)
	  MOV	   EAX, 0   //     .
	  MOV	   EBX,EDX	//    .
	  DEC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  //  640 x 350 , 2 
	  //   ES  
Scr15:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //2h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 12h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET SizeBuff  //.  
					 // - 64 .
	  OUT	    10h, AL	  //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,   640 x 400
	  //   640 x 200 .
	  // - 12h     .
	  MOV	    AH, 12h    // 12h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 1210h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 0  //     .
	  MOV	   EBX, (1 * 1) + (640 * 400)  // .
	  MOV	   EBX,EAX	   //  .
	  MOV	   ECX, OFFSET SzGrfSc5  // 
					 // (640 * 400 * 2)
	  //     .
	  MOV	    CH, 01h    //  
	  MOV	    CL, 80h    //  
	  MOV	    DH, 25h    //  
	  SUB	    DH, 03h    //     .
	  DAA	    //  
	  SUB	   EDX, 0050h  //     .
	  MOV	    DL, 80h    //  
	  AAA	    //,    .
	  MOV	   EBX, (1 * 1) + (640 * 350)  //  .
	  MOV	   EBX,EAX    //   .
	  DEC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, OFFSET SzGrfSc3  // 
					 // (640 * 350 * 2)
REPE	  CMPSB     //   .

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 1210h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 1210h	  // :
				  //2h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      
	  MOV	   EAX, OFFSET SzGrfSc3  //  .
	  CMC	    //    
	  CLD	    // 
REPE	  SCASB     //    .
	  AAD	    //  ,     
		    // .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 1210h	//2h - //10h -  .
	  MOV	    AL, 0Fh	//Fh -    .
	  MOV	   EBX, (1 * 1) + (640 * 350)  // .
	  MOV	   ECX, OFFSET SzGrfSc3   // 
					  // (640 * 350 * 2)
	  MOV	   EAX, 0   //     .
	  MOV	   EBX,EDX	//    .
	  DEC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  //  640 x 350 , 16 
	  //   ES  
Scr16:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //2h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 12h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET SizeBuff  //.  
					 // - 64 .
	  OUT	    10h, AL	  //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,   640 x 400
	  //   640 x 200 .
	  // - 12h     .
	  MOV	    AH, 12h    // 12h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 1210h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 0  //     .
	  MOV	   EBX, (1 * 1) + (640 * 400)  // .
	  MOV	   EBX,EAX	   //  .
	  MOV	   ECX, OFFSET SzGrfSc5  // 
					 // (640 * 400 * 2)
	  //     .
	  MOV	    CH, 01h    //  
	  MOV	    CL, 80h    //  
	  MOV	    DH, 25h    //  
	  SUB	    DH, 03h    //     .
	  DAA	    //  
	  SUB	   EDX, 0050h  //     .
	  MOV	    DL, 80h    //  
	  AAA	    //,    .
	  MOV	   EBX, (1 * 1) + (640 * 350)  //  .
	  MOV	   EBX,EAX  //   .
	  DEC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, OFFSET SzGrfSc3  // 
					 // (640 * 350 * 2)
REPE	  CMPSB     //   .

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 1210h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 1210h	  // :
				  //2h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      
	  MOV	   EAX, OFFSET SzGrfSc3  //  .
	  CMC	    //    
	  CLD	    // 
REPE	  SCASB     //    .
	  AAD	    //  ,     
		    // .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 1210h	//2h - //10h -  .
	  MOV	    AL, 10h	//0h -    .
	  MOV	   EBX, (1 * 1) + (640 * 350)  // .
	  MOV	   ECX, OFFSET SzGrfSc3   // 
					  // (640 * 350 * 2)
	  MOV	   EAX, 1   //     .
	  MOV	   EBX,EDX	//    .
	  DEC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  //  640 x 480 , 2 
	  //   ES  
Scr17:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //2h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 12h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET	SizeBuff  //.  
					 // - 64 .
	  OUT	    10h, AL	  //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,   640 x 400
	  //   640 x 480 .
	  // - 12h     .
	  MOV	    AH, 12h    // 12h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 1210h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 1  //     .
	  MOV	   EBX, (1 * 1) + (640 * 400)  // .
	  MOV	   EBX,EAX	   //  .
	  MOV	   ECX, OFFSET SzGrfSc5  // 
					 // (640 * 400 * 2)
	  //     .
	  MOV	    CH, 01h    //  
	  MOV	    CL, 80h    //  
	  MOV	    DH, 25h    //  
	  ADD	    DH, 04h    //     .
	  DAA	    //  
	  ADD	    DH, 0080h  //     .
	  MOV	    DL, 80h    //  
	  AAA	    //,    .
	  MOV	   EBX, (1 * 1) + (640 * 480)  //  .
	  MOV	   EBX,EAX  //   .
	  INC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, OFFSET	SzGrfSc4  // 
					 // (640 * 480 * 2)
REPE	  CMPSB     //   .

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 1210h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 1210h	  // :
				  //2h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      
	  MOV	   EAX, OFFSET SzGrfSc4  //  .
	  CMC	    //    
	  CLD	    // 
REPE	  SCASB     //    .
	  AAD	    //  ,     
		    // .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 1210h	//2h - //10h -  .
	  MOV	    AL, 11h	//1h -    .
	  MOV	   EBX, (1 * 1) + (640 * 480)  // .
	  MOV	   ECX, OFFSET SzGrfSc4   // 
					  // (640 * 480 * 2)
	  MOV	   EAX, 0   //     .
	  MOV	   EBX,EDX	//    .
	  DEC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  //  640 x 480 , 16 
	  //   ES  
Scr18:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //2h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 12h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET SizeBuff  //.  
					 // - 64 .
	  OUT	    10h, AL	  //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,   640 x 400
	  //   640 x 480 .
	  // - 12h     .
	  MOV	    AH, 12h    // 12h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 1210h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 0    //     .
	  MOV	   EBX, (1 * 1) + (640 * 400)  // .
	  MOV	   EBX,EAX	   //  .
	  MOV	   ECX, OFFSET SzGrfSc5  // 
					 // (640 * 400 * 2)
	  //     .
	  MOV	    CH, 01h    //  
	  MOV	    CL, 80h    //  
	  MOV	    DH, 25h    //  
	  ADD	    DH, 04h    //     .
	  DAA	    //  
	  ADD	    DH, 0080h  //     .
	  MOV	    DL, 80h    //  
	  AAA	    //,    .
	  MOV	   EBX, (1 * 1) + (640 * 480)  //  .
	  MOV	   EBX,EAX  //   .
	  INC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, OFFSET SzGrfSc4  // 
					 // (640 * 480 * 2)
REPE	  CMPSB     //   .

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 1210h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 1210h	  // :
				  //2h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      
	  MOV	   EAX, OFFSET SzGrfSc4  //  .
	  CMC	    //    
	  CLD	    // 
REPE	  SCASB     //    .
	  AAD	    //  ,     
		    // .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 1210h	//2h - //10h -  .
	  MOV	    AL, 12h	//2h -    .
	  MOV	   EBX, (1 * 1) + (640 * 480)  // .
	  MOV	   ECX, OFFSET SzGrfSc4   // 
					  // (640 * 480 * 2)
	  MOV	   EAX, 0     //     .
	  MOV	   EBX,EDX	//    .
	  DEC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

	  //  320 x 200 , 256 
	  //   ES  .
Scr19:	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //     
	  //    
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 2      //   
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h	//   0  ASCII
	  MOV	   ECX, 2 * 16	//   

	  //   .
	  MOV	   EDX, 3C4h	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
				  //
	  MOV	    AL, 0Fh	  //  ( )
	  db	   238	//UT	  EDX, AL	 //  

	  //  .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 8	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3CFh -  
	  MOV	    AL, 0FFh	  //   
	  db	   238	//UT	  EDX, AL	 //  
	  // .
	  MOV	   EDX, RezerfSub2  //   
	  MOV	   ECX, 32	    //    
				    //  .
REP	  STOSB     //
	  //     
	  // 
	  MOV	   EDX, 3CEh	  //  
	  MOV	   EAX, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  

	  //   16-    
	  //.   ,  .  
	  //      
	  //      .
	  MOV	   EDX, 3CEh   //  
	  MOV	   EAX, 2      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  ADC	    AH, 00h    //, 
			       //   
	  AAA	    //    

	  // ()
	  MOV	   EBX, 00h    //  
	  MOV	   EAX, OFFSET Color0 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette0
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 01h    //  
	  MOV	   EAX, OFFSET	Color1 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette1
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 02h    //  
	  MOV	   EAX, OFFSET Color2 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette2
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 03h    //  
	  MOV	   EAX, OFFSET Color3 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette3
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 04h    //  
	  MOV	   EAX, OFFSET Color4 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette4
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 05h    //  
	  MOV	   EAX, OFFSET Color5 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette5
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 06h    //  
	  MOV	   EAX, OFFSET Color6 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette6
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 07h    //  
	  MOV	   EAX, OFFSET Color7 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette7
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // (-)
	  MOV	   EBX, 08h    // - 
	  MOV	   EAX, OFFSET Color8 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette8
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // (-)
	  MOV	   EBX, 09h    // - 
	  MOV	   EAX, OFFSET Color9 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette9
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // (-)
	  MOV	   EBX, 10h    // - 
	  MOV	   EAX, OFFSET Color10 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette10
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // (-)
	  MOV	   EBX, 11h    // - 
	  MOV	   EAX, OFFSET Color11 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette11
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 12h    //  
	  MOV	   EAX, OFFSET Color12 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette12
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 13h    //  
	  MOV	   EAX, OFFSET Color13 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette13
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 14h    //  
	  MOV	   EAX, OFFSET Color14 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette14
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 15h    //  
	  MOV	   EAX, OFFSET Color15 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette15
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ,    
	  //    
	  //   
	  //  ,  
	  //      
	  //    .
	  //3h -    , 
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	 EBX, 13h   //    .
	  PUSH	 EBX	    //  EBX 
			    //    .
	  CLD		    // .
REP	  STOSB 	    //.
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0


	  //    
	  //  .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //   
	  //    
	  //,     , 
	  //  .
	  MOV	   ECX, OFFSET	SizeBuff  //.  
					 // - 64 .
	  OUT	    10h, AL	  //     
	  OUT	    10h, AL	  //   ,   
	  OUT	    10h, AL	  //     ()
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  OUT	    10h, AL	  //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  POP	    DS		  //  
	  POP	    ES		  //

	  //   
	  // ,  .  
	  // ,    
	  //    
	  //  .  
	  //    
	  //    .
	  //  ,    320 x 200
	  // - 13h     .
	  MOV	    AH, 13h    // 13h  .
	  MOV	    ES,EAX     //   .
	  MOV	   EAX, 1310h  //  .
	  PUSH	   EAX	       //  EAX.
	  POP	   ECX	       // ECX   .
	  MOV	    AL, 00h    //  .
	  MOV	   EAX, 0  //     .
	  MOV	   EBX, (2 * 2) + (320 * 200)  // .
	  MOV	   EBX,EAX	       //  .
	  //     .
	  MOV	    CH, 01h    //  
	  MOV	    CL, 40h    //  
	  MOV	    DH, 25h    //  
	  MOV	    DL, 40h    //  
	  AAA	    //,    .
	  MOV	   EBX, (2 * 2) + (320 * 200)  //  .
	  MOV	   EBX,EAX  //   .
	  DEC	   EDX	      //   EDX
	  NEG	   EDX	      //    EDX
	  MOV	   ECX, OFFSET SzGrfSc1  // 
					 // (320 * 200 * 2)
REPE	  CMPSB     //   .

	  //     
	  //,    
	  //      .
	  MOV	    ECX, 9999h //     .
	  CMP	    CL, 0  //      .
	  XOR	    CH, CH	  //ECX = CL   .
	  MOV	   EDI, 0000h	  //S:DI ->   PSP
	  MOV	   EBX, 1310h	  //    
	  MOV	   EBX,ESI	  //    -
	  MOV	   ESI, 1310h	  // :
				  //3h -  
				  //0h -   
	  XCHG	    AL, AH	  //  .
	  AAA	    //  .
	  MOV	   EAX,ESI	      
	  MOV	   EAX, OFFSET SzGrfSc1  //  .
	  CMC	    //    
	  CLD	    // 
REPE	  SCASB     //    .
	  AAD	    //  ,     
		    // .

	  //      
	  //  ,   
	  //  .
	  PUSH	   ECX		//   .
	  POP	   EDX		//,   .
	  MOV	   EAX, 1310h	//3h - //10h -  .
	  MOV	    AL, 13h	//3h -    .
	  MOV	   EBX, (2 * 2) + (320 * 200)  // .
	  MOV	   ECX, OFFSET SzGrfSc1   // 
					  // (320 * 200 * 2)
	  MOV	   EAX, 0   //     .
	  MOV	   EBX,EDX	//    .
	  DEC	   EDX		//   EDX
	  NEG	   EDX		//    EDX
	  CLD	    // 
REP	  STOSB     //,   .

	  //   
	  //   
	  // .
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  MOV	    ES,EAX
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 0      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0


	  //    
	  // .
	  // ,     
	  OUT	    10h, AL	
	  MOV	   ECX, OFFSET SizeBuff //.  
					// - 64 .
	  //     
	  IN	    AL, 10h	//     
	  IN	    AL, 10h	//   ,   
	  IN	    AL, 10h	//     ()
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  IN	    AL, 10h	//
	  CLD	    // 
REP	  STOSB     //  
		    // 

	  //    ,
	  //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSW     //   ,  
		    //.
	  //   
	  JMP	   QuitSub

QuitSub:
	  //ET	    //  
	   JMP	      ScNxt
//RAPH	   ENDP
//ntr10hLen   =   $ - Intr10h
//   INT 10h
//    


GraphSc1:
	  //     .
	  //   ES  
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //   0
	  MOV	   EDX, 3CEh   //   
	  MOV	   AL,	5   //  
	  db	   238	//UT	  EDX, EAX    //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	   AL, 0       //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h	  //   0  ASCII
	  MOV	   ECX, 80 * 175  //   
	  //   .
	  //   .
	  MOV	   EDX, 3C4h	  //  
	  MOV	   AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
				  //
	  MOV	    AL, 0Fh	  //  ( )
	  db	   238	//UT	  EDX, AL	 //  
	  //  .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 8	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3CFh -  
	  MOV	    AL, 0FFh	  //   
	  db	   238	//UT	  EDX, AL	 //  
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0
	  //,   .
	  // .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
	  MOV	    AL, 1	  //
	  db	   238	//UT	  EDX, AL	 // 
	  //  .
	  //OV	     BYTE PTR ES:[BX], 95
	  //    
	  JMP	     ScNxt


GraphSc2:
	  //     .
	  //   ES  
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // 
	  PUSH	   EAX
	  PUSH	   EBX
	  PUSH	   ECX
	  PUSH	   EDX
	  //   
	  //  ,   
	  MOV	    AH, 00h	
	  MOV	    AL, 0
	  MOV	   EAX, 0000h				   
	  MOV	    ES,EAX
	  //OV	     ES:0,EAX	  //   
	  MOV	    ES,EBX     // 
	  MOV	    AH, 00h	
	  MOV	    AL, 0	  //  
	  MOV	   EBX, 0	 //   
	  MOV	   EBX,EAX
	  MOV	   ESI, 0000h	 // 
	  MOV	   EDI, 0000h	 //  
	  MOV	   ECX, 0000h	 // 
REP	  STOSB     //     
	  MOV	    AL, 00
	  MOV	    DS,EAX
	  MOV	   EAX, 0B800h	// 
	  MOV	    ES,EAX
	  MOV	   EDI, 0000h	//  
	  MOV	   ESI, atd5	// 
	  MOV	   ECX, 0000h	//  
REP	  MOVSB     //   
	  // 
	  POP	   EAX
	  POP	   EBX
	  POP	   ECX
	  POP	   EDX
	  //    
	  JMP	     ScNxt


GraphSc3:
	  //     .
	  //   ES  
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  MOV	   EAX, 0100	  // 01h  
	  //   0
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h	  //   0  ASCII
	  MOV	   ECX, 80 * 175  //   
	  //   .
	  MOV	   EDX, 3C4h	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
				  //
	  MOV	    AL, 0Fh	  //  ( )
	  db	   238	//UT	  EDX, AL	 //  
	  //  .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 8	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX
	  //   
	  AAM
	  IMUL	   EDX
	  AAA
	  ADD	   EDX, 00h   
	  //   
	  MOV	    AL, 0FFh	  
	  db	   238	//UT	  EDX, AL
	  INC	   EDX
	  AAS
	  SUB	   EDX, 00h
	  AAD
	  IDIV	    EDX
	  //  .
	  //OV	     BYTE PTR ES:[BX], 95
	  //    
	  JMP	     ScNxt

GraphSc4:
	  //   ,  
	  // ,    INT 10h.
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  MOV	   EAX, 0400h  // 04h  
	  //   16-  
	  // 
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 2      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   238	//UT	  EDX, AL     // 
	  //  , 
	  // 16-    
	  // 
	  MOV	   ECX, 000Fh  //    16
	  OUT	    10h, AL    //
	  OUT	    10h, AL    //
	  OUT	    10h, AL    //
	  OUT	    10h, AL    //
	  OUT	    10h, AL    //
	  OUT	    10h, AL    //
	  OUT	    10h, AL    //
	  OUT	    10h, AL    //
	  OUT	    10h, AL    //
	  OUT	    10h, AL    //0
	  OUT	    10h, AL    //1
	  OUT	    10h, AL    //2
	  OUT	    10h, AL    //3
	  OUT	    10h, AL    //4
	  OUT	    10h, AL    //5
	  OUT	    10h, AL    //6
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  //  256-    
	  //  16-    1-  
	  //  .    16 x 16 = 256.
SetClr0:  MOV	   ECX, 16     // ,  16   
			       //,     256-
			       //.
	  DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color0 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr0 //   .

SetClr1:  MOV	   ECX, 16     // ,   16 . 
	  DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color1 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr1 //   .

SetClr2:  MOV	   ECX, 16     // ,   16 . 
	  DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color2 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr2 //   .

SetClr3:  MOV	   ECX, 16     // ,   16 . 
	  DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color3 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr3 //   .

SetClr4:  MOV	   ECX, 16     // ,   16 . 
	  DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color4 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr4 //   .
	  
SetClr5:  MOV	   ECX, 16     // ,   16 . 
	  DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color5 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr5 //   .

SetClr6:  MOV	   ECX, 16     // ,   16 . 
	  DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color6 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr6 //   .

SetClr7:  MOV	   ECX, 16     // ,   16 . 
	  DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color7 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr7 //   .

SetClr8:  MOV	   ECX, 16     // ,   16 . 
	  DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color8 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr8 //   .

SetClr9:  MOV	   ECX, 16     // ,   16 . 
	  DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color9 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr9 //   .

SetClr10: MOV	   ECX, 16     // ,   16 . 
	  DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color10 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr10 //   .

SetClr11: MOV	   ECX, 16     // ,   16 . 
	  DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color11 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr11 //   .

SetClr12: MOV	   ECX, 16     // ,   16 . 
	  DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color12 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr12 //   .

SetClr13: MOV	   ECX, 16     // ,   16 . 
	  DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color13 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr13 //   .

SetClr14:
	  DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color14 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr14 //   .

SetClr15: DAA	    //   
	  MOV	   EBX, 0014h  // ,  .
	  MOV	   ECX, 4      //   4- .
	  MOV	   EDX, OFFSET Color15 //    .
	  ADC	    DL, 01h    //    1 ,  .
	  MOV	   EDX, OFFSET PlusClr	   //    .
	  INC	   EDX	       //    .
	  AAA	    //,    .
	  AAD	    //       . 
	  CBW	    //     .
	  LOOPZ     SetClr15 //   .
	  
	  //   16  16  256.
	  LODSB 	     //   
	  MOV	    CH, 255  //  256 .
	  CLD	    // 
REP	  STOSB     //    
		    //.
	  //  256-   
	  // .
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EDX, 3CEh   //  
	  MOV	    AL, 2      //  
	  db	   236	//N	   AL,EDX     //  
	  INC	   EDX	       //X = 3C5h -  
	  MOV	    AL, 0      // 
	  db	   236	//N	   AL,EDX     // 
	  //  , 
	  // 256-    
	  // .  ,
	  // 8-  , 
	  //     ,
	  //  .
	  MOV	   ECX, 00FFh  //    256
	  IN	    AL, 10h    //      :
	  IN	    AL, 10h    //	     8
	  IN	    AL, 10h    //
	  IN	    AL, 10h    //
	  IN	    AL, 10h    //
	  IN	    AL, 10h    //
	  IN	    AL, 10h    //
	  IN	    AL, 10h    //
	  CLD	    // 
REP	  STOSB     //  
		    // 
	  //    
	  JMP	    ScNxt

GraphSc5:
	  // .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //   .
	  //  ,   
	  //   .
Cistka:   MOV	   ECX, 50     // 50  .
	  MOV	   EDI, 0001h  //   .
	  MOV	   ESP, 80H    //  .
	  MOV	   ESI, SpeedStr  //   .
	  LOOPZ     Cistka     //   .
	  MOV	    CH, 80     //.    .
	  MOV	   ECX, 50     //.    .
	  CLD	    //  
REP	  MOVSB     //aa ca
	  //e    ,
	  //    , 
	  //   .
SpeedStr  dd	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	  dd	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
//peedStrLen	  =	 $ - SpeedStr
	  //    
	  JMP	     ScNxt


GraphSc6:
	  //    .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //    
	  //,    
	  //    .   
	  //  . ,  
	  //    .
	  MOV	   EDI, 0000h  //  
			       //  
			       //  .
	  PUSH	    DS	       // ES  
	  POP	    ES	       // .
	  MOV	   ECX, 0280h  //40 -   
			       //    .
	  AAS	    //     .
	  SUB	   EDI, 99h    //  EDI  .
	  DAS	    //     .
	  SBB	   EDI, 99h    //  EDI 
			       //   .
	  SBB	   ECX, 0560h  //     ECX.
			       //    640. 0480 = 1280.
	  DEC	   EDI	       //  ,  
	  DEC	   ECX	       //EDI ECX  .
	  DAS	    //    , 
		    //   .
	  AAS	    //  .    .
	  NEG	   EDI	       //   
	  NEG	   ECX	       //  EDI ECX.
	  //     .
	  //ECX , a EDI  .
	  PUSH	   ECX
	  POP	   EDI
	  CLD	    //,     
		    //.
REP	  MOVSB     //     .
	  //    
	  JMP	     ScNxt


GraphSc7:
	  //    .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //    
	  //,    
	  //     .  ,
	  // ,       
	  // ,  .
	  MOV	   EDI, 9999h  //   .   
	  PUSH	    DS	       // ES  
	  POP	    ES	       // .
	  MOV	   ECX, 0280h  //40 -   
			       //    .
	  AAA	    //     .
	  ADD	   EDI, 99h    //  EDI  .
	  DAA	    //     .
	  ADC	   EDI, 99h    //  EDI 
			       //   .
	  ADC	   ECX, 0560h  //    ECX.
			       //    640. 0480 = 1280.
	  INC	   EDI	       //  ,  
	  INC	   ECX	       //EDI ECX .
	  DAS	    //    .
	  AAA	    //  .    .
	  NOT	   EDI	       //   
	  NOT	   ECX	       //  EDI ECX.
	  //     .
	  //ECX , a EDI  .
	  PUSH	   ECX
	  POP	   EDI
	  CLD	    //,     
		    //.
REP	  MOVSB     //     .
	  //    
	  JMP	     ScNxt

GraphSc8:
	  //       .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //   0
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h	  //   0  ASCII
	  MOV	   ECX, 80 * 175  //   
	  //   .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
	  //  .
	  //OV	     BYTE PTR ES:[BX], 0FFh
	  INC	   EBX	     //  
	  //    
	  JMP	     ScNxt

GraphSc9:
	  //       .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //   0
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EBX, 0000h	  //   0  ASCII
	  MOV	   ECX, 80 * 175  //   
	  //   .
	  MOV	   EDX, 3C4h	  //  
	  MOV	    AL, 2	  //  
	  db	   236	//N	   AL,EDX	 //  
	  INC	   EDX		  //X = 3C5h -  
				  //
	  MOV	    AL, 0Fh	  //  ( )
	  db	   236	//N	   AL,EDX	 //  
	  //  .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 8	  //  
	  db	   236	//N	   AL,EDX	 //  
	  INC	   EDX		  //X = 3CFh -  
	  MOV	    AL, 0FFh	  //   
	  db	   236	//N	   AL,EDX	 //  
	  // .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 2	  //  
	  db	   236	//N	   AL,EDX	 //  
	  INC	   EDX		  //X = 3C5h -  
	  MOV	    AL, 0	  // 
	  db	   236	//N	   AL,EDX	 // 
	  //  .
	  //OV	     BYTE PTR ES:[BX], 0
	  INC	   EBX	     //  
	  //    
	  JMP	     ScNxt


GraphSc10:
	  // ,     .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //   0
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EBX, 0000h	  //   0  ASCII
	  MOV	   ECX, 80 * 175  //   
	  //  .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 8	  //  
	  db	   236	//N	   AL,EDX	 //  
	  INC	   EDX		  //X = 3CFh -  
	  MOV	    AL, 0FFh	  //   
	  db	   236	//N	   AL,EDX	 //  
	  //  .
	  //OV	     BYTE PTR ES:[BX], 0
	  INC	   EBX	     //  
	  //    
	  JMP	    ScNxt


GraphSc11:
	  //     ,
	  //  ,  Windows, Linix,
	  //S/2  Unix    
	  // BIOS  DOS.
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //    
	  // ,   
	  // ROM BIOS
RezerfSub:	    db	 96  Dup   (?)
	  //    
	  JMP	    ScNxt

GraphSc12:
	  //   .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //   0
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //   .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
	  //    .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSB     //     .
	  //    
	  JMP	     ScNxt

GraphSc13:
	  //   .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //   0
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0001h  // 
	  //   .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 2	  //  
	  db	   236	//N	   AL,EDX	 //  
	  INC	   EDX		  //X = 3C5h -  
	  //      .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    // .
REP	  STOSB     //   .
	  //    
	  JMP	     ScNxt

GraphSc14:
	  //    .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //   0
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  MOV	   EBX, 0000h  //   0  ASCII
	  MOV	   ECX, 0002h  // .   
			       //,    .
	  //   .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 2	  //  
	  db	   236	//N	   AL,EDX	 //  
	  INC	   EDX		  //X = 3C5h -  
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSB     // 2-   .  
	  //    
	  JMP	    ScNxt

GraphSc15:
	  // ,    .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //    /
	  //   ( ).
	  //   ,  
	  // IOS,  ,    
	  //  ,   .
	  CLI	  // .
	  PUSHF   //oxpa a   IRET.
	  MOV	  AH, 10h    //    10h
	  MOV	 EBX, 00h    // 10h   
	  MOV	 ECX, 0002   //ideoVectLen
	  MOV	 EDX, VideoVect   //   
	  MOV	 EDX, 0010h	  //   
	  CLD	  // 
REP	  STOSB   //  10h  
	  // IOS    10
	  PUSH	  DS	   //ode begin the execute program
	  PUSH	 EAX
	  PUSH	 ECX
	  MOV	 EAX,0040H
	  MOV	  DS,EAX
	  MOV	  AL,10H
	  MOV	  AL,10H
	  MOV	  AL,10H
	  OUT	  20,AL
	  OUT	  225,AL
	  IN	  AL,20
	  OUT	  225,AL
	  MOV	  AH,AL
	  OR	  AL,AL
	  JZ	  VdSb1
	  MOV	  AL,10h
	  OUT	  160,AL
	  MOV	  AL,10h
	  OUT	  225,AL
	  MOV	  AL,10h
	  OUT	  245,AL
	  IN	  AL,160
	  OUT	  225,AL
	  MOV	  CL,AL
	  OR	  AL,AL
	  JZ	  VdSb2
	  IN	  AL,161
	  OUT	  225,AL
	  OR	  AL,CL
	  OUT	  161,AL
	  OUT	  225,AL
	  MOV	  AL,20
	  OUT	  160,AL
	  JB	  VdSb4
VdSb2:	  IN	  AL,21
	  OR	  AL,AH
	  OUT	  225,AL
	  AND	  AL,251
	  OUT	  21,AL
	  IN	  AL,10h
VdSb4:	  MOV	  AL,20
	  OUT	  225,AL
	  MOV	 EAX,20
	  OUT	  20,AL
	  JB	  VdSb3
VdSb1:	  MOV	 EAX, 0000h
VdSb3:	  MOV	  AH, 0000h
	  IN	  AL, 10h
	  POP	 ECX
	  POP	 EAX
	  POP	 EDX
	  //   
	  // ,   
	  //    
	  XCHG	  AL, DH   //  AL 
			   //  DH.
	  SAHF		   // AH   .
	  INC	  DH	   // 
			   //  .
	  XOR	  DH, BH   //  
			   //  .
	  PUSH	  DS	   // 
	  POP	  ES	   //   .
	  MOV	 ECX, 128  //   
			   //   128 .
	  MOV	 EBX, 1    // 
	  CLD	  // 
REP	  STOSB   //,    
		  //   , 
		  // .
	  STC	  //   .
	  //    
	  JMP	     ScNxt
VideoVect	     dw    0   //   .
//ideoVectLen	      =   $ - VideoVect


GraphSc16:
	  //       .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //   0
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  //   .
	  //   .
	  MOV	   EDX, 3C4h	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
				  //
	  MOV	    AL, 0Fh	  //  ( )
	  db	   238	//UT	  EDX, AL	 //  
	  //  .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 8	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3CFh -  
	  MOV	    AL, 0FFh	  //   
	  db	   238	//UT	  EDX, AL	 //  
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0
	  // .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
	  MOV	   EAX,EDX	  // (,  )
	  db	   238	//UT	  EDX, AL	 // 

	  //   .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 2	  //  
	  db	   236	//N	   AL,EDX	 //  
	  INC	   EDX		  //X = 3C5h -  
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    //  
REP	  MOVSB     //    
	  //    
	  JMP	     ScNxt

GraphSc17:
	  //  .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //     8 x 14
	  MOV	    BH, 14     // 14 
	  MOV	    BL, 0      // 0 
	  MOV	   ECX, 256    //   
	  MOV	   EDX, 00h    //  
REP	  STOSB     //    ,
		    //    

	  //    8 x 14.
	  MOV	  AH, 11h   // 11h -  8 x 14
	  MOV	  AL, 1     //    	    
	  MOV	  CH, 0     //  	  
	  MOV	  CL, 255   //  	     
	  MOV	  DH, 1     //  
	  MOV	  DL, 14    //  	 
	  PUSH	  DS	    // 
	  POP	  ES	    // 
	  ////MOV    ECX, FontLoadLen //  .
	  ////LEA    EDX, FontLoad    //  
				      //    256-
				      //.
	  MOV	  DL, 14    //    14 
	  //DIV    EDX	      //  14
	  AAD		    //  .
	  SHR	  DL, 1     //    
			    //   .
	  AAA		    //   .
	 
	  //    
	  // 8 x 14
	  MOV	    BH, 14     // 14 
	  MOV	   EBX, 1      //  (8 )  
	  MOV	    BL, 0      // 0 
	  MOV	   ECX, 256    //   
	  MOV	   EDX, 00h    //  
	  CLD	    // 
REP	  CMPSB     //

	  //    
	  // ()   
	  //  ,   
	  //  IOS,    BIOS  DOS
	  ADC	    DL, 1    // , 
			     // .
	  SAR	    DL, 1    //   
			     // .
	  AAA	    // .
	  CLD	    //  .
	  MOV	   ESI, 0    // ASCII   !
	  MOV	    DL, 1    //  
	  MOV	   ECX, 1    //   
REP	  MOVSB     //    
	  //    
	  JMP	     ScNxt


GraphSc18:
	  // 12h -     
	  //56  .      DOS 
	  //IOS ,  ,   
	  //  320 x 200 .    , -
	  //     12h
	  //NT 10h. ,   ,    ,
	  //,  VEGA.
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //     
	  //    
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 2      //   
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h	//   0  ASCII
	  MOV	   ECX, 2 * 16	//   

	  //   .
	  MOV	   EDX, 3C4h	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
				  //
	  MOV	    AL, 0Fh	  //  ( )
	  db	   238	//UT	  EDX, AL	 //  

	  //  .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 8	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3CFh -  
	  MOV	    AL, 0FFh	  //   
	  db	   238	//UT	  EDX, AL	 //  
	  // .
	  MOV	   EDX, RezerfSub2  //   
	  MOV	   ECX, 32	    //    
				    //  .
REP	  STOSB     //
	  //     
	  // 
	  MOV	   EDX, 3CEh	  //  
	  MOV	   EAX, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  

	  //   16-    
	  //.   ,  .  
	  //      
	  //      .
	  MOV	   EDX, 3CEh   //  
	  MOV	   EAX, 2      //  
	  db	   238	//UT	  EDX, AL     //  
	  INC	   EDX	       //X = 3C5h -  
	  ADC	    AH, 00h    //, 
			       //   
	  AAA	    //    

	  // ()
	  MOV	   EBX, 00h    //  
	  MOV	   EAX, OFFSET Color0 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette0
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 01h    //  
	  MOV	   EAX, OFFSET Color1 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette1
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 02h    //  
	  MOV	   EAX, OFFSET Color2 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette2
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 03h    //  
	  MOV	   EAX, OFFSET Color3 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette3
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 04h    //  
	  MOV	   EAX, OFFSET Color4 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette4
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 05h    //  
	  MOV	   EAX, OFFSET Color5 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette5
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 06h    //  
	  MOV	   EAX, OFFSET Color6 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette6
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 07h    //  
	  MOV	   EAX, OFFSET Color7 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette7
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // (-)
	  MOV	   EBX, 08h    // - 
	  MOV	   EAX, OFFSET Color8 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette8
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // (-)
	  MOV	   EBX, 09h    // - 
	  MOV	   EAX, OFFSET Color9 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette9
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // (-)
	  MOV	   EBX, 10h    // - 
	  MOV	   EAX, OFFSET Color10 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette10
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // (-)
	  MOV	   EBX, 11h    // - 
	  MOV	   EAX, OFFSET Color11 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette11
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 12h    //  
	  MOV	   EAX, OFFSET Color12 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette12
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 13h    //  
	  MOV	   EAX, OFFSET Color13 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette13
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 14h    //  
	  MOV	   EAX, OFFSET Color14 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette14
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  // ()
	  MOV	   EBX, 15h    //  
	  MOV	   EAX, OFFSET Color15 //   
	  MOV	   ECX, 4      // ,   
	  ADD	   EAX, 00h    //  
	  INC	   EAX	       //
	  ADC	   EAX, 00h    //   
	  db	   238	//UT	  EDX,EAX     // 
	  NOT	   EAX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //  16-      
	  //  .
	  MOV	   EBX, OFFSET Palette15
	  MOV	   ECX, 16     // 16-  
	  ADD	   EBX, 00h    //  
	  INC	   EBX	       //
	  ADC	   EBX, 00h    //   
	  db	   238	//UT	  EDX,EAX     //    
	  NOT	   EBX	       //  
	  CBW	    //    
REP	  STOSB     //   

	  //   
	  JMP	     ColorRet
	  //    
	  // ,   
	  // ROM BIOS
RezerfSub2:	     db     32	Dup   (?)
//ezerfSub2Len	      =    $ - RezerfSub2
	  //    
ColorRet: JMP	     ScNxt



GraphSc19:
	  //    .
	  //   0
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   236	//N	   AL,EDX     //   
			       //
	  PUSH	    DS	       //  
	  POP	    ES	       //  .
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   236	//N	   AL,EDX     //  
	  //   .
	  //   .
	  MOV	   EDX, 3C4h	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
				  //
	  MOV	    AL, 0Fh	  //  ( )
	  db	   238	//UT	  EDX, AL	 //  
	  //  .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 8	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3CFh -  
	  MOV	    AL, 0FFh	  //   
	  db	   238	//UT	  EDX, AL	 //  
	  //    .
	  MOV	   EDI, 0000h	 //  
	  MOV	   ESI, 0000h	 // .
	  //OV	     BYTE PTR ES:[BX], 00Fh
	  INC	   EBX	     //  
	  CLD	    // 
REP	  MOVSW     //   
	  //    
	  JMP	     ScNxt

GraphSc20:
	  // .
	  //     ,
	  //    ROM BIOS
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //    ,
	  //  96-   EDX.
	  MOV	   EDX, RezfSub3
	  //   ,   
	  // .
RezfSub3:	    db	 96  Dup   (?)
	  //    
	  JMP	    ScNxt

GraphSc21:
	  //    ,
	  //    ROM BIOS
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // ,    
	  // .
	  MOV	   EDX, 0010h	// 
	  MOV	    AL, 11h	//1:  3
	  db	   238	//UT	  EDX, AL      //   .
	  INC	   EAX		//EAX  , 
				//  .
	  MOV	    AL, 10h	//   .
	  db	   238	//UT	  EDX, AL      //,     
				// .
	  //   .
	  MOV	     EDX, 0010h     //  
	  MOV	      AL, 0	    //  0
	  db	   238	//UT	    EDX, AL	   //  
	  MOV	     EBX, 0000h     //   0  ASCII
	  MOV	     ECX, 0001h     //  
	  INC	     EDX	    //X = 0008h -  .
	  IN	      AL, 10h	    //  
	  IN	      AL, 10h	    //   
	  IN	      AL, 10h	    
	  CMP	     ECX, 1	    // 3  
	  OUT	      17h, AL	    //   
	  OUT	      17h, AL	    //  .
	  OUT	      17h, AL	    
	  CMP	     ECX, 1	    // 1   
	  
	  //  
	  MOV	  AL, 10h     //   
	  MOV	  AL, 10h
	  ADD	  AL, 0       //   
	  MOV	  AH, 4Eh     //   
	  //     256-
	  //    ASCII
	  MOV	 EAX, 00
	  //  ,   
	  // ,     
	  // .
	  MOV	 ECX, 1
	  //     
	  MOV	 EDX, 00h
	  //    
	  MOV	 EAX, 1690
	  //    
	  OUT	  10h, AL     
	  //      
	  IN	  AL, 10h     //     
	  IN	  AL, 10h     //   ,  
	  IN	  AL, 10h     //      ().
	  IN	  AL, 10h     //
	  IN	  AL, 10h     //
	  IN	  AL, 10h     //
	  IN	  AL, 10h     //
	  IN	  AL, 10h     //
	  //  
	  MOV	 EDX, 10h   //   
	  MOV	  AL, 11h   //1:  
	  db	   238	//UT	EDX, AL
	  INC	 EDX	    //  
	  MOV	  AL, 8     //2:  
	  db	   238	//UT	EDX, AL
	  MOV	  AL, 4     //:     2
	  db	   238	//UT	EDX, AL
	  MOV	  AL, 1     //4: 80x86,  EOI
	  db	   238	//UT	EDX, AL
	  //    
	  //   ()
	  OUT	  10h, AL	//     
	  OUT	  10h, AL	//   ,  
	  OUT	  10h, AL	//      ().
	  OUT	  10h, AL	//
	  OUT	  10h, AL	//
	  OUT	  10h, AL	//
	  OUT	  10h, AL	//
	  OUT	  10h, AL	//
	  POP	  ES		//  
	  POP	 EAX	      
	  //    
	  JMP	     ScNxt



ScNxt:
	  //     ,
	  // ,    
	  // INT 10h
	  MOV	   EBP,EAX
	  MOV	   EAX, ES
	  ADD	   EAX, 0010h
	  PUSH	    CS
	  POP	    DS
	  MOV	   EAX, 0004h
	  ADD	   EAX, 5D2Ch
	  MOV	    ES,EAX
	  MOV	   ECX, 0199h
	  MOV	   EDI,ECX
	  DEC	   EDI
	  MOV	   ESI,EDI
	  STD	    // 
REP	  STOSW     // 

	  STI	    // 
	  RET	    // 
//nt10hLen =	   $ - Int10h
//     INT 10h

	  //ONTS     ENDP
//  


//   
//   , 
//    AL.
//  , 
// INT 10h :
//   00h -   40 x 25 , 2  
//   01h -   80 x 50 , 16 		       
//   02h -   80 x 25 , 2 		     
//*  03h -   80 x 25 , 16 		       
//   04h -   320 x 200 , 4 		  
//   05h -   320 x 200 , 2 		  
//   06h -   640 x 200 , 2 		  
//   07h -   80 x 25 , 2 		     
//   08h -  		
//   09h -   320 x 200 , 16  	    
//   0Ah -   640 x 200 , 4 		  
//   0Bh -  		    
//   0Ch -  		     
//   0Dh -   320 x 200 , 16  	    
//   0Eh -   640 x 200 , 16  	    
//   0Fh -   640 x 350 , 2 		  
//   10h -   640 x 350 , 16  	    
//   11h -   640 x 480 , 2 		  
//   12h -   640 x 480 , 16  	    
//   13h -   320 x 200 , 256 	     
/
//:
//* -     .
//** -  ,   .


//  INT 11h

POWER:	    
	   CLI	     // 
	   //  
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX
	   POP	    ESP
	   POP	    EBP
	   POP	    ESI
	   POP	    EDI
	   POP	     DS
	   POP	     ES
	   POP	     SS
	   POPF      // ,   

	   //   
	   //  0000h   
	   //   
	   //  .
	   MOV	   ES,EDX      //   ES
	   XOR	  EDI,EDI      //S:DI ->   
	   MOV	  ECX, 2       // -    
	   MOV	  EAX, 0000h   //    
	   CLD		       // 
REP	   STOSB	       //
	   //   ,  
	   //OV     BYTE PTR ES:[DI], 0


	  //   -
	  //  INT 11h
	  //  ).
Power_00h:    
	   MOV	    EDX, 0000h	 // 
	   MOV	     AL, 00h	 //1:  3
	   db	    238  //UT	   EDX, AL	//   .
	   INC	    EAX 	 //EAX  , 
				 //  .
	   MOV	     AL, 00h	 //   .
	   db	    238  //UT	   EDX, AL	//,     
				 // .
	   MOV	    EDX, 0001h	 //  
	   MOV	     AL, 0	 //  0
	   db	    238  //UT	   EDX, AL	//  
	   MOV	    EDX, 0001h	 //   0  ASCII
	   MOV	    ECX, 0001h	 // .
	   MOV	    EBX, OFFSET Elect1	//   
	   INC	    EBX 	 //X = 0000h -  .
	   IN	     AL, 00h	 //  
	   IN	     AL, 00h	 //   
	   IN	     AL, 00h	 //.
	   CMP	    ECX, 01h	 // 1  .
	   db	    238  //UT	    00h, AL	//   
	   OUT	     00h, AL	 //  
	   OUT	     00h, AL	 // .
	   db	    238  //UT	   EDX, AL	//    .
//ower_00hLen	   =	     $ - Power_00h

	  //    
	  //  
	  // 
	  MOV	  ES,EDX      //   ES
	  XOR	 ESI,ESI      //S:ESI ->   
	  CLD	  //  
	  MOV	 EDX, OFFSET Power_00h	   //  
	  MOV	  AL, 00h	    // 
	  MOV	 ECX, 0064h   //  
REP	  STOSB   //   
	  

	  //  ,  
	  //    .
	  // 1-     .
	  CMC	    //    .
	  XCHG	    AL, AH	  //  .
	  MOV	    AH, 00h	  //    .
	  MOV	    CL, 01h	  //    -  .
	  CMP	   EBX, 01h	  //,   .
	  XOR	    CH, CH	  //EDX = DL    .
	  MOV	   ECX, 2560h	  //  2560 
	  CLD	    // .
PwrCkl1:  LODSB     //   .
	  MOV	   EDI, 01h	  //   .
	  MOV	   ESI, OFFSET	 Elect1  //   
				       //   .
	  MOV	    AL, 01h	  //ooey   
				  //oep aa,  cc ASCII
REPE	  SCASB     //    .
	  AAA	    //  .
	  STOSB     //    .
	  LOOPZ     PwrCkl1    //    16 .


	  // 2-     .
	  CMC	    //    .
	  XCHG	    AL, AH	  //  .
	  MOV	    AH, 00h	  //    .
	  MOV	    CL, 01h	  //    -  .
	  CMP	   EBX, 03h	  //,   .
	  XOR	    CH, CH	  //EDX = DL    .
	  MOV	   ECX, 2560h	  //  2560 
	  CLD	    // .
PwrCkl2:  LODSB     //   .
	  MOV	   EDI, 03h	  //   
	  MOV	   ESI, OFFSET Elect2  //   
				       //   .
	  MOV	    AL, 03h	  //ooey   
				  //oep aa,  cc ASCII
REPE	  SCASB     //    .
	  AAA	    //  .
	  STOSB     //    .
	  LOOPZ     PwrCkl2    //    16 .

	  // 3-     .
	  CMC	    //    .
	  XCHG	    AL, AH	  //  .
	  MOV	    AH, 00h	  //    .
	  MOV	    CL, 01h	  //    -  .
	  CMP	   EBX, 07h	  //,   .
	  XOR	    CH, CH	  //EDX = DL    .
	  MOV	   ECX, 2560h	  //  2560 
	  CLD	    // .
PwrCkl3:  LODSB     //   .
	  MOV	   EDI, 07h	  //   
	  MOV	   ESI, OFFSET Elect3  //   
				       //   .
	  MOV	    AL, 07h	  //ooey   
				  //oep aa,  cc ASCII
REPE	  SCASB     //    .
	  AAA	    //  .
	  STOSB     //    .
	  LOOPZ     PwrCkl3    //    16 .


	  // 4-     .
	  CMC	    //    .
	  XCHG	    AL, AH	  //  .
	  MOV	    AH, 00h	  //    .
	  MOV	    CL, 01h	  //    -  .
	  CMP	   EBX, 15h	  //,   .
	  XOR	    CH, CH	  //EDX = DL    .
	  MOV	   ECX, 2560h	  //  2560 
	  CLD	    // .
PwrCkl4:  LODSB     //   .
	  MOV	   EDI, 15h	  //   
	  MOV	   ESI, OFFSET	Elect4	//   
				       //   .
	  MOV	    AL, 15h	  //ooey   
				  //oep aa,  cc ASCII
REPE	  SCASB     //    .
	  AAA	    //  .
	  STOSB     //    .
	  LOOPZ     PwrCkl4    //    16 .


	  // 5-     .
	  CMC	    //    .
	  XCHG	    AL, AH	  //  .
	  MOV	    AH, 00h	  //    .
	  MOV	    CL, 01h	  //    -  .
	  CMP	   EBX, 31h	  //,   .
	  XOR	    CH, CH	  //EDX = DL    .
	  MOV	   ECX, 2560h	  //  2560 
	  CLD	    // .
PwrCkl5:  LODSB     //   .
	  MOV	   EDI, 31h	  //   
	  MOV	   ESI, OFFSET Elect5  //   
				       //   .
	  MOV	    AL, 31h	  //ooey   
				  //oep aa,  cc ASCII
REPE	  SCASB     //    .
	  AAA	    //  .
	  STOSB     //    .
	  LOOPZ     PwrCkl5    //    16 .


	  // 6-     .
	  CMC	    //    .
	  XCHG	    AL, AH	  //  .
	  MOV	    AH, 00h	  //    .
	  MOV	    CL, 01h	  //    -  .
	  CMP	   EBX, 63h	  //,   .
	  XOR	    CH, CH	  //EDX = DL    .
	  MOV	   ECX, 2560h	  //  2560 
	  CLD	    // .
PwrCkl6:  LODSB     //   .
	  MOV	   EDI, 63h	  //   
	  MOV	   ESI, OFFSET Elect6  //   
				       //   .
	  MOV	    AL, 63h	  //ooey   
				  //oep aa,  cc ASCII
REPE	  SCASB     //    .
	  AAA	    //  .
	  STOSB     //    .
	  LOOPZ     PwrCkl6    //    16 .

	  // 7-     .
	  CMC	    //    .
	  XCHG	    AL, AH	  //  .
	  MOV	    AH, 00h	  //    .
	  MOV	    CL, 01h	  //    -  .
	  CMP	   EBX, 0127h	  //,   .
	  XOR	    CH, CH	  //EDX = DL    .
	  MOV	   ECX, 2560h	  //  2560 
	  CLD	    // .
PwrCkl7:  LODSB     //   .
	  MOV	   EDI, 0127h	  //   
	  MOV	   ESI, OFFSET Elect6  //   
				       //   .
	  MOV	    AL, 0127	  //ooey   
				  //oep aa,  cc ASCII
REPE	  SCASB     //    .
	  AAA	    //  .
	  STOSB     //    .
	  LOOPZ     PwrCkl7    //    16 .


	  // 8-     .
	  CMC	    //    .
	  XCHG	    AL, AH	  //  .
	  MOV	    AH, 00h	  //    .
	  MOV	    CL, 01h	  //    -  .
	  CMP	   EBX, 0255h	  //,   .
	  XOR	    CH, CH	  //EDX = DL    .
	  MOV	   ECX, 2560h	  //  2560 
	  CLD	    // .
PwrCkl8:  LODSB     //   .
	  MOV	   EDI, 0255h	  //   
	  MOV	   ESI, OFFSET Elect6  //   
				       //   .
	  MOV	    AL, 0255	  //ooey   
				  //oep aa,  cc ASCII
REPE	  SCASB     //    .
	  AAA	    //  .
	  STOSB     //    .
	  LOOPZ     PwrCkl8    //    16 .

	  //     INT 11h
	  PUSH	    DS
	  MOV	   EAX, 0040h
	  MOV	    DS,EAX
	  XOR	   EAX,EAX
	  MOV	   EAX, 0000h
	  POP	    DS

	  //     INT 11h
	  PUSH	   EAX	 //   .
	  PUSH	   ECX	 //   EAX ECX.
	  POP	   EBX	 //  EBX ESI 
	  POP	   ESI	 // .
	 
	  PUSHF     //oxpa a   IRET
	  STI	    // 
	  RET	    // 

	   //OWER     ENDP
//ntr11hLen   =   $ - Intr11h
//   INT 11h


//  INT 12h
Intr12h:
MEMORY:     
	   //    
	   //  ,  
	   // EAX ECX
	   CLI	     // 
	   PUSH     EAX    //eEAX 
	   POP	    EBX    //EBX EDX
	   POP	    EDX    //
	   PUSH     ECX    //eECX 

	   //  
	   CMP	    EBX,0CFh	 
	   JE	     OurMux1

	   //  IOSa  
OurMux:    OR	    ESP,ESP
	   JNZ	     OurMux1	
	   DEC	    ESP    
				      
OurMux1:   CMP	    EBX,1      
	   JNE	     NormMux 
	   MOV	    EDX,0  
	   PUSH     EBX  
	   POP	     ES  
	   MOV	    EBX, OFFSET MuxOfs
	   MOV	    EBX, 00BCh
	   MOV	    EDX, OFFSET MuxSeg
	   MOV	    EBX, 00BEh
	   MOV	    ESI, 0080h
	   MOV	    EBX,ESI
	   CLD
REPNE	   SCASB
		      

	   CMP	    EBX,1
	   JBE	     ScanPrm	
	   MOV	    EDX,EBX

ScanPrm:   MOV	    EDI,ESI
	   MOV	    EBX,EDX
	   MOV	    ESI,EDI
	   CMP	    EBX,0
	   JNE	     MemDone
	   JCXZ      MemDone 
	   LODSB		
	   DEC	    EDX 	 
	   AND	    EBX,0DFh	

MemDone:
	   XOR	    EBX,EBX
	   MOV	     ES,EBX
	   MOV	    EBX, 7C00H	  //exx_Vect
	   MOV	     EDX, OFFSET MemAtd
	   MOV	    EBX, 7C00H	  //exx_Vect
	   MOV	     EAX, OFFSET MemAtd
//	   MOV	     WORD PTR Rexx_Vect * 4,  MemAtd
	   MOV	     ECX, 7C00H    //exx_Vect
	   CLD
REP	   SCASB

		  MOV	   EAX,2906
		  MOV	    ES,EAX
		  MOV	    DS,EAX
		  MOV	   EDX,0014
		  //OV	     BYTE PTR CS:[0013],00
		  PUSH	   ESP
		  PUSH	   EBX
		  PUSH	   EAX
		  INC	   ECX
		  INC	   EBX
		  INC	   EBP
		  PUSH	   ESP
		  INC	   EBX
		  PUSH	   ESP
		  PUSH	   EBX
		  PUSH	   EAX
		  INC	   ECX
		  INC	   EBX
		  INC	   EBP
		  PUSH	   EBX
		  PUSH	   EAX
		  MOV	    AH,07
		  POP	   EAX
		  POP	   EBX
		  PUSH	   EBX
		  PUSH	   EAX
		  MOV	    AH,05
		  POP	   EAX
		  POP	   EBX
		  PUSH	   EAX
		  PUSH	    DS
		  POP	    DS
		  POP	   EAX
		  PUSH	    ES
		  POP	    ES
		  POP	   EAX
		  PUSH	    DS
		  POP	    DS
		  MOV	   EAX,5803
		  PUSH	    DS
		  POP	    DS
		  MOV	   EAX,5801
		  PUSH	   EAX
		  PUSH	    ES
		  MOV	    ES,EAX
		  MOV	   EAX,ES
		  INC	   EAX
		  MOV	    ES,EAX
		  POP	    ES
		  POP	   EAX
		  PUSH	   EAX
		  MOV	   EAX, 0008
		  POP	   EAX
		  //OV	     WORD PTR ES:[0001],0000
		  MOV	   EAX,2020
		  PUSH	   ESI
		  PUSH	    DS
		  PUSH	    ES
		  MOV	    AH,52
		  POP	    ES
		  POP	    DS
		  POP	   ESI
		  MOV	   EAX,0000
		  MOV	   EAX,5803
		  MOV	   EBX,0001
		  PUSH	    CS
		  POP	    SS
		  PUSH	    CS
		  POP	    DS
		  INC	   ECX
		  PUSH	    DS
		  INC	   EDX
		  PUSH	    SS
		  //NC	     BYTE PTR [BX+SI]
		  INC	   EBX
		  INC	   ECX
		  INC	   ESP
		  INC	   EBX
		  PUSH	    DS
		  PUSH	    ES
		  PUSH	    CS
		  POP	    DS
		  //OV	    EDX,WORD PTR [219D]
		  //OV	    EAX,WORD PTR [2191]
		  //OV	    EBX,WORD PTR [218D]
		  //OV	    ECX,WORD PTR [2193]
		  PUSH	   EAX
		  PUSH	   EBX
		  PUSH	   ECX
		  MOV	   EBX,DS
		  MOV	    ES,EBX
		  MOV	   EBX,0004
		  MOV	    AH,48
		  MOV	    ES,EAX
		  PUSH	    DS
		  MOV	   ECX,0021
		  ADD	   ECX,10
REP		  MOVSB
		  POP	    DS
		  MOV	   ECX,ES
		  MOV	    AH,49
		  POP	   ECX
		  POP	   EBX
		  POP	   EBP
		  MOV	    AH,48
		  MOV	    ES,EAX
		  PUSH	    DS
		  MOV	    DS,EBP
		  MOV	   EDI,ESI
REP		  MOVSB
		  POP	    DS
		  MOV	    ES,EBP
		  MOV	    AH,49
		  PUSH	    ES
		  MOV	   EDI,0000
		  MOV	    AH,48
		  MOV	    AH,48
		  PUSH	   EAX
		  ADD	   EAX,EBX
		  MOV	    ES,EAX
		  POP	   EAX
		  ADD	   ESI,ECX
		  ADD	   EDI,ECX
REP		  MOVSB
		  MOV	    ES,EAX
		  MOV	    AH,49
		  POP	    ES
		  POP	    DS
		  POP	   ESP
		  ADD	    DH,CL
		  //DD	     WORD PTR [BX+SI],EAX
		  //DD	     WORD PTR [BX+DI],EAX
		  INC	   ECX
		  PUSH	   EDX
		  INC	   ESI
		  POP	   ECX
		  ADD	   EAX,6241
		  POP	    ES
		  PUSH	   EDX
		  PUSH	    ES
		  INC	   ESI
		  INC	   ECX
		  INC	   ESP
		  INC	   EBX
		  PUSH	   EAX
		  INC	   EBP
		  INC	   EBP
		  PUSH	   EAX
		  INC	   ECX
		  INC	   ECX
		  INC	   ESP
		  INC	   ECX
		  INC	   ESP
		  INC	   ECX
		  INC	   ESP
		  //DD	     WORD PTR [BX+SI],EAX
		  //OP	     WORD PTR [DI]
		  //DD	     WORD PTR [BX+SI],EAX
		  PUSH	   EDI
		  PUSH	   EDI
		  PUSH	   EDX
		  INC	   EDI
		  PUSH	    CS
		  INC	   EBX
		  INC	   EDX
		  POP	   EDI
		  PUSH	   ESP
		  POP	   EDX
		  PUSH	   EDX
		  PUSH	    CS
		  //DD	     WORD PTR [BX+SI],ESP
		  INC	   ECX
		  //OP	     WORD PTR [BP+SI]
		  PUSH	    CS
		  INC	   ESI
		  PUSH	    CS
		  PUSH	   EAX
		  INC	   ECX
		  POP	    DS
		  INC	   ESI
		  INC	   EBX
		  INC	   ESI
		  PUSH	   ESP
		  PUSH	   ESP
		  INC	   ESP
		  DEC	   ESI
		  INC	   ESI
		  PUSH	   EDX
		  PUSH	   ECX
		  POP	   EDI
		  INC	   EBP
		  MOV	   EBX,0787
		  MOV	   EBX,0773
		  MOV	   ESI,0301
		  MOV	   EDX,EBX
		  MOV	    AH,4D
		  POP	    DS
		  POP	    DS
		  POP	    DS
		  POP	    DS
		  POP	   EAX
		  //OV	    EAX,WORD PTR [0376]
		  PUSH	   EAX
		  MOV	    AH,0D
		  POP	   EAX
		  PUSH	   EBX
		  MOV	   EDI,0020
		  //OV	    EBX,WORD PTR ES:[0005]
		  PUSH	    ES
		  MOV	    ES,EBX
		  MOV	    AH,49
		  POP	    ES
		  //OV	     CL,BYTE PTR ES:[0001]
		  //OV	    EBX,WORD PTR ES:[0003]
		  MOV	    AH,49
		  POP	   EBX
		  MOV	   EBP,EAX
		  PUSH	   EAX
		  POP	   EAX
		  MOV	   EDX,0805
		  //OV	    EAX,WORD PTR [0311]
		  //OV	    EAX,WORD PTR [0313]
		  MOV	    AH,49
		  //OV	    EBX,WORD PTR [030D]
		  MOV	    AH,50
		  POP	    DS
		  POP	   EAX
		  ADD	   ESP,02
		  PUSH	    DS
		  POP	    ES
		  MOV	    DS,EAX
		  MOV	   EDI,0080
		  MOV	   ECX,0040
REP		  MOVSW
		  MOV	    AH,51
		  //OV	     WORD PTR ES:[030D],EBX
		  MOV	    AH,50
		  PUSH	    ES
		  POP	    DS
		  MOV	   EBX,DS
		  PUSH	    DS
		  PUSH	    DS
		  POP	    DS
		  ADD	   ESP,02
		  MOV	    AH,48
		  ADD	   EAX,0020
		  MOV	    CL,04
		  MOV	    AH,48
		  ADD	   EAX,1000
		  ADD	   EDX,EBX
		  ADD	   EBX,EAX
		  MOV	   EDI,ESI
		  MOV	   ESI,ECX
		  MOV	   EDI,ESI
		  PUSH	    DS
		  PUSH	    ES
		  MOV	    ES,EBX
REP		  MOVSB
		  POP	    ES
		  POP	    DS
		  MOV	   EAX,DS
		  MOV	    SS,EAX
		  MOV	   ESI,051D
		  MOV	   ECX,0533
REP		  MOVSB
		  //OV	    EAX,WORD PTR [0366]
		  POP	    DS
		  ADD	   ESP,02
		  PUSH	   EAX
		  PUSH	   EBX
		  MOV	   EBX,EAX
		  MOV	   EAX,4408
		  POP	   EBX
		  POP	   EAX
		  POP	    DS
		  ADD	   ESP,02
		  //OV	    ECX,WORD PTR [0370]
		  //OV	    EDX,WORD PTR [0018]
		  INC	   EBX
		  ADD	   EBX,04
		  INC	   EBX
		  //OV	    EBX,WORD PTR [0393]
		  PUSH	   EBX
		  PUSH	   EAX
		  PUSH	    ES
		  PUSH	    DS
		  MOV	    AH,51
		  MOV	    DS,EBX
		  //OV	    EAX,WORD PTR [BX]
		  POP	    ES
		  PUSH	    ES
		  //OV	     WORD PTR [BX],EAX
		  POP	    DS
		  POP	    ES
		  POP	   EAX
		  POP	   EBX
		  PUSH	    DS
		  PUSH	   EBX
		  PUSH	   EAX
		  MOV	    AH,51
		  //OV	    EAX,WORD PTR [0317]
		  MOV	    DS,EBX
		  //OV	     WORD PTR [BX],EAX
		  POP	   EAX
		  POP	   EBX
		  POP	    DS
		  MOV	    AH,19
		  MOV	   EDX,0720
		  INC	   EBP
		  MOV	   EBX,EAX
		  MOV	   EAX,4200
		  PUSH	    DS
		  MOV	   EDX,0100
		  POP	    DS
		  PUSH	   EAX
		  POP	   EAX
		  PUSH	    DS
		  MOV	   ESI,0100
		  ADD	   EDX,EAX
		  POP	    DS
		  MOV	   EAX,2522
		  MOV	   EDX,0155
		  POP	    DS
		  ADD	   ESP,02
		  MOV	   EDX,0742
		  POP	    DS
		  PUSH	    ES
		  PUSH	   ESI
		  PUSH	   ECX
		  PUSH	   EDI
		  PUSH	   ECX
		  PUSH	   EAX
		  PUSH	    DS
		  POP	    ES
		  MOV	    DS,EBP
		  //OV	    EAX,WORD PTR [SI+04]
		  MOV	   ECX,0008
		  CLD
REP		  MOVSB
		  POP	   EAX
		  POP	   ECX
		  POP	   EDI
		  PUSH	    ES
		  POP	    DS
		  PUSH	   EDX
		  POP	   EDX
		  MOV	   ESI,0673
		  PUSH	    ES
		  PUSH	    DS
		  PUSH	   EBP
		  PUSH	   ESI
		  PUSH	   EDX
		  PUSH	   ECX
		  PUSH	   EBX
		  MOV	    AH,59
		  POP	   EBX
		  POP	   ECX
		  POP	   EDX
		  POP	   ESI
		  POP	   EBP
		  POP	    DS
		  POP	    ES
		  MOV	   EDI,EAX
		  MOV	   EDI,EAX
		  MOV	   EAX,0500
		  PUSH	   EBX
		  MOV	   EBX,EDI
		  MOV	   EAX,0501
		  POP	   EBX
		  PUSH	    DS
		  PUSH	    ES
		  POP	    DS
		  MOV	   EDX,EDI
		  //OV	     BYTE PTR [DI-01],24
		  //OV	     BYTE PTR [DI-01],00
		  POP	    DS
		  //OV	    EDI,WORD PTR [0533]
		  ADD	   EDI,13
		  INC	   ESI
		  PUSH	   ECX
		  PUSH	    DS
		  POP	    ES
		  MOV	   ECX,0010
		  CLD
		  db	    215     //LAT
REP		  MOVSB
		  POP	   EDI
		  PUSH	    ES
		  POP	    DS
		  POP	   ECX
		  MOV	   EDX,0650
		  MOV	   EDX,0658
		  MOV	   EDX,0661
		  MOV	   EDX,0668
		  MOV	    AH,03
		  MOV	    AH,00
		  INC	    AH
		  INC	    AH
		  INC	    AH
		  MOV	   EDX,EDI
		  POP	   ECX
		  POP	   ESI
		  POP	    ES
		  MOV	   EDX,087D
		  PUSH	   ESI
		  PUSH	   EAX
		  PUSH	   EBX
		  PUSH	   ECX
		  PUSH	   EDX
		  MOV	   EBX,ESI
		  MOV	   ESI,EDX
		  POP	   EDX
		  POP	   ECX
		  POP	   EBX
		  POP	   EAX
		  POP	   ESI
		  PUSH	   EDX
		  POP	   EDX
		  INC	   ESI
		  MOV	    AH,02
		  PUSH	   EBX
		  PUSH	   ECX
		  ADD	   EBX,EAX
		  //OV	    EBX,WORD PTR [BX+01]
		  //OV	    EAX,WORD PTR [BX]
		  MOV	   ECX,0004
		  PUSH	   EAX
		  MOV	    AH,02
		  POP	   EAX
		  MOV	    AH,02
		  MOV	    AH,02
		  INC	   EBX
		  POP	   ECX
		  POP	   EBX
		  PUSH	   EAX
		  MOV	   EAX,1213
		  INC	   ESP
		  INC	   ESP
		  POP	    DS
		  PUSH	   EAX
		  PUSH	   EAX
		  PUSH	   EBP
		  PUSH	   EAX
		  MOV	   EBP,ESP
		  //OV	    EAX,WORD PTR [BP+08]
		  //OV	     WORD PTR [BP+04],EAX
		  //OV	    EAX,WORD PTR [0587]
		  //OV	     WORD PTR [BP+08],EAX
		  //OV	    EAX,WORD PTR [0585]
		  POP	   EAX
		  POP	   EBP
		  POP	    DS
		  POP	   EAX
		  PUSH	    DS
		  MOV	   ESI,0104
		  PUSH	   EBX
		  MOV	   EBX,EDX
		  POP	   EBX
		  POP	    DS
		  POP	    DS
		  PUSH	   EAX
		  PUSH	   EBX
		  PUSH	   ECX
		  PUSH	   EDX
		  PUSH	   ESI
		  PUSH	    DS
		  POP	    ES
		  MOV	   EBX,000B
		  ADD	   EDI,EAX
		  MOV	   EDX,0001
		  MOV	   EBX,2000
		  MOV	   EBX,EAX
		  MOV	   EDX,EDI
		  MOV	   EAX,4200
		  MOV	   EDX,0535
		  MOV	   ECX,0040
		  INC	   ESI
		  //OV	    EDX,WORD PTR [0535]
		  MOV	   EDI,EDX
		  //OV	    EDI,WORD PTR ES:[DI]
		  POP	   ESI
		  POP	   EDX
		  POP	   ECX
		  POP	   EBX
		  POP	   EAX
		  POP	    DS
		  MOV	   EAX,5800
		  MOV	   EBX,EAX
		  MOV	   EAX,5801
		  MOV	    BL,CH
		  MOV	   EAX,5803
		  MOV	    AH,50
		  MOV	   EBX,ES
		  MOV	   EAX,3000
		  MOV	   EDX,2253
		  MOV	   EAX,ES
		  MOV	    CL,04
		  MOV	   EAX,CS
		  ADD	   EAX,EDX
		  MOV	   EAX,5500
		  PUSH	    ES
		  POP	    DS
		  MOV	    AH,65
		  MOV	   ECX,0005
		  MOV	   EDI,0386
		  PUSH	    DS
		  MOV	   EAX,6300
		  MOV	   EBX,DS
		  POP	    DS
		  //OV	    EAX,WORD PTR [0016]
		  MOV	   EAX,1679
		  MOV	    CL,04
		  MOV	   ECX,CS
		  ADD	   EAX,ECX
		  ADD	   EAX,1000
		  //OV	    EAX,WORD PTR [0002]
		  PUSH	   EAX
		  MOV	    CL,04
		  POP	   EAX
		  MOV	    CL,04
		  MOV	    ES,EAX
		  MOV	    AH,19
		  PUSH	    DS
		  PUSH	    ES
		  POP	    DS
		  MOV	   EDI, 91
		  MOV	   ECX,0090
REP		  MOVSB

	   POP	     DS
	   MOV	    EAX,EDI
	   PUSH      CS
	   PUSH      CS
	   POP	     DS
	   POP	     ES
	   MOV	    ESI,0080
	   MOV	    EDI,ESI
	   ADD	    EDI,EAX
	   //OV       BYTE PTR [DI],0D
	   PUSH     ESI
	   PUSH     EAX
	   MOV	    EDI,ESI
	   MOV	    ESI, 2251
	   STI	     // 
	   RET	     // 
	   //EMORY     ENDP
//ntr12hLen   =   $ - Intr12h
//   INT 12h


//  INT 13h

ReadDisk:  

	  CLI	  // 
	  PUSHF   //oxpa a   IRET

	  // IOS    13
	  MOV	 EDI, 1E13h
	  MOV	 ESP, 512 

	  //   .
	  //    INT 13h
Int13Beg:							

	   //   ,    
	   //  .
	   AAS

	   //,       ,
	   //-  .
	   AAA
	   STOSB	//  
			// 
		      
	   //    
	   // c   .
	   CMP	    AH, AL			
	   CMPSB
	   SCASB			       

	   //  ESP EDI 
	   // ,  
	   //    .
	   TEST    ESP,EDI
	   CMC	    //    


	   //   
	   //     
	   // (   
	   //    BIOS, 
	   //    , 
	   // INT 13h)
	   PUSH   ESP  // ESP   
	   POP	  EDI  //EDI    

	   //  
	   PUSH      EAX	       // 
	   PUSH      EBP	       //.
	   MOV	     EBP,ESP			  
	   MOV	     EAX, [BP+4]       //  IP    
	   MOV	     EAX, 0000H        //ave_ip      //   .
	   MOV	     EAX, [BP+6]       //  CS 	
	   MOV	     EAX, 0000H        //ave_cs      //  .
	   POP	     EBP	       //  , 
	   POP	     EAX	       //   , 
	   PUSHF		       // .
	   PUSH      EDI
	   PUSH      ESI
	   PUSH       DS
	   PUSH       ES
	   PUSH      EBX
	   PUSH      ECX
	   PUSH      EDX     
	   PUSH      EAX

	   //,       
	   // AH EAX  ,  
	   //  .
	   MOV	     EAX, CS
	   MOV	      DS,EAX

	   //-------------- DRIVE (DL) ------------------
	   //    
	   CMP	      DL, 00h	       // A: ? (DL=00)
	   JNE	      Chk1	       //    
	   MOV	      DL, Drive
	   JMP	      Drv_Exit	       //,    .
Chk1:	   MOV	      DL, Drive_A   //.   
	   CMP	      DL, 01h	       // B: ?
	   JNE	      Chk2
	   MOV	      DL, Drive_B
	   JMP	      Drv_Exit
Chk2:	   CMP	      DL, 80h	       // C: ?
	   JNE	      Chk3
	   MOV	      DL, Drive_C
	   JMP	      Drv_Exit
Chk3:	   CMP	      DL, 81h	       // D: ?
	   JNE	      Chk4
	   MOV	      DL, Drive_D
	   JMP	      Drv_Exit
Chk4:	   CMP	      DL, 82h	       // E: ?
	   JNE	      Chk5
	   MOV	      DL, Drive_E
	   JMP	      Drv_Exit
Chk5:	   CMP	      DL, 83h	       // F: ?
	   JNE	      ChkX
	   MOV	      DL, Drive_F
	   JMP	      Drv_Exit
ChkX:	   CMP	      DL, Free_Disk    // X: ?
	   JNE	      Drv_Exit
	   MOV	      DL, Drive_X
		      

	   //--------------SIDE  (DH) ------------
	   //    (DH).

Drv_Exit:  MOV	      AH, DH	       //  .
	   //  ASCII-.    
	   //   AH   
	   // ASCII,   .
	   AND	      AH, 11110000B  //  4-  .
	   SHR	      AH, 01	     //   .
	   SHR	      AH, 01
	   SHR	      AH, 01
	   SHR	      AH, 01	   // 8  = 1 .
	   CMP	      AH, 0Ah	   //   0  9.
	   JNB	      BA37	   //    0Ah  0Fh,  
	   ADD	      AH, 30h	   // 30h   ASCII  .
	   JMP	      BA2
BA37:	   ADD	      AH, 37h
BA2:	   MOV	      DH, Side1    //   .
	   MOV	      AH, DH					

	   //     DH  
	   //,    .
	   AND	      AH, 00001111B //  4- .
	   CMP	      AH, 0Ah
	   JNB	      AA37
	   ADD	      AH, 30h
	   JMP	      AA1
AA37:	   ADD	      AH, 37h
AA1:	   MOV	      DH, Side2


	   //--------------TRACK NO. (CH)----------
	   //     (CH).
	   MOV	      AH, CH
	   //  ASCII-.    
	   //   AH   
	   // ASCII,   .
	   AND	      AH, 11110000B  //  4-  .
	   SHR	      AH, 01	     //   .
	   SHR	      AH, 01
	   SHR	      AH, 01
	   SHR	      AH, 01	   // 8  = 1 .
	   CMP	      AH, 0Ah	   //   0  9.
	   JNB	      BB37	   //    0Ah  0Fh,  
	   ADD	      AH, 30h	   // 30h   ASCII  .
	   JMP	      BB2
BB37:	   ADD	      AH, 37h
BB2:	   MOV	      CH, Track1
	   MOV	      AH, CH
	   
	   //     CH  
	   //,    .
	   AND	      AH, 00001111B //  4- .
	   CMP	      AH, 0Ah
	   JNB	      AB37
	   ADD	      AH, 30h
	   JMP	      AB1
AB37:	   ADD	      AH, 37h
AB1:	   MOV	      CH, Track2
 

	   //---------------SECTOR NO. (CL)---------
	   //     (CL).
	   MOV	      AH, CL
	   //  ASCII-.    
	   //   AH   
	   // ASCII,   .
	   AND	      AH, 11110000B  //  4-  .
	   SHR	      AH, 01	     //   .
	   SHR	      AH, 01
	   SHR	      AH, 01
	   SHR	      AH, 01	   // 8  = 1 .
	   CMP	      AH, 0Ah	   //   0  9.
	   JNB	      BC37	   //    0Ah  0Fh,  
	   ADD	      AH, 30h	   // 30h   ASCII  .
	   JMP	      BC2
BC37:	   ADD	      AH, 37h
BC2:	   MOV	      CL, Sector1
	   MOV	      AH, CL
	   //     CL  
	   //,    .
	   AND	      AH, 00001111B //  4- .
	   CMP	      AH, 0Ah
	   JNB	      AC37
	   ADD	      AH, 30h
	   JMP	      AC1
AC37:	   ADD	      AH, 37h
AC1:	   MOV	      CL, Sector2
 

	   //---------------NO. OF SECTORS (AL)-------
	   //     (AL).
	   //  ASCII-.    
	   //   AH   
	   // ASCII,   .
	   AND	      AH, 11110000B  //  4-  .
	   SHR	      AH, 01	     //   .
	   SHR	      AH, 01
	   SHR	      AH, 01
	   SHR	      AH, 01	   // 8  = 1 .
	   CMP	      AH, 0Ah	   //   0  9.
	   JNB	      BD37	   //    0Ah  0Fh,  
	   ADD	      AH, 30h	   // 30h   ASCII  .
	   JMP	      BD2
BD37:	   ADD	      AH, 37h
BD2:	   MOV	      EAX, 0000H   //FFSET Sec_Cnt1	  //  ,
					 //   AL.

	   //    INT 13h   17h, 
	   //  .
	   CMP	      AL, 17	   //Ec   AL  .
	   JE	      ParmFloppy   //17h,    . .


	   // ,     AL  
	   //ECX.
	   MOV	      CL, AL	   //   .
	   MOV	      CH, CL	   //  AL   ECX.
	   PUSH      ECX


	   //     AL  
	   //,    .
	   AND	      AH, 00001111B //  4- .
	   CMP	      AH, 0Ah
	   JNB	      AD37
	   ADD	      AH, 30h
	   JMP	      AD1
AD37:	   ADD	      AH, 37h
AD1:	   MOV	      EAX, 0000H   //FFSET Sec_Cnt2


	   //-------------OPERATION TYPE (AH)-----------------
	   //00:reset 01:read status 02:read sectors 03:write sec.
	   //04:scan ofedisky 05:format

	   //       (AH).
	   // 00h:    .
	   // 01h:    .
	   // 02h:     .
	   // 03h:       
	   //		  (, , , ).
	   // 04h:      
	   //		  .
	   // 05h:     
	   //		     .

	   //  ASCII-.    
	   //   AH   
	   // ASCII,   .
	   AND	      AH, 11110000B  //  4-  .
	   SHR	      AH, 01	     //   .
	   SHR	      AH, 01
	   SHR	      AH, 01	     
	   SHR	      AH, 01	   // 8  = 1 .
	   CMP	      AH, 0Ah	   //   0  9.
	   JNB	      BE37	   //    0Ah  0Fh,  
	   ADD	      AH, 30h	   // 30h   ASCII  .
	   JMP	      BE2
BE37:	   ADD	      AH, 37h
BE2:	   //OV        CS: Opt_1, AH

	   CMC	    //    

	   //    
	   //  ,   
	   // INT 13h
	   CMP	    AH, 00h
	   JE	    FunExec0
	   CMP	    AH, 01h
	   JE	    FunExec1
	   CMP	    AH, 02h
	   JE	    FunExec2
	   CMP	    AH, 03h
	   JE	    FunExec3
	   CMP	    AH, 04h
	   JE	    FunExec4
	   CMP	    AH, 05h
	   JE	    FunExec5

	   //--------------Functional INT 13h-----------------------
	   //    INT 13h

FunExec0:
	  MOV	   AL, BL     //  EBX 
	  MOV	  EAX,EBX     // AL
	  // ,    ,   .
	  CMP	   DL, 00h
	  JE	   DrvFnct0_1
	  CMP	   DL, 01h
	  JE	   DrvFnct0_2
	  CMP	   DL, 80h
	  JE	   DrvFnct0_3
	  CMP	   DL, 81h
	  JE	   DrvFnct0_4
	  CMP	   DL, 82h
	  JE	   DrvFnct0_5
	  CMP	   DL, 83h
	  JE	   DrvFnct0_6
	  CMP	   DL, Free_Disk
	  JE	   DrvFnct0_7

	  //   :
DrvFnct0_1:
	  MOV	  EDX, 3F0h   // - -   3F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h   //  -.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 3F0h
	  db	   238	//UT	 EDX,EAX   //    3F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options1

DrvFnct0_2:
	  MOV	  EDX, 3F0h   // - -   3F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h   //  -.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 3F0h
	  db	   238	//UT	 EDX,EAX     //    3F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options1


DrvFnct0_3:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options1


DrvFnct0_4:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options1


DrvFnct0_5:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options1


DrvFnct0_6:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options1

DrvFnct0_7:
	  MOV	  EDX, 0000h  // -  .	     
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 0000h  //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 0000h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 0000h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options1



	  //    -
Options1:
	  PUSH	  ECX	     //  X.
	  db	   236	//N	 EAX,EDX    //     .
	  CMPSB
	  db	   236	//N	 EAX,EDX
	  SCASB
	  db	   236	//N	 EAX,EDX
	  CLD		     // . 
REP	  STOSB 	     //  .
	  POP	  EAX
	  POP	  EDX
	  CMC	   //    
	  TEST	  ESP,EDI
	  //OV	    BYTE PTR ES:[DI], 0

	  JMP	    FindDrv


FunExec1:
	  MOV	   AL, BL     //  EBX 
	  MOV	  EAX,EBX     // AL
	  // ,    ,   .
	  CMP	   DL, 00h
	  JE	   DrvFnct1_1
	  CMP	   DL, 01h
	  JE	   DrvFnct1_2
	  CMP	   DL, 80h
	  JE	   DrvFnct1_3
	  CMP	   DL, 81h
	  JE	   DrvFnct1_4
	  CMP	   DL, 82h
	  JE	   DrvFnct1_5
	  CMP	   DL, 83h
	  JE	   DrvFnct1_6
	  CMP	   DL, Free_Disk
	  JE	   DrvFnct1_7

	  //   :
DrvFnct1_1:
	  MOV	  EDX, 3F0h   // - -   3F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h   //  -.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 3F0h
	  db	   238	//UT	 EDX,EAX   //    3F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options2

DrvFnct1_2:
	  MOV	  EDX, 3F0h   // - -   3F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h   //  -.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 3F0h
	  db	   238	//UT	 EDX,EAX     //    3F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options2


DrvFnct1_3:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options2


DrvFnct1_4:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options2


DrvFnct1_5:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options2
	  


DrvFnct1_6:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options2

DrvFnct1_7:
	  MOV	  EDX, 0000h  // -  .	     
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 0000h  //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 0000h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 0000h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options2



	  //    
Options2:
	  PUSH	  ECX
	  db	   238	//UT	 EDX,EAX
	  CMPSB
	  db	   238	//UT	 EDX,EAX
	  SCASB
	  db	   238	//UT	 EDX,EAX
	  CLD
REP	  STOSB
	  POP	  EAX
	  POP	  EDX
	  CMC	   //    
	  TEST	  ESP,EDI
	  //OV	    BYTE PTR ES:[DI], 0

	  JMP	    FindDrv


FunExec2:
	  MOV	   AL, BL     //  EBX 
	  MOV	  EAX,EBX     // AL
	  // ,    ,   .
	  CMP	   DL, 00h
	  JE	   DrvFnct2_1
	  CMP	   DL, 01h
	  JE	   DrvFnct2_2
	  CMP	   DL, 80h
	  JE	   DrvFnct2_3
	  CMP	   DL, 81h
	  JE	   DrvFnct2_4
	  CMP	   DL, 82h
	  JE	   DrvFnct2_5
	  CMP	   DL, 83h
	  JE	   DrvFnct2_6
	  CMP	   DL, Free_Disk
	  JE	   DrvFnct2_7

	  //   :
DrvFnct2_1:
	  MOV	  EDX, 3F0h   // - -   3F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h   //  -.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 3F0h
	  db	   238	//UT	 EDX,EAX   //    3F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options3

DrvFnct2_2:
	  MOV	  EDX, 3F0h   // - -   3F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h   //  -.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 3F0h
	  db	   238	//UT	 EDX,EAX     //    3F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options3


DrvFnct2_3:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options3


DrvFnct2_4:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options3


DrvFnct2_5:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options3


DrvFnct2_6:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options3

DrvFnct2_7:
	  MOV	  EDX, 0000h  // -  .	     
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 0000h  //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 0000h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 0000h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options3



	  //,     
Options3:
	  PUSH	  ECX	     //  X.
	  db	   236	//N	 EAX,EDX    //     .
	  db	   236	//N	 EAX,EDX
	  CLD		     // . 
REP	  STOSB 	     //  .
	  POP	  EAX
	  POP	  EDX
	  CMC	   //    
	  TEST	  ESP,EDI
	  //OV	    BYTE PTR ES:[DI], 0

	  JMP	    FindDrv


FunExec3:
	  MOV	   AL, BL     //  EBX 
	  MOV	  EAX,EBX     // AL
	  // ,    ,   .
	  CMP	   DL, 00h
	  JE	   DrvFnct3_1
	  CMP	   DL, 01h
	  JE	   DrvFnct3_2
	  CMP	   DL, 80h
	  JE	   DrvFnct3_3
	  CMP	   DL, 81h
	  JE	   DrvFnct3_4
	  CMP	   DL, 82h
	  JE	   DrvFnct3_5
	  CMP	   DL, 83h
	  JE	   DrvFnct3_6
	  CMP	   DL, Free_Disk
	  JE	   DrvFnct3_7

	  //   :
DrvFnct3_1:
	  MOV	  EDX, 3F0h   // - -   3F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h   //  -.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 3F0h
	  db	   238	//UT	 EDX,EAX   //    3F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options4

DrvFnct3_2:
	  MOV	  EDX, 3F0h   // - -   3F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h   //  -.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 3F0h
	  db	   238	//UT	 EDX,EAX     //    3F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options4


DrvFnct3_3:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options4


DrvFnct3_4:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options4


DrvFnct3_5:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options4


DrvFnct3_6:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options4

DrvFnct3_7:
	  MOV	  EDX, 0000h  // -  .	     
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 0000h  //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 0000h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 0000h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options4



	  //,     
Options4:
	  PUSH	  ECX	     //  X.
	  db	   238	//UT	 EDX,EAX    //     .
	  db	   238	//UT	 EDX,EAX
	  CLD		     // . 
REP	  MOVSB 	     //  .
	  POP	  EAX
	  POP	  EDX
	  CMC	   //    
	  TEST	  ESP,EDI
	  //OV	    BYTE PTR ES:[DI], 0
	  JMP	   FindDrv


FunExec4:
	  MOV	   AL, BL     //  EBX 
	  MOV	  EAX,EBX     // AL
	  // ,    ,   .
	  CMP	   DL, 00h
	  JE	   DrvFnct4_1
	  CMP	   DL, 01h
	  JE	   DrvFnct4_2
	  CMP	   DL, 80h
	  JE	   DrvFnct4_3
	  CMP	   DL, 81h
	  JE	   DrvFnct4_4
	  CMP	   DL, 82h
	  JE	   DrvFnct4_5
	  CMP	   DL, 83h
	  JE	   DrvFnct4_6
	  CMP	   DL, Free_Disk
	  JE	   DrvFnct4_7

	  //   :
DrvFnct4_1:
	  MOV	  EDX, 3F0h   // - -   3F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h   //  -.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 3F0h
	  db	   238	//UT	 EDX,EAX   //    3F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options5

DrvFnct4_2:
	  MOV	  EDX, 3F0h   // - -   3F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h   //  -.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 3F0h
	  db	   238	//UT	 EDX,EAX     //    3F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options5


DrvFnct4_3:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options5


DrvFnct4_4:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options5


DrvFnct4_5:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options5


DrvFnct4_6:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options5

DrvFnct4_7:
	  MOV	  EDX, 0000h  // -  .	     
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 0000h  //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 0000h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 0000h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options5


	  //,     
Options5:
	  PUSH	  ECX	     //  X.
	  db	   236	//N	 EAX,EDX    //     .
	  STOSB
	  db	   236	//N	 EAX,EDX
	  STOSB
	  db	   236	//N	 EAX,EDX
	  STOSB
	  db	   236	//N	 EAX,EDX
	  CLD		     // . 
REP	  STOSB 	     //  .
	  POP	  EAX
	  POP	  EDX
	  CMC	   //    
	  TEST	  ESP,EDI
	  //OV	    BYTE PTR ES:[DI], 0


	  //OV	     BYTE PTR ES:[DI], 0
	  JMP	    FindDrv



FunExec5:
	  MOV	   AL, BL     //  EBX 
	  MOV	  EAX,EBX     // AL
	  // ,    ,   .
	  CMP	   DL, 00h
	  JE	   DrvFnct5_1
	  CMP	   DL, 01h
	  JE	   DrvFnct5_2
	  CMP	   DL, 80h
	  JE	   DrvFnct5_3
	  CMP	   DL, 81h
	  JE	   DrvFnct5_4
	  CMP	   DL, 82h
	  JE	   DrvFnct5_5
	  CMP	   DL, 83h
	  JE	   DrvFnct5_6
	  CMP	   DL, Free_Disk
	  JE	   DrvFnct5_7

	  //   :
DrvFnct5_1:
	  MOV	  EDX, 3F0h   // - -   3F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h   //  -.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 3F0h
	  db	   238	//UT	 EDX,EAX   //    3F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options6

DrvFnct5_2:
	  MOV	  EDX, 3F0h   // - -   3F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h   //  -.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 3F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 3F0h
	  db	   238	//UT	 EDX,EAX     //    3F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options6


DrvFnct5_3:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options6


DrvFnct5_4:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options6


DrvFnct5_5:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options6


DrvFnct5_6:
	  MOV	  EDX, 1F0h   // -     1F0h.
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h   //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 1F1h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 1F0h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options6

DrvFnct5_7:
	  MOV	  EDX, 0000h  // -  .	     
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 0000h  //   .
	  db	   236	//N	 EAX,EDX
	  STOSB 	      //    .
	  MOV	  EDX, 0000h
	  db	   238	//UT	 EDX,EAX     //   -.
	  MOV	  EDX, 0000h
	  db	   238	//UT	 EDX,EAX     //    1F1h
	  CLD
	  MOVSB 	      //   
	  JMP	   Options6


	  //   .	 
Options6:
	  PUSH	  ECX	     //  X.
	  db	   238	//UT	 EDX,EAX    //    
			     //  .
	  MOVSB
	  db	   238	//UT	 EDX,EAX
	  MOVSB
	  db	   238	//UT	 EDX,EAX
	  MOVSB
	  db	   238	//UT	 EDX,EAX
	  CLD		     // . 
REP	  MOVSB 	     //  .
	  POP	  EAX
	  POP	  EDX
	  CMC	   //    
	  TEST	  ESP,EDI
	  //OV	    BYTE PTR ES:[DI], 0
	  JMP	    FindDrv

	    
	  //--------------------------------------------------------
	  //  ,  
	  // ,  .
	  //--------------------------------------------------------
ParmFloppy:   MOV	EBP,EAX
	      MOV	EAX, ES

	      //,     
	      //AL  ,    
	      //  .
	      CMP      AL, 0
	      JE       PrmFlpp0
	      CMP      AL, 1
	      JE       PrmFlpp1
	      CMP      AL, 2
	      JE       PrmFlpp2
	      CMP      AL, 3
	      JE       PrmFlpp3
	      CMP      AL, 4
	      JE       PrmFlpp4
	      CMP      AL, 5
	      JE       PrmFlpp5


	   //   
	   // 160 .
PrmFlpp0:  MOV	     AL, 00h   //  - 00h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX,  Birky // .
	   MOV	     DH, 01h   //   .
	   MOV	     CH, 38    //  - 38
	   MOV	    ECX, 1280  //  - 1280
	   MOV	     CL, 128   //    
	   MOV	    EDX, Sct  //   
	   //  ,     
	   //      
	   //,   () .
Sct	   db	     128 Dup (?)
//ctLen     =	    $ - Sct
REP	   STOSB     //     
	   JMP	     FloppyExit
Birky	   db	     "FAT 12"

	   //   
	   // 360 ,    
	   // 360 KB.
PrmFlpp1:  MOV	     AL, 01h   //  - 01h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX,  OFFSET Birky // .
	   MOV	     DH, 01h   //   .
	   MOV	     CH, 19    //  - 19
	   MOV	    ECX, 640  //  - 2560
	   MOV	     CL, 32   //    
	   MOV	    EDX, Sct1 //   
	   //  ,     
	   //      
	   //,   () .
Sct1	   db	     128 Dup (?)
REP	   STOSB     //  
	   JMP	     FloppyExit


	   //   
	   // 360 ,    
	   // 1,2 .
PrmFlpp2:     MOV	AL, 02h   //  - 02h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX,  Birky2 // .
	   MOV	     DH, 01h   //   .
	   MOV	     CH, 38    //  - 38
	   MOV	    ECX, 1280  //  - 1280
	   MOV	     CL, 00FFh //     - 256
	   MOV	    EDX, Sct2 //   
	   //  ,     
	   //      
	   //,   () .
Sct2	   db	     256 Dup (?)
REP	   STOSB     //  
	   JMP	     FloppyExit
Birky2	   db	     "FAT 12"

	   //   
	   // 1,2 ,    
	   // 1,2 .
PrmFlpp3:  MOV	     AL, 03h   //  - 03h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX,  Birky3 // .
	   MOV	     DH, 01h   //   .
	   MOV	     CH, 76    //  - 76
	   MOV	    ECX, 2560  //  - 2560
	   MOV	     CL, 1     // -     .
	   MOV	    ECX, 01FFh //     - 512
	   MOV	    EDX, Sct3  //   
	   //  ,     
	   //      
	   //,   () .
Sct3	   db	     512 Dup (?)
REP	   STOSB     //  
	   JMP	     FloppyExit
Birky3	   db	     "FAT 12"


	   //   
	   // 720 .    
	   // 1,44 .
PrmFlpp4:  MOV	     AL, 04h   //  - 04h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX, OFFSET Birky // .
	   MOV	     DH, 01h   //   .
	   MOV	     CH, 40    //  - 40
	   MOV	    ECX, 1423  //  - 1423
	   MOV	     CL, 1     // -     .
	   MOV	    ECX, 01FFh //     - 512
	   MOV	    EDX, Sct4  //   
	   //  ,     
	   //      
	   //,   () .
Sct4	   db	     512 Dup (?)
REP	   STOSB     //  
	   JMP	     FloppyExit


	   //   
	   // 1,44 .   c 
	   // 1,44 .
PrmFlpp5:  MOV	     AL, 05h   //  - 05h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX, OFFSET Birky // .
	   MOV	     DH, 01h   //   .
	   MOV	     CH, 40    //  - 40
	   MOV	    ECX, 1423  //  - 1423
	   MOV	     CL, 1     // -     .
	   MOV	    ECX, 01FFh //     - 512
	   MOV	    EDX, Sct5 //   
	   //  ,     
	   //      
	   //,   () .
Sct5	   db	     512 Dup (?)
REP	   STOSB     //  
	   JMP	     FloppyExit




FloppyExit:
FindDrv:
	   POP	     EAX
	   PUSH      EBX
		      
	   //     AH  
	   //,    .
	   AND	      AH, 00001111B //  4- .
	   CMP	      AH, 0Ah
	   JNB	      AE37
	   ADD	      AH, 30h
	   JMP	      AE1
AE37:	   ADD	      AH, 37h
AE1:	   //OV        CS: Opt_2, AH

	   MOV	   EAX, OFFSET atd
	   MOV	   EDX, OFFSET atd
	   TEST   EDX,EAX 



	   //      CS:IP
	   MOV	     EAX, 0000H   //ave_ip
	   //  ASCII-.    
	   //   AH   
	   // ASCII,   .
	   AND	      AH, 11110000B  //  4-  .
	   SHR	      AH, 01	     //   .
	   SHR	      AH, 01
	   SHR	      AH, 01
	   SHR	      AH, 01	   // 8  = 1 .
	   CMP	      AH, 0Ah	   //   0  9.
	   JNB	      BF37	   //    0Ah  0Fh,  
	   ADD	      AH, 30h	   // 30h   ASCII  .
	   JMP	      BF2
BF37:	   ADD	      AH, 37h
BF2:	   MOV	     EAX, 0000H    //ip_1
	   MOV	     EDX, 0000H    //ave_ip
	   //     AH  
	   //,    .
	   AND	      AH, 00001111B //  4- .
	   CMP	      AH, 0Ah
	   JNB	      AF37
	   ADD	      AH, 30h
	   JMP	      AF1
AF37:	   ADD	      AH, 37h
AF1:	   MOV	     EAX, 0000H    //p_2
	   MOV	     EDX, 0000H    //ave_ip
	   XCHG       AH, AL
	   //  ASCII-.    
	   //   AH   
	   // ASCII,   .
	   AND	      AH, 11110000B  //  4-  .
	   SHR	      AH, 01	     //   .
	   SHR	      AH, 01
	   SHR	      AH, 01
	   SHR	      AH, 01	   // 8  = 1 .
	   CMP	      AH, 0Ah	   //   0  9.
	   JNB	      BH37	   //    0Ah  0Fh,  
	   ADD	      AH, 30h	   // 30h   ASCII  .
	   JMP	      BH2
BH37:	   ADD	      AH, 37h
BH2:	   MOV	     EAX, 0000H    //p_3
	   MOV	     EDX, 0000H    //ave_ip
	   XCHG       AH, AL
	   //     AH  
	   //,    .
	   AND	      AH, 00001111B //  4- .
	   CMP	      AH, 0Ah
	   JNB	      AH37
	   ADD	      AH, 30h
	   JMP	      AH1
AH37:	   ADD	      AH, 37h
AH1:	   MOV	     EAX, 0000H    //p_4
	   MOV	     EDX, 0000H    //ave_cs
	   //  ASCII-.    
	   //   AH   
	   // ASCII,   .
	   AND	      AH, 11110000B  //  4-  .
	   SHR	      AH, 01	     //   .
	   SHR	      AH, 01
	   SHR	      AH, 01
	   SHR	      AH, 01	   // 8  = 1 .
	   CMP	      AH, 0Ah	   //   0  9.
	   JNB	      BG37	   //    0Ah  0Fh,  
	   ADD	      AH, 30h	   // 30h   ASCII  .
	   JMP	      BG2
BG37:	   ADD	      AH, 37h
BG2:	   MOV	     EAX, 0000H    //s_1
	   MOV	     EDX, 0000H    //ave_cs

	   //     AH  
	   //,    .
	   AND	      AH, 00001111B //  4- .
	   CMP	      AH, 0Ah
	   JNB	      AG37
	   ADD	      AH, 30h
	   JMP	      AG1
AG37:	   ADD	      AH, 37h
AG1:	   MOV	     EAX, 0000H    //s_2
	   MOV	     EDX, 0000H    //ave_cs
	   XCHG       AH, AL  
	   //  ASCII-.    
	   //   AH   
	   // ASCII,   .
	   AND	      AH, 11110000B  //  4-  .
	   SHR	      AH, 01	     //   .
	   SHR	      AH, 01
	   SHR	      AH, 01
	   SHR	      AH, 01	   // 8  = 1 .
	   CMP	      AH, 0Ah	   //   0  9.
	   JNB	      BI37	   //    0Ah  0Fh,  
	   ADD	      AH, 30h	   // 30h   ASCII  .
	   JMP	      BI2
BI37:	   ADD	      AH, 37h
BI2:	   MOV	     EAX, 0000H    //s_3
	   MOV	     EDX, 0000H    //ave_cs
	   XCHG       AH, AL
	   //     AH  
	   //,    .
	   AND	      AH, 00001111B //  4- .
	   CMP	      AH, 0Ah
	   JNB	      AI37
	   ADD	      AH, 30h
	   JMP	      AI1
AI37:	   ADD	      AH, 37h
AI1:	   MOV	      EAX, 0000H   //s_4

	   //    .
	   POP	     EAX	     
	   POP	     EDX	      
	   POP	     ECX
	   POP	     EBX
	   POP	      ES
	   POP	      DS
	   POP	     ESI
	   POP	     EDI
	   POPF


	   //   CS  IP   
	   //,      
	   //NT 13h.			  
	   PUSHF	   
	   PUSH       CS	 
	   // IP      .
	   //      INT 13h.	    
	   PUSHF
	   MOV	   ECX, 0000H + 2 //edef13h + 2  //"CS"  INT 13h .
	   MOV	   ECX, 0000H	  //edef13h	 //"IP"  INT 13h .

	   //    INT 13h .
	   PUSHF
	   PUSH      EAX	 //   .
	   //  ASCII-.    
	   //   AH   
	   // ASCII,   .
	   AND	      AH, 11110000B  //  4-  .
	   SHR	      AH, 01	     //   .
	   SHR	      AH, 01
	   SHR	      AH, 01
	   SHR	      AH, 01	   // 8  = 1 .
	   CMP	      AH, 0Ah	   //   0  9.
	   JNB	      BJ37	   //    0Ah  0Fh,  
	   ADD	      AH, 30h	   // 30h   ASCII  .
	   JMP	      BJ2
BJ37:	   ADD	      AH, 37h
BJ2:	   MOV	      AH, Status1
	   POP	     EAX
	   PUSH      EAX
	   //     AH  
	   //,    .
	   AND	      AH, 00001111B //  4- .
	   CMP	      AH, 0Ah
	   JNB	      AJ37
	   ADD	      AH, 30h
	   JMP	      AJ1
AJ37:	   ADD	      AH, 37h
AJ1:	   MOV	      AH, Status2
	   POP	     EAX
	   INC	     ESI	  

	   POP	     ESI
	   POP	     EDX
	   POP	     ECX
	   POP	     EAX
GoBack:    POPF

	     //    .
Inst_Int13:  MOV     EAX, 0
	     MOV      ES,EAX
	     MOV     EDI, 1304h        //nt13Loc     //  .
	     MOV     EAX,EDI	       //   INT 13h
	     MOV     EBX,EDI	       //  
	     MOV     ESI,  Int13h_vect	  //	"
	     MOV      [SI],EAX			//    "
	     MOV      [SI+2],EBX		//    "
	     MOV     EAX, 0		     
	     MOV      ES,EAX
	     MOV     EBX, DS
	     CLI		       // .
	     MOV     EDI,  1304h       //nt13Loc     // INT 13h ....
	     MOV     EAX,  Int13h_vect //  ...
	     MOV     EDI,EAX	       //  ...
	     MOV     EDI,EBX	       //   .
	     STI		       // .	 

	     //     .
	     RET      //  INT 13h  
		      //   .

	     //eadDisk	 ENDP

//ntr13hLen   =   $ - Intr13h
//   INT 13h



//  INT 14h
ReadPort:
	  CLI	  // 
	  PUSHF   //oxpa a   IRET

	  // IOS    14
	  MOV	 EDX,1F14h
	  MOV	 ESP,08  
	  //OV	   WORD PTR [DI-08],ECX
	  //OV	   WORD PTR [SI+08],EBX

	  //,    
	  //   
	  //H EAX  , 
	  //   .
	  MOV	 EDX, OFFSET IntVect2
	  TEST	 EDX, 14h
	  INC	 EDX

	  // ,   
	  //   
	  // AH EAX,  
	  //  INT 14h   
	  //   
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	  BL, 14h   //    
	  CLD		    // 
REP	  STOSB 	    //
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0
	  
	  //   
	  //     
	  // (   
	  //    BIOS, 
	  //    , 
	  // INT 14h)
	  PUSH	 EAX  // EAX
		      //  
	  POP	 EBX  //EBX 
		      //  

	  //    AH EAX,
	  //    
	  // 
	  AAS
	  //,    AH EAX
	  //   , - 
	  //.
	  AAA
	  STOSB        //  
		       // 
		      
	  //    
	  // c   .
	  CMP	   AH, AL		       
	  CMPSB
	  SCASB 			      
	  PUSH	  EAX	    //  

	  //   AH EAX 
	  // ,  
	  //    .
	  TEST	   AH, AL
	  CMC	   //    
	  
	  //    
	  //  ,   
	  // INT 14h
	  CMP	   AH, 00h
	  JE	   RestPrt0
	  CMP	   AH, 01h
	  JE	   RestPrt1
	  CMP	   AH, 02h
	  JE	   RestPrt2
	  CMP	   AH, 03h
	  JE	   RestPrt3
	  CMP	   AH, 04h
	  JE	   RestPrt4
	  CMP	   AH, 05h
	  JE	   RestPrt5
	  CMP	   AH, 06h
	  JE	   RestPrt6
	  CMP	  EAX, 07h
	  JE	   RestPrt7

//   ,  
// ,    
//NT 14h,      ,
//  ,    .
RestPrt0:
	  MOV	    ES,EDX   //   ES
	  XOR	   EDI,EDI   //S:DI ->   
	  MOV	   EDX, OFFSET PortDrv0       //   COM1
	  INC	    WORD PTR CS: PortDrv0
	  PUSH	    WORD PTR PortDrv0
	  MOV	   EBX, OFFSET BytClast2 //  .
	  XCHG	    BH, AL	  //  
	  MOV	   EAX,ESI	  // .	     
	  MOV	   ECX, 1024	  //12 -    .
				  // :  8
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  CLD		       //  .
REP	  STOSB 	       //   .  
	  XCHG	    AL, BH     //occ   .
	  POP	   ECX	       //ECX,   .
	  //   ,  
	  //OV	     BYTE PTR ES:[DI], 0
	  JMP	    FindPort

RestPrt1:
	  MOV	    ES,EDX   //   ES
	  XOR	   EDI,EDI   //S:DI ->   
	  MOV	   EDX, OFFSET PortDrv1       //   COM2
	  INC	    WORD PTR CS: PortDrv1
	  PUSH	    WORD PTR PortDrv1
	  MOV	   EBX, OFFSET BytClast2 //  .
	  XCHG	    BH, AL	  //  
	  MOV	   EAX,ESI	  // .	     
	  MOV	   ECX, 1024	  //12 -    .
				  // :  8
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  CLD		       //  .
REP	  STOSB 	       //   .  
	  XCHG	    AL, BH     //occ   .
	  POP	   ECX	       //ECX,   .
	  //   ,  .
	  //OV	     BYTE PTR ES:[DI], 0
	  JMP	    FindPort

RestPrt2:
	  MOV	    ES,EDX   //   ES
	  XOR	   EDI,EDI   //S:DI ->   
	  MOV	   EDX, OFFSET PortDrv2       //   COM3
	  INC	    WORD PTR CS: PortDrv2
	  PUSH	    WORD PTR PortDrv2
	  MOV	   EBX, OFFSET BytClast2 //  .
	  XCHG	    BH, AL	  //  
	  MOV	   EAX,ESI	  // .	     
	  MOV	   ECX, 1024	  //12 -    .
				  // :  8
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  CLD		       //  .
REP	  STOSB 	       //   .  
	  XCHG	    AL, BH     //occ   .
	  POP	   ECX	       //ECX,   .
	  //   ,  .
	  //OV	     BYTE PTR ES:[DI], 0
	  JMP	    FindPort

RestPrt3:
	  MOV	    ES,EDX   //   ES
	  XOR	   EDI,EDI   //S:DI ->   
	  MOV	   EDX, OFFSET PortDrv3       //   COM4
	  INC	    WORD PTR CS: PortDrv3
	  PUSH	    WORD PTR PortDrv3
	  MOV	   EBX, OFFSET BytClast2 //  .
	  XCHG	    BH, AL	  //  
	  MOV	   EAX,ESI	  // .	     
	  MOV	   ECX, 1024	  //12 -    .
				  // :  8
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  CLD		       //  .
REP	  STOSB 	       //   .  
	  XCHG	    AL, BH     //occ   .
	  POP	   ECX	       //ECX,   .
	  //   ,  .
	  //OV	     BYTE PTR ES:[DI], 0
	  JMP	    FindPort

RestPrt4:
	  MOV	    ES,EDX   //   ES
	  XOR	   EDI,EDI   //S:DI ->   
	  MOV	   EDX, OFFSET PortDrv4       //   LPT1
	  INC	    WORD PTR CS: PortDrv4
	  PUSH	    WORD PTR PortDrv4
	  MOV	   EBX, OFFSET BytClast2 //  .
	  XCHG	    BH, AL	  //  
	  MOV	   EAX,ESI	  // .	     
	  MOV	   ECX, 1024	  //12 -    .
				  // :  8
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  CLD		       //  .
REP	  STOSB 	       //   .  
	  XCHG	    AL, BH     //occ   .
	  POP	   ECX	       //ECX,   .
	  //   ,  .
	  //OV	     BYTE PTR ES:[DI], 0
	  JMP	    FindPort

RestPrt5:
	  MOV	    ES,EDX   //   ES
	  XOR	   EDI,EDI   //S:DI ->   
	  MOV	   EDX, OFFSET PortDrv5       //   LPT2
	  INC	    WORD PTR CS: PortDrv5
	  PUSH	    WORD PTR PortDrv5
	  MOV	   EBX, OFFSET BytClast2 //  .
	  XCHG	    BH, AL	  //  
	  MOV	   EAX,ESI	  // .	     
	  MOV	   ECX, 1024	  //12 -    .
				  // :  8
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  CLD		       //  .
REP	  STOSB 	       //   .  
	  XCHG	    AL, BH     //occ   .
	  POP	   ECX	       //ECX,   .
	  //   ,  .
	  //OV	     BYTE PTR ES:[DI], 0
	  JMP	    FindPort

RestPrt6:
	  MOV	    ES,EDX   //   ES
	  XOR	   EDI,EDI   //S:DI ->   
	  MOV	   EDX, OFFSET PortDrv6       //   USB1
	  INC	    WORD PTR CS: PortDrv6
	  PUSH	    WORD PTR PortDrv6
	  MOV	   EBX, OFFSET BytClast2 //  .
	  XCHG	    BH, AL	  //  
	  MOV	   EAX,ESI	  // .	     
	  MOV	   ECX, 1024	  //12 -    .
				  // :  8
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  CLD		       //  .
REP	  STOSB 	       //   .  
	  XCHG	    AL, BH     //occ   .
	  POP	   ECX	       //ECX,   .
	  //   ,  .
	  //OV	     BYTE PTR ES:[DI], 0
	  JMP	    FindPort

RestPrt7:
	  MOV	    ES,EDX   //   ES
	  XOR	   EDI,EDI   //S:DI ->   
	  MOV	   EDX, OFFSET PortDrv7       //   USB2
	  INC	    WORD PTR CS: PortDrv7
	  PUSH	    WORD PTR PortDrv7
	  MOV	   EBX, OFFSET BytClast2 //  .
	  XCHG	    BH, AL	  //  
	  MOV	   EAX,ESI	  // .	     
	  MOV	   ECX, 1024	  //12 -    .
				  // :  8
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  db	   236	//N	  EAX,EDX     //
	  CLD		       //  .
REP	  STOSB 	       //   .  
	  XCHG	    BH, AL     //occ   .
	  POP	   ECX	       //ECX,   .
	  //   ,  .
	  //OV	     BYTE PTR ES:[DI], 0
	  JMP	    FindPort

	  //   AL.    
	  //      : , 
	  //       (,  ).
FindPort: CMP	    AL, 0    
	  JE	    PrtRd    //  = 0,  .
	  CMP	    AL, 1
	  JE	    PrtWrt   //  = 1,  .
	  JG	    Quit3    //  > 1,   
			     //.

	 //  ,   
	 //  .					 
PrtRd:	 //   .
	 DEC  EDX
	 DEC  EDX		      //EG (xF8)
	 SUB   AH,AH		   
	 db	  236  //N    AL,EDX  //   .
	 MOV  EBX, OFFSET COM1EPTR
	 MOV  EDX,EBX
	 INC  EBX		   
	 CMP  EBX, OFFSET COM1ENDB	   // ?
	 JNE   ISR0220		   //. ,   
				   //  .
	 MOV  EBX, OFFSET COM1STRT

ISR0220: CMP  EBX, OFFSET COM1SPTR	   //,     .
	 JE    ISR0240		   //.  .

	 MOV  EBX, OFFSET COM1EPTR
	 MOV  EBX,EDX
	 MOV   [BX],AL		   
	 OR    AH,1

	 JMP   ISR0280		   //,  .		       
ISR0240: OR    AH, 10H
ISR0280: OR    AH, 60H

	 JMP   PrtCnt		   //    .


	 //  ,   
	 //  .						     
PrtWrt:  //   .
	 MOV   AH,40H		   
	 MOV  EBX, OFFSET OUT1SPTR

	 CMP  EBX, OFFSET OUT1EPTR	   //   ?
	 JE    ISR0480		   //.    .   
	 DEC  EDX
	 DEC  EDX		   //EG (xF8)
	 MOV  EAX,EBX
	 db	  238  //UT  EDX,EAX		   //   .
	 INC  EBX		   

	 CMP  EBX, OFFSET OUT1ENDB	   //   ?
	 JNE   ISR0420		   //,     ,
	 MOV  EBX, OFFSET OUT1STRT	   // .
ISR0420: MOV  EDX, OFFSET OUT1SPTR
	 OR    AH,20H					      

	 CMP  EBX, OFFSET OUT1EPTR	  //   ?
	 JE    ISR0480		   //,     ,
				   // .
	 AND   AH,10111111B
ISR0480: OR    AH, 60h		   //OM1LINE

	 //    ,
	 //   
	 //     .
	 //     ,
	 //   .
	 //ORTY    PROC
	 //     
PrtCnt:  MOV	  ECX, 0264h
	 MOV	  EDX, OFFSET PortSys
	 CLD
REP	 MOVSB	   //  

	 //oxpaEAX  
	 PUSH	  EAX
	 IN	   AL, 0Ah    // 
	 CMP	   AL, 0

	 //   ?
	 POP	  EAX	      //EAX

	 //    
	 MOV	  EDX, OFFSET Old_Port

	 //     ,
	 //  (20h)   .	  
	 MOV	  EAX,	OFFSET PortSys
	 XCHG	   AH, AL
	 OUT	   20h, AL
	 IN	   AL, 20h
	 //    
	 PUSH	  EBP
	 MOV	  EBP,ESP

	 //     ,  
	 //  .   ,
	 //  ,  2  (
	 //USHEAX  PUSHEBP)
	 //OV	    WORD PTR 4[BP],  Old_Port
	 POP	  EBP	//occEBP
	 
	 //    INT 14h.
	 PUSH EBX
	 PUSH ECX
	 PUSH EDX
	 PUSH ESI
	 PUSH  ES
	 PUSH  DS		   //   
	 MOV  EBX,CS		   //.
	 MOV   DS,EBX		    //   .
	 MOV  ESI,EDX		    //S232    ESI.
	 SHL  ESI,1		   // .
	 MOV  EBX,40H		   //  .
	 MOV   ES,EBX		    //    .
	 MOV  EDX, OFFSET RS232_BASE	   // RS232   .
	 OR   EDX,EDX		    //    .
	 JE    ISR1000		   //   .
	 MOV   BL,AH		   //   2- .
	 SUB   BH,BH		   //   BH.
	 CMP  EBX, 0202h	   //  ?
	 JGE   Quit3		   //,  .
	 SHL  EBX,1		   // ,   .
	 MOV  EBX, OFFSET Option0  //OUTINES //    EBX.

ISR1000: STI			   //    
	 PUSH ESI		   // 1
	 MOV  ESI,0		   
	 JMP   SHORT ISR0100	   //    .
ISR2000: STI			   // .   
	 PUSH ESI		   // 2
	 MOV  ESI,2		   

	 //  .
ISR0100: PUSH EAX	  //  .
	 PUSH EBX
	 PUSH ECX
	 PUSH EDX
	 PUSH  DS

	 // HALFSTAT.
	 CLI			   // 
	 MOV   AH,60h		   //OM1LINE
	 MOV   BH,AH		   
	 AND   BH,01100001B	   
	 MOV   BH,60h		   //OM1LINE
	 STI			   // .		      
       
	 //    
	 //    .
	 MOV  EAX,40H		   
	 MOV   DS,EAX
	 MOV  EDX,ESI
	 MOV  EAX,CS
	 MOV   DS,EAX
ISR0120: MOV  EDX, OFFSET COMMBASE
	 INC  EDX
	 INC  EDX		   
	 db	  236  //N    AL,EDX
	 TEST  AL,1		   //   ?

	 JNZ   ISR0140		   //.  ,    
	 CBW			   // .		 
	 MOV  ECX, 8		   //  .
	 MOV  EBX,EAX
	 MOV  EBX, 0000H	   //SRTABLE //   EBX.

	 JMP   ISR0120		   //,  ,   
				   //   .

	//     
	//  .
ISR0140:	 
	 CLI			   // .
	 MOV AL,20H				      
	 OUT 20H,AL			     
	 STI			   // .

	 //    . 
	 // COMMAND0 PROC  NEAR
	 MOV   AH,AL		   //    .
	 ADD  EDX,03		   //    (xFB).
	 MOV  EAX,0080H 	     //  .
	 db	  238  //UT  EDX,EAX		   // = 1.

	 //   , EBX.	 
	 MOV   BL,AH		   
	 MOV   CL,04		   
	 ROL   BL,CL		   
	 AND  EBX,0EH		   
	 MOV  ECX,0016H
	 MOV  EBX, 1047H //AUDTABL

	 //   8250
	 SUB  EDX,2		   //SB (xF9)
	 MOV   AL,BH		   
	 db	  238  //UT  EDX,EAX
	 DEC  EDX		   //SB (xF8)
	 MOV   AL,BL		   
	 db	  238  //UT  EDX,EAX

	 //     8250
	 ADD  EDX,3		   //EG  (xFB)
	 MOV   AL,AH		   
	 AND   AL,00011111B	   
	 db	  238  //UT  EDX,EAX

	 //   8250  .
	 INC  EDX		   //EG (xFC)
	 MOV   AL,00001101B	   
	 db	  238  //UT  EDX,EAX
	 SUB  EDX,3		   //EG (xF9)
	 MOV   AL,00001111B	   
	 db	  238  //UT  EDX,AL

	 //      IRQ.
	 DEC  EDX		   //EG (xF8)
	 db	  236  //N    AL,EDX
	 INC  EDX
	 INC  EDX		   //IR (xFA)
	 db	  236  //N    AL,EDX
	 ADD  EDX,3		   //EG (xFD)
	 db	  236  //N    AL,EDX
	 INC  EDX		   //SR (xFE)
	 db	  236  //N    AL,EDX
	 AND   AL,11110000B	   
	 MOV  ESI, 00h	      //OM1MODM
	 MOV  EDI,ESI
	 MOV   AL, 60H
	 MOV  ESI, 60h	      //OM1LINE

	 //      IRQ.
	 MOV  EBX, OFFSET COM1STRT    //   (IN)  .
	 MOV  ESI,EBX
	 MOV  EBX, OFFSET COM1EPTR
	 MOV  ESI, 00h		      //   (OUT)  .
	 MOV  EDX, OFFSET OUT1SPTR
	 MOV  ESI,EBX

	 //  IRQ    8259 
	 //  .
	 MOV  ECX,ESI		    //   .
	 SHR   CL,1		   //  0  1
	 NEG   CL		   // 0  -1 (-1 = COM2)
	 ADD   CL,4		   //    3  4 (COM1=4)
	 MOV   AH,0FEH		   //  .
	 ROL   AH,CL		   //   8259  .
	 CLI			   // .	       
	 IN    AL,21H		   //   .     
	 AND   AL,AH		   //  8259   .
	 OUT   21H,AL		   //    .
	 STI			   // .		


	 //  2-     .
	      
	 //     ,  .
	 // COMMAND3 PROC  NEAR
	 CLI			   // .   
	 MOV   AL,00h		   //OM1MODM
	 MOV   BL,AL		   
	 AND   AL,10110000B	   
	 MOV  ESI,0202h 	   //OM1MODM
	 MOV   AH,BL
	 MOV   BH,AH		   
	 AND   BH,01100001B	   
	 MOV  ESI, 00h		   //OM1LINE
	 STI			   // .	      
	 MOV   AL,BL		   


	 //      .
	 // COMMAND1 PROC  NEAR
	 MOV   BH,AL		   //   .

	 //    .
	 ADD  EDX,4		   //EG (xFC)
	 db	  236  //N    AL,EDX
	 OR    AL,03		   
	 db	  238  //UT  EDX,AL		  //CR

	 //      
	 MOV   AH,80H

	 //      , 
	 //  .
	 // WAITDSR.  
	 MOV  EBX, OFFSET RS232_TIM_OUT
	 SUB  ECX,ECX		    //  .
WAIT100: MOV   AL,00h		   //OM1MODM
	 AND   AL,30H					 

	 CMP   AL,30H		   //   = 30.
	 JE    WAIT200		   //,   30,   .
	 MOV  ECX,1024		   //  - 1024
	 //OOP	WAIT100 	   //   (. ).

	 DEC   BL			    
	 JNZ   WAIT100		   //    .
	 STC						  

WAIT200: JC    COM0295		   //    
				   //   .
	 MOV  EBX, OFFSET RS232_TIM_OUT
	 SUB  ECX,ECX
COM0220: TEST ESI,60h		   //OM1LINE
	 JNZ   COM0230		   //.    
				   //.
	 //OOP	COM0220 	   //  65536  (. ) 
	 DEC   BL		   
	 JNZ   COM0220		   //  ,   .
	 JMP   SHORT COM0295	   //  =    .

COM0230: MOV   AL,BH		   //   AL.
	 CLI			   // .
				   
	 TEST ESI,60h		   //OM1LINE
	 JNZ   COM0260		   //.     40-.
				  
	 //    ,   .	 
	 MOV  EBX, OFFSET OUT1EPTR
	 MOV   BH,AL
	 INC  EBX		   
	 CMP  EBX, 0000h	   //UT1ENDB
	 JNE   COM0240		   //.   , 
				   //.
	 MOV  EBX,OFFSET OUT1STRT
COM0240: CMP  EBX,0000h  //UT1SPTR  //  .
	 JNE   COM0250		   //,     .
	 OR   EDX,EBX
COM0250: STI			   // .
	 MOV  EBX, OFFSET OUT1EPTR
	 JMP   SHORT COM0290	   //    
				   //.
	 //   
	 //  .	      
COM0260:
	 AND  ESI,10111111B	   //TRT ISR.
	 STI			   // .
	 SUB  EDX,4		   //MIT (xF8)
	 db	  238  //UT  EDX,AL

COM0290: // HALFSTAT.
	 CLI			   // 
	 MOV   AH,60h		   //OM1LINE
	 MOV   BH,AH		   
	 AND   BH,01100001B	   
	 MOV   BH,60h		   //OM1LINE
	 STI			   // .		      

COM0295:
	 //    .
	 // COMMAND2 PROC  NEAR
	 MOV   EBX, OFFSET RS232_TIM_OUT
	 SUB   ECX,ECX

COM0320: TEST ESI,1

	 JNZ   COM0340		   //.   .
	 //OOP	COM0320 	   //   .
				   //  65536  (. )
	 DEC   BL		   

	 JNZ   COM0320		   //   ,  .
	 
	 // HALFSTAT.
	 CLI			   // 
	 MOV   AH,60h		  //OM1LINE
	 MOV   BH,AH		   
	 AND   BH,01100001B	   
	 MOV   BH,60h		  //OM1LINE
	 STI			   // .		      

	 OR    AH,80H
	 JMP   SHORT COM0390	   //    .

COM0340: // COMMAND4 PROC  NEAR
	 //     .
	 CLI   // .
	 MOV   AH, 60h		   //OM1LINE
	 AND  ESI, 60h		   //OM1LINE
	 MOV  EBX, OFFSET COM1SPTR
	 CMP  EBX, 0000h	   //,     ?
	 JE    COM0560		   // ,           
				   //.
       
COM0540: //     .
	 MOV   AL,[BX]		   
	 INC  EBX		   
	 CMP  EBX, 0000h	   //OM1ENDB	     //   ?
	 JNE   COM0550		   //.   , .
	 MOV  EBX,OFFSET COM1STRT
COM0550: MOV  EDX,EBX
	 CMP  EBX,OFFSET COM1EPTR	  //   ,  ?
	 JNE   COM0580		   //. ,     .

	 // ,    .
COM0560: AND   AL,60h		  //OM1LINE
	 AND   AH,0FEH		   
	 //    .
COM0580: STI   // .

	 // HALFSTAT.
	 CLI			   // 
	 MOV   AH,60h		  //OM1LINE
	 MOV   BH,AH		   
	 AND   BH,01100001B	   
	 MOV   BH,60h		  //OM1LINE
	 STI			   // .		      

COM0390: AND   AH,10011110B


	 //   
	 //  / .
	 // ISRLINE  PROC  NEAR
	 ADD  EDX,3	      //EG (xFD)
	 db	  236	      //N    AL,EDX
	 AND   AL,00011110B	   
	 OR   ESI, 60H	      //OM1LINE


	 //   
	 //     .   
	 //  ,  COM.x
	 // ISRMODEM PROC  NEAR
	 ADD  EDX,4		   //     (xFE).
	 db	  236  //N    AL,EDX		   //    .
	 MOV   AH,AL		   //      .
	 AND   AH,11110000B	   //   .
	 OR    AL,00h		   //OM1MODM	     //  .
	 AND   AL,01001111B								     
	 OR    AL,AH							  
	 MOV  ESI, 60H		   //OM1MODM	    //     .


	 //    
	 //,   
	 // 
	 //2h -    (
	 //IP-Drive,      ..)
	 PUSH	  EAX
	 POP	  EBX
	 MOV	  EAX, 77h
	 IN	  EAX, 77h
	 OUT	   77h,EAX

	 //  ()   .
FreePort:
	 MOV	   DH, 0077h   //7h -  
			       //) .
	 MOV	  EBX, 1       // .
	 MOV	  ECX, 36      // 36 .	  

	 //     FAT 
	 //   
	 MOV	  EDX, OFFSET SizePrt	     // .
	 XCHG	   DH, DL	 //    .
	 db	  236  //N	 EAX,EDX	//   .
	 db	  238  //UT	 EDX,EAX	//    .
	 MOV	  ECX, 68	 //    .
	 MOV	  EDX, OFFSET SizeColn1 // .
	 XCHG	   DH, DL	 //    .
	 db	  236  //N	 EAX,EDX	//   .
	 db	  238  //UT	 EDX,EAX	//    .
	 MOV	  ECX, 68	 //    .
	 MOV	  EDX, OFFSET SizeColn2 // .
	 XCHG	   DH, DL	 //    .
	 db	  236  //N	 EAX,EDX	//   .
	 db	  238  //UT	 EDX,EAX	//    .
	 MOV	  ECX, 68	 //    .
	 MOV	  EDX, OFFSET SizeColn3 // .
	 XCHG	   DH, DL	 //    .
	 db	  236  //N	 EAX,EDX	//   .
	 db	  238  //UT	 EDX,EAX	//    .
	 MOV	  ECX, 68	 //    .
	 MOV	  EDX, OFFSET SizeColn4 // .
	 XCHG	   DH, DL	 //    .
	 db	  236  //N	 EAX,EDX	//   .
	 db	  238  //UT	 EDX,EAX	//    .
	 MOV	  ECX, 68	 //    .
	 MOV	  EDX, OFFSET SizeColn5 // .
	 XCHG	   DH, DL	 //    .
	 db	  236  //N	 EAX,EDX	//   .
	 db	  238  //UT	 EDX,EAX	//    .

	 //    
	 //.		  
	 POP	  EAX  //  
	 PUSH	  ECX  //  
	 POP	  EBX  //  
	 ADD	   AL,00
	 OR	  EDI,15
	 NOP	   // , 
		   // 


	 //    .
	 ADD	  ECX, 0000H	//td4
	 DEC	  ECX
	 DEC	  EAX
	 INC	  EBX
	 ADD	  EBP,ESI
	 ADD	  EBX,EDI
	 ADD	  EBP,ESI
	 LOOPNE    CntrDTk
CntrDTk: INC	  EAX
	 OR	  ESI,EAX
	 //R	    Word Ptr [BX+SI],EAX
	 ADC	  EBX,ESI
	 ADD	  EBX,ESI
	 ADC	  EBX,ESI
	 ADD	  EBX,ESI
	 ADC	  EBX,ESI
	 ADD	  EBX,EDI
	 SUB	  EBP,ESI
	 ADC	   AL,2Fh
	 PUSH	   ES
	 PUSH	  EDX
	 INC	  ECX
	 PUSH	  EBX
	 INC	  EBX
	 INC	  EDX
	 DEC	  ECX
	 DEC	  EDI
	 PUSH	  EBX
	 AND	  EBX,ESI
	 AND	  EBP,41
	 PUSH	  ESP
	 XOR	  EBP,ESI
	 AND	  EBX,ESI
	 AND	  EBP,EDI
	 MOV	  EDX, OFFSET BytClast2
	 MOV	   SS,ECX
	 MOV	  ESP,7BFCh
	 PUSH	   SS
	 POP	   ES
	 MOV	  EBP,0078
	 MOV	  ESI,0000h
	 PUSH	   DS
	 PUSH	  ESI
	 PUSH	   SS
	 PUSH	  EBP
	 MOV	  EDI,0522
	 MOV	  EBP,EDI
	 MOV	  EBP,ECX

	 //     
PortKech:
	 POP	   ES	       // 
	 POP	  EAX	       //
	 ADD	   AL, "0"     //   
	 MOV	   AH, 4Eh     //   
	 MOV	  EAX, 1690
	 MOV	   AL, 0Eh	// EOI
	 PUSH	  EAX
	   
	 //a     
	 IN	   AL, 21h     //  
	 AND	   AL, 0FEh    //   0
	 OUT	   0Ah, AL     //   


	 //   
	 //  
	 // FAT
	 IN	  EAX, 0Ah
	 MOV	  ECX, 0512  // 
	 MOV	  EDX, OFFSET SizePrt  //   
	 MOV	  EBX,ESI
	 db	   215	   //LAT      // 
	 CLD
REPE	 CMPSB	   //
    
	 //   
	 IN	  EAX, 0Ah  
	 MOV	  EAX,8     //   
	 MOV	  ECX,0512  // 
	 MOV	  EDX, OFFSET SizePrt //   
	 CLD	   // 
REPE	 CMPSB	   //

	  //  
	  // 
Regs2:	  PUSH	    ES
	  POP	    DS
	  MOV	   EAX, 0008h
	  MOV	   EBP, 7C00h
	  //OV	     Byte Ptr [DI-02],0Fh
	  MOV	   ECX, 0Fh  // 16 
	  CLD	    // 
REP	  MOVSB     //

	  //  - 
	  //  Boot Master.
	  //,     
	  //   
	  //.
	  MOV	   EBX, OFFSET BadSector2
	  IN	   EAX, 0Ah
	  CMP	   EAX, 255
	  //,    
	  //,     ,
	  //      .
	  JGE	    DTk3

	  //,    
	  //,     ,
	  //      .
	  //     
	  //     (
	  // )
	  MOV	   EAX,ECX
	  CWD	    //  
	  SUB	   EBX, 3Ah
	  MOV	   EAX, 7C1Ch
	  CMP	   EAX, 0008h
	  MOV	    DL, 04
	  OR	    DL,02
	  MOV	   EBP,02
	  ADD	    BL,10

	  //   
	  //   
	  XOR	   ECX,ECX
	  MOV	   EAX, OFFSET Dpt4
	  //OV	     AL, Byte Ptr [BP+10]
	  CBW	    //  
	  MUL	   EBP
	  ADC	   EDX,ECX
	  PUSH	   EAX
	  MUL	   ESI
	  ADD	   EAX,EBX
	  DEC	   EAX
	  DIV	   EBX
	  POP	   EAX
	  MOV	   EDI,ESI

	 //    
	 //  .
	 CMP	  ECX, 0000H	   //pt4
	 PUSH	  EAX
	 MOV	   CL,0Bh
	 MOV	  ESI,7D08h
REPZ	 CMPSB
	 POP	  EAX
	 DEC	  ESI
	 ADD	  EDI,20
	 CMP	  EDI,EBX
	 MOV	  EDX, OFFSET Dpt4



	   //     
	   //     (
	   // )
TwoRead:   MOV	    EAX,ECX
	   CWD	     //  
	   SUB	    EBX, 3Ah
	   MOV	    EAX,7C1Ch
DTk1:	   CMP	    EAX,0008h
	   MOV	     DL,04
	   JNZ	     DTk2
	   OR	     DL,02
	   MOV	    EBP,02
DTk2:	   ADD	     BL,10
			      

	   //   
	   //   
DTk3:	   XOR	    ECX,ECX
	   MOV	    ECX, OFFSET Dpt4
	   MOV	     AL, 10
	   CBW	     //  
	   //UL      EBP,16
	   ADD	    EAX,EBP
	   //DC      EDX,Word Ptr [BP+1Eh]
	   //DD      EAX,Word Ptr [BP+0Eh]
	   ADC	    EDX,ECX
	   MOV	    ESI,EBP
	   PUSH     EAX
	   //OV       Word Ptr [BP-04],EAX
	   //OV       Word Ptr [BP-02],EDX
	   MOV	    EAX,0020
	   MUL	    ESI
	   //OV      EBX,Word Ptr [BP+0B]
	   ADD	    EAX,EBX
	   DEC	    EAX
	   //.       //IV	EBX
	   //DD       Word Ptr [BP-04],EAX
	   //DC       Word Ptr [BP-02],ECX
	   POP	    EAX
DTk5:	   MOV	    EDI,0700



	 //     
	 //   
	 MOV	  ECX, 512 // 
	 MOV	  EAX, OFFSET BytClast2
	 MOV	   ES,EAX
	 MOV	  ESI,	00H   //ytClast2
	 MOV	  EDI,	00H   //ytClast2
REPE	 CMPSB	   // 

	 //  , 
	 //    
	 // (, , ,
	 //      ..)
	 MOV	  ECX, 1024	  //ytClast2Len
	 MOV	  EAX, DS  //acpo 
	 MOV	   ES,EAX  //ecp   a
	 MOV	  ESI, 00H //ytClast2
	 MOV	  EDI, 00H //ytClast2 // 
REP	 MOVSB	   //    

	 //    
	 //    
	 OUT	   0Ah,EAX
	 MOV	  EAX,8     //   
	 MOV	  ECX,0512  // 
	 MOV	  EDX, OFFSET SizePrt //   
	 CLD
REPE	 CMPSB //

	 //  
	 MOV	  ECX, 01
	 MOV	  EAX, OFFSET Bytes2
	 SBB	   AL, 00
	 db	   215	   //LAT
REP	 STOSB

	 //  
	 MOV	  ECX, 1024
	 MOV	  EBX, OFFSET BytClast2
	 db	   215	   //LAT
	 CLD
REP	 STOSB		       
	 LAHF	   //    AH
	 PUSHF	   //   
	 POP	  EAX

	 //   
	 IN	  EAX, 0Ah  
	 MOV	  EAX, 8     //   
	 MOV	  ECX, 0512  // 
	 MOV	  EDX, OFFSET SizePrt //   
	 CLD		    
REP	 SCASB	   //pa 

	 //     
	 //   
	 MOV	  ECX, 512 // 
	 MOV	  EAX, OFFSET BytClast2
	 MOV	   ES,EAX
	 MOV	  ESI, 00H    //ytClast2
	 MOV	  EDI, 00H    //ytClast2
REPE	 CMPSB	   // 

	 //  , 
	 //    
	 // (, , ,
	 //      ..)
	 MOV	  ECX, 1024h	  //ytClast2Len
	 MOV	  EAX, DS  //acpo 
	 MOV	   ES,EAX  //ecp   a
	 MOV	  ESI, 00H //ytClast2
	 MOV	  EDI, 00H //ytClast2 // 
REP	 MOVSB	   //    

	 //    
	 //    
	 OUT	   0Ah,EAX
	 MOV	  EAX, 8     //   
	 MOV	  ECX, 0512  // 
	 MOV	  EDX, OFFSET SizePrt //   
	 CLD		    
REP	 SCASB	   //pa 

	 //    
	 PUSH	  EAX
	 POP	  EBX
	 MOV	   AL, 0232
	 MOV	   DH, 0032
	 MOV	  ECX, 08
	 MOV	  ESI, 00
REP	 STOSB

	 DEC	  ESP
	 LAHF	   //    AH
	 PUSHF	   //   
	 PUSH	  EAX
	 PUSH	  EBX
	 PUSH	  EDX
	 POP	  ECX
	 ADD	   AH,BH		      
REP	 SCASB	   //pa 
	 POP	  EAX

	 //     
	 MOV	  EDX, OFFSET Path2
	 PUSHF
	 PUSH	  EAX
	 PUSH	  EBX
	 ////	   DB	     240, 1	//. 
	 SBB	  EAX,EBP

	 MOV	   AL,08    //   .
	 SBB	  EBX,ESP
	 MOV	  ECX,0512  //   
	 MOV	  EDX, OFFSET PortSys
	 db	   215	    //LAT      // .
	 CLD		    //   , 
	 REP	   STOSW    // .		  
	 //ORTY    ENDP
	   
	 //     ,  
	 //  .
	 //     .
ReadPrt:
	  ADD	   ECX, 0000H		//td4
	  DEC	   ECX
	  DEC	   EAX
	  INC	   EBX
	  ADD	   EBP,ESI
	  ADD	   EBX,EDI
	  ADD	   EBP,ESI
	  LOOPNE    CntrTk2
CntrTk2:  INC	   EAX
	  OR	   ESI,EAX
	  //R	     Word Ptr [BX+SI],EAX
	  ADC	   EBX,ESI
	  ADD	   EBX,ESI
	  ADD	   EBX,ESI
	  ADD	   EBX,ESI
	  ADD	   EBX,ESI
	  ADD	   EBX,ESI
	  ADD	   EBX,ESI
	  SUB	   EBP,ESI
	  ADC	    AL,2Fh
	  INC	   ECX
	  INC	   EBX
	  INC	   EDX
	  DEC	   ECX
	  DEC	   EDI

	  PUSH	    SS
	  POP	    ES		
	  MOV	   ESP,7BFCh
	  MOV	   EBP,0078
	  MOV	   ESI,EBP
	  CLD
REP	  CMPSB     //

	  PUSH	    DS
	  PUSH	   ESI
	  PUSH	    SS
	  PUSH	   EBP
	  MOV	   EDI,0522
	  MOV	   EBP,EDI
	  MOV	   EBP,ECX
	  MOV	   EDX, OFFSET BytClast2
	  CLD
REP	  CMPSB     //

	  //  
	  // 
	  PUSH	    ES
	  POP	    DS
	  MOV	   EAX, 0008h
	  MOV	   EBP, 7C00h
	  MOV	   EDI, 0Fh
	  MOV	   ECX, 0Fh  // 16 
	  CLD	    // 
REP	  MOVSB     //


	  // -  
	  //     
	  //OS-   INT 14h
	  MOV	   EAX, OFFSET Atd6
	  MOV	   EAX, OFFSET Dpt4
	  XOR	   EDX, EDX
	  DIV	   ESI
	  INC	   EDX
	  //.     //IV	Word Ptr [BP+1Ah]
	  MOV	    DH, DL
	  MOV	    CH, AL
	  MOV	    AH, 02
	  OR	    CL, AH
	  MOV	   EAX, 0208
	  MOV	   EDX, OFFSET Dpt4
	  INC	   EAX
	  INC	   EDX
	  ADD	   EBX,0Bh
	  DEC	   ECX
	  PUSH	   EDX
	  PUSH	   EAX
	  PUSH	   EDX
	  XOR	    AL, AL  
	  CMP	   EAX,EDX 
	  TEST	   EAX,EDX 
	  OUT	    13h,EAX
	  db	   236	//N	  EAX,EDX
	  MOV	   EAX, 0512h
	  db	   238	//UT	  EDX,EAX
	  db	   236	//N	  EAX,EDX
	  CMP	   EDX, 0Ah
	  //,  ,    
	  //,   .
	  JE	    DTk20	//   /.
	  JNE	    Quit3	//,    .


	  // ,     
	  //    
	  //
DTk20:	  CLI	    // 

	  //   ES 
	  //  .
	  MOV	   EAX, 0B800h
	  MOV	    ES,EAX
	  //   ,   
	  //  IOS,    BIOS  DOS
	  MOV	    AH, 14h	//  
	  MOV	    AL, "!"	//  
	  MOV	   EAX, 0	//   
	  MOV	   EAX, 2	// 
	  MOV	   EAX, 4	// 
	  MOV	    AH, 75h	//  
	  MOV	    AL,0	//  
	  MOV	   EBX, (160 * 24) + (77 * 2) //    
	  MOV	   EBX,EAX
	  MOV	   EBX,EAX
	  MOV	   EBX,EAX
	  //c    ,  
	  //   IOS,   
	  //IOS  DOS
//	   PUSH 0
//	   PUSH OFFSET Err_Info   
//	   PUSH OFFSET Err_Info    
//	   PUSH 0
//	   CALL _imp__MessageBoxA@16

	   MOV	    EAX, 0B800h
	   MOV	    ES,  EAX
	   MOV	    EBX, OFFSET Err_Info      // 
	   MOV	    EDI, 22 * 80 * 1 + 1 * 2  //  
	   MOV	    ECX, 0052H	   //rr_InfoLen 	 // 
REP	   MOVSB     //    


	  //     .
	  PUSH	    ES
	  POP	    DS
	  //   
	  //  
DTk11:	  MOV	   ESI,7D81h
	  MOV	   EDI,1Ah
	  MOV	   EAX,EDI
	  MOV	    CL,0Dh
	  MUL	   ECX
	  ADD	   EAX,EBP
	  ADC	   EDX,EBP
	  MOV	    CL,04


	   //co 
Quit3:	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX
	   STI	     // .
	   RET	     // .	 

	   //eadPort   ENDP


//ntr14hLen   =   $ - Intr14h
//   INT 14h


//  INT 15h

MOUSE:	  
	  JMP	  MouseInit //   
IntVect15 dw	  0	   //  

MouseInit: CLI	   // 
	   PUSHF   //oxpa a   IRET
	  // IOS    15
	  MOV	 EDX,1E15h
	  MOV	 ESP,08  
	  //OV	   WORD PTR [DI-08],ECX
	  //OV	   WORD PTR [SI+08],EBX

	  //,    
	  //   
	  //H EAX  , 
	  //   .
	  MOV	 EDX, OFFSET IntVect15
	  TEST	 EDX, 15h
	  INC	 EDX

	  // ,   
	  //   
	  // AH EAX,  
	  //  INT 15h   
	  //   
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	  BL, 15h   //    
	  CLD		    // 
REP	  STOSB 	    //
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0
	  
	  //   
	  //     
	  // (   
	  //    BIOS, 
	  //    , 
	  // INT 15h)
	  PUSH	 EAX  // EAX
		      //  
	  POP	 EBX  //EBX 
		      //  

	  //    AH EAX,
	  //    
	  // 
	  AAS
	  //,    AH EAX
	  //   , - 
	  //.
	  AAA
	  STOSB        //  
		       // 
		      
	  //    
	  // c   .
	  CMP	   AH, AL		       
	  CMPSB
	  SCASB 			      
	  PUSH	  EAX	    //  

	  //   AH EAX 
	  // ,  
	  //    .
	  TEST	   AH, AL
	  CMC	   //    
	  
	  //    
	  //  ,   
	  // INT 15h 
	  CMP	   AH, 00h
	  JE	   MouseInit0
	  CMP	   AH, 01h
	  JE	   MouseInit1
	  CMP	   AH, 02h
	  JE	   MouseInit2
	  CMP	   AH, 03h
	  JE	   MouseInit3
	  CMP	   AH, 04h
	  JE	   MouseInit4
	  CMP	   AH, 05h
	  JE	   MouseInit5
	  CMP	   AH, 06h
	  JE	   MouseInit6
	  JMP	   MouseInit0

MouseInit0: //ALL     MouseFun0
	    //    
	    //  INT 15h
	    //OUSEFUN0:
	    CLI       // 
	    CMP       AH, 4Fh
	    JZ	      Mous1
	    ADD      EBP, 16
	    MOV      ESI,EBP
	    NEG      EDI
	    MOV      EAX,ESI
	    PUSH      CS
	    db	     236  //N	    EAX,EDX
	    INC      ECX
	    DEC      EDI
	    WAIT
	    INC      EDX
	    INC      EDI
	    ADD      EBX,ESI
	    ADD      EBX,ESI
	    AND      EBP,EDI
	    //OL      EBX,EDI
	    ADD      EBX,ESI
	    XOR      EBX,EDI
	    SBB      EBP,EDI
	    ADD      EBX,ESI
	    ADD      EBX,EDI
	    ADD      EBP,EDI
	    POP      ESP
	    PUSH     EDI
	    DEC      ECX
	    DEC      ESI
	    DEC      EBP
	    INC      EBP
	    POP      ESP
	    PUSH     EBX
	    DEC      EBP
	    INC      ECX
	    PUSH     EDX
	    PUSH     ESP
	    INC      ESP
	    PUSH     EDX
	    PUSH     ESI
	    INC      EBP
	    POP      EAX
	    INC      EBP
	    ADD      EBP,EDI
	    MOV      EBP,EDI
	    DEC      EBX
	    MOV      EBX,3720
	    SHL      EBX,1
	    //CR       Word Ptr [BP+SI-04],1
	    SBB      ESI,3686
	    MOV      ESI,534Dh
	    INC      ECX
	    PUSH     EDX
	    PUSH     ESP
	    INC      ESP
	    PUSH     EDX
	    PUSH     ESI
	    SBB      EBX,6600
	    MOV      EBP,EDI
	    //b       240      //OCK
	    XCHG     EAX,EDI
	    //DD       CH,EDI
	    ADD      EBP,16
	    db	      111      //UTSW
	    ADD      EDI,16
	    db	      109      //NSW
	    PUSH      SS
	    ADD      EDI,EDI

Mous1:	    CMP       AL,53
	    JNE       Mous2
	    PUSH     EAX
	    PUSH      ES
	    MOV      EAX,0040
	    MOV       ES,EAX
	    MOV       AL,0017
	    TEST      AL,08
	    JZ	      Mous2
	    TEST      AL,04

Mous2:	    POP       ES
	    POP      EAX
	    JZ	      Mous3
	    CMP      ECX,167Eh
	    JNZ       Mous4
	    CMP       AH,88
	    JZ	      Mous4
	    CMP      EAX,0229h
	    JZ	      Mous5
	    CMP       AH,87
	    JZ	      Mous3
	    JMP       Mous6		     

Mous3:	    XOR      EBX,EBX
	    XOR      EAX,EAX
Mous4:	    CMP       AH,4Fh
	    JNZ       Mous6
	    CMP       AL,01
	    JNZ       Mous7
Mous5:	    INC      EDI
	    ADD       BH,BH
	    //EC      ESI,02
	    INC      EDI
	    STD
	    ADD      EAX,9999h
	    DEC      EAX
	    PUSH      ES
	    DEC      EDI
	    MOV      EAX,9999h

Mous6:	    NEG      EDI
	    AND       BH,BH
	    //NC      EBX,ESI
	    MOV      ECX, 0099h
	    ADD      EBX,ESI
	    ADD      EBX,ESI
	    //b        240	//OCK
REP	    MOVSB

	    db	     238  //UT	    EDX,AL
	    ADD       AL,DH
	    ADD      EBX,ESI
	    ADD      EBP,ESI
	    ADD      EBX,ESI
	    ADD      EBP,ESI
	    ADD      EBX,ESI
	    ADD      EBP,ESI
	    ADD      EBX,ESI
	    ADD       AL,02
	    ADD      EBX,ESI
	    ADD      EAX,0002h
	    ADD      EBX,ESI
REP	    STOSB

	    ADD      EBX,ESI
	    ADD      EBP,ESI
	    AND       BH,DL
	    POP      ESI
	    ADD      EBX,ESI
	    ADC      EBX,ESI
	    XOR      EBP,ESI
	    ADD      EBX,ESI

	    CMP       AL,53
	    JNZ       Mous8
	    PUSH     EAX
	    PUSH      DS
	    SUB      EAX,EAX
	    MOV       DS,EAX
	    MOV       EAX, 0417h
	    AND       AL,0Ch
	    CMP       AL,0Ch
	    JNZ       Mous7
	    PUSHF
	    MOV      ECX,EAX
	    db	     236  //N	    EAX,EDX
Mous7:	    MOV      ECX,EAX
Mous8:	    db	      102, 157	  //OPFD
	    POP      EDX
	    POP      EAX
	    CLC

	    CMP       AH,87
	    JNE       Mous9
	    PUSH     EAX
	    POP      EAX
	    CLI
	    CLD
	    db	      96	  //USHA
	    PUSH      ES
	    PUSH      DS
Mous9:	    MOV      EBX,ECX
	    MOV      EAX, 309Eh
	    MOV      ECX, 309Ch
	    TEST     EAX, 01
	    JE	      Mous10
	    PUSH     ECX
	    CALL     EAX
	    POP      ECX
	    JZ	      Mous11
	    CALL     ECX

Mous10:     MOV      ECX,EBX
	    JNE       Mous11
	    MOV       AL,02
	    OUT       81,AL
	    OUT       80,AL
	    MOV      EBX,0040
	    MOV       DS,EBX

Mous11:     CMP       AH,24
	    JNZ       Mous12
	    CMP       AL,03
	    JNZ       Mous12
	    POP      EBX
	    MOV      EBX,0002
	    STI
	    XOR       AH,AH

Mous12:     MOV      ECX,EBX
	    JNE       Mous16
	    MOV       AL,02
	    OUT       81,AL
	    OUT       80,AL
	    MOV      EBX,0040
	    MOV       DS,EBX
	    MOV      EBX,0067
	    MOV      EAX,0069
	    MOV       AL,8Fh
	    OUT       70,AL
	    MOV      EAX,ES
	    MOV       DS,EAX
	    MOV       BL,AH
	    db	      193, 224, 4  //HL      EAX,04
	    db	      192, 235, 4  //HR       BL,04
	    ADD      EAX,ESI
	    ADC       BL,00
	    MOV      ESI,0Ah
	    MOV      ESI,0Ch
	    MOV      EAX,9999h
	    MOV      ESI,08
	    MOV      ESI,10
	    MOV      ESI,18
	    MOV       AL,09
	    OUT       71,AL
	    db	      15, 1, 99    //GDT      FWord Ptr [SI+08]
	    db	      46, 15, 1    //IDT      FWord Ptr CS:[707Eh]
	    db	      15, 1, 224   //MSW     EAX
	    OR	      AL,01
	    db	      15, 1, 240   //MSW     EAX
	    MOV      EAX,0010
	    MOV       DS,EAX
	    MOV       AL,18
	    MOV       ES,EAX
	    XOR      ESI,ESI
	    XOR      EDI,EDI
	    TEST     ECX, 40
	    JNZ       Mous13
	    SHR      ECX,1
REP	    MOVSW

	    JNB       Mous13
	    MOVSW
Mous13:     IN	      AL,61
	    AND       AL,0Ch
	    JNE       Mous14
	    OUT       81,AL
	    OUT       80,AL
	    db	      15, 1, 68    //GDT      FWord Ptr CS:[E268]
	    MOV      EAX,0040
	    MOV       DS,EAX
	    MOV       ES,EAX
	    db	      66, 193, 200, 10	//OR	  EAX,10
	    MOV      ECX,EAX
	    MOV      EAX,ESP
	    db	      36, 99		//ND	   AL,0254h
	    MOV      ESP,EAX
Mous14:     MOV      EAX,ECX
	    db	      66, 193, 200, 10	//OR	  EAX,10
	    db	      46, 15, 216, 3	//IDT	   FWord Ptr CS:   [E2B8]
	    MOV       AL,00
	    OUT       92,AL
	    MOV      ECX,001Eh
	    IN	      AL,79h

Mous15:     MOV      ECX, 32h
	    LOOP      Mous15

	    CMP      ESP,ESP
	    MOV       AL,0Fh
	    OUT       70,AL
	    PUSH     EAX
	    IN	      AL,61
	    POP      EAX
	    PUSH     EAX
	    IN	      AL,61
	    POP      EAX
	    MOV       AL,00
	    OUT       71,AL
	    JNE       Mous16
	    POP       DS
	    POP       ES
	    db	      97	   //OPA
	    XCHG      AL,AH
	    IN	      AL,81
	    XCHG      AL,AH
	    OR	      AH,AH
	    STC
	    STI

Mous16:     MOV       AL,03
	    OUT       81,AL
	    OUT       80,AL
	    POP       DS
	    POP       ES
	    db	      97	   //OPA
	    XCHG      AL,AH
	    IN	      AL,81
	    XCHG      AL,AH
	    OR	      AH,AH
	    JZ	      Mous17
Mous17:     STC
	    STI

	    TEST     EAX,20
	    JZ	      Mous18
	    CMP       AH,88
	    JZ	      Mous21
	    CMP      EAX,0231
	    JZ	      Mous20
Mous18:     MOV      EAX,3536
	    
Mous19:     CLI
	    OUT       70,AL
	    PUSH     EAX
	    IN	      AL,61
	    POP      EAX
	    PUSH     EAX
	    IN	      AL,61
	    POP      EAX
	    IN	      AL,71
	    STI

	    CMP      EAX,1000
	    PUSHF
	    db	      193, 224, 4  //HL      EAX,04
	    POPF
	    JBE       Mous20
	    MOV      EAX, 9999h
	    MOV      EBX, 9999
Mous20:     db	      192, 224, 16 //HR      EBX,10

Mous21:     SUB      EAX,EBX
	    MOV      EBX,EAX
	    CMP      EBX,000Fh
	    JG	      Mous22
	    MOV      EBX,0000
	    db	      193, 224, 6  //HL      EAX,06
Mous22:     SUB      EBX,000Fh
	    MOV      EAX,003Ch
	    MOV      ECX,EAX
	    MOV      EDX,EBX
	    CLC
	    ADD      ESP,04

	    PUSH     EAX
	    MOV      EAX,0000
	    db	      192, 224, 10 //HR      EAX, 0Ah
	    CMP      EAX, 0001
	    JA	      Mous24
	    SUB      EAX,0400
	    TEST     ECX, 80
	    JNZ       Mous23
	    ADD      ESP,06
	    CLC
Mous23:     CMP      EAX,3C00h
	    JB	      Mous24
	    MOV      EAX,003Ch
Mous24:     POP      EAX

	    PUSH     EDI
	    MOV      EDI,01
	    MOV      ESI,08
	    POP      EDI
	    CMP       AH,25
	    JNZ       Mous25
	    CMP       AL,03
	    JNB       Mous27
	    ADD      ESP,04
	    PUSH      DS
	    PUSH     ESI
	    PUSH     EAX
Mous25:     CMP       AH,24
	    JNZ       Mous26
	    CMP       AL,03
	    JNZ       Mous26
	    POP      EBX
	    MOV      EBX,0002
Mous26:     STI
	    XOR       AH,AH
						  
	    CMP       AH,53
	    JNZ       Mous30
	    JMP       Mous30
Mous27:     CMP      EAX,9981
	    JNZ       Mous28
	    
Mous28:     JMP       Mous30
	    OR	     ESP,ESP
	    CMP      EAX,420Dh
	    JNZ       Mous30
	    PUSH     EAX
	    db	      15, 1, 224   //MSW     EAX
	    db	      15, 186, 224, 0  //T	 EAX,00
	    POP      EAX
	    JB	      Mous30

	    PUSH     EAX			//R7
Mous30:     PUSHF

	    PUSH     EAX
	    PUSH     EBX
	    POP       DS
	    MOV      EBX,669Fh
	    MOV      EAX,0000Fh
	    MOV      EBX,02
	    MOV      EAX,906Eh
	    MOV      EBX,EAX
	    POP       DS
	    POP      EBX
	    POP      EAX


	   //    
Mous31:    PUSH     EAX
	   PUSH     ECX
	   MOV	    ECX,008Ch
	   PUSH     ECX
	   MOV	    ECX,000Ch
	   IN	     AL,61
	   LOOP      Mous31
	   POP	    ECX
	   POP	    EDX
	   POP	    EAX
	   STI	     //a 
	   RET	     // 
	   //OUSEFUN0  ENDP


MouseInit1: //ALL     MouseFun1
	    //OUSEFUN1:
	   CLI	     // 
	   //     .
	   //   ES  
	   MOV	    EAX, 0B800h
	   MOV	     DS,EAX
	   //   0
	   MOV	    EDX, 3CEh	//   
	   MOV	     AL, 5	//  
	   db	    238  //UT	   EDX, AL     //   
				//
	   INC	    EDX 	//X = 3CFh -   
	   MOV	    EDX, 3CFh	//  
	   MOV	     AL, 0	//  0
	   db	    238  //UT	   EDX, AL     //  
	   MOV	    EBX, 0000h	   //   0  ASCII
	   MOV	    ECX, 80 * 175  //   
	  //   .
	  //   .
	  MOV	   EDX, 3C4h	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
				  //
	  MOV	    AL, 0Fh	  //  ( )
	  db	   238	//UT	  EDX, AL	 //  
	  //  .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 8	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3CFh -  
	  MOV	    AL, 0FFh	  //   
	  db	   238	//UT	  EDX, AL	 //  
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0
	  //,   .
	  // .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
	  MOV	    AL, 1	  //
	  db	   238	//UT	  EDX, AL	 // 
	  //  .
	  //OV	     BYTE PTR ES:[BX], 95

	  //     .
	  //   ES  
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // 
	  PUSH	   EAX
	  PUSH	   EBX
	  PUSH	   ECX
	  PUSH	   EDX
	  //   
	  //  ,   
	  MOV	    AH, 00h	
	  MOV	    AL, 0
	  MOV	   EAX, 0000h				   
	  MOV	    ES,EAX
	  MOV	   EAX, 0	 //   
	  MOV	   EBX, 0	 // 
	  MOV	    AH, 00h	
	  MOV	    AL,0	 //  
	  MOV	   EBX, 0	 //   
	  MOV	   EBX,EAX
	  MOV	   ESI, 0000h	 // 
	  MOV	   EDI, 0000h	 //  
	  MOV	   ECX, 0000h	 // 
REP	  STOSB     //     
	  MOV	    AL, 00
	  MOV	    DS,EAX
	  MOV	   EAX, 0B800h	// 
	  MOV	    ES,EAX
	  MOV	   EDI, 0000h	//  
	  MOV	   ECX, 0000h	//  
REP	  MOVSB     //   
	  // 
	  POP	   EAX
	  POP	   EBX
	  POP	   ECX
	  POP	   EDX

	  //     .
	  //   ES  
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  MOV	   EAX, 0100	  // 01h  
	  //   0
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h	  //   0  ASCII
	  MOV	   ECX, 80 * 175  //   
	  //   .
	  MOV	   EDX, 3C4h	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
				  //
	  MOV	    AL, 0Fh	  //  ( )
	  db	   238	//UT	  EDX, AL	 //  
	  //  .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 8	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX
	  //   
	  AAM
	  IMUL	   EDX
	  AAA
	  ADD	   EDX, 00h   
	  //   
	  MOV	    AL, 0FFh	  
	  db	   238	//UT	  EDX, AL
	  INC	   EDX
	  AAS
	  SUB	   EDX, 00h
	  AAD
	  IDIV	    EDX
	  //  .
	  //OV	     BYTE PTR ES:[BX], 95

	  //    .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //    
	  //,    
	  //    .   
	  //  . ,  
	  //    .
	  MOV	   EDI, 0000h  //  
			       //  
			       //  .
	  PUSH	    DS	       // ES  
	  POP	    ES	       // .
	  MOV	   ECX, 0280h  //40 -   
			       //    .
	  AAS	    //     .
	  SUB	   EDI, 99h    //  EDI  .
	  DAS	    //     .
	  SBB	   EDI, 99h    //  EDI 
			       //   .
	  SBB	   ECX, 0560h  //     ECX.
			       //    640. 0480 = 1280.
	  DEC	   EDI	       //  ,  
	  DEC	   ECX	       //EDI ECX  .
	  DAS	    //    , 
		    //   .
	  AAS	    //  .    .
	  NEG	   EDI	       //   
	  NEG	   ECX	       //  EDI ECX.
	  //     .
	  //ECX , a EDI  .
	  PUSH	   ECX
	  POP	   EDI
	  CLD	    //,     
		    //.
REP	  MOVSB     //     .

	  //    .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //    
	  //,    
	  //     .  ,
	  // ,       
	  // ,  .
	  MOV	   EDI, 9999h  //   .   
	  PUSH	    DS	       // ES  
	  POP	    ES	       // .
	  MOV	   ECX, 0280h  //40 -   
			       //    .
	  AAA	    //     .
	  ADD	   EDI, 99h    //  EDI  .
	  DAA	    //     .
	  ADC	   EDI, 99h    //  EDI 
			       //   .
	  ADC	   ECX, 0560h  //    ECX.
			       //    640. 0480 = 1280.
	  INC	   EDI	       //  ,  
	  INC	   ECX	       //EDI ECX .
	  DAS	    //    .
	  AAA	    //  .    .
	  NOT	   EDI	       //   
	  NOT	   ECX	       //  EDI ECX.
	   //     .
	   //ECX , a EDI  .
	   PUSH     ECX
	   POP	    EDI
	   CLD	     //,     
		     //.
REP	   MOVSB     //     .
	   STI	     // 
	   RET	     // 
	   //OUSEFUN1  ENDP


MouseInit2:
	   //OUSEFUN2:
	   CLI	     // 
	   //     .
	   //   ES  
	   MOV	    EAX, 0B800h
	   MOV	     DS,EAX
	   //   0
	   MOV	    EDX, 3CEh	//   
	   MOV	     AL, 5	//  
	   db	    238  //UT	   EDX, AL     //   
				//
	   INC	    EDX 	//X = 3CFh -   
	   MOV	    EDX, 3CFh	//  
	   MOV	     AL, 0	//  0
	   db	    238  //UT	   EDX, AL     //  
	   MOV	    EBX, 0000h	   //   0  ASCII
	   MOV	    ECX, 80 * 175  //   
	 PUSH	   CS  
	 ADD	  EBX,ESI
	 ADD	  EBX,ESI
	 ADD	  ESP,04  
	 MOV	  EDI,34
	 CMP	  EDI,34
	 ADD	  EBX,ESI
	 MOV	  ECX,34
	 DB	   184, 1, 255	    
	 MOV	  EDI,0Ch
	 ADD	  EBX,ESI
	 MOV	  EDI,0Ch
	 ADD	  EBX,ESI
	 //USH	    WORD PTR [DI+10]
	 //USH	    WORD PTR [DI-0Ch]
	 MOV	  ECX,08
	 DB	   184, 1, 255	       
	 MOV	  EDI,04
	 ADD	  EBX,ESI
	 PUSH	   CS  

	  //   .
	  //   .
	  MOV	   EDX, 3C4h	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
				  //
	  MOV	    AL, 0Fh	  //  ( )
	  db	   238	//UT	  EDX, AL	 //  
	  //  .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 8	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3CFh -  
	  MOV	    AL, 0FFh	  //   
	  db	   238	//UT	  EDX, AL	 //  
	  //  (  )
	  //OV	     BYTE PTR ES:[BX], 0
	  //,   .
	  // .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
	  MOV	    AL, 1	  //
	  db	   238	//UT	  EDX, AL	 // 
	  //  .
	  //OV	     BYTE PTR ES:[BX], 95

	 ADD	  ESP,04  
	 MOV	  EDI,38
	 CMP	  EDI,38
	 ADD	  EBX,ESI
	 MOV	  ECX,38
	 DB	   184, 1, 255	       
	 MOV	  EDI,10
	 ADD	  EBX,ESI
	 MOV	  EDI,0000h
	 ADD	  EBX,ESI
	 MOV	  EAX,EDI
	 MOV	  EDI,14
	 MOV	  EAX,EDI
	 PUSH	  EBX
	 MOV	  EAX,EDI
	 PUSH	  EBX
	 PUSH	  EDI
	 MOV	  ECX,08
	 DB	   184, 1, 255	       
	 MOV	  EDI,04
	 ADD	  EBX,ESI
	 PUSH	   CS  
	 ADD	  EBX,ESI
	 ADD	  EBX,ESI
	 ADD	  ESP,04  
	  //     .
	  //   ES  
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // 
	  PUSH	   EAX
	  PUSH	   EBX
	  PUSH	   ECX
	  PUSH	   EDX
	  //   
	  //  ,   
	  MOV	    AH, 00h	
	  MOV	    AL, 0
	  MOV	   EAX, 0000h				   
	  MOV	    ES,EAX
	  MOV	   EAX, 0     //   
	  MOV	   EBX, 2     // 
	  MOV	    AH, 00h	
	  MOV	    AL,0	 //  
	  MOV	   EBX, 0	 //   
	  MOV	   EBX,EAX
	  MOV	   ESI, 0000h	 // 
	  MOV	   EDI, 0000h	 //  
	  MOV	   ECX, 0000h	 // 
REP	  STOSB     //     
	  MOV	    AL, 00
	  MOV	    DS,EAX
	  MOV	   EAX, 0B800h	// 
	  MOV	    ES,EAX
	  MOV	   EDI, 0000h	//  
	  MOV	   ECX, 0000h	//  
	  db	    215 	//LAT
	  CLD
REP	  MOVSB     //   
	  // 
	  POP	   EAX
	  POP	   EBX
	  POP	   ECX
	  POP	   EDX

	  //     .
	  //   ES  
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  MOV	   EAX, 0100	  // 01h  
	  //   0
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h	  //   0  ASCII
	  MOV	   ECX, 80 * 175  //   
	  //   .
	  MOV	   EDX, 3C4h	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
				  //
	  MOV	    AL, 0Fh	  //  ( )
	  db	   238	//UT	  EDX, AL	 //  
	  //  .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 8	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX
	  //   
	  AAM
	  IMUL	   EDX
	  AAA
	  ADD	   EDX, 00h   
	  //   
	  MOV	    AL, 0FFh	  
	  db	   238	//UT	  EDX, AL
	  INC	   EDX
	  AAS
	  SUB	   EDX, 00h
	  AAD
	  IDIV	    EDX
	  //  .
	  //OV	     BYTE PTR ES:[BX], 95

	  //    .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //    
	  //,    
	  //    .   
	  //  . ,  
	  //    .
	  MOV	   EDI, 0000h  //  
			       //  
			       //  .
	  PUSH	    DS	       // ES  
	  POP	    ES	       // .
	  MOV	   ECX, 0280h  //40 -   
			       //    .
	  AAS	    //     .
	  SUB	   EDI, 99h    //  EDI  .
	  DAS	    //     .
	  SBB	   EDI, 99h    //  EDI 
			       //   .
	  SBB	   ECX, 0560h  //     ECX.
			       //    640. 0480 = 1280.
	  DEC	   EDI	       //  ,  
	  DEC	   ECX	       //EDI ECX  .
	  DAS	    //    , 
		    //   .
	  AAS	    //  .    .
	  NEG	   EDI	       //   
	  NEG	   ECX	       //  EDI ECX.
	  //     .
	  //ECX , a EDI  .
	  PUSH	   ECX
	  POP	   EDI
	  CLD	    //,     
		    //.
REP	  MOVSB     //     .

	  //    .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //    
	  //,    
	  //     .  ,
	  // ,       
	  // ,  .
	  MOV	   EDI, 9999h  //   .   
	  PUSH	    DS	       // ES  
	  POP	    ES	       // .
	  MOV	   ECX, 0280h  //40 -   
			       //    .
	  AAA	    //     .
	  ADD	   EDI, 99h    //  EDI  .
	  DAA	    //     .
	  ADC	   EDI, 99h    //  EDI 
			       //   .
	  ADC	   ECX, 0560h  //    ECX.
			       //    640. 0480 = 1280.
	  INC	   EDI	       //  ,  
	  INC	   ECX	       //EDI ECX .
	  DAS	    //    .
	  AAA	    //  .    .
	  NOT	   EDI	       //   
	  NOT	   ECX	       //  EDI ECX.
	  //     .
	  //ECX , a EDI  .
	  PUSH	   ECX
	  POP	   EDI
	  CLD	    //,     
		    //.
REP	  MOVSB     //     .
	   STI	    // 
	   RET	    // 
	   //OUSEFUN2  ENDP


MouseInit3:
	   //OUSEFUN3:
	   CLI	     // 
	   ADD	    EBX,ESI
	   //USH      WORD PTR [DI+10]
	   //USH      WORD PTR [DI-18]
	   MOV	    ECX,08
	   DB	     184, 1, 255	 
	   MOV	    EDI,04
	   ADD	    EBX,ESI
	   PUSH      CS  
	   ADD	    EBX,ESI
	   ADD	    EBX,ESI
	   ADD	    ESP,04  
	   MOV	    EDI,40
	   CMP	    EDI,40
	   ADD	    EBX,ESI
	   MOV	    ECX,40
	   DB	     184, 1, 255	 
	   MOV	    EDI,1Ch
	   ADD	    EBX,ESI

	   MOV	    EDI,1Ch
	   MOV	    EDI,10
	   MOV	    EDI,20
	   MOV	    EDI,20
	   PUSH     EDI
	   DB	     184, 1, 255
	   ADD	    EBX,ESI
	   MOV	    ECX,08
	   DB	     184, 1, 255	 
	   ADD	    EBX,ESI
	   DB	     184, 1, 255
	   ADD	    EBX,ESI
	   MOV	    ECX,08
	   DB	     184, 1, 255	 
	   ADD	    EBX,ESI
	   MOV	    ECX,08
	   DB	     184, 1, 255	 
	   ADD	    EBX,ESI
	   STI	     // 
	   RET	     // 


MouseInit4:
	  //OUSEFUN4:
	   CLI	     // 
//	    MOV      ECX,WORD PTR [DI-08]
	   DB	     184, 1, 255	 
//	    MOV       WORD PTR [DI-04],EAX
//	    PUSH      WORD PTR [DI+10]
	   DB	     184, 1, 255
//	    ADD       BYTE PTR [BX+SI],AL
//	    MOV      ECX,WORD PTR [DI-08]
	   DB	     184, 1, 255	 
//	    ADD       BYTE PTR [BX+SI],AL
//	    MOV      ECX,WORD PTR [DI-08]
	   DB	     184, 1, 255	 
//	    ADD       BYTE PTR [BX+SI],AL
	   DB	     184, 1, 255
//	    ADD       BYTE PTR [BX+SI],AL
	   DB	     184, 1, 255
//	    MOV       WORD PTR [DI-04],EAX
//	    ADD       BYTE PTR [BX+SI],AL
//	    PUSH      WORD PTR [DI+10]
//	    MOV      ECX,WORD PTR [DI-08]
	   DB	     184, 1, 255	 
//	    ADD       BYTE PTR [BX+SI],AL
	   PUSH      CS  
	   PUSH      DS  
	   STI	     // 
	   RET	     // 
	   //OUSEFUN4  ENDP


MouseInit5:
	   //OUSEFUN5:
	   CLI	     // 
	   //     .
	   //   ES  
	   MOV	    EAX, 0B800h
	   MOV	     DS,EAX
	   //   0
	   MOV	    EDX, 3CEh	//   
	   MOV	     AL, 5	//  
	   db	    238  //UT	   EDX, AL     //   
				//
	   INC	    EDX 	//X = 3CFh -   
	   MOV	    EDX, 3CFh	//  
	   MOV	     AL, 0	//  0
	   db	    238  //UT	   EDX, AL     //  
	   MOV	    EBX, 0000h	   //   0  ASCII
	   MOV	    ECX, 80 * 175  //   
	 PUSH	   CS  
//	  ADD	    BYTE PTR [BX+SI],AL
	 ADD	  ESP,04  
//	  CMP	    WORD PTR [DI-34],00
//	  MOV	   ECX,WORD PTR [DI-34]
	 DB	   184, 1, 255	    
//	  ADD	    BYTE PTR [BX+SI],AL
//	  MOV	    WORD PTR [DI-0Ch], 0000h
//	  PUSH	    WORD PTR [DI+10]
//	  MOV	   ECX,WORD PTR [DI-08]
	 DB	   184, 1, 255	       
//	  ADD	    BYTE PTR [BX+SI],AL
	 PUSH	   CS  

	  //   .
	  //   .
	  MOV	   EDX, 3C4h	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
				  //
	  MOV	    AL, 0Fh	  //  ( )
	  db	   238	//UT	  EDX, AL	 //  
	  //  .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 8	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3CFh -  
	  MOV	    AL, 0FFh	  //   
	  db	   238	//UT	  EDX, AL	 //  
	  //  (  )
//	   MOV	     BYTE PTR ES:[BX], 0
	  //,   .
	  // .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
	  MOV	    AL, 1	  //
	  db	   238	//UT	  EDX, AL	 // 
	  //  .
//	   MOV	     BYTE PTR ES:[BX], 95

	 ADD	  ESP,04  
//	  MOV	    WORD PTR [DI-38],EAX
//	  CMP	    WORD PTR [DI-38],00
//	  ADD	    BYTE PTR [BX+SI],AL
//	  MOV	   ECX,WORD PTR [DI-38]
	 DB	   184, 1, 255	       
//	  MOV	    WORD PTR [DI-10],EAX
//	  ADD	    BYTE PTR [BX+SI],AL
//	  MOV	    WORD PTR [DI-10], 0000h
//	  ADD	    BYTE PTR [BX+SI],AL
//	  MOV	   EAX,WORD PTR [DI+10]
//	  MOV	    WORD PTR [DI-14],EAX
//	  MOV	   EAX,WORD PTR [DI-14]
//	  PUSH	    WORD PTR [BX+SI+04]
//	  MOV	   EAX,WORD PTR [DI-14]
//	  PUSH	    WORD PTR [BX+SI]
//	  PUSH	    WORD PTR [DI-10]
//	  MOV	   ECX,WORD PTR [DI-08],EAX
	 DB	   184, 1, 255	       
//	  MOV	    WORD PTR [DI-04],EAX
//	  ADD	    BYTE PTR [BX+SI],AL
	 PUSH	   CS  
//	  ADD	    BYTE PTR [BX+SI],AL
//	  ADD	    BYTE PTR [BX+SI],AL
	 ADD	  ESP,04  
	  //     .
	  //   ES  
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  // 
	  PUSH	   EAX
	  PUSH	   EBX
	  PUSH	   ECX
	  PUSH	   EDX
	  //   
	  //  ,   
	  MOV	    AH, 00h	
	  MOV	    AL, 0
	  MOV	   EAX, 0000h				   
	  MOV	    ES,EAX
	  MOV	   EAX, 0     //   
	  MOV	   EBX, 0     // 
	  MOV	    AH, 00h	
	  MOV	    AL,0	 //  
	  MOV	   EBX, 0	 //   
	  MOV	   EBX,EAX
	  MOV	   ESI, 0000h	 // 
	  MOV	   EDI, 0000h	 //  
	  MOV	   ECX, 0000h	 // 
REP	  STOSB     //     
	  MOV	    AL, 00
	  MOV	    DS,EAX
	  MOV	   EAX, 0B800h	// 
	  MOV	    ES,EAX
	  MOV	   EDI, 0000h	//  
	  MOV	   ECX, 0000h	//  
	  db	    215 	//LAT
	  CLD
REP	  MOVSB     //   
	  // 
	  POP	   EAX
	  POP	   EBX
	  POP	   ECX
	  POP	   EDX

	  //     .
	  //   ES  
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  MOV	   EAX, 0100	  // 01h  
	  //   0
	  MOV	   EDX, 3CEh   //   
	  MOV	    AL, 5      //  
	  db	   238	//UT	  EDX, AL     //   
			       //
	  INC	   EDX	       //X = 3CFh -   
	  MOV	   EDX, 3CFh   //  
	  MOV	    AL, 0      //  0
	  db	   238	//UT	  EDX, AL     //  
	  MOV	   EBX, 0000h	  //   0  ASCII
	  MOV	   ECX, 80 * 175  //   
	  //   .
	  MOV	   EDX, 3C4h	  //  
	  MOV	    AL, 2	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX		  //X = 3C5h -  
				  //
	  MOV	    AL, 0Fh	  //  ( )
	  db	   238	//UT	  EDX, AL	 //  
	  //  .
	  MOV	   EDX, 3CEh	  //  
	  MOV	    AL, 8	  //  
	  db	   238	//UT	  EDX, AL	 //  
	  INC	   EDX
	  //   
	  AAM
	  IMUL	   EDX
	  AAA
	  ADD	   EDX, 00h   
	  //   
	  MOV	    AL, 0FFh	  
	  db	   238	//UT	  EDX, AL
	  INC	   EDX
	  AAS
	  SUB	   EDX, 00h
	  AAD
	  IDIV	    EDX
	  //  .
	  //OV	     BYTE PTR ES:[BX], 95

	  //    .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //    
	  //,    
	  //    .   
	  //  . ,  
	  //    .
	  MOV	   EDI, 0000h  //  
			       //  
			       //  .
	  PUSH	    DS	       // ES  
	  POP	    ES	       // .
	  MOV	   ECX, 0280h  //40 -   
			       //    .
	  AAS	    //     .
	  SUB	   EDI, 99h    //  EDI  .
	  DAS	    //     .
	  SBB	   EDI, 99h    //  EDI 
			       //   .
	  SBB	   ECX, 0560h  //     ECX.
			       //    640. 0480 = 1280.
	  DEC	   EDI	       //  ,  
	  DEC	   ECX	       //EDI ECX  .
	  DAS	    //    , 
		    //   .
	  AAS	    //  .    .
	  NEG	   EDI	       //   
	  NEG	   ECX	       //  EDI ECX.
	  //     .
	  //ECX , a EDI  .
	  PUSH	   ECX
	  POP	   EDI
	  CLD	    //,     
		    //.
REP	  MOVSB     //     .

	  //    .
	  //   ES  .
	  MOV	   EAX, 0B800h
	  MOV	    DS,EAX
	  //    
	  //,    
	  //     .  ,
	  // ,       
	  // ,  .
	  MOV	   EDI, 9999h  //   .   
	  PUSH	    DS	       // ES  
	  POP	    ES	       // .
	  MOV	   ECX, 0280h  //40 -   
			       //    .
	  AAA	    //     .
	  ADD	   EDI, 99h    //  EDI  .
	  DAA	    //     .
	  ADC	   EDI, 99h    //  EDI 
			       //   .
	  ADC	   ECX, 0560h  //    ECX.
			       //    640. 0480 = 1280.
	  INC	   EDI	       //  ,  
	  INC	   ECX	       //EDI ECX .
	  DAS	    //    .
	  AAA	    //  .    .
	  NOT	   EDI	       //   
	  NOT	   ECX	       //  EDI ECX.
	  //     .
	  //ECX , a EDI  .
	  PUSH	   ECX
	  POP	   EDI
	  CLD	    //,     
		    //.
REP	  MOVSB     //     .

	 MOV	  EDI,04
	 ADD	  EBX,ESI
	 PUSH	  EBX
	 MOV	  ECX,08
	 DB	   184, 1, 255	       
	 ADD	  EBX,ESI
	 ADD	  EBX,ESI
	 DEC	  EBX
	 CMP	  EDI,1Ch
	 ADD	  EBX,ESI
	 MOV	  EAX,44
	 TEST	  ESI,EDI
	 OR	   AL,08h  
	 DB	   184, 1, 255	       
	 OR	   AL,0Eh  
	 DB  155, 220, 194	 //ADD	    ST(2),ST
	 OR	   AL,0Ah  
	 DB  155, 220, 194	 //ADD	    ST(2),ST
	 OR	   AL,46  
	 DB  155, 221, 194	 //FREE     ST(2)
	 OR	   AL,59  
	 DB  155, 221, 194	 //FREE     ST(2)

	 //  
	 //   
	 //.
MouseExit: POP	   EAX
	   POP	   EBX
	   POP	   EDX
	   POP	   EDX
	   STI	    // 
	   RET	    // 
	   //OUSEFUN5  ENDP



MouseInit6:
	  MOUSEFUN6:
	  CLI	    // 
//	   ROL	     Byte Ptr [BX],1 //R0
//	   CMP	    EBP,Word Ptr [BX+SI+07]
	  CMP	   EDX,EAX
	  POP	    ES
//	   CMP	    EDI, Word Ptr [BP+SI-65]
	  CMP	   EDX,EAX
	  POP	    ES
	  SUB	   EDX,EBP
	  ADD	   EAX, 3B9Ah
//	   XOR	     Word Ptr [BX+SI],EAX
	  POPF
	  ADC	   EAX, 0649
	  POPF
//	   ROL	     Byte Ptr [BX+DI], 01
	  ADC	   EAX, 0061h	 //R1

	  POPF
	  ADC	  EAX, 0079
	  POPF
	  ADC	  EAX, 0091
	  POPF
	  ADC	  EAX, 9953h
	  ADD	   AL, DH
	  MOV	  EDI, 241Ah
	  CLC
	  ADD	   AL, DH
	  INC	  ECX
	  CLC
	  ADD	   AL, DH
	  CLC
	  ADD	   AL, DH
	  TEST	   AL, 39
	  POP	   ES
//	   SBB	    WORD PTR [BX+16h],ESI
	  MOV	  ECX,EDX   //R2
	
	  //b	    240      //OCK
//	   OR	    Word Ptr [BP+SI],EBX
	  MOV	  EDI, 091Ah
//	   ADD	   ESI, Word Ptr [BX+SI+00]
	  STC		
	  DB 155, 218, 0     //IADD    DWord Ptr [BX+SI]
	  //b	    240      //OCK
	  ADD	   AL, AH
	  ADD	   AL, DH
	  STC
	  //BB	    Word Ptr [BX+6Eh],EDI
	  //NC	    Byte Ptr [BX+SI]
	  //b	    240      //OCK
	  ADD	  EAX, 7004
	  //DD	    Byte Ptr [BP+DI-01], DL
	  ADD	   AL,BH
	  MOVSB
	  //b	    240      //OCK     //R3

	  ADD	   AL, DH
	  //ND	    AL, Byte Ptr [DI]
	  //DD	    Byte Ptr [BX+SI], AL
	  //MP	    BH, Byte Ptr [SI+00]
	  //DD	    Byte Ptr [BX+DI], CL
	  //MP	   EDX, Word Ptr [DI]
	  POP	   ES
	  //MP	   ESI, Word Ptr [DI-65]
	  //MP	   EAX, Word Ptr [BX+1Ah]
	  MOV	  EDI, 291Ah
	  AAS	   
	  POP	   ES 
	  SUB	  ESI,EDI
	  POP	   ES 
	  SBB	  EDI,ESI //R4
   
	  ADD	   AL,70
	  //DD	    Byte Ptr [BX+SI+0740], CH
	  SUB	  EBP,ESI
	  INC	  ECX
	  DEC	  EDI
	  SUB	   AL, 41
	  NEG	  EAX
	  SUB	   AL, 41
	  INC	  EDI
	  POP	  EDI
	  ADD	  EBX,EDI
	  //BB	   ESI, BL
	  INC	  EBX
	  POP	   ES
	  SUB	  EBP,EDX
	  db	   109		 //NSW
	  INC	  EDI
	  db	   238	//UT	 EDX, AL	//5

	  ADD	   AL,DH
	  SUB	   AL,41
	  DEC	  EDI
	  LODSB 
	  ADD	   AL, DH
	  PUSH	   CS
	  DB   155, 219, 3	     //ILD     Dword Ptr [BP+DI]
	  AND	  EBP,ESI
	  DB   155, 219, 3	     //ILD     Dword Ptr [BP+DI]
	  AND	  EBP,ESI
	  DB   155, 219, 3	     //ILD     Dword Ptr [BP+DI]
	  AND	  EBP,ESI
	  DB   155, 219, 3	     //ILD     Dword Ptr [BP+DI]
	  AND	  EBP,ESI
	  DB   155, 219, 3	     //ILD     Dword Ptr [BP+DI]
	  AND	  EBP,ESI
	  DB   155, 219, 3	     //ILD     Dword Ptr [BP+DI]
	  AND	  EBP,ESI

	  DB   155, 219, 3	     //ILD     DWord Ptr [BP+DI]
	  AND	  EBP,ESI
	  DB   155, 219, 3	     //ILD     DWord Ptr [BP+DI]
	  AND	  EBP,ESI
	  WAIT
	  ADD	  ESP,ESI
	  CMP	  EBP, 03
	  AND	  EBP,ESI
	  SUB	   AL, 41   
	  DEC	  EDI	    
	  POP	  EAX
	  ADD	  EDX, 4066h
	  INC	  EBX
	  POP	   ES
	  SUB	  ESI,EAX
	  XOR	  EDX, 655Ch
	  //b	    240     //OCK
	  ADD	   AL, DH   //R7

	  PUSH	  ECX
	  POP	  EDX
	  ADD	   AL, 70
	  ADD	   BL, DH
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
	  CLD
REP	  SCASB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
REP	  STOSB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
REP	  MOVSB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
REP	  CMPSB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
REP	  MOVSB
	  db	   238	//UT	EDX,AL	 //R10

	  db	   238	//UT	EDX, AL
	  ADD	   AL, DH
REP	  SCASB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
REP	  STOSB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
REP	  MOVSB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
REP	  CMPSB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
REP	  MOVSB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
REP	  SCASB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
REP	  STOSB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
	  AAS		    //R9

	  DEC	  EBP
	  ADD	  ESI, 01   //DD     EDI, Word Ptr [BX+SI-00]
REP	  SCASB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
REP	  STOSB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
	  //DD	    DH,ESI
	  SAHF
	  db	   236	//N	  AL,EDX
REP	  MOVSB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
REP	  STOSB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH  
REP	  CMPSB 			  

	  ADD	   AL, DH
REP	 STOSB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
REP	 STOSB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
REP	 STOSB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, DH
REP	 MOVSB
	  db	   238	//UT	 EDX, AL
	  ADD	   AL, BH
REP	 SCASB
	  ADD	  EBX,ESI
	  ADD	  EBX,ESI
	  ADD	  EBX,ESI
	  ADD	  EBX,ESI
	  ADD	  EBX,ESI
	  ADD	  EBX,ESI
	  ADD	  EBX,ESI
	  ADD	  EBX,ESI
	  ADD	  EBX,ESI
	  ADD	  EBX,ESI
	  ADD	  EBX,ESI
	  ADD	  EBX,ESI
	  STI	   // 
	  RET	   // 


	  //OUSEFUN6  ENDP
//OUSE	   ENDP
//ntr15hLen   =   $ - Intr15h
//   INT 15h



//  INT 16h

KEYBORD:   
	  //   
KeybInit: CLI	  // 
	  PUSHF   //oxpa a   IRET
	  // IOS    16
	  MOV	 EDX,1E16h
	  MOV	 ESP,08  
	  //OV	   WORD PTR [DI-08],ECX
	  //OV	   WORD PTR [SI+08],EBX

	  //,    
	  //   
	  //H EAX  , 
	  //   .
	  MOV	 EDX, OFFSET IntVect16
	  TEST	 EDX, 16h
	  INC	 EDX

	  // ,   
	  //   
	  // AH EAX,  
	  //  INT 16h   
	  //   
	  //  .
	  MOV	  ES,EDX    //   ES
	  XOR	 EDI,EDI    //S:DI ->   
	  MOV	 ECX, 2     // -    
	  MOV	  BL, 16h   //    
	  CLD		    // 
REP	  STOSB 	    //
	  //   ,  
	  //OV	   BYTE PTR ES:[DI], 0
	  
	  //   
	  //     
	  // (   
	  //    BIOS, 
	  //    , 
	  // INT 16h)
	  PUSH	 EAX  // EAX
		      //  
	  POP	 EBX  //EBX 
		      //  

	  //    AH EAX,
	  //    
	  // 
	  AAS
	  //,    AH EAX
	  //   , - 
	  //.
	  AAA
	  STOSB        //  
		       // 
		      
	  //    
	  // c   .
	  CMP	   AH, AL		       
	  CMPSB
	  SCASB 			      
	  PUSH	  EAX	    //  

	  //   AH EAX 
	  // ,  
	  //    .
	  TEST	   AH, AL
	  CMC	   //    
	  
	  //    
	  //  ,   
	  // INT 16h
	  CMP	   AH, 00h
	  JE	   KeybInit0
	  CMP	   AH, 01h
	  JE	   KeybInit1
	  CMP	   AH, 02h
	  JE	   KeybInit2
	  CMP	   AH, 03h
	  JE	   KeybInit3
	  CMP	   AH, 04h
	  JE	   KeybInit4
	  CMP	   AH, 05h
	  JE	   KeybInit5
	  JMP	   KeybInit0

KeybInit0:
	   //EYBFUN0:
	   //  
	   // 
//    
//  .

//e  
Beg_09h:   CLI	     // 
	   PUSHF     //oxpa a   IRET

	   //    
	   //    
	   //NT 09h.
	   // ,     
	   //  ,    .
	   PUSHF   //oxpa a   IRET

	   MOV	   AH, 09h    //    09h
	   MOV	  EBX, 00h    // 09h   
	   MOV	  ECX, 2      // ,   2 
	   MOV	  EDX, OFFSET Key_atd	    //   
	   MOV	  EDX, 0009h  //   
	   CLD	   // 
REP	   STOSB   //  09h  


//    INT 09h
//  ).
Reset_09h:    
	   PUSH     EAX      //    09h
	   IN	     AL,09h  //   09h
	   POP	    EAX
	   PUSH     EBX
	   PUSH      ES
	   PUSH      ES
	   PUSH     EAX
	   PUSH     EBX
	   XOR	    EAX,EAX
	   MOV	     ES,EAX
	   IN	     AL,09h  //   09h
	   //OV      EBX, WORD PTR ES: [0009h]
	   //OV      EAX, WORD PTR ES: [000Bh]
	   MOV	    EBX,CS
	   CMP	    EAX,EBX
	   POP	    EBX
	   POP	    EAX
	   POP	     ES
	   PUSH     EAX
	   PUSH     EDX
	   IN	     AL,09h  //   09h
	   MOV	    EDX,0062
	   CMP	    EBX, 0001h
	   JNZ	     Nxt
	   MOV	    EDX,0061
	   db	    236  //N	    AL,EDX
	   AND	     AL,09h
	   OR	     AL,09h
	   OUT	     61,AL
Nxt:	   PUSH     ECX
	   MOV	    ECX,0001
	   PUSH     EDX
	   POP	    ECX
	   IN	     AL,09h
	   MOV	     AL,20
	   OUT	     20,AL
	   POP	    EDX
	   POP	    EAX
	   CMP	     AL,00h
	   JZ	     Qt
	   CMP	     AL,02h
	   JZ	     Qt
	   MOV	    EAX,0000h
	   MOV	    EBX,0001h
	   MOV	    ECX,0101h
	   MOV	    EDX,1111h
	   IN	     AL,09h  //   09h
	   PUSH      DS
	   MOV	    EAX,4333
	   MOV	     DS,EAX
	   MOV	     BYTE PTR CdEx1, 01h
	   PUSH      DS
	   MOV	    EAX,4333
	   MOV	     DS,EAX
	   MOV	     BYTE PTR CdEx2, 02h
	   POP	     DS
	   POP	    EAX
	   PUSH      DS
	   MOV	    EAX,4333
	   MOV	     DS,EAX
	   XOR	     BYTE PTR CdEx3, 04h
	   POP	     DS
	   POP	    EAX
	   JB	     Exts
Qt:	   MOV	    EDX,1111h
	   MOV	    ECX,0101h
	   MOV	    EBX,0001h
	   MOV	    EAX,0000h
	   IN	     AL,09h  //   09h

	   //  .  
	   // 
Exts:	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   PUSH     EBP
	   PUSH      DS
	   PUSH      ES
	   MOV	    EAX, CS	 //ac   DS
	   MOV	     DS,EAX	 //  
	   MOV	    EAX, 40h	 //ac  ES
	   MOV	     ES,EAX	 //   BIOS
	   //a  ,    
	   //  EAX,        
	   MOV	    EBX, 1Ah   //  
	   MOV	    EAX,EBX    //  -> EAX
	   CMP	    EAX, 1000H //lt_Q	 //   ?
	   JE	     New_09h	  //,   
	   CMP	     AH, 2	  //-  2- ?
	   JB	     FreHom	  //,    
	   CMP	     AH, 12	  //-  12- ?
	   JA	     FreHom	  //,    

	   //-   . Ho - 
	   //<Caps Lock> ?
	   TEST      BYTE PTR ES: 17h,40h  // <Caps Lock> -  6
	   JZ	     FreHom	  //,    
	   //e <Caps Lock>    
	   //<1/!> . . . <-/_>
	   PUSH     EBX 	  //X  
	   MOV	    EBX, KeybCod  //  
	   XCHG      AH,AL	  //-  AL  XLAT
	   db	     215	  //LAT        //
	   POP	    EBX 	  //occEBX
	   MOV	    EBX,EAX	   //  ASCII
				  //  
	   //ep   
FreHom:    POP	     ES 	 //occao coxpa
	   POP	     DS 	 // 
	   POP	    EBP 	 
	   POP	    EDX 	 
	   POP	    ECX
	   POP	    EBX
	   POP	    EAX
//eset_09hLen	      = 	$ - Reset_09h


	   //  
	   //   INT 09h,
	   //     
	   MOV	    EAX, 0009h		// 
	   MOV	    EBX, 1		// 
	   MOV	    ECX, 0128h	 //  
	   MOV	    EDX,  Reset_09h  //  
	   PUSH     EAX  //   ,
	   PUSH      ES  //  
	   CLD		 //  
REP	   STOSB	 //   
	   // ,   
	   POPF

	   // ,   
	   // 	       
	   MOV	    EDX, 0009h	 // 
	   MOV	     AL, 11h	 //1:  3
	   db	    238  //UT	   EDX, AL	//  
				 //.
	   INC	    EAX 	 //EAX  , 
				 //  .
	   MOV	     AL, 09h	 //   .
	   db	    238  //UT	   EDX, AL	//,     
				 // .

	   //    
	   //   127-  -
	   //  	
	   MOV	      EDX, 0009h     //  
	   MOV	       AL, 0	     //  0
	   db	    238  //UT	     EDX, AL	    //  
	   MOV	      EBX, 0000h     //   0  ASCII
	   MOV	      ECX, 0127h     //   
				     // .
	   MOV	      EDX, KeybCod   //  
				     //  
				     //.
	   INC	      EDX	     //X = 0009h -  .
	   IN	       AL, 09h	     //  
	   IN	       AL, 09h	     //   
	   IN	       AL, 09h	     // 3- .
	   CMP	      ECX, 03h	     // 3  

	   OUT	       09h, AL	     //   
	   OUT	       09h, AL	     //  CMOS-
	   OUT	       09h, AL	     // 3- .
	   CMP	      ECX, 03h	     // 3  

	   //     
	   //     , 
	   //   .
	   XCHG      AL, AH	     //  AL, 
				     // EAX
	   MOV	    ECX, 0003h	     //   
	   MOV	    EDX,EAX	     //   
	   MOV	    EBX, 0000h	     //   
	   CLD	     // 
REP	   STOSB     //    
	   STI	     // 
	   RET	     //     
	   //EYBFUN0   ENDP

KeybInit1:
//EYBFUN1:
//    ().		 
New_09h:
	   MOV	   AH, 09h    //    09h
	   MOV	  EBX, 00h    // 09h   
	   MOV	  ECX, 2      // ,   2 
	   MOV	  EDX, OFFSET Key_atd	    //   
	   MOV	  EDX, 0009h  //   
	   CLD	   // 
REP	   STOSB   //  09h  

KeyPush:   PUSH     EAX 	//
	   PUSH     EBX 	//
	   PUSH      ES 	//.
	   IN	     AL, 60h	// - .
	   CMP	     AL, 4Eh	// ?
	   JE	     Old_09h	//,  .
	   POP	    EAX 	//, 
	   POP	    EBX 	//
	   POP	     ES 	//.
Old_09h:   //   
	   // .
	   IN	     AL, 09h  //   09h
	   POP	    EAX
	   PUSH     EBX
	   PUSH      ES
	   PUSH      ES
	   PUSH     EAX
	   PUSH     EBX
	   XOR	    EAX,EAX
	   MOV	     ES,EAX
	   IN	     AL, 09h  //   09h
	   //OV      EBX, WORD PTR ES: [0009h]
	   //OV      EAX, WORD PTR ES: [000Bh]
	   MOV	    EBX, CS
	   CMP	    EAX,EBX
	   POP	    EBX
	   POP	    EAX
	   POP	     ES
	   PUSH     EAX
	   PUSH     EDX
	   IN	     AL, 09h  //   09h
	   MOV	    EDX, 0062
	   CMP	    EBX, 0001h
	   JNZ	     Nxt2
	   MOV	    EDX, 0061
	   db	    236  //N	    AL,EDX
	   AND	     AL, 09h
	   OR	     AL, 09h
	   OUT	     61, AL
Nxt2:	   PUSH     ECX
	   MOV	    ECX, 0001
	   PUSH     EDX
	   POP	    ECX
	   IN	     AL, 09h
	   MOV	     AL, 20
	   OUT	     20, AL
	   POP	    EDX
	   POP	    EAX
	   CMP	     AL, 00h
	   JZ	     Qt2
	   CMP	     AL, 02h
	   JZ	     Qt2
	   MOV	    EAX, 0000h
	   MOV	    EBX, 0001h
	   MOV	    ECX, 0101h
	   MOV	    EDX, 1111h
	   IN	     AL, 09h  //   09h
	   PUSH      DS
	   MOV	    EAX, 4333
	   MOV	     DS,EAX
	   MOV	     BYTE PTR CdEx1, 01h
	   PUSH      DS
	   MOV	    EAX, 4333
	   MOV	     DS,EAX
	   MOV	     BYTE PTR CdEx2, 02h
	   POP	     DS
	   POP	    EAX
	   PUSH      DS
	   MOV	    EAX, 4333
	   MOV	     DS,EAX
	   XOR	     BYTE PTR CdEx3, 04h
	   POP	     DS
	   POP	    EAX
	   JB	     Plus
Qt2:	   MOV	    EDX, 1111h
	   MOV	    ECX, 0101h
	   MOV	    EBX, 0001h
	   MOV	    EAX, 0000h
	   IN	     AL, 09h  //   09h

	   //   .
	   //   .
Plus:	   PUSH     EAX
	   PUSH      DS
	   MOV	     AL, 61h  //  
	   IN	     AL, 61h  // ,
	   OR	     AL, 80h  //  -
	   OUT	     61h, AL  //  
	   AND	     AL, 7Fh  // 
	   OUT	     61h, AL  // .
	   MOV	     AL, 20h  //   
	   OUT	     20h, AL  // EOI
	   //   InSys
	   MOV	    EBX, In_sys
	   // ?
	   CMP	    EBX, 0
	   //,  .
	   JNE	     Wait_sys
	   //   .

	   //   .
	   JMP	     Out_09h
	   //   .
Wait_sys:  MOV	     EDX, 0000H     //ask_reg
	   INC	     EDX	    //ask_reg
	   //NC       BYTE PTR CS: Task_reg
//ew_09hLen	      =      $ - New_09h

	   //  
	   //   INT 09h,
	   //     
	   MOV	    EAX, 0009h		// 
	   MOV	    EBX, 1		// 
	   MOV	    ECX, 0128h	   //  
	   MOV	    EDX,  New_09h  //  
	   PUSH     EAX  //   ,
	   PUSH      ES  //  
	   CLD		 //  
REP	   STOSB	 //   
	   // ,   
	   POPF

Out_09h:   MOV	     AL, 20h  //  
	   OUT	     20h, AL  //  EOI
	   POP	     ES   // 
	   POP	    EBX   //.
	   POP	    EAX

	   STI	     // 
	   RET	     // 
	   //EYBFUN1   ENDP

KeybInit2:
	   //EYBFUN2:
	   CLI	     // 
	   PUSH     EAX      //    09h
	   IN	     AL,09h  //   09h
	   POP	    EAX
	   PUSH     EBX
	   PUSH      ES
	   PUSH      ES
	   PUSH     EAX
	   PUSH     EBX
	   XOR	    EAX,EAX
	   MOV	     ES,EAX
	   IN	     AL,09h  //   09h
	   //OV      EBX, WORD PTR ES: [0009h]
	   //OV      EAX, WORD PTR ES: [000Bh]
	   MOV	    EBX,CS
	   CMP	    EAX,EBX
	   POP	    EBX
	   POP	    EAX
	   POP	     ES
	   PUSH     EAX
	   PUSH     EDX
	   IN	     AL,09h  //   09h
	   MOV	    EDX,0062
	   CMP	    EBX,0001h
	   MOV	    EDX,0061
	   db	    236  //N	    AL,EDX
	   AND	     AL,09h
	   OR	     AL,09h
	   OUT	     61,AL
	   MOV	    ECX,0001
	   PUSH     EDX
	   POP	    ECX
	   IN	     AL,09h
	   MOV	     AL,20
	   OUT	     20,AL
	   POP	    EDX
	   CMP	     AL,01h
	   POP	    EAX
	   CMP	     AL,00h
	   MOV	    EAX,0000h
	   MOV	    EBX,0001h
	   MOV	    ECX,0101h
	   MOV	    EDX,1111h
	   IN	     AL,09h 
	   PUSH      DS
	   MOV	    EAX,4333
	   MOV	     DS,EAX
	   MOV	     BYTE PTR CdEx1, 01h
	   PUSH      DS
	   MOV	    EAX,4333
	   MOV	     DS,EAX
	   MOV	     BYTE PTR CdEx2, 02h
	   POP	     DS
	   POP	    EAX
	   PUSH      DS
	   MOV	    EAX,4333
	   MOV	     DS,EAX
	   XOR	     BYTE PTR CdEx3, 04h
	   POP	     DS
	   POP	    EAX
	   MOV	    EDX,1111h
	   MOV	    ECX,0101h
	   MOV	    EBX,0001h
	   MOV	    EAX,0000h
	   IN	     AL,09h  //   09h

	   //  .  
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   PUSH     EBP
	   PUSH      DS
	   PUSH      ES
	   MOV	    EAX, CS	 //ac   DS
	   MOV	     DS,EAX	 //  
	   MOV	    EAX, 40h	 //ac  ES
	   MOV	     ES,EAX	 //   BIOS
	   //a  ,    
	   //  EAX,        
	   MOV	    EBX, 1Ah   //  
	   MOV	    EAX,EBX    //  -> EAX
	   CMP	    EAX, 1000H //lt_Q	 //   ?
	   MOV	    EAX,EBX    //  -> EAX
	   CMP	     AH, 2	  //-  2- ?
	   MOV	    EAX,EBX    //  -> EAX
	   CMP	     AH, 12	  //-  12- ?
	   TEST      BYTE PTR ES: 17h,40h  // <Caps Lock> -  6
	   PUSH     EBX 	  //X  
	   XCHG      AH,AL	  //-  AL  XLAT
	   db	     215	  //LAT 	     //
	   POP	    EBX 	  //occEBX
	   MOV	    EBX,EAX	   //  ASCII
					 //  

	   STI	     // 
	   RET	     // 
	   //EYBFUN2   ENDP


KeybInit3:
	   //EYBFUN3:
	   CLI	     // 
	   PUSH     EAX      //    09h
	   IN	     AL,09h  //   09h
	   POP	    EAX
	   PUSH     EBX
	   PUSH      ES
	   PUSH      ES
	   PUSH     EAX
	   PUSH     EBX
	   XOR	    EAX,EAX
	   MOV	     ES,EAX
	   IN	     AL,09h  //   09h
	   //OV      EBX, WORD PTR ES: [0009h]
	   //OV      EAX, WORD PTR ES: [000Bh]
	   MOV	    EBX,CS
	   CMP	    EAX,EBX
	 //OV	    WORD PTR [DI-34],EAX
	 //MP	    WORD PTR [DI-34],00
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	   ECX,WORD PTR [DI-34]
	 DB	   184, 1, 255	    
	 //OV	    WORD PTR [DI-0Ch],EAX
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	    WORD PTR [DI-0Ch], 0000h
	 //DD	    BYTE PTR [BX+SI],AL
	 //USH	    WORD PTR [DI+10]
	 //USH	    WORD PTR [DI-0Ch]
	 //OV	   ECX,WORD PTR [DI-08]
	 DB	   184, 1, 255	       
	 //OV	    WORD PTR [DI-04],EAX
	 //DD	    BYTE PTR [BX+SI],AL
	 PUSH	   CS  
	 //DD	    BYTE PTR [BX+SI],AL
	 //DD	    BYTE PTR [BX+SI],AL
	 ADD	  ESP,04  
	 //OV	    WORD PTR [DI-38],EAX
	 //MP	    WORD PTR [DI-38],00
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	   ECX,WORD PTR [DI-38]
	 DB	   184, 1, 255	       
	 //OV	    WORD PTR [DI-10],EAX
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	    WORD PTR [DI-10], 0000h
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	   EAX,WORD PTR [DI+10]
	 //OV	    WORD PTR [DI-14],EAX
	 //OV	   EAX,WORD PTR [DI-14]
	 //USH	    WORD PTR [BX+SI+04]
	   POP	    EBX
	   POP	    EAX
	   POP	     ES
	   PUSH     EAX
	   PUSH     EDX
	   IN	     AL,09h  //   09h
	   MOV	    EDX,0062
	   CMP	    EBX,0001h
	   MOV	    EDX,0061
	   db	    236  //N	    AL,EDX
	   AND	     AL,09h
	   OR	     AL,09h
	   OUT	     61,AL
	   MOV	    ECX,0001
	   PUSH     EDX
	   POP	    ECX
	   IN	     AL,09h
	   MOV	     AL,20
	   OUT	     20,AL
	   POP	    EDX
	   CMP	     AL,01h
	   POP	    EAX
	   CMP	     AL,00h
	   MOV	    EAX,0000h
	   MOV	    EBX,0001h
	   MOV	    ECX,0101h
	   MOV	    EDX,1111h
	   IN	     AL,09h 
	   PUSH      DS
	   MOV	    EAX,4333
	   MOV	     DS,EAX
	   MOV	     BYTE PTR CdEx1, 01h
	   PUSH      DS
	   MOV	    EAX,4333
	   MOV	     DS,EAX
	   MOV	     BYTE PTR CdEx2, 02h
	   POP	     DS
	   POP	    EAX
	   PUSH      DS
	   MOV	    EAX,4333
	   MOV	     DS,EAX
	   XOR	     BYTE PTR CdEx3, 04h
	   POP	     DS
	   POP	    EAX
	   MOV	    EDX,1111h
	   MOV	    ECX,0101h
	   MOV	    EBX,0001h
	   MOV	    EAX,0000h
	   IN	     AL,09h  //   09h

	   //  .  
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   PUSH     EBP
	   PUSH      DS
	   PUSH      ES

	   STI	     // 
	   RET	     // 
	   //EYBFUN3   ENDP


KeybInit4:
	   //EYBFUN4:
	   CLI	     // 
	   PUSH     EAX      //    09h
	   IN	     AL,09h  //   09h
	   POP	    EAX
	   PUSH     EBX
	   PUSH      ES
	   PUSH      ES
	   PUSH     EAX
	   PUSH     EBX
	   XOR	    EAX,EAX
	   MOV	     ES,EAX
	   IN	     AL,09h  //   09h
	   //OV      EBX, WORD PTR ES: [0009h]
	   //OV      EAX, WORD PTR ES: [000Bh]
	   MOV	    EBX,CS
	   CMP	    EAX,EBX
	 //OV	    WORD PTR [DI-34],EAX
	 //MP	    WORD PTR [DI-34],00
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	   ECX,WORD PTR [DI-34]
	 DB	   184, 1, 255	    
	 //OV	    WORD PTR [DI-0Ch],EAX
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	    WORD PTR [DI-0Ch], 0000h
	 //DD	    BYTE PTR [BX+SI],AL
	 //USH	    WORD PTR [DI+10]
	 //USH	    WORD PTR [DI-0Ch]
	 MOV	  ECX,08
	 DB	   184, 1, 255	       
	 //OV	    WORD PTR [DI-04],EAX
	 //DD	    BYTE PTR [BX+SI],AL
	 PUSH	   CS  
	 //DD	    BYTE PTR [BX+SI],AL
	 //DD	    BYTE PTR [BX+SI],AL
	 ADD	  ESP,04  
	 //OV	    WORD PTR [DI-38],EAX
	 //MP	    WORD PTR [DI-38],00
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	   ECX,WORD PTR [DI-38]
	 DB	   184, 1, 255	       
	 //OV	    WORD PTR [DI-10],EAX
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	    WORD PTR [DI-10], 0000h
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	   EAX,WORD PTR [DI+10]
	 //OV	    WORD PTR [DI-14],EAX
	 //OV	   EAX,WORD PTR [DI-14]
	 //USH	    WORD PTR [BX+SI+04]
	   POP	    EBX
	   POP	    EAX
	   POP	     ES
	   PUSH     EAX
	   PUSH     EDX
	   IN	     AL,09h  //   09h
	   MOV	    EDX,0062
	   CMP	    EBX,0001h
	   MOV	    EDX,0061
	   db	    236  //N	    AL,EDX
	   AND	     AL,09h
	   OR	     AL,09h
	   OUT	     61,AL
	   MOV	    ECX,0001
	   PUSH     EDX
	   POP	    ECX
	   IN	     AL,09h
	   MOV	     AL,20
	   OUT	     20,AL
	   POP	    EDX
	   CMP	     AL,01h
	   POP	    EAX
	   CMP	     AL,00h
	   MOV	    EAX,0000h
	   MOV	    EBX,0001h
	   MOV	    ECX,0101h
	   MOV	    EDX,1111h
	   IN	     AL,09h 
	   PUSH      DS
	   MOV	    EAX,4333
	   MOV	     DS,EAX
	   MOV	     BYTE PTR CdEx1, 01h
	   PUSH      DS
	   MOV	    EAX,4333
	   MOV	     DS,EAX
	   MOV	     BYTE PTR CdEx2, 02h
	   POP	     DS
	   POP	    EAX
	   PUSH      DS
	   MOV	    EAX,4333
	   MOV	     DS,EAX
	   XOR	     BYTE PTR CdEx3, 04h
	   POP	     DS
	   POP	    EAX
	   MOV	    EDX,1111h
	   MOV	    ECX,0101h
	   MOV	    EBX,0001h
	   MOV	    EAX,0000h
	   IN	     AL,09h  //   09h

	   //  .  
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   PUSH     EBP
	   PUSH      DS
	   PUSH      ES
	 DB	   184, 1, 255	       
	 //OV	    WORD PTR [DI-04],EAX
	 //DD	    BYTE PTR [BX+SI],AL
	 //USH	    WORD PTR [DI+10]
	 //OV	   ECX,WORD PTR [DI-08]
	 DB	   184, 1, 255	       
	 //OV	    WORD PTR [DI-04],EAX
	 //DD	    BYTE PTR [BX+SI],AL
	 //USH	    WORD PTR [DI+10]
	 //OV	   ECX,WORD PTR [DI-08],EAX
	 DB	   184, 1, 255	       
	 //OV	    WORD PTR [DI-04],EAX
	 //DD	    BYTE PTR [BX+SI],AL
	 //USH	    WORD PTR [DI+10]
	 //OV	   ECX,WORD PTR [DI-08]
	 DB	   184, 1, 255	       
	 MOV	  ECX,EAX
	 DB	   184, 1, 255	       
	 //OV	    WORD PTR [DI-24],EAX
	 //DD	    BYTE PTR [BX+SI],AL
	 DB  155, 220, 194	//ADD	   QWORD PTR [BX+SI]
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	   ECX,WORD PTR [DI-24]
	 DB	   184, 1, 255	       
	 //OV	    WORD PTR [DI-28],EAX
	 //MP	    WORD PTR [DI-28],00
	 //DD	    BYTE PTR [BX+SI],AL
	 //USH	    WORD PTR [DI-24]
	 //OV	   ECX,WORD PTR [DI-28]
	 DB	   184, 1, 255	       
	 //OV	    WORD PTR [DI-04],EAX
	 //DD	    BYTE PTR [BX+SI],AL
	 //USH	    WORD PTR [DI+10]
	 //OV	   ECX,WORD PTR [DI-08]
	 DB	   184, 1, 255	       
	 MOV	  ECX,EAX
	 DB	   184, 1, 255	       
	 //OV	    WORD PTR [DI-2Ch],EAX
	 //MP	    WORD PTR [DI-2Ch],00

	 STI	   // 
	 RET	   // 
	 //EYBFUN4   ENDP


KeybInit5:
	   //EYBFUN5:
	   CLI	     // 
	   DB  155, 222, 194 //ADDP	ST(2),ST
	   OR	     AL,34  
	   DB  155, 222, 194 //ADDP	ST(2),ST
	   OR	     AL,75  
	   DB  155, 222, 137, 172, 54	//IMUL	   WORD PTR [BX+DI-53CAh]
	   ADC	     BH,BH  
	   PUSH      CS
	   CLD
REP	   STOSB       
	   //DC       CL,BYTE PTR [BP+DI]
	   //EG       BYTE PTR [BP-3D]
	   PUSH     EAX  
	   PUSH     ESI  
	   PUSH     EDI  
	   PUSH      DS  
	   PUSH     EAX      //    09h
	   IN	     AL,09h  //   09h
	   POP	    EAX
	   PUSH     EBX
	   PUSH      ES
	   PUSH      ES
	   PUSH     EAX
	   PUSH     EBX
	   XOR	    EAX,EAX
	   MOV	     ES,EAX
	   IN	     AL,09h  //   09h
	   //OV      EBX, WORD PTR ES: [0009h]
	   //OV      EAX, WORD PTR ES: [000Bh]
	   MOV	    EBX,CS
	   CMP	    EAX,EBX
	 //OV	    WORD PTR [DI-34],EAX
	 //MP	    WORD PTR [DI-34],00
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	   ECX,WORD PTR [DI-34]
	 DB	   184, 1, 255	    
	 //OV	    WORD PTR [DI-0Ch],EAX
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	    WORD PTR [DI-0Ch], 0000h
	 //DD	    BYTE PTR [BX+SI],AL
	 //USH	    WORD PTR [DI+10]
	 //USH	    WORD PTR [DI-0Ch]
	 //OV	   ECX,WORD PTR [DI-08]
	 DB	   184, 1, 255	       
	 //OV	    WORD PTR [DI-04],EAX
	 //DD	    BYTE PTR [BX+SI],AL
	 PUSH	   CS  
	 //DD	    BYTE PTR [BX+SI],AL
	 //DD	    BYTE PTR [BX+SI],AL
	 ADD	  ESP,04  
	 //OV	    WORD PTR [DI-38],EAX
	 //MP	    WORD PTR [DI-38],00
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	   ECX,WORD PTR [DI-38]
	 DB	   184, 1, 255	       
	 //OV	    WORD PTR [DI-10],EAX
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	    WORD PTR [DI-10], 0000h
	 //DD	    BYTE PTR [BX+SI],AL
	 //OV	   EAX,WORD PTR [DI+10]
	 //OV	    WORD PTR [DI-14],EAX
	 //OV	   EAX,WORD PTR [DI-14]
	 //USH	    WORD PTR [BX+SI+04]
	   POP	    EBX
	   POP	    EAX
	   POP	     ES
	   PUSH     EAX
	   PUSH     EDX
	   IN	     AL,09h  //   09h
	   MOV	    EDX,0062
	   CMP	    EBX,0001h
	   MOV	    EDX,0061
	   db	    236  //N	    AL,EDX
	   AND	     AL,09h
	   OR	     AL,09h
	   OUT	     61,AL
	   MOV	    ECX,0001
	   PUSH     EDX
	   POP	    ECX
	   IN	     AL,09h
	   MOV	     AL,20
	   OUT	     20,AL
	   POP	    EDX
	   CMP	     AL,01h
	   POP	    EAX
	   CMP	     AL,00h
	   MOV	    EAX,0000h
	   MOV	    EBX,0001h
	   MOV	    ECX,0101h
	   MOV	    EDX,1111h
	   IN	     AL,09h 
	   PUSH      DS
	   MOV	    EAX,4333
	   MOV	     DS,EAX
	   MOV	     BYTE PTR CdEx1, 01h
	   PUSH      DS
	   MOV	    EAX,4333
	   MOV	     DS,EAX
	   MOV	     BYTE PTR CdEx2, 02h
	   POP	     DS
	   POP	    EAX
	   PUSH      DS
	   MOV	    EAX,4333
	   MOV	     DS,EAX
	   XOR	     BYTE PTR CdEx3, 04h
	   POP	     DS
	   POP	    EAX
	   MOV	    EDX,1111h
	   MOV	    ECX,0101h
	   MOV	    EBX,0001h
	   MOV	    EAX,0000h
	   IN	     AL,09h  //   09h
	  //  
	  //   
	  //.
KeybExit: POP	  EAX
	  POP	  EBX
	  POP	  EDX
	  POP	  EDX
	  STI	   // 
	  RET	   // 
	  //EYBFUN5  ENDP
	  //EYBORD   ENDP

	  //    
	  //  INT 16h
//ntr16hLen   =   $ - Intr16h
//   INT 16h



//  INT 17h
Intr17h:
PRINT:
	   CLI	     // 

	   //   
	   //     
	   // (   
	   //    BIOS, 
	   //    , 
	   // INT 17h)
	   PUSH   EAX  // EAX
		       //  
	   POP	  EBX  //EBX 
		       //  

	   //    AH EAX,
	   //    
	   // 
	   AAS
	  //,    AH EAX
	  //   , - 
	  //.
	  AAA
	  STOSB        //  
		       // 
		      
	  //    
	  // c   .
	  CMP	   AH, AL		       
	  CMPSB
	  SCASB 			      
	  PUSH	  EAX	    //  

	  //   AH EAX 
	  // ,  
	  //    .
	  TEST	   AH, AL
	  CMC	   //    


	   //    
	   //  ,   
	   // INT 17h
	   //     
	   CMP	     AH, 00h
	   JE	     Prnt1    // 
	   CMP	     AH, 01h
	   JE	     Prnt2    // 
	   CMP	     AH, 02h
	   JE	     Prnt3    //  

	   //    
	   // 
Prnt1:	   MOV	     AH,2Dh  
	   MOV	    EBX,0001h  
	   MOV	    EAX,0000h  
	   MOV	    EAX,0002h
	   MOV	     AH,34  
	   MOV	    EBX,0001h  
	   DB	     180, 75	 //OV	    AH,4B  
	   MOV	     AL,00  
	   MOV	     AH,3Dh  
	   MOV	     AL,00  
	   MOV	     AH,4Fh  
	   MOV	    EAX,0002  
	   MOV	     AH,2Dh  
	   MOV	    EBX,0001h  
	   MOV	    EAX,0000h  
	   MOV	    EAX,0002h  
	   MOV	     AH,34  
	   MOV	    EBX,0001h  
	   DEC	    ESI  
	   INC	    EDX  
	   //OR       BYTE PTR [BX+SI],BH
	   DB  155, 220, 194   //ADD	  DWORD PTR [BP+SI]  //ontrol tochka 1
	   //  ,  ...
	   RET	     // 


	   //     .
Prnt2:	   PUSH     EDX 	 //R1
	   //USH      Word Ptr ES:[4602]
	   //USH      Word Ptr [BP+06]
	   PUSH      DS
	   POP	    ESI
	   //USH      Word Ptr [BP+06]
	   ADD	    ESP, 04
	   INC	    EAX
	   ADD	    ESP, 0Ch
	   CMP	    EAX, 0Ch
	   PUSH     ESI
	   POP	    EDI
	   ADD	    ESP, 04
	   ADD	    ESP, 0Ch
	   ADD	    ESP, 04
	   MOV	    EBX, EAX
	   ADD	    EDI, 0Bh
	   CMP	    EDI, 0Bh
	   PUSH     ESI
	   POP	    EDI
	   ADD	    ESP, 0Bh
	   MOV	    ESI, EBP
	   PUSH      DS
	   PUSH     EBP
	   PUSH     EDI
	   ADD	    ESP, 08
	   RET	     // 

	 
	 //   
Prnt3:	 ADD	  ESI, 03
	 MOV	  EBX, 04
	 CMP	  EBX, 02
	 PUSH	  EDX
	 POP	  ECX
	 //USH	    Word Ptr ES:[4F44h]
	 //USH	    Word Ptr ES:[2E7Ah]
	 //USH	    Word Ptr ES:[2E78h]
	 ADD	  ESP, 08
	 //USH	    Word Ptr ES:[4F44h]
	 //USH	    Word Ptr ES:[2E7Ah]
	 //USH	    Word Ptr ES:[2E78h]
	 PUSH	   DS
	 PUSH	  ESI
	 ADD	  ESP, 04
	 INC	  EAX
	 PUSH	  EAX
	 PUSH	  ECX
	 PUSH	   DS
	 PUSH	  ESI

	 STI	   //,  
		   // 
	 RET	   // 
	 //RINT    ENDP

//ntr17hLen   =   $ - Intr17h
//   INT 17h


//  INT 18h

LOADSYS:
	 CLI	   // 

	 //    
	 //   INT 75h.
	 // ,    
	 //    ,
	 //   .
	 PUSHF	 //oxpa a   IRET

	 MOV	 AH, 75h    //    75h
	 MOV	EBX, 00h    // 75h   
	 MOV	ECX, 2	    // ,   2 
	 MOV	EDX, OFFSET atd2   //   
	 MOV	EDX, 0075h  //   
	 CLD	 // 
REP	 STOSB	 //  75h  

	 // IOS    75
Proces:  PUSH	EAX  
	 POP	EBX
	 POP	ECX
	 PUSH	EDX
	 XOR	 AL, AL  
	 CMP	EAX, 75h
	 TEST	EAX, 75h
	 OUT	 75h,EAX
	 IN	EAX, 75h
	 MOV	EAX, 0001h
	 OUT	 75h,EAX
	 MOV	EAX, 0001h
	 IN	EAX, 75h
	 CMP	EAX, 0Ah
	 TEST	EAX, 0Ah
	 OUT	 0Ah,EAX
	 IN	EAX, 0Ah
	 OUT	 75h,EAX
	 IN	EAX, 75h
	 IN	 AL, 0Ah
	 OUT	 0Ah, AL
	 POP	EDX
	 POP	EAX  
//rocesLen	  =	 $ - Proces

	 //  
	 // INT 75h,   
	 //  
	 MOV	EAX, 0075h	    // 
	 MOV	EBX, 1		    // 
	 MOV	ECX, 0064h    //  
	 MOV	EDX,  Proces  //  
	 PUSH	EAX  //   ,
	 PUSH	EDX  //  
	 CLD	     //  
REP	 STOSB	     //   
	 // ,   
	 POPF

	 //oxpaEAX  
	 PUSH	  EAX
	 IN	   AL, 0Ah    // 
	 CMP	   AL, 0
	 JNE	   NxtBoot    //c  AL = 0

	 //   ?
	 POP	  EAX	      //EAX

	 //..     
NxtBoot: MOV	  EDX,	Old_disk

	 //a   ,  .
	 //     ,
	 //  (75h)   
	 OR	   AL, 0Ah
	 OUT	   75h, AL
	 AND	   AL, 7Fh
	 OUT	   75h, AL
	 //      .
	 PUSH	  EBP
	 MOV	  EBP,ESP

	 //     ,  
	 //  .   ,
	 //  ,  2  (
	 //USHEAX  PUSHEBP)
	 MOV	  EBP,	Old_disk
	 POP	  EBP	//occEBP

	 //    
	 //
	 MOV	  EDX, 0Ah    // 
	 MOV	   AL, 11h    //1:  
	 db	  238  //UT	 EDX, AL
	 INC	  EDX	      //  
	 MOV	   AL, 8      //2:  
	 db	  238  //UT	 EDX, AL
	 MOV	   AL, 4      //:  
			      //  2
	 db	  238  //UT	 EDX, AL
	 MOV	   AL, 1      //4: 80x86,  EOI
	 db	  238  //UT	 EDX, AL

	 //   
	 MOV	  EDX, 0Ah    // 
	 MOV	   AL, 11     //1:  
	 db	  238  //UT	 EDX, AL
	 INC	  EDX	      //  
	 MOV	   AL, 70h    //2:  
	 db	  238  //UT	 EDX, AL
	 MOV	   AL, 2      //:  
			      //  2
	 db	  238  //UT	 EDX, AL
	 MOV	   AL, 1      //4: 80x86,  EOI
	 db	  238  //UT	 EDX, AL
	 ADD	   AL, "1"     //   .
	 MOV	   AH, 1Eh     //  .


	 //    ,
	 //    
	 //.
	 PUSH	  EAX	       //  
	 PUSH	   ES	       // .
	 POP	  EBX	       //   
	 POP	  ECX	       // ,   .
	 POP	  EDX
    
	 MOV	  EAX, 0A800h  // ES
	 MOV	   ES,EAX      //   .

	 MOV	  EBX, 0000h   //    ,
	 MOV	  EBX,EAX      //  2-  .
	 MOV	  ECX, 2       //   - 2 .
	 OUT	   0Ah, AL     //   
			       // 0Ah -  .
			       // ISR.

	 MOV	  EAX,EBX      //    
	 IN	   AL, 0Ah     // ISR.
	 CLD	   //  .
REP	 STOSB	   //    .
	 MOV	  EAX, 1680	     //   
				     // /  .


	 //   :
	 //Ah -    //0Eh -  /
	 //6h - Ƹ //70h - -, 72h - 
	 //  (CD-,  ZIP-Drive,
	 //SB-  ..).
Resume:  MOV	  EBX, 0001h   //  
	 MOV	  ECX, 0002h   //   - 2 .

	 CMP	  EDX, 000Ah   //     
	 JE	   PhisikDisk  //.
	 JNE	   PortDrive

	 CMP	  EDX, 0070h   //-.
	 JE	   PhisikDisk
	 JNE	   PortDrive

	 CMP	  EDX, 000Eh   // .
	 JE	   PhisikDisk
	 JNE	   PortDrive

	 CMP	  EDX, 0076h   // .
	 JE	   PhisikDisk
	 JNE	   PortDrive

	 CMP	  EDX, 0072h   // 
	 JE	   PortDrive
	 JNE	   PhisikDisk


	 // 
	 //  ,  
	 //  ,   .
	 //      
	 //    .
	 //   .

PhisikDisk:
	 MOV	   ES,EAX      //  ES
	 MOV	  EAX,EDX      //  yc.
	 MOV	  EBX, 0001h   // .
	 PUSH	   CS	       //  CS.
	 POP	   ES	       // ES .   
			       // .
	 XOR	  EDI,EDI		 //S:DI ->  .
	 MOV	   CL, 0		 //.
	 MOV	   DH, 0		 //.
	 INC	   DL			 //  .
	//OV	   DL, BYTE PTR Old_disk 
	 SHL	   DH, CL		 //     .
	 OR	   DH, 0		 //  1,   2. 
	 MOV	   DS,EAX		 //  DS
	 XOR	  EDI,ESI		 //S:EDI ->  .
	 MOV	  ECX, 1024		 //  (,  ),
					 //024  -   .
	 MOV	  EDX, OFFSET BootProg		//  .
	 MOV	  EDI,EAX		 //  
					 // .	    
	 PUSH	  EAX		// EAX.
	 POP	  EBX		//EBX .     

	 MOV	  EDX, 13h    //   
			      //13h -     .
	 XCHG	   AL, AH     //  
	 INC	  ECX	      // AL  .
	 MOV	   CL, 08h    // :  8
	 IN	   AL, 13h    //     
	 IN	   AL, 13h    //	   
	 IN	   AL, 13h    //
	 IN	   AL, 13h    //
	 IN	   AL, 13h    //
	 IN	   AL, 13h    //
	 IN	   AL, 13h    //
	 IN	   AL, 13h    //
	 db	   215	      //LAT	  //  .
	 CLD		      //  .
REP	 STOSB		      //  .
	 POP	  EAX	      //EAX.   
			      //  ,
			      //   .
	 //   ,  
	 //OV	  BYTE PTR ES:[DI], 0


	 //,      
	 // ,       , 
	 // BOOT-.		       
	 MOV	   ES,EAX      //  ES
	 MOV	  EAX,EDX      //  yc.
	 MOV	  EBX, 0001h   // .
	 PUSH	   CS	       //  CS.
	 POP	   ES	       // ES .   
			       // .
	 XOR	  EDI,EDI		 //S:DI ->  .
	 MOV	   CL, 0		 //.
	 MOV	   DH, 0		 //.
	 INC	   DL			 //  .
	//OV	   DL, BYTE PTR Old_disk 
	 SHL	   DH, CL		 //     .
	 OR	   DH, 0		 //  1,   2. 
	 MOV	   DS,EAX		 //  DS
	 XOR	  EDI,ESI		 //S:EDI ->  .
	 MOV	  ECX, 1024		 //  (,  ),
					 //024  -   .
	 MOV	  EDX, OFFSET BootProg		//  .
	 MOV	  EDI,EAX		 //  
					 // .	    
	 PUSH	  EAX		// EAX.
	 POP	  EBX		//EBX .     

	 
	 MOV	  EDX, 13h    //   
			      //13h -     .
	 INC	  ECX	      //   
	 XCHG	   AL, AH     // AL  .
	 MOV	   CL, 08h    // :  8
	 OUT	   13h, AL    //
	 OUT	   13h, AL    //
	 OUT	   13h, AL    //
	 OUT	   13h, AL    //
	 OUT	   13h, AL    //
	 OUT	   13h, AL    //
	 OUT	   13h, AL    //
	 OUT	   13h, AL    //
	 db	   215	      //LAT	  //  .
	 CLD		      //  .
REP	 STOSB		      //  .
	 POP	  EAX	      //EAX.   
			      //  ,
			      //   .
	 //   ,  
	 //OV	  BYTE PTR ES:[DI], 0


	 //      
	 //    
	 // ,   ,   
	 //  BOOT-   
	 //      
	 //,  COM, LPT, USB  .
	 JMP	 FatBoot   



	 //  ,  
	 //  ,   .
	 //      
	 //    .
	 //   .

PortDrive:
	 MOV	   ES,EAX      //  ES
	 MOV	  EAX,EDX      //  yc.
	 MOV	  EBX, 0001h   // .
	 PUSH	   CS	       //  CS.
	 POP	   ES	       // ES .   
			       // .
	 XOR	  EDI,EDI		 //S:DI ->  .
	 MOV	   CL, 0		 //.
	 MOV	   DH, 0		 //.
	 INC	   DL			 //  .
	//OV	   DL, BYTE PTR Old_disk 
	 SHL	   DH, CL		 //     .
	 OR	   DH, 0		 //  1,   2. 
	 MOV	   DS,EAX		 //  DS
	 XOR	  EDI,ESI		 //S:EDI ->  .
	 MOV	  ECX, 1024		 //  (,  ),
					 //024  -   .
	 MOV	  EDX, OFFSET BootProg		//  .
	 MOV	  EDI,EAX		 //  
					 // .	    
	 PUSH	  EAX		// EAX.
	 POP	  EBX		//EBX .     

	 MOV	  EDX, 14h    //   
			      //14h -   COM, LPT  .
	 INC	  ECX	      //  
	 XCHG	   AL, AH     // AL  .
	 MOV	   CL, 08h    // :  8
	 IN	   AL, 14h    //     
	 IN	   AL, 14h    //	   
	 IN	   AL, 14h    //
	 IN	   AL, 14h    //
	 IN	   AL, 14h    //
	 IN	   AL, 14h    //
	 IN	   AL, 14h    //
	 IN	   AL, 14h    //
	 db	   215	      //LAT	  //  .
	 CLD		      //  .
REP	 STOSB		      //  .
	 POP	  EAX	      //EAX.   
			      //  ,
			      //   .
	 //   ,  
	 //OV	  BYTE PTR ES:[DI], 0


	 //,      
	 // ,       , 
	 // BOOT-.		       
	 MOV	   ES,EAX      //  ES
	 MOV	  EAX,EDX      //  yc.
	 MOV	  EBX, 0001h   // .
	 PUSH	   CS	       //  CS.
	 POP	   ES	       // ES .   
			       // .
	 XOR	  EDI,EDI		 //S:DI ->  .
	 MOV	   CL, 0		 //.
	 MOV	   DH, 0		 //.
	 INC	   DL			 //  .
	//OV	   DL, BYTE PTR Old_disk 
	 SHL	   DH, CL		 //     .
	 OR	   DH, 0		 //  1,   2. 
	 MOV	   DS,EAX		 //  DS
	 XOR	  EDI,ESI		 //S:EDI ->  .
	 MOV	  ECX, 1024		 //  (,  ),
					 //024  -   .
	 MOV	  EDX, OFFSET BootProg		//  .
	 MOV	  EDI,EAX		 //  
					 // .	    
	 PUSH	  EAX		// EAX.
	 POP	  EBX		//EBX .     

	 MOV	  EDX, 14h    //   
			      //14h -   COM, LPT  .
	 INC	  ECX	      //  .
	 XCHG	   AL, AH     // AL  .
	 MOV	   CL, 08h    // :  8
	 OUT	   14h, AL    //
	 OUT	   14h, AL    //
	 OUT	   14h, AL    //
	 OUT	   14h, AL    //
	 OUT	   14h, AL    //
	 OUT	   14h, AL    //
	 OUT	   14h, AL    //
	 OUT	   14h, AL    //
	 db	   215	      //LAT	  //  .
	 CLD		      //  .
REP	 STOSB		      //  .
	 POP	  EAX	      //EAX.   
			      //  ,
			      //   .
	 //   ,  
	 //OV	  BYTE PTR ES:[DI], 0



	 //      
	 //    
	 // ,   ,   
	 //  BOOT-   
	 //      
	 //,  COM, LPT, USB  .
	 //     FAT 
	 //   
FatBoot: MOV	  EDX, OFFSET SizeDrv	// 
	 IN	   AL, 0Ah	 // 
	 OUT	   0Ah, AL	 //  
				 // 
	 MOV	  EDX, OFFSET SizeCol1	// 
	 IN	   AL, 0Ah	 // 
	 OUT	   0Ah, AL	 //  
				 // 
	 MOV	  EDX, OFFSET SizeCol2	// 
	 IN	   AL, 0Ah	 // 
	 OUT	   0Ah, AL	 //  
				 // 
	 MOV	  EDX, OFFSET SizeCol3	// 
	 IN	   AL, 0Ah	 // 
	 OUT	   0Ah, AL	 //  
				 // 
	 MOV	  EDX, OFFSET SizeCol4	// 
	 IN	   AL, 0Ah	 // 
	 OUT	   0Ah, AL	 //  
				 // 
	 MOV	  EDX, OFFSET SizeCol5	// 
	 IN	   AL, 0Ah	 // 
	 OUT	   0Ah, AL	 //  
				 // 

	 //     
	 POP	   ES	       //  
	 POP	  EAX	       //
	 ADD	   AL, "0"     //   
	 MOV	   AH, 4Eh     //   
	 MOV	  EAX, 1690
	 MOV	   AL, 0Eh	// EOI
	 PUSH	  EAX
	   
	 //a     
	 IN	   AL, 21h     //  
	 AND	   AL, 0FEh    //   0
	 OUT	   0Ah, AL     //   

	 //  
	 MOV	  EAX, OFFSET Bytes
	 SBB	   AL, 00

	 //  
	 MOV	  EBX, OFFSET BytClast
	 DEC	  ESP
	 LAHF	   //    AH
	 PUSHF	   //   
	 POP	  EAX

	 //   
	 //  
	 // FAT
	 IN	  EAX, 0Ah
	 MOV	  ECX, 01FFh  //  - 512 
	 MOV	  EDX, OFFSET SizeDrv  //   
	 MOV	  EBX,ESI
	 CLD	   // 	      
REP	 CMPSB	   //

	 //  
	 MOV	  EBX, OFFSET BytClast
	 DEC	  ESP
	 LAHF	   //    AH
	 PUSHF	   //   
	 POP	  EAX

	 //   
	 IN	  EAX, 0Ah  
	 MOV	  EAX, 0008h  //   
	 MOV	  ECX, 01FFh  //  - 512 
	 MOV	  EDX, OFFSET SizeDrv //   
	 CLD	   // 	      
REP	 CMPSB	   //

	 //     
	 //   
	 MOV	  ECX, 01FFh  //  - 512 
	 MOV	  EAX, OFFSET BytClast
	 MOV	   ES,EAX
	 MOV	  ESI, OFFSET BytClast
	 MOV	  EDI, OFFSET BytClast
REPE	 CMPSB	   // 

	 //  , 
	 //    
	 // (, , ,
	 //      ..)
	 MOV	  ECX, 0512h
	 MOV	  EAX, DS  //acpo 
	 MOV	   ES,EAX  //ecp   a
	 MOV	  ESI, OFFSET BytClast
	 MOV	  EDI, OFFSET BytClast	// 
REP	 MOVSB	   //    

	 //    
	 //    
	 OUT	   0Ah,EAX
	 MOV	  EAX,8       //   
	 MOV	  ECX, 01FFh  //  - 512 
	 MOV	  EDX, OFFSET SizeDrv //   
	 CLD	   // 	      
REP	 CMPSB	   //

	 //    
	 PUSH	  EAX
	 POP	  EBX
	 MOV	   AL,0232
	 MOV	   DH,0032
	 MOV	  ESI,00

	 //  
	 MOV	  EBX, OFFSET BytClast
	 DEC	  ESP
	 LAHF	   //    AH
	 PUSHF	   //   
	 PUSH	  EAX
	 PUSH	  EBX
	 PUSH	  EDX
	 POP	  ECX
	 ADD	   AH,BH
	 CLD	   //

	 //  
	 MOV	  EBX, OFFSET BytClast
	 DEC	  ESP
	 LAHF	   //    AH
	 PUSHF	   //   
	 POP	  EAX

	 //  SFT  JFT,   PSP
	 MOV	  EDI, 18h
	 ADD	  EDI,EAX
	 MOV	   CL, DL
	 XOR	   CH, CH
	 // ,     
	 MOV	  EDI,EBX
	 CMP	  ECX,EDI
	 JB	   Here
	 SUB	  ECX,EDI
	 MOV	  EDI,EBP
	 //a  SFT,    
Here:	 MOV	  EAX, 59
	 MUL	   CL
	 ADD	  EDI, 6
	 ADD	  EDI,EAX
	 MOV	 EAX, 11h
	 MOV	 EDX, 13h
	 MOV	 EDI, 8
	 MOV	  BL, 8
	 INC	  BL
	 XOR	  BH, BH
	 MOV	  CL, 9
	 SHL	 EBX, CL
	 MOV	 ESI,EBX
	 MUL	 EDX
	 NOT	 ECX  //  
	 // EDX ,   
	 //ECX,  
	 PUSH	 EDX
	 POP	 ECX
	 
	 //     
	 MOV	   EDX, OFFSET Path
	 PUSHF	   //    
	 DB	   240, 1
	 SBB	  EAX,EBP

	 //    
	 MOV	   AL,08    //   
	 SBB	  EBX,ESP
	 MOV	  ECX,01FFh  //  - 512 
	 MOV	  EDX,0000h //   
	 CLD	   // 	      
REP	 CMPSB	   //

	 //   ,  
	 //     , 
	 //     
	 MOV	   AL,08    //   
	 SBB	  EBX,ESP
	 MOV	  ECX,03FFh  //  - 1024 
	 MOV	  EDX,0000h //   
	 CLD	   //          
REP	 STOSB	   //  


	 //    
	 // (   ,
	 //..  BOOT-,  ).
LdProg:  POPF	   //  
	 PUSH	  EAX
	 POP	  EDX
	 //   ,   FAT.
	 MOV	  EDX, OFFSET BootProg
	 MOV	   CL, 06

	 //   .
	 SHL	   DH, CL   
	 OR	   DH, BYTE PTR CodeLoady  // . 
	 //       ,
	 // .
	 MOV	  ECX,EDX   
	 XCHG	   CL, CH   

	 //  ,   .
	 MOV	   DL, BYTE PTR BootProg  
	 MOV	   DH, BYTE PTR CodeLoady 

	 //   
	 MOV	  EAX, OFFSET CodeLoady
	 MOV	  ECX, OFFSET SizeProg //.  
	 CLD	   // 
REP	 STOSB	   //  
	 IN	  EAX, 75h   // 8- 
	 IN	  EAX, 75h   // 
	 IN	  EAX, 75h   // 
	 IN	  EAX, 75h
	 IN	  EAX, 75h   //5h -  
	 IN	  EAX, 75h   //
	 IN	  EAX, 75h
	 IN	  EAX, 75h
	 // -    
	 // 
	 MOV	  EAX,0075h
	 OUT	   75h,EAX
	 CMP	  EAX, 75h
	 JNE	   Err_Load
	 JE	   Exitprg
	 OUT	   75h,EAX
	 CMP	  EAX, 75h
	 JNE	   Err_Load
	 JE	   Exitprg

	 //,   , 
	 //   ES  
	 //...
Err_Load:  MOV	    EAX, 0B800h
	   MOV	    ES, EAX
	 //..  c    , 
	 //    IOS,
	 //   BIOS  DOS
//	 PUSH	  0
//	 PUSH OFFSET Err_Mes   
//	 PUSH OFFSET Err_Mes 
//	 PUSH	  0
//	 CALL _imp__MessageBoxA@16

	 MOV	  EBX, OFFSET Err_Mes	    // 
	 MOV	  EDI, 22 * 80 * 1 + 1 * 2  //  
	 MOV	  ECX, 0052H	 //rr_MesLen	       // 
REP	 MOVSB	  //    


Exitprg:
	 TEST	  EAX,EDX
	 POP	  EAX
	 POP	  EBX
	 POP	  ECX
	 POP	  EDX
	 STI	   // 
	 RET	   // 
//     .

//     
//,   BOOT-  .
	     //OADSYS	   ENDP
//ntr18hLen   =   $ - Intr18h
//   INT 18h


//  INT 19h
Intr19h:
RESTART:
	  CLI	    //  
	  //  
	  //   IOS
	  MOV	   EAX, 4000h
	  PUSH	   EAX
	  POP	    DS

	  //emminy   MOV     WORD PTR [0072h], 1234
	  db	    199, 6, 114, 0, 52, 18
	  db	    184, 255, 255   //OV      EAX, FFFFh
	      
	  PUSH	   EAX
	  MOV	   EAX,0000h
	  PUSH	   EAX
	  RET	    //  ,
		    //   
		    // .
	  // ,  
	  //   INT  19h
	  OR	   ESI,1Eh
	  CMP	   ECX,0153
	  JE	    Rstr
	  CMP	   ECX,0147
	  JE	    Rstr
	  CMP	   ECX,014Fh
	  JE	    Rstr
	  CMP	   ECX,014Dh
	  JE	    Rstr
	  CMP	   ECX,014Bh
	  JNZ	    Rstr2

	  MOV	   EAX,EDI
	  DEC	   EAX
	  JE	    Rstr3
	  DEC	   EAX
	  JE	    Rstr2
	  CMP	   ECX, 4Bh
	  JNZ	    Rstr2
	  CMP	   ECX, 6Bh
	  JE	    Rstr3
	  STC
	  DEC	   EBP
	  JE	    Rstr2
	  CMP	   ECX, 6Dh
	  JNZ	    Rstr3
	  CMP	   ECX, 20
	  JL	    Rstr3
	  CMP	   ECX,2EFFh
	  JGE	    Rstr2
	  PUSH	   EAX
	  PUSH	   EBX
	  ADD	   ESP, 04
	  MOV	   EAX, 110Eh
	  MOV	   EDX, 1110h

Rstr:	  PUSH	   EAX
	  CMP	   ECX, 20
	  CMP	   EDX, 22
	  JL	    Rstr2
	  CMP	   ECX,2EFFh
	  JGE	    Rstr2
Rstr2:	  ADD	   ESP, 04
	  MOV	   EDX, 544Fh
	  MOV	   EAX, 2E8Ah
	  POP	   EDX	    
	  NOP
	  PUSH	    CS
	  POP	   EBX
	  CMP	   EDI, 01
	  JZ	    Rstr3
	  AND	   EBP,02FFh
	  JNZ	    Rstr2
	  PUSH	   EDX
	  PUSH	   ECX
	  PUSH	   EAX
	  ADD	   ESP, 06
	  ADD	   EDI, 03
	  MOV	   EAX, 0000h

Rstr3:	  ADD	   EBX,ESI
	  ADD	   EBX,ESI
	  ADD	   EBX,ESI
	  ADD	   EBX,ESI
	  ADD	   EBX,ESI
	  ADD	   EBX,ESI
	  ADD	   EBX,ESI
	  ADD	   EBX,ESI
	  ADD	   EBX,ESI
	  ADD	   EBX,ESI
	  ADD	   EBX,ESI
	  //ESTART   ENDP
//ntr19hLen   =   $ - Intr19h
//   INT 19h


//  INT 1Ah

CMOS:
	   CLI	     // 
	   MOV	    EBP,EAX
	   MOV	    EAX, ES

	   //    
	   //   INT 08h.
	   // ,    
	   //    ,
	   //   .
	   PUSHF   //oxpa a   IRET

	   MOV	   AH, 08h    //    08h
	   MOV	  EBX, 00h    // 08h   
	   MOV	  ECX, 2      // ,   2 
	   MOV	  EDX, OFFSET atd8   //   
	   MOV	  EDX, 0008h  //   
	   CLD	   // 
REP	   STOSB   //  08h  

//     INT 08h
//  ).
Reset_08h:    
	   PUSH     EAX  //   
	   PUSH      ES  // 
	   MOV	    EAX, 0B800h  // ES   
	   MOV	     ES,EAX	 
	   MOV	     AL, 0Bh	 //   
	   OUT	     20h, AL	 // 0Bh -  
				 // ISR
	   JMP	     $+2	 //e 
	   IN	     AL, 20h	 //  ISR
	   ADD	     AL, "0"	 //   
	   MOV	     AH, 1Eh	 //  
	   MOV	    EAX, 1680
	   MOV	     AL, 20h	 //   
	   OUT	     20h, AL	 // EOI
	   JMP	     $+2	 //e 
	   JMP	     $+2	 //
	   IN	     AL, 20h	 //  
	   ADD	     AL, "0"	 //   
	   MOV	     AH, 4Eh	 //   
	   MOV	    EAX, 1690	 //     
	   POP	     ES 	 //  
	   POP	    EAX 	 //
//eset_08hLen	      = 	$ - Reset_08h

	   //  
	   //  CMOS -  INT 08h,
	   //     
	   MOV	    EAX, 0008h		// 
	   MOV	    EBX, 1		// 
	   MOV	    ECX, 0064h	 //  
	   MOV	    EDX,  Reset_08h  //  
	   PUSH     EAX  //   ,
	   PUSH      ES  //  
	   CLD		 //  
REP	   STOSB	 //   
	   // ,   
	   POPF

	   // ,   
	   //  CMOS - 
	   MOV	    EDX, 0008h	 // 
	   MOV	     AL, 11h	 //1:  3
	   db	    238  //UT	   EDX, AL	//  
				 //.
	   INC	    EAX 	 //EAX  , 
				 //  .
	   MOV	     AL, 08h	 //   .
	   db	    238  //UT	   EDX, AL	//,     
				 // .

	   //    CMOS - 
	   //     .
	   //   .
	   MOV	      EDX, 0008h     //  
	   MOV	       AL, 0	     //  0
	   db	    238  //UT	     EDX, AL	    //  
	   MOV	      EBX, 0000h     //   0  ASCII
	   MOV	      ECX, 0003h     //   
				     // .
	   MOV	      EDX, OFFSET Tims	    //  
				     //  
				     //.
	   INC	      EDX	     //X = 0008h -  .
	   IN	       AL, 08h	     //  
	   IN	       AL, 08h	     //   CMOS-
	   IN	       AL, 08h	     // 3- .
	   CMP	      ECX, 03h	     // 3  

	   OUT	       08h, AL	     //   
	   OUT	       08h, AL	     //  CMOS-
	   OUT	       08h, AL	     // 3- .
	   CMP	      ECX, 03h	     // 3  

	   //     
	   //  CMOS -   
	   //,    
	   //.
	   XCHG      AL, AH	     //  AL, 
				     // EAX
	   MOV	    ECX, 0003h	     //   
	   MOV	    EDX,EAX	     //   
	   MOV	    EBX, 0000h	     //   
	   CLD	     // 
REP	   STOSB     //    

	   //   .
	   MOV	      EDX, 0008h     //  
	   MOV	       AL, 0	     //  0
	   db	    238  //UT	     EDX, AL	    //  
	   MOV	      EBX, 0003h     //   3  ASCII
	   MOV	      ECX, 0004h     //   
				     // .
	   MOV	      EDX, OFFSET Dats	    //  
				     //  
				     //.
	   INC	      EDX	     //X = 0008h -  .
	   IN	       AL, 08h	     //  
	   IN	       AL, 08h	     //   CMOS-
	   IN	       AL, 08h	     // 4- .
	   IN	       AL, 08h
	   CMP	      ECX, 04h	     // 4  

	   OUT	       08h, AL	     //   
	   OUT	       08h, AL	     //  CMOS-
	   OUT	       08h, AL	     // 4- .
	   OUT	       08h, AL
	   CMP	      ECX, 04h	     // 4  

	   //     
	   //  CMOS -   
	   // ,   
	   // .
	   XCHG      AL, AH	     //  AL, 
				     // EAX
	   MOV	    ECX, 0004h	     //   
	   MOV	    EDX,EAX	     //   
	   MOV	    EBX, 0003h	     //   
	   CLD	     // 
REP	   STOSB     //    

	   PUSHF     //  , 
		     // .
	   STI	     // 
	   RET	     // 

	   //MOS       ENDP
//ntr1AhLen   =   $ - Intr1Ah
//   INT 1Ah


//  INT 1Bh

BREAK_:
	 CLI	   // 			

	 //    
	 //   INT 09h.
	 // ,    
	 //    ,
	 //   .
	 PUSHF	 //oxpa a   IRET
	 MOV	 AH, 09h    //    09h
	 MOV	EBX, 00h    // 09h   
	 MOV	ECX, 2	    // ,   2 
	 MOV	EDX, OFFSET atd12  //   
	 MOV	EDX, 0009h  //   
	 CLD	 // 
REP	 STOSB	 //  09h  
	 

//     INT 09h
//  ).

	 //   
Reset2_09h:
	 PUSHF	 //oxpa a   IRET
	 CALL	 Vect_09h    //    09h
	 PUSH	EAX	     //  .  
	 PUSH	EBX	     // 
	 PUSH	ECX
	 PUSH	EDX
	 PUSH	EBP
	 PUSH	 DS
	 PUSH	 ES
	 MOV	EAX,CS	     //ac   DS
	 MOV	 DS,EAX       //  
	 MOV	EAX,40h      //ac  ES
	 MOV	 ES,EAX       //   BIOS
	 //a  ,  
	 //    EAX,   
	 //    .
	 MOV	EBX,1Ah   //  
	 MOV	EAX,EBX    //  -> EAX
	 CMP	EAX,0000h    //   ?
	 JE	 InitBreak   //,   
	 CMP	 AH,2	     //-  2- ?
	 JB	 FreReg      //,    
	 CMP	 AH,12	     //-  12- ?
	 JA	 FreReg      //,    

	 //-   . Ho - 
	 //  .
	 TEST	 BYTE PTR ES:17h,40h // <Ctrl>/Bs -  6
	 JZ	 FreReg      //,    

	 //   
	 PUSH	EBX	     //X  
	 MOV	EBX, OFFSET KeyBreak //  
	 XCHG	 AH,AL	     //-  AL  XLAT
	 db	 215	     //LAT		//
	 POP	EBX	     //occEBX
	 //  ASCII   
	 //OV	  BYTE PTR ES:[BX],AL
    
// coxpa  
FreReg:  POP	 ES	     
	 POP	 DS	     
	 POP	EBP	     
	 POP	EDX	     
	 POP	ECX
	 POP	EBX
	 POP	EAX

InitBreak:
	 //   
	 // .
	 PUSH	  EAX
	 IN	   AL,09h  //   09h
	 POP	  EAX
	 PUSH	  EBX
	 PUSH	   ES
	 PUSH	   ES
	 PUSH	  EAX
	 PUSH	  EBX
	 XOR	  EAX,EAX
	 MOV	   ES,EAX
	 IN	   AL,09h  //   09h
	 //OV	   EBX, WORD PTR ES: [0009h]
	 //OV	   EAX, WORD PTR ES: [000Bh]
	 MOV	  EBX,CS
	 CMP	  EAX,EBX
	 POP	  EBX
	 POP	  EAX
	 POP	   ES
	 PUSH	  EAX
	 PUSH	  EDX
	 IN	   AL,09h  //   09h
	 MOV	  EDX,0062
	 CMP	  ECX,0001h
	 JNZ	   BrNxt  
	 MOV	  EDX,0061
	 db	  236  //N	  AL,EDX
	 AND	   AL,09h
	 OR	   AL,09h
	 OUT	   61,AL
BrNxt:	 PUSH	  ECX
	 MOV	  ECX,0001
	 PUSH	  EDX
	 POP	  ECX
	 IN	   AL,09h
	 MOV	   AL,20
	 OUT	   20,AL
	 POP	  EDX
	 POP	  EAX
	 MOV	  EAX,0000h
	 MOV	  EBX,0001h
	 MOV	  ECX,0101h
	 MOV	  EDX,1111h
	 IN	   AL,09h  //   09h
	 PUSH	   DS
	 MOV	  EAX,4333
	 MOV	   DS,EAX
	 MOV	  EBX,08
	 PUSH	   DS
	 MOV	  EAX,4333
	 MOV	   DS,EAX
	 MOV	  EBX, 01h
	 POP	   DS
	 POP	  EAX
	 PUSH	   DS
	 MOV	  EAX,4333
	 MOV	   DS,EAX
	 XOR	  EBX,08
	 MOV	  EDX,1111h
	 MOV	  ECX,0101h
	 MOV	  EBX,0001h
	 MOV	  EAX,0000h
	 IN	   AL,09h  //   09h
	 POP	   ES
	 POP	  EBX
//eset2_09hLen	     =	   $ - Reset2_09h

	 //   
	 //  INT 09h, 
	 //    
	 MOV	  EAX, 0009h	      // 
	 MOV	  EBX, 1	      // 
	 MOV	  ECX, 0128h	   //  
	 MOV	  EDX,	Reset_09h  //  
	 PUSH	  EAX  //   ,
	 PUSH	   ES  //  
	 CLD	       //  
REP	 STOSB	       //   
	 // ,   
	 POPF

	 // ,   
	 //,    .
	 MOV	  EDX, 0009h   // 
	 MOV	   AL, 11h     //1:  3
	 db	  238  //UT	 EDX, AL      //  
			       //.
	 INC	  EAX	       //EAX  , 
			       //  .
	 MOV	   AL, 09h     //   .
	 db	  238  //UT	 EDX, AL      //,     
			       // .
	 //, -  
	 CMP	  EDX,	OFFSET KeyBreak
	 JE	   ExtBreak	   //
	 JMP	   NoPress	   //

ExtBreak:
	 //    .
	 MOV	  EAX, 9700H	//FFSET symb
	 MOV	  DS, EAX
	 PUSH 0
	 PUSH 97		//FFSET symb
	 PUSH OFFSET BreakMes
	 PUSH 0

//	 MOV	  EAX, 0B800h  // 
//	 MOV	  ES,EAX
//	 MOV	  EDI, Offs2   //  
//	 MOV	  ESI, BreakMes  // 
//	 MOV	  ECX, 18      //  
//EP	 MOVSB	   //   
//	 MOV	  EDX, Offs2   //  
//	 MOV	  EAX, symb    // 
	 //    
	 //  IOS.
	 MOV	  EAX, 0000h
	 PUSH	  EAX
	 POP	   DS
	 MOV	  ECX,ESI	  //R0
	 MOV	  EDX,7964h	 //R1
	 INC	  EDX
	 PUSH	  EAX
	 MOV	  EAX,0000h
	 PUSH	  EAX
	 POP	  ESI	 // 
	 POP	  EDI
	 STI	   // 
	 RET	   //  ,  IOS
		   // 

	 //     INT 1Bh
	 //  ,     
NoPress: POPF	   //,  ,   
	 STI	   // 
	 RET	   //   

	 //REAK    ENDP
//ntr1BhLen   =   $ - Intr1Bh
//   INT 1Bh


//  INT 1Ch
MELODY:
	   CLI	     // 
	   //    
	   //     (
	   //      
	   //IOS,      ,
	   //  INT 1Ch)
	   PUSH   EAX  // EAX
		       //  
	   POP	  EBX  //EBX 
		       //  

	   //    AH EAX,
	   //    
	   // 
	   AAS
	  //,    AH EAX
	  //   , - 
	  //.
	  AAA
	  STOSB        //  
		       // 
		      
	  //    
	  // c   .
	  CMP	   AH, AL		       
	  CMPSB
	  SCASB 			      
	  PUSH	  EAX	    //  

	  //   AH EAX 
	  // ,  
	  //    .
	  TEST	   AH, AL
	  CMC	   //    


	   //    
	   //  ,   
	   // INT 1Ch
	   //     
	   CMP	     AH, 00h
	   JE	     Melody1  // 
	   CMP	     AH, 01h
	   JE	     Melody2  // 


	   //  
	   // 
Melody1:   MOV	    EAX, 00DCh
	   PUSH     EAX
	   //  
	   MOV	    EBX,ESP
	   //OV      EBX, Word Ptr SS:[BX+04]
	   MOV	    EAX, 34DDh
	   MOV	    EDX, 0012h
	   CMP	    EDX,EBX
	   MUL	    EBX
	   MOV	    EBX,EAX
	   IN	     AL, 61
	   TEST      AL, 03
	   JNZ	     Mel
	   OR	     AL, 03
	   OUT	     61, AL
	   MOV	     AL, 00B6h
	   OUT	     43, AL
Mel:	   MOV	     AL, BL 
	   OUT	     42, AL
	   MOV	     AL, BH
	   OUT	     42, AL
	   STI	     // 
	   RET	     // 
	   
Melody2:   //   
	   //
	   MOV	    EAX, 00C8h
	   PUSH     EAX
	   //  
	   MOV	    EBX,ESP
	   //OV      EBX ,Word Ptr SS:[BX+04]
	   MOV	    EAX, 34DDh
	   MOV	    EDX, 0012h
	   CMP	    EDX,EBX
	   MUL	    EBX
	   MOV	    EBX,EAX
	   OUT	     42h, AL
	   MOV	    EDX,ECX
	   OUT	     43h, AL
	   TEST      AL, 03
	   JNZ	     Mel2
	   OR	     AL, 03
	   IN	     AL, 61h
	   MOV	     AL, 00B6h
	   IN	     AL, 61h
Mel2:	   MOV	     AL, BL 
	   IN	     AL, 61h
	   MOV	     AL, BH
	   IN	     AL, 61h

	   STI	     // 
	   RET	     // 
	   //ELODY     ENDP

//ntr1ChLen   =   $ - Intr1Ch
//   INT 1Ch


//  INT 1Dh
Intr1Dh:
GRFPARM:      
	     CLI       // 

	     // ,  
	     // INT 10h - Video Screen ROM BIOS
	     //-,     .
	     MOV       EAX, OFFSET Fnct1D    //aa  
	     AND       BYTE PTR Vect_1D, AH   //  
	     CLD       //   
	     MOV      ESI, 04	 // , 4- 
	     ADD      ESI,EBX	 //   
	     LODSB     //  ,  

	     // ,    
	     //
	     MOV      EDI, 1
	     MOV      EDI, 2
	     MOV      EDI, 3
	     MOV      EDI, 4
	     MOV      EAX,EBP
	     MOV      EDI, 1
	     MOV      EDI, 1
	     MOV      EDI, 1
	     MOV      EDI, 1

	     //   
	     MOV       EAX, OFFSET Ony
	     MOV       EBX, OFFSET Ony
	     MOV       ECX, OFFSET Ony
	     MOV       EDX, OFFSET Ony
	     //   
	     MOV       EAX, OFFSET Offy
	     MOV       EBX, OFFSET Offy
	     MOV       ECX, OFFSET Offy
	     MOV       EDX, OFFSET Offy
	     //     
	     //  
	     MOV       AH, 4Bh	
	     MOV       AL, 00 
	     MOV       AH, 3Dh
	     MOV       AL, 0
	     MOV       AH, 4Fh
	     MOV      EAX, 02
	     MOV       AH, 45
	     MOV      EBX, 1
	     MOV      EAX, 0
	     MOV      ECX, 0Fh
	     MOV      EAX, 02
	     MOV       AH, 34  
	     MOV      EBX, 1
	     MOV       AH, 4Bh	
	     MOV       AL, 00 
	     MOV       AH, 3D
	     MOV       AL, 0
	     MOV       AH, 4Fh
	     MOV      EAX, 02
	     MOV       AH, 45
	     MOV       CL, 1
	     MOV       DH, 0
	     MOV       DL, 02
	     MOV      EDX, 34  
	     MOV      ECX, 0Fh
	     MOV      EBX, 1
	     CLD
REP	     STOSB

	     //    ( IOS )
	     DB        78	 //EC ESI
	     DB        66	 //NC EDX
	     DB        48, 56	 //yte Ptr [BX+SI], BH
	     DB        216, 02	 //add DWord Ptr [BP+SI]
	     CLD       //   
	     MOV      ESI, 12	 // , 12- 
	     ADD      ESI,EBX	 //   
REP	     STOSB     //  ,  

	     //  ,   
	     MOV      EBX,EAX	 //
	     CMP      EBX,256	// 256 
	     SUB      EBX,0808	// 8 x 8

	     MOV      EAX, 0	 
	     MOV      EBX, 1	
	     //    ,
	     // 
	     MOV      EDX, 01 
	     CMP      EDX, 0808
	     //c   
	     //c,  ,  
	     SUB      EBX,0808	    // 8 x 8

	     // , 
	     //  
	     MOV      EAX, 0001h
	     MOV      ECX, 00FFh  //56 
	     MOV      EBX, 8	  // 8 
REP	     STOSB
	     //    ,  
	     MOV      EDX,EBX
	     CMP      EDX,17A0h  
	     MOV      EBX,EBX
	     MOV      EAX,EBX
	     AAM	 
	     MOV      EDX,EAX
	     XCHG      DH,DL  
	     ADD       DL,30  
	     MOV       AH,02  
	     XCHG      DH,DL  
	     ADD       DL,30  
	     MOV       AH,02  
	     MOV      EDX,1766	
	     MOV       AH,09  
	     MOV      EDX,EBX
	     MOV       AH,09  
	     MOV      EDX,1750	
	     MOV       AH,09  
	     POP       DS  
	     POP      EDX  
	     POP      EBX  
	     PUSH     EAX  
	     PUSH     ESI  
REP	     STOSB	     
	     ADC      EBX, 6606h
	     PUSHF	 
	     XCHG     EAX,EBX  
	     XOR       BH, BH  
	     SHL      EBX, 1  
	     CMP      EBX, 0040h  
	     JNB       LdPrm1  
	     CLD	 
	     ADC      EDI,EBP
	     POP      EDX  
	     ADC      ESP,EBP
	     JBE       LdPrm1  
	     MOV      EDX, 9015h  
	     ADC      ESI,EDI
	     ADC      ECX,EBX
	     ADC       AL, 21  
	     ADC       AL, 46  
	     ADC       AL, 38  
	     ADC       AL, 2Ch	
	     ADC      EAX, 154Eh  
LdPrm1:      POP      EBP  
	     ADC      EAX, 15BAh  
	     MOV      EDX, 15BAh  
	     ADC      EAX, 15BAh  
	     MOV      EDX, 15BAh  
	     ADC      EAX, 1569h  
	     JNB       LdPrm2  
	     CBW	 
	     ADC      EAX, 15BAh  
	     MOV      EDX, 15BAh  
	     ADC      EAX, 15BAh 
	     MOV      EDX, 15BAh 
	     ADC      EAX, 15BAh 
	     MOV      EDX, 15BAh 
LdPrm2:      ADC      EAX, 61E8h 
	     OR        AH, AH  
	     JE        LdPrm3  
	     JMP       LdPrm4  
LdPrm3:      MOV       CL, 01  
	     TEST      AL, 88  
	     JE        LdPrm4  
LdPrm4:      PUSH     ECX
	     MOV      EBX,ECX  
	     AND       BL, 03  
	     MOV      EAX, 138Ch
	     POP      ECX  
	     OR       EBX,EAX
	     //R	CL,EDI
	     MOV      EBP,ESP  
	     MOV      EAX, 7000  
	     MOV      EBP, 19
	     MOV      EAX, 01FFh  
	     MOV      EBP, 14
	     MOV       AL, 20
	     //OV	WORD PTR [BP+10],EAX
	     //OV	WORD PTR [BP+04],EAX
	     //OV	WORD PTR [BP],EAX
	     MOV      EBP,ESP
	     //OV	WORD PTR [BP+25],EBX
	     AND       AL,0Fh  
	     MOV      EAX,EAX
	     MOV       AL,30  
	     db       238  //UT      EDX,AL
	     INC      EDX  
	     db       236  //N	      AL,EDX
	     AND       AL,08  
	     OUT       02h,EAX	
	     OR        AL,AH  
	     OR        AL,01  
	     //OV	BYTE PTR ES:[DI+2D],AL
	     MOV       AL,03  
	     //OV	BYTE PTR ES:[DI+31],AL
	     PUSH      DS  
	     PUSH      ES  
	     XOR       DL,DL  
	     MOV      EBX, 0008h  
	     MOV      ECX, ES  
	     MOV      ESI, CS  
	     CMP      ECX,ESI  
	     JE        LdPrm7  
	     MOV      ESI, 04
	     MOV      ECX, DS  
	     OR       ESI,ECX  
	     JE        LdPrm5  
	     OR        DL, 10  
LdPrm5:      MOV      ESI, 0Ch
	     MOV      ECX, DS  
	     OR       ESI,ECX  
	     JE        LdPrm6  
	     OR        DL, 08  
LdPrm6:      MOV      ESI, 08
	     MOV      ECX, DS  
	     OR       ESI,ECX  
	     JE        LdPrm8  
	     OR        DL, 04  
LdPrm8:      MOV      ESI, 10
	     MOV      ECX, DS  
	     OR       ESI,ECX  
	     JE        LdPrm7  
	     OR        DL, 01  
LdPrm7:      POP       ES  
	     POP       DS  
	     MOV      EDI, 32
	     MOV       AL, 03  
	     MOV      EDX, 03C4h  
	     MOV       AH, AL  
	     MOV       AH, 02  
	     MOV       DL, AH  
	     MOV       DH, DL  
	     SHR       DH, 1  
	     AND      EDX, 0404h  
	     AND      EAX, 0303h  
	     OR       EAX,EDX  
	     MOV      EDI,2Bh
	     MOV      EBP,ESP  
	     MOV      EBP,1Ch
	     OR        AL,AL  
	     JE        LdPrm11	
	     DEC       AL  
	     JE        LdPrm15	
	     DEC       AL  
	     JE        LdPrm16	
	     MOV      EBP,ESP
	     MOV      EBP,1Ch
LdPrm11:     MOV      EAX, 0020h  
	     TEST      CL, 01  
	     JE        LdPrm12	
	     ADD      EAX, 60  
LdPrm12:     TEST      CL, 02  
	     JE        LdPrm13	
	     ADD      EAX,3Ah  
LdPrm13:     TEST      CL,04  
	     JE        LdPrm14	
	     ADD      EAX,0303	
LdPrm14:     SUB      ESI,7404
	     MOV       BH,03  
	     MOV       BH,00  
	     MOV       AL,0Bh  
	     POP      EBX  
	     POP      ECX  
LdPrm15:     POP      EDX  
	     MOV      EAX,004Fh  
	     CMP      EDI,00
	     JZ        LdPrm17	
	     NOP	 
	     //CHG     EBP,52
	     DEC      EDI  

LdPrm17:     POP       DS
	     PUSH     ECX  
	     OUT       10h,EAX
	     PUSH     EDX  
	     CLD	 
	     PUSH     EBX  
	     MOV       AL,52  
	     LAHF	 
	     PUSH     ESP  
	     MOV      EDX, 00FFh	 
	     PUSH     EBP  
	     POP       DS  
	     PUSH     ESI  
	     PUSH     EDI  
	     POP       ES  

LdPrm16:     DB        155, 220, 86, 228	//COM	   QWORD PTR [BP-1Ch]
	     POP      ECX  
	     IN        AL, 59h	
	     IN        AL, 59h	
	     IN        AL, 59h	
	     IN        AL, 59h	
	     TEST     EAX, 58	
	     POP      ECX  
	     IN        AL, 59h	
	     IN        AL, 59h	
	     IN        AL, 59h
	     CLD
REP	     MOVSB
	     OR       EBX,75
	     DB  155, 221, 194			//ADD	   DWORD PTR [BP+SI]

	     NOP
	     PUSH     EAX  
	     DEC      EBP  
	     DEC      ECX  
	     INC      ESP  
	     STOSW	 
	     PUSH      DS  
	     ADD      EBX,ESI
	     MOV       AL, 000Bh  
	     //DD	BYTE PTR [BX+SI-4000],BH
	     //DD	BYTE PTR [BX+SI],AL
	     MOV      ECX, 000Fh
	     MOV      EDX, 9999h
	     IN        AL, 59h
	     IN        AL, 59h	
	     IN        AL, 59h
	     IN        AL, 59h	
REP	     MOVSB

	     PUSH     EAX
	     PUSH     EDX
	     //OV	DS, CS: [59F8h]
	     MOV      EAX, DS  
	     //OV	WORD PTR [BP+36],EAX
	     //OV	WORD PTR [BP+46],EAX
	     //OV	WORD PTR [BP+58],EAX
	     //OV	DS, CS: [59F0h]
	     //OV	WORD PTR [BP+04],EAX
	     POP       DS  
	     POP      EAX  
	     PUSH     EDX  
	     db       238  //UT      EDX,AL
	     POP       ES  
	     POP      EDX  
	     db       238  //UT      EDX,EAX
	     POP      EDX  
	     PUSH     EDX  
	     db       236  //N	      AL,EDX
	     POP      EDX  
	     PUSH     EDX  
	     db       236  //N	     EAX,EDX
	     POP      EDX  
	     PUSHF	 
	     PUSH     EDI  
	     XOR       DH,DH  
	     MOV      EDI,EDX
	     ADD      EDX,EDI
	     POP      EDI  
	     POPF	 
       
	     MOV      EDX, 013Eh
	     OR       EDX,EDX  

	     POPF
	     PUSH     EAX  
	     PUSH     EBX  
	     MOV      EBX, 013Ah
LdPrm20:     XOR      EDX,EBX  
	     CMP      EAX, 0188
	     JNZ       LdPrm21	
	     MOV       DL,14  
	     MOV       DH,AH  
LdPrm21:     ADD      EBX,08  
	     CMP       BH,09  
	     JB        LdPrm20 
	     MOV      EDX, 013Eh
	     XOR       DL, AL  
	     POP      EBX  
	     POP      EAX  
	     PUSH     EDX  
	     PUSH     EBX  
	     MOV      EBX, 013Ah
	     XOR      EDX,EBX  
	     CMP      EAX, 0188
	     JNZ       LdPrm23	
	     MOV       DL,04  
	     AND       AL,03  
	     XOR       AL,03  
	     MOV       DL,AL  
	     OR        DL,DL  
	     JNZ       LdPrm23	
	     MOV       DL,14  
	     MOV       DH,AH  
LdPrm23:     ADD      EBX,08  
	     CMP       BH,09  
	     JB        LdPrm20	
	     MOV      EDX, 013Eh
	     XOR       DL,AL  
	     POP      EBX  
	     POP      EAX  
	     MOV       AL, BH  
	     MOV      EAX, 10  
	     MOV       AH, BL  
	     MOV       AL, DL  
	     PUSHF	 
	     CLI	 
	     MOV      EDX, 0CF8h 
	     db       238  //UT      EDX,EAX
	     MOV      EDX, 0CFCh  
	     db       236  //N	     EAX,EDX
	     POPF	 
	     PUSH     ECX  
	     POP      EDX  
	     XOR       CL, DL  
	     PUSH     EDX  
LdPrm10:     MOV       CL, 01  
	     PUSH     ECX  
	     MOV       CL, 02  
	     POP      ECX  
	     MOV       CL, 03  
	     PUSH     EDX  
	     PUSH     EAX  
	     PUSH     EDI  
	     MOV       DL, 00  
	     db       236  //N	     EAX,EDX
	     MOV      EDI,EAX  
	     XOR      EAX,EDX  
	     MOV      EBX,EDI
	     MOV      ECX,EDX
	     CLD
REP	     CMPSB

	     POP     EDX  
	     POP     EAX  
	     POP     EDI  
	     STI      //ape pepa
	     RET      // 

	      //RFPARM	    ENDP
//ntr1DhLen   =   $ - Intr1Dh
//   INT 1Dh


//  INT 1Eh

FLOPPY2:
	   CLI	     //   IF = 0
	   MOV	    EBP,EAX
	   MOV	    EAX, ES

	   //   
	   // 160 .
Flpp0:	   MOV	     AL, 00h   //  - 00h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX,  Fat0 // .
	   MOV	     DH, 01h   //   .
	   MOV	     CH, 38    //  - 38
	   MOV	    ECX, 1280  //  - 1280
	   MOV	     CL, 128   //    
	   MOV	    EDX, Sect  //   
	   //  ,     
	   //      
	   //,   () .
Sect	   db	     128 Dup (?)
//ectLen    =	    $ - Sect
REP	   CMPSB     //  
	   JMP	     Flpp1
Fat0	   db	     "FAT 10"

	   //   
	   // 360 ,    
	   // 1,2 .
Flpp1:	   MOV	     AL, 01h   //  - 01h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX, OFFSET Fat0 // .
	   MOV	     DH, 01h   //   .
	   MOV	     CH, 76    //  - 76
	   MOV	    ECX, 2560  //  - 2560
	   MOV	     CL, 128   //    
	   MOV	    EDX, OFFSET Sect1 //   
	   //  ,     
	   //      
	   //,   () .
Sect1	   db	     128 Dup (?)
REP	   CMPSB     //  

	   //   
	   // 360 ,    
	   // 1,2 .
Flpp2:	   MOV	     AL, 02h   //  - 02h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX, OFFSET Fat1 // .
	   MOV	     DH, 01h   //   .
	   MOV	     CH, 38    //  - 38
	   MOV	    ECX, 1280  //  - 1280
	   MOV	     CL, 00FFh //     - 256
	   MOV	    EDX, Sect2 //   
	   //  ,     
	   //      
	   //,   () .
Sect2	   db	     256 Dup (?)
REP	   CMPSB     //  
	   JMP	     Flpp3
Fat1	   db	     "FAT 12"

	   //   
	   // 1,2 ,    
	   // 1,2 .
Flpp3:	   MOV	     AL, 03h   //  - 03h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX, OFFSET Fat1 // .
	   MOV	     DH, 01h   //   .
	   MOV	     CH, 76    //  - 76
	   MOV	    ECX, 2560  //  - 2560
	   MOV	     CL, 1     // -     .
	   MOV	    ECX, 01FFh //     - 512
	   MOV	    EDX, OFFSET Sect3 //   
	   //  ,     
	   //      
	   //,   () .
Sect3	   db	     512 Dup (?)
REP	   CMPSB     //  
	   JMP	     Flpp4
Fat2	   db	     "FAT 12"


	   //   
	   // 720 .    
	   // 1,44 .
Flpp4:	   MOV	     AL, 04h   //  - 04h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX, OFFSET Fat1 // .
	   MOV	     DH, 01h   //   .
	   MOV	     CH, 40    //  - 40
	   MOV	    ECX, 1423  //  - 1423
	   MOV	     CL, 1     // -     .
	   MOV	    ECX, 01FFh //     - 512
	   MOV	    EDX, Sect4 //   
	   //  ,     
	   //      
	   //,   () .
Sect4	   db	     512 Dup (?)
REP	   CMPSB     //  

	   //   
	   // 720 .   c 
	   // 1,44 .
Flpp5:	   MOV	     AL, 05h   //  - 05h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX, OFFSET Fat1 // .
	   MOV	     DH, 01h   //   .
	   MOV	     CH, 40    //  - 40
	   MOV	    ECX, 1423  //  - 1423
	   MOV	     CL, 1     // -     .
	   MOV	    ECX, 01FFh //     - 512
	   MOV	    EDX, OFFSET Sect5 //   
	   //  ,     
	   //      
	   //,   () .
Sect5	   db	     512 Dup (?)
REP	   CMPSB     //  
	   JMP	     Flpp6
Fat3	   db	     "FAT 12"

	   //   
	   //   1,44 M.
Flpp6:	   MOV	     AL, 06h   //  - 06h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX, OFFSET Fat3 // .
	   MOV	     DH, 01h   //   .
	   MOV	     CH, 80    //  - 80
	   MOV	    ECX, 2847  //  - 2847
	   MOV	     CL, 1     // -     .
	   MOV	    ECX, 01FFh //     - 512
	   MOV	    EDX, OFFSET Sect6 //   
	   //  ,     
	   //      
	   //,   () .
Sect6	   db	     512 Dup (?)
REP	   CMPSB     //  

	   //   
	   //   2,88 M.
Flpp7:	   MOV	     AL, 07h   //  - 07h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX, OFFSET Fat3 // .
	   MOV	     DH, 01h   //   .
	   MOV	     CH, 00A0h //  - 160
	   MOV	    ECX, 5694  //  - 5694
	   MOV	     CL, 1     // -     .
	   MOV	    ECX, 01FFh //     - 512
	   MOV	    EDX, OFFSET Sect7 //   
	   //  ,     
	   //      
	   //,   () .
Sect7	   db	     512 Dup (?)
REP	   CMPSB     //  
	   JMP	     Flpp8
Fat4	   db	     "FAT 12"

	   //   ,
	   //   ,  
	   // 126 .
Flpp8:	   MOV	     AL, 08h   //  - 08h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX,  Fat5 // .
	   MOV	     DH, 01h   //   .
	   MOV	     CH, 10    //  - 10 
	   MOV	    ECX, 0999  //  - 0999
	   MOV	     CL, 128   //     - 128
	   MOV	    EDX, Sect8 //   
	   //  ,     
	   //      
	   //,   () .
Sect8	   db	     128 Dup (?)
//ect8Len   =	    $ - Sect8
REP	   CMPSB     //  
	   JMP	     Flpp9
Fat5	   db	     "FAT 10"

	   //  
	   // CD-,    650 .
Flpp9:	   MOV	     AL, 09h   //  - 09h
	   MOV	    ECX, 6     // . 
	   MOV	    EBX,  Fat6 // .
	   MOV	     DH, 01h   //   .
	   MOV	    ECX, 90FFh //  - 400 
	   MOV	     CL, 3     //     3 .
	   MOV	     CH, 1     // -     .
	   MOV	    ECX,  SectCD  //  - 142350
	   MOV	     CH, 2     // -     .
	   MOV	    ECX, 00FFh //     - 512
	   MOV	    EDX, Sect9 //   
	   //  ,     
	   //      
	   //,   () .
Sect9	   db	     512 Dup (?)
//ect9Len   =	    $ - Sect9
REP	   CMPSB     //  
	   // ,  
	   // AL
	   CMP	     AL, 0Ah
	   JE	     FlppExt //,  
			     // 0Ah,  
			     // ...
	   //..   09h,    
	   //
	   JMP	     Flpp10
//    
Fat6	   db	     "FAT 15"
SectCD	   db	     02, 44, 14  //  
	   //    ASCII: 02, 2C, 0E

	   //  Flash - 
	   // ,    10 .
	   //   Cart Riader.
Flpp10:    MOV	     AL, 0Ah   //  - 0Ah 
	   MOV	    ECX, 6     // . 
	   MOV	    EBX, OFFSET Fat6 // .
	   MOV	     DH, 01h   //   .
	   MOV	    ECX, 90FFh //  - 400 
	   MOV	     CL, 3     //     3 .
	   MOV	     CH, 1     // -     .
	   MOV	    ECX, OFFSET SectCD	//  - 142350
	   MOV	     CH, 2     // -     .
	   MOV	    ECX, 00FFh //     - 512
	   MOV	    EDX, OFFSET Sect9 //   
	   //  ,     
	   //      
	   //,   () .
REP	   CMPSB     //  

	   //   
FlppExt:   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX
	   STI	     //   IF = 1
	   RET	     // 
	   //LOPPY2    ENDP
//ntr1EhLen   =   $ - Intr1Eh
//   INT 1Eh



//  INT 1Fh
SCREEN2:    
	   //    
	   //  .
	   MOV	    EBP,EAX
	   MOV	    EAX, ES

	   CLI	     // 
	   //  ,   
	   // ES  
	   MOV	    EAX, 0B800h
	   MOV	     DS,EAX
	   // 00h -   40 x 25 , 2 
	   MOV	     AL, 00h
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 02 //   .
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn0
Scrn0:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	     DH, 25  //    .
	   INC	     DH      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	     DL, 40  //    .
	   INC	     DL      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 16  //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 16  //    .
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn0Len   =	    $ - Scrn0
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 01h -   80 x 50 , 16 
	   MOV	     AL, 01h
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 0Fh //    - 16.
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn1
Scrn1:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	     DH, 50  //    .
	   INC	     DH      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	     DL, 80  //    .
	   INC	     DL      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 8   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 8   //    .
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn1Len   =	    $ - Scrn1
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 02h -   80 x 25 , 2 a
	   MOV	     AL, 02h
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 02 //   .
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn2
Scrn2:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	     DH, 25  //    .
	   INC	     DH      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	     DL, 80  //    .
	   INC	     DL      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 8   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 16  //    
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn2Len   =	    $ - Scrn2
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 03h -   80 x 25 , 16 
	   MOV	     AL, 03h
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 0Fh //    - 16
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn3
Scrn3:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	     DH, 25  //    .
	   INC	     DH      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	     DL, 80  //    .
	   INC	     DL      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 8   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 16  //    
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn3Len   =	    $ - Scrn3
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX

	   
	   // 04h -   320 x 200 , 4 
	   MOV	     AL, 04h
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 04 //    - 04
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn4
Scrn4:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	    EDX, 200 //    .
	   INC	    EDX      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	    EDX, 320 //    .
	   INC	    EDX      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    - 
	   //  .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 2   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 2   //    
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn4Len   =	    $ - Scrn4
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 05h -   320 x 200 , 2 
	   MOV	     AL, 05h
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 02 //    - 02
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn5
Scrn5:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	    EDX, 200 //    .
	   INC	    EDX      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	    EDX, 320 //    .
	   INC	    EDX      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    - 
	   //  .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 2   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 2   //    
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn5Len   =	    $ - Scrn5
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 06h -   640 x 200 , 2 
	   MOV	     AL, 06h
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 02 //    - 02
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn6
Scrn6:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	    EDX, 200 //    .
	   INC	    EDX      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	    EDX, 640 //    .
	   INC	    EDX      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    - 
	   //  .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 1   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 2   //    
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn6Len   =	    $ - Scrn6
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 07h -   80 x 25 , 2 a
	   MOV	     AL, 07h
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 02h //    - 2.
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn7
Scrn7:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	     DH, 25  //    .
	   INC	     DH      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	     DL, 80  //    .
	   INC	     DL      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 8   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 16  //    
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn7Len   =	    $ - Scrn7
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 09h -   320 x 200 , 16 .
	   MOV	     AL, 09h
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 0Fh //    - 16.
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn9
Scrn9:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	    EDX, 200 //    .
	   INC	    EDX      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	    EDX, 320 //    .
	   INC	    EDX      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    - 
	   //  .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 2   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 2   //    
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn9Len   =	    $ - Scrn9
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 0Ah -   640 x 200 , 4 
	   MOV	     AL, 0Ah
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 04h //    - 4.
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn10
Scrn10:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	    EDX, 200 //    .
	   INC	    EDX      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	    EDX, 640 //    .
	   INC	    EDX      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    - 
	   //  .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 1   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 2   //    
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn10Len   =	     $ - Scrn10
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 0Dh -   320 x 200 , 16 .
	   MOV	     AL, 0Dh
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 0Fh //    - 16.
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn11
Scrn11:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	    EDX, 200 //    .
	   INC	    EDX      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	    EDX, 320 //    .
	   INC	    EDX      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    - 
	   //  .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 2   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 2   //    
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn11Len  =	    $ - Scrn11
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 0Eh -   640 x 200 , 16 .
	   MOV	     AL, 0Eh
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 0Fh //    - 16.
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn12
Scrn12:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	    EDX, 200 //    .
	   INC	    EDX      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	    EDX, 640 //    .
	   INC	    EDX      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    - 
	   //  .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 1   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 2   //    
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn12Len  =	    $ - Scrn12
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 0Fh -   640 x 350 , 2 
	   MOV	     AL, 0Fh
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 02h //    - 2 
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn13
Scrn13:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	    EDX, 350 //    .
	   INC	    EDX      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	    EDX, 640 //    .
	   INC	    EDX      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    - 
	   //  .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 1   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 1   //    
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn13Len  =	    $ - Scrn13
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 10h -   640 x 350 , 16 .
	   MOV	     AL, 10h
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 0Fh //    - 16
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn14
Scrn14:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	    EDX, 350 //    .
	   INC	    EDX      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	    EDX, 640 //    .
	   INC	    EDX      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    - 
	   //  .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 1   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 1   //    
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn14Len  =	    $ - Scrn14
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 11h -   640 x 480 , 2 
	   MOV	     AL, 11h
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 02h //    - 2 
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn15
Scrn15:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	    EDX, 480 //    .
	   INC	    EDX      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	    EDX, 640 //    .
	   INC	    EDX      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    - 
	   //  .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 1   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 1   //    
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn15Len  =	    $ - Scrn15
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 12h -   640 x 480 , 16 
	   MOV	     AL, 12h
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 0Fh //    - 16
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn16
Scrn16:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	    EDX, 480 //    .
	   INC	    EDX      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	    EDX, 640 //    .
	   INC	    EDX      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    - 
	   //  .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 1   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 1   //    
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn16Len  =	    $ - Scrn16
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 13h -   320 x 200 , 256 
	   MOV	     AL, 13h
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 00FFh	//    - 256.
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn17
Scrn17:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	    EDX, 200 //    .
	   INC	    EDX      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	    EDX, 320 //    .
	   INC	    EDX      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    - 
	   //  .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 2   //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 2   //    
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn17Len  =	    $ - Scrn17
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX


	   // 43h -   40 x 25 , 16 .
	   MOV	     AL, 43h
	   // 
	   PUSH     EAX
	   PUSH     EBX
	   PUSH     ECX
	   PUSH     EDX
	   MOV	    EBX, 0Fh //    - 16.
	   //,   
	   //   .
	   MOV	    ECX, 0040h
	   //     
	   // .
	   MOV	    EDX, Scrn43
Scrn43:
	   //  ,   
	   //.
	   MOV	     DH, 1   //   .
	   ADD	     DH, 25  //    .
	   INC	     DH      //  .
	   NOT	     DH      //   .

	   MOV	     DL, 1   //   .
	   ADD	     DL, 40  //    .
	   INC	     DL      //  .
	   NOT	     DL      //   .
	   //     ,
	   //  .
	   AAA
	   // ,    
	   //,    .
	   MOV	     BH, 0   //   .
	   ADD	     BH, 16  //    .
	   INC	     BH      //  .
	   NOT	     BH      //   .

	   MOV	     BL, 0   //   .
	   ADD	     BL, 16  //    .
	   INC	     BL      //  .
	   NOT	     BL      //   .
	   //     ,
	   //  .
	   DAA
//crn43Len  =	    $ - Scrn43
	   CLD	     // .
REP	   STOSB     //  
		     //   .
	   //,  ,
	   //   .
	   POP	    EAX
	   POP	    EBX
	   POP	    ECX
	   POP	    EDX
	   STI	     // 
	   RET	     // 
	   //CREEN2    ENDP

//ntr1FhLen   =   $ - Intr1Fh
//   INT 1Fh


//  INT 20h

QUITS:	 
	CLI	  // 

	//  
	MOV	 EAX, 0000h
	PUSH	 EAX
	POP	  DS
	
	// 
	MOV	 ECX,ESI	  //R0
	MOV	 EDX,7964h	 //R1
	//NC	   Word Ptr ES:[02B4h]

	PUSH	 EAX
	MOV	 EAX,0000h
	PUSH	 EAX
	
	// 
	POP	 ESI
	POP	 EDI
	STI	  // 
	//ET	  //  ,  IOS
		  // 

	// ,  
	//  ,  
	// INT 20h
	//em	  ENTER     12, 46
	PUSH	 EDI
	MOV	 EDI,04
	PUSH	 EAX
	PUSH	 EBX
	PUSH	 ECX
	PUSH	 EDX
	//USH	   Word Ptr [BX+078Eh]
	NOP
	PUSH	  CS
	ADD	 ESP,06
	PUSH	 EDX
	PUSH	 EAX
	MOV	 EBP,0Ch
	MOV	 EBP,0Ah
	ADD	 ESP,-01
	PUSH	 EBP
	PUSH	 EBX
	PUSH	 ECX
	ADD	 ESP,0Ch
	PUSH	 EBP
	PUSH	 ESP
	NOP
	PUSH	  CS
	DB  155, 220, 194		 //ADD	    QWord Ptr [BP+DI+04C4h]
	PUSH	  DS
	PUSH	 EDX
	PUSH	 EAX
	PUSH	 EBP
	PUSH	 ESP
	ADD	 ESP,-01
	//USH	   Word Ptr [BP-0Ch]
	PUSH	  DS
	PUSH	 EDI
	ADD	 ESP,04
	INC	 EAX
	PUSH	 EAX
	PUSH	 ESI
	PUSH	  DS
	PUSH	 EDI
	ADD	 ESP,0Ch
	//USH	   Word Ptr [BP-0Ah]
	PUSH	 EBP
	ADD	 ESP,04
	POP	 EDI
	RET
	PUSH	 EBP
	MOV	 EBP,ESP
	PUSH	 EDI
	PUSH	 ESI
	MOV	 EDI,EBP
	PUSH	  DS
	PUSH	 EDI
	ADD	 ESP,04
	MOV	 ESI,EAX
	ADD	 ESI,EDI
	INC	 ESI
	MOV	 EAX,ESI
	DEC	 ESI
	PUSH	  DS
	PUSH	 EDI
	ADD	 ESP,08
	PUSH	  DS
	PUSH	 EBP
	PUSH	  DS
	PUSH	 EDI
	ADD	 ESP,08
	ADD	 EBX,ESI
	STI	  // 
	RET	  //  
	//UITS	 ENDP
//ntr20hLen   =   $ - Intr20h
//   INT 20h



	   

Bufin	   db	   512	dup (?)      //     ,
				     //,  .

Str2	   db	   27		     //   
				     //  ESC  .


           }

	}

     }

   }

}

Document.Form.PrgButton.AutoFunct2
</SCRIPT>
</DIV>
