着色
/*
* File : src\makeimg\makeimg.c
* Purpose : This tools is used to make a runable image on bochs virtual disk
* Date : 2004.8.13
*
*/ #include
#include
#include
void die(char * str)
{
fprintf(stderr,“%s\n”,str);
exit(1);
}
void usage(void)
{
die(“Usage: build bootsect setup system [rootdev] [> image]”);
}
int main(int argc, char ** argv)
{
unsigned char pBuf[2048];
int i;
// Open the bootsect.bin and read them into a buffer
FILE * fpsrc = fopen(“bootsect.bin”, “rb”);
if (fpsrc == 0)
{
die(“Can not open bootsect.bin”);
}
// read file
if (fread(pBuf, 512, 1, fpsrc) != 1)
{
fclose(fpsrc);
die(“Can not read the bootsect.bin”);
}
// close file
fclose(fpsrc);
// open the image to write
FILE * fp = NULL;
if (argc == 1) // default floopy
{
fp = fopen(“..\\emu\\a.img”, “wb”);
}
else
{
fp = fopen(“..\\emu\\c.img”, “wb”);
}
if (fp == 0)
{
die(“Can not open bootsect.bin”);
}
// seek first
rewind(fp);
if (fwrite(pBuf, 512, 1, fp) != 1)
{
fclose(fp);
die(“can not write file”);
}
// open the setup.bin
fpsrc = fopen(“setup.bin”, “rb”);
if (fpsrc == 0)
{
die(“Can not open setup.bin”);
}
// read file
if (fread(pBuf, 2048, 1, fpsrc) != 1)
{
fclose(fpsrc);
die(“Can not read the setup.bin”);
}
// close file
fclose(fpsrc);
if (fwrite(pBuf, 2048, 1, fp) != 1)
{
fclose(fp);
die(“can not write file”);
}
// fit the buffer
memset(pBuf, 0, 512);
if (argc == 1) // default, write floopy
{
for (i = 0; i < 2875; i++)
{
fwrite(pBuf, 512, 1, fp);
fflush(fp);
}
}
else // hard drive
{
for (i = 0; i < 20155; i++)
{
fwrite(pBuf, 512, 1, fp);
fflush(fp);
}
}
fclose(fp);
printf(“image created\n”);
&nb
sp; return 0;
}
各位观众不用读,上面的代码没有多大意思。只是为了试一下从网上下载的这个小程序。以前一直就觉得blogcn的日志格式控制太差,好好的排版到了这里就变成了Plain text,那个可视化编辑又非常慢,不稳定,还麻烦,很早就想自己动手写一个小程序,可以把代码格式化成UBB或者HTML,这样发到论坛上也不会丢失格式。
昨天在网上闲逛,发现了一个不错的小工具,“老罗代码着色器”<img src=http://style.blogcn.com/blogcnpage/style/images/images/aurl.gif align=absbottom hspace=2 alt='::URL::' border=0>http://www.luocong.com/myworks/zipped/SCC/SCC.zip作者似乎是个比我大不了几岁的程序员哥哥。程序支持C, C++, asm,对我来说正合适。省了我自己Coding了。
想想自己,其实平时也有不少自认为好的想法和创意,但是被付诸实践的少之又少。实在是精力有限,这就不禁又让我想起了现代的软件工程。
软件产业发展了几十年了,比尔盖茨和保罗艾伦两个人写DOS,丹尼斯里奇和肯汤姆普森两个人开发UNIX的时代已经一去不复返了,软件变得越来越复杂,越来越庞大,单单凭借一个人的力量,越来越难以完成高质量的软件。软件的个人英雄主义时代慢慢的结束了。
或许这会让一些技术崇拜者觉得伤感(我也有点),但是往长远宏观的角度来看,这说明计算机软件作为一个产业正在日趋走向成熟。那第二次工业革命飞机制造做个类比,莱特兄弟当年靠两个人的力量就可以制作出一架简易的飞机,但是现在的空中客车,747等等,岂是一两个公司可以单独制作得出来的,记得小时候在政治书上看到的资料:一架波音需要很多公司协同分工合作。当然,今天的两个机械高手仍然可以合作制作出简单的飞机,但是这种“飞机”不会有任何的市场价值。莱特和盖茨都可以算得上是一个产业的奠基人。以机械制造产业为鉴,我觉得软件产业跟机械制造业走的是同样的一条路线。大胆的猜一下,信息产业真的成熟之后,程序员们就应当而且必然会像机械制造业的流水线装配工人一样,不会也不应该享受今天的高薪。真正有价值的,是那些设计新型飞机的人。
还有一个比较“反动”的想法,阻碍今天的软件产业发展的一个重要因素,今天的程序员们的素质都太高了。本科生和研究生占了这个群体的绝大多数。有太多的人都是有文化有理想有抱负有远见的有志青年。工作之后急着实现自己的远大理想,而现实往往是在公司里面的工作离他们的志向相差很远,这样就导致了一些程序员怨天尤人,导致了这个行业跳槽率居高不下。而我觉得,对产业而言,一个软件工程师,最基本的一点,就是“踏实”二字。随着技术的发展和经验的成熟,软件产业的分工可以得到进一步的完善,这样就有望可以降低软件工程师的知识要求,本科生干的工作能不能让专科生干,没有多少文化的农民工经过一段培训能不能干软件。虽然现在提起来比较可笑,但是与机械制造业的技工相比,不是没有可能。当一个产业的人员比例呈现金子塔状,那么这个产业就可以日趋稳定了。
这样,才可以代码着色,给软件着色,给信息产业着色。
* File : src\makeimg\makeimg.c
* Purpose : This tools is used to make a runable image on bochs virtual disk
* Date : 2004.8.13
*
*/ #include