На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Название темы должно быть информативным !
Прежде чем задать вопрос, воспользуйтесь Поиском. и проверьте в FAQ (ЧАВО) Паскаля
Чтобы получить вразумительный ответ, подробно опишите проблему: что надо сделать, что не получается и номер ошибки (если есть), которую выводит компилятор.
Для вставки кода ваших программ используйте, пожалуйста, кнопку СODE=pas или выпадающий список СODE для других языков (подсветка синтаксиса).
[!] Как правильно задавать вопросы | Руководство по языку B.Pascal 7 & Objects/LR | Borland Pascal. Руководство пользователя
Модераторы: volvo877
  
> Челы, нужна помощь...
    Реализовать библиотеку (модуль) содержащий в качестве импортируемых компонентов объектные типы, характеризуемые устройства видеоадаптер.
    I. Объектный тип, характеризующий устройство видеоадаптер должен обеспечивать:
    1. Установку текущего видео режима как текстового, так и графического (несколько режимов).
    2. Определение максимального разрешения по вертикали и горизонтали (две функции).
    3. Изменение содержимого экрана без изменения атрибута цвета (в текстовом режиме).
    4. Изменение атрибута цвета в заданном участке экрана (в текстовом режиме).
    5. Загрузка текстового фонта.
    6. Прокрутка заданной области экрана на заданное число строк.
    7. Управление назначение старшего бита в атрибуте цвета.
    Уже есть код, но я заглох  ???, незнаю как дальше. Нужно писать со вставками на асме...
    Помогите, плиз...
    Ссылка на исходник: http://www.naphy.narod.ru/video.rar
      Практически всё что ты здесь описал
      можно сделать через 10H  прерывание.
      Всё что тебе надо - иметь под рукой
      справочник по прерываниям видеосервиса,
      если у тебя его нет то скачай хотябы этот
      http://pascal.sources.ru/incoming/bios.zip
      А асм знать необязательно.
      А зачем тут нужна объектность???
        Цитата Mixxx, 06.07.03, 15:56:49
        Практически всё что ты здесь описал
        можно сделать через 10H  прерывание.
        Всё что тебе надо - иметь под рукой
        справочник по прерываниям видеосервиса,
        если у тебя его нет то скачай хотябы этот
        http://pascal.sources.ru/incoming/bios.zip
        А асм знать необязательно.
        А зачем тут нужна объектность???


        А зачем "практически всё"  через INT10h ?
        Что, камень слишком быстрый ?
          Не вопрос:
          unit Consoles
          interface
          uses Dos;
          type
          tSymbol=record Sym: char; Attr: byte end;
          tString=array[0..79]of tSymbol;
          tPage=array[0..25]of tString;
          tScreen=array[0..7]of tPage;

          tConsole=object
          constructor Init;
          destructor Done;
          ......
          end;

          var Screen: tScreen absolute B800:0000
               Console: tConsole;

          implementation
          end.
          И описывай, хоть скролл, хоть через прерывания, хоть напрямую с памятью работай... А если ты собрался переключать текстовые режимы (отличающиеся количеством строк и столбцов), советую сделать несколько объектов tScreen... или хотя бы по одному для каждого видеорежима. А вот для графики надо бы добавить кое-что ещё... но тогда проще использовать отдельный модуль и использовать его... ;D
            Кстати, советую почитать Нортона, Абеля и Джордейна....
            Питер Абель "Язык ассемблера для IBM PC и программирования"
            Джоржейн "IBM PC, XT & AT. Руководство по программированию"
            Питер Нортон, Ричард Уилтон... короче найдёшь, я название не помню, но там подробно все видеорежимы до VGA включительно ;D

            P.S. from vot: http://pascal.sources.ru/docs/
            Сообщение отредактировано: vot -
              Цитата Сахаров Сергей, 20.08.03, 06:30:46
              Не вопрос:
              unit Consoles
              interface
              uses Dos;
              type
              tSymbol=record Sym: char; Attr: byte end;
              tString=array[0..79]of tSymbol;
              tPage=array[0..25]of tString;
              tScreen=array[0..7]of tPage;

              tConsole=object
              constructor Init;
              destructor Done;
              ......
              end;

              var Screen: tScreen absolute B800:0000
                   Console: tConsole;

              implementation
              end.
              А если ты собрался переключать текстовые режимы (отличающиеся количеством строк и столбцов), советую сделать несколько объектов tScreen... или хотя бы по одному для каждого видеорежима. А вот для графики надо бы добавить кое-что ещё... но тогда проще использовать отдельный модуль и использовать его... ;D


              Гм. Это всё очень мило, но в графических режимах памяти может быть больше 64К, то есть "вкусные" фокусы с массивом по такому-то адресу не проходят.
              А тема обши-и-ирная... ModeX, SVGA и т.д.
              Вот пара интересных линков (правда, Си):
              http://prdownloads.sourceforge.net/aa-project/text.zip
              http://prdownloads.sourceforge.net/aa-project/vga.zip

              А вообще -- написано уже СТОЛЬКО этого дела... И прежде чем изобретать велосипед, может быть, имеет смысл посмотреть на Allegro (или примеры из SWAG, если уж так хочется писать на Паскале)?
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0232 ]   [ 15 queries used ]   [ Generated: 12.02.25, 11:25 GMT ]