易码技术论坛

 找回密码
 加入易码
搜索
查看: 407446|回复: 12

[转贴]显示图片的绝妙方法

[复制链接]
发表于 2005-1-10 09:24:00 | 显示全部楼层
Q型男孩(2005-1-9 20:30:23):
116205035   叫我帮他写个教程
我就写了
这个是原程序,没有教程,有什么不明白的大家就问吧
我这个用的是批量法
呵呵,所以速度很快
NC2000用 ,NC2600应该也可以用
10 TEXT
20 A$ =" "
30 LOCATE 3,7
40 PRINT "缓 冲..."
50 TX =PEEK(2348) +PEEK(2349) *256 +8194
60 POKE TX,32
70 POKE TX +1,136
80 POKE TX +2,19
90 OPEN "gv-bmp" FOR RANDOM AS #1  LEN=32 : REM (gv-bmp) 是图片文档
100 FIELD #1,1 AS SS$
110 GET #1,1
120 CLOSE #1
130 POKE 34731,9
140 TEXT
150 PRINT "OK"
160 INPUT "X=";X
170 INPUT "Y=";Y
180 IF X >145  OR Y >65  THEN PRINT "ERROR !!": GOTO 160
190 PRINT "按任意键显示..";
200 INKEY$
210 GRAPH
220 A$ =SS$
230 POKE 146,136
240 POKE 147,19
250 BOX X,Y,X +15,Y +19,1,0
260 INKEY$
270 PRINT "THE END"
280 END

 楼主| 发表于 2005-1-10 09:25:00 | 显示全部楼层

-------------------------------------
 楼主| 发表于 2005-1-10 09:26:00 | 显示全部楼层
原理是把GVBASIC处理box语句的中断换成了WriteBlock的中断,在用把WriteBlock的入口地址改成SS$的地址
用box时就相当与用了LAVA的WriteBlock
但是这样改了以后,box就无法正常使用了
周结论 该用户已被删除
发表于 2005-1-19 10:47:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2005-1-19 11:59:00 | 显示全部楼层
这是BASIC中后期所运用的技巧
你可以先熟悉基本BASIC程序后看这张贴
发表于 2005-2-7 22:03:00 | 显示全部楼层
NC1020可用此法?数据怎改。谢了!
发表于 2005-2-7 22:05:00 | 显示全部楼层
楼顶的内容有个小错
2。将图片数据 POKE 到内存。该地址为 :XX+YY*265
应该是x256
发表于 2005-2-10 20:46:00 | 显示全部楼层
1020不能用的,1020的BASIC解释器是在ROM中的,不能修改的
发表于 2005-3-13 16:12:00 | 显示全部楼层
不就是XX+YY*265么,xx低位,yy高位。
发表于 2005-3-15 17:20:00 | 显示全部楼层
楼上还是跟着错……XX+YY*256不是265……
发表于 2005-3-17 19:52:00 | 显示全部楼层
不好意思,键盘按偏了~~~
发表于 2005-3-17 21:48:00 | 显示全部楼层
在pc2000a/c中控制地址是146和147,不是152,153,nc2000c好像也是146和147
 楼主| 发表于 2005-1-10 09:23:41 | 显示全部楼层 |阅读模式
首先引用116205035在TGCLC发的帖子:

就是用来画图片啊!

比如你有一张 16*16 的图片,它有 32 字节的数据对吧。

要你将它在屏幕上显示,怎么做呢?一般的话BAS 做这样的工作是很慢的。一张 16*16 的图也要 1 秒。

只需这样做:POKE 34731,9

这是第一步。

2。将图片数据 POKE 到内存。该地址为 :XX+YY*256

3。 POKE 152,XX:POKE 153:YY

4。 调用画矩形的函数:BOX XX,YY,XX+15,YY+15,1,0



如此即可将该 16*16 的图片显示到 以 (XX,YY) 为左上角的矩形上。

速度比一般的快的多啦。

[此贴子已经被作者于2005-2-8 10:43:45编辑过]

您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-4-28 02:21 , Processed in 0.025437 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表