易码技术论坛

 找回密码
 加入易码
搜索
查看: 477375|回复: 5

4灰度下我写的一些函数

[复制链接]
发表于 2007-8-23 13:47:31 | 显示全部楼层
多用宏,少用直接地址,这样可移植性好
发表于 2007-8-23 20:41:13 | 显示全部楼层
是啵
  可是在WQX上的编译器宏好象不怎么能用
  LEE可以改进一下zhaofeixxx的那个么,那个是用lava1.0编的,偶想lee比谁都在行吧
  或许你还可以加入我们不能做到的东东
  比如说双语OK那样的狠东西除了lee谁能用lava1.0做出来
发表于 2007-8-23 20:43:24 | 显示全部楼层
这样的东东头都看麻了
  line1  2  3  4  5.....
  辛苦作者了,怎么记的清楚这些标号意义额
发表于 2007-8-24 19:36:22 | 显示全部楼层
引用第2楼Loading2007-08-23 20:41发表的“”:
是啵
  可是在WQX上的编译器宏好象不怎么能用
  LEE可以改进一下zhaofeixxx的那个么,那个是用lava1.0编的,偶想lee比谁都在行吧
  或许你还可以加入我们不能做到的东东
  比如说双语OK那样的狠东西除了lee谁能用lava1.0做出来
好啊
可以直接用了!
-------------
比如说双语OK那样的狠东西除了lee谁能用lava1.0做出来
yan可以
学过lav的也可以,我可以,你也一定能行!
发表于 2007-9-11 16:28:20 | 显示全部楼层
vnt这种东西还是得用汇编。Q-Player808的功能绝对是目前最强的。
还有POTO你那个midi的后台播放是怎么实现的?
 楼主| 发表于 2007-8-23 13:32:17 | 显示全部楼层 |阅读模式
  ;4灰度格式转为16灰度格式
;图片数据在$3380
;结果放在$2000
4GrayTo16:
   LDA #$00
   STA $80
   LDA #$20
   STA $81
   LDA #$80
   STA $82
   LDA #$33
   STA $83
grayto4:
   LDX #$02
   LDA #$00
   STA $84
   TAY
   LDA ($82),Y
   STA $85
grayto1:
   LDA #$00
   STA $84
   TAY
   ASL $85
   ROL $84
   ASL $85
   ROL $84
   LDA $84
   TAY
   LDA GTT1,Y
   STA $86
   LDA #$00
   STA $84
   TAY
   ASL $85
   ROL $84
   ASL $85
   ROL $84
   LDA $84
   TAY
   LDA GTT2,Y
   ORA $86
   LDY #$00
   STA ($80),Y
   INC $80
   BNE grayto2
   INC $81
grayto2:
   DEX
   BNE grayto1
   INC $82
   BNE grayto3
   INC $83
grayto3:
   LDA $83
   CMP #$40
   BNE grayto4
   RTS
GTT1:
   .DB $F0,$A0,$50,$00
GTT2:
   .DB $0F,$0A,$05,$00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;用背景色清除屏幕
BgColor=$03d0
ClearScreen:
LDA #$80
STA $80
LDA #$13
STA $81
LDA #$00
LDY #$00
CLC
LDX BgColor
BEQ color0
DEX
BEQ color1
DEX
BEQ color2
ADC #$55
color2:
ADC #$55
color1:
ADC #$55
color0:
STA ($80),Y
INC $80
BNE cl1
INC $81
cl1:
LDX $81
CPX #$20
BNE color0
RTS  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;16灰度的dat数据转化为16灰度bmp数据
;入参:$2100-$38FF
;出参:$208A-$38FF
DatToBmp:
  LDA #$00
  STA $80
  LDA #$21
  STA $81
  LDA #$B0
  STA $82
  LDA #$39
  STA $83
DTB4:
  LDY #$00
DTB1:
  LDA ($80),Y
  STA $3A00,Y
  INY
  CPY #$50
  BNE DTB1
  LDY #$00
DTB2:
  LDA ($82),Y
  STA ($80),Y
  INY
  CPY #$50
  BNE DTB2
  LDY #$00
DTB3:
  LDA $3A00,Y
  STA ($82),Y
  INY
  CPY #$50
  BNE DTB3
  CLC
  LDA $80
  ADC #$50
  STA $80
  LDA $81
  ADC #$00
  STA $81
  SEC
  LDA $82
  SBC #$50
  STA $82
  LDA $83
  SBC #$00
  STA $83
  CMP #$2D
  BNE DTB4
  LDA $82
  CMP #$30
  BNE DTB4
  LDX #$00
DTB5:
  LDA Bmp16Head,X
  STA $208A,X
  INX
  CPX #$76
  BNE DTB5
  RTS
;16灰度bmp文件头
;数据个数:76H
Bmp16Head:
  .DB 66,77,118,25,0,0,0,0,0,0,118,0,0,0,40,0,0,0,160,0,0,0,80,0,0,0,1,0,4,0,0,0,0,0,0,25,0,0,100,0,0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,17,17,0,34,34,34,0,51,51,51,0,68,68,68,0,85,85,85,0,102,102,102,0,119,119,119,0,136,136,136,0,153,153,153,0,170,170,170,0,187,187,187,0,204,204,204,0,221,221,221,0,238,238,238,0,255,255,255,0
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;$03c9 =$00:用背景色画
;$03c9 =$01:用前景色画
;$03c9 =$02:反显
;$03d0,$03d1:背景色,前景色
  Graph_x1=$03c3
  Graph_y1=$03c4
  Graph_x2=$03c5
  Graph_y2=$03c6
  
  Graph_x=$03c7
  Graph_y=$03c8
  GraphType=$03c9
  BgColor=$03d0
  FgColor=$03d1
;画填充方块
GrayBox:
  LDX Graph_y1
  DEX
box1:
  STX Graph_y
  TXA
  PHA
  JSR LineX
  PLA
  TAX
  INX
  CPX Graph_y2
  BNE box1
  RTS
;画横线  
LineX:
  LDA Graph_x1
  CMP #$A1
  BCC line1
  LDA #$A0
  STA Graph_x1
line1:
  LDA Graph_x2
  CMP #$A1
  BCC line2
  LDA #$A0
  STA Graph_x2
line2:
  LDA Graph_y
  CMP #$51
  BCC line3
  LDA #$50
  STA Graph_y
line3
  LDA Graph_x2
  CMP Graph_x1
  BCS line4
  RTS
line4:
  LDA Graph_x1
  BNE line18
  INC Graph_x1
line18:
  LDA #$80
  STA $80
  LDA #$13
  STA $81
  LDX #$28
line5:
   CLC
   LDA Graph_y
   ADC $80
   STA $80
   LDA $81
   ADC #$00
   STA $81
   DEX
   BNE line5
   LDA Graph_x1
   LSR
   LSR
   CLC
   ADC $80
   STA $80
   
   LDA $81
   ADC #$00
   STA $81
  LDA Graph_x1
  AND #$03
  TAX
  JSR geta
  STA $82
  CPX #$00
  BEQ line9
line6:
  LSR
  LSR
  DEX
  BNE line6
  LDY #$00
  JSR line11
  INC $80
  BNE line9
  INC $81
line9:
  LDA Graph_x2
  SEC
  SBC Graph_x1
  LSR
  LSR
  TAY
  TAX
  CMP #$00
  BNE line14
  LDA Graph_x2
  AND #$03
  CMP #$00
  BNE line15
  JMP line13
line15:
  RTS
line14:
  CMP #$01
  BNE line16
  LDA Graph_x2
  AND #$03
  BEQ line7
  JMP line13
line16:
  LDA Graph_x2
  AND #$03
  BEQ line7
  DEY
line7:
  DEY
  LDA $82
  JSR line11
  CPY #$00
  BNE line7
line13:
  LDA Graph_x2
  AND #$03
  TAY
  LDA $82
  CPY #$03
  BEQ line17
  
  CPY #$00
  BNE line8
  INX
line8:
  ASL
  ASL
  INY
  CPY #$03
  BNE line8

line17:
  PHA
  TXA
  TAY
  DEY
  PLA
  JSR line11
  RTS
line11:
  PHA
  
  LDA GraphType
  CMP #$02
  BEQ line12
  PLA
  STA ($80),Y
  RTS
line12:
  PLA
  EOR ($80),Y
  STA ($80),Y
  RTS
geta:
   LDY GraphType
   BEQ Bg
   LDY FgColor
   JSR geta1
   RTS
Bg:
   LDY BgColor
   JSR geta1
   RTS
geta1:
   LDA #$00
   CLC
   CPY #$00
   BEQ geta2
   DEY
   BEQ geta3
   DEY
   BEQ geta4
   ADC #$55
geta4:
   ADC #$55
geta3:
   ADC #$55
geta2:
   TAY
   DEY
   TYA
   RTS
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;$03c3~$03c6:x1,y1,x2,y2
;$92,$93:图片地址
Graph_x1=$03c3
Graph_y1=$03c4
Graph_x2=$03c5
Graph_y2=$03c6


GrayGraph:
   LDA Graph_x1
   CMP #$A1
   BCC x1
   LDA #$A0
   STA Graph_x1
x1:
   LSR
   LSR
   STA $80
   LDA Graph_x2
   CMP #$A1
   BCC x2
   LDA #$A0
   STA Graph_x2
x2:
   LSR
   LSR
   STA $81
   SEC
   SBC $80
   STA $81
   LDA #$80
   STA $82
   LDA #$13
   STA $83
   CLC
   LDA $80
   ADC $82
   STA $82
   LDA $83
   ADC #$00
   STA $83
   LDX Graph_y1
   BNE draw3
   INX
draw3:
   CLC
   LDA $82
   ADC #$28
   STA $82
   LDA $83
   ADC #$00
   STA $83
   DEX
   BNE draw3
   SEC
   LDA Graph_y2
   SBC Graph_y1
   TAX
draw2:
   LDY #$00
draw1:
   LDA ($92),Y
   STA ($82),Y
   INY
   CPY $81
   BNE draw1
   DEX
   BEQ drawend
   CLC
   LDA $82
   ADC #$28
   STA $82
   LDA $83
   ADC #$00
   STA $83
   TYA
   CLC
   ADC $92
   STA $92
   LDA #$00
   ADC $93
   STA $93
   JMP draw2
drawend:
   RTS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;若四灰下使用INT $C006,按热键后没恢复为二色
;四灰度下用JSR Inkey代替INT $C006
Inkey:
  LDA $C7
  BMI inkey1
  LDA #$00
  STA $03F6
  CLC
  BCC Inkey
inkey1:
  LDA $C7
  CMP #$A1
  BEQ inkey2
  CMP #$98
  BEQ inkey2
  CMP #$80
  BCC inkey3
  CMP #$8D
  BCS inkey3
inkey2:
  LDA $C7
  PHA
  JSR Regain
  PLA
  STA $C7
inkey3:
  INT $C006
  RTS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;将显存$19C0的内容发送到$1380
;$03d0:背景色0~3,$03d1:前景色0~3
;若背景色大于3,则背景色为0
;若前景色大于3,则前景色为3
ToGrayBuffer:
   LDA $03D0
   CMP #$04
   BCC qjs
   LDA #$00
   STA $03D0
qjs:
   LDA $03D1
   CMP #$04
   BCC send
   LDA #$03
   STA $03D1
send:
   LDA #$C0
   STA $80
   LDA #$19
   STA $81
   LDA #$80
   STA $82
   LDA #$13
   STA $83
   LDY #$00
   LDA $03D0
   ASL
   ASL
   ASL
   ASL
   ASL
   ASL
   STA $84
   LDA $03D1
   ASL
   ASL
   ASL
   ASL
   ASL
   ASL
   STA $85
   LDA #$00
   STA $86
   STA $87
send7:
   LDX #$08
   LDA ($80),Y
   STA $88
send1:
   ASL $88
   BCC send2
   LDA $85
   ASL
   ROL $87
   ROL $86
   ASL
   ROL $87
   ROL $86
   CLC
   BCC send3
send2:
   LDA $84
   ASL
   ROL $87
   ROL $86
   ASL
   ROL $87
   ROL $86
send3:
   DEX
   BNE send1
   LDA $86
   STA ($82),Y
   INC $82
   BNE send4
   INC $83
send4:
   LDA $87
   STA ($82),Y
   INC $82
   BNE send5
   INC $83
send5:
   INC $80
   BNE send6
   INC $81
send6:
   LDA $81
   CMP #$20
   BNE send8
   RTS
send8:
   JMP send7

4灰度函数.rar

4 KB, 下载次数: 326

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

本版积分规则

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

GMT+8, 2024-4-19 00:20 , Processed in 0.011155 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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