Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Модуль CRT, функция WINDOW 
:(
    Опции темы
Lonley
Дата 22.9.2005, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



ПРИВЕТ!!!
---------------------
Мне нужно заглянуть в модуль CRT и посмотреть функцию WINDOW!!!
может кто знает как это функция работает, я посмотрел чере TurboDeb не совсем все понятно
--------------------


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
kent
Дата 22.9.2005, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 6.5.2005
Где: Russia

Репутация: нет
Всего: 1



Вот так она выглядит в Crt.asm... smile

Код

; Define output window

Window:

        MOV     BX,SP
        MOV     DL,SS:[BX+10]
        MOV     DH,SS:[BX+8]
        MOV     CL,SS:[BX+6]
        MOV     CH,SS:[BX+4]
        CMP     DL,CL
        JA      @@1
        CMP     DH,CH
        JA      @@1
        DEC     DL
        JS      @@1
        DEC     DH
        JS      @@1
        DEC     CL
        CMP     CL,CurCrtSize.X
        JA      @@1
        DEC     CH
        CMP     CH,CurCrtSize.Y
        JA      @@1
        MOV     WindMin,DX
        MOV     WindMax,CX
        CALL    SetCursor
@@1:    RETF    8


Это сообщение отредактировал(а) kent - 22.9.2005, 10:28
PM MAIL ICQ   Вверх
Lonley
Дата 23.9.2005, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



kent
спасибо, а где взял


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
kent
Дата 23.9.2005, 06:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 6.5.2005
Где: Russia

Репутация: нет
Всего: 1



Цитата(Lonley @ 23.9.2005, 01:39)
kent
спасибо, а где взял

Искал его когда надо было глюк Delay убрать, нашёл в инете где точно уже не помню, могу весь модуль скинуть если надо...
PM MAIL ICQ   Вверх
Lonley
Дата 24.9.2005, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



kent
Буду весьма признателен
[email protected]


к стати, а что за значения они пересылают

Код

        MOV     DL,SS:[BX+10]    
        MOV     DH,SS:[BX+8]    
        MOV     CL,SS:[BX+6]    
        MOV     CH,SS:[BX+4]



Это сообщение отредактировал(а) Lonley - 24.9.2005, 00:20


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
Александра
Дата 24.9.2005, 05:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.2.2005
Где: Москва

Репутация: нет
Всего: 12



Lonley
Координаты. далее идет сравнение, если лево больше право, к примеру - то выход. ну и т.д.
Добавлено @ 05:18
...через стек, поэтому регистр SS
--------------------
PM   Вверх
Lonley
Дата 24.9.2005, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



а так значит... он просто через позиционирование курсора окно это ставит...
тогда понятно... это можно самому написать...
Александра я правильно понял


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
Lonley
Дата 25.9.2005, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



Код

Window:

        MOV     BX,SP
        MOV     DL,SS:[BX+10]      {x}
        MOV     DH,SS:[BX+8]       {y}
        MOV     CL,SS:[BX+6]       {x1}
        MOV     CH,SS:[BX+4]       {y1}
        CMP     DL,CL
        JA      @@1               {x > x1}
        CMP     DH,CH
        JA      @@1               {y > y1}
        DEC     DL                {проверка на ноль X отнимаем 1 из DL}
        JS      @@1               {переход если sf = 1 т.е. получилось отриц число}
        DEC     DH                {проверка на ноль Y}
        JS      @@1               {переход если sf = 1 т.е. получилось отриц число}
        DEC     CL                {отнимаеи 1 из CL x1}
        CMP     CL,CurCrtSize.X   {сравниваем не больше ли x1 CurCrtSize.X за экран}
        JA      @@1               {прыжок если больше}
        DEC     CH                {y1 - 1}
        CMP     CH,CurCrtSize.Y   {сравниваем не больше ли x1 CurCrtSize.X}
        JA      @@1               {прыжок если больше}
        MOV     WindMin,DX        {x,y}
        MOV     WindMax,CX        {x1,y1}
        CALL    SetCursor         {установка курсора с координатами x y}
@@1:    RETF    8                 {выход из процедуры дальней... с очисткой стека 8 байт}


вот что Я вычитал... коментарии мои т.е. процедура проверила усианавливаемые координаты окна
поставила курсор в начало окна и ушла, но хоть убей не понятно как она ограничивает текст
как она заставляет текст находиться в пределах заданных координат



--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
Lonley
Дата 25.9.2005, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



а все понял разобрался...
я думаю что функции вывода текста WRITE и т.д. выводят текст относительно от
координат окна...

Код

        MOV     WindMin,DX        {x,y}
        MOV     WindMax,CX        {x1,y1}

т.е. они проверяют не выходит ли выводимый текст за их границы наверно так...
вот запуситл этот код и все стало на свои места

Код

Uses Crt;

BEGIN
      asm
        mov ax,0
        int 16h
      end;
     Window(1,1,10,5);
      asm
        mov ax,0
        int 16h

        mov ah,9
        mov al,65
        xor bh,bh
        mov bl,00001111b
        mov cx,75
        int 10h
      end;
      write ('HELLO HELLO HELLO HELLO HELLO HELLO HELLO HELLO HELLO HELLO HELLO ');
       asm
        mov ax,0
        int 16h
      end;

END.



--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0523 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.