This page was last modified 22:30, 9 September 2021 by Mars2000you. Based on work by Gdx and Rderooy and others.



IPL is a reserved word that has been rarely used. You can find it in

  • the official KnightsCommander BASIC extension
  • the Seismic BASIC where the IPL instruction provokes a graphical earthquake effect on your screen (the effect can be stopped by pressing the spacebar) - note: the effect is not the same on MSX2 and higher, compared to MSX1

It means "Initial Program Loader", but during MSX standard development the functionality was replaced with AUTOEXEC.BAS when the standard format FAT-filesystem was selected.

The execution of this instruction causes just a call to the hook H.IPL (0FE03h). This allows the instruction to be diverted to create a new one.


  • IPL (only in Seismic BASIC)
  • IPL <Instruction>


<Instruction> can be anything. No instruction exists. The user must create an instruction otherwise "Illegal function call" error occurs normally if IPL is executed. However, this problem is bypassed in the Seismic routine.


When calling the Hook, the HL register of the CPU contains the pointer of the Basic interpreter in the buffer of the currently executing instruction. The last value placed in the stack contains the values of the AF registers (F containing the error flags of the interpreter).

It is possible to add parameters behind the instructions but this requires an advanced knowledge of the Basic interpreter. The pointer does not point to a simple ASCII text but a text with many tokens. For example, if you enter "IPL PRINT", the HL register will point to the PRINT instruction code (091h) and not the text "PRINT" (070h 072h 069h 06Eh 074h in ASCII).

Related to



MSX-BASIC 1.0 or higher