Terminal program for MailStation devices

settings: Store last-used source, use that at startup

+24 -13
+8 -1
mailstation.h
··· 45 45 __sfr __at(0x1c) rtc10years; 46 46 __sfr __at(0x28) port28; 47 47 48 + /* be sure to keep these in sync with mailstation.inc */ 49 + #define SOURCE_WIFI 0 50 + #define SOURCE_MODEM 1 51 + #define SOURCE_LPT 2 52 + #define SOURCE_ECHO 3 53 + #define SOURCE_LAST 4 54 + 48 55 /* LCD parameters (2 screens) */ 49 56 #define LCD_WIDTH (160 * 2) // 320 50 57 #define LCD_HEIGHT 128 ··· 184 191 185 192 /* settings.s */ 186 193 extern volatile unsigned int setting_modem_speed; 187 - extern volatile unsigned char setting_modem_quiet; 194 + extern volatile unsigned char setting_default_source; 188 195 extern void settings_read(void); 189 196 extern void settings_write(void); 190 197
+8 -1
mailstation.inc
··· 71 71 .equ XON, #0x11 72 72 .equ XOFF, #0x13 73 73 74 + ; be sure to keep these in sync with mailstation.h 75 + .equ SOURCE_WIFI, #0 76 + .equ SOURCE_MODEM, #1 77 + .equ SOURCE_LPT, #2 78 + .equ SOURCE_ECHO, #3 79 + .equ SOURCE_LAST, #4 80 + 74 81 .globl _saved_cursorx 75 82 .globl _saved_cursory 76 83 .globl _delay 77 84 78 85 ; settings 79 86 .globl _setting_modem_speed 80 - .globl _setting_modem_quiet 87 + .globl _setting_default_source 81 88 82 89 .globl _modem_buf 83 90 .globl _modem_buf_pos
+6 -9
main.c
··· 38 38 void obuf_flush(void); 39 39 void wifi_hangup(void); 40 40 41 - #define DEBUG 42 - 43 - enum { 44 - SOURCE_MODEM, 45 - SOURCE_LPT, 46 - SOURCE_ECHO, 47 - SOURCE_WIFI, 48 - }; 49 41 unsigned char source; 50 42 51 43 enum { ··· 76 68 /* ignore first peekkey() if it returns power button */ 77 69 last_key = KEY_POWER; 78 70 esc = 0; 79 - source = SOURCE_WIFI; 80 71 putchar_sgr = 0; 81 72 in_csi = 0; 82 73 csibuflen = 0; ··· 88 79 patch_isr(); 89 80 90 81 settings_read(); 82 + source = setting_default_source; 83 + if (source >= SOURCE_LAST) 84 + source = SOURCE_WIFI; 85 + 91 86 clear_screen_bufs(); 92 87 clear_screen(); 93 88 update_statusbar(STATUSBAR_INIT, NULL); ··· 296 291 printf("\nSwitching to modem...\n"); 297 292 source = SOURCE_MODEM; 298 293 } 294 + setting_default_source = source; 295 + settings_write(); 299 296 break; 300 297 case KEY_MAIN_MENU: 301 298 /* send escape */
+2 -2
settings.s
··· 39 39 .db #settings_ident_2 40 40 _setting_modem_speed: 41 41 .dw #MODEM_DEFAULT_SPEED 42 - _setting_modem_quiet: 43 - .db #0 42 + _setting_default_source: 43 + .db #SOURCE_WIFI 44 44 settings_end: 45 45 46 46 .area _CODE