From 8d7f27d9a0b61d3694a62f3e54be885d8073f02b Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Sat, 13 Feb 2021 13:59:48 -0500 Subject: - Reverted back one commit before the previous commit. This is because the previous commit actually created a bug, rather than fixing one. - Added JMP, and JSR to the ortho extension, and implemented them both in the assembler, and emulator. --- programs/sub-suite/shift_line.c | 85 ----------------------------------------- 1 file changed, 85 deletions(-) delete mode 100644 programs/sub-suite/shift_line.c (limited to 'programs/sub-suite/shift_line.c') diff --git a/programs/sub-suite/shift_line.c b/programs/sub-suite/shift_line.c deleted file mode 100644 index 365666b..0000000 --- a/programs/sub-suite/shift_line.c +++ /dev/null @@ -1,85 +0,0 @@ -#include - -const uint8_t bits[8] = { - 0x80, - 0x40, - 0x20, - 0x10, - 0x08, - 0x04, - 0x02, - 0x01 -}; - -int maxcol = 80; -int scr_str = 0; -int scr_row = 0; -int scr_col = 0; -uint8_t bitabl[16]; - -uint8_t bitpos(unsigned int row, uint8_t *mask) { - uint8_t bit = row & 7; - *mask = bits[bit]; - return row >> 3; - -} - -uint8_t getbit(unsigned int row, unsigned int offset) { - uint8_t mask; - uint8_t byte = bitpos(row+offset, &mask); - return (bitabl[byte] & mask); -} - -void setbit(unsigned int row) { - uint8_t mask; - uint8_t byte = bitpos(row, &mask); - bitabl[byte] |= mask; -} - -void clrbit(unsigned int row) { - uint8_t mask; - uint8_t byte = bitpos(row, &mask); - bitabl[byte] &= ~mask; -} - -int find_end(char *str, int start) { - int i; - for (i = start; str[i]; i++); - return i; -} - -void shift_line(char *str, int cursor, int left) { - /*int cursor = ((scr_row+scr_str)*maxcol)+scr_col;*/ - int end = find_end(str, cursor); - if (left) { - int i = end-1; - int j = end; - for (; i >= cursor; i--, j--) { - if (i < 0) { - i = 0; - str[i] = 0; - break; - } - str[j] = str[i]; - str[i] = 0; - - } - /*str[i+1] = (!str[i+1]) ? ' ' : str[i+1];*/ - end = find_end(str, i+2); - /*str[i+1] = (str[i+1] == ' ') ? 0 : str[i+1];*/ - if ((end/maxcol) > scr_row) { - setbit(end/maxcol); - } - } else { - int i = cursor; - int j = cursor-1; - for (; str[i]; i++, j++) { - str[j] = str[i]; - str[i] = 0; - } - end = find_end(str, i); - if (((end-1) % maxcol) == 0 && ((end-1)/maxcol) > scr_row) { - clrbit(end/maxcol); - } - } -} -- cgit v1.2.3-13-gbd6f