Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .model tiny
- .code
- org 100h
- locals
- @main:
- jmp @start
- save_mode db ? ; Сохранить текущий видео режим
- cell_size db 10
- video_page dd 0a0000h
- change_video_mode proc
- push bp
- mov bp, sp
- push ax
- ; Схраняем текущий видео режим
- mov ah,0Fh
- int 10h
- mov save_mode,al
- ; ; Переключиться в графический режим
- mov ah,0 ; установка видео режима
- mov al, 10h ; 640 X 350, 16 colors
- int 10h
- pop ax bp
- ret
- change_video_mode endp
- return_video_mode proc
- push bp
- mov bp, sp
- push ax
- mov ah,0
- mov al, save_mode
- int 10h
- pop ax bp
- ret
- return_video_mode endp
- print_point proc
- ;x, y, color
- push bp
- mov bp, sp
- push ax cx di dx es
- mov ax,0A000h
- mov es,ax
- mov ax, [bp + 6] ; up
- mov cx, 320
- mul cx
- add ax, [bp + 8] ; left
- mov di, ax
- mov ax, [bp + 4] ; color
- mov cx, 10
- @1:
- mov [di], ax
- dec cx
- cmp cx, 0
- jne @1
- ; stosb
- ; rep stosb
- pop es dx di cx ax bp
- ret 6
- print_point endp
- print_cell proc
- print_cell endp
- @start:
- call change_video_mode
- mov ax, 20
- push ax
- mov ax, 40
- push ax
- mov ax, 50h
- push ax
- call print_point
- mov ah,0
- int 16h
- call return_video_mode
- ret
- end @main
Advertisement
Add Comment
Please, Sign In to add comment