『漫游』酷论坛>『动漫主题讨论区』>[无聊]解读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