Wudy 发表于 2011-12-17 11:47:46

【预告】 Malical 2.5

本帖最后由 Wudy 于 2011-12-17 11:50 编辑

Malical2.5已经基本完成~

它在Malical 2.15的基础上,扩充了函数库,加快了速度,修改了一些细节。可以在计算器上实现和SDK一样的效果!

函数库:
超频函数,RTC函数,显存操作应有尽有!(以后还可能增加文件操作)

速度:
画图因为应用了显存,绝对prog快

较之2.15版的其他新特性:
1.可设置ac+exe强退
2.exit()退回主菜单
3.去掉布尔值,0是假,非零是真4.一行写多条语句5.错误提示加上错误行
6.其他小修改


建议先去熟悉一下2.15版,到时候上手更快。(http://www.cncalc.org/viewthread.php?tid=6317)
发布的时候会附带发布一系列示例程序(时钟,超频程序,画图,元素周期表,3D作图(这不是我的作品),分解质因数,平方根等)

趁还没发布,大家还有什么建议快提吧。

diameter 发表于 2011-12-17 12:03:04

多行与分行好像是Win32版本里面的吧.....

Wudy 发表于 2011-12-17 12:06:42

2# diameter
对9860也算新特性了。。

diameter 发表于 2011-12-17 17:31:31

建议把浮点数转字符串的问题好好解决一下,以前版本都是默认输出6位的。
还有就是字符串缓存,我设的buffer都是128 byte,如果有了文件操作,需要处理大规模的的文本,这点缓存就不够用了。

wtof1996 发表于 2011-12-17 18:57:44

啊,强烈支持。

Wudy 发表于 2011-12-17 20:09:02

本帖最后由 Wudy 于 2011-12-17 20:10 编辑

4# diameter
已经解决,可以选择不输出后面的0,缓存也扩大了

字符输出改了很多,可以输出小字,还有locate像SDK一样
比如光标本来在1,1。print[“123”]之后光标自动变成4,1,这个可以为输出带来很大方便,不知道原来设计的时候为什么不这么做。

diameter 发表于 2011-12-17 20:20:18

6# Wudy
因为文字换行、翻页是个大问题....

Wudy 发表于 2011-12-17 20:34:04

还有一个小bug,我也不知道到底什么情况....

Wudy 发表于 2011-12-17 22:38:11

下面的代码是正确的,但malical会报错。它不会执行a = 9,但是会执行if a > 12,而因为没有a = 9, a还是NIL类型的,不能比较,就报错了。
::main
var

if 0
    locate
    print["11"]
    a = 9
    if a > 12
      a = 0
    end
end
::end

diameter 发表于 2011-12-17 22:45:28

下面的代码是正确的,但malical会报错。它不会执行a = 9,但是会执行if a > 12,而因为没有a = 9, a还是NIL类型的,不能比较,就报错了。
::main
var

if 0
    locate
    print["11"]
    a...
Wudy 发表于 2011-12-17 22:38 http://www.cncalc.org/images/common/back.gif

输出“11”正确运行了?那就有点奇怪了。整段代码应该都不会运行啊(if 0在那里摆着呢)

Wudy 发表于 2011-12-17 22:53:12

本帖最后由 Wudy 于 2011-12-17 22:56 编辑

RunFunction里的todo是0,语句不会执行,但是还是会一行一行的解析,碰到if a > 12还会算a>12
有没有什么解决办法?

diameter 发表于 2011-12-17 23:14:48

RunFunction里的todo是0,语句不会执行,但是还是会一行一行的解析,碰到if a > 12还会算a>12
有没有什么解决办法?
Wudy 发表于 2011-12-17 22:53 http://www.cncalc.org/images/common/back.gif
不对呀这个...上一个语句块的todo会被穿到下一个语句块的_todo里面去,只有todo和_todo都为真的时候才会运行。我怀疑是不是去掉了boolean出的问题
以前都这样的用法:(在RunFunction处理if的里面)

if (obj.tag != VT_BOOL)
    MalicalError("if statement condition need boolean value");
_todo = obj.value.b;

diameter 发表于 2011-12-17 23:15:49

是不是引用obj.value.b没改过来(这样的话肯定出错)?亦或是floating转为int时的问题?

Wudy 发表于 2011-12-17 23:22:40

本帖最后由 Wudy 于 2011-12-17 23:27 编辑

都改过来了,你把这段代码的0改成false放在2.15版里试试看,报告一样的错误

diameter 发表于 2011-12-17 23:28:13

都改过来了,你把这段代码的0改成false放在2.15版里试试看
Wudy 发表于 2011-12-17 23:22 http://www.cncalc.org/images/common/back.gif

2.15也出现了这个问题....看来是设计缺陷,干脆让if语句块的解析如果_todo为假就不计算condition

Wudy 发表于 2011-12-17 23:35:08

本帖最后由 Wudy 于 2011-12-17 23:36 编辑


2.15也出现了这个问题....看来是设计缺陷,干脆让if语句块的解析如果_todo为假就不计算condition
diameter 发表于 2011-12-17 23:28 http://www.cncalc.org/images/common/back.gif
最开始我改成如果todo为0就不执行整个处理if的语句块,然后失败了。只不算条件应该可以。

Wudy 发表于 2011-12-18 11:03:39

有没有人知道picture,capture这些文件按什么格式储存的?

diameter 发表于 2011-12-18 11:19:05

17# Wudy

说的是存在9860RAM里面的吗?应该跟PRGM一样有ENTRY POINT。只不过官方不让调用。不如到CK上问问吧。

Wudy 发表于 2011-12-18 18:18:37

18# diameter 对,想加个可以显示这些图片的函数。
不是有个可以把这些图片转换为bmp文件的转换器,那个作者应该知道

Wudy 发表于 2011-12-18 18:58:30

完成了,在测试几天就发布
元素周期表





时钟

超频


随意画线


原来的3d作图

页: [1] 2
查看完整版本: 【预告】 Malical 2.5