The self-test on the 83+, 83+SE, 84+, and 84+SE checks the LCD, RAM, ROM, certificate, and other various parts of the calculator for oddities.

To access it, press [ALPHA]+[S] from the MODE screen.
You will see a screen asking if you want to clear all memory (this is not all it does), and to press [ON] to cancel. This isn't entirely true, you can press any key except for [ENTER] to abort.

If you do press [ENTER] here, you will see a screen with "START?" displayed. Again, you can press any key except for [ENTER] to abort. This is the last opportunity to cancel the self-test.

Once the self-test starts, it does the following:
    Disables the link activity hook (this will not be restored).
    Disables APD.
    Calls _GetCalcSerial. If a calc ID is not found in the certificate, "ID FAIL" is displayed and it waits for a keypress.
    83+SE/84+/84+SE ONLY: Tests the third crystal timer by incrementing HL for 62.5ms and then displaying HL. My calculator displays 21694.
    Waits for a keypress. At this point, you can still pull a battery and RAM will not reset, but not after pressing a key.
    84+/84+SE ONLY: Kills peripheral USB. This will disconnect it from a PC or other calculator.

The calculator then displays a counter, starting with 0, representing the number of iterations in this infinite loop:
    Calculates the checksum of the OS. This is done by adding together every byte from pages 0-7 and 18h-1Dh/38h-3Dh/78h-7Dh (depending on model), EXCLUDING 4000h-4200h on page 1Ah/3Ah/7Ah. This sum must be zero, or the OS is invalid or has been modified. If this happens, "ROM FAILED" is displayed, USB is reset, and RAM is reset.
   Performs a check on RAM pages 1 and 0. It stores an incrementing counter to each byte from 8D4Fh to 0FFFFh, and then verifies 8D4Fh to 9C86h.
    83+SE/84+/84+SE ONLY: Performs a check on RAM pages 2-7. It stores an incrementing counter to each byte, and then verifies the first 1C86h bytes.
    Displays a series of LCD patterns, then a single pattern with varying contrast settings (39 of them), waiting for a keypress each time.
Pressing [ON] during this infinite loop will break out of the loop.

The calculator will then test to make sure all keys work correctly. It will go into a loop displaying a BASIC getKey (or _GetCSC) key code for you to press. Press each key (which will be every key, starting from the top-left corner and working across and then down towards [ENTER] (not including [ON], which would break out of the loop)).

Once all of this is done, the calculator will display "OK" and wait for you to press a key.

Then USB will be reset and the calculator will reset RAM.

This information provided by BrandonW and the original file can be found here.