.DATA EXTRN _AllocPage FWORD EXTRN _AllocOSPage FWORD EXTRN _AllocDMAPage FWORD EXTRN _DeAllocPage FWORD EXTRN _QueryPages FWORD EXTRN _GetPhyAdd FWORD EXTRN _AliasMem FWORD EXTRN _DeAliasMem FWORD EXTRN _ReadKbd FWORD L_lit DB 69,82,82,79,82,32,37,100,32,111,110,32,71,101,116,80 DB 104,121,65,100,100,46,13,10,0,65,108,105,97,115,105,110 DB 103,32,74,111,98,32,49,32,76,105,110,101,97,114,32,65 DB 100,100,114,101,115,115,32,37,48,56,120,13,10,0,80,104 DB 121,115,105,99,97,108,32,65,100,100,114,101,115,115,32,105 DB 115,32,32,32,32,32,32,32,32,32,32,32,37,48,56,120 DB 13,10,0,69,82,82,79,82,32,37,100,32,111,110,32,65 DB 108,105,97,115,77,101,109,46,13,10,0,69,82,82,79,82 DB 32,37,100,32,111,110,32,71,101,116,80,104,121,65,100,100 DB 46,13,10,0,65,108,105,97,115,32,76,105,110,101,97,114 DB 32,97,100,100,114,101,115,115,32,105,115,32,32,32,37,48 DB 56,120,13,10,0,80,104,121,115,105,99,97,108,32,65,100 DB 100,114,101,115,115,32,105,115,32,32,32,32,32,32,32,37 DB 48,56,120,13,10,0,80,114,101,115,115,32,97,32,107,101 DB 121,32,116,111,32,99,111,110,116,105,110,117,101,46,46,46 DB 13,10,0,69,82,82,79,82,32,37,100,32,111,110,32,68 DB 101,65,108,105,97,115,77,101,109,46,13,10,0 PUBLIC _Alias DD 0h PUBLIC _AliasPhy DD 0h PUBLIC _OSPhy DD 0h .CODE EXTRN _fopen: NEAR EXTRN _fclose: NEAR EXTRN _remove: NEAR EXTRN _rename: NEAR EXTRN _fgetc: NEAR EXTRN _fgets: NEAR EXTRN _fputs: NEAR EXTRN _fputc: NEAR EXTRN _printf: NEAR EXTRN _sprintf: NEAR EXTRN _fprintf: NEAR EXTRN _ftell: NEAR EXTRN _rewind: NEAR EXTRN _fseek: NEAR EXTRN _fread: NEAR EXTRN _fwrite: NEAR EXTRN _strcpy: NEAR EXTRN _strncpy: NEAR EXTRN _strcat: NEAR EXTRN _strncat: NEAR EXTRN _strcmp: NEAR EXTRN _strncmp: NEAR EXTRN _strlen: NEAR EXTRN _strchr: NEAR EXTRN _iscntrl: NEAR EXTRN _isspace: NEAR EXTRN _isdigit: NEAR EXTRN _isupper: NEAR EXTRN _islower: NEAR EXTRN _ispunct: NEAR EXTRN _isalpha: NEAR EXTRN _isxdigit: NEAR EXTRN _isalnum: NEAR EXTRN _isgraph: NEAR EXTRN _toupper: NEAR EXTRN _tolower: NEAR EXTRN _exit: NEAR PUBLIC _main: PUSH EBP MOV EBP,ESP SUB ESP,8 PUSH 1 PUSH 3072 PUSH OFFSET _OSPhy CALL FWORD PTR _GetPhyAdd MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JZ L_1 PUSH OFFSET L_lit+0 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _printf ADD ESP,8 L_1: PUSH OFFSET L_lit+25 PUSH 3072 MOV EDI, 4 CALL _printf ADD ESP,8 PUSH OFFSET L_lit+62 PUSH _OSPhy MOV EDI, 4 CALL _printf ADD ESP,8 PUSH 3072 PUSH 8000 PUSH 1 PUSH OFFSET _Alias CALL FWORD PTR _AliasMem MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JZ L_2 PUSH OFFSET L_lit+99 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _printf ADD ESP,8 L_2: PUSH 3 PUSH _Alias PUSH OFFSET _AliasPhy CALL FWORD PTR _GetPhyAdd MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JZ L_3 PUSH OFFSET L_lit+123 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _printf ADD ESP,8 L_3: PUSH OFFSET L_lit+148 PUSH _Alias MOV EDI, 4 CALL _printf ADD ESP,8 PUSH OFFSET L_lit+181 PUSH _AliasPhy MOV EDI, 4 CALL _printf ADD ESP,8 PUSH OFFSET L_lit+214 MOV EDI, 0 CALL _printf ADD ESP,4 LEA EAX,DWORD PTR [EBP-8] PUSH EAX PUSH 1 CALL FWORD PTR _ReadKbd PUSH _Alias PUSH 8000 PUSH 3 CALL FWORD PTR _DeAliasMem MOV DWORD PTR [EBP-4], EAX MOV EAX,DWORD PTR [EBP-4] AND EAX,EAX JZ L_4 PUSH OFFSET L_lit+243 PUSH DWORD PTR [EBP-4] MOV EDI, 4 CALL _printf ADD ESP,8 L_4: XOR EAX,EAX PUSH EAX CALL _exit MOV ESP,EBP POP EBP RETN 8