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

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

?? rxdosexe.asm

?? dos source
?? ASM
?? 第 1 頁 / 共 5 頁
字號:
        mov al, ' '
        mov cx, (sizefnName + sizefnExtension)
        mov di, offset pspFCB_1
        rep stosb                                       ; init fcb 1

        mov cx, (sizefnName + sizefnExtension)
        mov di, offset pspFCB_2
        rep stosb                                       ; init fcb 2

        mov word ptr es:[ pspFileHandlePtr. _segment ], es
        mov word ptr es:[ pspFileHandlePtr. _pointer ], pspHandleTable
        mov word ptr es:[ pspFileHandleCount         ], sizepspHandleTable

        mov ax, word ptr [ _RxDOS_DOSVersion ]          ; get DOS Version
        mov word ptr es:[ pspVersion ], ax              ; Major, Minor version (VERS)
        jmp short createPSP_12

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  copy an existing PSP
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
createPSP_08:
        call copyCurrentPSP                             ; copy current PSP

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  other specific initialization
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
createPSP_12:
        mov ax, word ptr ss:[ _RxDOS_CurrentPSP ]
        mov word ptr es:[ pspParentId    ], ax          ; parent PSP address

        mov ax, es                                      ; compute next alloc
        add ax, word ptr [ _AllocSize ][ bp ]
        mov word ptr es:[ pspNextParagraph   ], ax

        mov word ptr es:[ pspInt20       ], 20CDh       ; Int 20 instruction
        mov word ptr es:[ pspDosCall     ], 21CDh       ; Int 21 instruction
        mov word ptr es:[ pspDosCall + 2 ], 0CBh        ; retf

        mov byte ptr es:[ pspDispatcher  ], 9Ah         ; call instruction
        mov word ptr es:[ 1+(pspDispatcher. _segment) ], cs
        mov word ptr es:[ 1+(pspDispatcher. _pointer) ], offset _CallDOS
        mov word ptr es:[ pspShareChain. _pointer ], -1 ; share vector 
        mov word ptr es:[ pspShareChain. _segment ], -1

        push ds
        xor ax, ax
        mov ds, ax

        mov bx, offset ( intCONTROLC * 4 )              ; Int23 control-C vector
        mov ax, word ptr [ _pointer ][ bx ]				; existing value copied to PSP
        mov dx, word ptr [ _segment ][ bx ]
        mov word ptr es:[ pspControlCVect. _pointer ], ax
        mov word ptr es:[ pspControlCVect. _segment ], dx

        mov bx, offset ( intCRITICALERROR * 4 )         ; Int24 criterror vector
        mov ax, word ptr [ _pointer ][ bx ]				; existing value copied to PSP
        mov dx, word ptr [ _segment ][ bx ]
        mov word ptr es:[ pspCritErrorVect. _pointer ], ax
        mov word ptr es:[ pspCritErrorVect. _segment ], dx

        RetCallersStackFrame ds, bx
        mov dx, word ptr [ _CS ][ bx ]					; set terminate vector as return address
        mov ax, word ptr [ _IP ][ bx ]
        mov word ptr es:[ pspTerminateVect. _pointer ], ax
        mov word ptr es:[ pspTerminateVect. _segment ], dx
        pop ds

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  copy command line
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        mov di, offset pspCommandTail					; build dummy command line
        mov word ptr ss:[ di ], 0D00h                   ; pre-init command line

        mov ax, word ptr [ _ExecBlock. _segment ][ bp ]
        or ax, word ptr [ _ExecBlock. _pointer ][ bp ]
        jz createPSP_56                                 ; if no load execute block -->
        
        getdarg ds, di, _ExecBlock
        cmp word ptr [ lexecCommandTail. _segment ][ di ], -1
        jz createPSP_36                                 ; if no command tail to copy -->
        mov ax, word ptr [ lexecCommandTail. _segment ][ di ]
        or ax, word ptr [ lexecCommandTail. _pointer ][ di ]
        jz createPSP_36                                 ; if no command tail to copy -->

        SaveRegisters es, si
        lds si, dword ptr [ lexecCommandTail ][ di ]
        mov di, offset pspCommandTail

        mov cx, 0001                                    ; add one for length byte  (thanks BillW)
        add cl, byte ptr [ si ]                         ; get character count
        rep movsb                                       ; copy
        mov byte ptr es:[ di ], 0Dh                     ; store trailing cr

        RestoreRegisters si, es                         ; address of PSP
        
createPSP_36:
        getdarg ds, di, _ExecBlock
        cmp word ptr [ lexecFCB_1. _segment ][ di ], -1
        jz createPSP_42                                 ; if no FCB 1 to copy -->
        mov ax, word ptr [ lexecFCB_1. _segment ][ di ]
        or ax, word ptr [ lexecFCB_1. _pointer ][ di ]
        jz createPSP_42                                 ; if no FCB 1 to copy -->

        lds si, dword ptr [ lexecFCB_1 ][ di ]
        mov di, offset pspFCB_1
        mov cx, (pspFCB_2 - pspFCB_1)/ 2
        rep movsw
        
createPSP_42:
        getdarg ds, di, _ExecBlock
        cmp word ptr [ lexecFCB_2. _segment ][ di ], -1
        jz createPSP_56                                 ; if no FCB 2 to copy -->
        mov ax, word ptr [ lexecFCB_2. _segment ][ di ]
        or ax, word ptr [ lexecFCB_2. _pointer ][ di ]
        jz createPSP_56                                 ; if no FCB 2 to copy -->

        lds si, dword ptr [ lexecFCB_2 ][ di ]
        mov di, offset pspFCB_2
        mov cx, (pspFCB_2 - pspFCB_1)/ 2
        rep movsw

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  exit
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

createPSP_56:
        pop es
        pop ds
        Return

        ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
        ;  Increment Ref Count                                          ;
        ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
        ;                                                               ;
        ;  Input:                                                       ;
        ;   al     SFT handle                                           ;
        ;   dx     increment value                                      ;
        ;...............................................................;

incrRefCount:

        push es
        push di
        push dx
        xor ah, ah
        call FindSFTbyHandle                            ; get corresponding SFT (es: di )

        pop dx
        test word ptr es:[ sftDevInfo ][ di ], sftNoInherit
        jnz incrRefCount_08                             ; if no inherit -->
        add word ptr es:[ sftRefCount ][ di ], dx       ; bump in use count

incrRefCount_08:
        pop di
        pop es
        ret

        ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
        ;  Allocate Loader Memory, copy Env block, init PSP             ;
        ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
        ;                                                               ;
        ;  Input:                                                       ;
        ;   es:bx  load execute block                                   ;
        ;   ax     paragraphs of program expected                       ;
        ;   dx     max requested paragraphs                             ;
        ;                                                               ;
        ;  Output:                                                      ;
        ;   ax     PSP segment address                                  ;
        ;   es     Data segment address                                 ;
        ;   cx     size in paras of area allocated                      ;
        ;   cy     if cannot create                                     ;
        ;...............................................................;

_LoaderAllocMemory:

        Entry
        ddef _ExecBlock, es, bx
        def  _requiredParas, ax
        def  _maxRequestedParas, dx
        def  _allocatedSize, 0000
        def  _envSeg, 0000
        def  _AllocEnv, 0000
        def  _programPSP, 0000
        def  _loadHigh, FALSE
        def  _StartSegment
        def  _envSize
        def _originalMemPolicy

        add word ptr [ _requiredParas ][ bp ], (sizePSP / PARAGRAPH)
        ifc _loaderAllocMemory_50

        or dx, dx                                       ; special 0000 request ?
        jnz _loaderAllocMemory_04                       ; no -->
        mov word ptr [ _maxRequestedParas ][ bp ], 0FFFFh
        mov word ptr [ _loadHigh          ][ bp ], TRUE ; if load HIGH

_loaderAllocMemory_04:
        mov ax, word ptr [ _requiredParas ][ bp ]
        cmp ax, word ptr [ _maxRequestedParas ][ bp ]
        jc _loaderAllocMemory_08
        jz _loaderAllocMemory_08
        mov word ptr [ _maxRequestedParas ][ bp ], ax

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  determine the size of the environment block, if any.
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

_loaderAllocMemory_08:
        mov ax, word ptr [ _RxDOS_AllocStrategy ]
        storarg _originalMemPolicy, ax                  ; save current alloc policy

        mov ax, word ptr es:[ lexecEnvironment ][ bx ]
        or ax, ax                                       ; env block address passed ?
        jnz _loaderAllocMemory_14                       ; if segment passed -->

        mov ax, word ptr ss:[ _RxDOS_CurrentPSP ]
        or ax, ax                                       ; current PSP available ?
        jz _loaderAllocMemory_12                        ; no, go figure something -->

        mov es, ax
        mov ax, word ptr es:[ pspEnvironment ]          ; get environment block address
        or ax, ax                                       ; available ?
        jnz _loaderAllocMemory_14                       ; yes, use it -->

_loaderAllocMemory_12:
        mov word ptr [ _RxDOS_AllocStrategy ], _MEM_LASTFIT_HIGH
        mov cx, sizeParasPerPage                        ; if no exec block, default to this for now
        jmp short _loaderAllocMemory_24                 ; go allocate default size

_loaderAllocMemory_14:
        mov es, ax                                      ; memory block address
        storarg _envSeg, ax                             ; save env segment to copy
        call _getSizeOfEnvString                        ; get size of env string

_loaderAllocMemory_24:
        storarg _envSize, cx                            ; save size in paras
        call allocateMemBlock                           ; return seg pointer to avail memory

        getarg ax, _originalMemPolicy                   ; restore current alloc policy
        mov word ptr [ _RxDOS_AllocStrategy ], ax
        jc _loaderAllocMemory_50                        ; if insufficient space to load -->
        storarg _AllocEnv, es                           ; store alloc environment

        xor ax, ax
        xor di, di                                      ; start of area
        getarg cx, _envSize                             ; get size in paras
        shl cx, 1                                       ; convert paras to words
        shl cx, 1                                       ; convert paras to words
        shl cx, 1                                       ; convert paras to words
        rep stosw                                       ; clear/ zero.

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  copy environment
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

        cmp word ptr [ _envSeg ][ bp ], 0000            ; no default segment ?
        jz _loaderAllocMemory_42                        ; skip copy -->

        push ds
        xor di, di
        xor si, si
        getarg ds, _envSeg
        getarg cx, _envSize                             ; env size in paras
        shl cx, 1                                       ; convert to words !
        shl cx, 1
        shl cx, 1
        rep movsw                                       ; copy env block

        pop ds

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  allocate block
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

_loaderAllocMemory_42:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中国色在线观看另类| 国产麻豆91精品| 亚洲乱码中文字幕| 亚洲欧洲国产日本综合| 国产精品免费观看视频| 国产精品欧美久久久久无广告 | 久久久久久免费网| 日韩女优电影在线观看| 精品国精品国产尤物美女| 欧美一区二区三区白人| 日韩欧美国产午夜精品| 久久蜜桃香蕉精品一区二区三区| 久久亚洲综合色一区二区三区| 久久久久国产一区二区三区四区 | 日韩二区在线观看| 久草在线在线精品观看| 成人综合婷婷国产精品久久蜜臀| 国产 日韩 欧美大片| 不卡的电影网站| 欧美亚男人的天堂| 欧美电影免费观看完整版| 久久久噜噜噜久久人人看| 国产精品欧美综合在线| 一区二区三区毛片| 免费成人在线观看| 国产精品自拍网站| 色诱视频网站一区| 欧美一级精品大片| 国产精品丝袜在线| 亚洲高清不卡在线观看| 国内偷窥港台综合视频在线播放| 福利视频网站一区二区三区| 色婷婷精品久久二区二区蜜臀av | 欧美v亚洲v综合ⅴ国产v| 欧美精品一区二区三区很污很色的| 久久久www成人免费无遮挡大片| 国产精品久久免费看| 亚洲成人av资源| 国产乱对白刺激视频不卡| 色婷婷综合久久久久中文| 91精品国产品国语在线不卡| 国产欧美va欧美不卡在线 | 日本伦理一区二区| 欧美mv和日韩mv的网站| 亚洲激情校园春色| 精品一区二区三区视频在线观看| 97超碰欧美中文字幕| 91精品国产欧美日韩| 国产精品热久久久久夜色精品三区| 亚洲成人av一区二区| 成人午夜电影网站| 9191久久久久久久久久久| 中文字幕av在线一区二区三区| 亚洲超丰满肉感bbw| 国产成人亚洲综合a∨婷婷| 欧美日韩美女一区二区| 日本一二三四高清不卡| 日韩中文字幕1| 色婷婷亚洲婷婷| 国产亚洲精品久| 日韩电影网1区2区| 91麻豆精品一区二区三区| 精品嫩草影院久久| 丝袜美腿一区二区三区| aaa欧美色吧激情视频| 久久综合久久鬼色| 日韩成人伦理电影在线观看| 96av麻豆蜜桃一区二区| 久久免费电影网| 男男视频亚洲欧美| 欧美麻豆精品久久久久久| 亚洲视频一区二区在线观看| 国产老女人精品毛片久久| 欧美精品一二三四| 一卡二卡三卡日韩欧美| 成人app软件下载大全免费| 欧美精品一区二区在线播放 | heyzo一本久久综合| 久久久久亚洲综合| 久久精品国产精品亚洲红杏| 欧美精品久久一区二区三区| 亚洲在线视频一区| 色诱亚洲精品久久久久久| 中文字幕日韩精品一区| 国产精品一区二区免费不卡| 日韩一级二级三级| 日韩精品国产欧美| 欧美日本国产视频| 亚洲专区一二三| 91黄色免费看| 夜夜嗨av一区二区三区| 91在线免费视频观看| 日本一区二区成人| k8久久久一区二区三区| 国产精品理论片| 99精品偷自拍| 亚洲桃色在线一区| 一本大道久久a久久精二百| 亚洲日本在线观看| 色综合久久久久网| 亚洲综合区在线| 欧美日韩一区不卡| 丝袜诱惑制服诱惑色一区在线观看| 欧美日韩亚洲综合| 奇米777欧美一区二区| 91精品国产色综合久久| 久久国产精品色| 久久先锋影音av鲁色资源网| 国产精品一区二区免费不卡 | 久久精品视频一区| 国产自产高清不卡| 国产喷白浆一区二区三区| 国产白丝网站精品污在线入口| 国产精品天天摸av网| 色婷婷综合五月| 天堂成人免费av电影一区| 欧美一级高清片| 国产成人在线视频免费播放| 国产精品久久久久久久浪潮网站 | 欧美婷婷六月丁香综合色| 日韩和欧美的一区| 精品国内片67194| 成人av在线一区二区三区| 一区二区三区不卡在线观看| 欧美美女网站色| 国产老女人精品毛片久久| 亚洲色图另类专区| 欧美电影在线免费观看| 国产精品亚洲一区二区三区妖精 | 久久av资源网| 欧美国产日韩亚洲一区| 一本大道久久a久久精品综合| 视频一区二区三区中文字幕| 精品国产乱码久久久久久夜甘婷婷| 成人ar影院免费观看视频| 亚洲综合激情小说| 欧美成人官网二区| av亚洲精华国产精华| 视频在线在亚洲| 国产日韩欧美综合在线| 欧美性一级生活| 国内精品久久久久影院薰衣草| 亚洲视频一区在线| 日韩视频一区二区在线观看| caoporm超碰国产精品| 婷婷久久综合九色综合伊人色| 久久久欧美精品sm网站| 欧洲精品在线观看| 国产在线乱码一区二区三区| 中文字幕一区二区视频| 欧美一区二区成人| www.久久久久久久久| 美女视频黄久久| 一区二区三区资源| 久久久国际精品| 欧美日韩精品是欧美日韩精品| 成人午夜看片网址| 美女国产一区二区三区| 国产一区二区三区在线观看免费 | 欧美精品一区二区三区在线| 在线视频一区二区三| 国产福利视频一区二区三区| 亚洲第一搞黄网站| 亚洲欧洲美洲综合色网| 日韩精品一区二区三区中文精品| 91在线视频观看| 国产成人免费av在线| 日韩av一区二区三区四区| 亚洲精品日产精品乱码不卡| 26uuuu精品一区二区| 欧美久久久一区| 色综合激情五月| 国产91精品一区二区| 卡一卡二国产精品| 亚洲1区2区3区视频| 国产精品国产馆在线真实露脸| 精品欧美久久久| 91精品久久久久久久99蜜桃| 91网站黄www| 成人精品小蝌蚪| 国产一区二区三区综合| 久久黄色级2电影| 亚洲成人黄色小说| 亚洲一区中文日韩| 亚洲精品久久嫩草网站秘色| 国产精品欧美综合在线| 国产日韩av一区| 国产三级一区二区| 久久人人97超碰com| 精品日韩在线观看| 日韩视频在线永久播放| 56国语精品自产拍在线观看| 欧美性色黄大片| 欧美视频完全免费看| 日本高清不卡在线观看| 91蜜桃传媒精品久久久一区二区| k8久久久一区二区三区| 99re成人精品视频| 色婷婷av久久久久久久| 91视频在线观看免费|