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

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

?? rxdossft.asm

?? dos source
?? ASM
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
_SFTReadFile:

        Entry 2
        darg _bufPtr

        def _readCount, cx
        ddef _sftpointer, es, di
        defbytes _diskAccess, sizeDISKACCESS

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  is file redirected to a device ?
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        test word ptr es:[ sftDevInfo ][ di ], sftIsDevice
        jz _SFTReadFile_14                              ; if file -->

        xor cx, cx                                      ; actually read
        test word ptr es:[ sftDevInfo ][ di ], sftEof   ; is it end of file ?
        jnz _SFTReadFile_12                             ; if end of file -->

        push word ptr es:[ sftDCB. _segment ][ di ]
        push word ptr es:[ sftDCB. _pointer ][ di ]
        mov cx, word ptr [ _readCount ][ bp ]
        getdarg es, di, _bufPtr
        call devCharReadLine                            ; read till cr or eof.
        jnz _SFTReadFile_10                             ; if not end of file -->

        getdarg es, di, _sftpointer
        or word ptr es:[ sftDevInfo ][ di ], sftEof     ; set end of file flag

_SFTReadFile_10:
        getdarg es, di, _bufPtr
        cmp cx, word ptr [ _readCount ][ bp ]           ; at maximum buffer ?
        jge _SFTReadFile_12                             ; yes -->

        add di, cx                                      ; add cr/ lf
        mov al, ControlM
        stosb                                           ; store cr

        inc cx                                          ; adjust return count
        cmp cx, word ptr [ _readCount ][ bp ]           ; at maximum buffer ?
        jge _SFTReadFile_12                             ; yes -->

        mov al, ControlJ
        stosb                                           ; store cr
        inc cx

_SFTReadFile_12:
        or cx, cx
        jmp _SFTReadFile_36

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  is file read from stdin ?
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

_SFTReadFile_14:
        test word ptr es:[ sftDevInfo ][ di ], sftIsDevice
        jz _SFTReadFile_20                              ; if file -->
        test word ptr es:[ sftDevInfo ][ di ], sftIsstdin
        jz _SFTReadFile_20                              ; if file -->

        push word ptr es:[ _bufPtr. _segment ][ di ]
        push word ptr es:[ _bufPtr. _pointer ][ di ]    ; buffer address
        call _SFTReadLine                               ; read line
        jmp _SFTReadFile_36

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  initialize disk access block
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

_SFTReadFile_20:
        or cx, cx                                       ; reading any ?
        jz _SFTReadFile_34                              ; if length is zero -->

        lea bx, _diskAccess [ bp ]                      ; build access control block
        call buildAccessRef                             ;  ...from sft

        mov ax, word ptr es:[ sftDevInfo    ][ di ]     ; get drive number
        call insureSFTSameVolume                        ; insure same volume
        jc _SFTReadFile_36                              ; read aborted -->

        xor cx, cx                                      ; bytes read (none yet )
        lea bx, _diskAccess [ bp ]                      ; build access control block
        getdarg es, di, _sftpointer                     ; restore sft pointer
        mov ax, word ptr es:[ sftFileSize. _low  ][ di ]
        mov dx, word ptr es:[ sftFileSize. _high ][ di ]

        sub ax, word ptr es:[ sftFilePosition. _low  ][ di ]
        sbb dx, word ptr es:[ sftFilePosition. _high ][ di ]
        jc _SFTReadFile_34                              ; if past end of file -->

        mov cx, word ptr _readCount [ bp ]              ; count: cx
        or dx, dx                                       ; more than 65k of file left ?
        jnz _SFTReadFile_26                             ; ok to continue reading -->

        cmp ax, cx                                      ; enough space to absorb read ?
        jnc _SFTReadFile_26                             ; ok to continue reading -->

        mov cx, ax                                      ; max read just to end of file
        or cx, cx                                       ; if zero, no need to read 
        jz _SFTReadFile_34

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  if stdin, read line even if from a file
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

_SFTReadFile_26:
        mov ax, word ptr es:[ sftFileSize. _low  ][ di ]
        mov dx, word ptr es:[ sftFileSize. _high ][ di ]
        mov word ptr ss:[ diskAcFileSize. _low  ][ bx ], ax
        mov word ptr ss:[ diskAcFileSize. _high ][ bx ], dx

        mov ax, word ptr es:[ sftFilePosition. _low  ][ di ]
        mov dx, word ptr es:[ sftFilePosition. _high ][ di ]
        mov word ptr ss:[ diskAcPosition. _low  ][ bx ], ax
        mov word ptr ss:[ diskAcPosition. _high ][ bx ], dx

        getdarg es, di, _bufPtr                         ; buffer es: di
        call readLogicalBuffer                          ; Access buffer: ds: bx

        getdarg es, di, _sftPointer                     ; restore pointer to sft buffer
        add word ptr es:[ sftFilePosition. _low  ][ di ], cx
        adc word ptr es:[ sftFilePosition. _high ][ di ], 0000

        mov dx, word ptr ss:[ diskAcCurCluster ][ bx ]
        mov word ptr es:[ sftCurCluster ][ di ], dx
        call _computeRelativeCluster

_SFTReadFile_34:
        clc

_SFTReadFile_36:
        mov ax, cx                                      ; return count
        Return

        ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
        ;  Read Line From SFT                                           ;
        ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
        ;                                                               ;
        ;  Input:                                                       ;
        ;   cx     max bytes to read                                    ;
        ;   es:di  sft pointer                                          ;
        ;   stack  buffer address                                       ;
        ;                                                               ;
        ;  Output:                                                      ;
        ;   cx     bytes actually read                                  ;
        ;   zr     means end of file or wrong address                   ;
        ;...............................................................;

_SFTReadLine:

        Entry 2
        darg _bufPtr

        def  _readMax, cx
        def  _readActual, 0000
        ddef _sftpointer, es, di
        defbytes _diskAccess, sizeDISKACCESS

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  is file redirected to a device 
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        test word ptr es:[ sftDevInfo ][ di ], sftIsDevice
        jz _SFTReadLine_14                              ; if file -->

        test word ptr es:[ sftDevInfo ][ di ], sftEof
        jz _SFTReadLine_36                              ; if at end of file -->

        push word ptr es:[ sftDCB. _segment ][ di ]
        push word ptr es:[ sftDCB. _pointer ][ di ]
        mov cx, word ptr [ _readMax ][ bp ]
        getdarg es, di, _bufPtr
        call devCharReadLine                            ; read till cr or eof.
        jnz _SFTReadLine_10                             ; if not end of file -->

        getdarg es, di, _sftpointer
        or word ptr es:[ sftDevInfo ][ di ], sftEof     ; set end of file flag

_SFTReadLine_10:
        getdarg es, di, _bufPtr
        cmp cx, word ptr [ _readMax ][ bp ]             ; at maximum buffer ?
        jge _SFTReadLine_12                             ; yes -->

        add di, cx                                      ; add cr/ lf
        mov al, ControlM
        stosb                                           ; store cr
        inc cx                                          ; adjust return count

_SFTReadLine_12:
        jmp _SFTReadLine_36

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  initialize disk access block
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

_SFTReadLine_14:
        or cx, cx                                       ; reading any ?
        jz _SFTReadLine_34                              ; if length is zero -->

        lea bx, _diskAccess [ bp ]                      ; build access control block
        call buildAccessRef                             ;  ...from sft

        mov ax, word ptr es:[ sftFileSize. _low  ][ di ]
        mov dx, word ptr es:[ sftFileSize. _high ][ di ]
        mov word ptr ss:[ diskAcFileSize. _low  ][ bx ], ax
        mov word ptr ss:[ diskAcFileSize. _high ][ bx ], dx

        mov ax, word ptr es:[ sftFilePosition. _low  ][ di ]
        mov dx, word ptr es:[ sftFilePosition. _high ][ di ]
        mov word ptr ss:[ diskAcPosition. _low  ][ bx ], ax
        mov word ptr ss:[ diskAcPosition. _high ][ bx ], dx

        getdarg es, di, _bufPtr                         ; buffer es: di
        mov cx, word ptr [ _readMax ][ bp ]             ; max bytes to read
        call readLine                                   ; read line

        getdarg es, di, _sftpointer
        mov word ptr es:[ sftFilePosition. _low  ][ di ], ax
        mov word ptr es:[ sftFilePosition. _high ][ di ], dx
        
        mov dx, word ptr ss:[ diskAcCurCluster ][ bx ]
        mov word ptr es:[ sftCurCluster ][ di ], dx
        call _computeRelativeCluster

_SFTReadLine_34:
        clc

_SFTReadLine_36:
        mov ax, cx                                      ; return count
        Return

        ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
        ;  Write To SFT                                                 ;
        ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
        ;                                                               ;
        ;  Input:                                                       ;
        ;   es:di  sft pointer                                          ;
        ;   cx     bytes to write                                       ;
        ;   stack  buffer address                                       ;
        ;                                                               ;
        ;  Output:                                                      ;
        ;   cx     bytes actually written                               ;
        ;   cy     end of available disk space reached                  ;
        ;...............................................................;

_SFTWriteFile:

        Entry 2
        darg _bufPtr

        def  _actuallyWritten, 0000
        def  _writeCount, cx
        ddef _sftpointer, es, di
        defbytes _diskAccess, sizeDISKACCESS
        defbytes _expandedBuffer, 128

;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;  is file redirected to stdout device 
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

        test word ptr es:[ sftDevInfo ][ di ], sftIsDevice
        ifz _SFTWriteFile_36                            ; if file -->
        test word ptr es:[ sftDevInfo ][ di ], sftIsstdout
        ifz _SFTWriteFile_36                            ; no -->
        or cx, cx                                       ; none to write ?
        ifz _SFTWriteFile_36                            ; special case -->

        getdarg es, di, _bufPtr                         ; get buffer address
        lea si, offset [ _expandedBuffer ][ bp ]
        lea dx, offset [ _expandedBuffer + 128 - 7][ bp ]

_SFTWriteFile_06:
        mov al, byte ptr es:[ di ]                      ; get character 
        mov byte ptr ss:[ si ], al                      ; store character
        inc si                                          ; advance pointer

        cmp al, ControlI                                ; tab character ?
        jnz _SFTWriteFile_08                            ; no, go see what it is -->

        mov al, 8
        mov ah, byte ptr [ _RxDOS_TabPosition ]         ; current tab position
        and ah, 7                                       ; tab offset
        sub al, ah                                      ; bytes to offset
        add byte ptr [ _RxDOS_TabPosition ], al         ; advance position

        cbw                                             ; 16 bit offset
        dec si                                          ; account

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久综合网| 久草中文综合在线| 日本亚洲最大的色成网站www| 国产河南妇女毛片精品久久久| 91同城在线观看| 久久女同性恋中文字幕| 日韩福利视频导航| 精品视频一区 二区 三区| 最新日韩av在线| 高清不卡一区二区在线| 日韩一区二区三区四区五区六区| 夜夜夜精品看看| 91日韩一区二区三区| 国产欧美日韩另类一区| 九九精品一区二区| 91福利视频久久久久| 亚洲欧美在线另类| 懂色av一区二区三区免费观看| 制服.丝袜.亚洲.另类.中文| 亚洲成人先锋电影| 欧美日韩五月天| 亚洲网友自拍偷拍| 欧美日韩高清在线| 日韩影视精彩在线| 欧美高清视频在线高清观看mv色露露十八 | 成人国产免费视频| 欧美国产精品一区二区三区| 国产盗摄女厕一区二区三区| 久久久亚洲精华液精华液精华液| 精品一区二区三区的国产在线播放| 69堂精品视频| 久久 天天综合| 久久久99久久| 成人精品亚洲人成在线| 国产精品免费人成网站| www.99精品| 一区二区三区精密机械公司| 欧美午夜不卡视频| 日韩中文字幕麻豆| 精品99一区二区三区| 国产成人一级电影| 日韩一区欧美一区| 欧美日韩黄色一区二区| 美女高潮久久久| 国产欧美一区二区精品久导航 | 国内久久精品视频| 久久女同精品一区二区| 99久久精品国产一区二区三区| 一区二区日韩电影| 欧美一区二区私人影院日本| 麻豆国产一区二区| 欧美激情综合在线| 欧美三级电影网| 黄页网站大全一区二区| 日韩一区有码在线| 欧美一级日韩免费不卡| 国产精品 欧美精品| 亚洲视频一二三| 日韩欧美国产综合一区 | 1区2区3区国产精品| 欧美日韩在线直播| 国产精品一区二区视频| 一区二区三区日韩欧美精品| 精品成人私密视频| 91久久线看在观草草青青| 日本vs亚洲vs韩国一区三区二区| 久久综合色天天久久综合图片| 91丨九色porny丨蝌蚪| 美女视频黄久久| 樱花草国产18久久久久| 久久色成人在线| 欧美日韩亚洲丝袜制服| 国产精品一区二区三区四区| 丝袜脚交一区二区| 成人欧美一区二区三区1314| 欧美成人a在线| 欧美少妇性性性| 成人成人成人在线视频| 蜜桃视频免费观看一区| 一二三区精品视频| 国产精品久久久久毛片软件| 欧美成人一区二区三区片免费 | 在线观看国产一区二区| 国产成人8x视频一区二区| 日韩精品亚洲专区| 夜夜嗨av一区二区三区四季av| 久久久精品一品道一区| 欧美一区二区三区不卡| 日本道精品一区二区三区| 成人精品小蝌蚪| 久草精品在线观看| 日韩av中文字幕一区二区| 亚洲一区二区在线观看视频 | 日本精品视频一区二区| 国产mv日韩mv欧美| 国产成人免费视频网站| 国产一区二区三区最好精华液| 天天色综合天天| 亚洲v日本v欧美v久久精品| 亚洲视频一二区| 亚洲欧洲成人自拍| 综合av第一页| 自拍偷拍国产精品| 亚洲欧洲av另类| 国产精品卡一卡二| 中文字幕一区二区三中文字幕| 国产午夜精品福利| 国产午夜精品福利| 国产欧美在线观看一区| 国产欧美日韩另类一区| 国产三区在线成人av| 日本一区二区三区电影| 中文av字幕一区| 国产精品区一区二区三| 中文字幕永久在线不卡| 亚洲乱码国产乱码精品精的特点 | 中文字幕+乱码+中文字幕一区| 国产偷国产偷亚洲高清人白洁| 国产日韩欧美在线一区| 欧美国产国产综合| 亚洲欧美日韩国产中文在线| 亚洲综合免费观看高清在线观看| 亚洲精品国产品国语在线app| 一区二区三区欧美日| 亚洲国产aⅴ成人精品无吗| 日本vs亚洲vs韩国一区三区| 久久精品二区亚洲w码| 国产成人h网站| 色婷婷激情综合| 欧美精品粉嫩高潮一区二区| 亚洲精品在线一区二区| 国产精品天干天干在观线| 樱花草国产18久久久久| 日韩经典中文字幕一区| 国产一区二区三区四| av在线这里只有精品| 欧美美女网站色| 国产亚洲精品aa| 亚洲女子a中天字幕| 免费一级片91| 波多野结衣中文字幕一区二区三区 | 久久国内精品视频| 国产很黄免费观看久久| 欧美影院午夜播放| 2023国产精品自拍| 亚洲婷婷国产精品电影人久久| 亚洲国产精品精华液网站 | 日本sm残虐另类| 国产a级毛片一区| 欧美日韩精品欧美日韩精品一 | 26uuu国产电影一区二区| 中文字幕在线一区| 免费视频最近日韩| 91免费在线播放| 欧美电视剧在线看免费| 亚洲免费在线电影| 国产在线精品一区二区夜色| 欧日韩精品视频| 国产色综合久久| 日韩电影一区二区三区四区| 成人国产精品免费观看视频| 欧美一级夜夜爽| 亚洲欧美在线观看| 国产精品一区二区果冻传媒| 欧美美女视频在线观看| 亚洲日本成人在线观看| 国产精品一区2区| 日韩欧美123| 日韩精品欧美精品| 91网站在线播放| 欧美激情一区二区在线| 蜜桃av一区二区在线观看| 欧美性一级生活| 国产精品不卡一区| 国产99久久久国产精品潘金| 日韩欧美国产麻豆| 性欧美大战久久久久久久久| 91蝌蚪国产九色| 1区2区3区国产精品| 国产精品18久久久久久久久| 日韩午夜电影在线观看| 日韩**一区毛片| 欧美高清性hdvideosex| 亚洲成人资源网| 欧美日韩视频在线第一区 | 91久久线看在观草草青青 | 日本一区二区电影| 国产综合一区二区| 精品免费国产一区二区三区四区| 日韩精品欧美成人高清一区二区| 欧美在线观看视频在线| 亚洲激情欧美激情| 欧美怡红院视频| 亚洲成人av一区二区三区| 欧美亚洲丝袜传媒另类| 一区二区日韩电影| 欧美三级电影一区| 日韩和欧美一区二区三区| 在线播放91灌醉迷j高跟美女 | 久久99精品国产.久久久久|