?? modem_globals.h
字號:
/*
* Header file for main modem global variables.
*
* Copyright 1999 R.J.M. Close, distribute under GPL
*/
#ifndef LT_GLOBALS_H
#define LT_GLOBALS_H
#include "stdbool.h"
#ifndef INIT_C
#define EXTERN extern
#define I(a...)
#else
#undef EXTERN
#undef I
#define EXTERN /**/
#define I(a...) = a
#endif
#ifndef MOD
#define MOD(a, b) = a % b
#endif
// Type defs.
#ifndef INIT_C
struct lt_timer {
unsigned short t_min;
unsigned short t_msec;
};
enum {
DIAL_INIT,
DIAL_1,
DIAL_WAITING_FOR_DIALTONE,
DIAL_WAITING_FOR_W_DIALTONE,
DIAL_HOOK_FLASH,
DIAL_HOOK_FLASH_RECOVERY,
DIAL_CHECKING_QUIET_ANSWER,
DIAL_WAITING_FOR_BONG,
DIAL_DIGIT,
DIAL_PAUSE,
DIAL_DIGIT_RECOVERY
} dp_dial_state;
#endif
// Variable defs.
EXTERN bool isapnp_modem I(false);
EXTERN unsigned char modem_enabled;
EXTERN unsigned char cell_active;
EXTERN volatile unsigned char dp_byte_f, dp_byte_e, dp_byte_d, dp_byte_c;
// Shadows of registers 0xd7 and 0xbc
EXTERN volatile unsigned char dp_bamil_rd7, dp_bamil_rbc;
EXTERN volatile unsigned char dp_dsp_data_in_progress, dp_sleep, CpqFlag, dp_state;
EXTERN unsigned char dp_dsp_status I(0);
// Ring related stuff.
EXTERN unsigned char dp_count;
EXTERN unsigned char dp_ring_int_count, dp_ring_int;
// 56K related stuff.
EXTERN int dp_56k_state;
// Tone detection stuff.
EXTERN unsigned short peak_energy, peak_busy_energy;
EXTERN unsigned int dp_busy_state, dp_tone_state;
EXTERN unsigned char dp_threshold;
EXTERN bool x_dsp_mars;
EXTERN bool x_dsp_mars3 I(false); // Not yet set up properly!
EXTERN unsigned char dp_tad_downloaded, dp_fax_downloaded, dp_first_call, dp_redial;
EXTERN unsigned char dp_busy_cycles;
EXTERN unsigned char dp_dial_string[256];
EXTERN unsigned char* dp_dial_ptr;
EXTERN unsigned short dp_max_pause, dp_continous_busy_timer;
EXTERN unsigned short dp_tone_timer;
EXTERN unsigned short dp_tone_on_time, dp_tone_off_time;
EXTERN unsigned char dp_dialtone_cycles;
EXTERN unsigned short dp_answer_state;
EXTERN unsigned int x_chip_version, dp_version;
EXTERN unsigned int dp_cmd_timer, dp_local_phone_timer;
EXTERN unsigned int dp_dial_tone_timer, dp_quiet_answer_timer, dp_busy_tone_timer;
EXTERN unsigned short S_0x81 I(0);
// x_status diagnostics array, I'm not sure about the length!
// see: at_init_diagnostics.
EXTERN unsigned char x_status[0x50];
// x_status[1] is the connection state?
// x_status[2,3] = x_line_rate_tx;
// x_status[4,5] = x_line_rate;
// V8 cl message ? I'm not sure about the length!
EXTERN unsigned char rx_v8bis_cl_msg[0x20];
EXTERN unsigned char V8bis_Options[10];
EXTERN unsigned char v8bis_state;
// I/O specific stuff.
EXTERN unsigned int io_state, io_at_esc_state;
EXTERN unsigned short io_uart_status;
EXTERN unsigned char io_old_state, io_send_break_to_remote;
EXTERN unsigned char io_uart_msr, io_remote_control_mode, io_at_esc_detect;
// DCE RX Buffer.
EXTERN unsigned char io_dce_rx_buff[0x1001];
// Pointers used on the dce RX buffer.
EXTERN unsigned char *io_dce_rx_rptr, *io_dce_rx_wptr;
EXTERN unsigned char *io_dce_rx_eptr, *io_dce_rx_sptr;
EXTERN unsigned char* io_dce_rx_last_ch;
// DCE TX Buffer.
EXTERN unsigned char io_dce_tx_buff[0x1001];
// Pointers used on the dce TX buffer.
EXTERN unsigned char *io_dce_tx_rptr, *io_dce_tx_wptr;
EXTERN unsigned char *io_dce_tx_eptr, *io_dce_tx_sptr;
EXTERN unsigned char* io_dce_tx_last_ch;
// DTE RX Buffer.
EXTERN unsigned char io_dte_rx_buff[0x1001];
// Pointers used on the dte RX buffer.
EXTERN unsigned char *io_dte_rx_rptr, *io_dte_rx_wptr;
EXTERN unsigned char *io_dte_rx_eptr, *io_dte_rx_sptr;
EXTERN unsigned char* io_dte_rx_last_ch;
EXTERN unsigned char* io_dte_rx_old_ptr;
// DTE TX Buffer.
EXTERN unsigned char io_dte_tx_buff[0x1001];
// Pointers used on the dte TX buffer.
EXTERN unsigned char *io_dte_tx_rptr, *io_dte_tx_wptr;
EXTERN unsigned char *io_dte_tx_eptr, *io_dte_tx_sptr;
EXTERN unsigned char* io_dte_tx_last_ch;
EXTERN unsigned char* io_dte_tx_old_ptr;
// App RX Pointers
EXTERN unsigned char *io_app_tx_eptr, *io_app_tx_sptr;
// Misc IO pointers.
EXTERN unsigned char* io_esc_dte_wptr;
EXTERN unsigned char* old_app_pqTx;
// Buffer size?
EXTERN unsigned short old_app_cbqTx;
EXTERN unsigned char io_app_tx_data_update;
// Upper 2 bytes hold millisec's, bottom 2 hold sec's.
EXTERN struct lt_timer io_dte_inact_timer;
// Moved from init.c !
EXTERN unsigned short word_59E9E, word_59E9C;
EXTERN unsigned char x_test_mode_on, x_parity_mask, x_dma_xfer;
EXTERN unsigned char x_parameter_mode;
EXTERN unsigned char country_name[40];
// Other stuff.
EXTERN unsigned char D3Flag, dp_calling_tone_disable, DpIdleFillChar, dp_fdsp_record;
EXTERN unsigned char dp_failures, dp_blacklist_calls;
EXTERN int x_modem_state, x_dial_residual;
EXTERN short dp_wDspRetrainState;
EXTERN unsigned char V34Mode I(0);
EXTERN unsigned short dp_wV34Option I(0);
// AT specific stuff.
EXTERN unsigned int at_result_code, at_state;
EXTERN unsigned char at_cmd_buf, at_connect_code_flag, at_view_more;
EXTERN unsigned short at_cmd_len, at_timer;
EXTERN unsigned char* at_cmd_ptr;
// FIXME:
// Yuk, look up table.
// lea esi, loc_iircoef[eax*2], array of unsigned short.
// starts at 10560, needs filling in!
EXTERN unsigned short iircoef[128] I(
{ 0x2480, 0x8f16, 0x39a8, 0x0000, 0xfbf0, 0x0410, 0x91aa, 0x3cd5, 0xed1d, 0x0bd4,
0x0bd4, 0x878e, 0x3dfe, 0xa5c3, 0x2e40, 0x2e40, 0x1f60, 0x8a1b, 0x3d11, 0x0000,
0xfd50, 0x02b0, 0x8bf1, 0x3e72, 0xeeda, 0x0a48, 0x0a48, 0x862a, 0x3ee6, 0xa53e, // 1059B
0x2e43, 0x2e43, 0x2480, 0x8b07, 0x3ce9, 0x0000, 0xfe10, 0x01e3, 0x8ce3, 0x3e6a,
0xe94c, 0x0d71, 0x0d71, 0x8834, 0x3ebe, 0xb32a, 0x27a3, 0x27a3, 0x3180, 0x8b5f, // 105c3
0x3b2a, 0x0000, 0xfc37, 0x03c9, 0x8d40, 0x3d2a, 0xf9a6, 0x04a0, 0x04a0, 0x8613, // 105d7
0x3e2b, 0xb62b, 0x2536, 0x2536, 0x0a00, 0x8a5b, 0x3ebf, 0x0000, 0xff53, 0x00ad,
0x8aba, 0x3f5e, 0xe42e, 0x0fc4, 0x0fc4, 0x88de, 0x3f6c, 0xb3bd, 0x27db, 0x27db, // 105ff
0x3150, 0x91ed, 0x3704, 0x0000, 0xf84e, 0x07b2, 0x97ae, 0x3ab5, 0xfa26, 0x0505,
0x0505, 0x8763, 0x3d3d, 0xb7b4, 0x2491, 0x2491, 0x1f60, 0x8d12, 0x3c01, 0x0000,
0xfdc2, 0x023e, 0x8e96, 0x3e45, 0xdeb8, 0x1353, 0x1353, 0x87e6, 0x3ebd, 0x82c3,
0x4116, 0x4116, 0x8140, 0x9fee, 0x2f93, 0x0000, 0xee26, 0x11da, 0xbcae, 0x37e6,
0xfe51, 0x03d5, 0x03d5, 0x87b3, 0x3d2d, 0xaad0, 0x2b58, 0x2b58 } );
// End of variable definitions.
//**********************************
//
// S[] array starts at byte_59E60. I'm not sure where it ends
// but it should be at least 48 entries long. Lets assume it ends
// at byte_59E9B.
//
// Register S0 actually exists. that's good.
//
/*
S0 Auto Answer Ring Number
S1 Ring Counter
S2 AT Escape Character (user defined)
S3 Command Line Termination Character (user defined)
S4 Response Formatting Character (user defined)
S5 Command Line Editing Character (user defined)
S6 Wait Before Dialing
S7 Connection Completion Time-Out
S8 Comma Dial Modifier Time
S10 Automatic Disconnect Delay
S11 DTMF Dialing Speed
S12 Escape Guard Time
S14 General Bit Mapped Options Status
S21 V.24/General Bit Mapped Options Status
S22 Results Bit Mapped Options Status
S24 Timer to Control Sleep Mode
S28 V.34 Modulation Enable/Disable
S30 Inactivity Timer
S32 Synthetic Ring Volume
S33 Synthetic Ring Frequency
S35 Data Calling Tone
S37 Dial Line Rate (default 0)
S38 K56flex Downstream Rate
S42 Auto Rate (default 1, range 0 1)
S43 Auto Mode (default 1, range 0 1)
S48 LAPM Error Control and Feature Negotiation (default 7)
S89 Timer to Control Sleep Mode
S90 Read-only Local Phone
S91 Line Transmit Level
S108 Network Codec Type
*/
EXTERN unsigned char S[0x9B-0x60];
/*
* byte_59EE7 is start of international table, documented in v90atcom.txt.
*
* homol[0] is dummy, I really want it numbered from 1
*
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -