Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
41 / 4 / 4
Регистрация: 20.05.2013
Сообщений: 67

Синтаксис Absolute

10.12.2015, 00:16. Показов 3097. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Небольшая графическая программка, паскаль ругается на абсолют, пробовал сделать через тип, не помогло, подскажите как будет синтаксически правильно указать адреса.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
uses graph,crt;
var
    a: array [0..15999] of byte absolute $B800:0000;
    x, x1, x2, y1, y2, d, i, j,y:integer;
    dva_bitika,col:integer;
 
procedure PutPixel(x,y,color:integer);
    var nb,ost:integer;
    begin
    { Nomer baita}
        nb:=$0000;
    { Esli stroka ne chetnaya }
        if (odd(y)) then nb:=nb+$2000; { Если строка нечетная, то + $2000}
    { nomer bayta }
        y:=y div 2;
        nb:=nb+80*y+(x div 4);
    { Ishem poziciu bitov }
        ost:=x mod 4;
        dva_bitika:= color shl (6-ost*2);
    { ochistka dvuh bitov }
        case ost of
            0: a[nb]:=a[nb] and $3F; { 0011 1111 }
            1: a[nb]:=a[nb] and $CF; { 1100 1111 }
            2: a[nb]:=a[nb] and $F3; { 1111 0011 }
            3: a[nb]:=a[nb] and $FC; { 1111 1100 }
        end;
        a[nb]:=a[nb] or dva_bitika;
    end;
begin
    writeln('Vvedite cvet:1,2,3');
    readln(col);
    writeln('Vvedi koordinatu nachalnoi tochki: X1,Y1');
    readln(x1, y1);
  writeln('Vvedi koordinatu konechnoi tochki: X1,Y1');
  readln(x2, y2);
{ Ustanovit video regim 320x200 tochek. Chetire cveta.}
    asm
        mov ah,0
        mov al,4
        int 10h
    end;
    for i:=x1 to x2 do
  for j:=y1 to y2 do
        PutPixel(i,j,col);
    readln;
end.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.12.2015, 00:16
Ответы с готовыми решениями:

Используя директиву absolute, создать построчно две матрицы
Используя директиву absolute, создать построчно с помощью подпрограммы матрицы 5х5 и 2х3. помогите пожалуйста

Absolute Software (Absolute Reminder) - что это за программа и для чего она?
Absolute Software (Absolute Reminder) - что это и для чего? У меня лицензионный Виндовс 8, обновлённый до 8.1. Эту прогу не устанавливал,...

Как перевести синтаксис макроса VBA (Excel) в синтаксис Visual FoxPro
Здравствуйте! Скажите пожалуйста, как перевести синтаксис записанного макроса в excel в синтаксис FoxPro? Нужно, чтобы из FoxPro...

6
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8652 / 4487 / 1669
Регистрация: 01.02.2015
Сообщений: 13,895
Записей в блоге: 12
10.12.2015, 00:42
Удалите этот бред. И почитайте в справке, как организуется графический режим в вашем конкретном компиляторе PascalABC. Например, Нарисовать кораблик (pascal abc). А также, в той теме в самом низу есть раздел "Похожие темы".
0
41 / 4 / 4
Регистрация: 20.05.2013
Сообщений: 67
10.12.2015, 00:46  [ТС]
Удалите этот бред.
Стесняюсь спросить в каком месте собственно бред?? вам не нравится что я напрямую обращаюсь к видеопамяти?
Может быть просто у меня задание такое?
И я задал конкретный вопрос по поводу Директивы Absolute! то есть строка 3 !
Я посмотрел синтексис, но паскаль всеравно не принял!
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8652 / 4487 / 1669
Регистрация: 01.02.2015
Сообщений: 13,895
Записей в блоге: 12
10.12.2015, 01:00
Лучший ответ Сообщение было отмечено funduk17 как решение

Решение

Pascal ABC это Windows программа и результат её работы (ваша программа) тоже Windows. А под Windows нельзя напрямую обращаться к системной памяти.

Прерывание int 10h это тоже не от Windows.

Видеопамять $B800:$0000 это тоже не от Windows, и даже в DOS это алфавитно-текстовый режим, а не графика. Графика по $A000.

Всё.
1
41 / 4 / 4
Регистрация: 20.05.2013
Сообщений: 67
10.12.2015, 01:10  [ТС]
То есть если мне перенести её на Турбо паскаль, то должна работать, верно?

Добавлено через 8 минут
Понял свою глупую ошибку, на турбо всё заработало! Большое спасибо!
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8652 / 4487 / 1669
Регистрация: 01.02.2015
Сообщений: 13,895
Записей в блоге: 12
10.12.2015, 01:16
Вряд ли. Повторюсь, даже в DOS В800 - это для текстового режима. А для графического 04, адрес начала памяти нужно смотреть по справочнику.

Вы определитесь
1. с компилятором
2. с библиотекой - модуль graph или API Windows (или DOS/BIOS)

А пока, код - сборище артефактов.

Добавлено через 1 минуту
Ну, значит и я ошибся с адресом графической памяти...

Добавлено через 2 минуты
И работоспособностью кода тоже.
0
41 / 4 / 4
Регистрация: 20.05.2013
Сообщений: 67
10.12.2015, 01:19  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Ну, значит и я ошибся с адресом графической памяти...
методичка по нужному коду на ассемблере у меня была, так что тут проблем возникнуть и не должно было, я просто не подумал что ABC уже виндовс программа, запустил на виртуалке в турбо, поругалось на модуль граф, но в итоге заработало!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2015, 01:19
Помогаю со студенческими работами здесь

Как перевести синтаксис Intel в синтаксис AT&T? (ассемблерная вставка в СИ)
Извиняюсь, что, возможно, пишу не в ту тему. Нужен именно AT&T синтаксит. В качестве примера для курсовой я разбираю перемножение...

Синтаксис запросов vs. синтаксис методов
Занимаюсь изучением LINQ'a, и возник вопрос, как переписать следующий запрос IEnumerable<int> numbers = Enumerable.Range(3,...

ie 7 и absolute
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" type="text/html" charset="utf-8" /> <link rel="stylesheet"...

IE 8 и position: absolute
Не работает это свойство на ie8 ,перепробовал уже все методы из гугла, и с доктайпами и с джаваскриптами ничего не помагает

Position: Absolute.
Всем привет! У меня вопрос: можно ли каким-либо образом при изменении размеров окна броузера заставить текст находящийся сверху...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru