11 / 11 / 2
Регистрация: 12.02.2011
Сообщений: 88
|
|
1 | |
Инфо о координатах текстового курсора дисплея в правый верхний угол экрана05.03.2012, 17:01. Показов 6544. Ответов 23
Метки нет (Все метки)
0
|
05.03.2012, 17:01 | |
Ответы с готовыми решениями:
23
Дрожит правый верхний угол экрана Ввод строки и запись ее в правый верхний угол экрана Изобразить шарик двигающийся из левого верхнего угла экрана в правый верхний угол Заполнить нулями верхний правый угол матрицы |
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
06.03.2012, 04:18 | 2 |
keetotko, отвечаю на вопрос - вопросом: "В чем?" В DOS'e? В OS/2'e? В Windows'e? В Linux'e? Везде по разному, и собственно, чтобы было о чем говорить предметно: где твои наработки?
0
|
11 / 11 / 2
Регистрация: 12.02.2011
Сообщений: 88
|
|
06.03.2012, 10:44 [ТС] | 3 |
Mikl___, каюсь.
Вот информация. В DOS. Наработок нет. Я думал функцию 08h прерывания 21h использовать для ожидания ввода символа. И при нажатии клавиши перенаправлять программу в то место, где и будет реализовываться вывод обновленных координат курсора. Я хз как в верхний правый угол вывести. И какая функция получает координаты.
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
06.03.2012, 11:10 | 4 |
keetotko, вот наводки, ищи, читай,
1) всё связанное с мышью в ДОСе идет через 33h прерывание, 2) функция 08h прерывания 21h вообще не при делах, для выхода из программы используй 0 функцию 16h прерывания, 3) для вывода координат в правый верхний угол экрана -- используй прямой вывод в видеопамять
0
|
11 / 11 / 2
Регистрация: 12.02.2011
Сообщений: 88
|
|
06.03.2012, 11:27 [ТС] | 5 |
Mikl___, при чем тут мышь? имеются в виду координаты текстового курсора консоли.
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
06.03.2012, 11:34 | 6 |
keetotko, а как его перемещать? Стрелками? Enter'oм? Дел и Бэкспейсами?
0
|
11 / 11 / 2
Регистрация: 12.02.2011
Сообщений: 88
|
|
06.03.2012, 11:41 [ТС] | 7 |
Mikl___, именно так. Для этого я в сторону 08h и смотрел.
0
|
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
|
|
06.03.2012, 11:56 | 8 |
Писать TSR. Перехватывать int 10h/ah=02, координаты выводить директом в видеопамять. Для неумаления общности придётся пользовать BIOS data:
MEM 0040h:004Ah - VIDEO - COLUMNS ON SCREEN Size: WORD MEM 0040h:004Eh - VIDEO - CURRENT PAGE START ADDRESS IN REGEN BUFFER Size: WORD MEM 0040h:0050h - VIDEO - CURSOR POSITIONS Size: 8 WORDs Desc: contains row and column position for the cursors on each of eight video pages MEM 0040h:0062h - VIDEO - CURRENT PAGE NUMBER Size: BYTE
0
|
238 / 235 / 43
Регистрация: 16.03.2011
Сообщений: 750
|
||||||
06.03.2012, 12:01 | 9 | |||||
Если я правильно понял и нужны положение курсора в консоли:
input: BH = page number. return: DH = row. DL = column. CH = cursor start line. CL = cursor bottom line.
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
||||||||||||||||||||||||||||||||
06.03.2012, 14:00 | 10 | |||||||||||||||||||||||||||||||
Проще нужно быть: есть 2 функция 10h прерывания
Представь экран в виде двумерного пространства с адресуемыми позициями, в любую из которых может быть установлен курсор. Обычный текстовый видережим (=3), имеет 25 строк (нумеруемых от 0 до 24) и 80 столбцов (нумеруемых от 0 до 79). Нажатие на клавиши обрабатываешь через 0 функцию 16h прерывания
а зная значения столбца и строки не сложно будет их выводить
0
|
11 / 11 / 2
Регистрация: 12.02.2011
Сообщений: 88
|
|
07.03.2012, 04:33 [ТС] | 11 |
Mikl___, каюсь еще раз. ввод с клавиатуры средствами DOS
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
07.03.2012, 06:01 | 12 |
keetotko, через DOS, так через DOS -- читай описание функций (1, 6, 7, 8), найди подходящую, чтобы можно было обрабатывать коды стрелок, или используй пару функций, посоветуйся с преподавателем, вообщем, смысл ясен?
0
|
11 / 11 / 2
Регистрация: 12.02.2011
Сообщений: 88
|
||||||
07.03.2012, 13:30 [ТС] | 13 | |||||
Mikl___, в общем, так. Я решил сделать с мышью, уговорил препода. Написал следующее
0
|
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
|
|
07.03.2012, 13:53 | 14 |
1
|
11 / 11 / 2
Регистрация: 12.02.2011
Сообщений: 88
|
||||||
07.03.2012, 17:19 [ТС] | 15 | |||||
Почти готово. На данный момент проблема в следующем участке кода
В памяти последовательно идут переменные x, divider и y. Где x - 3 знака координата x, divider - двоеточие, y - 3 знака координата y. Итого 7 знаков. Можно сделать так, чтобы в цикле в al последовательно клались символы с начала переменной x?
0
|
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
|
||||||
07.03.2012, 17:56 | 16 | |||||
1
|
11 / 11 / 2
Регистрация: 12.02.2011
Сообщений: 88
|
||||||
07.03.2012, 20:09 [ТС] | 17 | |||||
Charles Kludge, все работает, спасибо. Только числа до 10 выводятся нормально. А после 10 начинается ерунда. Посмотрите сами.
0
|
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
|
||||||
07.03.2012, 22:29 | 18 | |||||
keetotko, вот рабочая процедура.
0
|
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
|
||||||
07.03.2012, 23:53 | 19 | |||||
keetotko, вобщем, вотЪ:
1
|
11 / 11 / 2
Регистрация: 12.02.2011
Сообщений: 88
|
||||||
08.03.2012, 01:38 [ТС] | 20 | |||||
Charles Kludge, спасибо. А для чего нужен следующий код?
Эээ, и я что-то не понял, в каком месте происходит определение координат курсора.
0
|
08.03.2012, 01:38 | |
08.03.2012, 01:38 | |
Помогаю со студенческими работами здесь
20
Как переместить кнопки управления окном в правый верхний угол? Как поставить форму авторизации на верхний правый угол, используя стили Движение по шахматной доске коня (с левого нижнего угла в верхний правый угол) Найти в матрице самый большой элемент и перенести его в верхний правый угол Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |