int ti92_send_VAR_h(CalcHandle* handle, uint32_t varsize, uint8_t vartype, const char *varname) { uint8_t buffer[32]; char trans[17]; ticonv_varname_to_utf8_s(handle->model, varname, trans, vartype); buffer[0] = LSB(LSW(varsize)); buffer[1] = MSB(LSW(varsize)); buffer[2] = LSB(MSW(varsize)); buffer[3] = MSB(MSW(varsize)); buffer[4] = vartype; buffer[5] = strlen(varname); memcpy(buffer + 6, varname, strlen(varname)); ticalcs_info(" PC->TI: VAR (size=0x%08X=%i, id=%02X, name=%s)", varsize, varsize, vartype, trans); TRYF(dbus_send(handle, PC_TI92, CMD_VAR, 6 + strlen(varname), buffer)); return 0; }
/* Request to send (var header: SPC padded, fixed length) */ int ti85_send_RTS(CalcHandle* handle, uint16_t varsize, uint8_t vartype, const char *varname) { uint8_t buffer[16]; char trans[9]; buffer[0] = LSB(varsize); buffer[1] = MSB(varsize); buffer[2] = vartype; buffer[3] = strlen(varname); memcpy(buffer + 4, varname, 8); pad_buffer_to_8_chars(buffer + 4, ' '); ticonv_varname_to_utf8_s(handle->model, varname, trans, vartype); ticalcs_info(" PC->TI: RTS (size=0x%04X, id=%02X, name=%s)", varsize, vartype, trans); TRYF(dbus_send(handle, PC_TI8586, CMD_RTS, 12, buffer)); return 0; }
int ti73_send_DEL_h(CalcHandle* handle, uint16_t varsize, uint8_t vartype, const char *varname, uint8_t varattr) { uint8_t buffer[16] = { 0 }; char trans[9]; buffer[0] = LSB(varsize); buffer[1] = MSB(varsize); buffer[2] = vartype == TI83p_APPL ? 0x14 : vartype; memcpy(buffer + 3, varname, 8); pad_buffer(buffer + 3, '\0'); buffer[11] = 0x00; ticonv_varname_to_utf8_s(handle->model, varname, trans, vartype); ticalcs_info(" PC->TI: DEL (name=%s)", trans); TRYF(dbus_send(handle, PC_TI7383, CMD_DEL, 11, buffer)); return 0; }
/* Variable (std var header: NUL padded, variable length) */ int ti85_recv_VAR(CalcHandle* handle, uint16_t * varsize, uint8_t * vartype, char *varname) { uint8_t host, cmd; uint8_t *buffer = (uint8_t *)handle->priv2; uint16_t length; char trans[9]; uint8_t strl; TRYF(dbus_recv(handle, &host, &cmd, &length, buffer)); if (cmd == CMD_EOT) return ERR_EOT; // not really an error if (cmd == CMD_SKP) return ERR_VAR_REJECTED; if (cmd != CMD_VAR) return ERR_INVALID_CMD; //if((length != (4+strlen(varname))) && (length != 9)) //return ERR_INVALID_PACKET; *varsize = buffer[0] | (buffer[1] << 8); *vartype = buffer[2]; if (*vartype != TI8586_BKUP) { strl = buffer[3]; memcpy(varname, buffer + 4, strl); varname[strl] = '\0'; } else { memcpy(varname, buffer + 3, 8); } ticonv_varname_to_utf8_s(handle->model, varname, trans, *vartype); ticalcs_info(" TI->PC: VAR (size=0x%04X, id=%02X, name=%s)", *varsize, *vartype, trans); return 0; }
/** * tnsp_content_display_regular: * @content: a FileContent structure. * * Display fields of a FileContent structure. * * Return value: an error code, 0 otherwise. **/ int tnsp_content_display_regular(FileContent *content) { int i; char trans[17]; if (content == NULL) { tifiles_critical("%s(NULL)", __FUNCTION__); return ERR_INVALID_FILE; } tifiles_info("Signature: %s", tifiles_calctype2signature(content->model)); tifiles_info("Comment: %s", content->comment); tifiles_info("Default folder: %s", content->default_folder); tifiles_info("Number of entries: %i", content->num_entries); for (i = 0; i < content->num_entries /*&& i<5 */ ; i++) { tifiles_info("Entry #%i", i); tifiles_info(" folder: %s", content->entries[i]->folder); tifiles_info(" name: %s", ticonv_varname_to_utf8_s(content->model, content->entries[i]->name, trans, content->entries[i]->type)); tifiles_info(" type: %02X (%s)", content->entries[i]->type, tifiles_vartype2string(content->model, content->entries[i]->type)); tifiles_info(" attr: %s", tifiles_attribute_to_string(content->entries[i]->attr)); tifiles_info(" length: %04X (%i)", content->entries[i]->size, content->entries[i]->size); } tifiles_info("Checksum: %04X (%i) ", content->checksum, content->checksum); return 0; }
int ti82_recv_RTS_h(CalcHandle* handle, uint16_t * varsize, uint8_t * vartype, char *varname) { uint8_t host, cmd; uint8_t *buffer = (uint8_t *)handle->priv2; char trans[9]; TRYF(dbus_recv(handle, &host, &cmd, varsize, buffer)); if (cmd != CMD_RTS) return ERR_INVALID_CMD; *varsize = buffer[0] | (buffer[1] << 8); *vartype = buffer[2]; memcpy(varname, buffer + 3, 8); varname[8] = '\0'; ticonv_varname_to_utf8_s(handle->model, varname, trans, *vartype); ticalcs_info(" TI->PC: RTS (size=0x%04X=%i, id=%02X, name=%s)", *varsize, *varsize, *vartype, trans); return 0; }
TIEXPORT3 int TICALL ti73_recv_RTS(CalcHandle* handle, uint16_t * varsize, uint8_t * vartype, char *varname, uint8_t * varattr) { uint8_t host, cmd; uint8_t *buffer; char trans[9]; if (handle == NULL) { ticalcs_critical("%s: handle is NULL", __FUNCTION__); return ERR_INVALID_HANDLE; } if (varsize == NULL || vartype == NULL || varname == NULL || varattr == NULL) { ticalcs_critical("%s: an argument is NULL", __FUNCTION__); return ERR_INVALID_PACKET; } buffer = (uint8_t *)handle->priv2; TRYF(dbus_recv(handle, &host, &cmd, varsize, buffer)); if (cmd != CMD_RTS) { return ERR_INVALID_CMD; } *varsize = buffer[0] | (buffer[1] << 8); *vartype = buffer[2]; memcpy(varname, buffer + 3, 8); varname[8] = '\0'; *varattr = (buffer[12] & 0x80) ? ATTRB_ARCHIVED : ATTRB_NONE; ticonv_varname_to_utf8_s(handle->model, varname, trans, *vartype); ticalcs_info(" TI->PC: RTS (size=0x%04X, id=%02X, name=%s, attrb=%i)", *varsize, *vartype, trans, *varattr); return 0; }