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.