struct { unsigned short address; const char * label; } FirmWareVectors[] = { {0x0000, "RESET_ENTRY"}, {0x0008, "LOW_JUMP"}, {0x000B, "KL_LOW_PCHL"}, {0x000E, "PCBC"}, {0x0010, "SIDE_CALL"}, {0x0013, "KL_SIDE_PCHL"}, {0x0016, "PCDE"}, {0x0018, "FAR_CALL"}, {0x001B, "KL_FAR_PCHL"}, {0x001E, "PCHL"}, {0x0020, "RAM_LAM"}, {0x0023, "KL_FAR_CALL"}, {0x0028, "FIRM_JUMP"}, {0x0030, "USER_RESTART"}, {0x0038, "INTERRUPT_ENTRY"}, {0x003B, "EXT_INTERRUPT"}, {0xB900, "KL_U_ROM_ENABLE"}, {0xB903, "KL_U_ROM_DISABLE"}, {0xB906, "KL_L_ROM_ENABLE"}, {0xB909, "KL_L_ROM_DISABLE"}, {0xB90C, "KL_ROM_RESTORE"}, {0xB90F, "KL_ROM_SELECT"}, {0xB912, "KL_CURR_SELECTION"}, {0xB915, "KL_PROBE_ROM"}, {0xB918, "KL_ROM_DESELECT"}, {0xB91B, "KL_LDIR"}, {0xB91E, "KL_LDDR"}, {0xB921, "KL_POLL_SYNCHRONOUS"}, {0xB92A, "KL_SCAN_NEEDED"}, {0xBB00, "KM_INITIALISE"}, {0xBB03, "KM_RESET"}, {0xBB06, "KM_WAIT_CHAR"}, {0xBB09, "KM_READ_CHAR"}, {0xBB0C, "KM_CHAR_RETURN"}, {0xBB0F, "KM_SET_EXPAND"}, {0xBB12, "KM_GET_EXPAND"}, {0xBB15, "KM_EXP_BUFFER"}, {0xBB18, "KM_WAIT_KEY"}, {0xBB1B, "KM_READ_KEY"}, {0xBB1E, "KM_TEST_KEY"}, {0xBB21, "KM_GET_STATE"}, {0xBB24, "KM_GET_JOYSTICK"}, {0xBB27, "KM_SET_TRANSLATE"}, {0xBB2A, "KM_GET_TRANSLATE"}, {0xBB2D, "KM_SET_SHIFT"}, {0xBB30, "KM_GET_SHIFT"}, {0xBB33, "KM_SET_CONTROL"}, {0xBB36, "KM_GET_CONTROL"}, {0xBB39, "KM_SET_REPEAT"}, {0xBB3C, "KM_GET_REPEAT"}, {0xBB3F, "KM_SET_DELAY"}, {0xBB42, "KM_GET_DELAY"}, {0xBB45, "KM_ARM_BREAKS"}, {0xBB48, "KM_DISARM_BREAK"}, {0xBB4B, "KM_BREAK_EVENT"}, {0xBB4E, "TXT_INITIALISE"}, {0xBB51, "TXT_RESET"}, {0xBB54, "TXT_VDU_ENABLE"}, {0xBB57, "TXT_VDU_DISABLE"}, {0xBB5A, "TXT_OUTPUT"}, {0xBB5D, "TXT_WR_CHAR"}, {0xBB60, "TXT_RD_CHAR"}, {0xBB63, "TXT_SET_GRAPHIC"}, {0xBB66, "TXT_WIN_ENABLE"}, {0xBB69, "TXT_GET_WINDOW"}, {0xBB6C, "TXT_CLEAR_WINDOW"}, {0xBB6F, "TXT_SET_COLUMN"}, {0xBB72, "TXT_SET_ROW"}, {0xBB75, "TXT_SET_CURSOR"}, {0xBB78, "TXT_GET_CURSOR"}, {0xBB7B, "TXT_CUR_ENABLE"}, {0xBB7E, "TXT_CUR_DISABLE"}, {0xBB81, "TXT_CUR_ON"}, {0xBB84, "TXT_CUR_OFF"}, {0xBB87, "TXT_VALIDATE"}, {0xBB8A, "TXT_PLACE_CURSOR"}, {0xBB8D, "TXT_REMOVE_CURSOR"}, {0xBB90, "TXT_SET_PEN"}, {0xBB93, "TXT_GET_PEN"}, {0xBB96, "TXT_SET_PAPER"}, {0xBB99, "TXT_GET_PAPER"}, {0xBB9C, "TXT_INVERSE"}, {0xBB9F, "TXT_SET_BACK"}, {0xBBA2, "TXT_GET_BACK"}, {0xBBA5, "TXT_GET_MATRIX"}, {0xBBA8, "TXT_SET_MATRIX"}, {0xBBAB, "TXT_SET_M_TABLE"}, {0xBBAE, "TXT_GET_M_TABLE"}, {0xBBB1, "TXT_GET_CONTROLS"}, {0xBBB4, "TXT_STR_SELECT"}, {0xBBB7, "TXT_SWAP_STREAMS"}, {0xBBBA, "GRA_INITIALISE"}, {0xBBBD, "GRA_RESET"}, {0xBBC0, "GRA_MOVE_ABSOLUTE"}, {0xBBC3, "GRA_MOVE_RELATIVE"}, {0xBBC6, "GRA_ASK_CURSOR"}, {0xBBC9, "GRA_SET_ORIGIN"}, {0xBBCC, "GRA_GET_ORIGIN"}, {0xBBCF, "GRA_WIN_WIDTH"}, {0xBBD2, "GRA_WIN_HEIGHT"}, {0xBBD5, "GRA_GET_W_WIDTH"}, {0xBBD8, "GRA_GET_W_HEIGHT"}, {0xBBDB, "GRA_CLEAR_WINDOW"}, {0xBBDE, "GRA_SET_PEN"}, {0xBBE1, "GRA_GET_PEN"}, {0xBBE4, "GRA_SET_PAPER"}, {0xBBE7, "GRA_GET_PAPER"}, {0xBBEA, "GRA_PLOT_ABSOLUTE"}, {0xBBED, "GRA_PLOT_RELATIVE"}, {0xBBF0, "GRA_TEST_ABSOLUTE"}, {0xBBF3, "GRA_TEST_RELATIVE"}, {0xBBF6, "GRA_LINE_ABSOLUTE"}, {0xBBF9, "GRA_LINE_RELATIVE"}, {0xBBFC, "GRA_WR_CHAR"}, {0xBBFF, "SCR_INITIALISE"}, {0xBC02, "SCR_RESET"}, {0xBC05, "SCR_SET_OFFSET"}, {0xBC08, "SCR_SET_BASE"}, {0xBC0B, "SCR_GET_LOCATION"}, {0xBC0E, "SCR_SET_MODE"}, {0xBC11, "SCR_GET_MODE"}, {0xBC14, "SCR_CLEAR"}, {0xBC17, "SCR_CHAR_LIMITS"}, {0xBC1A, "SCR_CHAR_POSITION"}, {0xBC1D, "SCR_DOT_POSITION"}, {0xBC20, "SCR_NEXT_BYTE"}, {0xBC23, "SCR_PREV_BYTE"}, {0xBC26, "SCR_NEXT_LINE"}, {0xBC29, "SCR_PREV_LINE"}, {0xBC2C, "SCR_INK_ENCODE"}, {0xBC2F, "SCR_INK_DECODE"}, {0xBC32, "SCR_SET_INK"}, {0xBC35, "SCR_GET_INK"}, {0xBC38, "SCR_SET_BORDER"}, {0xBC3B, "SCR_GET_BORDER"}, {0xBC3E, "SCR_SET_FLASHING"}, {0xBC41, "SCR_GET_FLASHING"}, {0xBC44, "SCR_FILL_BOX"}, {0xBC47, "SCR_FLOOD_BOX"}, {0xBC4A, "SCR_CHAR_INVERT"}, {0xBC4D, "SCR_HW_ROLL"}, {0xBC50, "SCR_SW_ROLL"}, {0xBC53, "SCR_UNPACK"}, {0xBC56, "SCR_REPACK"}, {0xBC59, "SCR_ACCESS"}, {0xBC5C, "SCR_PIXELS"}, {0xBC5F, "SCR_HORIZONTAL"}, {0xBC62, "SCR_VERTICAL"}, {0xBC65, "CAS_INITIALISE"}, {0xBC68, "CAS_SET_SPEED"}, {0xBC6B, "CAS_NOISY"}, {0xBC6E, "CAS_START_MOTOR"}, {0xBC71, "CAS_STOP_MOTOR"}, {0xBC74, "CAS_RESTORE_MOTOR"}, {0xBC77, "CAS_IN_OPEN"}, {0xBC7A, "CAS_IN_CLOSE"}, {0xBC7D, "CAS_IN_ABANDON"}, {0xBC80, "CAS_IN_CHAR"}, {0xBC83, "CAS_IN_DIRECT"}, {0xBC86, "CAS_RETURN"}, {0xBC89, "CAS_TEST_EOF"}, {0xBC8C, "CAS_OUT_OPEN"}, {0xBC8F, "CAS_OUT_CLOSE"}, {0xBC92, "CAS_OUT_ABANDON"}, {0xBC95, "CAS_OUT_CHAR"}, {0xBC98, "CAS_OUT_DIRECT"}, {0xBC9B, "CAS_CATALOG"}, {0xBC9E, "CAS_WRITE"}, {0xBCA1, "CAS_READ"}, {0xBCA4, "CAS_CHECK"}, {0xBCA7, "SOUND_RESET"}, {0xBCAA, "SOUND_QUEUE"}, {0xBCAD, "SOUND_CHECK"}, {0xBCB0, "SOUND_ARM_EVENT"}, {0xBCB3, "SOUND_RELEASE"}, {0xBCB6, "SOUND_HOLD"}, {0xBCB9, "SOUND_CONTINUE"}, {0xBCBC, "SOUND_AMPL_ENVELOPE"}, {0xBCBF, "SOUND_TONE_ENVELOPE"}, {0xBCC2, "SOUND_A_ADDRESS"}, {0xBCC5, "SOUND_T_ADDRESS"}, {0xBCC8, "KL_CHOKE_OFF"}, {0xBCCB, "KL_ROM_WALK"}, {0xBCCE, "KL_INIT_BACK"}, {0xBCD1, "KL_LOG_EXT"}, {0xBCD4, "KL_FIND_COMMAND"}, {0xBCD7, "KL_NEW_FRAME_FLY"}, {0xBCDA, "KL_ADD_FRAME_FLY"}, {0xBCDD, "KL_DEL_FRAME_FLY"}, {0xBCE0, "KL_NEW_FAST_TICKER"}, {0xBCE3, "KL_ADD_FAST_TICKER"}, {0xBCE6, "KL_DEL_FAST_TICKER"}, {0xBCE9, "KL_ADD_TICKER"}, {0xBCEC, "KL_DEL_TICKER"}, {0xBCEF, "KL_INIT_EVENT"}, {0xBCF2, "KL_EVENT"}, {0xBCF5, "KL_SYNC_RESET"}, {0xBCF8, "KL_DEL_SYNCHRONOUS"}, {0xBCFB, "KL_NEXT_SYNCH"}, {0xBCFE, "KL_DO_SYNCH"}, {0xBD01, "KL_DONE_SYNCH"}, {0xBD04, "KL_EVENT_DISABLE"}, {0xBD07, "KL_EVENT_ENABLE"}, {0xBD0A, "KL_DISARM_EVENT"}, {0xBD0D, "KL_TIME_PLEASE"}, {0xBD10, "KL_TIME_SET"}, {0xBD13, "MC_BOOT_PROGRAM"}, {0xBD16, "MC_START_PROGRAM"}, {0xBD19, "MC_WAIT_FLYBACK"}, {0xBD1C, "MC_SET_MODE"}, {0xBD1F, "MC_SCREEN_OFFSET"}, {0xBD22, "MC_CLEAR_INKS"}, {0xBD25, "MC_SET_INKS"}, {0xBD28, "MC_RESET_PRINTER"}, {0xBD2B, "MC_PRINT_CHAR"}, {0xBD2E, "MC_PRINTER_BUSY"}, {0xBD31, "MC_SEND_PRINTER"}, {0xBD34, "MC_SOUND_REGISTER"}, {0xBD37, "JUMP_RESTORE"}, {0xBD3A, "KM_SET_LOCKS"}, {0xBD40, "TXT_ASK_STATE"}, {0xBD43, "GRA_DEFAULT"}, {0xBD46, "GRA_SET_BACK"}, {0xBD49, "GRA_SET_FIRST"}, {0xBD4C, "GRA_SET_LINE_MASK"}, {0xBD4F, "GRA_FROM_USER"}, {0xBD52, "GRA_FILL"}, {0xBD55, "SCR_SET_POSITION"}, {0xBD58, "MC_PRINT_TRANSLATION"}, {0xBD5B, "KL_BANK_SWITCH"}, {0xBDCD, "IND_TXT_DRAW_CURSOR"}, {0xBDD0, "IND_TXT_UNDRAW_CURSOR"}, {0xBDD3, "IND_TXT_WRITE_CHAR"}, {0xBDD6, "IND_TXT_UNWRITE"}, {0xBDD9, "IND_TXT_OUT_ACTION"}, {0xBDDC, "IND_GRA_PLOT"}, {0xBDDF, "IND_GRA_TEST"}, {0xBDE2, "IND_GRA_LINE"}, {0xBDE5, "IND_SCR_READ"}, {0xBDE8, "IND_SCR_WRITE"}, {0xBDEB, "IND_SCR_MODE_CLEAR"}, {0xBDEE, "IND_KM_TEST_BREAK"}, {0xBDF1, "IND_MC_WAIT_PRINTER"}, {0xBDF4, "IND_KM_SCAN_KEYS"}, {0xBD61, "MOVE_REAL"}, {0xBD64, "INTEGER_TO_REAL"}, {0xBD67, "BINARY_TO_REAL"}, {0xBD6A, "REAL_TO_INTEGER"}, {0xBD6D, "REAL_TO_BINARY"}, {0xBD70, "REAL_FIX"}, {0xBD73, "REAL_INT"}, {0xBD76, "INTERNAL_SUBROUTINE"}, {0xBD79, "REAL_x10POWA"}, {0xBD7C, "REAL_ADDITION"}, {0xBD82, "REAL_REVERSE_SUBTRACTION"}, {0xBD85, "REAL_MULTIPLICATION"}, {0xBD88, "REAL_DIVISION"}, {0xBD8E, "REAL_COMPARISON"}, {0xBD91, "REAL_UNARY_MINUS"}, {0xBD94, "REAL_SIGNUM_SGN"}, {0xBD97, "SET_ANGLE_MODE"}, {0xBD9A, "REAL_PI"}, {0xBD9D, "REAL_SQR"}, {0xBDA0, "REAL_POWER"}, {0xBDA3, "REAL_LOG"}, {0xBDA6, "REAL_LOG_10"}, {0xBDA9, "REAL_EXP"}, {0xBDAC, "REAL_SINE"}, {0xBDAF, "REAL_COSINE"}, {0xBDB2, "REAL_TANGENT"}, {0xBDB5, "REAL_ARCTANGENT"}, {0xBD5B, "REAL_SUBTRACTION"}, {0xBD67, "REAL_EXPONENT_ADDITION"}, {0xBDAC, "INTEGER_ADDITION"}, {0xBDAF, "INTEGER_SUBTRACTION"}, {0xBDB2, "INTEGER_REVERSE_SUBTRACTION"}, {0xBDB5, "INTEGER_MULTIPLICATION"}, {0xBDB8, "INTEGER_DIVISION"}, {0xBDBB, "INTEGER_DIVISION_2"}, {0xBDC4, "INTEGER_COMPARISON"}, {0xBDC7, "INTEGER_UNARY_MINUS"}, {0xBDCA, "INTEGER_SIGNUM_SGN"}, {0xBD5E, "TEXT_INPUT"}, {0xBD7F, "REAL_RND"}, {0xBD8B, "REAL_RND0"}, {0xC033, "BIOS_SET_MESSAGE"}, {0xC036, "BIOS_SETUP_DISC"}, {0xC039, "BIOS_SELECT_FORMAT"}, {0xC03C, "BIOS_READ_SECTOR"}, {0xC03F, "BIOS_WRITE_SECTOR"}, {0xC042, "BIOS_FORMAT_TRACK"}, {0xC045, "BIOS_MOVE_TRACK"}, {0xC048, "BIOS_GET_STATUS"}, {0xC04B, "BIOS_SET_RETRY_COUNT"}, {0xC56C, "GET_SECTOR_DATA"}, {0xBE53, "AMSDOS_DRIVE_HSUS"}, {0xBE54, "AMSDOS_DRIVE_TRACK"}, {0xBE5E, "AMSDOS_FLAG_RW_SECTOR"}, {0xBE5F, "AMSDOS_FLAG_MOTOR"}, {0xBE7D, "AMSDOS_RESERVED_AREA"}, {0xBE7D, "AMSDOS_MEMORY_POOL"}, {0xBE7F, "AMSDOS_HOOK"}, {0, 0} };