Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2011, 22:30   #1
Акоб
Форумчанин
 
Регистрация: 10.01.2011
Сообщений: 243
По умолчанию asm вставка

Код:
uses crt;
type tpoint = record x, y : integer end;
var x, y:integer;  a:tpoint;
begin
a.x := 0;
a.y := 0;
asm
mov ax, 4
mov cx, a.x
mov dx, a.y
int 33h
end;
end.
Здравствуйте форумчане. компилятор ошибок не дает, но код не работает.Курсор должен был исчезнуть, но этого не происходит.В чем проблема?

Последний раз редактировалось Акоб; 01.11.2011 в 22:33.
Акоб вне форума Ответить с цитированием
Старый 02.11.2011, 06:36   #2
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Под чем ты запускаешь? Windows or DOS?
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 02.11.2011, 09:21   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от TinMan
Под чем ты запускаешь? Windows or DOS?
TinMan, +1

Согласен. Коллега зрит в корень проблемы. DOS Программы, которые выполняются в окошке Windows - ввод/вывод берёт на себя ОС Windows (это касается и шрифтов, и цветов, и отображения курсора).

Акоб
Если Вам нужно реально управлять курсором, то варианты решения:
1) воспользовать реальным DOS режимом. Загрузить машинку в DOS и выполнять свой код.
2) или поставить программку DosBox
3) или использовать любую виртуальную машинку, там установить DOS и гонять свою программку.

я бы начал с DosBox...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.11.2011, 22:06   #4
Акоб
Форумчанин
 
Регистрация: 10.01.2011
Сообщений: 243
По умолчанию

Спасибо конечно, но неужели нельзя это реализовать под windows?
Я запускаю программу под windows.
Акоб вне форума Ответить с цитированием
Старый 05.11.2011, 23:02   #5
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Нет, нельзя. Turbo Pascal создает программные файлы для операционной системы DOS. Windows - это другая операционная система, отличная от DOS, ровно так же, как, скажем Linux - это не Windows. Но, операционная система Windows позволяет запускать некоторые приложения, написанные для операционной системы DOS в режиме эмуляции. При этом не гарантируется абсолютно ничего - запуститься и будет работать как надо; запуститься и будет работать как не надо, или же не запуститься насовсем - это все неведомо.

Но, могу сказать точно что 33h прерывание NTVDM эмулит и на Win XP, и на Win 7, а то, что курсор не исчезает - это нормально. Хотите, чтобы мышка в винде пропала - юзайте компиляторы под винду и используйте WinApi, а не прерывания DOS. А так, установите DOS на компьютер, драйвер мыши пропишите в autoexec.bat и получите желаемое.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 06.11.2011, 00:46   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но код не работает.
Еще как работает:
Код:
uses crt;
type tpoint = record x, y : integer end;
var x, y:integer;  a:tpoint;
begin
a.x := 0;
a.y := 0;
asm
mov ax, 4
mov cx, a.x
mov dx, a.y
int 33h
mov ax,1
int 33h
end;
readln;
end.
Цитата:
Курсор должен был исчезнуть
Кто сказал? Где вызов функции скрытия курсора?
И во-вторых: это проверять нужно распахнув ДОС окно на весь экран а не в консольном виде. И никакие виртаульные ДосБоксы не обязательны.
Цитата:
Нет, нельзя.
Нет можно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
asm dosha Фриланс 2 04.03.2011 01:59
Asm в С++ ge4r Помощь студентам 0 17.10.2010 17:26
Рисование в ASM SwiP Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 20.12.2009 22:45
с++ и ASM breate Общие вопросы C/C++ 4 04.11.2009 20:56
[c++]asm Nightwalker Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 14.10.2008 19:39