Firmware coverage in cpc-dev-tool-chain's CFWI (C-firmware interface)

For background information refer to cpc-dev-tool-chain.

To start hacking and generate an updated table, see README-maintainer.md.

Global Statistics

Total fw calls as per SOFT968 official documentation202
Total fw calls declared at C level136
Overall coverage percentage67%

Statistics per firmware packages

PackageCall countC-covered%
KM282796%
TXT3737100%
GRA322475%
SCR36925%
CAS221881%
SOUND12325%
KL26623%
MC131292%
JUMP11100%

Details per firmware packages

Package KM

CallASM symbol(s)Preserved regs optimisationC prototype(s)
KM INITIALISE
_fw_km_initialise == 0xBB00
iyh, iylvoid fw_km_initialise(void);
KM RESET
_fw_km_reset == 0xBB03
iyh, iylvoid fw_km_reset(void);
KM WAIT CHAR
_fw_km_wait_char (wrapper, 5 bytes)
b, c, d, e, iyh, iylunsigned char fw_km_wait_char(void);
KM READ CHAR
_fw_km_read_char (wrapper, 9 bytes)
b, c, d, e, iyh, iyluint16_t fw_km_read_char(void);
KM CHAR RETURN
_fw_km_char_return (wrapper, 4 bytes)
b, c, d, e, iyh, iylvoid fw_km_char_return(unsigned char c);
KM SET EXPAND
_fw_km_set_expand (wrapper, 20 bytes)
iyh, iylenum fw_byte_all_or_nothing fw_km_set_expand(uint8_t token, uint8_t string_length, unsigned char* string);
KM GET EXPAND
_fw_km_get_expand (wrapper, 16 bytes)
b, c, iyh, iyluint16_t fw_km_get_expand(uint8_t token, uint8_t char_number);
KM EXP BUFFER
_fw_km_exp_buffer (wrapper, 20 bytes)
iyh, iylenum fw_byte_all_or_nothing fw_km_exp_buffer(unsigned char *buffer, uint16_t buffer_bytecount);
KM WAIT KEY
_fw_km_wait_key (wrapper, 5 bytes)
b, c, d, e, iyh, iylunsigned char fw_km_wait_key(void);
KM READ KEY
_fw_km_read_key (wrapper, 10 bytes)
b, c, d, e, iyh, iyluint16_t fw_km_read_key(void);
KM TEST KEY
_fw_km_test_key (wrapper, 10 bytes)
b, c, d, e, iyh, iyluint16_t fw_km_test_key(uint8_t key_number);
KM GET STATE
_fw_km_get_state == 0xBB21
b, c, d, e, iyh, iyluint16_t fw_km_get_state(void);
KM GET JOYSTICK
_fw_km_get_joystick == 0xBB24
b, c, d, e, iyh, iyluint16_t fw_km_get_joystick(void);
KM SET TRANSLATE
_fw_km_set_translate (wrapper, 10 bytes)
b, c, d, e, iyh, iylvoid fw_km_set_translate(uint8_t key_number, uint8_t new_translation);
KM GET TRANSLATE
_fw_km_get_translate (wrapper, 6 bytes)
b, c, d, e, iyh, iyluint8_t fw_km_get_translate(uint8_t key_number);
KM SET SHIFT
_fw_km_set_shift (wrapper, 10 bytes)
b, c, d, e, iyh, iylvoid fw_km_set_shift(uint8_t key_number, uint8_t new_translation);
KM GET SHIFT
_fw_km_get_shift (wrapper, 6 bytes)
b, c, d, e, iyh, iyluint8_t fw_km_get_shift(uint8_t key_number);
KM SET CONTROL
_fw_km_set_control (wrapper, 10 bytes)
b, c, d, e, iyh, iylvoid fw_km_set_control(uint8_t key_number, uint8_t new_translation);
KM GET CONTROL
_fw_km_get_control (wrapper, 6 bytes)
b, c, d, e, iyh, iyluint8_t fw_km_get_control(uint8_t key_number);
KM SET REPEAT
_fw_km_set_repeat (wrapper, 10 bytes)
d, e, iyh, iyluint8_t fw_km_set_repeat(uint8_t key_number, enum fw_byte_all_or_nothing repeat_allowed);
KM GET REPEAT
_fw_km_get_repeat (wrapper, 8 bytes)
b, c, d, e, iyh, iylenum fw_byte_all_or_nothing fw_km_get_repeat(uint8_t key_number);
KM SET DELAY
_fw_km_set_delay (wrapper, 11 bytes)
b, c, d, e, iyh, iylvoid fw_km_set_delay(uint8_t startup_delay, uint8_t repeat_speed);
KM GET DELAY
_fw_km_get_delay == 0xBB42
b, c, d, e, iyh, iyluint16_t fw_km_get_delay(void);
KM ARM BREAKNot yet covered
KM DISARM BREAK
_fw_km_disarm_break == 0xBB48
b, c, d, e, iyh, iylvoid fw_km_disarm_break(void);
KM BREAK EVENT
_fw_km_break_event == 0xBB4B
b, c, d, e, iyh, iylvoid fw_km_break_event(void);
KM SET LOCKS
_fw_km_set_locks == 0xBD3A
b,c,d,e,iyh, iylvoid fw_km_set_locks(uint16_t locks);
KM FLUSH
_fw_km_flush == 0xBD3D
b, c, d, e, iyh, iylvoid fw_km_flush(void);

Package TXT

CallASM symbol(s)Preserved regs optimisationC prototype(s)
TXT INITIALISE
_fw_txt_initialise == 0xBB4E
iyh, iylvoid fw_txt_initialise(void);
TXT RESET
_fw_txt_reset == 0xBB51
iyh, iylvoid fw_txt_reset(void);
TXT VDU ENABLE
_fw_txt_vdu_enable == 0xBB54
b, c, d, e, h, l, iyh, iylvoid fw_txt_vdu_enable(void);
TXT VDU DISABLE
_fw_txt_vdu_disable == 0xBB57
b, c, d, e, h, l, iyh, iylvoid fw_txt_vdu_disable(void);
TXT OUTPUT
_fw_txt_output (wrapper, 4 bytes)
a, b, c, d, e, h, l, iyh, iylvoid fw_txt_output(unsigned char c);
TXT WR CHAR
_fw_txt_wr_char (wrapper, 4 bytes)
iyh, iylvoid fw_txt_wr_char(unsigned char c);
TXT RD CHAR
_fw_txt_rd_char (wrapper, 9 bytes)
b, c, d, e, h, l, iyh, iyluint16_t fw_txt_rd_char(void);
TXT SET GRAPHIC
_fw_txt_set_graphic (wrapper, 4 bytes)
b, c, d, e, h, l, iyh, iylvoid fw_txt_set_graphic(bool enable);
TXT WIN ENABLE
_fw_txt_win_enable (wrapper, 16 bytes)
iyh, iylvoid fw_txt_win_enable(uint8_t left, uint8_t right, uint8_t top, uint8_t bottom);
_fw_txt_win_enable__fastcall == 0xBB66
iyh, iylvoid fw_txt_win_enable__fastcall(uint32_t fw_txt_window_t_asint);
TXT GET WINDOW
_fw_txt_get_window == 0xBB69
iyh, iyluint32_t fw_txt_get_window(void);
TXT CLEAR WINDOW
_fw_txt_clear_window == 0xBB6C
iyh, iylvoid fw_txt_clear_window(void);
TXT SET COLUMN
_fw_txt_set_column (wrapper, 4 bytes)
iyh, iylvoid fw_txt_set_column(int8_t column);
TXT SET ROW
_fw_txt_set_row (wrapper, 4 bytes)
b, c, d, e, iyh, iylvoid fw_txt_set_row(int8_t row);
TXT SET CURSOR
_fw_txt_set_cursor (wrapper, 11 bytes)
b, c, d, e, iyh, iylvoid fw_txt_set_cursor(int8_t row, int8_t column);
_fw_txt_set_cursor__fastcall == 0xBB75
b, c, d, e, iyh, iylvoid fw_txt_set_cursor__fastcall(int16_t colum8h_row8l);
TXT GET CURSOR
_fw_txt_get_cursor (wrapper, 5 bytes)
b, c, iyh, iyluint32_t fw_txt_get_cursor();
TXT CUR ENABLE
_fw_txt_cur_enable == 0xBB7B
b, c, d, e, h, l, iyh, iylvoid fw_txt_cur_enable(void);
TXT CUR DISABLE
_fw_txt_cur_disable == 0xBB7E
b, c, d, e, iyh, iylvoid fw_txt_cur_disable(void);
TXT CUR ON
_fw_txt_cur_on == 0xBB81
a, b, c, d, e, h, l, iyh, iylvoid fw_txt_cur_on(void);
TXT CUR OFF
_fw_txt_cur_off == 0xBB84
a, b, c, d, e, h, l, iyh, iylvoid fw_txt_cur_off(void);
TXT VALIDATE
_fw_txt_validate (wrapper, 9 bytes)
c, iyh, iyluint32_t fw_txt_validate(void);
TXT PLACE CURSOR
_fw_txt_place_cursor == 0xBB8A
b, c, d, e, h, l, iyh, iylvoid fw_txt_place_cursor(void);
TXT REMOVE CURSOR
_fw_txt_remove_cursor == 0xBB8D
b, c, d, e, h, l, iyh, iylvoid fw_txt_remove_cursor(void);
TXT SET PEN
_fw_txt_set_pen (wrapper, 4 bytes)
b, c, d, e, iyh, iylvoid fw_txt_set_pen(uint8_t p);
TXT GET PEN
_fw_txt_get_pen (wrapper, 5 bytes)
b, c, d, e, h, l, iyh, iyluint8_t fw_txt_get_pen(void);
TXT SET PAPER
_fw_txt_set_paper (wrapper, 4 bytes)
b, c, d, e, iyh, iylvoid fw_txt_set_paper(uint8_t p);
TXT GET PAPER
_fw_txt_get_paper (wrapper, 5 bytes)
b, c, d, e, h, l, iyh, iyluint8_t fw_txt_get_paper(void);
TXT INVERSE
_fw_txt_inverse == 0xBB9C
b, c, d, e, iyh, iylvoid fw_txt_inverse(void);
TXT SET BACK
_fw_txt_set_back (wrapper, 4 bytes)
b, c, d, e, iyh, iylvoid fw_txt_set_back(uint8_t is_transparent);
TXT GET BACK
_fw_txt_get_back (wrapper, 5 bytes)
b, c, iyh, iyluint8_t fw_txt_get_back(void);
TXT GET MATRIX
_fw_txt_get_matrix (wrapper, 8 bytes)
b, c, iyh, iyluint32_t fw_txt_get_matrix(uint8_t character_number);
_fw_txt_get_matrix__ignore_rom_indication == 0xBBA5
b, c, d, e, iyh, iylfw_txt_character_matrix_t *fw_txt_get_matrix__ignore_rom_indication(uint8_t character_number);
TXT SET MATRIX
_fw_txt_set_matrix (wrapper, 18 bytes)
iyh, iylenum fw_byte_all_or_nothing fw_txt_set_matrix(uint8_t character, fw_txt_character_matrix_t *matrix);
TXT SET M TABLE
_fw_txt_set_m_table (wrapper, 21 bytes)
iyh, iyluint32_t fw_txt_set_m_table(fw_txt_character_matrix_t *buffer, bool disable, uint8_t lowest_affected_character);
TXT GET M TABLE
_fw_txt_get_m_table (wrapper, 9 bytes)
b, c, iyh, iyluint32_t fw_txt_get_m_table();
TXT GET CONTROLS
_fw_txt_get_controls == 0xBBB1
a, b, c, d, e, iyh, iylfw_txt_control_code_table_t *fw_txt_get_controls();
TXT STR SELECT
_fw_txt_str_select (wrapper, 5 bytes)
b, c, d, e, iyl, iyhuint8_t fw_txt_str_select(uint8_t stream_to_select);
TXT SWAP STREAMS
_fw_txt_swap_streams (wrapper, 10 bytes)
iyh, iylvoid fw_txt_swap_streams(uint8_t stream1, uint8_t stream2);
TXT ASK STATE
_fw_txt_ask_state (wrapper, 5 bytes)
b, c, d, e, h, l, iyh, iylvoid fw_txt_ask_state(void);

Package GRA

CallASM symbol(s)Preserved regs optimisationC prototype(s)
TXT SET GRAPHIC
_fw_txt_set_graphic (wrapper, 4 bytes)
b, c, d, e, h, l, iyh, iylvoid fw_txt_set_graphic(bool enable);
GRA INITIALISE
_fw_gra_initialise == 0xBBBA
iyh, iylvoid fw_gra_initialise(void);
GRA RESET
_fw_gra_reset == 0xBBBD
iyh, iylvoid fw_gra_reset(void);
GRA MOVE ABSOLUTE
_fw_gra_move_absolute (wrapper, 15 bytes)
iyh, iylvoid fw_gra_move_absolute(int16_t x, int16_t y);
_fw_gra_move_absolute__fastcall == 0xBBC0
iyh, iylvoid fw_gra_move_absolute__fastcall(uint32_t fw_gra_x_y_coordinates_t_asint);
GRA MOVE RELATIVE
_fw_gra_move_relative (wrapper, 15 bytes)
iyh, iylvoid fw_gra_move_relative(int16_t x, int16_t y);
_fw_gra_move_relative__fastcall == 0xBBC3
iyh, iylvoid fw_gra_move_relative__fastcall(uint32_t fw_gra_x_y_coordinates_t_asint);
GRA ASK CURSOR
_fw_gra_ask_cursor == 0xBBC6
b, c, iyh, iyluint32_t fw_gra_ask_cursor(void);
GRA SET ORIGIN
_fw_gra_set_origin (wrapper, 15 bytes)
iyh, iylvoid fw_gra_set_origin(int16_t x, int16_t y);
_fw_gra_set_origin__fastcall == 0xBBC9
iyh, iylvoid fw_gra_set_origin__fastcall(uint32_t fw_gra_x_y_coordinates_t_asint);
GRA GET ORIGIN
_fw_gra_get_origin == 0xBBCC
b, c, iyh, iyluint32_t fw_gra_get_origin(void);
GRA WIN WIDTH
_fw_gra_win_width (wrapper, 15 bytes)
iyh, iylvoid fw_gra_win_width(int16_t x1, int16_t x2);
_fw_gra_win_width__fastcall == 0xBBCF
iyh, iylvoid fw_gra_win_width__fastcall(int32_t fw_gra_x_x_coordinates_t_asint);
GRA WIN HEIGHT
_fw_gra_win_height (wrapper, 15 bytes)
iyh, iylvoid fw_gra_win_height(int16_t y1, int16_t y2);
_fw_gra_win_height__fastcall == 0xBBD2
iyh, iylvoid fw_gra_win_height__fastcall(int32_t fw_gra_y_y_coordinates_t_asint);
GRA GET W WIDTH
_fw_gra_get_w_width == 0xBBD5
b, c, iyh, iyluint32_t fw_gra_get_w_width();
GRA GET W HEIGHT
_fw_gra_get_w_height == 0xBBD8
b, c, iyh, iyluint32_t fw_gra_get_w_height();
GRA CLEAR WINDOW
_fw_gra_clear_window == 0xBBDB
iyh, iylvoid fw_gra_clear_window(void);
GRA SET PEN
_fw_gra_set_pen (wrapper, 4 bytes)
b, c, d, e, h, l, iyh, iylvoid fw_gra_set_pen(uint8_t pencolor);
GRA GET PEN
_fw_gra_get_pen (wrapper, 5 bytes)
b, c, d, e, h, iyh, iyluint8_t fw_gra_get_pen(void);
GRA SET PAPER
_fw_gra_set_paper (wrapper, 4 bytes)
b, c, d, e, h, l, iyh, iylvoid fw_gra_set_paper(uint8_t papercolor);
GRA GET PAPER
_fw_gra_get_paper (wrapper, 5 bytes)
b, c, d, e, h, iyh, iyluint8_t fw_gra_get_paper(void);
GRA PLOT ABSOLUTE
_fw_gra_plot_absolute (wrapper, 15 bytes)
iyh, iylvoid fw_gra_plot_absolute(int16_t x, int16_t y);
_fw_gra_plot_absolute__fastcall == 0xBBEA
iyh, iylvoid fw_gra_plot_absolute__fastcall(uint32_t fw_gra_x_y_coordinates_t_asint);
GRA PLOT RELATIVE
_fw_gra_plot_relative (wrapper, 15 bytes)
iyh, iylvoid fw_gra_plot_relative(int16_t x, int16_t y);
_fw_gra_plot_relative__fastcall == 0xBBED
iyh, iylvoid fw_gra_plot_relative__fastcall(uint32_t fw_gra_x_y_coordinates_t_asint);
GRA TEST ABSOLUTE
_fw_gra_test_absolute (wrapper, 17 bytes)
iyh, iylvoid fw_gra_test_absolute(int16_t x, int16_t y);
_fw_gra_test_absolute__fastcall == 0xBBF0
iyh, iylvoid fw_gra_test_absolute__fastcall(uint32_t fw_gra_x_y_coordinates_t_asint);
GRA TEST RELATIVE
_fw_gra_test_relative (wrapper, 17 bytes)
iyh, iylvoid fw_gra_test_relative(int16_t x, int16_t y);
_fw_gra_test_relative__fastcall == 0xBBF3
iyh, iylvoid fw_gra_test_relative__fastcall(uint32_t fw_gra_x_y_coordinates_t_asint);
GRA LINE ABSOLUTE
_fw_gra_line_absolute (wrapper, 15 bytes)
iyh, iylvoid fw_gra_line_absolute(int16_t x, int16_t y);
_fw_gra_line_absolute__fastcall == 0xBBF6
iyh, iylvoid fw_gra_line_absolute__fastcall(uint32_t fw_gra_x_y_coordinates_t_asint);
GRA LINE RELATIVE
_fw_gra_line_relative (wrapper, 15 bytes)
iyh, iylvoid fw_gra_line_relative(int16_t x, int16_t y);
_fw_gra_line_relative__fastcall == 0xBBF9
iyh, iylvoid fw_gra_line_relative__fastcall(uint32_t fw_gra_x_y_coordinates_t_asint);
GRA WR CHAR
_fw_gra_wr_char (wrapper, 4 bytes)
iyh, iylvoid fw_gra_wr_char(char character);
MC BOOT PROGRAM
_fw_mc_boot_program == 0xBD13
void fw_mc_boot_program(void *loader);
MC START PROGRAM
_fw_mc_start_program (wrapper, 13 bytes)
void fw_mc_start_program(uint8_t rom_selection, void *entry);
GRA DEFAULT
_fw_gra_default == 0xBD43
iyh, iylvoid fw_gra_default(void);
GRA SET BACKNot yet covered
GRA SET FIRSTNot yet covered
GRA SET LINE MASKNot yet covered
GRA FROM USERNot yet covered
GRA FILLNot yet covered

Package SCR

CallASM symbol(s)Preserved regs optimisationC prototype(s)
SCR INITIALISE
_fw_scr_initialise == 0xBBFF
iyh, iylvoid fw_scr_initialise(void);
SCR RESET
_fw_scr_reset == 0xBC02
iyh, iylvoid fw_scr_reset(void);
SCR SET OFFSET
_fw_scr_set_offset == 0xBC05
b, c, d, e, iyh, iylvoid fw_scr_set_offset(uint16_t offset);
SCR SET BASE
_fw_scr_set_base (wrapper, 4 bytes)
b, c, d, e, iyh, iylvoid fw_scr_set_base( uint8_t base_msb);
SCR GET LOCATION
_fw_scr_get_location == 0xBC0B
b, c, iyh, iyluint32_t fw_scr_get_location(void);
SCR SET MODE
_fw_scr_set_mode (wrapper, 9 bytes)
iyh, iylvoid fw_scr_set_mode(unsigned char x);
SCR GET MODENot yet covered
SCR CLEAR
_fw_scr_clear == 0xBC14
iyh, iylvoid fw_scr_clear(void);
SCR CHAR LIMITSNot yet covered
SCR CHAR POSITIONNot yet covered
SCR DOT POSITIONNot yet covered
SCR NEXT BYTENot yet covered
SCR PREV BYTENot yet covered
SCR NEXT LINENot yet covered
SCR PREV LINENot yet covered
SCR INK ENCODENot yet covered
SCR INK DECODENot yet covered
SCR SET INK
_fw_scr_set_ink (wrapper, 17 bytes)
iyh, iylvoid fw_scr_set_ink( uint8_t pen, uint8_t color1, uint8_t color2 );
SCR GET INKNot yet covered
SCR SET BORDER
_fw_scr_set_border (wrapper, 11 bytes)
iyh, iylvoid fw_scr_set_border( uint8_t color1, uint8_t color2 );
SCR GET BORDERNot yet covered
SCR SET FLASHINGNot yet covered
SCR GET FLASHINGNot yet covered
SCR FILL BOXNot yet covered
SCR FLOOD BOXNot yet covered
SCR CHAR INVERTNot yet covered
SCR HW ROLLNot yet covered
SCR SW ROLLNot yet covered
SCR UNPACKNot yet covered
SCR REPACKNot yet covered
SCR ACCESSNot yet covered
SCR PIXELSNot yet covered
SCR HORIZONTALNot yet covered
SCR VERTICALNot yet covered
MC SCREEN OFFSET
_fw_mc_screen_offset (wrapper, 13 bytes)
b, d, e, iyh, iylvoid fw_mc_screen_offset(uint8_t screen_base, uint16_t screen_offset);
SCR SET POSITIONNot yet covered

Package CAS

CallASM symbol(s)Preserved regs optimisationC prototype(s)
CAS INITIALISE
_fw_cas_initialise == 0xBC65
iyh, iylvoid fw_cas_initialise(void);
CAS SET SPEED
_fw_cas_set_speed (wrapper, 9 bytes)
b, c, d, e, iyh, iylvoid fw_cas_set_speed(uint16_t length_of_half_zero_bit, uint8_t precompensation);
CAS NOISY
_fw_cas_noisy (wrapper, 4 bytes)
b, c, d, e, h, l, iyh, iylvoid fw_cas_noisy(uint8_t messages_enabled);
CAS START MOTOR
_fw_cas_start_motor (wrapper, 7 bytes)
b, c, d, e, iyh, iyluint16_t fw_cas_start_motor(void);
CAS STOP MOTOR
_fw_cas_stop_motor (wrapper, 7 bytes)
b, c, d, e, iyh, iyluint16_t fw_cas_stop_motor(void);
CAS RESTORE MOTOR
_fw_cas_restore_motor (wrapper, 8 bytes)
b, c, d, e, h, iyh, iyluint8_t fw_cas_restore_motor(uint8_t previous_motor_state);
CAS IN OPEN
_fw_cas_in_open (wrapper, 38 bytes)
iyh, iyluint8_t fw_cas_in_open(fw_cas_in_open_parameters_t *parameters);
CAS IN CLOSE
No implementation: _fw_cas_in_close
iyh, iyluint8_t fw_cas_in_close(void);
CAS IN ABANDON
_fw_cas_in_abandon == 0xBC7D
iyh, iylvoid fw_cas_in_abandon(void);
CAS IN CHAR
No implementation: _fw_cas_in_char
b, c, d, e, iyh, iyluint16_t fw_cas_in_char(void);
CAS IN DIRECT
No implementation: _fw_cas_in_direct
iyh, iyluint32_t fw_cas_in_direct(void *destination_buffer);
CAS RETURN
_fw_cas_return == 0xBC86
a, b, c, d, e, h, l, iyh, iylvoid fw_cas_return(void);
CAS TEST EOF
No implementation: _fw_cas_test_eof
b, c, d, e, iyh, iyluint16_t fw_cas_test_eof(void);
CAS OUT OPEN
_fw_cas_out_open (wrapper, 30 bytes)
iyh, iyluint8_t fw_cas_out_open(fw_cas_out_open_parameters_t *parameters);
CAS OUT CLOSE
No implementation: _fw_cas_out_close
iyh, iyluint16_t fw_cas_out_close(void);
CAS OUT ABANDON
_fw_cas_out_abandon == 0xBC92
iyh, iylvoid fw_cas_out_abandon(void);
CAS OUT CHAR
No implementation: _fw_cas_out_char
iyh, iyluint16_t fw_cas_out_char(unsigned char char_to_write);
CAS OUT DIRECTNot yet covered
CAS CATALOG
_fw_cas_catalog (wrapper, 13 bytes)
iyh, iyluint16_t fw_cas_catalog(void *buffer);
CAS WRITENot yet covered
CAS READNot yet covered
CAS CHECKNot yet covered

Package SOUND

CallASM symbol(s)Preserved regs optimisationC prototype(s)
SOUND RESET
_fw_sound_reset == 0xBCA7
iyh, iylvoid fw_sound_reset(void);
SOUND QUEUENot yet covered
SOUND CHECKNot yet covered
SOUND ARM EVENTNot yet covered
SOUND RELEASENot yet covered
SOUND HOLDNot yet covered
SOUND CONTINUE
_fw_sound_continue == 0xBCB9
iyh, iylvoid fw_sound_continue(void);
SOUND AMPL ENVELOPENot yet covered
SOUND TONE ENVELOPENot yet covered
SOUND A ADDRESSNot yet covered
SOUND T ADDRESSNot yet covered
MC SOUND REGISTER
_fw_mc_sound_register (wrapper, 10 bytes)
d, e, iyh, iylvoid fw_mc_sound_register(uint8_t register_number, uint8_t data);

Package KL

CallASM symbol(s)Preserved regs optimisationC prototype(s)
KL CHOKE OFF
_fw_kl_choke_off__ignore_return_value == 0xBCC8
iyh, iylvoid fw_kl_choke_off__ignore_return_value(void);
iyh, iyluint32_t fw_kl_choke_off__with_return_value(void);
KL ROM WALK
_fw_kl_rom_walk == 0xBCCB
iyh, iyluint32_t fw_kl_rom_walk(uint32_t fw_memory_range_t_asint);
KL INIT BACKNot yet covered
KL LOG EXTNot yet covered
KL FIND COMMANDNot yet covered
KL NEW FRAME FLYNot yet covered
KL ADD FRAME FLYNot yet covered
KL DEL FRAME FLYNot yet covered
KL NEW FAST TICKERNot yet covered
KL ADD FAST TICKERNot yet covered
KL DEL FAST TICKERNot yet covered
KL ADD TICKERNot yet covered
KL DEL TICKERNot yet covered
KL INIT EVENTNot yet covered
KL EVENT
_fw_kl_event_disable == 0xBD04
b, c, d, e, iyh, iylvoid fw_kl_event_disable(void);
_fw_kl_event_enable == 0xBD07
b, c, d, e, iyh, iylvoid fw_kl_event_enable(void);
KL SYNC RESET
_fw_kl_sync_reset == 0xBCF5
b, c, d, e, iyh, iylvoid fw_kl_sync_reset(void);
KL DEL SYNCHRONOUSNot yet covered
KL NEXT SYNCNot yet covered
KL DO SYNCNot yet covered
KL DONE SYNCNot yet covered
KL EVENT DISABLE
_fw_kl_event_disable == 0xBD04
b, c, d, e, iyh, iylvoid fw_kl_event_disable(void);
KL EVENT ENABLE
_fw_kl_event_enable == 0xBD07
b, c, d, e, iyh, iylvoid fw_kl_event_enable(void);
KL DISARM EVENTNot yet covered
KL TIME PLEASE
_fw_kl_time_please == 0xBD0D
a, b, c, iyh, iyluint32_t fw_kl_time_please(void);
KL TIME SETNot yet covered
KL BANK SWITCHNot yet covered

Package MC

CallASM symbol(s)Preserved regs optimisationC prototype(s)
MC BOOT PROGRAM
_fw_mc_boot_program == 0xBD13
void fw_mc_boot_program(void *loader);
MC START PROGRAM
_fw_mc_start_program (wrapper, 13 bytes)
void fw_mc_start_program(uint8_t rom_selection, void *entry);
MC WAIT FLYBACK
_fw_mc_wait_flyback == 0xBD19
a, b, c, d, e, h, l, iyh, iylvoid fw_mc_wait_flyback(void);
MC SET MODE
_fw_mc_set_mode (wrapper, 4 bytes)
b, c, d, e, h, l, iyh, iylvoid fw_mc_set_mode(uint8_t mode);
MC SCREEN OFFSET
_fw_mc_screen_offset (wrapper, 13 bytes)
b, d, e, iyh, iylvoid fw_mc_screen_offset(uint8_t screen_base, uint16_t screen_offset);
MC CLEAR INKS
_fw_mc_clear_inks__1 (wrapper, 4 bytes)
b, c, iyh, iylvoid fw_mc_clear_inks__1(ink_vector1 *ink_vector);
_fw_mc_clear_inks__16 (wrapper, 4 bytes)
b, c, iyh, iylvoid fw_mc_clear_inks__16(ink_vector16 *ink_vector);
_fw_mc_clear_inks__2 (wrapper, 4 bytes)
b, c, iyh, iylvoid fw_mc_clear_inks__2(ink_vector2 *ink_vector);
_fw_mc_clear_inks__4 (wrapper, 4 bytes)
b, c, iyh, iylvoid fw_mc_clear_inks__4(ink_vector4 *ink_vector);
MC SET INKS
_fw_mc_set_inks__16 (wrapper, 4 bytes)
b, c, iyh, iylvoid fw_mc_set_inks__16(ink_vector16 *ink_vector);
_fw_mc_set_inks__2 (wrapper, 4 bytes)
b, c, iyh, iylvoid fw_mc_set_inks__2(ink_vector2 *ink_vector);
_fw_mc_set_inks__4 (wrapper, 4 bytes)
b, c, iyh, iylvoid fw_mc_set_inks__4(ink_vector4 *ink_vector);
MC RESET PRINTER
_fw_mc_reset_printer == 0xBD28
iyh, iylvoid fw_mc_reset_printer(void);
MC PRINT CHAR
_fw_mc_print_char (wrapper, 4 bytes)
b, c, d, e, h, l, iyh, iylvoid fw_mc_print_char(unsigned char char_to_send_7bits);
MC BUSY PRINTER
_fw_mc_busy_printer (wrapper, 8 bytes)
a, b, c, d, e, h, iyh, iyluint8_t fw_mc_busy_printer(void);
MC SEND PRINTER
_fw_mc_send_printer (wrapper, 4 bytes)
b, c, d, e, h, l, iyh, iylvoid fw_mc_send_printer(unsigned char char_to_send_7bits);
MC SOUND REGISTER
_fw_mc_sound_register (wrapper, 10 bytes)
d, e, iyh, iylvoid fw_mc_sound_register(uint8_t register_number, uint8_t data);
MC PRINT TRANSLATIONNot yet covered

Package JUMP

CallASM symbol(s)Preserved regs optimisationC prototype(s)
JUMP RESTORE
_fw_jre_jump_restore == 0xBD37
iyh, iylvoid fw_jre_jump_restore(void);

Conclusion

Happy hacking! Start there: cpc-dev-tool-chain on GitHub.