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

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

?? jmemdosa.asm

?? 這是JPEG解碼、編碼的源代碼
?? 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一区二区三区免费野_久草精品视频
久久国产精品露脸对白| 色琪琪一区二区三区亚洲区| eeuss影院一区二区三区| 欧美做爰猛烈大尺度电影无法无天| 在线观看91av| 亚洲欧美日韩中文播放 | 美国十次综合导航| 99re成人精品视频| 欧美国产激情一区二区三区蜜月| 亚洲国产成人av好男人在线观看| 成人午夜免费电影| 精品乱人伦一区二区三区| 亚洲综合一区在线| 91丨porny丨国产入口| 亚洲精品在线免费观看视频| 天天综合天天做天天综合| 91香蕉视频污| 国产喷白浆一区二区三区| 日本一不卡视频| 欧美偷拍一区二区| 樱桃视频在线观看一区| 成+人+亚洲+综合天堂| 国产欧美一区二区三区网站 | 另类欧美日韩国产在线| 欧美老女人在线| 天堂精品中文字幕在线| 欧美综合色免费| 亚洲一区在线播放| 欧美午夜精品一区| 亚洲综合另类小说| 欧美视频中文一区二区三区在线观看| 亚洲精品大片www| 91蜜桃婷婷狠狠久久综合9色| 国产精品乱子久久久久| 国产98色在线|日韩| 国产精品区一区二区三| 成人v精品蜜桃久久一区| 国产精品不卡在线观看| 91在线观看高清| 洋洋成人永久网站入口| 欧美日韩国产精品自在自线| 亚洲高清不卡在线观看| 欧美一区二区网站| 精品中文av资源站在线观看| 国产亚洲精品免费| 国产成人午夜片在线观看高清观看| 久久蜜桃一区二区| 豆国产96在线|亚洲| 亚洲欧美一区二区三区久本道91| 91日韩精品一区| 亚洲电影一区二区| 欧美变态tickle挠乳网站| 国产一区二区三区综合| 午夜精品久久久久久久99樱桃| 欧美日韩免费一区二区三区视频| 日韩av在线发布| 久久免费美女视频| 色综合激情五月| 三级成人在线视频| 国产日产欧产精品推荐色| 色综合久久天天| 日韩va亚洲va欧美va久久| 精品欧美乱码久久久久久| 成人免费毛片嘿嘿连载视频| 亚洲一区二区三区四区中文字幕| 日韩欧美精品在线视频| fc2成人免费人成在线观看播放| 亚洲自拍偷拍麻豆| www久久精品| 91麻豆免费看片| 久久成人免费电影| 亚洲免费av在线| 精品日韩av一区二区| 99精品久久免费看蜜臀剧情介绍 | 国产欧美精品一区二区色综合朱莉| aaa欧美大片| 日韩av在线播放中文字幕| 国产精品乱码一区二三区小蝌蚪| 欧美乱妇15p| 91在线视频观看| 国产又黄又大久久| 五月开心婷婷久久| 国产精品美日韩| 日韩三级视频在线观看| 成人av在线一区二区| 麻豆国产一区二区| 亚洲一区精品在线| 欧美激情一区二区在线| 国产999精品久久久久久绿帽| 亚洲人成网站精品片在线观看| 正在播放一区二区| 色综合久久88色综合天天6 | 国产精品成人一区二区艾草 | 久久99这里只有精品| 有码一区二区三区| 日韩成人免费电影| 国产精品久久久久精k8| 久久蜜桃av一区二区天堂| 欧美精品久久99久久在免费线 | 91麻豆国产在线观看| 国产精品资源站在线| 蜜桃视频一区二区三区在线观看| 亚洲精品网站在线观看| 国产精品久久久一区麻豆最新章节| 精品国产免费一区二区三区四区| 欧美电影一区二区| 欧美日本视频在线| 欧美日韩中文精品| 91成人免费电影| 在线看一区二区| 在线亚洲精品福利网址导航| 91一区二区三区在线观看| 粉嫩av一区二区三区在线播放| 狠狠色丁香婷综合久久| 国产一区二区三区在线观看精品 | 欧美一级在线视频| 欧美区一区二区三区| 欧美日韩一级片在线观看| 欧美亚洲高清一区| 欧美久久久久久蜜桃| 337p亚洲精品色噜噜狠狠| 欧美男同性恋视频网站| 欧美一区二区在线免费观看| 欧美一区二区三区在线| 日韩免费视频一区二区| 日韩午夜精品电影| 久久伊人中文字幕| 国产欧美综合色| 中文字幕亚洲一区二区va在线| 亚洲欧美在线观看| 亚洲图片自拍偷拍| 免费观看91视频大全| 国产原创一区二区| 99视频精品免费视频| 欧美在线观看18| 日韩视频在线永久播放| 精品成人免费观看| 国产精品久久久久四虎| 亚洲国产一区二区三区青草影视| 青青草国产成人99久久| 国产91精品久久久久久久网曝门| 91麻豆自制传媒国产之光| 欧美一区二区三区婷婷月色| 欧美mv日韩mv国产| 亚洲女爱视频在线| 免费日韩伦理电影| 波多野结衣的一区二区三区| 欧美日韩一级大片网址| 国产亚洲一区字幕| 一区二区三区四区中文字幕| 日本成人中文字幕在线视频| 国产成+人+日韩+欧美+亚洲| 色偷偷久久人人79超碰人人澡| 337p亚洲精品色噜噜| 国产精品国产a级| 日本欧洲一区二区| 成人深夜福利app| 欧美一区二区三区色| 国产精品免费视频观看| 青青草97国产精品免费观看| 成人美女在线视频| 日韩免费福利电影在线观看| 亚洲欧美日韩国产一区二区三区 | 日韩欧美专区在线| 国产精品乱码一区二区三区软件 | 日韩成人一级片| 99re热这里只有精品免费视频| 日韩欧美另类在线| 亚洲亚洲精品在线观看| 成人动漫av在线| 欧美mv和日韩mv国产网站| 一区二区不卡在线视频 午夜欧美不卡在 | 国产精品88888| 欧美日韩和欧美的一区二区| 中文字幕av一区二区三区| 日本va欧美va欧美va精品| 色菇凉天天综合网| 中文字幕乱码久久午夜不卡| 青青草伊人久久| 欧美日韩国产首页在线观看| 国产精品色哟哟网站| 国产专区欧美精品| 日韩一级视频免费观看在线| 亚洲v精品v日韩v欧美v专区| 色哟哟日韩精品| 成人欧美一区二区三区在线播放| 国产一区二三区好的| 日韩欧美在线123| 日韩成人午夜精品| 91麻豆精品国产自产在线观看一区| 亚洲黄色性网站| 99re视频精品| 综合久久一区二区三区| 高清不卡一二三区| 国产女同互慰高潮91漫画| 国产盗摄一区二区| 久久精品视频在线看| 国产精品自拍在线| 国产三区在线成人av| 成人免费观看av|