I-PAC and J-PAC Interactive Programming and Test Mode

This is applicable to I-PAC2, I-PAC4 and J-PAC shipped after 15th April 2002.

The interactive programming mode gives an easy-to-use method of re-assigning key codes on the board. The new codes are stored permanently, even after power-off. This method needs no special software utility on the PC. It can do everything the GUI programming utility can do except for store config files and download them on-the-fly.
The assignment of keys is easy because it uses your actual control panel to select which button to change, and a keyboard to change the code.
A test mode is also incorporated which displays in text, any pressed or shorted keys. Great for checking wiring and making sure there are no stuck or shorted buttons.

You will need to have a PS/2 keyboard plugged into the pass-through connector to run Interactive Programming and Test Mode. A USB keyboard will not work. If using the I-PAC in USB mode, you will still need to plug a PS/2 keyboard into the pass-through for programming and testing using this method.

Entering test/program mode:

First, run any program which displays keyboard characters. In Windows, the best is Notepad. In DOS, you can enter the following which will supress the command prompt: COPY CON NULL (if you use this, hit ctrl-Z when you have finished, to get back into the command prompt)
Ensure the shift-lock is off.
Then, on the pass-through keyboard, press CTRL-ALT-P. You need to press and hold the keys in that order but don't hold each key for too long otherwise the keyboard auto-repeat will kick in and upset the sequence..
You will get a menu sent to the screen as the I-PAC uses "virtual typing" to simulate keypresses to generate the messages. One thing this method can't do is display fancy graphics! This is strictly text only!
In programming mode if you press a button or joystick direction on your panel, this will tell the I-PAC that you want to assign a new keycode to this button. Then you will get a prompt to press a key on the keyboard which this button should emulate. It's that easy! Then when you have finished programming, press "E" and all your changes will be saved.
For example: Say you want to assign your Player 1 Switch 1 to "A". Just press the Player 1 Switch 1 on the panel, then press "A" on the keyboard. If this is the only one to be changed, then press "E" on the keyboard to save the change and exit.

There are also some menu choices. This is what they do:

T: This enters button test mode. If you press any button, you will see a text display of the input that's being activated and the key-code it's set to, followed by the shifted code if one is assigned. If you see a code displayed before you press a button you have a problem! This is a stuck or shorted input. To exit test mode press CTRL-ALT-P again.

L: This lists all inputs and the keycodes they are currently programmed to. The list is in 3 columns, the first is the input, the second the key-code assigned, and the third is the shifted key-code (if one is assigned) You will also see which input is the shift button.

E: This exits the programming mode and saves all codes. NOTE codes are only saved at this time, when E is pressed. All changes are stored in temporary RAM until "E" is pressed and then they are copied to permanent EEPROM.

A: Abort. Exits programming mode and discards all changes.

R: Resets all programmed codes to default. If you do this, it will mean that the codes will be the same if the MAME/ALT jumper is set to either position. This is a good first step in programming a new board when you want to start with the standard MAME configuration and just change a few keys. NOTE you must press "E" to save and exit after doing this otherwise the change will not be saved.

Shift Key Programming
The I-PAC and J-PAC can have any input assigned as a shift button. Click here for a full description of shift functions.
When the shift button is held down, the other buttons or joystick directions send different "shifted" codes. These shifted codes can be programmed separately from the normal codes. To do this while in programming mode, before pressing a control panel button, press the left-shift key on the keyboard. This will tell the I-PAC that you want to program the shifted code for the button. The display will confirm this.

Blanking inputs.
You may want to assign no code to a button, or no shift code when one is currently assigned. The "print screen" key is used as a "null" key to do this. Let's take an example. Assume you have done a menu "R" and "E" so that the EEPROM contains all standard MAME codes. Then you re-enter the programming mode by pressing CTRL-ALT-P again.
Assume you don't want the shift function "esc" which is part of the default setting for the Start2 input (ie shift-start2 exits games). You remove the escape function by:
Hit left shift on the keyboard to select a shifted code.
Hit Start2 on the control panel as this is the button you want to re-program.
Hit Print Screen to select a "null" code for the shifted code for this button.
Press "E" to save and exit.

Changing the shift button.
If the default MAME codes are used, the shift button is the Start1 button. You may want to change this to another button, but be aware that the shift button should not be one that's used for game-play. You will need to use one of the PC-based programming utilities to do this.

Key codes which cannot be used.
You can't set any I-PAC inputs to any of the following codes:
Print Screen
Num-Pad "/"