Table 1—Each software module performs certain functions. Each module has the proper functions for its intended behavior. Maintenance is fairly simple.

Module Description Functions
Main.c Main program main (…)
Phonebook.c Contains the functions used to build the application user interface Verify_PhoneBook_PIN (…) Init_PhoneBook (…) Read_PhoneBook (…) Receive_PhoneBook (…) Open_PhoneBook (…) View_PhoneBook (…) Save_PhoneBook_SIM (…) Save_PhoneBook_Flash (…) Send_PhoneBook (…)
SIM.c Contains the functions that handle dialog with the SIM smart card at the application level SIM_Select_File (…) SIM_Verify_PIN (…) SIM_Read_Record (…) SIM_Update_Record (…) Is_Empty_Record (…) Get_Name (…) Get_Phone (…) Erase_Record (…) Put_Name (…) Put_Phone (…) Copy_Name (…) Copy_Phone (…)
ISO7816.c Implements the functions that enable communication with the SIM smart card according to the ISO 7816-3 standard ISO7816_Init (…) ISO7816_ReceiveByte (…) ISO7816_SendByte (…) Send_Header (…) Get_Acknowledge (…) Send_Data (…) Get_Response (…) Get_StatusWord (…) Incoming_APDU (…) Outgoing_APDU (…) Reset_SIM (…) Get_ATR (…)
Conio.c Contains the functions for input/output to the console Get_Key (…) Get_Keyboard_Input (…) Display_Message (…) Display_Name (…) Display_Phone (…)
RS232.c Enables communication to the outside world via the RS-232 port for the M16C/62P RS232_Init (…) RS232_ReceiveByte (…) RS232_SendByte (…) RS232_SendString (…)
ADC.c Enables the ADC to be set up in Repeat mode and start/stop the converter ADC_Init (…) ADC_Start (…) ADC_Value (…) ADC_Stop (…)
SKP_LCD.c Enables the ACM0802C LCD module to be driven to display messages and the phone book information InitDisplay (…) DisplayString (…) LCD_write (…) DisplayDelay (…) DisplayShift (…)
Flash_API.c Contains the high-level functions used to write/erase data to/from the M16C/62P’s flash memory FlashErase (…) FlashWrite (…)
MCU_init.c Executes all microprocessor initializations at start-up mcu_init (…)