易码技术论坛

 找回密码
 加入易码
搜索
12
返回列表 发新帖
楼主: Eastsun

[原创]一些与平台基本无关的图像函数~

[复制链接]
 楼主| 发表于 2005-1-15 09:56:00 | 显示全部楼层
最快的算法?
这我怎么知道,我就想过这一种算法,其他的我也没看过。
那个也不是BASIC代码
 楼主| 发表于 2005-1-10 18:59:04 | 显示全部楼层 |阅读模式
说明:下面这些图形函数是我为了以后编程方面写的,虽然多多少少参考了现有的程序代码,但也花了我不少功夫,而且现在还没完成,有些代码还需完善。大家如果有什么建议,欢迎提出。

所谓与平台基本无关,就是说程序中只有Buff这个参数与具体平台有关,其他都无须变化,这样对以后移植程序很有用~

另外,程序中对零叶地址$80~$83不做任何保护,其他零叶地址函数执行前后不改变

;######################################

;###############################################
;图形子函数?
;Made By Eastsun
;2004/12/28~
;RAM使用说明:
;           $39c0~$4000 为图形缓存
;           $3000~$3003 :图形坐标x1,y1,x2,y2
;           $3004:      :半径r
;           $3005~$3006 :长,短半轴a,b
;           $3007       :图像属性(清除0,正常1,反显2)
;           $3008~$300B :文本属性临时存储空间
;           $300c~$300e :Time
;           
;           $3010~301f  :上述的临时存储空间
;           其它        :按需分配
;****************************************     
;函数说明:清屏
;程序用到$80,$81两个零叶地址以及A,Y
;当A为0时清除屏幕,否则清除缓存
;****************************************
ClearScreen:
        CMP #$00
        BEQ ClearGraph
        LDA #<Buff       ;
        STA $80          ;
        LDA #>Buff       ;
        STA $81          ;
        JMP ClearScreenLabel
ClearGraph:
        LDA #<Graph      ;
        STA $80          ;
        LDA #>Graph      ;
        STA $81         
ClearScreenLabel:
        LDX #$06         ;
        LDY #$00         ;
        TYA  
ClearScreenLoop1:                    
        STA ($80) ,Y     ;
        INY              ;
        BNE ClearScreenLoop1     
        INC $81          ;
        DEX              ;
        BNE ClearScreenLoop1     
        LDY #$3F   
ClearScreenLoop2:          ;
        STA ($80) ,Y     ;
        DEY              ;
        BPL ClearScreenLoop2      
        RTS
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2024-4-19 19:10 , Processed in 0.010103 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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