您的位置:68399皇家赌场 > 域名注册 > DOS程序猿手册(三)

DOS程序猿手册(三)

发布时间:2019-09-17 07:09编辑:域名注册浏览(109)

      r.h.ah=6; /*子功效号*/

    内容:

    1.荧屏出现打字练习菜单(格式自定,字体、字号、颜色)

    2.菜单项目为4项:照打,覆盖打,排名,退出

         mov cx,0000h

    push bx , Save pointer

      r.h.dh=x; /*定位点坐标*/

    目的:

    编排乌Crane语打字演习软件,综合复习字符输入和出示,置光标、开窗口、颜色设置等荧屏功用;驾驭分支程序中字符相比较及总计的前后相继设计,循环及排序程序设计艺术;到场中断调用的计时作用。通过上述综合性演习,进一步加剧对汇编语言的明亮和加强程序设计技艺。

    stack segment stack

    db UNKNOWN_ADAPTER OR UNKNOWN_MONITOR

    二、实验内容

    代码完毕

    ```

    data segment

    menu  db 0ah,0dh,' Input number to chose your function'

    db 0ah,0dh,'       1.Follow Typing'

    db 0ah,0dh,'       2.Cover Typing'

    ; db 0ah,0dh,'       3.Ranking'

    db 0ah,0dh,'       3.Exit'

    db 0ah,0dh,'Please input your select:$'

    mess1 db 0ah,0dh,' This is the Follow Typing page.'

    db 0ah,0dh,'     Please input accordance with those word!$'

    mess2 db 0ah,0dh,' This is the Cover Typing page.'

    db 0ah,0dh,'     Please input accordance with those word!'

    db 0ah,0dh,' (Yellow is right, Red is wrong!)$'

    mess3 db 0ah,0dh,'This is third select$'

    mess4 db 0ah,0dh,' Thank you for your use!$'

    mess5 db 0ah,0dh,'Your right number is:$'

    endline db 0ah,0dh,'$'

    mess  db 255,?,255 dup(?)

    text  db 'New strides have been taken in strengthening national defense and army building.$'

    right db '0$'

    sum  db '/80$'

    num  db 0

    data ends

    code segment

    assume cs:code,ds:data

    start:

    mov ax,data

    mov ds,ax

    let0:

    mov ax,0

    mov dx,offset menu ;彰显菜单

    mov ah,9

    int 21h

    mov ah,1 ;输入采用

    int 21h

    cmp al,'1' ;输入为1,跳转到照打分界面

    jz prog1

    cmp al,'2' ;输入为2,跳转到覆盖打界面

    jz prog2

    cmp al,'3' ;输入为3,跳转到排行分界面

    jz prog3

    jmp prog4 ;输入不为1或2或3,退出程序

    prog1:

    jmp real_prog1

    prog2:

    jmp real_prog2

    prog3:

    jmp real_prog3

    prog4:

    jmp real_prog4

    real_prog1: ;照打分界面

    mov ax,0003h ;清屏

    int 10h

    mov dx,offset mess1 ;显示提示消息

    mov ah,9

    int 21h

    mov dx,offset endline ;换行

    int 21h

    mov dx,offset endline ;换行

    int 21h

    mov dx,offset text ;展现文章

    mov ah,9

    int 21h

    mov dx,offset endline ;换行

    int 21h

    mov dx,offset mess ;输入串

    mov ah,10

    int 21h

    ;输入达成,起首开展巡回比较

    mov ax,0

    mov di,0 ;存款和储蓄正确个数

    mov cl,mess 1 ;输入的字母个数,即循环的次数

    mov bx,2 ;第贰个字符的单元地方

    let1:

    mov dl,text[bx-2]

    cmp mess[bx],dl ;推断是不是输入准确

    jz let2 ;输入准确 跳到let2

    jmp out1 ;跳到集体出口 out1

    let2: ;正确数 1

    add ax,1

    add di,1

    out1:

    dec cl ;循环次数-1

    inc bx

    cmp cl,0

    jnz let1

    jz out2

    out2: ;检查停止,输出结果

    mov dx,offset mess5

    mov ah,9

    int 21h

    ;输出准确个数

    mov ax,di

    mov bl,10

    div bl

    add ah,'0'

    mov right,ah

    add al,'0'

    mov dl,al

    mov ah,2

    int 21h

    mov dl,right

    mov ah,2

    int 21h

    mov right,0 ;重置right为0

    mov di,0

    mov dx,offset sum

    mov ah,9

    int 21h

    jmp let0 ;重返采纳菜单

    real_prog2: ;覆盖打分界面

    mov dx,offset mess2

    mov ah,9

    int 21h

    mov ax,0003h ;清屏

    int 10h

    ;置呈现光标

    mov ah,2

    mov dh,4

    mov dl,0

    mov bh,0

    int 10h

    ;显示串

    mov dx,offset mess2

    mov ah,9

    int 21h

    mov dx,offset endline ;换行

    int 21h

    mov dx,offset endline ;换行

    int 21h

    mov dx,offset text

    mov ah,9

    int 21h

    ;置输入光标

    mov ah,2

    mov dh,9

    mov dl,0

    int 10h

    mov si,80 ;循环次数

    mov bx,0 ;第贰个字符的单元地方

    mov di,0 ;正确个数

    mov num,0 ;展现列的职分

    prog2_let1:

    ;输入字符

    mov ah,1

    int 21h

    mov dl,text[bx]

    cmp al,0DH ;判定是或不是输入回车

    jz prog2_out2

    cmp al,dl ;推断是还是不是输入正确

    jz prog2_let2 ;输入正确 跳到let2

    cmp al,dl

    jnz prog2_let3 ;输入错误,跳到let3

    jmp prog2_out1 ;跳到集体出口out1

    prog2_let2:

    add di,1 ;正确数 1

    ;输入准确,退换为浅玉绿

    mov ah,06h

    mov al,0

    mov bh,0eh

    mov ch,8

    mov cl,num

    mov dh,9

    mov dl,num

    int 10h

    ;置显示光标

    mov ah,2

    mov dh,9

    mov dl,num

    mov bh,0

    int 10h

    mov dl,text[bx]

    mov ah,2

    int 21h

    jmp prog2_out1 ;跳到集体出口out1

    prog2_let3:

    ;输入错误,响铃

    mov ah,2

    mov dl,7

    int 21h

    ;输入错误,退换为米黄

    mov ah,06h

    mov al,0

    mov bh,04h

    mov ch,8

    mov cl,num

    mov dh,9

    mov dl,num

    int 10h

    ;置显示光标

    mov ah,2

    mov dh,9

    mov dl,num

    mov bh,0

    int 10h

    mov dl,text[bx]

    mov ah,2

    int 21h

    jmp prog2_out1 ;跳到公共出口out1

    prog2_out1:

    dec si ;循环次数-1

    inc bx

    inc num

    cmp si,0

    jnz jump_prog2_let1 ;si≠0,继续循环

    jz prog2_out2

    jump_prog2_let1:

    jmp prog2_let1

    prog2_out2: ;循环截至,输出结果

    mov dx,offset mess5

    mov ah,9

    int 21h

    ;输出准确个数

    mov ax,di

    mov bl,10

    div bl

    add ah,'0'

    mov right,ah

    ;add al,74

    add al,'0'

    mov dl,al

    mov ah,2

    int 21h

    mov dl,right

    mov ah,2

    int 21h

    mov right,0 ;重新设置准确个数为0

    mov di,0

    mov dx,offset sum

    mov ah,9

    int 21h

    jmp let0

    real_prog3: ;排名分界面

    mov dx,offset mess3

    mov ah,9

    int 21h

    jmp let0 ;重回采取菜单

    real_prog4: ;退出

    mov dx,offset mess4

    mov ah,9

    int 21h

    mov ah,4ch

    int 21h

    code ends

    end start

    ```

       mov ah,02h

    jne not_cirrus_610

    r.h.bh=0;

    程序框图:

    68399皇家赌场 1

    程序框图

       fac endp

    HGA               图形

    void locate(int x, int y)

     

    jne svga_exit

    ┏ 218

       lea dx,s2

    jae vid_exit

    { union REGS r;

    班级:  计算机14-1  姓名:  许恺    学号:  2014011329日期: 2016.4.29          

                    char*ch,*attr;

      r.h.bh=0;

    其实以为仓库段不用编写,因为在此以前不写也行,开端已经写好了,后来知道要有提示语句,又加输出字符串时就出错了,在压栈的时候出现了死循环,是用dx输出字符串的时候出了难点,最后是重复把dx赋0才解决,此番越发透亮了储藏室的选用,未来会用的愈益的随手和数十次。

    0040h:0065h职位上的值,0DFh的字节使闪烁位变明晰,并将结果输出到端口03D8h

    2、在显示器的制定区域内画框,在框内显示字符串。(升高题)

       mov ds,ax

    and dx,0FFF0h ; Get board number

    r.h.dl=y;

       mov dx,0

        MDA_MONITOR            equ 001h SHL 3

      r.h.dh=24; /*右下角坐标*/

         add dx,0030h

                    regs.h.ah=0x08;

    ┃ 179

    (3)以十进制方式出口结果的机能用子程序实现,子程序的名叫:output;

    db EGA OR EGA_MONITOR

    1、纯熟操作系统的系统作用调用。

         ret

    68399皇家赌场,regs.h.ah=0x02;

      locate(x ,y);

     main proc far

                /*FunctiOn:wch()*/

    int86(0x10,&r,&r);

       sub al,30h

    97页

    3、在显示屏上内定区域内画框并以动画情势显得字符串。(选做题)

         cmp ax,0

    mov ax , seg video_ident

    void cls(void)

       int 21h

    服务。

      r.h.al=ch;

       int 21h

    mov dx,046E8h ; Turn setup back off

      r.h.ah=9;

         div bx

                    regs.h.ah=0x09;

    r.h.ch=0; /*左上角坐标*/

       int 21h

    能只在当前呈现的页上中国人民解放军海军事工业程高校业作,而不在非显示页上中国人民解放军海军事工业程高校业作。

      r.h.dl=79;

       int 21h

    or al,080h ; Turn enable on

    清屏子程序:

    code segment

    驱动程序系统的内部存款和储蓄器部分。不过在应用它前边,应该臆想一下所冒的危害(这就象使用别

    1、在显示器的钦定区域内呈现字符串。(必做题)

         jmp l3

    0Ch         —        保留        —

    }

    1.从键盘输入一个不当先8的个位数,总括该数的阶乘,并以十进制制式输出。

    mov bl,al ; Save it

    void writech(int x , int y, char ch ,int attr)

         mov dx,0000h

        }

    r.x.cx=1;

     s2 db 'its factorial=$'

    jmp Short Herc_exit

    ┛ 217

       mov dl,0dh

        借助BIOS 功用调用。这种存取显示的章程至极协作,并比DOS越来越快。大许多系

    3、了然运用10H号作用调用(BIOS的展现I/O作用调用)来实现对显示器的操作与垄断(monopoly)。

       output proc near

                                  表5.1出示适配卡的内部存款和储蓄器配置

      r.h.cl=0;

    (2)总结阶乘的效果用子程序达成,子程序的名称叫:fac;

    push cx

    }

       int 21h

                    then clear that area and put a border around it.*/

    定位子程序:

    一、编写程序

    Call CRTC_detect

    { union REGS r;

    stack ends

    mov cx,5 ; Length of Signature

    一、实验目标

       mov ax,data

    该晶片已用在MDA、CGA和HGA录像卡中。 EGA、VGA和这段时间的系统都使用定制的专

    显示器画框能够用制表符来画。其首要格局是不停调用writech函数,在钦定区域周围显示制表符,进而勾勒出二个窗口的概略。

    data segment

    pop bx ; Restore pointer

      int86(0x10,&r,&r); /*系统机能调用*/

     dw 30 dup(?)

    85页

    ━ 196

       mov ah,09h

    ;Try Paradise

      r.h.ah=2; /*子作用号*/

    code ends

    cmp al , 050h

    int86(0x10,&r,&r);

    要求:

            char att;

     }

     s1 db 'please input an integer between 0 to 8:$'

        列表5.3

    r.h.bl=attr

       int 21h

     

      r.h.al=0;   

       mov ah,4ch

    0111         7              白色

    { union REGS r;

    l3:  mov bx,000ah

    #define LOWERLEFT 200

    在钦命地点写参数:

       mov al,dh

    xor ah,ah ; Clear byte

    2、明白用C语言完毕系统机能调用的不二法门和步骤。

         inc cl

    mov di,00040h ; "31" at C000:0040

    制表符   ASCII码

         loop l1

    生的结果要好好一些。那些监视器使用一样的本领(独立的LacrosseGB电子束),但采取了较高

      r.h.bh=7; /*7代表湖蓝*/

       mov bx,ax

    jmp Short test_vesa

    ┗ 192

       mov ah,09h

    }

    ┓ 191

         loop l2

          Hercules InColor卡                       SVGA

     68399皇家赌场 2

    0Ah         图形        4           640* 200                                                         X

         dec cl

    jne noVGA_detected

       mov ah,01h

                        5.3录像效果

     

          ·多彩色图形阵列(MCGA)

     assume cs:code,ds:data,ss:stack

          ·单色显示屏适配卡(MDA)

         ret

                  #include<stdio.h>

       mov ah,02h

            }

    l1:  mul cx

    jmp test_vesa

         mov ah,02h

    }

       lea dx,s1

    in al , dx

    (1)程序清单:

            使用的图纸和任何显示屏效果。

       mov dl,0ah

    push ds ;save caller's DS

    start:

    repe cmpsb

         mov cl,al

    为代价)。

         int 21h

    #include<stdio.h>

    二、编制程序体会

    别的东西。

     main endp

                      int n;

       mov ax,bx

    用集成电路,它能推行6845所提供的兼具基本功效,并能明显地升高6845的效应。录制调节

       output endp

        若是独有单色监视器系统,那么什么样也看不到。当施行setpage()函数时,事实上显示屏

         push dx

    not_cti_bios:

       call output

    ret

    data ends

    gotoxy(lr, lc); wch(UPPERLEFT, 7);

       mov ah,0

                                表5.5五光十色文本格局下只怕的位设置

    l2:  pop dx

    级的显示电路技艺,以便提供越来越高水平的图像。

       mov dh,al

                  }

    (5)输出格式要重视,要有适当的升迁。

    用以字符呈现。

    end start

    是什么颜色。用于每一个象素的位数决定于展现适配卡类型以及正在利用的图片情势。例

         jbe l2

    jne not_cti_bios

    (4)各子程序通过存放器传递参数;

    cmp al,7 , Current mode is mono?

       fac proc near

    mov si , OffSet PARADISE_BIOS_Sig

       call fac

    in al,dx ; Read unlock password

    (1)输入数据在主程序中完毕;

    用直接来自高等语言的服务;但在比非常多气象下,则必需使用异常低等的劳务,如DOS或

    (2)运维结果(截图):

    mov bl,al ; Save it in BL

                {

    LiSting 5.7 of DOS Programmer's Reference*/

    90页

    xlat

    pop bx ; Restore bx

    cmp al , '2'

    push ax ; Save registers

        #include<stdio.h>

    mov ax,0c000h ; Point to ROM

    可行颜色和内部存款和储蓄器要求量之间的关系。

    jne not_cti82C452

    repe cmpsb

    0Dh        图形        16          320*200                         X                     X

    miv  es , ax

    mov ax , PrimarySystem

    1·······         闪烁字符

    81页

              #define FALSE 0

        ;Monitor types

    5.3.1使用DOS和BIOS录制成效编制程序

        这种修改唯有当录像格局被BIOS再一次改动时本事有限匡助有效;要使之对于有所的视

    db UNKNOWN ADAPTER OR UNKNOWN_MONITOR

    mov dx,003BAh ; Get status port

    ; Change the model size to match the program in which

        }

    inc dx

                    regs.h.dl=C;

    repe cmpsb

    HGA。那要选用MDA和HGA之间的反差:在MDA中,垂直同步位从不退换,而在HGA

    ASCII码07),cLAND(ASCII码13)和LF(ASCII码10)字符;全数其余的“调整”字符就会显

    mov di,0007Dh

        下列显示器类型也能分辨:

                    regs.h.bh=0;

    xor ah,ah ; Clear byte

    SVGA从VGA中分离出来必要尝试每一类SVGA识别本领;假设具备技巧都未中标,那

              printf("DOS Programmer's Reference            ");

    别的条件,如DESQview包容。

    and ax , ADAPTER_SYSTEM_MASK

    mov cx , 2

    or word ptr [bx] ,ATI18800REV1

        在C语言中,已经有充足的劳务能与显示屏和打字与印刷机一齐职业,以成功规范的编制程序

    jmp Short Herc_exit

        CGA_MONITOR         equ 002h SHL 3

        ;-----Equates-----

                      regs.h.dh=rr;

          push es             ;save the register

    都检查Ctrl-C,所以它相当慢。

    push ax

                  5.2寻访展现系统的劳作格局

    #define BOOL int

                }

    out dx,al

        假诺急需开展超过标准库函数的编制程序,那么必需一笔不苟地权衡大概的利弊。从标准库函

              void cls()

        不仅仅贰个的显示显示屏。注意这里说的是显示器,并不是显得监视器。显示器或页是出现在

              border()      围绕窗口设置多个边际

    db (8 - 6) dup (EGA OR UNKNOWN_MONITOR)

    cmp ah , bl

      之上。window.c(见列表5.3) 垄断(monopoly)着testscn.c所调用的窗口作用。借助于window.c中的

    and word ptr [bx] , NOT ADAPTER_SYSTEM_MASK

    push dx ; Save registers

    二进制        十进制        颜色

    未曾改观;客商只是看看有几分钟全体的事物都保持静态,然后就回去下四个平移。不过

    (即CGA的MD福睿斯地址)。对于HGA或MDA,实践同一的操作,但将结果输送到端口

    mov dx,003C4h

    MDA               文本

    mov bx,offset PrimarySystem

    or word ptr [bx] ,HEADLAND OR SVGA

          高的本子下,ANSI.SYS 驱动程序让动用该存取情势的次序能通过决定编码体系

        mov ax,1303h

    pop ax ; Restore CRTC

    表5.3单色字符属性

    BIOS级的劳务,来产生一定的职分。本章描述调控录制显示屏和打印机的DOS和BIOS

    HGA,要到位那或多或少得以考查情形端口的一些位。

    and ax , MONITOR_MASK

    je MDA_Primary

        编写涉及摄像显示器和打字与印刷机设备的程序能够是粗略的进程,也恐怕是极度复杂的。

    and ax ,ADAPTER_SYSTEM MASK

        己的艺术来支付高档VGA(Super VGA)。每一个适配卡都补助贰个800*600录像形式(通

                /*FunctiOn:rch()*/

    mov cx , 4

    inc dx ; Read global ID

          int 29h

        ; video_id.asm

     or word ptr [bx] ,CTI82C453 OR SVGA OR CTI_BASED

        这种重新方法不可能与实时交互效能程序一同很好地劳作。一些顺序如1-2-3和Mi-

    wch(screen[i][j].ch, screen[i][j].att);

    mov dx,SecondarySystem

    mov al,00Fh ; Select (alleged) cursor low

                }

    EGA               单色

    SecondarySystem dw 0000 ; Secondary video system

        在前后相继的最低层,显示器字符函数使客户能看看单个的荧屏地方依旧应用BIOS显示屏

    设置背景域的高位为1,进而提供使各样字符闪烁开和关的功能。不过,通过修饰输送给

        的数目。

              void gotoxy( int r, int c);

    gotoxy(i, j);

        要提供牢固的图像,显示屏将在以每秒56遍的速度更新(即电子束对整个显示器进行一

    ; Now check for Cirrus

    Cld

    regs.h.bh=7;

    cmp ax , UNKNOWN_ADAPTER

    jne not_headland

    cmp ax , MDA_MONITOR

    mov si , offset PrimarySystem

        /* Prototypes*/

    jmp short Herc_exit

    inc dx

    je vid_exit

    jne  CGA_exit

    ; Identify the chip itself

    ; Test for VESA BIOS

    mov cl,4

        列表5.8

    ; Try Trident/Everex

    示在显示屏上。字符放置在结尾一行的最终一列时,大概光标在最终一行的随便地方,此时

    not_genoa_bios:

    and al , 00Fh

    在轻便的字符I/O品级以上,编制程序会不慢就成变三个繁杂的进度,极其是与图片相关时更

    Out dx,al

            mov ax , 40h             :address BIOS work area

    jne not_paradise

    96页

    db EGA OR MDA_MONITOR

    的。

    mov dx,003CEh ; Get i/o address

    cmp ch , 0CAh ; 610/ 620?

    Computer刚刚要安装摄像内部存款和储蓄器地址到贰个非双重端口适配卡中,且此时CRTC正在此位点

          screen.c函数对于整个显示器展现是全局的(见列表5.4)。它们在一个显示屏宽度的底子

    mov ax , 06F00h

    ; Wasn't AHEAD. Test for ATI

        AHEAD                    equ 001h SHL 6

    的(就算为啥应该中断阅读实际不是那么泾渭分明,但经验却彰显它实在是在重重CGA卡

    ati_1 :

     

            Cls();

    jne no_MDA

    一经地址精确,那么就试着向光标地点低存放器写入值。在不久的寸菇后,若是数值能被

    }

    cmp dx,06780h

    pop es

    ; Attempt to detect MDA card

    xlat

    }

                    regs.h.bh=0;

          有个别显得适配卡每行能显得40或八十多个字符。基本的录制体现格式是80*25每屏

              {

                  }

    jne_not_everex_bios

    ; EffOrts to find EGA failed too

              clearwin(5,5,12,40);

    Out dx,al

    in al,dx ; Read port

    中收获8个显示页。

    and word ptr [bx] , NOT ADAPTER_SYSTEM_MASK

    in al , dx

    shr al , 1

        口内的职业。

        最后,这个经过就探测到了五个录像硬件系统并差异哪些是运动的,哪个是非活动

     mov ax,01A00h ; Read display code's function

    if(i==lr||i==rr) {

    or word ptr [bx] ,SVGA OR CIRRUS

    jz no_secondary

                    *ch=regs.h.al;

    CGA_Primary:

    mov PrimarySystem,0

    dO_swap :

    94页

                    regs.h.ch=0;

    扫过整个荧屏。

    je vid_exit

    je ati_1

        MDA的CTRC状态端口平日是在I/O地址3B4h处,而CGA则在3D4h处。该程序

              }

    pop di

    or word ptr [bx] , VESA_SVGA

    性。字符就在与它同样地方的老大字节里,属性就在另一字节里。字符属性向呈现适配卡

    0Bh         —        保留        —

    录像适配卡的不二等秘书技浮现贮存器的值,就足以得到背景亮度值的一体化范围(以失去闪烁技术

    regs.h.al=n;

    或XENIX一齐干活,有程序代码(它在各个操作系统之下可不加修改地打开成功的编

    and word ptr [ bx ] , NOT ADAPTER_SYSTEM_MASK

    二进制      十进制        颜色

    80页

    差不离4K。假如选取每行四十个文件字符(2*40*25),那么每一个荧屏就占领2000个字节,

        统,但决不一切种类都与该方法兼容。借助此类调用,客户能够应用DOS级无法

    个全体的扫描)。在每行的最后,电子束必得从显示器的右端移到左端,前段时间称作水平回

    current_color:

    regs.h.dl=80;

     and ax ,ADAPTER_SYSTEM_MASK ; What did we find?

                Setpage(1,TRUE);

    jne test_vesa

    for(i=lr;i<=rr;i )

    je PVGA_detected

    cmp ax,MDA ; Is secondary system MDA?

    ; It's a Cirrus BIOS- -now identify the chip

        VGA_MONO               equ 004h SHL 3

    regs.h.ah=0x06;

        EGA_MONITOR            equ 003h SHL 3

        纵然此书并不是是有关图形方面包车型大巴全体手册,但它仍然提供了图片专业的中央原则。在

        图形显示器幕的分辨率(参见5.21)用象一直代表,有品位和垂直八个分辨率。比方,

    01h         文本      16          40*25                     X     X         X           X

     

    and al , 00Fh

    PrimarySystem dw 0000 ; Primacy video system

        #include<dos.h>

    B800h                     变化                    变化

    mov bx,offset SecondarySystem

    je ati_2

    {

    /* The screen is made up of LINES*COLS character positions*/

    if(i==lr) {

    ·000····           黑背景(正常)

        {

              #inClude<Stdio.h>

          差异。使用这种措施的主次平常与被观望的PC兼容的具有系统不相配。该办法

    101页

    驷不比舌的配备,因为它们在程序和技术员之间肩负着互相功用点的角色。

     

    mov CX , 9

        最近,大家已经掌握了显示器显示的办事章程,那么就足以试一试轻巧的作用,来探视

    05h         图形        4           320*200                   X     X         X           X         X

    push cx

    jmp short test_vesa

    mov si , Offset AHEAd_BIOS_sig

    和cls()函数)。注意cls()只是clearwin(),它在显示屏的左上角和右下角设置数值,以对应

    regs.h.dh=r;

    jne not_genoa_bios

     

    mov ah , al

    regs.h.ah=0x05;

    push ax

        就算已完毕共同的认知认为:运维卓绝的DOS应用程序应该采用BIOS,也许最好使用DOS

                      文本

    out dx,al

    用来体现的内部存款和储蓄器数目而发生变动。

    /*Function:cls()*/

    各差异的。识别某些特定开采商的适配卡的本事就要各种适配卡的长河中伸开描述。将

          screen.c中的效能决定与荧屏相关的函数,如光标定位和排除荧屏(分别是gotoxy()

    AHEAD_BIOS_Sig db "AHEAD"

    jne found_Hercules

        .通过动用标准的库函数,能够减掉程序对于DOS设计发生改造的敏感性。

              sleep(5);

     

    mov al,bh ; Put secondary type in AL

        #define       LINES     24

    个全体的体现,并且当它产生当前来得时,客户阅览的是弹指间的显得。

    mov al,01Fh , Get iD register

    regs.h.ch=lr;

    jmp test_vesa

    ; Check for Genoa

    殊的重新端口内部存款和储蓄器,Computer能在该内部存储器中书写数值,同临时候CRTC可以翻阅它们。因为那类

    pop dx

    UNKNOWN_CHIP equ 000h SHL 10

    pop dx

    mov si , Offset ATI_BIOS_Sig

    no_ega_present :

                      int86(vIDEO,&Pegs,&regS);

        ·使显示与计时共同

    B000h                     4K                      1

    Hercules_detect  endp

    int 10h

    void gotoxy(r,c)

    {

    test_trident:

              void upwin( int n, int lr, int lc, int rr,int rc);

    以此数额表示显示器幕总共有12七千个象素。当举行图片方面包车型客车劳作时,请记住分辨率、

    cmp ax , VGA

    是大致能够阅读的)时才是卓有成效的,所以本书的主旨放在80列格式上,它能与正式的

    本文由68399皇家赌场发布于域名注册,转载请注明出处:DOS程序猿手册(三)

    关键词: 68399皇家赌场 日记本 杂项

上一篇:行职分令行火速展开系统文件

下一篇:没有了