Skip to content

Commit 5e2d309

Browse files
author
MUCOM™
committed
MUCOM88em バージョンアップ (Ver.1.01)
1 parent 685eb04 commit 5e2d309

8 files changed

Lines changed: 151 additions & 22 deletions

File tree

mucom88em/readme.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@ MUCOM88の最終バージョン(Ver.1.7)をPC-8801シリーズ用の拡張RAMに
4141
・大深海水淵亭<br>
4242

4343
### 更新履歴
44-
44+
- 2020年05月04日 v1.01
45+
- [拡張]SSGハードウェアエンベロープコマンドを追加。
46+
- [拡張]yコマンドのアドレス指定可能範囲を拡張。(OriginalのBugFix.)
4547
- 2020年01月24日 v1.00
4648
- ALPHA-DOSをVer.2.98からVer.2.99に更新し、拡張RAM上のバイナリデータのセーブ・ロードに対応。
4749
- エラーメッセージファイルが読み込まれないバグの修正。
@@ -52,7 +54,7 @@ MUCOM88の最終バージョン(Ver.1.7)をPC-8801シリーズ用の拡張RAMに
5254
- 2019年10月25日 v0.20
5355
- FMプリセット音色データの領域をメインRAMから拡張RAMに変更し、MMLソース領域とFMプリセット音色データの領域競合を改善。
5456
- 起動時の拡張RAM搭載チェック機構を追加。
55-
- FMプリセット音色(@0@1)が壊れる仕様バグの修正。
57+
- FMプリセット音色(@0@1)が壊れる仕様バグの修正。(OriginalのBugFix.)
5658
- 2019年10月22日 v0.10 初公開
5759
- 曲バイナリデータ領域をメインRAMから拡張RAMに変更し、曲バイナリデータ領域のサイズを約8.5KBから32KBに拡大、及び曲バイナリデータ領域と演奏モニタ及びPCMデータアドレス情報の領域競合を改善。
5860
- MMLソース領域とFM音色エディタ及びSSGプリセット音色データの領域競合を改善。

mucom88em/sdk_package/MUCOM88em.txt

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ MUCOM88emの特徴と従来との相違点
9090
POLL Kコマンドで起動するFM音色エディタ上での操作は全て従来通りでOK。
9191

9292

93-
従来のMUCOM88と操作が変わるコマンド
93+
従来のMUCOM88と操作が変わるBASICコマンド
9494

9595
(1)曲バイナリデータのロード
9696

@@ -113,6 +113,43 @@ MUCOM88emの特徴と従来との相違点
113113
・MUCOM88em :「bsave "voice.dat",&h6000,&h2000,2」
114114

115115

116+
● 従来のMUCOM88から拡張されたMMLコマンド
117+
118+
(1)SSGハードウェアエンベロープ(MUCOM88 v1.01にて追加)
119+
コマンド
120+
S
121+
書式
122+
Sn
123+
値の範囲
124+
n : (0~15)
125+
使用可能なパート
126+
D/E/F (SSG)
127+
内容
128+
指定するとSSGのハードウェアエンベロープモードに切り替わる。
129+
0~15はエンベロープの波形の種類になる。
130+
ハードウェアエンベロープを使用中に'v'(ボリュームコマンド)を使用すると通常のモードに戻る。
131+
')'や'('は無視される。
132+
補足
133+
MUCOM88 v1.5のコマンド「s」(小文字)と同等の機能。
134+
MUCOM88 v1.7でオミットされたこの機能をコマンド名を変えて復活。
135+
136+
(2)レジスタ値直指定(MUCOM88 v1.01にて修正)
137+
コマンド
138+
y
139+
書式
140+
yn1,n2
141+
値の範囲
142+
n1 : (0~182)
143+
n2 : (0~255)
144+
使用可能なパート
145+
A/B/C/G/H/I/J/K (SSG以外)
146+
内容
147+
レジスタに値を直接書き込むコマンド。
148+
n1で指定したアドレスにn2の値を書き込む。
149+
補足
150+
従来、n1の指定可能範囲が狭かった(0~178)のを修正。
151+
152+
116153
● その他
117154

118155
詳細は以下のWikiページの情報も併せてご参照下さい。
0 Bytes
Binary file not shown.

mucom88em/sdk_package/readme.txt

470 Bytes
Binary file not shown.

mucom88em/src/expand.asm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
; MUCOM88 Extended Memory Edition (MUCOM88em)
33
; ファイル名 : expand.asm (Z80アセンブラソース)
44
; 機能 : N88BASIC コマンド拡張
5-
; 更新日:2019/11/17
5+
; 更新日:2020/05/04
66
;==========================================================================
77
; ※本ソースはMUSICLALF Ver.1.0~1.2共通のexpand.asmを元に作成した物です。
88
;==========================================================================
@@ -114,7 +114,7 @@ FMWORK: EQU 0BF00H ;
114114
115115
; -- 拡張RAM アクセス設定ルーチン -- ;■追記
116116
117-
ERAM00: EQU 095A0H ;■ 拡張RAM ライト不可/リード不可
117+
ERAM00: EQU 095D0H ;■ 拡張RAM ライト不可/リード不可
118118
ERAM01: EQU ERAM00+3 ;■ 拡張RAM ライト不可/リード可
119119
ERAM10: EQU ERAM00+6 ;■ 拡張RAM ライト可/リード不可
120120
ERAM11: EQU ERAM00+9 ;■ 拡張RAM ライト可/リード可

mucom88em/src/msub.asm

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
; MUCOM88 Extended Memory Edition (MUCOM88em)
33
; ファイル名 : msub.asm (Z80アセンブラソース)
44
; 機能 : 各種サブルーチン
5-
; 更新日:2019/10/25
5+
; 更新日:2020/05/04
66
;==========================================================================
77
; ※本ソースはMUSICLALF Ver.1.2のmsub.asmを元に作成した物です。
88
;==========================================================================
@@ -1118,7 +1118,8 @@ FCOMS: ; COMMANDs
11181118
DB '[' ; LOOP START
11191119
DB ']' ; LOOP END
11201120
1121-
DB 'S' ; SE DETUNE
1121+
; DB 'S' ; SE DETUNE ;■20200319変更前
1122+
DB 'S' ; SE DETUNE / HARD ENVE SET ;■20200319変更後 SSGハードウェアエンベロープコマンド追加
11221123
DB 'L' ; JUMP RESTART ADR
11231124
DB 'q' ; COMMAND OF 'q'
11241125
DB 'E' ; SOFT ENV
@@ -1133,8 +1134,6 @@ FCOMS: ; COMMANDs
11331134
DB '/' ; REPEAT JUMP
11341135
DB 'V' ; TOTAL VOLUME OFFSET
11351136
DB '\' ; BEFORE CODE
1136-
; DB 's' ; HARD ENVE SET
1137-
; DB 'm' ; HARD ENVE PERIOD
11381137
DB 'k' ; KEY SHIFT 2
11391138
DB 's' ; KEY ON REVISE
11401139
@@ -1154,6 +1153,7 @@ FCOMS: ; COMMANDs
11541153
DB '}' ; マクロエンド
11551154
DB '{' ; ポルタメントスタート
11561155
DB '#' ; FLAG SET
1156+
DB 'm' ; HARD ENVE PERIOD ;■20200415追加 SSGハードウェアエンベロープコマンド追加
11571157
11581158
DB 0
11591159
@@ -1163,9 +1163,9 @@ ERRORMSG:
11631163
11641164
; ** 拡張RAM アクセス設定ルーチン ** ;■追記
11651165

1166-
ORG 095A0H ;■
1166+
ORG 095D0H ;■20200319変更
11671167

1168-
JP ERAM00 ;■
1168+
JP ERAM00 ;■追記
11691169
JP ERAM01 ;■
11701170
JP ERAM10 ;■
11711171
JP ERAM11 ;■

mucom88em/src/muc88.asm

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
; MUCOM88 Extended Memory Edition (MUCOM88em)
33
; ファイル名 : muc88.asm (Z80アセンブラソース)
44
; 機能 : コマンド処理・コンパイラ
5-
; 更新日:2020/01/24
5+
; 更新日:2020/05/04
66
;==========================================================================
77
; ※本ソースはMUSICLALF Ver.1.2のmuc88.asmを元に作成した物です。
88
;==========================================================================
@@ -147,7 +147,7 @@ JPLINE: EQU JCLOCK+2
147147
148148
; -- 拡張RAM アクセス設定ルーチン -- ;■追記
149149
150-
ERAM00: EQU 095A0H ;■ 拡張RAM ライト不可/リード不可
150+
ERAM00: EQU 095D0H ;■ 拡張RAM ライト不可/リード不可
151151
ERAM01: EQU ERAM00+3 ;■ 拡張RAM ライト不可/リード可
152152
ERAM10: EQU ERAM00+6 ;■ 拡張RAM ライト可/リード不可
153153
ERAM11: EQU ERAM00+9 ;■ 拡張RAM ライト可/リード可
@@ -1241,6 +1241,7 @@ COMTBL:
12411241
JP ENDMAC
12421242
JP SETPTM
12431243
JP SETFLG
1244+
JP SETHEP ;■20200319追加
12441245
NTMN3:
12451246
INC HL
12461247
JP FCOMP1
@@ -1601,6 +1602,32 @@ SETDCO:
16011602
LD (COUNT),A
16021603
JP FCOMP12
16031604
1605+
; * SET HARD ENVE TYPE/FLAG * ;■20200414追加 ハードウェアエンベロープコマンドの追加
1606+
1607+
SETHE: ;■
1608+
CALL CHCHK ;■
1609+
JP NC,ERRDC ;■
1610+
INC HL ;■
1611+
LD A,0FFH ;■
1612+
LD E,0F1H ; 2nd COM ;■
1613+
CALL MWRITE ;■
1614+
CALL REDATA ;■
1615+
LD A,E ;■
1616+
CALL MWRIT2 ;■
1617+
JP FCOMP1 ;■
1618+
SETHEP: ;■
1619+
CALL CHCHK ;■
1620+
JP NC,ERRDC ;■
1621+
INC HL ;■
1622+
LD A,0FFH ;■
1623+
LD E,0F2H ;■
1624+
CALL MWRITE ;■
1625+
CALL REDATA ;■
1626+
LD A,E ;■
1627+
LD E,D ;■
1628+
CALL MWRITE ; 2バイトデータ カク ;■
1629+
JP FCOMP1 ;■
1630+
16041631
; * BEFORE CODE *
16051632
16061633
SETBEF:
@@ -2200,7 +2227,8 @@ SETLPEE:
22002227
SETSE:
22012228
LD A,(COMNOW)
22022229
CP 2
2203-
JP NZ,ERRDC ; 3 Ch イガイナラ ERROR
2230+
; JP NZ,ERRDC ; 3 Ch イガイナラ ERROR ;■20200415変更前 ハードウェアエンベロープコマンドの追加
2231+
JP NZ,SETHE ; 3 Ch イガイナラ SET HARD ENVE TYPE ヘ ;■20200415変更後
22042232
22052233
CALL ERRT
22062234
@@ -2436,7 +2464,8 @@ SETREG:
24362464
OR A
24372465
JP NZ,ERRIF
24382466
2439-
LD A,0B2H
2467+
; LD A,0B2H ;■20200415修正前 yコマンドの範囲チェックのbug fix
2468+
LD A,0B6H ;■20200415修正後
24402469
CP E
24412470
JP C,ERRIF
24422471
@@ -3490,7 +3519,7 @@ LNKTXT: DB 3AH,8FH,0E9H,20H,20H ; 5
34903519
34913520
MACFG: DB 0 ;0>< AS MACRO PRC
34923521
;MESS: DB '[ MUSICLALF Ver:1.2 ] Address' ;■変更前:メイン画面のバージョン表示
3493-
MESS: DB '[ MUCOM88em Ver:1.00 ] Address' ;■変更後
3522+
MESS: DB '[ MUCOM88em Ver:1.01 ] Address' ;■変更後 20200415
34943523
DB ': - ( ) [ 00:00 ] MODE:'
34953524
MESNML: DB 'NORMAL '
34963525
DB 'LINC '

mucom88em/src/music.asm

Lines changed: 67 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
; MUCOM88 Extended Memory Edition (MUCOM88em)
33
; ファイル名 : music.asm (Z80アセンブラソース)
44
; 機能 : 演奏ルーチン
5-
; 更新日:2020/01/24
5+
; 更新日:2020/05/04
66
;==========================================================================
77
; ※本ソースはMUSICLALF Ver.1.2のmusic.asmを元に作成した物です。
88
;==========================================================================
@@ -73,7 +73,7 @@ PCMADR: EQU 0E300H
7373
7474
; -- 拡張RAM アクセス設定ルーチン -- ;■追記
7575
76-
ERAM00: EQU 095A0H ;■ 拡張RAM ライト不可/リード不可
76+
ERAM00: EQU 095D0H ;■ 拡張RAM ライト不可/リード不可
7777
ERAM01: EQU ERAM00+3 ;■ 拡張RAM ライト不可/リード可
7878
ERAM10: EQU ERAM00+6 ;■ 拡張RAM ライト可/リード不可
7979
ERAM11: EQU ERAM00+9 ;■ 拡張RAM ライト可/リード可
@@ -881,8 +881,10 @@ FMCOM:
881881
882882
FMCOM2:
883883
JP PVMCHG ;FFF0-PCM VOLUME MODE
884-
JP NTMEAN
885-
JP NTMEAN
884+
; JP NTMEAN ;■20200319修正前
885+
JP HRDENV ;FFF1-HARD ENVE SET 'S' ;■20200319修正後
886+
; JP NTMEAN ;■20200319修正前
887+
JP ENVPOD ;FFF2-HARD ENVE PERIOD ;■20200319修正後
886888
JP REVERVE ;FFF3-リバーブ
887889
JP REVMOD ;FFF4-リバーブモード
888890
JP REVSW ;FFF5-リバーブ スイッチ
@@ -1926,9 +1928,25 @@ SSSUB4:
19261928
JR SSSUB9
19271929
19281930
SSSUBF: ; KEYON サレタトキ ノ ショリ
1931+
BIT 7,(IX+33) ;■20200415追加 ハードウェアエンベロープコマンドの追加
1932+
JR Z,SSSUBG ; NOT HARD ENV. ;■
1933+
1934+
; --- HARD ENV. KEY ON --- ;■
1935+
1936+
LD E,16 ;■
1937+
LD D,(IX+7) ;■
1938+
CALL PSGOUT ; HARD ENV.KEYON ;■
1939+
1940+
LD A,(IX+33) ;■
1941+
AND 00001111B ;■
1942+
LD E,A ;■
1943+
LD D,0DH ;■
1944+
CALL PSGOUT ;■
1945+
JR SSSUBH ;■
19291946
19301947
; --- SOFT ENV. KEYON ---
19311948
1949+
SSSUBG:
19321950
LD A,(IX+6)
19331951
AND 00001111B
19341952
OR 10010000B ; TO STATE 1 (ATTACK)
@@ -1952,8 +1970,11 @@ SSSUB9:
19521970
;
19531971
; ENTRY A: VOLUME DATA
19541972
;
1955-
1973+
19561974
SSSUB3:
1975+
BIT 7,(IX+33) ;■20200415追加 ハードウェアエンベロープコマンドの追加
1976+
JR NZ,SETPT ; IF HARD ENVE THEN SETPT ;■
1977+
19571978
LD E,A
19581979
LD A,(READY)
19591980
OR A
@@ -1977,8 +1998,17 @@ SNUMB: ; SSG o1
19771998
19781999
SSSUBA:
19792000
2001+
; -- HARD ENV. KEY OFF -- ;■20200415追加 ハードウェアエンベロープコマンドの追加
2002+
2003+
BIT 7,(IX+33) ;■
2004+
JR Z,SSUBAB ; NOT HARD ENV. ;■
2005+
LD E,0 ;■
2006+
LD D,(IX+7) ;■
2007+
CALL PSGOUT ; HARD ENV.KEYOFF ;■
2008+
19802009
; -- SOFT ENV. KEY OFF --
19812010
2011+
SSUBAB: ;■20200415追加 ハードウェアエンベロープコマンドの追加
19822012
BIT 5,(IX+33)
19832013
JR Z,SSUBAC
19842014
RES 6,(IX+31)
@@ -2031,6 +2061,32 @@ PSGCOM:
20312061
JP RSKIP
20322062
JP SECPRC ;FF- to sec com
20332063
2064+
; ** HARD ENVE SET ** ;■20200319追加
2065+
2066+
HRDENV: ;■
2067+
LD E,(HL) ;■
2068+
INC HL ;■
2069+
LD D,0DH ;■
2070+
CALL PSGOUT ;■
2071+
LD A,E ;■
2072+
OR 10000000B ; SET H.E FLAG ;■
2073+
LD (IX+33),A ; H.E MODE ;■
2074+
LD (IX+6),16 ;■
2075+
RET ;■
2076+
2077+
; ** HARD ENVE PERIOD ** ;■20200319追加
2078+
2079+
ENVPOD: ;■
2080+
LD E,(HL) ;■
2081+
INC HL ;■
2082+
LD D,0BH ;■
2083+
CALL PSGOUT ;■
2084+
LD E,(HL) ;■
2085+
INC HL ;■
2086+
INC D ;■
2087+
CALL PSGOUT ;■
2088+
RET ;■
2089+
20342090
; ** WRITE REG **
20352091
20362092
W_REG:
@@ -2148,6 +2204,9 @@ VOLUPS:
21482204
LD D,(HL)
21492205
INC HL
21502206
2207+
BIT 7,(IX+33) ;■20200319追加
2208+
RET NZ ;■
2209+
21512210
LD A,(IX+6)
21522211
LD E,A
21532212
AND 00001111B
@@ -2165,6 +2224,8 @@ VOLUPS:
21652224
; ** PSG VOLUME **
21662225
21672226
PSGVOL:
2227+
RES 7,(IX+33) ; RES HARD ENV FLAG ;■20200319追加
2228+
21682229
LD A,(IX+6)
21692230
AND 11110000B
21702231
LD E,A
@@ -2766,7 +2827,7 @@ PW2
27662827
27672828
; ** MUSIC WORK **
27682829
2769-
ORG 0CFC0H ;■追記:ワークエリアのアドレス固定
2830+
ORG 0D000H ;■追記:ワークエリアのアドレス固定
27702831
27712832
NOTSB2: DB 0
27722833
PVMODE: DB 0 ;PCMvolMODE

0 commit comments

Comments
 (0)