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

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

?? l2.asm

?? 開放源碼的編譯器open watcom 1.6.0版的源代碼
?? ASM
字號:
                .286
code            segment 'CODE'
assume          cs:code, ds:code

;
; QNX Boot loader.  This is on block one of the QNX partition.
; The PC/AT BIOS reads this block into 7000h and transfers control to it
;
; N.B. Actually, it's loaded at 0:7C00 [bac]
;

BIOS_TIMER      =       046ch   ; Where the BIOS keeps the tick count (18/sec)

BLK_SIZE        =       512     ; Number bytes in a disk block

stk             =       0800h   ; stack (grows down)
xtnttab         =       0400h   ; Where we read the extent table
block2          =       0200h   ; Where we read QNX partition block 2

xtnt            struc           ; structure offsets of directory entry on disk
                db 20   dup(?)
xtnt_1st_blk    dw      ?, ?    ; 20
xtnt_1st_nblks  dw      ?, ?    ; 24
xtnt_blk        dw      ?, ?    ; 28
                db 16   dup(?)
xtnt_cnt        dw      ?, ?    ; 48
xtnt            ends

                org     01f0h
load_seg        dw      ?       ; "BABE"
bootsrc         db      'F'     ; Boot source 'F'/'H'=floppy/hard
sctr_base       db      ?       ; Sector base
boffset         dw      ?, ?    ; Block offset of QNX partition (4 byte long)
nheads          dw      ?       ; Number of heads
nsctr_trk       db      ?, ?    ; Sectors per track
ncyl            dw      ?       ; Number of cylinders
nsctr_cyl       dw      ?       ; 055h, AAh  (For hard disk bootable partition)

;
; Copy boot program up to top of available memory
; then transfer control to boot
;
                org     0

start:;         jmp short begin ; BIOS scan wants jmp instruction
begin:          call restart    ; The call will push our return addr
restart:        int 12h         ; memory size in kilobytes
                sub ax,4        ; reserve top 4k
                shl ax,6
                push cs         ; paranoia
                pop ds
                pop si          ; Recover return address
                sub si,3        ; Size of jmp/call instructions
                mov es,ax
                xor di,di       ; Where we want to go
                mov cx,BLK_SIZE/2
                cli
                rep movsw
                sti
                push es
                push offset boot
                retf

boot:           push cs
                pop ds
                push cs
                pop ss
                mov sp,stk
;
; Tell 'em .altboot is available and
; give 'em some time to choose it
;
                mov si,offset msg
prt:            lodsb
                or al,al
                je root
                call putc
                jmp prt
;
; calculate sectors/cylinder (for converting block numbers)
; and then read the first block of the root directory
;
root:           mov ax,nheads
                mul nsctr_trk
                mov nsctr_cyl,ax

                mov ax,2                ; We want to read the second block
                cwd
                mov di,1
                mov bx,block2
                call read_blk           ; Read block 2 (base 1) of partition

                mov ds,cx
                mov cx,3*9              ; 27 ticks (1.5 seconds)
kbpoll:         mov ax,0100h            ; check if key pressed
                int 16h                 ; (returns scan code/character)
                jnz chkalt
                mov dx,word ptr ds:BIOS_TIMER
roll:           cmp dx,word ptr ds:BIOS_TIMER
                je roll                 ; spin till timer increments
                loop kbpoll

chkalt:         push cs
                pop ds
                mov bp,block2+2*64      ; Assume .boot (3rd dir entry)
                cmp al,1bh
                jne load
                or bootsrc,' '          ; .altboot or altsysinit requested
                cmp xtnt_cnt[bp+64],0   ; Check for empty .altboot (4th entry)
                je load
                add bp,64

load:           mov cx,xtnt_cnt[bp]
                cmp cx,1
                je l0                   ; Skip if only one extent
;
; read extent table for finding subsequent extents
;
                push bx
                mov ax,xtnt_blk[bp]
                mov dx,xtnt_blk[bp+2]
                mov di,1
                mov bx,xtnttab
                call read_blk
                pop bx

l0:             lea si,xtnt_1st_blk[bp]
                mov di,xtnttab+8
                mov ax,[si]
                movsw                   ; Move xtnt_1st_blk
                mov dx,[si]
                movsw
                movsw                   ; Move xtnt_1st_cnt
                movsw

                mov di,1
                call read_blk           ; Read block 2 (base 1) of QNX parition
                mov bp,60h              ; Default is segment 60
                cmp [bx+4],'DD'         ; Signature present?
                jne lp0
                mov bp,[bx+10]          ; Get load segment (signature present)
lp0:            mov load_seg,bp

                mov si,xtnttab+8
lp1:            mov ax,[si]
                mov dx,[si+2]
lp2:            mov di,[si+4]           ; [si+6] better be zero
                mov es,bp
                xor bx,bx
                call read_blk           ; Read block
                add ax,di               ; Increment block number
                adc dx,0
                sub [si+4],di           ; Decrement number of blocks
                shl di,5                ; log2(512/16) [paragraphs/block]
                add bp,di
                cmp word ptr [si+4],0
                jnz lp2                 ; Continue while more blocks to read
                add si,8
                loop lp1

;
; Start up process manager
;
system_up:      mov al,0ffh             ; Disallow further hardware interrupts
                out 21h,al
                cli

                mov bl,bootsrc
;               mov ax,load_seg
;               or ax,ax                ; This will be zero for an old image
;               je oldimage
;               mov es,ax
                mov es,load_seg
                mov es:0ch,bl           ; New images patch the cs:000c of proc
;               jmp short startos
;oldimage:      mov ax,60h              ; Old images patch the bootsrc at 60:ff
;               mov es,ax
;               mov es:0ffh,bl
;               add ax,20h              ; Old images start execution at 80:0
;startos:       push ax
                push es
                xor ax,ax
                push ax
                retf                    ; Start the OS

;dummy:         iret

;
; Read di blocks at dx:ax into es:bx
;
read_blk:       push ax
                push bx
                push cx
                push dx
                sub ax,1
                sbb dx,0
                add ax,boffset
                adc dx,boffset+2
                div nsctr_cyl           ; ax = track, dx = remainder
                cmp ax,1024
                jl cylok
;
; Award BIOS allows two more bits of cylinder information
; in bits 6 and 7 of [dh]
;
                mov al,'C'              ; Inform user of cylinder > 1023
                call putc
cloop:          jmp cloop
cylok:          mov ch,al
                mov cl,ah
                ror cl,2                ; Top 2 bits of track in cl
                mov ax,dx
                cwd
                div nsctr_trk
                mov dh,al
                or cl,ah
                add cl,sctr_base
;
; if [di] is larger than remaining sectors/track then just read remainder
; also should return number of sectors read [al] in [di]
;
                test bootsrc,8          ; ctrl('h')
                je floppy
hard:           mov dl,80h              ; Read from hard disk
                mov al,dl               ; read up to 64k
                jmp short minimize
floppy:         xor dl,dl               ; Read from floppy disk
                mov al,[nsctr_trk]      ; read up to end of track
                sub al,ah
minimize:       xor ah,ah               ; di = min(di, al)
                cmp ax,di
                jg tryagain
                mov di,ax
tryagain:       mov al,13
                call putc
                mov al,10
                call putc
                mov ax,di
                call putx
                mov ax,bx
                call putx
                mov ax,cx
                call putx
                mov ax,dx
                call putx
                mov ax,es
                call putx
                mov ax,di
                mov ah,2                ; Read some blocks
                int 13h
                jnc no_err
;               mov al,'?'              ; Inform user of bad block
                mov al,ah
                add al,'0'
                call putc
                xor ah,ah               ; Reset disk
                int 13h
shr di,1
                jmp tryagain
no_err:         or ax,ax                ; zero sectors read with no error?
                jz blip
                mov di,ax
;blip:          mov al,'.'              ; positive feedback
blip:           add al,'@'
                call putc
                pop dx
                pop cx
                pop bx
                pop ax
                ret

putx:           rol ax,4
                call putn
                rol ax,4
                call putn
                rol ax,4
                call putn
                rol ax,4
                call putn
                mov al,' '
                call putc
                ret

putn:           push ax
                and al,15
                add al,'0'
                cmp al,'9'
                jbe put
                add al,7        ; '@'-'9'
put:            call putc
                pop ax
                ret

putc:           push bx
                mov bx,7
                mov ah,14
                int 10h
                pop bx
                ret

msg             db              "Press Esc to boot alternate OS", 0

code            ends
                end     start

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
老司机午夜精品99久久| 亚洲天堂成人网| 久久爱www久久做| 日韩欧美一级在线播放| 韩国av一区二区三区| 国产欧美va欧美不卡在线| 风间由美一区二区三区在线观看| 国产欧美一区视频| 99精品久久只有精品| 一级中文字幕一区二区| 51精品久久久久久久蜜臀| 精品亚洲国内自在自线福利| 国产免费久久精品| 99综合影院在线| 亚洲大片精品永久免费| 精品日本一线二线三线不卡| 不卡免费追剧大全电视剧网站| 亚洲综合色视频| 欧美成人aa大片| 国产福利一区二区三区在线视频| 亚洲视频图片小说| 宅男在线国产精品| 成人黄色软件下载| 图片区日韩欧美亚洲| 亚洲国产精品精华液ab| 欧美视频在线观看一区二区| 精品系列免费在线观看| 亚洲精品一二三| 精品sm捆绑视频| 日本高清不卡aⅴ免费网站| 麻豆精品一二三| 亚洲狼人国产精品| 久久久久久日产精品| 欧美亚洲动漫另类| 国产成人av电影| 三级久久三级久久久| 国产欧美一区二区三区网站| 7777精品伊人久久久大香线蕉的| 国产成人av一区二区三区在线 | www.亚洲色图| 日韩成人精品视频| 亚洲视频网在线直播| 久久亚洲综合av| 欧美妇女性影城| 91免费国产视频网站| 国产一区二区三区高清播放| 午夜精品123| 亚洲青青青在线视频| 国产片一区二区三区| 欧美不卡激情三级在线观看| 欧美性一级生活| www.色精品| 国产不卡在线一区| 久草这里只有精品视频| 青青青爽久久午夜综合久久午夜 | 国产日韩在线不卡| 日韩欧美电影一区| 8v天堂国产在线一区二区| 91在线小视频| 成人午夜私人影院| 国产精品资源站在线| 蜜臀av一区二区| 免费成人结看片| 图片区小说区国产精品视频| 亚洲成在线观看| 亚洲国产你懂的| 亚洲最新视频在线播放| 综合色中文字幕| 国产精品久久久一本精品| 欧美国产日韩a欧美在线观看| 久久婷婷久久一区二区三区| 精品国产乱码久久久久久免费| 欧美精品v国产精品v日韩精品| 欧美在线制服丝袜| 欧美中文字幕一区二区三区| 在线免费观看成人短视频| 91极品美女在线| 在线亚洲一区二区| 欧美私模裸体表演在线观看| 欧美午夜电影网| 欧美肥大bbwbbw高潮| 欧美一级爆毛片| 精品国产免费一区二区三区四区| 日韩你懂的在线观看| 欧美r级在线观看| 精品欧美黑人一区二区三区| 久久综合久久99| 欧美激情一区二区三区| 亚洲乱码日产精品bd| 一区二区三区视频在线观看| 亚洲福利电影网| 日韩一区欧美二区| 国产毛片精品一区| 99视频一区二区三区| 欧美综合久久久| 日韩欧美美女一区二区三区| 2017欧美狠狠色| 成人欧美一区二区三区1314 | 欧美国产精品久久| 亚洲图片你懂的| 日本少妇一区二区| 国产盗摄一区二区| 在线观看日韩精品| 日韩三级视频中文字幕| 国产精品家庭影院| 亚洲成人自拍网| 国产激情一区二区三区四区 | 美女性感视频久久| 99精品视频在线播放观看| 欧美在线一二三四区| 日韩视频一区二区三区在线播放| 日本一二三不卡| 日日夜夜精品视频免费| 国产成人久久精品77777最新版本| 色综合天天性综合| 日韩一区二区三区在线观看| 亚洲国产精品成人综合| 五月综合激情网| 懂色av一区二区三区免费观看| 欧美日韩和欧美的一区二区| 国产亚洲成aⅴ人片在线观看| 亚洲综合激情网| 国产91丝袜在线播放0| 欧美人成免费网站| 国产精品护士白丝一区av| 青青草国产精品97视觉盛宴| 91在线精品一区二区| 精品国产凹凸成av人网站| 亚洲免费高清视频在线| 国产精品一区在线观看你懂的| 欧美三级电影在线看| 欧美国产精品一区二区三区| 蜜桃av一区二区三区电影| 一本一本大道香蕉久在线精品| 亚洲精品一线二线三线无人区| 亚洲综合激情另类小说区| 成人黄色av电影| 久久亚洲综合色一区二区三区| 亚洲妇熟xx妇色黄| 91九色02白丝porn| 亚洲三级在线观看| 国产福利一区在线| 精品欧美一区二区三区精品久久| 亚洲图片有声小说| 一本色道久久综合亚洲精品按摩| 久久久久久久综合色一本| 男男视频亚洲欧美| 欧美三级电影在线看| 亚洲精品中文在线影院| 不卡一区二区中文字幕| 国产偷国产偷精品高清尤物| 精品一区二区三区欧美| 日韩精品一区二区三区中文不卡| 性欧美疯狂xxxxbbbb| 91成人在线精品| 一区二区三区中文在线观看| av一区二区久久| 国产精品欧美一级免费| 国产不卡视频一区二区三区| 欧美精品一区二区三区高清aⅴ | 欧美日韩美女一区二区| 亚洲愉拍自拍另类高清精品| 99re成人精品视频| 最新成人av在线| 91在线视频播放| 中文字幕一区二区三区乱码在线| 风间由美一区二区三区在线观看 | 亚洲国产精品国自产拍av| 国产成人av电影在线播放| 国产欧美va欧美不卡在线| 成人综合激情网| 国产精品福利av| 色哟哟欧美精品| 亚洲成人动漫在线观看| 91精品国产一区二区三区蜜臀| 全国精品久久少妇| 久久亚洲精品小早川怜子| 国产精品一区二区久激情瑜伽| 九色porny丨国产精品| 精品久久一区二区| 国产91在线|亚洲| 亚洲色图另类专区| 精品视频在线免费| 免费人成黄页网站在线一区二区| 日韩免费高清av| 国产精品一二三| 亚洲欧美一区二区三区国产精品 | 国产午夜精品一区二区三区视频 | 中文字幕一区二区三| 色婷婷av一区| 日韩成人一区二区| 久久久另类综合| 色一情一伦一子一伦一区| 同产精品九九九| 欧美精品一区二区三区在线| 91在线观看免费视频| 天堂精品中文字幕在线| 久久久久久免费| 在线精品视频一区二区三四| 日韩成人免费看|