diff --git a/src/menus.h b/src/menus.h index a271e5465..2177126dc 100644 --- a/src/menus.h +++ b/src/menus.h @@ -90,7 +90,7 @@ void menuGeneralSetup(uint8_t event); void menuGeneralCalib(uint8_t event); void menuModelSelect(uint8_t event); -void menuModelFunctionSwitches(uint8_t event); +void menuModelCustomFunctions(uint8_t event); void menuStatisticsView(uint8_t event); void menuStatisticsDebug(uint8_t event); diff --git a/src/model_menus.cpp b/src/model_menus.cpp index 7e48ed6a9..d17328f68 100644 --- a/src/model_menus.cpp +++ b/src/model_menus.cpp @@ -47,7 +47,7 @@ enum EnumTabModel { e_Limits, IF_CURVES(e_CurvesAll) e_CustomSwitches, - e_FunctionSwitches, + e_CustomFunctions, IF_FRSKY(e_Telemetry) IF_TEMPLATES(e_Templates) }; @@ -65,7 +65,7 @@ void menuModelMixAll(uint8_t event); void menuModelLimits(uint8_t event); void menuModelCurvesAll(uint8_t event); void menuModelCustomSwitches(uint8_t event); -void menuModelFunctionSwitches(uint8_t event); +void menuModelCustomFunctions(uint8_t event); #ifdef FRSKY void menuModelTelemetry(uint8_t event); #endif @@ -84,7 +84,7 @@ const MenuFuncP_PROGMEM menuTabModel[] PROGMEM = { menuModelLimits, IF_CURVES(menuModelCurvesAll) menuModelCustomSwitches, - menuModelFunctionSwitches, + menuModelCustomFunctions, IF_FRSKY(menuModelTelemetry) IF_TEMPLATES(menuModelTemplates) }; @@ -2649,7 +2649,9 @@ void menuModelCustomSwitches(uint8_t event) } #endif -void menuModelFunctionSwitches(uint8_t event) +#define MODEL_CUSTOM_FUNC_3RD_COLUMN (15*FW+2) + +void menuModelCustomFunctions(uint8_t event) { #if defined(PCBSKY9X) && defined(SDCARD) uint8_t _event = event; @@ -2658,7 +2660,7 @@ void menuModelFunctionSwitches(uint8_t event) } #endif - MENU(STR_MENUFUNCSWITCHES, menuTabModel, e_FunctionSwitches, NUM_FSW+1, {0, 3/*repeated*/}); + MENU(STR_MENUCUSTOMFUNC, menuTabModel, e_CustomFunctions, NUM_FSW+1, {0, 3/*repeated*/}); uint8_t y = 0; uint8_t k = 0; @@ -2731,7 +2733,7 @@ void menuModelFunctionSwitches(uint8_t event) if (sd->func == FUNC_PLAY_SOUND) { #if defined(AUDIO) val_max = AU_FRSKY_LAST-AU_FRSKY_FIRST-1; - lcd_putsiAtt(15*FW, y, STR_FUNCSOUNDS, val_displayed, attr); + lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_FUNCSOUNDS, val_displayed, attr); #else break; #endif @@ -2739,15 +2741,15 @@ void menuModelFunctionSwitches(uint8_t event) #if defined(HAPTIC) else if (sd->func == FUNC_HAPTIC) { val_max = 3; - lcd_outdezAtt(21*FW, y, val_displayed, attr); + lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|LEFT); } #endif #if defined(PCBSKY9X) && defined(SDCARD) else if (sd->func == FUNC_PLAY_TRACK || sd->func == FUNC_BACKGND_MUSIC) { if (sd->param[0] && sd->param[1]) - lcd_putsnAtt(15*FW, y, sd->param, sizeof(sd->param), attr); + lcd_putsnAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, sd->param, sizeof(sd->param), attr); else - lcd_putsiAtt(15*FW, y, STR_VCSWFUNC, 0, attr); + lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_VCSWFUNC, 0, attr); if (active && event==EVT_KEY_BREAK(KEY_MENU)) { s_editMode = 0; if (!listSdFiles(SOUNDS_PATH, SOUNDS_EXT, 6, sd->param)) { @@ -2759,42 +2761,42 @@ void menuModelFunctionSwitches(uint8_t event) } else if (sd->func == FUNC_PLAY_VALUE) { val_max = NUM_XCHNPLAY-1; - putsChnRaw(17*FW, y, val_displayed+1, attr); + putsChnRaw(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+1, attr); } #endif #if defined(PCBSKY9X) else if (sd->func == FUNC_VOLUME) { val_max = NUM_XCHNRAW-1; - putsChnRaw(17*FW, y, val_displayed+1, attr); + putsChnRaw(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+1, attr); } #elif defined(VOICE) else if (sd->func == FUNC_PLAY_TRACK) { - lcd_outdezAtt(21*FW, y, val_displayed+PROMPT_CUSTOM_BASE, attr); + lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+PROMPT_CUSTOM_BASE, attr|LEFT); } else if (sd->func == FUNC_PLAY_VALUE) { val_max = NUM_XCHNPLAY-1; - putsChnRaw(17*FW, y, val_displayed+1, attr); + putsChnRaw(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+1, attr); } #endif #if defined(SDCARD) else if (sd->func == FUNC_LOGS) { if (val_displayed) { - lcd_outdezAtt(21*FW-3, y, val_displayed, attr|PREC1); + lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|PREC1|LEFT); lcd_putc(lcdLastPos, y, 's'); } else { - lcd_putsiAtt(19*FW-4, y, STR_MMMINV, 0, attr); + lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_MMMINV, 0, attr); } } #endif else if (sd->func == FUNC_RESET) { val_max = 3; - lcd_putsiAtt(15*FW, y, STR_VFSWRESET, FSW_PARAM(sd), attr); + lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_VFSWRESET, FSW_PARAM(sd), attr); } else if (sd->func <= FUNC_SAFETY_CH16) { val_displayed = (int8_t)FSW_PARAM(sd); val_min = -125; val_max = 125; - lcd_outdezAtt(18*FW, y, val_displayed, attr); + lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|LEFT); } #if defined(GVARS) else if (sd->func >= FUNC_ADJUST_GV1 @@ -2803,7 +2805,7 @@ void menuModelFunctionSwitches(uint8_t event) #endif ) { val_max = NUM_XCHNRAW-1; - putsChnRaw(17*FW, y, val_displayed+1, attr); + putsChnRaw(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+1, attr); } #endif else { diff --git a/src/open9x.cpp b/src/open9x.cpp index 306ad0edd..900d88816 100644 --- a/src/open9x.cpp +++ b/src/open9x.cpp @@ -1876,25 +1876,16 @@ PLAY_FUNCTION(playValue, uint8_t idx) // A1 and A2 { uint8_t att = 0; - int16_t converted_value = applyChannelRatio(idx, val); - if (g_model.frsky.channels[idx].type >= UNIT_RAW) { - converted_value /= 10; - } - else { - if (converted_value < 1000) { - att |= PREC2; - } - else { - converted_value /= 10; - att |= PREC1; - } + int16_t converted_value = applyChannelRatio(idx, val) / 10; + if (g_model.frsky.channels[idx].type < UNIT_RAW) { + att = PREC1; } PLAY_NUMBER(converted_value, 1+g_model.frsky.channels[idx].type, att); break; } case NUM_XCHNRAW+TELEM_CELL-1: - PLAY_NUMBER(val, 1+UNIT_VOLTS, PREC2); + PLAY_NUMBER(val/10, 1+UNIT_VOLTS, PREC1); break; case NUM_XCHNRAW+TELEM_VFAS-1: @@ -1910,11 +1901,11 @@ PLAY_FUNCTION(playValue, uint8_t idx) case NUM_XCHNRAW+TELEM_ACCx-1: case NUM_XCHNRAW+TELEM_ACCy-1: case NUM_XCHNRAW+TELEM_ACCz-1: - PLAY_NUMBER(val, 1+UNIT_G, PREC2); + PLAY_NUMBER(val/10, 1+UNIT_G, PREC1); break; case NUM_XCHNRAW+TELEM_VSPD-1: - PLAY_NUMBER(val, 1+UNIT_METERS_PER_SECOND, PREC2); + PLAY_NUMBER(val/10, 1+UNIT_METERS_PER_SECOND, PREC1); break; case NUM_XCHNRAW+TELEM_CONSUMPTION-1: diff --git a/src/translations.cpp b/src/translations.cpp index 65a118069..b3bb14d99 100644 --- a/src/translations.cpp +++ b/src/translations.cpp @@ -261,7 +261,7 @@ const pm_char STR_MENUCURVES[] PROGMEM = TR_MENUCURVES; const pm_char STR_MENUCURVE[] PROGMEM = TR_MENUCURVE; const pm_char STR_MENUCUSTOMSWITCH[] PROGMEM = TR_MENUCUSTOMSWITCH; const pm_char STR_MENUCUSTOMSWITCHES[] PROGMEM = TR_MENUCUSTOMSWITCHES; -const pm_char STR_MENUFUNCSWITCHES[] PROGMEM = TR_MENUFUNCSWITCHES; +const pm_char STR_MENUCUSTOMFUNC[] PROGMEM = TR_MENUCUSTOMFUNC; #if defined(FRSKY) const pm_char STR_MENUTELEMETRY[] PROGMEM = TR_MENUTELEMETRY; diff --git a/src/translations.h b/src/translations.h index d57f6c28c..a831e937c 100644 --- a/src/translations.h +++ b/src/translations.h @@ -357,7 +357,7 @@ extern const pm_char STR_MENUCURVES[]; extern const pm_char STR_MENUCURVE[]; extern const pm_char STR_MENUCUSTOMSWITCH[]; extern const pm_char STR_MENUCUSTOMSWITCHES[]; -extern const pm_char STR_MENUFUNCSWITCHES[]; +extern const pm_char STR_MENUCUSTOMFUNC[]; extern const pm_char STR_MENUTELEMETRY[]; extern const pm_char STR_MENUTEMPLATES[]; extern const pm_char STR_MENUSTAT[]; diff --git a/src/translations/cz.h b/src/translations/cz.h index 816aa7915..d0b5936d4 100644 --- a/src/translations/cz.h +++ b/src/translations/cz.h @@ -381,7 +381,7 @@ #define TR_MENUCURVE "\003CV" #define TR_MENUCUSTOMSWITCH "VLASTN\214 SP\214NA\201" #define TR_MENUCUSTOMSWITCHES "VLASTN\214 SP\214NA\201E" -#define TR_MENUFUNCSWITCHES "FUNK\201.SP\214NA\201E" +#define TR_MENUCUSTOMFUNC "FUNK\201.SP\214NA\201E" #define TR_MENUTELEMETRY "TELEMETRIE" #define TR_MENUTEMPLATES "\207ABLONY" #define TR_MENUSTAT "STATISTIKA" diff --git a/src/translations/de.h b/src/translations/de.h index cf03983f7..a55f11c46 100644 --- a/src/translations/de.h +++ b/src/translations/de.h @@ -382,7 +382,7 @@ #define TR_MENUCURVE "KURVE" #define TR_MENUCUSTOMSWITCH "CUSTOM SWITCH" #define TR_MENUCUSTOMSWITCHES "CUSTOM SWITCHES" -#define TR_MENUFUNCSWITCHES "FUNC SWITCHES" +#define TR_MENUCUSTOMFUNC "FUNC SWITCHES" #define TR_MENUTELEMETRY "TELEMETRY" #define TR_MENUTEMPLATES "TEMPLATES" #define TR_MENUSTAT "STATS" diff --git a/src/translations/en.h b/src/translations/en.h index 46cba8dc6..47236d8cc 100644 --- a/src/translations/en.h +++ b/src/translations/en.h @@ -87,9 +87,9 @@ #define LEN_VFSWFUNC "\015" #if defined(VARIO) -#define TR_VVARIO "Vario " +#define TR_VVARIO "Vario\0 " #else -#define TR_VVARIO "[Vario] " +#define TR_VVARIO "[Vario]\0 " #endif #if defined(AUDIO) #define TR_SOUND "Play Sound\0 " @@ -110,17 +110,17 @@ #endif #if defined(PCBSKY9X) #if defined(SDCARD) -#define TR_SDCLOGS "SDCARD Logs\0 " +#define TR_SDCLOGS "SD Logs\0 " #else -#define TR_SDCLOGS "[SDCARD Logs]" +#define TR_SDCLOGS "[SD Logs]\0 " #endif #define TR_FSW_VOLUME "Volume\0 " #define TR_FSW_BG_MUSIC "BgMusic\0 ""BgMusic Pause" #elif defined(PCBGRUVIN9X) #if defined(SDCARD) -#define TR_SDCLOGS "SDCARD Logs " +#define TR_SDCLOGS "SD Logs\0 " #else -#define TR_SDCLOGS "[SDCARD Logs]" +#define TR_SDCLOGS "[SD Logs]\0 " #endif #define TR_FSW_VOLUME #define TR_FSW_BG_MUSIC @@ -135,12 +135,12 @@ #define TR_FSW_ADJUST_GVAR #endif #ifdef DEBUG -#define TR_FSW_TEST "Test\0" +#define TR_FSW_TEST "Test\0" #else #define TR_FSW_TEST #endif -#define TR_VFSWFUNC "Safety\0 ""Trainer \0 ""Instant Trim " TR_SOUND TR_HAPTIC "Reset\0 " TR_VVARIO TR_PLAY_TRACK TR_PLAY_VALUE TR_SDCLOGS TR_FSW_VOLUME "Backlight\0 " TR_FSW_BG_MUSIC TR_FSW_ADJUST_GVAR TR_FSW_TEST +#define TR_VFSWFUNC "Safety\0 ""Trainer \0 ""Instant Trim\0" TR_SOUND TR_HAPTIC "Reset\0 " TR_VVARIO TR_PLAY_TRACK TR_PLAY_VALUE TR_SDCLOGS TR_FSW_VOLUME "Backlight\0 " TR_FSW_BG_MUSIC TR_FSW_ADJUST_GVAR TR_FSW_TEST #define LEN_VFSWRESET "\006" #define TR_VFSWRESET "Timer1""Timer2""All ""Telem." @@ -220,7 +220,7 @@ #else #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" #endif -#define TR_VSRCRAW "Rud ""Ele ""Thr ""Ail ""P1 ""P2 ""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3POS" TR_CYC_VSRCRAW +#define TR_VSRCRAW "Rud\0""Ele\0""Thr\0""Ail\0""P1\0 ""P2\0 ""P3\0 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3POS" TR_CYC_VSRCRAW #define LEN_VTMRMODES "\003" #define TR_VTMRMODES "OFF""ABS""THs""TH%""THt" @@ -387,7 +387,7 @@ #define TR_MENUCURVE "CURVE" #define TR_MENUCUSTOMSWITCH "CUSTOM SWITCH" #define TR_MENUCUSTOMSWITCHES "CUSTOM SWITCHES" -#define TR_MENUFUNCSWITCHES "FUNC SWITCHES" +#define TR_MENUCUSTOMFUNC "CUSTOM FUNCTIONS" #define TR_MENUTELEMETRY "TELEMETRY" #define TR_MENUTEMPLATES "TEMPLATES" #define TR_MENUSTAT "STATS" diff --git a/src/translations/es.h b/src/translations/es.h index 36b65943e..551f03d4a 100644 --- a/src/translations/es.h +++ b/src/translations/es.h @@ -289,25 +289,22 @@ #define TR_USRDATA "UsrData" #define TR_BLADES INDENT"Palas" #define TR_SCREEN "Screen " -#ifdef AUDIO -#define TR_BEEPERMODE "Modo Altavoz" -#define TR_BEEPERLEN "Talla Altavoz" +#define TR_SOUND_LABEL "Sound" +#define TR_LENGTH INDENT"Length" #define TR_SPKRPITCH "Speaker Pitch" -#else -#define TR_BEEPERMODE "Modo Pitido" -#define TR_BEEPERLEN "Talla Pitido" -#endif -#define TR_HAPTICMODE "Haptic Modo" -#define TR_HAPTICSTRENGTH "Haptic Strength" -#define TR_HAPTICLENGTH "Haptic Length" +#define TR_HAPTIC_LABEL "Haptic" +#define TR_HAPTICSTRENGTH INDENT"Strength" #define TR_CONTRAST "Contraste" +#define TR_ALARMS_LABEL "Alarms" #define TR_BATTERYWARNING "Aviso Bateria" #define TR_INACTIVITYALARM "Alarma Reposo" #define TR_RENAVIG "Navig RotEnc" #define TR_FILTERADC "Filtro ADC" #define TR_THROTTLEREVERSE "Inversion Acel." +#define TR_BEEP_LABEL "Timer events" #define TR_MINUTEBEEP "Pitido/minuto" #define TR_BEEPCOUNTDOWN "Pitido ctaatras" +#define TR_BACKLIGHT_LABEL "Backlight" #define TR_FLASHONBEEP "Flash al pitido" #define TR_BLMODE "Modo P.Luminoso" #define TR_BLDELAY "Tiempo de Luz" @@ -384,7 +381,7 @@ #define TR_MENUCURVE "CURVA" #define TR_MENUCUSTOMSWITCH "AJUSTES PROPIOS" #define TR_MENUCUSTOMSWITCHES "AJUSTE PROPIO" -#define TR_MENUFUNCSWITCHES "AJUSTAR FUNCIONES" +#define TR_MENUCUSTOMFUNC "AJUSTAR FUNCIONES" #define TR_MENUTELEMETRY "TELEMETRIA" #define TR_MENUTEMPLATES "PLANTILLAS" #define TR_MENUSTAT "REGISTRO" diff --git a/src/translations/fr.h b/src/translations/fr.h index df04f9cc8..9cddeb198 100644 --- a/src/translations/fr.h +++ b/src/translations/fr.h @@ -387,7 +387,7 @@ #define TR_MENUCURVE "COURBE" #define TR_MENUCUSTOMSWITCH "INTER PERS" #define TR_MENUCUSTOMSWITCHES "INTERS PERS" -#define TR_MENUFUNCSWITCHES "INTERS FONCTION" +#define TR_MENUCUSTOMFUNC "INTERS FONCTION" #define TR_MENUTELEMETRY "TELEMESURE" #define TR_MENUTEMPLATES "GABARITS" #define TR_MENUSTAT "STATS" diff --git a/src/translations/it.h b/src/translations/it.h index 9cb488fb2..12e3e6a90 100644 --- a/src/translations/it.h +++ b/src/translations/it.h @@ -382,7 +382,7 @@ #define TR_MENUCURVE "CURVA" #define TR_MENUCUSTOMSWITCH "SWITCH PERSON." #define TR_MENUCUSTOMSWITCHES "SWITCH PERSON." -#define TR_MENUFUNCSWITCHES "SWITCH FUNZIONE" +#define TR_MENUCUSTOMFUNC "SWITCH FUNZIONE" #define TR_MENUTELEMETRY "TELEMETRIA" #define TR_MENUTEMPLATES "TEMPLATES" #define TR_MENUSTAT "STATS" diff --git a/src/translations/se.h b/src/translations/se.h index 97ec9b32f..323d56921 100644 --- a/src/translations/se.h +++ b/src/translations/se.h @@ -390,7 +390,7 @@ #define TR_MENUCURVE "KURVA" #define TR_MENUCUSTOMSWITCH "LOGISKA BRYTAR" #define TR_MENUCUSTOMSWITCHES "LOGISKA BRYTARE" -#define TR_MENUFUNCSWITCHES "BRYTAR-EFFEKTER" +#define TR_MENUCUSTOMFUNC "BRYTAR-EFFEKTER" #define TR_MENUTELEMETRY "TELEMETRI" #define TR_MENUTEMPLATES "MALLAR" #define TR_MENUSTAT "STATSISTIK" diff --git a/src/translations/tts_en.cpp b/src/translations/tts_en.cpp index be71bf6a8..8adc1047f 100644 --- a/src/translations/tts_en.cpp +++ b/src/translations/tts_en.cpp @@ -63,7 +63,7 @@ enum EnglishPrompts { PROMPT_RPMS = PROMPT_UNITS_BASE+(UNIT_RPMS*2), PROMPT_G = PROMPT_UNITS_BASE+(UNIT_G*2), - PROMPT_POINT_NUMBER = PROMPT_NUMBERS_BASE+160, //.1 - .9 + PROMPT_POINT_BASE = 160, //.0 - .9 }; @@ -85,16 +85,6 @@ PLAY_FUNCTION(pushUnitPrompt, int16_t number, uint8_t unitprompt) PLAY_FUNCTION(playNumber, int16_t number, uint8_t unit, uint8_t att) { -/* if digit >= 1000000000: - temp_digit, digit = divmod(digit, 1000000000) - prompts.extend(self.getNumberPrompt(temp_digit)) - prompts.append(Prompt(GUIDE_00_BILLION, dir=2)) - if digit >= 1000000: - temp_digit, digit = divmod(digit, 1000000) - prompts.extend(self.getNumberPrompt(temp_digit)) - prompts.append(Prompt(GUIDE_00_MILLION, dir=2)) -*/ - if (number < 0) { PUSH_PROMPT(PROMPT_MINUS); number = -number; @@ -102,20 +92,16 @@ PLAY_FUNCTION(playNumber, int16_t number, uint8_t unit, uint8_t att) int8_t mode = MODE(att); if (mode > 0) { - div_t qr = div(number, (mode == 1 ? 10 : 100)); - if (qr.rem) { - PLAY_NUMBER(qr.quot, 0, 0); - if (mode == 2 ) { - if (qr.rem >= 10) - PUSH_PROMPT(PROMPT_POINT_NUMBER + (qr.rem/10)); - } - else - PUSH_PROMPT(PROMPT_POINT_NUMBER + qr.rem); - PUSH_PROMPT(PROMPT_UNITS_BASE+((unit-1)*2)+1); - } - else - PLAY_NUMBER(qr.quot, unit, 0); - return; + // we assume that we are PREC1 + div_t qr = div(number, 10); + if (qr.rem) { + PLAY_NUMBER(qr.quot, 0, 0); + PUSH_PROMPT(PROMPT_POINT_BASE + qr.rem); + number = -1; + } + else { + number = qr.quot; + } } int16_t tmp = number; diff --git a/src/translations/tts_fr.cpp b/src/translations/tts_fr.cpp index 21100238c..82dc04ebe 100644 --- a/src/translations/tts_fr.cpp +++ b/src/translations/tts_fr.cpp @@ -98,6 +98,8 @@ enum FrenchPrompts { PROMPT_ACCELz = PROMPT_LABELS_BASE+TELEM_ACCz, PROMPT_HDG = PROMPT_LABELS_BASE+TELEM_HDG, PROMPT_VARIO = PROMPT_LABELS_BASE+TELEM_VSPD, + + PROMPT_VIRGULE_BASE = 180, //,0 - ,9 }; #if defined(VOICE) @@ -123,18 +125,16 @@ PLAY_FUNCTION(playNumber, int16_t number, uint8_t unit, uint8_t att) int8_t mode = MODE(att); if (mode > 0) { - div_t qr = div(number, (mode == 1 ? 10 : 100)); - if (qr.rem > 0) { + // we assume that we are PREC1 + div_t qr = div(number, 10); + if (qr.rem) { PLAY_NUMBER(qr.quot, 0, 0); - PUSH_PROMPT(PROMPT_VIRGULE); - if (mode==2 && qr.rem < 10) - PUSH_PROMPT(PROMPT_ZERO); - PLAY_NUMBER(qr.rem, unit, 0); + PUSH_PROMPT(PROMPT_VIRGULE_BASE + qr.rem); + number = -1; } else { - PLAY_NUMBER(qr.quot, unit, 0); + number = qr.quot; } - return; } if (number >= 1000) {