- 注册时间
- 2004-8-31
- 最后登录
- 1970-1-1
|
发表于 2005-5-26 12:12:00
|
显示全部楼层
1.让LCD上显示东西是靠将数据发送到显存来实现的
NC2K系列(PC 2000 NC2000 NC2600 NC3000 TC1000等)显存在$19c0(16进制) 就是 6592(10进制)
NC1K系列(PC1000 CC880 NC1020 PC 900a等)显存在$09c0(16进制) 就是2496(10进制)
所谓WriteBlock只是lava的一个指令,lava解释器遇到WriteBlock指令时会根据其参数在屏幕的一坐标处绘制一固定尺寸的图形,而"图形数据"就是按尺寸排列好的应该放到显存里的数据
这一字节数据对应着屏幕上的每横向8个点,把这字节数据变成2进制后这8个位每个位对应着屏幕上的一个点,为1则是黑的,为0则是透明的
这些数据可以在WQX上自己写工具算得也可以在windows上又bmp文件转换算得
然后把这些算好的数据放在内存中的某个位置,用低层的汇编语言把数据送到显存了,那lcd上就回显示出你所绘制的图形了
汇编语言是非常非常非常快的,他直接操作cpu来完成各种事情
2,比如说我定义一个数组(basic)
DIM MAP(16)(16)
;地图最大尺寸是16x16,占用256字节
;这里是绘制地图的代码
;这里是绘制人物的代码
;这里是按键判断
;向上移动...
IF K=20 THEN IF MAP(X)(Y)>32 THEN Y=Y-1:GOSUB 更新人物的代码 ELSE BEEP;无法移动的处理代码
;向下移动...
IF K-21.....
大概就是这样的
艺术字就是用我跟你说的第一种方法发绘制好的艺术字数据写到显存里
而且wqx的的默认文字其实也是靠把数据写到显存里来实现的
反正...哎,你要在不明白我就真要吐血了,如果还是不明白就先别弄这个了
|
|