;BEEP Ver4A [メロディー符用] NAO TECHUNOHUT 2001年11月 ;簡易テスト用基板用にI/Oピン他調整 2007年11月03日(火) ; ; ┌─┰─┐ ; (3〜5.5V) VDD ┥ ┝ Vss GND ; 選択 GP5 ┥12F ┝ GP0 (18PIN用MCLR) ; 選択 GP4 ┥ 675 ┝ GP1 スピーカー出力 ; リセット MCLR┥ ┝ GP2 選択 ; └───┘ ; ;-------PIC基本設定---------------------; include '12f675.inc' fuses _intrc_osc_noclkout ;オシレーター設定→内蔵、クロック出力無 fuses _wdt_off ;ウォッチドックタイマー→無効 fuses _pwrte_on ;電源投入72ms間リセット→有効 fuses _mclre_on ;MCLR端子(リセット)→設定する fuses _boden_off ;低電圧リセット(約2V以下)→無し fuses _cp_off ;コードプロテクト→無効 fuses _cpd_off ;eepromのコードプロテクト→無効 id '0675' ; org 512 ; ;曲データー(合計221音符まで) ;=============================================================================; ;-------1 音階DATA-------------------- rNo_1A mov mTEMPO,#130 ;♪テンポ jmp rNo_1X ; wNo_1A jmp pc+w ; ;♪ マイムマイム/M(テンポ=130 音符数:104) retw DO5,RE5,MIf5,RE5,DO5,REs5,FA5,SO5,FA5 retw MIf5,SO5,SIf5,RAf5,SIf5,SO5,FA5,SO5 retw DO5,RE5,MIf5,RE5,DO5,REs5,FA5,SO5,FA5 retw DO6,DO6,SIf5,SO5,SIf5,SO5,SO5,DO6 retw DO6,DO6,DO6,DO6,DO6,DO6,DO6,DO6 retw KYU,DO6,SIf5,SIf5,SO5,SIf5,DO6 retw DO6,DO6,DO6,DO6,DO6,DO6,DO6,DO6 retw KYU,DO6,SIf5,SIf5,SO5,FA5,SO5 retw SIf5,SIf5,SIf5,SIf5 retw SIf5,SIf5,RAf5,SO5,FA5,SIf5,SIf5,RAf5,SO5,FA5 retw MIf5,FA5,SO5,RAf5,SO5,FA5,MIf5,SIf5 retw SIf5,SIf5,RAf5,SO5,FA5,SIf5,SIf5,RAf5,SO5,FA5 retw SO5,SO5,MIf5,RE5,DO5,MIf5,RE5,DO5 jmp rSLEEP ; ;-------2 音階DATA-------------------- rNo_2A mov mTEMPO,#150 ;♪テンポ jmp rNo_2X ; wNo_2A jmp pc+w ; ;♪ 魔法使いサリー(S)/M(テンポ=120 音符数:14) retw RA4,DO5 retw MI5,RE5,DO5,MI5,RE5,DO5 retw RE5,MI5,RE5,DO5,SI4,RA4 jmp rSLEEP ; ;-------3 音階DATA-------------------- rNo_3A mov mTEMPO,#172 ;♪テンポ jmp rNo_3X ; wNo_3A jmp pc+w ; ;♪ N64マリオタイトル/M(テンポ=172 音符数: 10) retw MI5,MI5,KYU,MI5,KYU,DO5,MI5 retw SO5,KYU,SO4 jmp rSLEEP ; ;-------4 音階DATA-------------------- rNo_4A mov mTEMPO,#144 ;♪テンポ jmp rNo_4X ; wNo_4A jmp pc+w ; ;♪ N64レースファンファーレ/M(テンポ=144 音符数: 11) retw SO5,SO5,SO5,SO5 retw SI5,SO5,SI5 retw RE6,KYU,RE5 retw SO5 jmp rSLEEP ; ;-------5 音階DATA-------------------- rNo_5A mov mTEMPO,#135 ;♪テンポ jmp rNo_5X ; wNo_5A jmp pc+w ; ;♪いつも何度でも(S)/M(テンポ=135 音符数:29) retw FA4,SO4 retw RA4,FA4,DO5,RA4,SO4,DO5,SO4 retw FA4,RE4,RA4,FA4,MI4,MI4 retw RE4,MI4,FA4,SO4,DO4,FA4,SO4,RA4 retw SIf4,SIf4,RA4,SO4,FA4,SO4 jmp rSLEEP ; ;-------6 音階DATA-------------------- rNo_6A mov mTEMPO,#112 ;♪テンポ jmp rNo_6X ; wNo_6A jmp pc+w ; ;♪ 森のクマさん前奏/M(テンポ=112 音符数:39 ) retw SO5,RA5,SI5 retw DO6,SO5,MI5,FA5,MI5,RE5,DO5,SI4,DO5 retw RA5,RA5,SI5,RA5 retw SO5,SO4,RA4,SO4,FA5,FA4,SO4,FA4,MI5,MI4,FA4,MI4,RE5,RE4,MI4 retw DO5,RE4,MI4,FA4,SO4,RA4,SI4,DO5 jmp rSLEEP ; ;-------7 音階DATA-------------------- rNo_7A mov mTEMPO,#180 ;♪テンポ jmp rNo_7X ; wNo_7A jmp pc+w ; ;♪ タクトスイッチ用クリック音/Mのみ(テンポ=180 音符数: 1) retw DO7 jmp rSLEEP ; ;=============================================================================; org 768 ; ;-------1 音長DATA-------------------- wNo_1B jmp pc+w ; ;♪ マイムマイム/M retw L050,L050,L025,L025,L050,L050,L050,L050,L050 retw L050,L050,L050,L025,L025,L050,L050,L100 retw L050,L050,L025,L025,L050,L050,L050,L050,L050 retw L050,L050,L050,L025,L025,L050,L050,L100 retw L050,L050,L050,L050,L050,L050,L050,L050 retw L050,L050,L050,L050,L050,L050,L100 retw L050,L050,L050,L050,L050,L050,L050,L050 retw L050,L050,L050,L050,L050,L050,L100 retw L100,L100,L100,L100 retw L050,L050,L025,L025,L050,L050,L050,L025,L025,L050 retw L050,L050,L050,L025,L025,L050,L050,L100 retw L050,L050,L025,L025,L050,L050,L050,L025,L025,L050 retw L050,L050,L025,L025,L050,L050,L050,L100 ;-------2 音長DATA-------------------- wNo_2B jmp pc+w ; ;♪ 魔法使いサリー/M retw L050,L050 retw L100,L050,L050,L100,L050,L050 retw L050,L025,L025,L050,L050,L100 ;-------3 音長DATA-------------------- wNo_3B jmp pc+w ; ;♪ N64マリオタイトル/M retw L050,L050,L050,L050,L050,L050,L100 retw L100,L100,L100 ;-------4 音長DATA-------------------- wNo_4B jmp pc+w ; ;♪ N64レースファンファーレ/M retw L050,L025,L025,L050 retw L050,L050,L050 retw L050,L050,L050 retw L150 ;-------5 音長DATA-------------------- wNo_5B jmp pc+w ; ;♪いつも何度でも/M retw L050,L050 retw L050,L050,L150,L050,L100,L100,L100 retw L050,L050,L150,L050,L200,L100 retw L100,L100,L050,L050,L100,L100,L050,L050 retw L100,L050,L050,L050,L050,L200 ;-------6 音長DATA-------------------- wNo_6B jmp pc+w ; ;♪ 森のクマさん前奏/M retw L050,L050,L050 retw L100,L100,L050,L025,L025,L025,L025,L025,L025 retw L250,L050,L050,L050 retw L025,L025,L025,L025,L025,L025,L025,L025,L025,L025,L025,L025,L025,L025,L050 retw L050,L025,L025,L025,L025,L025,L025,L200 ;-------7 音長DATA-------------------- wNo_7B jmp pc+w ; ;♪ タクトスイッチ用クリック音/Mのみ retw L025 ;=============================================================================; ;-------PIC初期状態確認-----------------;(変更必要部抜粋) ;Bank 0 ; cmcon -0-0 0000 ;コンパレーター ;Bank 1 ; option_reg 1111 1111 ;プリスケーラー他 ; wpu --11 1111 ;プルアップ ; ansel -000 1111 ;A/D選択 ;-------プログラム開始(初期設定他)------; org 0 ; clr gpio ;GPIO出力すべてOFF(Lo) mov cmcon,# 0 00111b ;コンパレーター入力はOFFにする setb rp0 ;ページ変更(Bank 1へ) mov trisio,# 111101b ;GPIOピンは1を出力に設定 mov osccal,#10011100b ;★オシレーター微調整★ mov option,#10000111b ;タイマー0使用他 mov wpu,# 000000b ;プルアップ無し mov ansel,# 0000000b ;A/Dをデジタルに設定 clrb rp0 ;ページ変更(Bank 0へ戻す) clr tmr0 ;タイマーカウンターリセット clr mTMR_CZ ;山数初期値リセット clr mT_256Z ;1/256山初期値リセット clr mST_No ;選曲保持記憶用リセット clr mPCW ;pc+wカウントリセット ;-------選曲判定記憶--------------------; csne gpio,# 100001b ;GP5 setb mST_No.1 ; csne gpio,# 010001b ;GP4 setb mST_No.2 ; csne gpio,# 110001b ;GP4,GP5 setb mST_No.3 ; csne gpio,# 000101b ;GP2 setb mST_No.4 ; csne gpio,# 100101b ;GP2,GP5 setb mST_No.5 ; csne gpio,# 010101b ;GP2,GP4 setb mST_No.6 ; csne gpio,# 110101b ;GP2,GP4,GP5 setb mST_No.7 ; cje gpio,# 000001b,rSLEEP ;省電力待機モードへ ;-------選曲先ジャンプ------------------; jb mST_No.1,rNo_1A ; jb mST_No.2,rNo_2A ; jb mST_No.3,rNo_3A ; jb mST_No.4,rNo_4A ; jb mST_No.5,rNo_5A ; jb mST_No.6,rNo_6A ; jb mST_No.7,rNo_7A ; ;-------曲データー読込プログラム--------; rNo_1X setb pclath.1 ;1xb mov w,mPCW ; call wNo_1A ; mov mTONE,w ;音階 setb pclath.0 ;x1b mov w,mPCW ; call wNo_1B ; mov mLONG,w ;音長 clr pclath ;* jmp rMAIN ; rNo_2X setb pclath.1 ;1xb mov w,mPCW ; call wNo_2A ; mov mTONE,w ;音階 setb pclath.0 ;x1b mov w,mPCW ; call wNo_2B ; mov mLONG,w ;音長 clr pclath ;* jmp rMAIN ; rNo_3X setb pclath.1 ;1xb mov w,mPCW ; call wNo_3A ; mov mTONE,w ;音階 setb pclath.0 ;x1b mov w,mPCW ; call wNo_3B ; mov mLONG,w ;音長 clr pclath ;* jmp rMAIN ; rNo_4X setb pclath.1 ;1xb mov w,mPCW ; call wNo_4A ; mov mTONE,w ;音階 setb pclath.0 ;x1b mov w,mPCW ; call wNo_4B ; mov mLONG,w ;音長 clr pclath ;* jmp rMAIN ; rNo_5X setb pclath.1 ;1xb mov w,mPCW ; call wNo_5A ; mov mTONE,w ;音階 setb pclath.0 ;x1b mov w,mPCW ; call wNo_5B ; mov mLONG,w ;音長 clr pclath ;* jmp rMAIN ; rNo_6X setb pclath.1 ;1xb mov w,mPCW ; call wNo_6A ; mov mTONE,w ;音階 setb pclath.0 ;x1b mov w,mPCW ; call wNo_6B ; mov mLONG,w ;音長 clr pclath ;* jmp rMAIN ; rNo_7X setb pclath.1 ;1xb mov w,mPCW ; call wNo_7A ; mov mTONE,w ;音階 setb pclath.0 ;x1b mov w,mPCW ; call wNo_7B ; mov mLONG,w ;音長 clr pclath ;* jmp rMAIN ; ;---------メインプログラム--------------; rMAIN inc mPCW ;+1 ;---定数÷テンポ計算--- call sLONG ;音長定数判定代入 mov mJOSU08,mTEMPO ; call sWARIZAN ;割り算(定数÷テンポ) call s4O5I ;四捨五入 ;---周波数繰り返し数計算--- clr mWARI32 ; mov mWARI24,mSHOW24 ;÷テンポ計算結果入れ mov mWARI16,mSHOW16 ; mov mWARI08,mSHOW08 ; mov mJOSU08,mTONE ;音周波数 call sWARIZAN ;割り算(テンポ後定数÷音周波数) ;切り上げ判定・加算 jnb mSHOW08.0,rKUP_1 ;偶奇数判定 add mSHOW08,#1 ;+1 jmp rKUP_2 ; rKUP_1 test mWARIXX ;割り算の余りチェック jz rKUP_E ; add mSHOW08,#2 ;+2 rKUP_2 snc ;オーバーフローチェック inc mSHOW16 ;+1 rKUP_E ; ;周波数繰り返し数決定 mov mCT16,mSHOW16 ; mov mCT08,mSHOW08 ; ;---全音部で1/256山値計算--- call sLONG ;音長定数判定代入 mov mJOSU08,mTEMPO ; call sWARIZAN ;割り算(定数÷テンポ)と四捨五入 call s4O5I ;四捨五入 clr mWARI32 ; mov mWARI24,mSHOW24 ; mov mWARI16,mSHOW16 ; mov mWARI08,mSHOW08 ; mov mJOSU08,#12 ; call sWARIZAN ;割り算(テンポ後定数÷12)と四捨五入 call s4O5I ;四捨五入 mov mT_256Y,mSHOW08 ;1/256山値 mov mFREE_C,mSHOW08 ;1/256山値 ;---無音部0.0625秒山と1/256山値計算--- rr mSHOW24 ; rr mSHOW16 ; rr mSHOW08 ;1/2 rr mSHOW24 ; rr mSHOW16 ; rr mSHOW08 ;1/4 mov mTMR_CY,mSHOW16 ;山回数(÷256) mov mFREE_B,mSHOW08 ;1/256山値 ;---次回1/256山タイミング値計算--- add mT_256Y,mT_256Z ;現在値に加算 ;---有音部終了点算出--- sub mFREE_C,mFREE_B ;全音部点-無音部点 add mFREE_C,mT_256Z ; mov mYOUE_Y,mFREE_C ; ;---計算中のポイントパスチェック補正--- mov mFREE_C,tmr0 ;現在のtmr0値保存 inc mFREE_C ;現在のtmr0値+1 mov mFREE_B,mFREE_C ; 〃 ;パターン1?判定 sub mFREE_C,mYOUE_Z ;tmr0値-有音部終了点 jnc rPATN_2 ; cja mYOUE_Z,mT_256Z,rPATN_N ; cja mT_256Z,mFREE_B,rPATN_N ; jmp rPATN_D ; ;パターン2?判定 rPATN_2 cja mYOUE_Z,mT_256Z,rPATN_3 ; jmp rPATN_D ; ;パターン3?判定 rPATN_3 cja mT_256Z,mFREE_B,rPATN_N ; ;-1判定 rPATN_D test mTMR_CZ ; sz ; dec mTMR_CZ ;-1 rPATN_N rCBR750 cjne mFREE_B,tmr0,rCBR750 ;tmr0値+1まで待つ ;---シンクロWAIT(待ち)--- rWAIT_0 cje tmr0,mT_256Z,rWAIT_0 ; rWAIT_1 cjne tmr0,mT_256Z,rWAIT_1 ; test mTMR_CZ ; jz rWAIT_E ; dec mTMR_CZ ;-1 jmp rWAIT_0 ; rWAIT_E ;---スピーカー行きON・OFF(Hi・Lo)--- dec mTONE ;-1 sBEEP cjne mTONE,#199,rBEEP ;[4] (5) nop ;[1] jmp rBEEN ;[2] rBEEP xor gpio,# 000010b ;[2]★ rBEEN mov mLOOP,mTONE ;[2] ;周波数と回数処理ルーチン rLOOP1 decsz mLOOP ;[1] (2) jmp rCT_A0 ;[2] test mCT08 ;[1] jz rCT_A1 ;[2] (3) djnz mCT08,rCT_A2 ;[2] (3) test mCT16 ;[1] jz rCTEND ;[2] <3> jmp rCT_A4 ;[2] rCT_A1 dec mCT08 ;[1] dec mCT16 ;[1] jmp rCT_A3 ;[2] rCT_A2 nop ;[1] nop ;[1] rCT_A3 nop ;[1] nop ;[1] rCT_A4 mov mNOP,#2 ;[2] rCT_B4 djnz mNOP,rCT_B4 ;[5] nop ;[1] nop ;[1] jmp sBEEP ;[2] rCT_A0 mov mNOP,#3 ;[2] rCT_B0 djnz mNOP,rCT_B0 ;[8] nop ;[1] jmp rLOOP1 ;[2] rCTEND ;---無音部の山回数,1/256山値入れ--- mov mTMR_CZ,mTMR_CY ;山回数 mov mT_256Z,mT_256Y ;1/256山タイミング値 ;---有音部の終了点計算値入れ--- mov mYOUE_Z,mYOUE_Y ; ;---次音符--- jb mST_No.1,rNo_1X ; jb mST_No.2,rNo_2X ; jb mST_No.3,rNo_3X ; jb mST_No.4,rNo_4X ; jb mST_No.5,rNo_5X ; jb mST_No.6,rNo_6X ; jb mST_No.7,rNo_7X ; rSLEEP sleep ;終了 ;---------------------------------------; ;-----s 音長定数判定代入 s--------------; sLONG clr mWARI32 ; rLONG_0 cjne mLONG,#1,rLONG_1 ;16分音符(L025) mov mWARI24,#00001011b ; mov mWARI16,#01000000b ; mov mWARI08,#00000000b ;(10進で 737,280) rLONG_1 cjne mLONG,#2,rLONG_2 ;8分音符の3連符(L033) mov mWARI24,#00001111b ; mov mWARI16,#00000000b ; mov mWARI08,#00000000b ;(10進で 983,040) rLONG_2 cjne mLONG,#3,rLONG_3 ;8分音符(L050) mov mWARI24,#00010110b ; mov mWARI16,#10000000b ; mov mWARI08,#00000000b ;(10進で 1,474,560) rLONG_3 cjne mLONG,#4,rLONG_4 ;.8分音符(L075) mov mWARI24,#00100001b ; mov mWARI16,#11000000b ; mov mWARI08,#00000000b ;(10進で 2,211,840) rLONG_4 cjne mLONG,#5,rLONG_5 ;4分音符(L100) mov mWARI24,#00101101b ; mov mWARI16,#00000000b ; mov mWARI08,#00000000b ;(10進で 2,949,120) rLONG_5 cjne mLONG,#6,rLONG_6 ;.4分音符(L150) mov mWARI24,#01000011b ; mov mWARI16,#10000000b ; mov mWARI08,#00000000b ;(10進で 4,423,680) rLONG_6 cjne mLONG,#7,rLONG_7 ;2分音符(L200) mov mWARI24,#01011010b ; mov mWARI16,#00000000b ; mov mWARI08,#00000000b ;(10進で 5,898,240) rLONG_7 cjne mLONG,#8,rLONG_8 ;2分音符+8分音符(L250) mov mWARI24,#01110000b ; mov mWARI16,#10000000b ; mov mWARI08,#00000000b ;(10進で 7,372,800) rLONG_8 cjne mLONG,#9,rLONG_9 ;.2分音符(L300) mov mWARI24,#10000111b ; mov mWARI16,#00000000b ; mov mWARI08,#00000000b ;(10進で 8,847,360) rLONG_9 cjne mLONG,#10,rLONG10 ;.2分音符+8分音符(L350) mov mWARI24,#10011101b ; mov mWARI16,#10000000b ; mov mWARI08,#00000000b ;(10進で10,321,920) rLONG10 cjne mLONG,#11,rLONG11 ;全音符(L400) mov mWARI24,#10110100b ; mov mWARI16,#00000000b ; mov mWARI08,#00000000b ;(10進で11,796,480) rLONG11 cjne mLONG,#12,rLONG12 ;全音符+8分音符(L450) mov mWARI24,#11001010b ; mov mWARI16,#10000000b ; mov mWARI08,#00000000b ;(10進で13,271,040) rLONG12 cjne mLONG,#13,rLONG13 ;全音符+4分音符(L500) mov mWARI24,#11100001b ; mov mWARI16,#00000000b ; mov mWARI08,#00000000b ;(10進で14,745,600) rLONG13 cjne mLONG,#14,rLONG14 ;全音符x2(L800) ; mov mWARI32,#00000001b ; setb mWARI32.0 ; mov mWARI24,#01101000b ; mov mWARI16,#00000000b ; mov mWARI08,#00000000b ;(10進で23,592,960) rLONG14 cjne mLONG,#15,rLONG_E ;全音符x4(L1600) ; mov mWARI32,#00000010b ; setb mWARI32.1 ; mov mWARI24,#11010000b ; mov mWARI16,#00000000b ; mov mWARI08,#00000000b ;(10進で47,185,920) rLONG_E ret ; ;-------s-------s-------s-------s-------; ;--------s 割り算(32bit/8bit) s---------; sWARIZAN ;---桁移動比較--- mov mWARI_C,#32 ;ループ数設定 clr mWARIXX ; rWARI_0 rl mWARI08 ; rl mWARI16 ; rl mWARI24 ; rl mWARI32 ; rl mWARIXX ; jc rWARI_2 ;比較8ビット超判定 cjae mWARIXX,mJOSU08,rWARI_1 ;勝ち負け判定 clrb c ;キャリー0 jmp rWARI_4 ; rWARI_1 sub mWARIXX,mJOSU08 ;引き算(余りはここに残る) jmp rWARI_3 ; rWARI_2 clr mFREE_A ;0にする sub mFREE_A,mJOSU08 ; add mWARIXX,mFREE_A ; rWARI_3 setb c ;キャリー1 ;---計算結果入れ--- rWARI_4 rl mSHOW08 ;計算結果を入れる rl mSHOW16 ;   〃 rl mSHOW24 ;   〃 djnz mWARI_C,rWARI_0 ;ループ継続判定 ret ; ;-------s-------s-------s-------s-------; org 3E8h ; ;--------s 四捨五入 s-------------------; s4O5I rl mWARIXX ; jc r4O5I_1 ; cjb mWARIXX,mJOSU08,r4O5I_E ; r4O5I_1 add mSHOW08,#1 ;+1 jnc r4O5I_E ; add mSHOW16,#1 ;+1 jnc r4O5I_E ; add mSHOW24,#1 ;+1 r4O5I_E ret ; ;-------s-------s-------s-------s-------; ;-------代入数設定----------------------; ;---音階--- KYU = 200 ;休符 RES = 200 ;休符 DO7 = 16 ; SI6 = 17 ; SIf6 = 18 ; RAs6 = 18 ; RA6 = 19 ; RAf6 = 20 ; SOs6 = 20 ; SO6 = 21 ; SOf6 = 22 ; FAs6 = 22 ; FA6 = 23 ; MI6 = 25 ; MIf6 = 26 ; REs6 = 26 ; RE6 = 28 ; REf6 = 30 ; DOs6 = 30 ; DO6 = 31 ; SI5 = 33 ; SIf5 = 35 ; RAs5 = 35 ; RA5 = 37 ; RAf5 = 39 ; SOs5 = 39 ; SO5 = 42 ; SOf5 = 44 ; FAs5 = 44 ; FA5 = 47 ; MI5 = 50 ; MIf5 = 53 ; REs5 = 53 ; RE5 = 56 ; REf5 = 59 ; DOs5 = 59 ; DO5 = 63 ; SI4 = 66 ; SIf4 = 70 ; RAs4 = 70 ; RA4 = 74 ; RAf4 = 79 ; SOs4 = 79 ; SO4 = 84 ; SOf4 = 89 ; FAs4 = 89 ; FA4 = 94 ; MI4 = 99 ; MIf4 = 105 ; REs4 = 105 ; RE4 = 112 ; REf4 = 118 ; DOs4 = 118 ; DO4 = 125 ; SI3 = 133 ;シ SIf3 = 141 ;■半音低 RAs3 = 141 ;■半音高 RA3 = 149 ;ラ RAf3 = 158 ;■半音低 SOs3 = 158 ;■半音高 SO3 = 167 ;ソ SOf3 = 177 ;■半音低 FAs3 = 177 ;■半音高 FA3 = 188 ;ファ MI3 = 199 ;ミ MIf3 = 211 ;■半音低 REs3 = 211 ;■半音高 RE3 = 223 ;レ REf3 = 236 ;■半音低 DOs3 = 236 ;■半音高 DO3 = 251 ;ド ;---音長--- L025 = 1 ;16分音符 L033 = 2 ; 8分音符の3連符 L050 = 3 ; 8分音符 L075 = 4 ;.8分音符 L100 = 5 ; 4分音符 L150 = 6 ;.4分音符 L200 = 7 ; 2分音符 L250 = 8 ; 2分音符+8分音符 L300 = 9 ;.2分音符 L350 = 10 ;.2分音符+8分音符 L400 = 11 ; 全音符 L450 = 12 ; 全音符+8分音符 L500 = 13 ; 全音符+4分音符 L800 = 14 ; 全音符x2 L1600 = 15 ; 全音符x4 ;-------データーメモリー予約割当--------; mTEMPO = 20h ;テンポ用 mTONE = 21h ;周波数音階設定用 mLONG = 22h ;曲データー音長用 mPCW = 23h ;pc+wカウント用 mST_No = 24h ; mLOOP = 25h ;周波数ループ数カウント用 mCT16 = 26h ;音長実行用(9〜16ビット) mCT08 = 27h ;音長実行用(1〜 8ビット) mWARIXX = 28h ;割り算被除数桁移動比較用 mWARI32 = 29h ;割り算被除数用(25〜32ビット) mWARI24 = 2Ah ;割り算被除数用(17〜24ビット) mWARI16 = 2Bh ;割り算被除数用( 9〜16ビット) mWARI08 = 2Ch ;割り算被除数用( 1〜 8ビット) mJOSU08 = 2Dh ;割り算除数用 mWARI_C = 2Eh ;割り算ループ数カウント用 mSHOW24 = 2Fh ;割り算商用(17〜24ビット) mSHOW16 = 30h ;割り算商用( 9〜16ビット) mSHOW08 = 31h ;割り算商用( 1〜 8ビット) mFREE_A = 32h ;割り算比較値8ビット超時の計算用 mTMR_CY = 33h ;0.0625秒山回数(計算値) mTMR_CZ = 34h ;0.0625秒山回数(実行値) mT_256Y = 35h ;1/256山(計算値) mT_256Z = 36h ;1/256山(実行値) mFREE_B = 37h ;有音部終了点算出用 mFREE_C = 38h ;有音部終了点算出用 mYOUE_Y = 39h ;有音部終了点(計算値) mYOUE_Z = 3Ah ;有音部終了点(実行値) mNOP = 3Bh ;nopのwords節約用 ; (メモリー28個使用)