『漫游』酷论坛>『动漫主题讨论区』>[无聊]解读GUNDAM RX-78 GP ..

[无聊]解读GUNDAM RX-78 GP01操作系统源程序

中关村长!@2005-09-10 23:17



图在上面:D

首先拜一下:C语言万岁万岁万万岁!

然后解释一下宏MK_FP的作用:
MK_FP(base, offset)以远指针的形式返回基地址为base,偏移量为offset的的内存地址。

分析此段代码:
首先令变量i等于地址MK_FP(0, 0x22 * 4 + 2)(即0x0000008A)中存储的整数值减1,然后与地址MK_FP(0, 0x2e * 4 + 2)中存储的整数值减1相比较。

如果相等,则令i等于i加地址MK_FP(i, 3)中存储的整数值再加1;否则令i等于地址MK_FP(i+1,0x2c)中存储的整数值减1。

然后取出地址MK_FP(i, 0)中存储的字符,如果它不等于'M',则程序报错后终止;否则继续。。。

结合注释来看,此段程序是用于确定数据存储区的起始内存地址。
另外因为妮娜MM当时不在状态,所以此程序可能含有不可预知的BUG。。。。:rolleyes:






其实我想说的是:怎么Zion在0079年就用上了DirectX SDK,而联邦在0083年还在用16位C语言在DOS上开发。。。。:D :D :D
引用

ela0646@2005-09-10 23:21

我。。。。。。。OTL
引用

treenode@2005-09-10 23:26

用时下的流行话说:这段代码充满了Bad Smell......
引用

Re: [无聊]解读GUNDAM RX-78 GP01操作系统源程序

jsmxiang@2005-09-10 23:39

引用
最初由 中关村长! 发布


图在上面:D

首先拜一下:C语言万岁万岁万万岁!

然后解释一下宏MK_FP的作用:
MK_FP(base, offset)以远指针的形式返回基地址为base,偏移量为offset的的内存地址。

分析此段代码:
首先令变量i等于地址MK_FP(0, 0x22 * 4 + 2)(即0x0000008A)中存储的整数值减1,然后与地址MK_FP(0, 0x2e * 4 + 2)中存储的整数值减1相比较。

如果相等,则令i等于i加地址MK_FP(i, 3)中存储的整数值再加1;否则令i等于地址MK_FP(i+1,0x2c)中存储的整数值减1。

然后取出地址MK_FP(i, 0)中存储的字符,如果它不等于'M',则程序报错后终止;否则继续。。。

结合注释来看,此段程序是用于确定数据存储区的起始内存地址。
另外因为妮娜MM当时不在状态,所以此程序可能含有不可预知的BUG。。。。:rolleyes:






其实我想说的是:怎么Zion在0079年就用上了DirectX SDK,而联邦在0083年还在用16位C语言在DOS上开发。。。。:D :D :D


太强了~这个都分析出来

估计做动画的只是随便去摘抄一段源码就放上去了,想都没有想怎么会有人去看^_^。
引用

RedNax@2005-09-11 00:12

从没在16位DOS下写过那么底层的程序……

从注释看似乎是要在当前的command.com环境下的environment(环境变量?)中分配一块缓冲区?

这里:
fprintf(stderr, "XSET:memeory link broken\n");

居然还把memory拼错呀……orz....
引用

xyz_fly@2005-09-11 00:19

PASS~

回去学学
引用

中关村长!@2005-09-11 00:22

引用
最初由 RedNax 发布
从没在16位DOS下写过那么底层的程序……

从注释看似乎是要在当前的command.com环境下的environment(环境变量?)中分配一块缓冲区?

这里:
fprintf(stderr, "XSET:memeory link broken\n");

居然还把memory拼错呀……orz....



我猜是要取到DOS存放环境变量的内存首地址。
引用

御姐命@2005-09-11 00:30

C语言真是万能啊~
我便恨那语法天杀的VB!
引用

samuel@2005-09-11 00:35

记得08ms 也有一个战舰电脑镜头里面有directx 6 amd k6 -2 mmx 等当时电脑流行语,有兴趣的可以找一下截一下图放出来
引用

Re: [无聊]解读GUNDAM RX-78 GP01操作系统源程序

iliiad@2005-09-11 00:41

引用
最初由 中关村长! 发布

其实我想说的是:怎么Zion在0079年就用上了DirectX SDK,而联邦在0083年还在用16位C语言在DOS上开发。。。。:D :D :D


难怪老窝都差点被人家端了……:D

说实话,俺倒是很想知道驾驶员在战斗中看到一句XSET:memeory link broken后停机会是什么感觉……OTL
引用

chiman@2005-09-11 02:55

原来C语言这么强悍啊。。。。。
引用

Tim634@2005-09-11 02:57

果然现在的强人越来越多了........OTL
引用

yanbo8502@2005-09-11 04:03

orz一下
引用

Doubledr@2005-09-11 06:57

第39行:i=*(unsigned int far *)MK_PP(0,0x22*4+2)-1;

这句没有错吗?
引用

iceblusky@2005-09-11 07:20

这贴无敌,过来膜拜OTL

MS操作OS是C语言开放平台上加DIRECTX?再次OTL
引用

«123»共3页

| TOP