Mlix, Вариант с выходом в DOS после прохождения указанного времениКод | .model tiny .286 .code org 100h start: MOV AH,0Fh ;запомнить видеорежим -- видеорежим может быть не обязательно равным 3 INT 10h MOV byte ptr VIDEOR,AL; запоминаем видеорежим чтобы потом его востановить mov ax,0A000h mov ES,ax MOV AX,13h INT 10h cld MOV BX,2 ; инициализируем индекс фаз рисунка MOV DI,320*12 mov cx,200; время на экране -- ставь любое число MOVE_MASK: push cx MOV SI,tab[bx] SHOW_KADR: MOV CX,13; количество строк в рисунке DRAW_H: push cx MOV CX,10 ; количество точек в строке делим на 2 REP MOVSW; выводим сразу по 2 точки ADD DI,320-20; переходим на следующую строку pop cx loop DRAW_H xor bx,2; переключаем идекс фазы рисунка sub di,320*13-1; 1 - плавность перемещения по экрану чем больше число - тем быстрее push bx mov ah,0 ;Получить системное время int 1Ah ; Return: CX:DX=число тиков от полуночи mov bx,dx ;1 секунда=18.2 тика delay: int 1Ah ;пропускаем 55 милисекунды cmp bx,dx jz delay pop bx pop cx loop MOVE_MASK exit: MOV AX,VIDEOR; восстанавливаем первоначальный режим INT 10h INT 20h; выход в DOS H1 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,9,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,9,9,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,9,9,0,9,9,0,9,9,0 DB 0,0,0,0,0,0,0,0,0,0,9,9,0,0,9,9,0,0,9,9 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,9,9,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,9,9,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,9,9,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,9,9,0,0 H2 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,9,9,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,9,9,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,9,0,9,9,9,9,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,9,0,9,9,9,9,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,9,9,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,9,9,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,0,9,9,0 DB 0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,9,9 tab dw H1,H2; адреса фаз рисунков VIDEOR dw 0 end start |
|