Renamed

Dependencies:   mbed

Committer:
ffxx68
Date:
Tue Mar 29 10:06:20 2022 +0000
Revision:
5:062962db7a48
Parent:
2:dff96be9617e
Receiving the file through serial port

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ffxx68 0:07819bc70660 1 #ifndef SEND_PC1403
ffxx68 0:07819bc70660 2 #define SEND_PC1403
ffxx68 0:07819bc70660 3
ffxx68 5:062962db7a48 4 #include "mbed.h"
ffxx68 5:062962db7a48 5
ffxx68 5:062962db7a48 6 #include "serial_file.h" // file-over-serial
ffxx68 5:062962db7a48 7 #ifndef FILE_BUF_SIZE
ffxx68 5:062962db7a48 8 #include "bin_file.h" // hardcoded file stream
ffxx68 5:062962db7a48 9 #endif
ffxx68 5:062962db7a48 10
ffxx68 5:062962db7a48 11 #include "bit_send.h"
ffxx68 5:062962db7a48 12
ffxx68 1:9289febf4ae9 13 // remapping to MBed types
ffxx68 0:07819bc70660 14 #define uchar uint8_t
ffxx68 2:dff96be9617e 15 #define ushort uint16_t
ffxx68 2:dff96be9617e 16 #define uint uint32_t
ffxx68 0:07819bc70660 17 #define ulong uint32_t
ffxx68 0:07819bc70660 18
ffxx68 0:07819bc70660 19 #define PC_ID 1403
ffxx68 0:07819bc70660 20 #define TYPE_BIN_ADDR 0xE030
ffxx68 0:07819bc70660 21
ffxx68 0:07819bc70660 22 // bit timings
ffxx68 5:062962db7a48 23 #define BIT_DURATION (8*250) // us, PC1403
ffxx68 5:062962db7a48 24 #define SYNC_DURATION 1 // seconds
ffxx68 0:07819bc70660 25 #define N_SYNC_BITS SYNC_DURATION * 1000000 / BIT_DURATION
ffxx68 5:062962db7a48 26 #define MAX_BIT_TIME_ERR 50000 // timing error, per bit: 50ms - UNLIKELY!!
ffxx68 0:07819bc70660 27
ffxx68 0:07819bc70660 28 #define argP "" // main NOT using command-line input arguments
ffxx68 0:07819bc70660 29
ffxx68 0:07819bc70660 30 ////////////////////////////////////////////////////////////////////////////////
ffxx68 0:07819bc70660 31 // Excerpts from Pocket-Tools source code below
ffxx68 0:07819bc70660 32 // https://www.peil-partner.de/ifhe.de/sharp/
ffxx68 0:07819bc70660 33
ffxx68 0:07819bc70660 34 /* Regular Errors such as EOF and recoverable such as End of sync *MUST* have a lower value then ERR_OK */
ffxx68 0:07819bc70660 35 #define ERR_NOK -1 /* also normal EOF */
ffxx68 0:07819bc70660 36 #define ERR_OK 0
ffxx68 0:07819bc70660 37
ffxx68 0:07819bc70660 38 /* Unexpected NOT recoverable error *MUST* have a higher value then ERR_OK */
ffxx68 0:07819bc70660 39 #define ERR_SYNT 1 /* arguments missed, syntax error */
ffxx68 0:07819bc70660 40 #define ERR_ARG 3 /* arguments problem, pocket not implemented */
ffxx68 0:07819bc70660 41 #define ERR_FILE 5 /* File I-O */
ffxx68 0:07819bc70660 42 #define ERR_MEM 6 /* Line to long, buffer overflow, too much lines */
ffxx68 0:07819bc70660 43 #define ERR_FMT 7 /* Source file format or size */
ffxx68 0:07819bc70660 44 #define ERR_SUM 8 /* Constellation will generate a checksum error on PC */
ffxx68 0:07819bc70660 45
ffxx68 0:07819bc70660 46 #define TYPE_NOK 0
ffxx68 0:07819bc70660 47 #define TYPE_BIN 1
ffxx68 0:07819bc70660 48 #define TYPE_IMG 2
ffxx68 0:07819bc70660 49 #define TYPE_VAR 3 /* one variable block without file type and name*/
ffxx68 0:07819bc70660 50 #define TYPE_DAT 4
ffxx68 0:07819bc70660 51 #define TYPE_RSV 5 /* For PC-1500, other re-transfer: IMG-compatible */
ffxx68 0:07819bc70660 52 #define TYPE_ASC 6 /* For PC-E/G/1600 ASCII Data */
ffxx68 0:07819bc70660 53 #define TYPE_BAS 7 /* For PC-E/G/1600 ASCII Source */
ffxx68 0:07819bc70660 54 #define TYPE_TXT 8 /* For GRP_NEW, GRP_EXT and GRP_E text modus Image Data */
ffxx68 0:07819bc70660 55 #define TYPE_DEF 9 /* For PC-1500 software, binary image for definable keys */
ffxx68 0:07819bc70660 56 #define TYPE_DIM 10 /* For PC-1500 Quick-Tape, binary image of all dimensioned data variables */
ffxx68 0:07819bc70660 57 #define TYPE_MEM 0x6E /* Tables and Variables of PC-1150, subtype of TYPE_IMG */
ffxx68 0:07819bc70660 58 #define TYPE_CRD 0x6A /* PC-1100 full RAM card, subtype of TYPE_IMG */
ffxx68 0:07819bc70660 59 #define TYPE_TEL 0x61 /* Telephone database export */
ffxx68 0:07819bc70660 60 #define TYPE_SCD 0x62 /* Scheduler database export */
ffxx68 0:07819bc70660 61 #define TYPE_NOT 0x64 /* Notes database export */
ffxx68 0:07819bc70660 62
ffxx68 0:07819bc70660 63 #define GRP_OLD 0x20
ffxx68 0:07819bc70660 64 #define GRP_NEW 0x70
ffxx68 0:07819bc70660 65 #define GRP_EXT 0x72
ffxx68 0:07819bc70660 66 #define GRP_DAT 0x74
ffxx68 0:07819bc70660 67 #define GRP_16 0x10 /* PC-1600 */
ffxx68 0:07819bc70660 68 #define GRP_E 0x05 /* PC-E500 */
ffxx68 0:07819bc70660 69 #define GRP_G 0x08 /* PC-G850, E2xx */
ffxx68 0:07819bc70660 70
ffxx68 0:07819bc70660 71 #define IDENT_PC1211 0x80
ffxx68 0:07819bc70660 72 #define IDENT_PC121_DAT 0x8F /* one variable length block only, not tested */
ffxx68 0:07819bc70660 73
ffxx68 0:07819bc70660 74 #define IDENT_PC1500 0xA
ffxx68 0:07819bc70660 75 #define IDENT_PC15_BIN 0xA0
ffxx68 0:07819bc70660 76 #define IDENT_PC15_BAS 0xA1
ffxx68 0:07819bc70660 77 #define IDENT_PC15_RSV 0xA2
ffxx68 0:07819bc70660 78 #define IDENT_PC15_DEF 0xA3
ffxx68 0:07819bc70660 79 #define IDENT_PC15_DAT 0xA4
ffxx68 0:07819bc70660 80
ffxx68 0:07819bc70660 81 #define IDENT_QTAPE 0x0AA0
ffxx68 0:07819bc70660 82 #define IDENT_QT_BAS 0x42 // B
ffxx68 0:07819bc70660 83 #define IDENT_QT_BIN 0x4D // M
ffxx68 0:07819bc70660 84 #define IDENT_QT_RSV 0x52 // R
ffxx68 0:07819bc70660 85 #define IDENT_QT_DIM 0x44 // D = V DIM
ffxx68 0:07819bc70660 86 #define IDENT_QT_DAT 0x56 /* V NOT implemented, UNSUPPORTED! */
ffxx68 0:07819bc70660 87
ffxx68 0:07819bc70660 88 #define IDENT_OLD_BAS 0x20
ffxx68 0:07819bc70660 89 #define IDENT_OLD_PAS 0x21
ffxx68 0:07819bc70660 90 #define IDENT_OLD_DAT 0x24
ffxx68 0:07819bc70660 91 #define IDENT_OLD_BIN 0x26
ffxx68 0:07819bc70660 92
ffxx68 0:07819bc70660 93 #define IDENT_NEW_TEL 0x61 // MEMO TEL NEW DB
ffxx68 0:07819bc70660 94 #define IDENT_NEW_SCD 0x62 // MEMO SCDL NEW DB
ffxx68 0:07819bc70660 95 #define IDENT_NEW_NOT 0x64 // MEMO NOTE NEW DB
ffxx68 0:07819bc70660 96 #define IDENT_NEW_CRD 0x6A // BASIC RAM Card IN
ffxx68 0:07819bc70660 97 #define IDENT_OLD_MEM 0x6E // MEM OLD DB, all Tables
ffxx68 0:07819bc70660 98
ffxx68 0:07819bc70660 99 #define IDENT_NEW_BAS 0x70
ffxx68 0:07819bc70660 100 #define IDENT_NEW_PAS 0x71
ffxx68 0:07819bc70660 101 #define IDENT_EXT_BAS 0x72
ffxx68 0:07819bc70660 102 #define IDENT_EXT_PAS 0x73
ffxx68 0:07819bc70660 103 #define IDENT_NEW_DAT 0x74 // IDENT_DATA_VAR 0xEF removed
ffxx68 0:07819bc70660 104 #define IDENT_NEW_BIN 0x76
ffxx68 0:07819bc70660 105 #define IDENT_NEW_CSL 0x7A // CASL or CAP-X CMT
ffxx68 0:07819bc70660 106 #define IDENT_UNKNOWN 0x100
ffxx68 0:07819bc70660 107
ffxx68 0:07819bc70660 108 #define IDENT_ST 0x124 /* SuperTape */
ffxx68 0:07819bc70660 109
ffxx68 0:07819bc70660 110 #define IDENT_PC16_CAS 0x00 /* PC-1600 ASCII Data or BASIC Image */
ffxx68 0:07819bc70660 111 #define IDENT_PC16_DAT 0x08 /* Special binary data format PC-1600 */
ffxx68 0:07819bc70660 112 #define IDENT_E_ASC 0x04 /* ASCII Data or Text Modus BASIC/ASM/C Source */
ffxx68 0:07819bc70660 113 #define IDENT_E_BAS 0x02 /* Return from Bas2Img also in the format of PC-1475 */
ffxx68 0:07819bc70660 114 #define IDENT_E_BIN 0x01 /* Binary Data, use --addr parameter 2nd time for entry address */
ffxx68 0:07819bc70660 115 /* also used for Rsv-Data, but different sub id (mode 2) */
ffxx68 0:07819bc70660 116 #define SYNC_E_HEAD 40 /* additional sync for E-series header block */
ffxx68 0:07819bc70660 117 #define SYNC_E_DATA 20 /* additional sync for E-series data block */
ffxx68 0:07819bc70660 118
ffxx68 0:07819bc70660 119 #define DATA_HEAD_LEN 5 /* length of the header of a data variable element*/
ffxx68 0:07819bc70660 120 #define DATA_VARIABLE 0xFE00 /* Header element of standard variable, not length */
ffxx68 0:07819bc70660 121 #define DATA_DBL_LEN 14 /* length of a double numeric data variable element */
ffxx68 0:07819bc70660 122 #define DATA_STD_LEN 8 /* length of a numeric and standard data variable element*/
ffxx68 0:07819bc70660 123 #define DATA_NUM_15 0x88 /* ItemLen = Id of numeric data variable of PC-1500 */
ffxx68 0:07819bc70660 124
ffxx68 0:07819bc70660 125 #define DATA_NUM 0x98 /* Internal identity of numeric data variable */
ffxx68 0:07819bc70660 126 #define DATA_STR 0xA8 /* Internal identity of a string data variable */
ffxx68 0:07819bc70660 127 #define DATA_UNKNOWN 0x00 /* Variable filled with zeros */
ffxx68 0:07819bc70660 128
ffxx68 0:07819bc70660 129 #define DATA_STD_STR 0xF5 /* Standard data variable is a string */
ffxx68 0:07819bc70660 130 #define DATA_EOF 0x0F /* End of variable Data Block */
ffxx68 0:07819bc70660 131
ffxx68 0:07819bc70660 132 #define EOF_ASC 0x1A /* End of ASCII transfered files, also CAS: of newer series */
ffxx68 0:07819bc70660 133 #define EOF_15 0x55 /* End of complete file of PC-1500 */
ffxx68 0:07819bc70660 134 #define BAS_1500_EOF 0xFF /* one of two bytes */
ffxx68 0:07819bc70660 135 #define BAS_NEW_EOF 0xFF /* one of two bytes */
ffxx68 0:07819bc70660 136 #define BAS_OLD_EOF 0xF0 /* one byte only */
ffxx68 0:07819bc70660 137
ffxx68 0:07819bc70660 138 #define BLK_OLD_SUM 8 /* Transmission Block (plus checksums), old series bas without, data old/new with checksum reset */
ffxx68 0:07819bc70660 139 #define BLK_OLD 80 /* Transmission Block (plus checksums) of PC-1500 and old series with checksum reset */
ffxx68 0:07819bc70660 140 #define BLK_NEW 120 /* Transmission Block (plus checksum) of new series 1260-1475 */
ffxx68 0:07819bc70660 141 #define BLK_E_DAT 256 /* Checksum of series E500 DAT */
ffxx68 0:07819bc70660 142 #define BLK_E_HEAD 0x30 /* Length of header1 of series E500, next only after the end of a Transmission Block */
ffxx68 0:07819bc70660 143 #define BLK_S_HEAD 25 /* Length of SuperTape Header without checksum */
ffxx68 0:07819bc70660 144
ffxx68 0:07819bc70660 145 #define SUPT_HEAD_L 26 /* SuperTape length of header block with low byte of checksum included */
ffxx68 0:07819bc70660 146 #define SUPT_SYN_NB 64 /* SuperTape number of synchronisation char */
ffxx68 0:07819bc70660 147 #define SUPT_SYNC 0x16 /* SuperTape SYNCHR synchronisation char */
ffxx68 0:07819bc70660 148 #define SUPT_HEAD 0x2A /* SuperTape SYNPGM start mark of header block */
ffxx68 0:07819bc70660 149 #define SUPT_DATA 0xC5 /* SuperTape SYNDAT start mark of program/data block */
ffxx68 0:07819bc70660 150 #define SUPT_END 0x9B /* SuperTape end mark after the checksum of a block */
ffxx68 0:07819bc70660 151 #define SUPT_FLAGS 0x00 /* SuperTape flag byte */
ffxx68 0:07819bc70660 152
ffxx68 0:07819bc70660 153 #define BGNSAMPLES 44 /* first sample byte */
ffxx68 0:07819bc70660 154
ffxx68 0:07819bc70660 155 #define AMP_MID 0x80 /* Sample value for silence (all 8-bit) */
ffxx68 0:07819bc70660 156 #define AMP_HIGH 0xDA /* Sample value for amplitude HIGH */
ffxx68 0:07819bc70660 157 #define AMP_LOW 0x26 /* Sample value for amplitude LOW */
ffxx68 0:07819bc70660 158 #define AMP_HIGH_E 0xFC /* Sample value for amplitude HIGH for E-series */
ffxx68 0:07819bc70660 159 #define AMP_LOW_E 0x04 /* Sample value for amplitude LOW for E-series */
ffxx68 0:07819bc70660 160 #define AMP_HIGH_121 0xEF /* Sample value for amplitude HIGH for CE-121 */
ffxx68 0:07819bc70660 161 #define AMP_LOW_121 0x11 /* Sample value for amplitude LOW for CE-121 */
ffxx68 0:07819bc70660 162
ffxx68 0:07819bc70660 163 #define ORDER_STD 0
ffxx68 0:07819bc70660 164 #define ORDER_INV 1
ffxx68 0:07819bc70660 165 #define ORDER_S 8 /* SuperTape Byte */
ffxx68 0:07819bc70660 166 #define ORDER_E 9 /* 1600-Series and newer, no nibbles, a byte */
ffxx68 0:07819bc70660 167 #define ORDER_Q 11 /* Quick-Tape PC-1500a byte */
ffxx68 0:07819bc70660 168
ffxx68 0:07819bc70660 169 #define BASE_FREQ1 4000
ffxx68 0:07819bc70660 170 #define BASE_FREQ2 2500 /* PC-1500 */
ffxx68 0:07819bc70660 171 #define BASE_FREQ3 3000 /* PC-E-series and newer */
ffxx68 0:07819bc70660 172 #define BASE_FREQ4 5000 /* Quick-Tape */
ffxx68 0:07819bc70660 173 #define BASE_FREQS 3600 /* SuperTape */
ffxx68 0:07819bc70660 174
ffxx68 0:07819bc70660 175 #define CHAR_SPACE 0x20
ffxx68 0:07819bc70660 176 #define CHAR_DOT 0x2E
ffxx68 0:07819bc70660 177 #define CHAR_COLON 0x3A
ffxx68 0:07819bc70660 178 #ifdef __linux__ /* path separator */
ffxx68 0:07819bc70660 179 #define CHAR_SLASH 0x2F
ffxx68 0:07819bc70660 180 //elif defined __APPLE__
ffxx68 0:07819bc70660 181 #endif
ffxx68 0:07819bc70660 182 #ifdef __APPLE__
ffxx68 0:07819bc70660 183 #define CHAR_SLASH 0x2F
ffxx68 0:07819bc70660 184 #endif
ffxx68 0:07819bc70660 185 #ifndef CHAR_SLASH /* Windows path separator */
ffxx68 0:07819bc70660 186 #define CHAR_SLASH 0x5C
ffxx68 0:07819bc70660 187 #endif
ffxx68 0:07819bc70660 188 #define CHAR_UNDERSCORE 0x5F
ffxx68 0:07819bc70660 189
ffxx68 0:07819bc70660 190 #define cVL 80 /* Constant value for max. length of a data variable */
ffxx68 0:07819bc70660 191 #define cLL 512 /* Constant value for max. length of CFG-TEXT lines and max. CFG line Nb */
ffxx68 0:07819bc70660 192 #define cLPF 100 /* Constant value for max. Length of PathFilenames */
ffxx68 0:07819bc70660 193
ffxx68 0:07819bc70660 194 #define BAS_EOF_INCL 0x200000 /* debug flag for one included End Mark from Bas2img or Wav2bin */
ffxx68 0:07819bc70660 195 #define DATA_W2B150 0x8000 /* debug flag for DAT-IMG from Wav2bin 1.5.0 or older */
ffxx68 0:07819bc70660 196 #define NO_FILE_HEAD 0x4000 /* debug flag, write without file type and -name, 2.variable block */
ffxx68 0:07819bc70660 197 #define BAS_EXT_FRMT 0x1000 /* debug flag, use FORMAT of BAS_EXT for E-Series */
ffxx68 0:07819bc70660 198 #define SYNCL_STD 0x400 /* debug flag, for default sync length like the original */
ffxx68 0:07819bc70660 199 #define SYNCL_TRM 0x200 /* debug flag, for sync length like the Technical Reference Manual */
ffxx68 0:07819bc70660 200
ffxx68 0:07819bc70660 201 #define MODE_B22 0 /* PC-1500 */
ffxx68 0:07819bc70660 202 #define MODE_B21 1
ffxx68 0:07819bc70660 203 #define MODE_B20 2
ffxx68 0:07819bc70660 204 #define MODE_B19 3 /* Old series */
ffxx68 0:07819bc70660 205 #define MODE_B17 4
ffxx68 0:07819bc70660 206 #define MODE_B16 5 /* File names of new series an data */
ffxx68 0:07819bc70660 207 #define MODE_B15 6 /* Variable data body new series */
ffxx68 0:07819bc70660 208 #define MODE_B14 7 /* PC-1403 and newer, reads also B13 */
ffxx68 0:07819bc70660 209 #define MODE_B13 8 /* PC-1402 */
ffxx68 0:07819bc70660 210 #define MODE_B9 9 /* PC-E series and newer */
ffxx68 0:07819bc70660 211 #define MODE_B10 10 /* SuperTape */
ffxx68 0:07819bc70660 212 #define MODE_B11 11 /* Quick-Tape */
ffxx68 0:07819bc70660 213
ffxx68 0:07819bc70660 214
ffxx68 0:07819bc70660 215 ///////////////////////////////////////
ffxx68 0:07819bc70660 216 // bin-2-wav typedefs
ffxx68 0:07819bc70660 217 typedef struct {
ffxx68 0:07819bc70660 218 // FILE* ptrFd ; /* FILE NOT USED HERE */
ffxx68 0:07819bc70660 219 uint ident ;
ffxx68 0:07819bc70660 220 uchar mode ; /* Bit writing mode and stop bits*/
ffxx68 0:07819bc70660 221 uchar mode_h ; /* Bit writing mode and stop bits for the file header*/
ffxx68 0:07819bc70660 222 ulong nbSync1 ; /* sync bits per second */
ffxx68 0:07819bc70660 223 ulong nbSync ; /* sync bits for intermediate syncs */
ffxx68 0:07819bc70660 224 ulong nbByte ; /* size of bytes to write */
ffxx68 0:07819bc70660 225 ulong total ; /* total bytes written (without checksums) */
ffxx68 0:07819bc70660 226 long total_diff ; /* difference between bytes read and written (without checksums) */
ffxx68 0:07819bc70660 227 ulong count ; /* Counter of bytes in a block for the checksum */
ffxx68 0:07819bc70660 228 ulong sum ; /* Checksum calculated */
ffxx68 0:07819bc70660 229 ulong block_len ; /* Block length for checksum, variable used for E-Series */
ffxx68 0:07819bc70660 230 ulong usedat_len ; /* Length of useful data of the next block 1...(0x50), for Qtape L:0...4F */
ffxx68 0:07819bc70660 231 ulong bitLen ; /* Wave sample blocks per SHARP bit */
ffxx68 0:07819bc70660 232 bool lastSmpHigh; /* for SuperTape phase switching */
ffxx68 0:07819bc70660 233 ulong debug ;
ffxx68 0:07819bc70660 234 } FileInfo ;
ffxx68 0:07819bc70660 235
ffxx68 0:07819bc70660 236 typedef struct {
ffxx68 0:07819bc70660 237 uint stopb1 ;
ffxx68 0:07819bc70660 238 uint stopb2 ;
ffxx68 0:07819bc70660 239 } ModeInfo ;
ffxx68 0:07819bc70660 240
ffxx68 5:062962db7a48 241 extern FileInfo fileInfo ; // extern, for other modules too
ffxx68 5:062962db7a48 242
ffxx68 0:07819bc70660 243 ///////////////////////////////////////
ffxx68 0:07819bc70660 244 // static variables
ffxx68 0:07819bc70660 245 static ModeInfo Mode[] = { /* stop bits of first and second nibble */
ffxx68 0:07819bc70660 246 { 6, 6 }, { 5, 6 }, { 5, 5 }, { 4, 5 },
ffxx68 0:07819bc70660 247 { 1, 6 }, { 1, 5 }, { 1, 4 }, { 1, 3 }, { 1, 2 }
ffxx68 0:07819bc70660 248 } ;
ffxx68 0:07819bc70660 249
ffxx68 0:07819bc70660 250 static bool bitMirroring = false ;
ffxx68 0:07819bc70660 251
ffxx68 5:062962db7a48 252 const static char CodeOld[] = {
ffxx68 0:07819bc70660 253 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
ffxx68 0:07819bc70660 254 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
ffxx68 0:07819bc70660 255 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
ffxx68 0:07819bc70660 256 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
ffxx68 0:07819bc70660 257 0x11,0x14,0x12,0x15,0x18,0x16,0x1F,0x11, // Pos. 0x24 $ 0x19 -> 0x18, 11/2020
ffxx68 0:07819bc70660 258 0x30,0x31,0x37,0x35,0x1B,0x36,0x4A,0x38,
ffxx68 0:07819bc70660 259 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
ffxx68 0:07819bc70660 260 0x48,0x49,0x1D,0x1C,0x33,0x34,0x32,0x13,
ffxx68 0:07819bc70660 261 0x1E,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
ffxx68 0:07819bc70660 262 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,
ffxx68 0:07819bc70660 263 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
ffxx68 0:07819bc70660 264 0x68,0x69,0x6A,0x11,0x11,0x11,0x39,0x11,
ffxx68 0:07819bc70660 265 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
ffxx68 0:07819bc70660 266 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
ffxx68 0:07819bc70660 267 0x19,0x11,0x1A,0x11,0x11,0x11,0x11,0x11,
ffxx68 0:07819bc70660 268 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11
ffxx68 0:07819bc70660 269 } ;
ffxx68 0:07819bc70660 270
ffxx68 0:07819bc70660 271
ffxx68 0:07819bc70660 272 ////////////////////////////////////////////////////////////////////////////////
ffxx68 0:07819bc70660 273 // published method
ffxx68 5:062962db7a48 274 int sharp_fileloop ( FileInfo* ptrFile ) ;
ffxx68 5:062962db7a48 275 int FileSend ( void );
ffxx68 0:07819bc70660 276
ffxx68 5:062962db7a48 277 // From Pocket Tools
ffxx68 5:062962db7a48 278 int WriteSaveNameToWav (char* ptrName,
ffxx68 5:062962db7a48 279 uchar mode);
ffxx68 5:062962db7a48 280 int WriteFooterToMemoWav ( void );
ffxx68 5:062962db7a48 281 int WriteSyncToWav (ulong nbSync);
ffxx68 5:062962db7a48 282 int WriteByteSumToWav (ulong value,
ffxx68 5:062962db7a48 283 uchar order,
ffxx68 5:062962db7a48 284 uchar mode);
ffxx68 5:062962db7a48 285 int WriteByteSumToWav (ulong value,
ffxx68 5:062962db7a48 286 uchar order,
ffxx68 5:062962db7a48 287 uchar mode);
ffxx68 0:07819bc70660 288
ffxx68 0:07819bc70660 289 #endif // SEND_PC1403