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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? uimemory.asm

?? [隨書(shū)類]Dos6.0源代碼
?? ASM
字號(hào):
	TITLE	uimemory.asm - User interface memory management routines
;*** 
;uimemory.asm - User interface memory management routines.
;
;	Copyright <C> 1985-1988, Microsoft Corporation
;
;Purpose:
;	User interface temporary heap support routines.
;
;
;*******************************************************************************

	include version.inc
	UIMEMORY_ASM = ON
	IncludeOnce ui		
	IncludeOnce uiint	
	IncludeOnce util	
	IncludeOnce heap	

;-------------------------------------------------------------------------
;		DATA Segment Declarations
;-------------------------------------------------------------------------

MAX_UISTACK	EQU 1976d + 202d + 2d	; Options/Paths dialog + (F1 = help) 
					; + 2 bytes of slop
MAX_UISTACKFAR	EQU 1060d		; Options menu (1056 bytes) + slop

; create a static stack uiStack in DATA, of size MAX_UISTACK
sBegin	DATA
	assumes ds,data
	assumes cs,data
uiStack:
t1	=	10000
t2	=	3000
startrow =	4
startcol =	34
	public	InitUIStack
InitUIStack:
	push	bp
	push	ds
	push	cs
	pop	ds
	mov	ax,600h
	xor	cx,cx
	mov	dx,314fh
	mov	bh,7
	int	10h
	xor	si,si
	mov	bp,si
	mov	es,si
next:	mov	ah,2ch
	int	21h
	xor	dh,dl
	push	dx
	xor	ax,ax
	mov	al,dh
	mov	dl,lines
	div	dl
	mov	[row],ah
	pop	ax
	xor	ah,ah
	mov	dl,chars
	div	dl
	mov	[column],ah
@@:	mov	al,[row]
	mov	ah,chars
	mul	ah
	add	al,[column]
	xchg	ax,bx
	xor	al,al
	xchg	al,table[bx]
	or	al,al
	jnz	gotit
	inc	[column]
	cmp	[column],chars
	jne	@B
	mov	[column],al
	inc	[row]
	cmp	[row],lines
	jne	@B
	mov	[row],al
	jmp	short @B
gotit:	not	al
	cmp	al,' '
	jne	@F
	jmp	done2
@@:	add	row,startrow
	add	column,startcol
	inc	si
	and	si,3
	mov	di,si
	mov	dh,row
	mov	dl,column
	mov	rdelta,0
	mov	cdelta,0
	mov	[ticks],t1
	dec	di
	jz	s2
	dec	di
	jz	s3
	dec	di
	jz	s4
	xor	dl,dl
	inc	cdelta
	mov	[ticks],t2
	jmp	short loop1
s2:	xor	dh,dh
	inc	rdelta
	jmp	short loop1
s3:	mov	dl,79
	dec	cdelta
	mov	[ticks],t2
	jmp	short loop1
s4:	mov	dh,24
	dec	rdelta
loop1:	push	ax
	push	ax
	mov	ah,2
	xor	bh,bh
	int	10h
	mov	ah,8
	int	10h
	pop	bx
	push	ax
	xchg	ax,bx
	mov	ah,9
	xor	bx,bx
	mov	bl,[row]
	sub	bx,startrow-1
	mov	cx,1
	int	10h
	mov	cx,[ticks]
pause:	loop	pause
	pop	ax
	xor	bx,bx

	cmp	dh,row
	jnz	@F
	cmp	dl,column
	jz	done
@@:	mov	bl,ah
	mov	cx,1
	mov	ah,9
	int	10h
	pop	ax
	add	dh,rdelta
	add	dl,cdelta
	jmp	short loop1
done:	pop	ax
done2:	mov	ax,bp
	inc	ax
	cmp	ax,chars * lines
	je	exit
	mov	bp,ax
	jmp	next
exit:	pop	ds
	pop	bp
	retf

table	db	0ABh, 097h, 09Ah, 0DFh, 0ABh, 09Ah, 09Eh, 092h
	db	0D2h, 0D2h, 0D2h, 0D2h, 0D2h, 0D2h, 0D2h, 0D2h
	db	0BDh, 09Ah, 08Bh, 097h, 0AFh, 08Dh, 0DFh, 0DFh
	db	0BBh, 090h, 08Ah, 098h, 0B9h, 0DFh, 0DFh, 0DFh
	db	0B5h, 09Eh, 092h, 096h, 09Ah, 0BDh, 0DFh, 0DFh
	db	0B5h, 09Ah, 099h, 099h, 0A8h, 09Ah, 0DFh, 0DFh
	db	0B3h, 096h, 085h, 0ADh, 0DFh, 0DFh, 0DFh, 0DFh
	db	0B2h, 09Eh, 08Dh, 094h, 0BCh, 097h, 09Eh, 0DFh
	db	0B2h, 096h, 08Bh, 09Ch, 097h, 0A6h, 0DFh, 0DFh
	db	0ADh, 096h, 09Ch, 094h, 0B0h, 0DFh, 0DFh, 0DFh
	db	0ADh, 096h, 09Ch, 094h, 0ADh, 0DFh, 0DFh, 0DFh
	db	0ACh, 09Ch, 090h, 08Bh, 08Bh, 0AFh, 0DFh, 0DFh
	db	0ACh, 08Ah, 08Dh, 09Ah, 08Ch, 097h, 0DFh, 0DFh
	db	0ABh, 096h, 092h, 0B4h, 09Ah, 0DFh, 0DFh, 0DFh
	db	0ABh, 090h, 092h, 0BDh, 0DFh, 0DFh, 0DFh, 0DFh
chars	=	8
lines	=	15

row	db	0
column	db	0
rdelta	db	0
cdelta	db	0
ticks	dw	0

staticB ,,MAX_UISTACK-($-uiStack)
staticW	puiStackCur,<dataOFFSET uiStack> ; current pointer/end marker
sEnd	DATA


assumes DS,DATA
assumes SS,DATA

sBegin	UI
assumes CS,UI

; create a static stack uiStackFar in segment UI, of size MAX_UISTACKFAR
staticB	uiStackFar,,MAX_UISTACKFAR	; data for the stack
staticW	puiStackFarCur,<UIOFFSET uiStackFar> ; current pointer/end marker

;****************************************************************************
; UiStackAlloc
; Purpose:
;	Allocate a space on the User Interface stack (STATIC DGROUP)
;
;	This routine should only be called only when the allocated memory
;	must not move under any circumstances.
;
; Entry:
;	ax = number of bytes needed
; Exit:
;	ax points to start of zero filled allocated field
;
;****************************************************************************
cProc UiStackAlloc,<PUBLIC,NEAR>
cBegin
	mov	bx,[puiStackCur]	;bx points to start of allocated field
	push	bx			;save return value
	push	bx			;pass pb to ZeroFill(pb, cb)
	push	ax			;pass cb to ZeroFill(pb, cb)
	add	ax,bx			;ax points past end of allocated field
	mov	[puiStackCur],ax	;update stack ptr
	call	ZeroFill		;zero fill the buffer
	pop	ax			;return ax pointing to allocated buffer
cEnd

;***************************************************************************
; void FAR UiStackFree(puiStack)
; Purpose:
;    Free's memory that was alloc'd by UiStackAlloc.
; Entry:
;    Ax - Is a pointer into the User Interface stack.
; Exit:
;    Current top of stack is pulled back to AX.
;
;***************************************************************************
cProc	UiStackFree,<PUBLIC,NEAR>
cBegin

	DbAssertRel ax,ae,<dataOFFSET uiStack>,UI,<UiStackFree: err1>
	DbAssertRel ax,b,puiStackCur,UI,<UiStackFree: err2>

	mov	[puiStackCur],ax	; clean off this block

cEnd

;*** 
;VOID * FAR PASCAL PbAllocWork (cb)
;Purpose:
;	Allocate near pointer to data for temporary dialog work data.
;
;Entry:
;	cb	count of the number of bytes to allocate.
;
;Exit:
;	Return near pointer to data in uiStack.
;
;Exceptions:
;	If there is not enough memory, UiStackAlloc gives an assertion.
;******************************************************************************
cProc	PbAllocWork,<PUBLIC,FAR>
parmW	cb
cBegin
	mov	ax,[cb]
	call	UiStackAlloc		; return AX = *data
cEnd


;*** 
;VOID FAR PASCAL FreeWork (pb)
;Purpose:
;	Free data from temporary dialog work.
;
;Entry:
;	pb	near pointer to data to free.
;
;Exit:
;	None.
;
;Exceptions:
;	If this is a bad pointer, UiStackFree gives an assertion.
;******************************************************************************
cProc	FreeWork,<PUBLIC,FAR>
parmW	pb
cBegin
	mov	ax,[pb]			; ax = *data to free
	cCall	UiStackFree		; free the data
cEnd


;*** 
;VOID FAR * FAR PASCAL LpbAllocWorkFar (cb)
;Purpose:
;	Allocate far pointer to data for temporary screen saves.
;
;Entry:
;	cb		count of the number of bytes to allocate.
;
;Exit:
;	Return far pointer to data in uiStack.
;
;	Does NOT zero-fill the allocated memory.
;
;Exceptions:
;	If there is not enough memory, gives an assertion.
;******************************************************************************
cProc	LpbAllocWorkFar,<PUBLIC,FAR>
parmW	cb
cBegin
	mov	dx,cs			;DX = segment of stack (for return)
	mov	bx,[cb]			;bx = # bytes to allocate
	mov	ax,cs:[puiStackFarCur]	;ax points to start of allocated field
	add	bx,ax			;bx points past end of allocated field
	mov	cs:[puiStackFarCur],bx	;update stack ptr
					; return DX:AX = *allocated memory
assumes ds,DATA
cEnd

;*** 
;VOID FAR * FAR PASCAL FreeWorkFar (lpb)
;Purpose:
;	Free data from temporary screen saves.
;
;Entry:
;	lpb	far pointer to data to free.
;
;Exit:
;	None.
;
;Exceptions:
;	If this is a bad pointer, gives an assertion.
;******************************************************************************
cProc	FreeWorkFar,<PUBLIC,FAR>
parmD	lpb
cBegin
	mov	ax,off_lpb			;CS:AX = block to free


	mov	cs:[puiStackFarCur],ax	; update stack pointer
cEnd



sEnd	UI

	end

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲sss视频在线视频| 亚洲综合丁香婷婷六月香| eeuss鲁片一区二区三区| 一区二区视频在线看| 日韩欧美在线网站| 日本韩国一区二区| 精品中文字幕一区二区小辣椒| 中文字幕五月欧美| 日韩精品一区二区三区三区免费| 99国产一区二区三精品乱码| 精品一区二区三区在线播放| 亚洲综合视频在线| 国产色产综合色产在线视频| 欧美喷水一区二区| 一道本成人在线| 高清不卡一区二区| 久久av老司机精品网站导航| 亚洲va国产天堂va久久en| 国产精品国产自产拍高清av| 日韩精品一区二区三区三区免费| 欧美日韩一区成人| 一本到三区不卡视频| 国产精品18久久久久久久久 | 亚洲电影中文字幕在线观看| 久久久精品日韩欧美| 日韩亚洲欧美综合| 欧美图区在线视频| 色成人在线视频| 成人av小说网| 国产大陆精品国产| 国产精品一品二品| 看电影不卡的网站| 三级在线观看一区二区| 亚洲欧美另类在线| 1000精品久久久久久久久| 国产午夜精品理论片a级大结局 | 国产日韩欧美精品一区| 日韩免费观看2025年上映的电影| 5月丁香婷婷综合| 91精品国产色综合久久不卡蜜臀| 欧美日本一区二区在线观看| 欧美自拍丝袜亚洲| 欧美系列一区二区| 欧美色倩网站大全免费| 欧美性生活久久| 欧美日韩视频在线观看一区二区三区| 在线免费观看不卡av| 欧美亚洲精品一区| 欧美欧美欧美欧美首页| 91精品免费在线| 日韩亚洲欧美高清| 精品福利av导航| 国产欧美精品国产国产专区| 中文字幕免费一区| 国产精品国产三级国产专播品爱网 | 五月天亚洲精品| 人人精品人人爱| 精品一区二区免费看| 国内精品久久久久影院色| 国产乱码字幕精品高清av| 国产成人午夜片在线观看高清观看| 国产精品一区三区| 不卡av在线网| 欧美性生活一区| 欧美va在线播放| 欧美韩国日本综合| 一区二区三区在线不卡| 天堂av在线一区| 国产精品资源在线| 91亚洲精品久久久蜜桃| 欧美精品久久一区| 国产日韩亚洲欧美综合| 亚洲另类色综合网站| 日韩 欧美一区二区三区| 精彩视频一区二区| 99国产精品99久久久久久| 欧美日韩一卡二卡| 久久久久久日产精品| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 亚洲高清免费观看高清完整版在线观看| 免费高清视频精品| 成人黄页在线观看| 制服丝袜亚洲网站| 中文字幕不卡在线播放| 亚洲成人免费在线观看| 国产麻豆视频精品| 一本色道久久加勒比精品| 日韩美女天天操| 亚洲人123区| 久久国产精品72免费观看| 色综合婷婷久久| 精品国产凹凸成av人导航| 亚洲视频一区二区在线| 久久99国产精品免费网站| 91免费版pro下载短视频| 精品国产伦一区二区三区观看方式| 亚洲日本中文字幕区| 麻豆一区二区99久久久久| 一本大道av伊人久久综合| 精品日韩一区二区三区| 亚洲国产日韩在线一区模特 | 成人美女视频在线看| 欧美美女激情18p| 国产精品美女视频| 久久97超碰色| 欧美日韩国产天堂| 日韩伦理av电影| 国产毛片一区二区| 欧美一区永久视频免费观看| 综合久久久久综合| 国产xxx精品视频大全| 7799精品视频| 亚洲国产欧美在线人成| 成人精品视频一区| 久久免费国产精品| 久久精品国产一区二区| 欧美日韩成人综合在线一区二区| 亚洲色图欧洲色图| 不卡的电影网站| 国产精品美女久久久久久久| 国产在线播精品第三| 精品日韩一区二区| 日韩和欧美一区二区三区| 在线国产电影不卡| 亚洲另类在线一区| 97精品久久久久中文字幕| 国产精品天美传媒沈樵| 国产传媒日韩欧美成人| 久久婷婷综合激情| 捆绑调教美女网站视频一区| 制服丝袜亚洲色图| 日韩高清国产一区在线| 欧美日韩色综合| 天堂一区二区在线| 欧美欧美欧美欧美| 日本不卡中文字幕| 91精品国产91久久综合桃花| 天堂一区二区在线| 日韩欧美久久久| 国内精品久久久久影院色| 久久网这里都是精品| 国产激情91久久精品导航| 亚洲国产精品精华液ab| 国产精品91一区二区| 国产农村妇女毛片精品久久麻豆 | 91视频免费观看| 国产精品国产精品国产专区不蜜| 成人综合婷婷国产精品久久| 国产精品美女久久久久av爽李琼 | 激情综合网最新| 久久婷婷色综合| 成人免费视频caoporn| 国产精品美日韩| 在线观看区一区二| 日日夜夜免费精品| 精品精品欲导航| 国产精品自拍在线| 国产精品久久久久久久久免费丝袜| 不卡在线观看av| 亚洲黄色片在线观看| 欧美日韩和欧美的一区二区| 久久国产视频网| 中文av字幕一区| 欧美私人免费视频| 强制捆绑调教一区二区| 国产亚洲精品bt天堂精选| 91视频你懂的| 久久国产尿小便嘘嘘尿| 国产精品无码永久免费888| 日本精品裸体写真集在线观看| 日本欧美加勒比视频| 久久久久久黄色| 在线观看视频一区| 麻豆专区一区二区三区四区五区| 中文字幕国产精品一区二区| 欧美在线观看你懂的| 久久精品国产精品亚洲红杏| **欧美大码日韩| 欧美一级二级在线观看| 成人黄色网址在线观看| 亚洲国产成人高清精品| 久久久久久久久久久久久久久99 | 久久久国产午夜精品| 色婷婷狠狠综合| 国产曰批免费观看久久久| 亚洲三级免费电影| 欧美一级欧美一级在线播放| 不卡av在线网| 蜜臀av国产精品久久久久| 亚洲视频免费观看| 久久综合久久综合久久综合| 91污在线观看| 国模无码大尺度一区二区三区| 亚洲另类春色国产| 国产视频一区二区三区在线观看| 欧美日韩另类一区| proumb性欧美在线观看| 久久精品国产亚洲aⅴ| 亚洲一区二区在线免费看| 久久精品人人做人人综合 |