今号の内容 ・MUSICコーナー ・PC−6000 ハード&ユーティリティ ・P6なんでもコーナー ・お知らせ ・編集後記 内地(本州)では梅雨に入り、蒸し暑い日が続いていることと 思います。北海道もこれらの影響で天気が荒れています。SAV E会報でも読んで夏休みに向けていろいろとがんばりましょう。 さて、島原市の人々は本当に大変な思いをしております。我々 もいつああいった状況になるのかわかりません。みなさんも気を つけましょう。被災者のみなさまに心から御見舞申しあげます。 会員のみなさまもよくここまでついてきてくれました。当初は 10号出せばいいほうだろうと思っていましたが、あまりにもの 会員数の増加でとうとう次号で20号を出すことができるように なりました。これも会員のみなさんの御支援があってのことです そのため、20号から内容を大幅に変更してお届けします。くわ しい内容はかわら版に載せてありますのでそちらを参照してくだ さい。 札幌は6月14日から北海道神宮祭です。みなさまの地域もそ ろそろ祭りの時期にはいるのではないでしょうか。(まだかな) ローカルな情報をSAVEまでおよせください。 [MUSICコーナー] 最近はMIDIによるコンピュータミュージックがはやって? いますが、別にパソコンとつなげなくてもよいのです。パソコン は一種のシーケンサと考えればよいのです。単体でシーケンサを 持っていれば、それで十分ミュージックが楽しめるのです。我大 学のクラブでは今、スペースハリアーを弾いて楽しんでいます。 スペハリのテーマ曲はとても簡単でベースラインがオクターブ間 を交互に弾いて、あとはメロディだけだからです。こういう同じ パターンをパソコンにインプットさせるのも簡単で、同じパター ンを何度も呼び出せばよいのです。 最近のゲームミュージックはFM8音だの12音だの同時発音 数が多過ぎて、P6のような機種には対処できません。しかし、 それらの音楽を3重和音、6重和音にするのはテクニックが必要 です。そのテクニックを私がやっている方法を少し教えましょう 6重和音の場合、主旋律、ベース、ドラムでまず、3音キープ し、残りは例えば裏旋律、コードの5度の音(和音の一番高い音 )、コードの3度の音(和音の一番低い音(根音)から2番目の 音)で構成する。 3重和音の場合、主旋律とベースの2音でキープ、残り1音は 裏旋律、またはドラムに使用する。3重和音で今の曲を作るのは 不可能に近いですが、感じだけは作れると思います。昔はPSG 3重和音でそのままそっくり作れましたが今はPSG音源を使っ ている曲はほとんどありません。 私がP6でぜひやってみたいのは、X68000などのように 音楽を鳴らしながら他の処理(例えばプログラムの入力等)を実 行することです。単音で同じ音符のパターンでしたら現在出回っ ています。(AX−7ポリス&ギャングなど) ポリス&ギャングを持っている人は、次の実験をしてみてくだ さい。 ポリス&ギャングをロードし、RUNさせます。ゲーム中でS ToPキーを押し、プログラムを止めます。NEWして、 PoKE&HCFF9,1:EXEC&HCFF8 を実行して下さい。どうですか。音楽が鳴っていながら他の処理 ができます。ちなみにCFF9Hの値を1〜5の範囲で変えると 曲が変わります。PLAY文やSToPさせると止まってしまい ますが、その時は SoUND8,16 とすれば鳴りだします。これは割り込みを使っているからで、電 源を止めるまで動いています。このルーチンは、ハード&ユーテ ィリティコーナーで紹介しますのでこれを活用して曲を作って下 さい。 私がどうしてもわからないのがドアドアmkUのMUSICの メカニズムです。どなたか知っている方がいればこのコーナーに お知らせください。なお、次回からはこのコーナーが新しくなり [MUSICに親しむ]というコーナーになります。よろしくお 願いします。 [PC−6000 ハード&ユーティリティ] MUSICコーナーで紹介されていると思いますが、アスキー AX−7のポリス&ギャングのMUSICのサブルーチンについ てアセンブルリストを紹介します。 oRG 0CFF8H CFF8 3E01 MCALL: LD A,1 CFFA DS -1 CFF9 SENTAK:DS 1 CFFA C30CCF JP MoPEN oRG 0CF00H CF00 C30CCF JP MoPEN CF03 CLoSE: CF03 F3 DI CF04 21740F LD HL,0F74H CF07 2206FA LD (0FA06H),HL CF0A FB EI CF0B C9 RET CF0C MoPEN: CF0C F3 DI CF0D 21CFCF LD HL,INT CF10 2206FA LD (0FA06H),HL CF13 FB EI CF14 CF60CF CALL oPPLAY CF17 C9 RET CF18 PLAY: CF18 3AC9CF LD A,(NWAIT) CF1B 3D DEC A CF1C 32C9CF LD (NWAIT),A CF1F FE00 CP 0 CF21 C0 RET NZ CF22 3E08 LD A,8 CF24 32C9CF LD (NWAIT),A CF27 2AC7CF LD HL,(NMUSIC) CF2A 7E LD A,(HL) CF2B B7 oR A CF2C 2004 JR NZ,JPL1 CF2E 2AC5CF LD HL,(SMUSIC) CF31 7E LD A,(HL) CF32 JPL1: CF32 23 INC HL CF33 22C7CF LD (NMUSIC),HL CF36 CB7F BIT 7,A CF38 201D JR NZ,KYUHU CF3A 2100D7 LD HL,DPLAY CF3D 4F LD C,A CF3E CB21 SLA C CF40 0600 LD B,0 CF42 09 ADD HL,BC CF43 3E00 LD A,0 CF45 5E LD E,(HL) CF46 CDC51B CALL SoUND CF49 23 INC HL CF4A 3C INC A CF4B 5E LD E,(HL) CF4C CDC51B CALL SoUND CF4F 3E0D LD A,13 CF51 1E0D LD E,13 CF53 CDC51B CALL SoUND CF56 C9 RET CF57 KYUHU: CF57 E60F AND 0FH CF59 17 RLA CF5A 17 RLA CF5B 17 RLA CF5C 32C9CF LD (NWAIT),A CF5F C9 RET CF60 oPPLAY: CF60 F3 DI CF61 F5 PUSH AF CF62 3E08 LD A,8 CF64 1E1F LD E,31 CF66 CDC51B CALL SoUND CF69 3E0D LD A,13 CF6B 1E0D LD E,13 CF6D CDC51B CALL SoUND CF70 3E0C LD A,12 CF72 1E02 LD E,2 CF74 CDC51B CALL SoUND CF77 F1 PoP AF CF78 FE01 CP 1 CF7A 2815 JR Z,SETBUN CF7C FE02 CP 2 CF7E 2818 JR Z,SETKAT CF80 FE03 CP 3 CF82 281B JR Z,SETKAP CF84 FE04 CP 4 CF86 281E JR Z,SETHAN CF88 FE05 CP 5 CF8A 2821 JR Z,SETDSP CF8C 21FED8 LD HL,NoP CF8F 1821 JR JPLAY1 CF91 SETBUN: CF91 2134D7 LD HL,DBNMEI ;MUSIC1 ノ デ ータアド レス CF94 3E08 LD A,8 CF96 181A JR JPLAY1 CF98 SETKAT: CF98 2158D8 LD HL,DKATU ;NUSIC2 ノ デ ータアド レス CF9B 3E08 LD A,8 CF9D 1813 JR JPLAY1 CF9F SETKAP: CF9F 2105D9 LD HL,DKAP ;MUSIC 3 ノ デ ータアド レス CFA2 3E09 LD A,9 CFA4 180C JR JPLAY1 CFA6 SETHAN: CFA6 2113D8 LD HL,DHANGA ;MUSIC 4 ノ デ ータアド レス CFA9 3E06 LD A,6 CFAB 1805 JR JPLAY1 CFAD SETDSP: CFAD 21C1D8 LD HL,DSP ;MUSIC 5 ノ デ ータアド レス CFB0 3E09 LD A,9 CFB2 JPLAY1: CFB2 32DDCF LD (SPEED),A CFB5 22C5CF LD (SMUSIC),HL CFB8 22C7CF LD (NMUSIC),HL CFBB 3E01 LD A,1 CFBD 32CBCF LD (MWAIT),A CFC0 32C9CF LD (NWAIT),A CFC3 FB EI CFC4 C9 RET CFC5 SMUSIC:DS 2 CFC7 NMUSIC:DS 2 CFC9 NWAIT: DS 2 CFCB MWAIT: DS 2 CFCD SBUN: DS 2 CFCF INT: CFCF C5 PUSH BC CFD0 D5 PUSH DE CFD1 E5 PUSH HL CFD2 F5 PUSH AF CFD3 3ACBCF LD A,(MWAIT) CFD6 B7 oR A CFD7 2005 JR NZ.JINT CFD9 CD18CF CALL PLAY CFDC 3E08 LD A,8 CFDE DS -1 CFDD SPEED: DS 1 CFDE JINT: CFDE 3D DEC A CFDF 32CBCF LD (MWAIT),A CFE2 F1 PoP AF CFE3 E1 PoP HL CFE4 D1 PoP DE CFE5 C1 PoP BC CFE6 C3740F JP 0F74H ;SoUND A,E *SoUND: EQU 01BC5H このまま入力して実行しても動きません。なぜかというと音楽 データが入っていないからです。各MUSICアドレスにデータ を書き込めば動きます。今回はサブルーチンのみの掲載でした。 今回お送りできなかったユーティリティは、次回からの[便長 ユーティリティ]でお送りします。予定ではPEEK,PoKE 活用法、NEW ERRoR SoUNDをお送りします。 [P6なんでもコーナー] 前回のP6mKUSRのTIME$,DATE$ですが、たぶ んP6mkUSRにはバックアップ電源がついてないと思います (66SRの場合、電源を切ってもTIME$,DATE$の値 は変わっている)したがって、仮にP6mkUSRでTIME $,DATE$がソフト上で可能になったとしても電源を切れば 機能は失われるので実用的とはいえません。 次回からは[P6なんでも情報]として裏話などをお送りしま す。質問などあればこのコーナーまでお知らせください。 編 集 後 記 ・突然のお知らせでスペースがない。新しくなる20号からのS AVEをよろしくお願いします。7月中旬発行予定です。