`
lobin
  • 浏览: 427396 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C: Windows编程: 第三章 TC

 
阅读更多
写道

 

 

中断

 

中断处理函数

 

编写中断处理函数需要指定interrupt以表示这是一个中断处理函数。如果没有指定interrupt,它就是一个普通的函数。

 

void interrupt <interrupt routine>()
{
  ... 
  ...
  ...
}

 

中断处理函数如上面指定了interrupt的函数反编译后的代码大概是这样的:

 

<interrupt routine>	proc	far
	push	ax
	push	bx
	push	cx
	push	dx
	push	es
	push	ds
	push	si
	push	di
	push	bp
	mov	bp,DGROUP
	mov	ds,bp
	mov	bp,sp
   
        ...
        ...
        ...

	pop	bp
	pop	di
	pop	si
	pop	ds
	pop	es
	pop	dx
	pop	cx
	pop	bx
	pop	ax
	iret	
<interrupt routine>	endp

 

 

void interrupt kl_iroutine_0x32()
{
  printf("hello, world!\n");
}

void main()
{
    union REGS regs;

    disable();
    setvect(0x32, kl_iroutine_0x32);
    enable();


	int86(0x32, &regs, &regs);
	int86(0x32, &regs, &regs);
	int86(0x32, &regs, &regs);

    getch();
}

 

注册BGI驱动

int        _Cdecl registerbgidriver(void (*driver)(void));

注册的BGI驱动函数原型:

void (*driver)(void)

一些BGI驱动函数:

void           _Cdecl CGA_driver(void);
void           _Cdecl EGAVGA_driver(void);
void           _Cdecl IBM8514_driver(void);
void           _Cdecl Herc_driver(void);
void           _Cdecl ATT_driver(void);
void           _Cdecl PC3270_driver(void);

 

 

C:\TURBOC3>cd BGI

>BGIOBJ EGAVGA

 

BGI to OBJ Converter  Version 3.0  Copyright (c) 1987, 1990 Borland International

 

5554 bytes from 'EGAVGA.BGI' converted into 'EGAVGA.OBJ',

public name = '_EGAVGA_driver'.

 

在C:\TURBOC3\BGI下生成了一个EGAVGA.OBJ文件。

 

>TLIB LIB\GRAPHICS.LIB+EGAVGA

 

viewport

#include<graphics.h>

void main()
{
    //int gd = DETECT;
    //int gm;

    int gd = DETECT;
    int gm = VGAHI; // VGAHI      = 2,  /* 640x480 16 color 1 page     */

    registerbgidriver(EGAVGA_driver);

    initgraph(&gd, &gm, "C:\\TURBOC3\BGI");
  
    setbkcolor(BLACK);

    setviewport(100, 100, 540, 380, 0);

    setcolor(WHITE);
    setfillstyle(1, WHITE);
    rectangle(0, 0, 440, 280); 
    floodfill(50, 50, WHITE);

	//clearviewport();

    setviewport(150, 150, 590, 430, 0);

    setcolor(GREEN);
    setfillstyle(1, LIGHTGRAY);
    rectangle(0, 0, 440, 280); 
    floodfill(50, 50, GREEN);

    //clearviewport();

    setviewport(180, 180, 620, 460, 0);

    setcolor(WHITE);
    setfillstyle(1, BLUE);
    rectangle(0, 0, 440, 280); 
    floodfill(50, 50, WHITE);

	//clearviewport();

    getch();
    closegraph();
}

 https://pic.cnblogs.com/avatar/2131404/20200820032058.png

 

 

https://pic.cnblogs.com/avatar/2131404/20200820052338.png

 

#include<GRAPHICS.H>
void main()
{
    int gd = DETECT;
    int gm;

    registerbgidriver(EGAVGA_driver);

    initgraph(&gd, &gm, "C:\\TURBOC3\BGI");
  
    setbkcolor(12);
  
    setcolor(2);
    putpixel(10, 10, 1);
  
    getch();
    closegraph();
}

这里注册的BGI驱动EGAVGA_driver

 

 

void           _Cdecl EGAVGA_driver(void);

 

 

 

是在上面将BGI转换为OBJ(>BGIOBJ EGAVGA)的时候生成的:

public name = '_EGAVGA_driver'.

 

 

绘制矩形

#include<stdio.h>
#include<graphics.h>

#include<conio.h>
void main()
{
    int gd = DETECT;
    int gm = VGAHI; // VGAHI      = 2,  /* 640x480 16 color 1 page     */

    registerbgidriver(EGAVGA_driver);

    initgraph(&gd, &gm, "C:\\TURBOC3\BGI");
  
    setbkcolor(12);
  
    setcolor(2);
    setlinestyle(SOLID_LINE, EMPTY_FILL, 0 /*NORM_WIDTH*/);

    rectangle(10, 10, 640 - 10, 480 - 10);

    getch();
    closegraph();
}

 

 

 

 

分享到:
评论

相关推荐

    TC2.0 windows窗口

    【标题】"TC2.0 Windows窗口"指的是Turbo C 2.0在Windows操作系统中的应用,这是一款经典的C语言集成开发环境(IDE)。在Windows环境下使用TC2.0,用户能够更便捷地进行C语言编程,包括编写、编译、链接以及调试代码...

    简易WIN-TC编程环境(绿色版 支持汉语输入 无插件)

    4. **无插件**:Win-TC 无任何预装插件,这意味着用户可以专注于编程本身,无需担心不必要的第三方软件干扰。同时,这也保证了系统的纯净,减少了潜在的安全风险。 5. **集成编译器**:Win-TC 内置了 Turbo C++ ...

    TC 安装下载C语言程序设计

    【标题】"TC 安装下载C语言程序设计" 涉及到的是经典编程环境Turbo C(简称TC)的安装与下载,以及如何利用它进行C语言的学习和程序设计。Turbo C是由Borland公司开发的一款早期的C语言编译器,因其轻便高效,特别...

    C语言高级编程技术

    C语言可以使用第三方库如libpng、jpeglib等来读取和显示这些格式的图片。理解像素操作、颜色模型和图像解码过程是实现图片显示的关键。 通过深入学习和实践上述内容,你将能够掌握C语言高级编程的各种技能,从而...

    Windows-TC

    【Windows-TC】,全称为Tiny C Compiler,是一款在Windows操作系统环境下使用的C语言编译器。它以其小巧的体积和高效能的特点,在编程初学者和经验丰富的开发者中都颇受欢迎。Windows-TC的设计理念是简单易用,同时...

    c 百例&算法大全&W-tc编程软件.zip

    《C百例&算法大全&W-TC编程软件》是一份包含C语言实例、算法解析以及W-TC编程环境的综合学习资源。这份压缩包旨在帮助初学者和有经验的程序员深入理解和掌握C语言,同时也提供了丰富的算法实践以及一个实用的编程...

    win tc安装包(带教程)

    总之,"Win TC安装包(带教程)"是一个适合初学者的C语言编程工具,它不仅提供了编译环境,还包含了教程资源,有助于用户从零开始学习C语言和Windows编程。通过这个安装包,用户可以全面了解和实践C语言编程,提升自己...

    cecmd.x86_TC_x86_WindowsCE_

    8. **社区支持**:TC有一个活跃的开发者社区,提供了许多第三方扩展和补丁,增强了TC的功能和兼容性。 综上所述,"cecmd.x86_TC_x86_WindowsCE_" 是一个适用于Windows CE系统的x86架构的Tiny C Compiler,它提供了...

    简单的编写c语言的软件win-tc

    3. **C语言编程基础:** 使用Win-TC进行C语言编程,需要了解基本的C语法,包括变量、数据类型、控制结构(如if语句、循环)、函数等。同时,用户还需要掌握如何通过命令行来编译和运行C程序。 4. **编辑器功能:** ...

    Win—TC c语言初学者的编译器

    《Win-TC:C语言初学者的友好编译器》 在编程的世界里,选择一个合适的编译器是至关重要的第一步。对于C语言初学者来说,Win-TC(Windows Turbo C)是一个值得推荐的选择。这款编译器以其简单易用、功能齐全的特点...

    C语言开发工具 TC 2.0 (可以汉化)

    TC 2.0,全称为Turbo C 2.0,是Borland公司于1980年代末推出的C语言编译器,是许多初学者入门编程的首选工具。这款经典开发环境以其轻量级、高效且易于上手的特点,在计算机教育领域留下了深刻的烙印。下面将详细...

    Win-TC(开发工具)

    Win-TC是一款经典的Windows平台下的轻量级集成开发环境(IDE),特别适合于初学者学习C语言和数据结构。这款软件以其简洁的界面和强大的功能,成为许多编程爱好者早期接触编程时的选择。Win-TC全称是Windows Turbo C...

    win7 64位可用的 Tc(turbo c)(c语言)

    3. **使用32位Windows兼容工具**:有些第三方软件,如“Dos Navigator”或“DosEmu”,可以模拟DOS环境并在32位Windows应用程序上运行Turbo C,这可能也适用于64位Windows 7。 4. **使用现代C编译器**:虽然这不是...

    win7兼容的tc

    幸运的是,有特定的设置或第三方模拟环境使得像Turbo C这样的老程序可以在Win7中运行。 描述中提到的"可以于win7旗舰版兼容,我自己就是用这个的"表明该压缩包包含了一种解决方案,使用户能够在Windows 7旗舰版上...

    C语言编译器Win_tc191

    图形库的集成使得开发者不必再依赖第三方库,就能实现各种图形绘制和交互功能,极大地丰富了C语言的图形编程能力。 再者,Win_tc191的一大亮点是它允许在C代码中串插汇编代码。这对于需要进行底层优化或者处理特定...

    TC20开发工具

    TC20开发工具,主要指的是Turbo C 2.0,这是一个经典的C语言编程环境,由Borland公司在1980年代末至1990年代初推出。这个工具在计算机科学教育和早期的软件开发中占据了重要的地位,尤其在初学者中非常流行。 Turbo...

    tc编译器,希望玩tc图形编程的可以下来玩

    虽然TC主要设计用于命令行程序,但通过一些扩展和第三方库,开发者可以实现简单的图形显示。这里特别提到了`bgi`,它是Borland Graphics Interface的缩写,是TC编译器的一个图形库,用于在DOS环境下创建图形程序。 ...

    C和C++编程心得

    - **Windows编程**: 《Windows编程黑皮书》是学习Windows API的好材料。 - **Unix/Linux/BSD系统**: 《Advanced Programming in the Unix Environment》介绍了Unix环境下编程的高级主题。 - **数据结构和算法**: ...

    C语言开发工具Win-TC

    Win-TC是一款经典的C语言开发工具,专为Windows操作系统设计,旨在提升程序员在C语言编程环境下的开发效率。它以其简洁的界面和丰富的功能,深受C语言初学者和专业开发者的喜爱。在本文中,我们将深入探讨Win-TC的...

Global site tag (gtag.js) - Google Analytics