В режиме 1h, пишу в 1 станицу переключаюсь на неё, затем пишу в нулевую страницу переключаюсь на неё все работает норм ..., кроме одного при переключении на 1 страницу не правильно работает gotoxy(), из библиотеки conio.h. В чем может быть причина ???
Andrei, использовать push/pop не пробовал? Работа идет в DOSBox или на "чистом" DOS, или под WindowsXP?
Да вроде все в стек сохраняю, win7 или DOSbox ... Код (Text): void PutChar () { int sm=((((y-1)*40)+x)*2)-2; asm { // mov ax,1 // int 10h // // mov al,40 // mov ah,25 mov dl,symbol mov dh,attribute mov cl,pn // mov ch,ah // mul ch // shl ax,1 // shl ax,1 // sub ax,2 // push di push di mov di,sm push dx mov ax,2048 xor ch,ch mul cx pop dx add di,ax // ret push es // push di mov ax,0B800h mov es,ax // pop es // jmp CharAddr // mov di,2100; mov es:[di],dx pop di pop es // ret } return ; // CharAddr: // asm { // } }
Все равно не помогает, в нулевой gotoxy() правильно координаты выставляет, а в первой все пишет по адресу (1,1)++ То есть, первый пишет (1,1) второй на смещение от первого, ... в независимости от того что указано в GOTOXY(), т.е. GOTOXY() на 1 странице вообще в принципе не работает ...