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

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

?? jmemdosa.asm

?? JPEG source code converts the image into compressed format
?? ASM
字號:
;
; jmemdosa.asm
;
; Copyright (C) 1992, Thomas G. Lane.
; This file is part of the Independent JPEG Group's software.
; For conditions of distribution and use, see the accompanying README file.
;
; This file contains low-level interface routines to support the MS-DOS
; backing store manager (jmemdos.c).  Routines are provided to access disk
; files through direct DOS calls, and to access XMS and EMS drivers.
;
; This file should assemble with Microsoft's MASM or any compatible
; assembler (including Borland's Turbo Assembler).  If you haven't got
; a compatible assembler, better fall back to jmemansi.c or jmemname.c.
;
; To minimize dependence on the C compiler's register usage conventions,
; we save and restore all 8086 registers, even though most compilers only
; require SI,DI,DS to be preserved.  Also, we use only 16-bit-wide return
; values, which everybody returns in AX.
;
; Based on code contributed by Ge' Weijers.
;

JMEMDOSA_TXT	segment byte public 'CODE'

		assume	cs:JMEMDOSA_TXT

		public	_jdos_open
		public	_jdos_close
		public	_jdos_seek
		public	_jdos_read
		public	_jdos_write
		public	_jxms_getdriver
		public	_jxms_calldriver
		public	_jems_available
		public	_jems_calldriver

;
; short far jdos_open (short far * handle, char far * filename)
;
; Create and open a temporary file
;
_jdos_open	proc	far
		push	bp			; linkage
		mov 	bp,sp
		push	si			; save all registers for safety
		push	di
		push	bx
		push	cx
		push	dx
		push	es
		push	ds
		mov	cx,0			; normal file attributes
		lds	dx,dword ptr [bp+10]	; get filename pointer
		mov	ah,3ch			; create file
		int	21h
		jc	open_err		; if failed, return error code
		lds	bx,dword ptr [bp+6]	; get handle pointer
		mov	word ptr [bx],ax	; save the handle
		xor	ax,ax			; return zero for OK
open_err:	pop	ds			; restore registers and exit
		pop	es
		pop	dx
		pop	cx
		pop	bx
		pop	di
		pop	si
		pop 	bp
		ret
_jdos_open	endp


;
; short far jdos_close (short handle)
;
; Close the file handle
;
_jdos_close	proc	far
		push	bp			; linkage
		mov 	bp,sp
		push	si			; save all registers for safety
		push	di
		push	bx
		push	cx
		push	dx
		push	es
		push	ds
		mov	bx,word ptr [bp+6]	; file handle
		mov	ah,3eh			; close file
		int	21h
		jc	close_err		; if failed, return error code
		xor	ax,ax			; return zero for OK
close_err:	pop	ds			; restore registers and exit
		pop	es
		pop	dx
		pop	cx
		pop	bx
		pop	di
		pop	si
		pop 	bp
		ret
_jdos_close	endp


;
; short far jdos_seek (short handle, long offset)
;
; Set file position
;
_jdos_seek	proc	far
		push	bp			; linkage
		mov 	bp,sp
		push	si			; save all registers for safety
		push	di
		push	bx
		push	cx
		push	dx
		push	es
		push	ds
		mov	bx,word ptr [bp+6]	; file handle
		mov	dx,word ptr [bp+8]	; LS offset
		mov	cx,word ptr [bp+10]	; MS offset
		mov	ax,4200h		; absolute seek
		int	21h
		jc	seek_err		; if failed, return error code
		xor	ax,ax			; return zero for OK
seek_err:	pop	ds			; restore registers and exit
		pop	es
		pop	dx
		pop	cx
		pop	bx
		pop	di
		pop	si
		pop 	bp
		ret
_jdos_seek	endp


;
; short far jdos_read (short handle, void far * buffer, unsigned short count)
;
; Read from file
;
_jdos_read	proc	far
		push	bp			; linkage
		mov 	bp,sp
		push	si			; save all registers for safety
		push	di
		push	bx
		push	cx
		push	dx
		push	es
		push	ds
		mov	bx,word ptr [bp+6]	; file handle
		lds	dx,dword ptr [bp+8]	; buffer address
		mov	cx,word ptr [bp+12]	; number of bytes
		mov	ah,3fh			; read file
		int	21h
		jc	read_err		; if failed, return error code
		cmp	ax,word ptr [bp+12]	; make sure all bytes were read
		je	read_ok
		mov	ax,1			; else return 1 for not OK
		jmp	short read_err
read_ok:	xor	ax,ax			; return zero for OK
read_err:	pop	ds			; restore registers and exit
		pop	es
		pop	dx
		pop	cx
		pop	bx
		pop	di
		pop	si
		pop 	bp
		ret
_jdos_read	endp


;
; short far jdos_write (short handle, void far * buffer, unsigned short count)
;
; Write to file
;
_jdos_write	proc	far
		push	bp			; linkage
		mov 	bp,sp
		push	si			; save all registers for safety
		push	di
		push	bx
		push	cx
		push	dx
		push	es
		push	ds
		mov	bx,word ptr [bp+6]	; file handle
		lds	dx,dword ptr [bp+8]	; buffer address
		mov	cx,word ptr [bp+12]	; number of bytes
		mov	ah,40h			; write file
		int	21h
		jc	write_err		; if failed, return error code
		cmp	ax,word ptr [bp+12]	; make sure all bytes written
		je	write_ok
		mov	ax,1			; else return 1 for not OK
		jmp	short write_err
write_ok:	xor	ax,ax			; return zero for OK
write_err:	pop	ds			; restore registers and exit
		pop	es
		pop	dx
		pop	cx
		pop	bx
		pop	di
		pop	si
		pop 	bp
		ret
_jdos_write	endp


;
; void far jxms_getdriver (XMSDRIVER far *)
;
; Get the address of the XMS driver, or NULL if not available
;
_jxms_getdriver	proc	far
		push	bp			; linkage
		mov 	bp,sp
		push	si			; save all registers for safety
		push	di
		push	bx
		push	cx
		push	dx
		push	es
		push	ds
		mov 	ax,4300h		; call multiplex interrupt with
		int	2fh			; a magic cookie, hex 4300
		cmp 	al,80h			; AL should contain hex 80
		je	xmsavail
		xor 	dx,dx			; no XMS driver available
		xor 	ax,ax			; return a nil pointer
		jmp	short xmsavail_done
xmsavail:	mov 	ax,4310h		; fetch driver address with
		int	2fh			; another magic cookie
		mov 	dx,es			; copy address to dx:ax
		mov 	ax,bx
xmsavail_done:	les 	bx,dword ptr [bp+6]	; get pointer to return value
		mov	word ptr es:[bx],ax
		mov	word ptr es:[bx+2],dx
		pop	ds			; restore registers and exit
		pop	es
		pop	dx
		pop	cx
		pop	bx
		pop	di
		pop	si
		pop	bp
		ret
_jxms_getdriver	endp


;
; void far jxms_calldriver (XMSDRIVER, XMScontext far *)
;
; The XMScontext structure contains values for the AX,DX,BX,SI,DS registers.
; These are loaded, the XMS call is performed, and the new values of the
; AX,DX,BX registers are written back to the context structure.
;
_jxms_calldriver 	proc	far
		push	bp			; linkage
		mov 	bp,sp
		push	si			; save all registers for safety
		push	di
		push	bx
		push	cx
		push	dx
		push	es
		push	ds
		les 	bx,dword ptr [bp+10]	; get XMScontext pointer
		mov 	ax,word ptr es:[bx]	; load registers
		mov 	dx,word ptr es:[bx+2]
		mov 	si,word ptr es:[bx+6]
		mov 	ds,word ptr es:[bx+8]
		mov 	bx,word ptr es:[bx+4]
		call	dword ptr [bp+6]	; call the driver
		mov	cx,bx			; save returned BX for a sec
		les 	bx,dword ptr [bp+10]	; get XMScontext pointer
		mov 	word ptr es:[bx],ax	; put back ax,dx,bx
		mov 	word ptr es:[bx+2],dx
		mov 	word ptr es:[bx+4],cx
		pop	ds			; restore registers and exit
		pop	es
		pop	dx
		pop	cx
		pop	bx
		pop	di
		pop	si
		pop 	bp
		ret
_jxms_calldriver 	endp


;
; short far jems_available (void)
;
; Have we got an EMS driver? (this comes straight from the EMS 4.0 specs)
;
_jems_available	proc	far
		push	si			; save all registers for safety
		push	di
		push	bx
		push	cx
		push	dx
		push	es
		push	ds
		mov	ax,3567h		; get interrupt vector 67h
		int	21h
		push	cs
		pop	ds
		mov	di,000ah		; check offs 10 in returned seg
		lea	si,ASCII_device_name	; against literal string
		mov	cx,8
		cld
		repe cmpsb
		jne	no_ems
		mov	ax,1			; match, it's there
		jmp	short avail_done
no_ems:		xor	ax,ax			; it's not there
avail_done:	pop	ds			; restore registers and exit
		pop	es
		pop	dx
		pop	cx
		pop	bx
		pop	di
		pop	si
		ret

ASCII_device_name	db	"EMMXXXX0"

_jems_available	endp


;
; void far jems_calldriver (EMScontext far *)
;
; The EMScontext structure contains values for the AX,DX,BX,SI,DS registers.
; These are loaded, the EMS trap is performed, and the new values of the
; AX,DX,BX registers are written back to the context structure.
;
_jems_calldriver	proc far
		push	bp			; linkage
		mov 	bp,sp
		push	si			; save all registers for safety
		push	di
		push	bx
		push	cx
		push	dx
		push	es
		push	ds
		les 	bx,dword ptr [bp+6]	; get EMScontext pointer
		mov 	ax,word ptr es:[bx]	; load registers
		mov 	dx,word ptr es:[bx+2]
		mov 	si,word ptr es:[bx+6]
		mov 	ds,word ptr es:[bx+8]
		mov 	bx,word ptr es:[bx+4]
		int	67h			; call the EMS driver
		mov	cx,bx			; save returned BX for a sec
		les 	bx,dword ptr [bp+6]	; get EMScontext pointer
		mov 	word ptr es:[bx],ax	; put back ax,dx,bx
		mov 	word ptr es:[bx+2],dx
		mov 	word ptr es:[bx+4],cx
		pop	ds			; restore registers and exit
		pop	es
		pop	dx
		pop	cx
		pop	bx
		pop	di
		pop	si
		pop 	bp
		ret
_jems_calldriver	endp

JMEMDOSA_TXT	ends

		end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本韩国欧美三级| 免费久久99精品国产| 久久91精品久久久久久秒播| 制服.丝袜.亚洲.另类.中文 | 欧洲精品一区二区三区在线观看| 亚洲欧洲精品一区二区三区不卡 | 91丨porny丨首页| 亚洲视频一二区| 日本高清视频一区二区| 亚洲一区二区三区激情| 91麻豆精品91久久久久同性| 久久国产精品99久久人人澡| 久久久影院官网| 成人美女视频在线看| 亚洲人成亚洲人成在线观看图片| 欧美在线视频全部完| 秋霞电影一区二区| 久久精品视频免费观看| 91视视频在线观看入口直接观看www | 婷婷夜色潮精品综合在线| 91精品福利在线一区二区三区| 精品亚洲免费视频| 国产精品美女一区二区在线观看| 91色九色蝌蚪| 日韩极品在线观看| 久久久久综合网| 91视频一区二区| 蜜臀久久久久久久| 亚洲国产精品激情在线观看| 精品视频资源站| 国产乱子伦一区二区三区国色天香| 成人欧美一区二区三区白人| 欧美日韩另类一区| 国产在线精品一区在线观看麻豆| 亚洲三级电影全部在线观看高清| 91精品国产综合久久久久久久久久| 国产一区二区看久久| 亚洲欧美激情视频在线观看一区二区三区 | 精品国产一区二区亚洲人成毛片 | 欧美人与性动xxxx| 国产精品一区三区| 亚洲一区二区在线视频| 精品国产1区2区3区| 欧美色图12p| 成人免费看的视频| 日本网站在线观看一区二区三区| 日韩美女精品在线| 日韩女优av电影| 欧美性淫爽ww久久久久无| 国产专区综合网| 爽好多水快深点欧美视频| 国产精品超碰97尤物18| 久久亚洲捆绑美女| 欧美一区二区三区免费在线看| 欧美在线免费观看视频| 国产成人超碰人人澡人人澡| 美女视频黄 久久| 亚洲成人自拍网| 亚洲蜜桃精久久久久久久| 国产亚洲欧美激情| 日韩精品中文字幕在线一区| 欧美精品免费视频| 色哟哟一区二区在线观看 | 亚洲情趣在线观看| 国产日韩欧美一区二区三区乱码| 欧美一区欧美二区| 欧洲亚洲精品在线| 色综合久久久久久久久久久| voyeur盗摄精品| 国产不卡视频在线播放| 韩国欧美国产1区| 久久超碰97中文字幕| 亚洲高清在线视频| 一区二区三区视频在线看| 国产精品久久久久久久久搜平片 | 欧美一区二区精美| 欧美日韩一二区| 欧美日韩久久一区二区| 欧美日韩一区二区不卡| 精品视频免费在线| 欧美日韩亚洲综合在线| 欧美日韩综合在线免费观看| 91久久线看在观草草青青| 99re在线视频这里只有精品| 一本大道久久a久久综合| av电影天堂一区二区在线观看| 成人免费毛片嘿嘿连载视频| a在线播放不卡| 91玉足脚交白嫩脚丫在线播放| 91黄视频在线| 精品视频在线免费观看| 欧美日韩一级二级三级| 欧美一区二区黄| 精品国产1区二区| 国产精品免费久久| 亚洲女同一区二区| 亚洲第一主播视频| 青娱乐精品在线视频| 极品瑜伽女神91| 成人黄色小视频| 欧美在线免费播放| 91精品婷婷国产综合久久性色| 精品欧美乱码久久久久久1区2区| 欧美国产精品一区二区三区| 亚洲精品亚洲人成人网在线播放| 亚洲h精品动漫在线观看| 免费成人在线影院| 国产99久久久国产精品潘金| 91成人网在线| 日韩久久久精品| 国产精品的网站| 亚洲高清视频在线| 狠狠色丁香久久婷婷综合_中| 丁香天五香天堂综合| 在线观看日产精品| 日韩久久精品一区| 亚洲欧美在线视频| 免费看欧美美女黄的网站| 成人夜色视频网站在线观看| 欧美日韩一级二级三级| 久久综合久色欧美综合狠狠| 亚洲一区二区影院| 美女视频免费一区| 91小宝寻花一区二区三区| 欧美福利视频一区| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲与欧洲av电影| 精品一区二区三区的国产在线播放| 成人av资源站| 欧美大片一区二区| 亚洲欧美另类久久久精品2019| 久久福利视频一区二区| 91在线精品一区二区| 欧美v日韩v国产v| 亚洲制服欧美中文字幕中文字幕| 国产在线看一区| 7777女厕盗摄久久久| 中文字幕中文字幕一区二区 | 石原莉奈在线亚洲二区| 成人午夜av电影| 欧美一区二区免费视频| 一区二区三区不卡在线观看| 成人丝袜视频网| 精品国产一区二区亚洲人成毛片| 亚洲国产中文字幕在线视频综合 | 久久久99精品久久| 午夜精品久久久| 91在线视频观看| 欧美激情一区二区三区蜜桃视频| 麻豆视频一区二区| 欧美综合一区二区三区| 亚洲视频一区二区在线观看| 成人午夜激情在线| 久久网站热最新地址| 久久国内精品视频| 欧美日韩国产一级| 亚洲精品视频自拍| 成人黄动漫网站免费app| 久久精品夜色噜噜亚洲a∨| 久久电影网站中文字幕| 91精品国产一区二区三区香蕉| 亚洲图片自拍偷拍| 91福利国产成人精品照片| 国产欧美日韩一区二区三区在线观看| 久久国产精品区| 精品播放一区二区| 男男gaygay亚洲| 日韩视频一区二区在线观看| 麻豆精品新av中文字幕| 91精品国产综合久久久久久久 | 久久国产精品99久久久久久老狼 | 国产一区亚洲一区| 日韩视频在线一区二区| 日本成人中文字幕在线视频| 欧美一二三四在线| 午夜免费欧美电影| 欧美一二三区精品| 婷婷开心久久网| 日韩一区二区三区精品视频| 狠狠色2019综合网| 精品国产伦一区二区三区免费| 韩国三级中文字幕hd久久精品| 久久综合久久综合九色| 国产电影精品久久禁18| 亚洲欧洲成人自拍| 91精品福利视频| 三级不卡在线观看| 日韩欧美国产综合| 国产精品系列在线观看| 日本一区二区成人| 色诱亚洲精品久久久久久| 亚洲国产精品尤物yw在线观看| 欧美精品免费视频| 久久精品国产一区二区| 国产欧美一区二区三区沐欲| 一本久久精品一区二区| 亚洲国产精品一区二区尤物区| 欧美白人最猛性xxxxx69交| 国产69精品久久久久毛片| 成人欧美一区二区三区白人|