易码技术论坛

 找回密码
 加入易码
搜索
楼主: 亚森罗宾

EMAX两周岁庆祝活动----灌水嘉年华,盖楼拿奖励

 关闭 [复制链接]
发表于 2006-8-28 20:29:01 | 显示全部楼层
为了EM瘫痪而灌水
发表于 2006-8-28 20:29:04 | 显示全部楼层
肥皂 我一直用EMAX 透明皂 我还是用EMAX牌
发表于 2006-8-28 20:29:10 | 显示全部楼层
级别: 小小强
精华: 0
发帖: 704
威望: 4429 点
金钱: 2260 易码币
贡献值: 0 点
[分享][原创]让BAS进入有声世界

13029_30978_5307.rar
这是个演示程序

让BAS 进入有声世界!这里当然不是傻傻的PLAY了,而是真正用DSP 放!
Only for 3k!Only!
这几天甚是空虚啊,心情极度郁闷,还是在EMAX待着舒服。
反了一下sysdir/jinqu,跟踪啊跟踪,代码抄啊抄(我抄了N页),删啊删,终于提取出了核心代码,又debug 了不少时间,将与bas解释器冲突的地址改了改.不过最终成功了!版主看在我努力的份上,加个精吧(跪求了)。
代码汇编后不到1KB。各位BAS Fans们,想让你们的程序拥有b16+a16的连lav都望尘莫及的效果吗?今天就实现这个不可能的效果!
已经将操作超级简化了…
b16请看我的demo_2源码,在此不多说,谁还不懂跟贴问。
这次是用061 播A16,操作简单(可简单的背后…),我把源码贴下来,能看懂则看(说实话,那几个JSR $Exxx得好好研究),看不懂也无所谓,复制下来一编译就成了。纯傻瓜式操作,菜鸟都会!
大前提:only for 3k!,别问我061是什么东西,其它机型运行必然后悔莫及。
方法:1.载入源码到内存
2.打开音乐文件.用 OPEN 就可以,如 OPEN XX FOR (RANDOM/INPUT) AS1就可以.只是文件大小有限制。最好用汇编打开。
3.CALL 播放代码!

就三步操作,播放时不干扰屏幕.完毕自动返回BAS程序,播放过程不响应按键(我把那一段给删了),若需要响应加一段代码即可,其实播放过程中同样可以做点什么,留大家研究咯.再把文件关闭(BAS就用CLOSE,汇编INT $0517,INT $0523哪个都行)就行了。
谁说BAS 弱的!!有汇编就是强!
(版主若要将此帖转汇编区也可以,但千万在BAS区里别删啊)
由于存在无条件转移指令,因此大家使用时应注意 ".ORG XXXX",一定不要随便载入。先确定播放代码的位置(PS:3K中$1000~$19BF处的内存可用,经本人实验$0BB8开始都可以用)即XXXX的值,汇编时在源码".ORG $0BB8"改成".ORG $XXXX"就成。我把代码默认放到3000(0BB8)处,懒的改的话直接调用(CALL 3000).这应该明白了吧?
至于PC端汇编软件,我原来也没用过,是从软件中心下的Kong小子的汇编器,还比较方便.
还有就是若PC端生成的文件扩展名为".bin",一定要改,否则下载时会将其“解密”,程序就面目全非了。
我就是不忍心看着BAS就这么沉下去,才不惜时间和精力去做。我才初三啊,理解力判断力都还很次,加之如山的作业,面临中考的紧迫,编得我已经有一觉睡过去永不起来的打算了。
整篇帖子全是我用记事本按出来的,苦啊。
大家要理解我,理解BAS啊……我真的快崩溃了…BAS一定要争气啊,大家也一定要努力啊…
哪位大虾看了鄙人的帖子觉得有什么不妥的,恳求您批评指正。
怕大家还是迷糊(不是大家的错,是我的表达能力太弱了),我写了演示程序。
至于有什么用,我想不用我多说了吧,编一个像Q-PLAYER或音文同步的程序已经是小case了,还可加点图片播放,随机播放,快进快退什么的。靠的是大家的技术和热情!
再次呼吁:一定定定…(回声)要革新BASIC啊啊啊啊…(回声)
附:汇编源码

.ORG $0BB8
JSR INITIALIZE
LDA #$01
STA $BF70
JSR Z4D57
RTS
INITIALIZE: INT $0B1C
JSR Z5C74
RTS
Z5C74: INT $0514
LDA $08FB
STA $BF74
LDA $08FC
STA $BF75
LDA $08FD
STA $BF76
LDA $08FE
STA $BF77
LDA #$00
STA $BF71
LDA #$60
STA $BF72
LDA #$00
STA $BF73
RTS
Z4D57: JSR Z505A
BCC Z4D5F
JMP Z4E64
Z4D5F: LDA $03E9
JSR $E099
LDX #$FF
Z4D67: JSR $E0BA
JSR $E093
BCC Z4D72
DEX
BNE Z4D67
Z4D72: LDA #$00
STA $03F6
STA $0401
LDA #$99
JSR Z5031
BCS Z4D84
JMP Z4E64
Z4D84: LDA #$40
JSR Z5031
BCS Z4D8E
JMP Z4E64
Z4D8E: CLI
LDA #$00
STA $03F6
STA $0401
JSR Z4EFA
BCS Z4DA5
LDA $BF78
BNE Z4DA4
JMP Z4E64
Z4DA4: RTS
Z4DA5: LDX #$FF
LDA #$00
STA $0401
STA $03F6
Z4DAF: LDA #$00
STA $0401
STA $03F6
JSR $E0BA
JSR $E093
BCC Z4DC5
DEX
BNE Z4DAF
JMP Z4E64
Z4DC5: LDA #$AA
JSR Z5031
LDA #$03
JSR Z5031
JSR $E0BA
LDX #$FF
LDY #$FF
Z4DD6: JSR $E0BA
DEX
BNE Z4DE2
DEY
BNE Z4DE2
JMP Z4E64
Z4DE2: LDA $C7
BPL Z4DE9
JMP Z4E64
Z4DE9: LDA #$00
STA $0401
STA $03F6
JSR $E0B7
BCC Z4DD6
CMP #$AA
BNE Z4DD6
JSR $E0B7
BCC Z4DD6
CMP #$00
BNE Z4DD6
JSR $E0BA
JSR $E0BA
JSR $E09C
LDX #$FF
Z4E0E: LDA $1E
AND #$40
BNE Z4E1A
JSR $E0BA
DEX
BNE Z4E0E
Z4E1A: JSR $E0BA
LDA #$C0
STA $17
LDA $0436
ORA #$08
STA $18
STA $0436
PHP
PHA
LDA $3D
AND #$FC
ORA #$03
STA $3D
PLA
PLP
LDA $043D
STA $3A
LDA $043C
STA $3C
PHP
PHA
LDA $3D
AND #$FC
ORA #$02
STA $3D
PLA
PLP
LDA #$00
STA $3C
PHP
PHA
LDA $3D
AND #$FC
ORA #$00
STA $3D
PLA
PLP
LDA #$00
STA $3D
CLI
SEC
RTS
Z4E64:INT $031D
CLI
CLC
RTS
Z4EFA: LDA #$00
STA $03F6
STA $0401
LDA $0A9C
CMP #$00
BEQ Z4F10
JSR CAPTION
RTS
Z4F10: JSR Z4FC2
LDX #$F0
Z4F15: JSR $E093
BCS Z4F1D
JMP Z4F26
Z4F1D: JSR $E0BA
DEX
BNE Z4F15
JMP Z4E6A
Z4F26: LDA #$33
JSR Z5031
BCS Z4F30
JMP Z4E6A
Z4F30: LDX #$00
Z4F32: LDA $0280,X
JSR Z5031
BCS Z4F3D
JMP Z4E6A
Z4F3D: INX
CPX #$0F
BCC Z4F32
LDA #$0F
STA $BF79
LDA #$00
STA $BF7A
LDA #$00
STA $BF7B
SEC
LDA $BF74
SBC $BF79
STA $BF74
LDA $BF75
SBC $BF7A
STA $BF75
LDA $BF76
SBC $BF7B
STA $BF76
LDA $BF76
CMP $BF7B
BNE Z4F83
LDA $BF75
CMP $BF7A
BNE Z4F83
LDA $BF74
CMP $BF79
Z4F83: BEQ Z4F8A
BCC Z4F8A
JMP Z4EFA
Z4F8A: JSR Z4FC2
LDX #$F0
Z4F8F: JSR $E093
BCC Z4F9D
JSR $E0BA
DEX
BNE Z4F8F
JMP Z4E6A
Z4F9D: LDA #$22
JSR Z5031
BCS Z4FA7
JMP Z4E6A
Z4FA7: LDA $BF74
JSR Z5031
LDX #$00
Z4FAF: LDA $0280,X
JSR Z5031
BCS Z4FBA
JMP Z4E6A
Z4FBA: INX
CPX $BF74
BCC Z4FAF
SEC
RTS
Z4FC2: LDA $BF71
STA $08CD
LDA $BF72
STA $08CE
LDA #$00
STA $08CF
LDA #$00
STA $08D0
LDY $BF73
JSR Z665E
LDA #$00
STA $08D1
INT $0519
BCS Z502F
LDA #$0F
STA $08C6
LDA #$00
STA $08C7
LDA #$80
STA $E0
LDA #$02
STA $E1
INT $0516
BCS Z502F
LDA #$0F
CLC
ADC $BF71
STA $BF71
BCC Z500D
INC $BF72
Z500D: LDA $BF72
CMP #$C0
BNE Z5019
LDA $BF71
CMP #$00
Z5019: BCC Z502F
SEC
LDA $BF71
SBC #$00
STA $BF71
LDA $BF72
SBC #$80
STA $BF72
INC $BF73
Z502F: RTS
Z665E: CPY #$00
BEQ Z66CF
LDA #$00
STA $BF79
LDA #$40
STA $BF7A
LDA #$00
STA $BF7B
SEC
LDA $08CD
SBC $BF79
STA $08CD
LDA $08CE
SBC $BF7A
STA $08CE
LDA $08CF
SBC $BF7B
STA $08CF
Z668D: LDA #$00
STA $BF79
LDA #$80
STA $BF7A
LDA #$00
STA $BF7B
CLC
LDA $08CD
ADC $BF79
STA $08CD
LDA $08CE
ADC $BF7A
STA $08CE
LDA $08CF
ADC $BF7B
STA $08CF
DEY
BNE Z668D
SEC
LDA $08CE
SBC #$20
STA $08CE
LDA $08CF
SBC #$00
STA $08CF
LDX #$00
RTS
Z66CF: LDA #$00
STA $BF79
LDA #$60
STA $BF7A
LDA #$00
STA $BF7B
SEC
LDA $08CD
SBC $BF79
STA $08CD
LDA $08CE
SBC $BF7A
STA $08CE
LDA $08CF
SBC $BF7B
STA $08CF
LDX #$00
RTS
Z5031: STX $0680
PHA
LDX #$FF
PHP
PHA
LDA $3D
AND #$FC
ORA #$00
STA $3D
PLA
PLP
Z5043EX
BEQ Z5054
LDA $3B
AND #$20
BEQ Z5043
PLA
STA $3A
LDX $0680
SEC
RTS
Z5054DX $0680
PLA
CLC
RTS
Z4E6A: LDA #$00
STA $BF78
CLC
RTS
Z505A: LDA $040B
BNE Z50A0
JSR $E09F
BCS Z5067
JMP Z5099
Z5067: JSR $E096
LDY #$03
LDX #$C8
Z506E: JSR $E0BA
DEX
BNE Z506E
DEY
BNE Z506E
JSR $E0AB
BCS Z507F
JMP Z5099
Z507F: INT $0313
BIT $040B
BMI Z50A0
JSR $E0BA
JSR $E093
BCC Z5092
JMP Z5099
Z5092: LDY #$00
STY $03F6
CLC
RTS
Z5099: LDA #$00
STA $BF78
SEC
RTS
Z50A0: JSR $E0CF
LDA #$02
STA $BF78
SEC
RTS
CAPTION: NOP
RTS

注册时间:2004-12-27
最后登录:2006-08-28
发表于 2006-8-28 20:29:17 | 显示全部楼层
冠水 我还是在EMAX...
发表于 2006-8-28 20:29:18 | 显示全部楼层
看谁444,哈哈
发表于 2006-8-28 20:29:21 | 显示全部楼层
休息3秒钟!
发表于 2006-8-28 20:29:35 | 显示全部楼层
终于有一个比较特别的数字了
发表于 2006-8-28 20:29:46 | 显示全部楼层
好险啊~445~~
RO兄444
发表于 2006-8-28 20:29:47 | 显示全部楼层
大家不要涉及政治哦~~
发表于 2006-8-28 20:29:49 | 显示全部楼层
嘿   加油!
发表于 2006-8-28 20:29:51 | 显示全部楼层
可惜...怎么这么BT呢...
发表于 2006-8-28 20:30:04 | 显示全部楼层
[原创]让BAS播放和弦音乐

嫌A16太大的话,就用midi吧!
3K送修回来,发现它自带的midi文件竟然全是R X属性,一气之下反了一下sysdir/hexuan,提取了一下核心代码,经过艰苦的调试(非常艰苦,那些不知名的中断调用、子程序调用、I/O操作的功能只能靠猜,debug了N长时间)终于成功了!
汇编, BAS都可用,BAS的话先OPEN一个midi文件,然后就CALL播放代码,播放过程中不响应按键(响应的话在Z4EEC处加代码),播放完会返回BAS程序,然后关闭文件就可以了!
注意把midi文件尾部多余的FF删掉!
下面把源码贴出来,汇编后只有900字节,修改一下.ORG $XXXX 以符合您程序的要求。

.ORG $1000
LDA #$00
LDX #$09
Z5BDF: STA $0388,X
DEX
BNE Z5BDF
INT $0B1C
INT $0514
LDA $08FB
STA TEMP_5
LDA $08FC
STA TEMP_6
LDA $08FD
STA TEMP_7
LDA $08FE
STA TEMP_8
LDA #$00
STA TEMP_2
LDA #$60
STA TEMP_3
LDA #$00
STA TEMP_4
LDA #$01
STA TEMP_1
JSR Z4D4F
INT $031D
RTS
Z504C: LDA $040B
BNE Z5092
JSR $E09F
BCC Z508B
Z5059: JSR $E096
LDY #$03
LDX #$C8
Z5060: JSR $E0BA
DEX
BNE Z5060
DEY
BNE Z5060
JSR $E0AB
BCC Z508B
Z5071: INT $0313
BIT $040B
BMI Z5092
JSR $E0BA
JSR $E093
BCS Z508B
Z5084: LDY #$00
STY $03F6
CLC
RTS
Z508B: LDA #$00
STA TEMP_9
SEC
RTS
Z5092: LDA #$02
STA TEMP_9
JSR $E0CF
SEC
RTS
Z4D4F: JSR Z504C
BCC Z4D57
JMP Z4E59
Z4D57: LDA $03E9
JSR $E099
LDX #$FF
Z4D5F: JSR $E0BA
JSR $E093
BCC Z4D6A
DEX
BNE Z4D5F
Z4D6A: LDA #$00
STA $03F6
STA $0401
LDA #$99
JSR Z5023
BCS Z4D7C
JMP Z4E59
Z4D7C: LDA #$00
JSR Z5023
BCS Z4D86
JMP Z4E59
Z4D86: CLI
LDA #$00
STA $03F6
STA $0401
JSR Z4EEC
BCS Z4D9D
LDA TEMP_9
BNE Z4D9C
JMP Z4E59
Z4D9C: RTS
Z4D9D: LDX #$FF
LDA #$00
STA $0401
STA $03F6
Z4DA7: LDA #$00
STA $0401
STA $03F6
JSR $E0BA
JSR $E093
BCC Z4DBD
DEX
BNE Z4DA7
JMP Z4E59
Z4DBD: LDA #$AA
JSR Z5023
LDA #$03
JSR Z5023
JSR $E0BA
LDX #$FF
LDY #$FF
Z4DCE: JSR $E0BA
DEX
BNE Z4DE1
DEY
BNE Z4DE1
JMP Z4E59
Z4DE1: LDA #$00
STA $0401
STA $03F6
JSR $E0B7
BCC Z4DCE
CMP #$AA
BNE Z4DCE
JSR $E0B7
BCC Z4DCE
CMP #$00
BNE Z4DCE
JSR $E0BA
JSR $E09C
LDX #$FF
Z4E03: LDA $1E
AND #$40
BNE Z4E0F
JSR $E0BA
DEX
BNE Z4E03
Z4E0F: JSR $E0BA
LDA #$C0
STA $17
LDA $0436
ORA #$08
STA $18
STA $0436
PHP
PHA
LDA $3D
AND #$FC
ORA #$03
STA $3D
PLA
PLP
LDA $043D
STA $3A
LDA $043C
STA $3C
PHP
PHA
LDA $3D
AND #$FC
ORA #$02
STA $3D
PLA
PLP
LDA #$00
STA $3C
PHP
PHA
LDA $3D
AND #$FC
ORA #$00
STA $3D
PLA
PLP
LDA #$00
STA $3D
CLI
SEC
RTS
Z4E59: INT $031D
CLI
CLC
RTS
Z5023: STX $0680
PHA
LDX #$FF
PHP
PHA
LDA $3D
AND #$FC
ORA #$00
STA $3D
PLA
PLP
Z5035: DEX
BEQ Z5046
LDA $3B
AND #$20
BEQ Z5035
PLA
STA $3A
LDX $0680
SEC
RTS
Z5046: LDX $0680
PLA
CLC
RTS
Z4E5F: LDA #$00
STA TEMP_9
CLC
RTS
Z4EEC: LDA #$00
STA $03F6
STA $0401
JMP Z4F02
RTS
Z4F02: JSR Z4FB4
LDX #$F0
Z4F07: JSR $E093
BCC Z4F18
Z4F0F: JSR $E0BA
DEX
BNE Z4F07
JMP Z4E5F
Z4F18: LDA #$33
JSR Z5023
BCS Z4F22
JMP Z4E5F
Z4F22: LDX #$00
Z4F24: LDA $0280,X
JSR Z5023
BCS Z4F2F
JMP Z4E5F
Z4F2F: INX
CPX #$0F
BCC Z4F24
LDA #$0F
STA TEMP_10
LDA #$00
STA TEMP_11
STA TEMP_12
SEC
LDA TEMP_5
SBC TEMP_10
STA TEMP_5
LDA TEMP_6
SBC TEMP_11
STA TEMP_6
LDA TEMP_7
SBC TEMP_12
STA TEMP_7
LDA TEMP_7
CMP TEMP_12
BNE Z4F75
LDA TEMP_6
CMP TEMP_11
BNE Z4F75
LDA TEMP_5
CMP TEMP_10
Z4F75: BEQ Z4F7C
BCC Z4F7C
JMP Z4EEC
Z4F7C: JSR Z4FB4
LDX #$F0
Z4F81: JSR $E093
BCC Z4F8F
JSR $E0BA
DEX
BNE Z4F81
JMP Z4E5F
Z4F8F: LDA #$22
JSR Z5023
BCS Z4F99
JMP Z4E5F
Z4F99: LDA TEMP_5
JSR Z5023
LDX #$00
Z4FA1: LDA $0280,X
JSR Z5023
BCS Z4FAC
JMP Z4E5F
Z4FAC: INX
CPX TEMP_5
BCC Z4FA1
SEC
RTS
Z4FB4: LDA TEMP_2
STA $08CD
LDA TEMP_3
STA $08CE
LDA #$00
STA $08CF
STA $08D0
LDY TEMP_4
JSR Z6648
LDA #$00
STA $08D1
INT $0519
BCS Z5021
LDA #$0F
STA $08C6
LDA #$00
STA $08C7
LDA #$80
STA $E0
LDA #$02
STA $E1
INT $0516
BCS Z5021
LDA #$0F
CLC
ADC TEMP_2
STA TEMP_2
BCC Z4FFF
INC TEMP_3
Z4FFF: LDA TEMP_3
CMP #$C0
BNE Z500B
LDA TEMP_2
CMP #$00
Z500B: BCC Z5021
SEC
LDA TEMP_3
SBC #$80
STA TEMP_3
INC TEMP_4
Z5021: RTS
Z6648: CPY #$00
BEQ Z66B9
LDA #$00
STA TEMP_10
STA TEMP_12
LDA #$40
STA TEMP_11
SEC
LDA $08CD
SBC TEMP_10
STA $08CD
LDA $08CE
SBC TEMP_11
STA $08CE
LDA $08CF
SBC TEMP_12
STA $08CF
Z6677: LDA #$00
STA TEMP_10
STA TEMP_12
LDA #$80
STA TEMP_11
CLC
LDA $08CD
ADC TEMP_10
STA $08CD
LDA $08CE
ADC TEMP_11
STA $08CE
LDA $08CF
ADC TEMP_12
STA $08CF
DEY
BNE Z6677
SEC
LDA $08CE
SBC #$20
STA $08CE
LDA $08CF
SBC #$00
STA $08CF
LDX #$00
RTS
Z66B9: LDA #$00
STA TEMP_10
STA TEMP_12
LDA #$60
STA TEMP_11
SEC
LDA $08CD
SBC TEMP_10
STA $08CD
LDA $08CE
SBC TEMP_11
STA $08CE
LDA $08CF
SBC TEMP_12
STA $08CF
LDX #$00
RTS
TEMP_1: .DB $00
TEMP_2: .DB $00
TEMP_3: .DB $00
TEMP_4: .DB $00
TEMP_5: .DB $00
TEMP_6: .DB $00
TEMP_7: .DB $00
TEMP_8: .DB $00
TEMP_9: .DB $00
TEMP_10: .DB $00
TEMP_11: .DB $00
TEMP_12: .DB $00
发表于 2006-8-28 20:30:08 | 显示全部楼层
GGV那里不管了 今天晚上就在这里灌了!
发表于 2006-8-28 20:30:12 | 显示全部楼层
450 楼。。。。抢啊。。。。
发表于 2006-8-28 20:30:15 | 显示全部楼层
谁发的这么长的贴?
"级别: 小小强
精华: 0
发帖: 704
威望: 4429 点
金钱: 2260 易码币
贡献值: 0 点
[分享][原创]让BAS进入有声世界

13029_30978_5307.rar
这是个演示程序

让BAS 进入有声世界!这里当然不是傻傻的PLAY了,而是真正用DSP 放!
Only for 3k!Only!
这几天甚是空虚啊,心情极度郁闷,还是在EMAX待着舒服。
反了一下sysdir/jinqu,跟踪啊跟踪,代码抄啊抄(我抄了N页),删啊删,终于提取出了核心代码,又debug 了不少时间,将与bas解释器冲突的地址改了改.不过最终成功了!版主看在我努力的份上,加个精吧(跪求了)。
代码汇编后不到1KB。各位BAS Fans们,想让你们的程序拥有b16+a16的连lav都望尘莫及的效果吗?今天就实现这个不可能的效果!
已经将操作超级简化了…
b16请看我的demo_2源码,在此不多说,谁还不懂跟贴问。
这次是用061 播A16,操作简单(可简单的背后…),我把源码贴下来,能看懂则看(说实话,那几个JSR $Exxx得好好研究),看不懂也无所谓,复制下来一编译就成了。纯傻瓜式操作,菜鸟都会!
大前提:only for 3k!,别问我061是什么东西,其它机型运行必然后悔莫及。
方法:1.载入源码到内存
2.打开音乐文件.用 OPEN 就可以,如 OPEN XX FOR (RANDOM/INPUT) AS1就可以.只是文件大小有限制。最好用汇编打开。
3.CALL 播放代码!

就三步操作,播放时不干扰屏幕.完毕自动返回BAS程序,播放过程不响应按键(我把那一段给删了),若需要响应加一段代码即可,其实播放过程中同样可以做点什么,留大家研究咯.再把文件关闭(BAS就用CLOSE,汇编INT $0517,INT $0523哪个都行)就行了。
谁说BAS 弱的!!有汇编就是强!
(版主若要将此帖转汇编区也可以,但千万在BAS区里别删啊)
由于存在无条件转移指令,因此大家使用时应注意 ".ORG XXXX",一定不要随便载入。先确定播放代码的位置(PS:3K中$1000~$19BF处的内存可用,经本人实验$0BB8开始都可以用)即XXXX的值,汇编时在源码".ORG $0BB8"改成".ORG $XXXX"就成。我把代码默认放到3000(0BB8)处,懒的改的话直接调用(CALL 3000).这应该明白了吧?
至于PC端汇编软件,我原来也没用过,是从软件中心下的Kong小子的汇编器,还比较方便.
还有就是若PC端生成的文件扩展名为".bin",一定要改,否则下载时会将其“解密”,程序就面目全非了。
我就是不忍心看着BAS就这么沉下去,才不惜时间和精力去做。我才初三啊,理解力判断力都还很次,加之如山的作业,面临中考的紧迫,编得我已经有一觉睡过去永不起来的打算了。
整篇帖子全是我用记事本按出来的,苦啊。
大家要理解我,理解BAS啊……我真的快崩溃了…BAS一定要争气啊,大家也一定要努力啊…
哪位大虾看了鄙人的帖子觉得有什么不妥的,恳求您批评指正。
怕大家还是迷糊(不是大家的错,是我的表达能力太弱了),我写了演示程序。
至于有什么用,我想不用我多说了吧,编一个像Q-PLAYER或音文同步的程序已经是小case了,还可加点图片播放,随机播放,快进快退什么的。靠的是大家的技术和热情!
再次呼吁:一定定定…(回声)要革新BASIC啊啊啊啊…(回声)
附:汇编源码

.ORG $0BB8
JSR INITIALIZE
LDA #$01
STA $BF70
JSR Z4D57
RTS
INITIALIZE: INT $0B1C
JSR Z5C74
RTS
Z5C74: INT $0514
LDA $08FB
STA $BF74
LDA $08FC
STA $BF75
LDA $08FD
STA $BF76
LDA $08FE
STA $BF77
LDA #$00
STA $BF71
LDA #$60
STA $BF72
LDA #$00
STA $BF73
RTS
Z4D57: JSR Z505A
BCC Z4D5F
JMP Z4E64
Z4D5F: LDA $03E9
JSR $E099
LDX #$FF
Z4D67: JSR $E0BA
JSR $E093
BCC Z4D72
DEX
BNE Z4D67
Z4D72: LDA #$00
STA $03F6
STA $0401
LDA #$99
JSR Z5031
BCS Z4D84
JMP Z4E64
Z4D84: LDA #$40
JSR Z5031
BCS Z4D8E
JMP Z4E64
Z4D8E: CLI
LDA #$00
STA $03F6
STA $0401
JSR Z4EFA
BCS Z4DA5
LDA $BF78
BNE Z4DA4
JMP Z4E64
Z4DA4: RTS
Z4DA5: LDX #$FF
LDA #$00
STA $0401
STA $03F6
Z4DAF: LDA #$00
STA $0401
STA $03F6
JSR $E0BA
JSR $E093
BCC Z4DC5
DEX
BNE Z4DAF
JMP Z4E64
Z4DC5: LDA #$AA
JSR Z5031
LDA #$03
JSR Z5031
JSR $E0BA
LDX #$FF
LDY #$FF
Z4DD6: JSR $E0BA
DEX
BNE Z4DE2
DEY
BNE Z4DE2
JMP Z4E64
Z4DE2: LDA $C7
BPL Z4DE9
JMP Z4E64
Z4DE9: LDA #$00
STA $0401
STA $03F6
JSR $E0B7
BCC Z4DD6
CMP #$AA
BNE Z4DD6
JSR $E0B7
BCC Z4DD6
CMP #$00
BNE Z4DD6
JSR $E0BA
JSR $E0BA
JSR $E09C
LDX #$FF
Z4E0E: LDA $1E
AND #$40
BNE Z4E1A
JSR $E0BA
DEX
BNE Z4E0E
Z4E1A: JSR $E0BA
LDA #$C0
STA $17
LDA $0436
ORA #$08
STA $18
STA $0436
PHP
PHA
LDA $3D
AND #$FC
ORA #$03
STA $3D
PLA
PLP
LDA $043D
STA $3A
LDA $043C
STA $3C
PHP
PHA
LDA $3D
AND #$FC
ORA #$02
STA $3D
PLA
PLP
LDA #$00
STA $3C
PHP
PHA
LDA $3D
AND #$FC
ORA #$00
STA $3D
PLA
PLP
LDA #$00
STA $3D
CLI
SEC
RTS
Z4E64:INT $031D
CLI
CLC
RTS
Z4EFA: LDA #$00
STA $03F6
STA $0401
LDA $0A9C
CMP #$00
BEQ Z4F10
JSR CAPTION
RTS
Z4F10: JSR Z4FC2
LDX #$F0
Z4F15: JSR $E093
BCS Z4F1D
JMP Z4F26
Z4F1D: JSR $E0BA
DEX
BNE Z4F15
JMP Z4E6A
Z4F26: LDA #$33
JSR Z5031
BCS Z4F30
JMP Z4E6A
Z4F30: LDX #$00
Z4F32: LDA $0280,X
JSR Z5031
BCS Z4F3D
JMP Z4E6A
Z4F3D: INX
CPX #$0F
BCC Z4F32
LDA #$0F
STA $BF79
LDA #$00
STA $BF7A
LDA #$00
STA $BF7B
SEC
LDA $BF74
SBC $BF79
STA $BF74
LDA $BF75
SBC $BF7A
STA $BF75
LDA $BF76
SBC $BF7B
STA $BF76
LDA $BF76
CMP $BF7B
BNE Z4F83
LDA $BF75
CMP $BF7A
BNE Z4F83
LDA $BF74
CMP $BF79
Z4F83: BEQ Z4F8A
BCC Z4F8A
JMP Z4EFA
Z4F8A: JSR Z4FC2
LDX #$F0
Z4F8F: JSR $E093
BCC Z4F9D
JSR $E0BA
DEX
BNE Z4F8F
JMP Z4E6A
Z4F9D: LDA #$22
JSR Z5031
BCS Z4FA7
JMP Z4E6A
Z4FA7: LDA $BF74
JSR Z5031
LDX #$00
Z4FAF: LDA $0280,X
JSR Z5031
BCS Z4FBA
JMP Z4E6A
Z4FBA: INX
CPX $BF74
BCC Z4FAF
SEC
RTS
Z4FC2: LDA $BF71
STA $08CD
LDA $BF72
STA $08CE
LDA #$00
STA $08CF
LDA #$00
STA $08D0
LDY $BF73
JSR Z665E
LDA #$00
STA $08D1
INT $0519
BCS Z502F
LDA #$0F
STA $08C6
LDA #$00
STA $08C7
LDA #$80
STA $E0
LDA #$02
STA $E1
INT $0516
BCS Z502F
LDA #$0F
CLC
ADC $BF71
STA $BF71
BCC Z500D
INC $BF72
Z500D: LDA $BF72
CMP #$C0
BNE Z5019
LDA $BF71
CMP #$00
Z5019: BCC Z502F
SEC
LDA $BF71
SBC #$00
STA $BF71
LDA $BF72
SBC #$80
STA $BF72
INC $BF73
Z502F: RTS
Z665E: CPY #$00
BEQ Z66CF
LDA #$00
STA $BF79
LDA #$40
STA $BF7A
LDA #$00
STA $BF7B
SEC
LDA $08CD
SBC $BF79
STA $08CD
LDA $08CE
SBC $BF7A
STA $08CE
LDA $08CF
SBC $BF7B
STA $08CF
Z668D: LDA #$00
STA $BF79
LDA #$80
STA $BF7A
LDA #$00
STA $BF7B
CLC
LDA $08CD
ADC $BF79
STA $08CD
LDA $08CE
ADC $BF7A
STA $08CE
LDA $08CF
ADC $BF7B
STA $08CF
DEY
BNE Z668D
SEC
LDA $08CE
SBC #$20
STA $08CE
LDA $08CF
SBC #$00
STA $08CF
LDX #$00
RTS
Z66CF: LDA #$00
STA $BF79
LDA #$60
STA $BF7A
LDA #$00
STA $BF7B
SEC
LDA $08CD
SBC $BF79
STA $08CD
LDA $08CE
SBC $BF7A
STA $08CE
LDA $08CF
SBC $BF7B
STA $08CF
LDX #$00
RTS
Z5031: STX $0680
PHA
LDX #$FF
PHP
PHA
LDA $3D
AND #$FC
ORA #$00
STA $3D
PLA
PLP
Z5043EX
BEQ Z5054
LDA $3B
AND #$20
BEQ Z5043
PLA
STA $3A
LDX $0680
SEC
RTS
Z5054DX $0680
PLA
CLC
RTS
Z4E6A: LDA #$00
STA $BF78
CLC
RTS
Z505A: LDA $040B
BNE Z50A0
JSR $E09F
BCS Z5067
JMP Z5099
Z5067: JSR $E096
LDY #$03
LDX #$C8
Z506E: JSR $E0BA
DEX
BNE Z506E
DEY
BNE Z506E
JSR $E0AB
BCS Z507F
JMP Z5099
Z507F: INT $0313
BIT $040B
BMI Z50A0
JSR $E0BA
JSR $E093
BCC Z5092
JMP Z5099
Z5092: LDY #$00
STY $03F6
CLC
RTS
Z5099: LDA #$00
STA $BF78
SEC
RTS
Z50A0: JSR $E0CF
LDA #$02
STA $BF78
SEC
RTS
CAPTION: NOP
RTS
发表于 2006-8-28 20:30:16 | 显示全部楼层
休息0.3钟!还差不多
发表于 2006-8-28 20:30:19 | 显示全部楼层
嘿  我要加油了!嘿嘿
发表于 2006-8-28 20:30:20 | 显示全部楼层
asfo
发表于 2006-8-28 20:30:23 | 显示全部楼层
晚上睡觉就用手机...
发表于 2006-8-28 20:30:31 | 显示全部楼层
GGV有庆祝的事情么.....
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2025-5-4 11:45 , Processed in 0.041100 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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