APPLE电脑游戏的消音技巧 广 东 刘 广 林 1993-05-07 我研究了一下APPLE机的发音原理。APPLE机的扬声器是靠触发机内$C030地址来达到发音目的的。所以我想游戏中肯定有触发$C030的程序模块,只要修改该模块(或者是多个模块),将其触发地址改为$0300,那么程序执行到这里时,程序本应触发$C030地址却因修改变成触发$0300,扬声器就不会响了。下面是我根据上面的原理使一个游戏声音消失的二进制程序。整个修改是在机器内进行的,也就是说磁盘上存放游戏本身并没有改动。该程序可以把绝大部分的文件启动的游戏声音消除掉。有APPLE机或中华学习机的朋友不妨一试。 程序清单: ]CALL-151 *BC56L BC56-18CLC; BC57-AD72AALDA $AA72;将游戏起始地址送入$2A,$2B单元 BC5A-852ASTA$2A; $2A,2B将作计数器 BC5C-6D60AAADC $AA60;起始地址+长度=结束地址 BC5F-8528STA$28;送入$28,$29单元 BC61-AD73AALDA$AA73; BC64-852BSTA$2B; BC66-6D61AAADC$AA61; BC69-8529STA$29; BC6B-A000LDY#$00;循环开始 BC6D-B12ALDA($2A),Y; BC6F-C930CMP#$30;低位=$30 BC71-D015BNE$BC88; BC73-A001LDY#$01; BC75-B12ALDA($2A),Y; BC77-C9C0CMP#$C0;高位=$C0 BC79-D00DBNE$BC88; BC7B-A987LDA#$87;找到一个,响玲 BC7D-20EDFDJSR$FDED; BC80-A903LDA#$03;高位改为$03 BC82-912ASTA($2A),Y; BC84-A000LDY#$00;低位改为$00 BC86-912ASTA($2A),Y; BC88-18CLC;计数器加1 BC89-A52ALDA$2A; BC8B-6901ADC#$01; BC8D-852ASTA$2A; BC8F-A52BLDA$2B; BC91-6900ADC#$00; BC93-852BSTA$2B判断到了结尾吗? BC95-C529CMP$29; BC97-D0D2BNE$BC6B; BC99-A528LDA$28; BC9B-C52ACMP$2A; BC9D-D0CCBNE$BC6B; BC9F-6C72AAJMP($AA72);是, 修改完毕,游戏开始。 建立此程序后,按CTRL-RESET退回BASIC状态,执行"BSAVENOSOUND,A$BC56,L80"。 玩游戏时步骤为: ]BLOADNOSOUND ]BLOAD游戏程序名 ]CALL-151 *BC56G(广东刘广林)