亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? vio.asm

?? 匯編源代碼大全
?? ASM
字號:
;
; screen handling primitives
;
; by: jim nutt
;

.model large

.data

vseg    dw      0b000h
vmode   db      ?
x       dw      0
y       dw      0
color   db      07h
ofs     dw      0
xhite   db      8

; video information block

VIOinfo struc
	level   db      ?
		db      ?
		dw      ?
	flags   dw      ?
	mode    db      ?
		db      ?
	colors  dw      ?
	pixcol  dw      ?
	pixrow  dw      ?
	txtcol  dw      ?
	txtrow  dw      ?
VIOinfo ends

info    VIOinfo <0,0,14,1,0,0,2,0,0,80,25>

.code

public _VIOopen, _VIOclose, _VIOcolumns, _VIOrows, _VIOmode
public _VIOscrollright, _VIOscrollleft, _VIOscrollup, _VIOscrolldown
public _VIOclear, _VIOputc, _VIOputs, _VIOgetca, _VIOgetra, _VIOheight,
public _VIOsetfore, _VIOsetback, _VIOgetfore, _VIOgetback
public _VIOgotoxy, _VIOupdate, _VIOwherex, _VIOwherey, _VIOputr
public _VIOcursor, _VIOsegment, _VIOsetSegment, _VIOsetRows, _VIOsetCols

;int  _far _pascal VIOheight(void)

_VIOheight proc

	mov al, xhite;
	xor ah,ah;
	ret

_VIOheight endp

;int  _far _pascal VIOopen(void);

_VIOopen proc

	push ds

	mov ax,3000h            ; get dos version, v4 can do this from dos
	int 21h

	cmp al,4
	je odos4

	mov ax,0f00h            ; get screen mode and width
	int 10h

	mov vmode, al

	cmp al,7
	je mono

	xor al,al
	xchg al,ah
	mov info.txtcol,ax
	mov vseg,0b800h

	push di
	mov ax,0fe00h
	mov es,vseg
	mov di,0
	int 10h
	pop di
	mov vseg,es

	push bp                 ; how many rows
	mov ax,1130h
	mov bh,1h
	xor dx,dx
	int 10h
	pop bp

	cmp dl,0
	je cga

	mov xhite,cl
	inc dl
	xor dh,dh
	mov info.txtrow,dx

mono:   mov ax,0
	pop ds
	ret

odos4:  mov ax,440ch
	mov bx,0
	mov cx,037fh
	mov dx,offset info
	int 21h
	jnc l1
	pop ds
	ret

cga:    mov info.txtrow,25

l1:     mov ax,0
	pop ds
	ret

_VIOopen endp

;void _far _pascal VIOclose(void);

_VIOclose proc

	mov ax,3000h
	int 21h

	cmp al,4
	jne l2

	mov ax,440ch
	mov bx,0
	mov cx,035fh
	mov dx,offset info
	int 21h

l2:     ret

_VIOclose endp

;int  _far VIOcolumns(void);

_VIOcolumns proc

	mov ax,info.txtcol
	ret

_VIOcolumns endp

;int  _far VIOrows(void);

_VIOrows proc

	mov ax,info.txtrow
	ret

_VIOrows endp

;int  _far VIOmode(void);

_VIOmode proc

	mov al,vmode
	xor ah,ah
	ret

_VIOmode endp

;int  _far VIOwherex(void);

_VIOwherex proc

	mov ax,x
	ret

_VIOwherex endp

;int  _far VIOwherey(void);

_VIOwherey proc

	mov ax,y
	ret

_VIOwherey endp

;void _far VIOscrollright(int x1, int y1, int x2, int y2, int count);

_VIOscrollright proc

	push bp
	mov bp,sp
	pushf

	std

	push di
	push si

	mov ax,[bp+8]
	mov bx,[bp+12]
	sub bx,ax
	mov cx,info.txtcol
	mul cl
	mov dx,[bp+10]
	add dx,ax
	shl dx,1
	mov cx,[bp+10]
	sub cx,[bp+6]

	add bx,2
	mov [bp+6],cx
	mov [bp+8],bx

	mov es,vseg

sr1:    dec word ptr [bp+8]
	jz sr3
	mov bx,[bp+14]

	push ds
	mov ah,color
	mov al,20h

	push es
	pop ds

sr2:    mov di,dx
	mov si,di
	dec si
	dec si
	mov cx,[bp+6]
	rep movsw
	stosw
	dec bx
	jnz sr2

	pop ds
	mov ax,info.txtcol
	shl ax,1
	add dx,ax
	jmp sr1

sr3:    pop si
	pop di

	popf
	pop bp
	ret

_VIOscrollright endp

;void _far VIOscrollleft(int x1, int y1, int x2, int y2, int count);

_VIOscrollleft proc

	push bp
	mov bp,sp
	pushf

	push di
	push si

	mov ax,[bp+8]
	mov bx,[bp+12]
	sub bx,ax
	mov cx,info.txtcol
	mul cl
	mov dx,[bp+6]
	add dx,ax
	shl dx,1
	mov cx,[bp+10]
	sub cx,[bp+6]

	add bx,2
	mov [bp+6],cx
	mov [bp+8],bx

	mov es,vseg

sl1:    dec word ptr [bp+8]
	jz sl3
	mov bx,[bp+14]

	push ds
	mov ah,color
	mov al,20h

	push es
	pop ds

sl2:    mov di,dx
	mov si,di
	inc si
	inc si
	mov cx,[bp+6]
	rep movsw
	stosw
	dec bx
	jnz sl2

	pop ds
	mov ax,info.txtcol
	shl ax,1
	add dx,ax
	jmp sl1

sl3:    pop si
	pop di

	popf
	pop bp
	ret

_VIOscrollleft endp

;void _far VIOscrollup(int x1, int y1, int x2, int y2, int count);

_VIOscrollup proc

	push bp
	mov bp,sp
	push di
	push si

	mov es,vseg

	mov bx,[bp+6]
	mov ax,[bp+8]
	mov dx,info.txtcol
	mul dl
	add ax,bx
	shl ax,1
	shl dx,1

	push ax
	push ds
	push ax

	mov cx,[bp+10]
	sub cx,bx
	mov bx,cx

	mov ax,[bp+12]
	sub ax,[bp+8]
	mov [bp+12],ax

	push es
	pop ds
	inc word ptr [bp+14]

l9:     dec word ptr [bp+14]
	jz l11
	mov ax,[bp+12]

l10:    pop di
	mov si,di
	add si,dx
	push si
	mov cx,bx
	rep movsw
	dec ax
	jne l10

	pop di
	pop ds
	mov al,20h
	mov ah,color
	mov cx,bx
	rep stosw

	pop di
	push di
	push ds
	push di

	push es
	pop ds
	jmp l9

l11:    pop ax
	pop ds
	pop ax
	pop si
	pop di

	pop bp
	ret

_VIOscrollup endp

;void _far VIOscrolldown(int x1, int y1, int x2, int y2, int count);

_VIOscrolldown proc

	push bp
	mov bp,sp
	push di
	push si

	mov es,vseg

	mov bx,[bp+6]
	mov ax,[bp+12]
	mov dx,info.txtcol
	mul dl
	add ax,bx
	shl ax,1
	shl dx,1

	push ax
	push ds
	push ax

	mov cx,[bp+10]
	sub cx,bx
	mov bx,cx

	mov ax,[bp+12]
	sub ax,[bp+8]
	mov [bp+12],ax

	push es
	pop ds
	inc word ptr [bp+14]

l6:     dec word ptr [bp+14]
	jz l7
	mov ax,[bp+12]

l8:     pop di
	mov si,di
	sub si,dx
	push si
	mov cx,bx
	rep movsw
	dec ax
	jne l8

	pop di
	pop ds
	mov al,20h
	mov ah,color
	mov cx,bx
	rep stosw

	pop di
	push di
	push ds
	push di

	push es
	pop ds
	jmp l6

l7:     pop ax
	pop ds
	pop ax
	pop si
	pop di
	pop bp
	ret

_VIOscrolldown endp

;void _far VIOclear(int x1, int y1, int x2, int y2);

_VIOclear proc

	push bp
	mov bp,sp
	push di
	push si

	mov es,vseg

	mov ax,[bp+8]
	mov bx,[bp+6]
	mov cx,info.txtcol
	mul cl
	add ax,bx
	shl ax,1
	mov si,ax
	mov bx,[bp+10]
	sub bx,[bp+6]
	inc bx
	mov dx,[bp+12]
	sub dx,[bp+8]
	inc dx
	mov al,20h
	mov ah,color

l5:     mov di,si
	mov cx,bx
	rep stosw
	mov cx,info.txtcol
	shl cx,1
	add si,cx
	dec dx
	jne l5

	pop si
	pop di
	pop bp
	ret

_VIOclear endp

;void _far VIOputc(const char c);

_VIOputc proc

	push bp
	mov bp,sp
	push di

	mov es,vseg
	mov di,ofs

	mov ax,[bp+6]
	mov ah,color

	stosw

	mov ofs,di
	pop di

	mov ax,x
	inc ax
	cmp ax,info.txtcol
	jge cwrap

	mov x,ax

	pop bp
	ret

cwrap:  inc y
	sub ax,info.txtcol
	mov x,ax

	pop bp
	ret

_VIOputc endp

;void _far VIOputs(const char far * s);

_VIOputs proc

	push bp
	mov bp,sp
	push di
        push si
	push ds

	mov es,vseg
	mov di,ofs

	mov ah,color
	lds si,[bp+6]
	mov bx,x

l3:     lodsb
	cmp al,0
	je l4
	stosw
	inc bx

	jmp l3

l4:     mov ofs,di
	pop ds
        pop si
	pop di

	cmp bx,info.txtcol
	jge swrap

	mov x,bx

	pop bp
	ret

swrap:  inc y
	sub bx,info.txtcol
	mov x,bx

	pop bp
	ret

_VIOputs endp

;int  _far VIOgetca(const int x, const int y);

_VIOgetca proc

	push bp
	mov bp,sp

	mov es,vseg
	mov ax,[bp+8]
	mov bx,[bp+6]
	mov cx,info.txtcol
	mul cl
	add ax,bx
	shl ax,1

	xchg ax,bx
	mov ax,es:[bx]

	pop bp
	ret

_VIOgetca endp

;int *_far VIOgetra(int x1, int y1, int x2, int y2, int * b);

_VIOgetra proc

	push bp
	mov bp,sp
	push di
	push si
	push ds

	mov ax,[bp+8]           ; y1
	mov bx,info.txtcol
	mul bl                  ; y1 * width of screen
	add ax,[bp+6]
	shl ax,1                ; x1 * 2
	shl bx,1                ; width * 2
	mov cx,[bp+10]
	sub cx,[bp+6]           ; x2 - x1
	mov dx,[bp+12]
	sub dx,[bp+8]           ; y2 - y1
	inc dx
	inc cx
	les di,[bp+14]
	mov ds,vseg
	push cx

gr1:    pop cx
	push cx
	mov si,ax
	rep movsw
	add ax,bx
	dec dx
	jnz gr1

	pop cx

	pop ds
	pop si
	pop di
	pop bp
	ret

_VIOgetra endp

;void _far VIOputr(int x, int y, int w, int h, int far * b);

_VIOputr proc

	push bp
	mov bp,sp

	push ds
	push si
	push di

	mov ax,[bp+8]
	mov bx,info.txtcol
	mul bl                ; y * width
	add ax,[bp+6]
	shl ax,1
	shl bx,1

	mov es,vseg

	lds si,[bp+14]
	mov dx,[bp+10]

pr1:    mov cx,dx
	mov di,ax
	rep movsw
	add ax,bx
	dec word ptr [bp+12]
	jnz pr1

	pop di
	pop si
	pop ds

	pop bp
	ret

_VIOputr endp

;void _far VIOsetfore(const int c);

_VIOsetfore proc

	push bp
	mov bp,sp

	mov bl,color
	and bx,00f0h
	mov ax,[bp+6]
	and ax,000fh
	or  ax,bx
	mov color,al

	pop bp
	ret

_VIOsetfore endp

;void _far VIOsetback(const int c);

_VIOsetback proc

	push bp
	mov bp,sp

	mov bl,color
	and bx,000fh
	mov ax,[bp+6]
	and ax,000fh
	shl ax,1
	shl ax,1
	shl ax,1
	shl ax,1
	or  ax,bx
	mov color,al

	pop bp
	ret

_VIOsetback endp

;int  _far VIOgetfore(void);

_VIOgetfore proc

	mov al,color
	and ax,000fh
	ret

_VIOgetfore endp

;int  _far VIOgetback(void);

_VIOgetback proc

	mov al,color
	and ax,00f0h
	shr al,1
	shr al,1
	shr al,1
	shr al,1
	ret

_VIOgetback endp

;void _far VIOgotoxy(int x, int y);

_VIOgotoxy proc

	push bp
	mov bp,sp

	mov bx,[bp + 6]
	mov ax,[bp + 8]

	mov x,bx
	mov y,ax

	mov cx,info.txtcol
	mul cl

	add ax,bx
	shl ax,1

	mov ofs,ax

	pop bp
	ret

_VIOgotoxy endp

;void _far VIOupdate(int x1, int y1, int x2, int y2);

_VIOupdate proc

	mov ah,2
	mov bh,0
	mov cx,y
	mov dx,x
	mov dh,cl
	int 10h

	ret

_VIOupdate endp

;void _far VIOcursor(int _far * x, int _far * y, int _far * shape);

_VIOcursor proc

	push bp
	mov bp,sp
	push ds

	mov ah,3
	mov bh,0
	int 10h

	mov al,dl
	cbw
	lds bx,[bp + 6]
	mov [bx],ax

	mov al,dh
	cbw
	lds bx,[bp + 10]
	mov [bx],ax

	lds bx,[bp + 14]
	mov [bx],cx

	pop ds
	pop bp
	ret

_VIOcursor endp

;unsigned int  _far VIOsegment(void);

_VIOsegment proc

	mov ax, vseg
	ret

_VIOsegment endp

;void _far VIOsetSegment(unsigned int s);

_VIOsetSegment proc

	push bp
	mov bp,sp

	mov ax, [bp + 6]
	mov vseg,ax

	pop bp
	ret

_VIOsetSegment endp

;void _far VIOsetRows(int r);

_VIOsetRows proc

	push bp
	mov bp,sp

	mov ax,[bp + 6]
	mov info.txtrow,ax

	pop bp
	ret

_VIOsetRows endp

;void _far VIOsetCols(int c);

_VIOsetCols proc

	push bp
	mov bp,sp

	mov ax,[bp + 6]
	mov info.txtcol, ax

	pop bp
	ret

_VIOsetCols endp

end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美另类图片小说| 免费观看一级特黄欧美大片| 日韩视频中午一区| 欧美三片在线视频观看| 在线精品视频免费观看| k8久久久一区二区三区| 国产成人在线观看免费网站| 国产一区二区三区免费看| 国产精一区二区三区| 国产酒店精品激情| 成人黄色电影在线| 在线日韩av片| 欧美日韩成人高清| 日韩亚洲电影在线| 国产性天天综合网| 亚洲成人av在线电影| 一区二区三区影院| 午夜在线成人av| 免费三级欧美电影| 国产suv一区二区三区88区| 福利一区二区在线观看| 色妹子一区二区| 欧美日韩一区二区欧美激情| 日韩欧美区一区二| 久久久久久久综合狠狠综合| 中文字幕乱码久久午夜不卡 | 国产一二精品视频| 风间由美一区二区av101| 色综合久久中文字幕| 91麻豆精品国产自产在线| 精品国产区一区| 国产精品欧美经典| 亚洲v精品v日韩v欧美v专区| 国产在线精品一区二区三区不卡 | 欧美自拍丝袜亚洲| 日韩精品一区二区三区视频在线观看 | 91福利国产成人精品照片| 欧美日韩久久久久久| 久久色中文字幕| 夜夜嗨av一区二区三区| 日韩成人一级片| av成人免费在线观看| 日韩一级视频免费观看在线| 国产精品久久久久久久午夜片| 亚洲成a人v欧美综合天堂 | 成人免费在线视频观看| 丝袜美腿亚洲综合| 99re8在线精品视频免费播放| 91精品黄色片免费大全| 中文字幕亚洲不卡| 国产成人精品一区二区三区网站观看| 91成人免费电影| 中文字幕乱码久久午夜不卡| 精品一区二区三区在线视频| 欧美色爱综合网| 日韩精品视频网| 福利一区二区在线| 久久日韩精品一区二区五区| 五月天视频一区| 色婷婷激情一区二区三区| 国产视频一区不卡| 精品一区二区免费看| 欧美精品 日韩| 亚洲自拍偷拍av| 91在线免费视频观看| 国产亚洲人成网站| 久久成人麻豆午夜电影| 69堂精品视频| 天天综合网 天天综合色| 欧美专区日韩专区| 亚洲精品乱码久久久久久黑人| 国产麻豆精品在线| 久久综合色天天久久综合图片| 日本在线观看不卡视频| 欧美喷潮久久久xxxxx| 午夜欧美2019年伦理| 欧美三级一区二区| 天天色天天操综合| 3d动漫精品啪啪| 日韩综合小视频| 日韩一区二区在线看| 免费一级欧美片在线观看| 精品久久久久久综合日本欧美| 日韩二区在线观看| 欧美成人综合网站| 国产剧情在线观看一区二区 | 91在线小视频| 亚洲美女少妇撒尿| 欧美自拍丝袜亚洲| 日本亚洲三级在线| 日韩一二三四区| 国产成人av一区二区三区在线| 日本一区二区成人在线| 91一区一区三区| 亚洲国产欧美在线| 精品区一区二区| 成人一区二区三区在线观看| 亚洲视频 欧洲视频| 欧美福利电影网| 国产一区免费电影| 尤物在线观看一区| 欧美一卡在线观看| 成人免费看视频| 亚洲国产va精品久久久不卡综合| 91麻豆精品国产91久久久久久久久 | 国产九色sp调教91| 亚洲日本中文字幕区| 7878成人国产在线观看| 激情五月婷婷综合| 亚洲激情欧美激情| 精品国产免费人成在线观看| av高清久久久| 精品写真视频在线观看| 亚洲男人天堂av网| 精品三级在线观看| 色诱亚洲精品久久久久久| 美国毛片一区二区三区| 国产精品福利一区二区三区| 欧美精品1区2区3区| 99免费精品在线| 久久av中文字幕片| 亚洲欧美偷拍三级| 久久一区二区三区四区| 欧亚洲嫩模精品一区三区| 国内精品久久久久影院一蜜桃| 一区二区三区毛片| 久久亚洲综合av| 欧美欧美午夜aⅴ在线观看| 成人精品视频一区二区三区尤物| 日韩国产精品91| 亚洲狠狠丁香婷婷综合久久久| 久久久综合精品| 88在线观看91蜜桃国自产| 91麻豆6部合集magnet| 国产黄色精品视频| 精品伊人久久久久7777人| 亚洲国产日韩在线一区模特| 亚洲视频香蕉人妖| 国产精品久久久久久久岛一牛影视| 日韩欧美综合一区| 欧美日韩中字一区| 91免费在线看| 91老师国产黑色丝袜在线| 国产成人自拍网| 成人性生交大片免费看中文网站| 久久99日本精品| 青青草原综合久久大伊人精品优势 | ...av二区三区久久精品| 久久久久久久综合色一本| 欧美白人最猛性xxxxx69交| 91精品国产一区二区三区蜜臀| 欧美系列在线观看| 在线观看中文字幕不卡| 色综合av在线| 精品1区2区3区| 欧美在线免费观看视频| 欧美午夜宅男影院| 欧美老肥妇做.爰bbww视频| 欧美日韩一区在线观看| 欧美日韩成人综合天天影院| 日韩一区和二区| 精品成人a区在线观看| 欧美成人高清电影在线| www欧美成人18+| 国产欧美精品区一区二区三区| 国产清纯美女被跳蛋高潮一区二区久久w| 2023国产精品| 国产精品女主播av| 一区二区三区精品视频在线| 天涯成人国产亚洲精品一区av| 午夜精品福利一区二区三区av| 日韩av成人高清| 国内成人精品2018免费看| 国产成人久久精品77777最新版本| eeuss影院一区二区三区| 色国产综合视频| 欧美一级午夜免费电影| 久久久亚洲高清| 亚洲精品老司机| 免费人成在线不卡| 成人av电影在线网| 色94色欧美sute亚洲线路二 | 欧美精品电影在线播放| 欧美色爱综合网| 九九**精品视频免费播放| 国产一区二区不卡老阿姨| 91美女精品福利| 在线播放一区二区三区| 国产午夜精品美女毛片视频| 一区二区三区**美女毛片| 麻豆久久一区二区| 99国产精品久久久久久久久久久| 91官网在线免费观看| 久久综合九色综合97婷婷| 亚洲男同性恋视频| 韩国午夜理伦三级不卡影院| 色猫猫国产区一区二在线视频| 精品国产亚洲在线| 一区二区三区.www| 波多野洁衣一区|