Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не уходит курсор в конец экрана 
:(
    Опции темы
GQU
Дата 14.1.2015, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Программа выводит рожицы то на нулевую страницу, то на первую
Я хочу чтобы положение курсора на первой и второй страницах были разные
Для этого есть 2 процедуры: cursor_page1    proc и cursor_page0    proc
Но почему то cursor_page0 работает неправильно, точнее курсор в конец экрана не уходит, хотя cursor_page1 нормально работает! 
Почему?

[ASM]
CSEG segment
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
org 100h
Start:

call    set_video

mov    cx,999999999
next:
call    set_page_0
call    cursor_page0
call    rogica_0

call    set_page_1
call    cursor_page1
call    rogica_1

loop    next


int    20h

;установка текстового видеорежима 80 на 25 и чистим экран
set_video    proc
push    cx
mov    ah,0
mov    al,3
int    10h
pop    cx
ret
set_video    endp


;Установка видеостраницы
set_page_0    proc
push    cx
mov    ah,5
mov    al,0
int    10h
pop    cx
ret
set_page_0    endp

set_page_1    proc
push    cx
mov    ah,5
mov    al,1
int    10h
pop    cx
ret
set_page_1    endp

;вывод рожицы
rogica_0    proc
push    cx
mov    ax,0b800h
mov    es,ax
mov    di,0
mov    ah,31
mov    al,1

mov    cx,10
Next_face:
mov    es:[di],ax
add    di,2
loop    Next_face
pop    cx
ret
rogica_0    endp

;вывод рожицы
rogica_1    proc
push    cx
mov    ax,0b800h
mov    es,ax
mov    di,4096
mov    ah,31
mov    al,1

mov    cx,50
Next_face:
mov    es:[di],ax
add    di,2
loop    Next_face
pop    cx
ret
rogica_1    endp

;Установка положения курсора
cursor_page0    proc
mov    ah,02h
mov    bh,0
mov    dh,24d
mov    dl,79d
int    10h    
ret
cursor_page0    endp

;Установка положения курсора
cursor_page1    proc
mov    ah,02h
mov    bh,1
mov    dh,1d
mov    dl,0d
int    10h
ret
cursor_page1    endp


CSEG ends
end Start[/ASM]

Это сообщение отредактировал(а) GQU - 14.1.2015, 14:49
PM MAIL   Вверх
ФедосеевПавел
Дата 14.1.2015, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Формально всё правильно. Может быть ошибки эмулятора DOS.
Если так уж надо - попробуй загрузиться в чистом DOS и там посмотреть.
PM   Вверх
GQU
Дата 14.1.2015, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Если так уж надо - попробуй загрузиться в чистом DOS и там посмотреть. 

у меня есть в virtualPC DOS, а как туда файлы то закинуть не подскажите?
PM MAIL   Вверх
ФедосеевПавел
Дата 14.1.2015, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Когда-то у меня был VirtualBox с FreeDOS. Там я делал обмен через виртуальную дискету - драйвер виртуальной дискеты в Windows (он работал с образом - файлом на диске), а виртуальная машина, думая, что это диск A:, могла подключиться. В VirtualBox для меня были проблемы - странно работали курсорные клавиши.
Сейчас не могу найти название и ссылку на официально бесплатный драйвер виртуальной дискеты, который я запускал на Win7x64 (тот, который работает с WinXP находится легко и мне он нравился больше, но под Win7x64 - увы).
На хабрахабре мне попадалась статья о передаче PC->VM через клавиатурные драйвера, но это изврат.
PM   Вверх
Dremuk
Дата 15.1.2015, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Там можно подключить общую папку. В окне запущенной ОС внизу есть желтый значок папки. Правой кнонкой на нем и добавьт общую папку, расположенную на основной ОС.
Ей присвоится буква дополнительного диска, который появится в списвке дисков (C, D, ...)

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
ФедосеевПавел
Дата 15.1.2015, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В VirtualBox общие папки доступны для любой ОС, но только не для DOS.
В DOS можно настроить сеть и по сети работать с внешним миром, но тут я некомпетентен.
Для разового выполнения лабораторных работ, полагаю, подойдёт и виртуальный флопик. Если у топикстартера есть время и желание - яндекс в помощь.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

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


 




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


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

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