blob: 6b89e7d9aee272e91dc6ae90a49745b0155d1c66 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#include <stdint.h>
int cmd_size = 0x400;
int maxcol = 80;
extern uint8_t scr_row;
extern uint8_t scr_col;
extern uint8_t scr_str;
int find_end(char *str, int pos) {
int i;
for (i = pos; str[i] != '\0'; i++);
return i;
}
void cmd_cpy(char *scr_buf, char *cmd_buf, int pos) {
int end_line = (find_end(scr_buf, pos)/(maxcol+1)) - scr_str;
int start_line = (find_start(scr_buf, end_line) + scr_str) * (maxcol+1);
for (int i = 0, done = 0; !done; i++) {
uint64_t tmp = (uint64_t)scr_buf[i];
for (int j = 0; j < 8; j++ , tmp >>= 8) {
int idx = (i*8) + j;
uint8_t tmp2 = tmp;
if (idx >= cmd_size || !tmp2) {
done = 1;
cmd_buf[idx] = '\0';
break;
}
cmd_buf[idx] = tmp2;
}
}
}
|