Проблема доступа к регистрам устройств
У меня возникла некая проблема, помогите пожалуйста её решить. Начну с того что в этой области знаний я ПОЛНЕЙШИЙ новичок. И пробуя проверить работу ниже изложеной програмы у меня возникли проблемы: компилируя ЭТО
#include<dos.h>
int main(void)
{
int i;
unsigned int far *screen;
screen=(unsigned int *) MK_FP (0xb800, 0);
for(i=0;i<26;i++)
screen=0x0F00 + ('a'+ i);
return 0;
}
компилятор выдаёт такие сообщения об ошибках:
syntax error before `*'
`screen' undeclared (first use in this function)
(Each undeclared identifier is reported only once
for each function it appears in.)
компилятор которым я пользуюсь-Bloodshed Dev-C++,
ОС-Windows_XP_pro_SP_1
Зарание всем спасибо:o
и вообще не в ту тему .
Цитата: koderAlex
и причём здесь регистры ?
и вообще не в ту тему .
и вообще не в ту тему .
Я конечно понимаю, что в этих дилах я не спец. Но всё таки: я показал пример старой DOS программы, выполняющей вывод алфавита на экран в текстовом режиме, построен как раз на том, что видимая область первой текстовой страницы DOS экрана "совмещалась" с оперативной памятью и начиналась с адреса B800:0000 ( адрес регистра I/O устройства (МОНИТОР). В програме этот адрес показан как 0xB800. ВОТ такие у меня доводы ;)
З.ЫЖ
Лучше бы помог, чем говорить, что здесь что-то не втему. Извиняюсь если оскорбил;)
По существу убери из исходного кода слово "far" и/или возьми другой компилятор.
Помогите пожалуйста, хотябы прокомментируйте!!!:((((
З.ЫЖ
Посоветуйте подходящий компилятор
Я посоветовал взять другой компилятор Си потому, что твой не очень сильно распространен. И понять как исправить я не могу.
Я бы взял бы Борланд С++. Потому что там макрос MK_FP определен в файле DOS.h
борланд 3 прекрасно подходит .
Спасибо всем:)))) А подскажите где скачать этот компилятор можна?
ЗЫ ж
Помогите где-то скачать библиотеку под названиям <graph.h> не <graphics.h> , а именно <graph.h>!!
где прогу запускал ? в чистом досе ?
Цитата: koderAlex
где прогу запускал ? в чистом досе ?
Кстати, да. Текстовый режим DOS и консоль Windows - это две большие разницы. В DOS'е можешь юзать прямой доступ к видеопамяти, а при работе с консолью применяются функции WinAPI.