| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > не уходит курсор в конец экрана |
| Автор: GQU 14.1.2015, 14:47 |
| Программа выводит рожицы то на нулевую страницу, то на первую Я хочу чтобы положение курсора на первой и второй страницах были разные Для этого есть 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] |
| Автор: ФедосеевПавел 14.1.2015, 17:46 |
| Формально всё правильно. Может быть ошибки эмулятора DOS. Если так уж надо - попробуй загрузиться в чистом DOS и там посмотреть. |
| Автор: GQU 14.1.2015, 20:01 | ||
у меня есть в virtualPC DOS, а как туда файлы то закинуть не подскажите? |
| Автор: ФедосеевПавел 14.1.2015, 20:30 |
| Когда-то у меня был VirtualBox с FreeDOS. Там я делал обмен через виртуальную дискету - драйвер виртуальной дискеты в Windows (он работал с образом - файлом на диске), а виртуальная машина, думая, что это диск A:, могла подключиться. В VirtualBox для меня были проблемы - странно работали курсорные клавиши. Сейчас не могу найти название и ссылку на официально бесплатный драйвер виртуальной дискеты, который я запускал на Win7x64 (тот, который работает с WinXP находится легко и мне он нравился больше, но под Win7x64 - увы). На хабрахабре мне попадалась статья о передаче PC->VM через клавиатурные драйвера, но это изврат. |
| Автор: Dremuk 15.1.2015, 11:02 |
| Там можно подключить общую папку. В окне запущенной ОС внизу есть желтый значок папки. Правой кнонкой на нем и добавьт общую папку, расположенную на основной ОС. Ей присвоится буква дополнительного диска, который появится в списвке дисков (C, D, ...) Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/ne-ukhodit-kursor-v-konets-ekrana-id54b65773ae2015b5578b4567#findElement_E7045_54b773faae20158266404ff1_0 |
| Автор: ФедосеевПавел 15.1.2015, 17:19 |
| В VirtualBox общие папки доступны для любой ОС, но только не для DOS. В DOS можно настроить сеть и по сети работать с внешним миром, но тут я некомпетентен. Для разового выполнения лабораторных работ, полагаю, подойдёт и виртуальный флопик. Если у топикстартера есть время и желание - яндекс в помощь. |