Sunday, July 29, 2007

Safty measures to use internet with atmost care....

Ten thumb rules followed during internet access

It may sound clichéd to hear that Internet is the future.

However, despite the potential and prospects of the medium, many people scared to use it due to security fears (I know my friend will not use internet banking with ICICI and Punjab national bank where has the online accounting facility). At the same time, those who use the Internet often fumble when it comes to security. Here are 10 thumb rules to keep your personal information secure when online.

Favor common sense over technological solutions. Keep personal documents safe, preferably in a locked drawer. Shred bank statements, credit card slips and bills before throwing them away.

Rule 1


Never open unsolicited "spam" messages. Delete e-mails offering cash, free gifts or stock tips. Millions of unsolicited "spam" messages are sent every day in an attempt to defraud computer users.


Rule 2

Basic prevention helps. Protect your computer against identity theft. Install security

software to combat viruses, spy ware and spam and keep it updated.

Rule 3

Know enough about your firewall, the barrier between the public Internet and a personal computer, to know when it is working and when it isn't. Don't worry about the geeky complexity of it all, just know it's operating.

Rule 4

Beware of "phishing", where criminals trick people into revealing personal or financial

details, often by sending e-mails purporting to be from a bank. Never casually reply

to requests for your personal financial details.

Rule 5

Keep your private e-mail address secure. Consider using different e-mail accounts for

shopping, banking, friends and work. There are many free account providers.

Rule 6

Do not use the same password for different sites. Choose passwords with a mix of letters, numbers and symbols. Don't use obvious passwords, such as your first name or "123456" and don't write them down. For memory's sake, choosing a basic root word, then rotating numbers, is safer.

Rule 7

Make online payments safely. Never enter a card number unless there is a padlock in the Web browser's frame, rather than the Web page. The Web address should begin with "https" -- the extra "S" stands for "secure". Consider reserving one credit card for Web use or signing up for a separate online payment service like PayPal.

Rule 8

Secure your wireless network at home and be wary when using public access points. Encrypt the connection to scramble communications over the network.

Rule 9

Turn off the wireless network when you're not using it.

Rule 10

Treat your laptop computer like cash -- never leave it in a locked car or turn your back while using it in a public place. The same holds true with your mobile phone: Lock your phone (and any passwords you keep on it) when not using it.

Thursday, July 26, 2007

How do I get Visual Studio to recognize .cc files as c++ source files?

Use the /Tp option of the compiler to instruct it to assume the file is C++. You can put this in as a custom build rule, or modify some registry settings to add .cc to the list of file extensions recognized as C++.

The key to modify is:

HKEY_CURRENT_USER\Software\Microsoft\DevStudio\X.0\Build System\Components\Platforms\Win32 (x86)\Tools\32-bit C/C++\Input_Spec

and

HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Build System\Components\Tools\\Input_Spec

where X is the DevStudio version (5 or 6). You'll probably want to modify the following key to get automatic source code syntax coloring:

HKEY_CURRENT_USER\Software\Microsoft\DevStudio\X.0\Text Editor\Tabs/Language Settings\C/C++\FileExtensions


This method is nicer because it will save you a lot of work setting up the custom build rules. However, you still have to add the /TP switch manually to the Project Settings to get the compiler to fully recognize the file as C++. The downside: You won't be able to mix C and C++ files in the project, in which case, the only option is using custom build rules.

IMPORTANT: This procedure contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article numbers to view the Microsoft Knowledge Base articles:

256986 - Description of the Microsoft Windows Registry

322756 - HOW TO: Back Up, Edit, and Restore the Registry in Windows XP.

Wednesday, July 25, 2007

Next Windows Operating System name is Windows version 7

New Microsoft OS name “Windows Version 7”

Software giant Microsoft is planning to ship its next major version of Windows -- currently known as version "7" internally -- within three years, according to media reports

A Microsoft representative was quoted as saying that "Microsoft is scoping Windows 7 development to a three-year time frame." Interestingly, a subscription model is also being considered for the future Windows.

The acknowledgment follows last week's conference of the software giant's sales force, Microsoft's Global Exchange, held in Orlando to outline the company's post-Vista future.

"Microsoft is scoping Windows '7' development to a three-year timeframe, and then the specific release date will ultimately be determined by meeting the quality bar," the representative said.

"In the meantime, Microsoft is dedicated to helping customers deploy and get the most business value from their PCs using Windows Vista and related technologies like the Microsoft Desktop Optimization Pack, and we're encouraged by the response and adoption of these products so far."

Very few details are currently available about plans for the new OS other than that it will have 32- and 64-bit versions and will ship in consumer and business editions like Vista.

Microsoft said the outline of Windows 7 was provided particularly for corporate customers who are part of the software maker's Software Assurance licensing program. Many business customers pay for Microsoft's software under a license agreement called Software Assurance.

Microsoft has been criticized by business customers for delays related to Vista. Vista development was marked by numerous delays as Microsoft moved the release date. The entire development of Vista spanned five years until its eventual release in November 2006 for businesses and January 2007 for consumers.

According to media reports, Microsoft seems to be trying hard to reassure customers about its development cycle after a recent Forrester study that criticized its business-oriented subscription program (Software Assurance). The study raised questions about the financial benefits of Software Assurance program.

Software Assurance is the Microsoft program that allows customers with volume licenses for Windows automatically get upgrades when new versions come out.

In fact, according to a new Gartner report, Microsoft is making several business tools available only via Software Assurance, and Gartner expects this trend to continue.

Saturday, July 21, 2007

User level secruity in Mac OS X

OS 10.4 Security Tip

I would like to shed some light on the different types of user accounts that can be created and operated in OS 10.4. Knowledge of the different account types can help keep your computer secure.

User

The User account is the least privileged account. It allows a user to modify settings for his/her own account but not for others and cannot modify the universal settings. For multiple users of a single system you can further limit user accounts to prevent them from changing system preferences, removing items from the Dock, changing passwords, burning CDs or DVDs or using some installed applications.

Admin

The Admin account can perform many of the operations normally associated with the root user. An Admin account can add or delete User files, but typically cannot otherwise modify the contents of the User file. Admin accounts can modify the System folder by using the Installer or Software Update applications.

Root

The Root user is a superuser (su), which has full permissions for anything. Root users can execute any file and can access, read, modify or delete any file in any directory. Unlike most UNIX systems this superuser Root access is turned off by default and most Mac users will never have to access Root. This protects your Mac from those that might do damage by acting as a root user.

Every user on every computer should have a password assigned to him or her. Many people are always logged into the Admin account by default, which is a security risk.

For an extra level of security, you can do what Morgan at Small Dog does - he creates an Admin account, and then creates his own non- admin user account for himself to use. The Admin account is the first account he creates on his computer, and then he creates the user account. You create the secondary user account in "Accounts" in "System Preferences." Here's how we do it:

  1. Browse to System Preferences > Accounts.
  2. Create a new user, with a new name and password.
  3. Click on the button that says, "Allow user to administer this computer."
  4. Select your previous Account.
  5. De-select the button that says, "Allow user to administer this computer." The non-Admin will have all the data, bookmarks, and software that were created when it was an Admin Account. The Admin won't have this data, but in most cases should not need it.

Even if you've always been logged into your computer as an Admin, it's not too late to go back and demote yourself to user with the instructions above.

If you need both users to have access to all data, there may be some UNIX script that would allow you to do that.

Let me know if you have any other suggestions or queries!

Friday, July 20, 2007

Zapping PRAM in Macintosh.....

What is Zapping PRAM in Mac OS X?

Sometimes we may heard Macintosh computer technicians say a computer needs its PRAM zapped. For most of us, this sounds very odd, and maybe even a little obscene. But don't worry; it's a standard part of the Mac troubleshooting routine.

PRAM stands for "parameter random access memory." A document in Apple's knowledge base reads:

"PRAM stores certain system and device settings in a location that Mac OS X can access quickly. Exactly which settings are stored in the computer's PRAM varies depending on the type of computer as well as the types of devices and drives connected to the computer. Parameter RAM is a small area of non-volatile RAM (NVRAM)."

Because PRAM is "Non-volatile RAM," it will store data even when the computer is turned off. It will also typically store data when the computer automatically shuts off due to severe battery drain.

According to Apple, some of the data stored in PRAM includes:

  • Display and video settings such as refresh rate, screen resolution, number of colors
  • Time zone setting
  • Startup volume choice
  • Speaker volume
  • Recent kernel panic information, if any exist
  • DVD region setting

Many issues can be resolved by "zapping the PRAM." This includes issues such as Macs that are flashing a question mark when powered on, to missing pictures on the iMac G5's display, to computers that simply won't power up at all. PRAM can be corrupted by faulty (typically third party) software, power surges, and electromagnetic interference.

In most Macs you can "zap the pram" by powering the computer on, then immediately holding down the Command, Option, P, and R keys simultaneously. The Command key is the one with the cloverleaf or Apple on it.

According to Apple, OS X does not store network settings in PRAM. If you experience a network issue, resetting PRAM will not help.

If PRAM is reset, you may need to verify your time zone, startup volume, and volume settings using System Preferences. Certain firmware updates may reset PRAM as a normal part of their installation process."

Note that zapping PRAM is different than resetting the Power Management Unit (PMU,) which you might have to do on certain Apple laptops.

Apple says "A PMU reset should not be necessary except as a last resort in cases where a hardware failure of the power management system is suspected. Performing a PMU reset returns the iBook and PowerBook hardware, including NVRAM, to default settings and forces the computer to shut down."

Friday, July 13, 2007

Useful Microsoft outlook tips for real time users

Microsoft Outlook TIPS AND TRICKS

Collection of tips for getting around in Outlook focuses on using multiple Outlook windows and controlling how Outlook starts up.

Opening a New Window on Outlook

If one Information Viewer is nice, would two be twice as nice? Possibly, where you’re dragging many items from one folder to another or want to see two different views of the same information. Or maybe you want to leave your Inbox right where you stopped reading messages, but take a quick look at another folder.

To open a folder in a new window, right-click on the folder name in the Folder List, in the Folder Banner above the Information Viewer, or on the Outlook Bar, then choose Open in New Window.


Opening Outlook to a Particular Folder

It’s possible to launch Outlook so that it always opens to a particular Outlook or system folder. Choose Tools, Options, then select from the “Startup in this folder” list on the General tab.

Another method is to start Outlook from a shortcut with a special command. Create a shortcut to the Outlook.exe program. (A quick way to do this is to right-click the Outlook icon on the desktop, then choose Create Shortcut.) In the Properties dialog box for the new shortcut, type a space after the command in the Target box, then add the path to the folder you want to open, enclosed in quotation marks. If you run one of these shortcuts when Outlook is already started, the folder opens in its own window, without the Outlook Bar or Folder List.

To specify an Outlook folder path, use “Outlook:” followed by the folder name. For example,

 
  "C:\Program Files\Microsoft Office\Office\Outlook.exe"
  "Outlook:Calendar"
 

would open the Calendar folder. Of course, you might need to adjust the path to Outlook.exe to match the way your system is set up. You can use this technique not just for the initial launch of Outlook, but also to create shortcuts to other folders you’d like to use in their own windows.

Another use for this method is to open system folders. For example,

 
 "C:\Program Files\Microsoft Office\Office\Outlook.exe"
 "C:\My Documents"
 

would open the My Documents folder on your C: drive. You won’t be prompted for your Outlook profile.

Starting Outlook with Command Line Switches


There are also several switches for creating new items, starting with a particular profile, or cleaning up the Outlook Bar. You can add any of the switches listed in the following table

TABLE 9.3: OUTLOOK COMMAND LINE SWITCHES

Hide the Outlook Bar

/folder

Always open the Choose Profiles dialog box

/profiles

Start Outlook with a specific profile

/profile “

Create an e-mail message

/c ipm.note

Create a post

/c ipm.post

Create an appointment

/c ipm.appointment

Create a task

/c ipm.task

Create a contact

/c ipm.contact

Create a journal entry

/c ipm.activity

Create a note

/c ipm.stickynote

Create an item with the specified message class

/c

Create a message with the specified file as an attachment (To create an item other than a message, use with a /c switch.)

/a “

Create a message from a file that’s dragged and dropped on the shortcut

/c ipm.note “%1”

Create a message addressed to a particular recipient

/c ipm.note /m “

Clean and regenerate free/busy information (for Microsoft Exchange Server only)

/CleanFreeBusy

Restore missing folders for the default information store

/ResetFolders

Rebuild the Outlook Bar

/ResetOutlookBar

Clean and regenerate reminders

/Cleanreminders

with the “C:\Program Files\Microsoft Office\Office\Outlook.exe” command in a shortcut. Where quotation marks are shown, they must be included in the command. For items in angle brackets, substitute the specific information, such as the specific profile name to be used as the /profile switch.



Activating the Horizontal Scroll Bar

Normally, the Information Viewer does not display a horizontal scroll bar, but instead adjusts the width of all columns to fit into the available space. If you prefer to set specific column widths and scroll the display to see all the information, choose View, Format View. In the Format Table View dialog box

clear the box for “Automatic column sizing.” The horizontal scroll bar then appears in the Information Viewer.

Wednesday, July 11, 2007

What is Bitwise operators and how it works....?

Bitwise (Boolean) logic operators


Because microcontrollers store numbers in binary, it is possible to use a special kind of operator on data. These operators are described as Bitwise logic, because they obtain results based on the logical relationships of individual bits. Bitwise logic is also known as Boolean logic or Boolean math.

There are 7 Bitwise operators:

PICBASIC Operator

Description

~

Bitwise NOT

&

Bitwise AND

|

Bitwise OR

^

Bitwise Exclusive OR (XOR)

&/

Bitwise NOT AND (NAND)

|/

Bitwise NOT OR (NOR)

^/

Bitwise NOT Exclusive OR (XNOR)

The simplest of these is the NOT (~) operator. It returns the logical opposite of the tested bit. This operator is unique in that it only requires 1 bit as input. All the other operators require 2 bits.


Using Bitwise operators on individual bits

NOT (~)

When describing the function of Bitwise operations, we use a diagram call a "truth table". It shows the input bit (or bits) on the left, and the result on the right. Since the NOT operator only has one input, the truth table looks like this:

A

~A

0

1

1

0

PICBASIC example:

result = ~ A

AND (&)

AND compares 2 bits and returns logic high only if both input bits are high.

A

B

A & B

0

0

0

0

1

0

1

0

0

1

1

1

PICBASIC example:

result = A & B

OR (|)

OR compares 2 bits and returns a logic high if either or both inputs are high.

A

B

A | B

0

0

0

0

1

1

1

0

1

1

1

1

PICBASIC example:

result = A | B

XOR (^)

XOR compares 2 bits and returns logic high only if a single input is high. If both inputs are high, it returns logic low

A

B

A ^ B

0

0

0

0

1

1

1

0

1

1

1

0

PICBASIC example:

result = A ^ B

NAND (&/)

NAND compares 2 bits and returns logic low if both inputs are high.

A

B

A &/ B

0

0

1

0

1

1

1

0

1

1

1

0

PICBASIC example:

result = A &/ B

NOR (|/)

NOR compares 2 bits and returns logic low if either or both inputs are high.

A

B

A |/ B

0

0

1

0

1

0

1

0

0

1

1

0

PICBASIC example:

result = A |/ B

XNOR (^/)

XNOR compares 2 bits and returns logic low only if a single input is high. If both inputs are high, it returns logic high.

A

B

A ^/ B

0

0

1

0

1

0

1

0

0

1

1

1

PICBASIC example:

result = A ^/ B


Using Bitwise operators on bytes and words

When you use byte or word sized data as inputs for Bitwise operators, the result can be as long as your longest input. The operator will perform a comparison of each bit in both input variables, and store the result in the corresponding bit location of the result variable.

A common example is the AND operator used to mask certain bits in a byte. It works as a mask because it always returns 0 when one of the inputs is 0. Therefore, when we use "bytevar & %00001111", the top 4 bits of the result will always be 0. The lower 4 bits won't change, because ANDing something with logic 1 makes the result equal to the input.

Here's a modified truth table showing 8-bits being ANDed all at once.

bit position

byte A

byte B

A & B

7

1

0

0

6

0

0

0

5

1

0

0

4

1

0

0

3

0

1

0

2

1

1

1

1

1

1

1

0

0

1

0

PICBASIC example:

A = %10110110
B = %00001111
result = A & B

'(00000110)

Here are some example equations using the input values above:

%10110110 | %00001111 = %10111111 'use OR to mask bits with logic 1

%10110110 ^ %00001111 = %10111001 'use XOR to invert selected bits

Let me know your queries to me (Elango C)

Thursday, July 5, 2007

How does the Hard drive is getting booted every time / What is MBR in a Hard drive?

MASTER BOOT RECORD (MBR)

Many people don’t know how the Operating systems are getting loaded or running into the computer. Even though this is too technical subject or something related to System internals; I would like to shed some light on those part for the people who want to know or learn the inner part of the computer ….. Operating systems….. Logical structure of storage drive’s etc….

In this article I am trying to explain or disassemble a Master Boot Record (MBR).

The MBR is the sector at cylinder 0, head 0, sector 1 of a hard disk.

An MBR is created by the FDISK program. In Win9x days the FDISK program of all operating systems must create a functionally similar MBR but now a days lot of Partitioning tools are available to make it out like CompuApps Swissknife, Acronics True Image etc. Also using the Device manager we can create the partition / format etc from the Windows 2000 onwards.

The MBR’s first of what could be many partition sectors, each one containing a four entry partition table.

At the completion of your system's Power On Self Test (POST), INT 19 is called. Usually INT 19 tries to read a boot sector from the first floppy drive. If a boot sector is found on the floppy disk that the boot sector is read into memory at location 0000:7C00 and INT 19 jumps to memory location 0000:7C00.

However, if no boot sector is found on the first floppy drive, INT 19 tries to read the MBR from the first hard drive. If an MBR is found it is read into memory at location 0000:7c00 and INT 19 jumps to memory location 0000:7c00. The small program in the MBR will attempt to locate an active (bootable) partition in its partition table. If such a partition is found, the boot sector of that partition is read into memory at location 0000:7C00 and

the MBR program jumps to memory location 0000:7C00. Each operating system has its own boot sector format. The small program in the boot sector must locate the first part of the operating system's kernel loader program (or perhaps the kernel itself or perhaps a "boot manager program") and read that into memory.

INT 19 is also called when the CTRL-ALT-DEL keys are used. On most systems, CTRL-ALT-DEL causes an short version of the POST to be executed before INT 19 is called.

Where interesting stuff follows………

The MBR program code starts at offset 0000.

The MBR messages start at offset 008b.

The partition table starts at offset 00be.

The signature is at offset 00fe.

Here is a summary of what this thing does:

If an active partition is found, that partition's boot record is read into 0000:7c00 and the MBR code jumps to 0000:7c00 with SI pointing to the partition table entry that describes the partition being booted. The boot record program uses this data to determine the drive being booted from and the location of the partition on the disk.

If no active partition table enty is found, ROM BASIC is entered via INT 18. All other errors cause a system hang, see label HANG.

NOTES (VERY INTERESTING THINGS……):

1. The first byte of an active partition table entry is 80. This byte is loaded into the DL register before INT 13 is called to read the boot sector. When INT 13 is called, DL is the BIOS device number. Because of this, the boot sector read by this MBR program can only be read from BIOS device number 80 (the first hard disk). This is one of the reasons why it is usually not possible to boot from any other hard disk.


2. The MBR program uses the CHS based INT 13H AH=02H call to read the boot sector of the active partition. The location of the active partition's boot sector is in the partition table entry in CHS format. If the drive is >528MB, this CHS must be a translated CHS (or L-CHS, see my BIOS TYPES document). No addresses in LBA form are used (another reason why LBA

doesn't solve the >528MB problem).


Here is the entire MBR record (hex dump and ascii).

OFFSET 0 1 2 3 4 5 6 7 8 9 A B C D E F *0123456789ABCDEF*

000000 fa33c08e d0bc007c 8bf45007 501ffbfc *.3.....|..P.P...*

000010 bf0006b9 0001f2a5 ea1d0600 00bebe07 *................*

000020 b304803c 80740e80 3c00751c 83c610fe *...<.t..<.u.....*

000030 cb75efcd 188b148b 4c028bee 83c610fe *.u......L.......*

000040 cb741a80 3c0074f4 be8b06ac 3c00740b *.t..<.t.....<.t.*

000050 56bb0700 b40ecd10 5eebf0eb febf0500 *V.......^.......*

000060 bb007cb8 010257cd 135f730c 33c0cd13 *..|...W.._s.3...*

000070 4f75edbe a306ebd3 bec206bf fe7d813d *Ou...........}.=*

000080 55aa75c7 8bf5ea00 7c000049 6e76616c *U.u.....|..Inval*

000090 69642070 61727469 74696f6e 20746162 *id partition tab*

0000a0 6c650045 72726f72 206c6f61 64696e67 *le.Error loading*

0000b0 206f7065 72617469 6e672073 79737465 * operating syste*

0000c0 6d004d69 7373696e 67206f70 65726174 *m.Missing operat*

0000d0 696e6720 73797374 656d0000 00000000 *ing system......*

0000e0 00000000 00000000 00000000 00000000 *................*

0000f0 TO 0001af SAME AS ABOVE

0001b0 00000000 00000000 00000000 00008001 *................*

0001c0 0100060d fef83e00 00000678 0d000000 *......>....x....*

0001d0 00000000 00000000 00000000 00000000 *................*

0001e0 00000000 00000000 00000000 00000000 *................*

0001f0 00000000 00000000 00000000 000055aa *..............U.*

Here is the disassembly of the MBR...

This sector is initially loaded into memory at 0000:7c00 but

it immediately relocates itself to 0000:0600.

BEGIN: NOW AT 0000:7C00, RELOCATE

0000:7C00 FA CLI disable int's

0000:7C01 33C0 XOR AX,AX set stack seg to 0000

0000:7C03 8ED0 MOV SS,AX

0000:7C05 BC007C MOV SP,7C00 set stack ptr to 7c00

0000:7C08 8BF4 MOV SI,SP SI now 7c00

0000:7C0A 50 PUSH AX

0000:7C0B 07 POP ES ES now 0000:7c00

0000:7C0C 50 PUSH AX

0000:7C0D 1F POP DS DS now 0000:7c00

0000:7C0E FB STI allow int's

0000:7C0F FC CLD clear direction

0000:7C10 BF0006 MOV DI,0600 DI now 0600

0000:7C13 B90001 MOV CX,0100 move 256 words (512 bytes)

0000:7C16 F2 REPNZ move MBR from 0000:7c00

0000:7C17 A5 MOVSW to 0000:0600

0000:7C18 EA1D060000 JMP 0000:061D jmp to NEW_LOCATION

NEW_LOCATION: NOW AT 0000:0600

0000:061D BEBE07 MOV SI,07BE point to first table entry

0000:0620 B304 MOV BL,04 there are 4 table entries

SEARCH_LOOP1: SEARCH FOR AN ACTIVE ENTRY

0000:0622 803C80 CMP BYTE PTR [SI],80 is this the active entry?

0000:0625 740E JZ FOUND_ACTIVE yes

0000:0627 803C00 CMP BYTE PTR [SI],00 is this an inactive entry?

0000:062A 751C JNZ NOT_ACTIVE no

0000:062C 83C610 ADD SI,+10 incr table ptr by 16

0000:062F FECB DEC BL decr count

0000:0631 75EF JNZ SEARCH_LOOP1 jmp if not end of table

0000:0633 CD18 INT 18 GO TO ROM BASIC

FOUND_ACTIVE: FOUND THE ACTIVE ENTRY

0000:0635 8B14 MOV DX,[SI] set DH/DL for INT 13 call

0000:0637 8B4C02 MOV CX,[SI+02] set CH/CL for INT 13 call

0000:063A 8BEE MOV BP,SI save table ptr

SEARCH_LOOP2: MAKE SURE ONLY ONE ACTIVE ENTRY

0000:063C 83C610 ADD SI,+10 incr table ptr by 16

0000:063F FECB DEC BL decr count

0000:0641 741A JZ READ_BOOT jmp if end of table

0000:0643 803C00 CMP BYTE PTR [SI],00 is this an inactive entry?

0000:0646 74F4 JZ SEARCH_LOOP2 yes

NOT_ACTIVE: MORE THAN ONE ACTIVE ENTRY FOUND

0000:0648 BE8B06 MOV SI,068B display "Invld prttn tbl"

DISPLAY_MSG: DISPLAY MESSAGE LOOP

0000:064B AC LODSB get char of message

0000:064C 3C00 CMP AL,00 end of message

0000:064E 740B JZ HANG yes

0000:0650 56 PUSH SI save SI

0000:0651 BB0700 MOV BX,0007 screen attributes

0000:0654 B40E MOV AH,0E output 1 char of message

0000:0656 CD10 INT 10 to the display

0000:0658 5E POP SI restore SI

0000:0659 EBF0 JMP DISPLAY_MSG do it again

HANG: HANG THE SYSTEM LOOP

0000:065B EBFE JMP HANG sit and stay!

READ_BOOT: READ ACTIVE PARITION BOOT RECORD

0000:065D BF0500 MOV DI,0005 INT 13 retry count

INT13RTRY: INT 13 RETRY LOOP

0000:0660 BB007C MOV BX,7C00

0000:0663 B80102 MOV AX,0201 read 1 sector

0000:0666 57 PUSH DI save DI

0000:0667 CD13 INT 13 read sector into 0000:7c00

0000:0669 5F POP DI restore DI

0000:066A 730C JNB INT13OK jmp if no INT 13

0000:066C 33C0 XOR AX,AX call INT 13 and

0000:066E CD13 INT 13 do disk reset

0000:0670 4F DEC DI decr DI

0000:0671 75ED JNZ INT13RTRY if not zero, try again

0000:0673 BEA306 MOV SI,06A3 display "Errr ldng systm"

0000:0676 EBD3 JMP DISPLAY_MSG jmp to display loop

INT13OK: INT 13 ERROR

0000:0678 BEC206 MOV SI,06C2 "missing op sys"

0000:067B BFFE7D MOV DI,7DFE point to signature

0000:067E 813D55AA CMP WORD PTR [DI],AA55 is signature correct?

0000:0682 75C7 JNZ DISPLAY_MSG no

0000:0684 8BF5 MOV SI,BP set SI

0000:0686 EA007C0000 JMP 0000:7C00 JUMP TO THE BOOT SECTOR WITH SI POINTING TO PART TABLE ENTRY

0000:0680 ........ ........ ......49 6e76616c * Inval*

0000:0690 69642070 61727469 74696f6e 20746162 *id partition tab*

0000:06a0 6c650045 72726f72 206c6f61 64696e67 *le.Error loading*

0000:06b0 206f7065 72617469 6e672073 79737465 * operating syste*

0000:06c0 6d004d69 7373696e 67206f70 65726174 *m.Missing operat*

0000:06d0 696e6720 73797374 656d00.. ........ *ing system. *

Data not used.

0000:06d0 ........ ........ ......00 00000000 * .....*

0000:06e0 00000000 00000000 00000000 00000000 *................*

0000:06f0 00000000 00000000 00000000 00000000 *................*

0000:0700 00000000 00000000 00000000 00000000 *................*

0000:0710 00000000 00000000 00000000 00000000 *................*

0000:0720 00000000 00000000 00000000 00000000 *................*

0000:0730 00000000 00000000 00000000 00000000 *................*

0000:0740 00000000 00000000 00000000 00000000 *................*

0000:0750 00000000 00000000 00000000 00000000 *................*

0000:0760 00000000 00000000 00000000 00000000 *................*

0000:0770 00000000 00000000 00000000 00000000 *................*

0000:0780 00000000 00000000 00000000 00000000 *................*

0000:0790 00000000 00000000 00000000 00000000 *................*

0000:07a0 00000000 00000000 00000000 00000000 *................*

0000:07b0 00000000 00000000 00000000 0000.... *............ *

The partition table starts at 0000:07be. Each partition table

entry is 16 bytes. This table defines a single primary partition

which is also an active (bootable) partition.

0000:07b0 ........ ........ ........ ....8001 * ....*

0000:07c0 0100060d fef83e00 00000678 0d000000 *......>....x....*

0000:07d0 00000000 00000000 00000000 00000000 *................*

0000:07e0 00000000 00000000 00000000 00000000 *................*

0000:07f0 00000000 00000000 00000000 0000.... *............ *

The last two bytes contain a 55AAH signature (Important bytes and if this not available the Hard drive is not a format or valid one.)

0000:07f0 ........ ........ ........ ....55aa *..............U.*