Skip to content

Commit

Permalink
TAG016 2020/05/04 2nd
Browse files Browse the repository at this point in the history
  Compiler
    ・分散和音処理に突入する判定をミスしていたのを修正
    ・新規英文メッセージの追加
  • Loading branch information
kumatan committed May 4, 2020
1 parent a8ecd30 commit 464137a
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 8 deletions.
5 changes: 5 additions & 0 deletions CHANGE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
�X�V����
TAG016 2020/05/04 2nd
Compiler
�E���U�a�������ɓ˓����锻����~�X���Ă����̂��C��
�E�V�K�p�����b�Z�[�W�̒lj�

TAG015 2020/05/04
Compiler
�Emc ver4.8s�����ɏC��
Expand Down
6 changes: 5 additions & 1 deletion PMDDotNETCompiler/lang/PMDDotNETmessage.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,11 @@ E0130=Tone is not defined.
E0131=The length of the previous note has been compressed or processed.
E0132=You can't use the tie slur in the R part.
E0133=The number of variable length MML variable definitions has been exceeded by 256.
E0134=: Cannot read a tone file {0}.
E0134=dispersion chord starters {{ There is no
E0135=Incorrectly specified in the distributed chord command.

E0200=: Cannot read a tone file ({0}).
E0201=Failed to read the file ({0}).

;common
E0000=Exception message:\r\n{0}\r\nException stacktrace:\r\n{1}\r\n
Expand Down
11 changes: 4 additions & 7 deletions PMDDotNETCompiler/mc.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4304,7 +4304,7 @@ private enmPass2JumpTable porta_end()
byte al;

char ch = (work.si < mml_seg.mml_buf.Length ? mml_seg.mml_buf[work.si] : (char)0x1a);
if (ch != '}') return bunsan_end(); // 4.8r
if (ch == '}') return bunsan_end(); // 4.8r

if (mml_seg.skip_flag != 0) goto pe_skip;
if (mml_seg.porta_flag != 1)
Expand Down Expand Up @@ -4430,16 +4430,14 @@ private enmPass2JumpTable bunsan_end()
}

int cx = work.di;
if (cx - work.bx == 0)
if (cx == work.bx)
{
cx -= work.bx;
error('}', 35, work.si);//音なし
}
cx -= work.bx;

if ((cx & 1) != 0)
{
cx >>= 1;// cx = 分散和音数
error('}', 35, work.si);// 間が奇数バイトでエラー
}
cx >>= 1;// cx = 分散和音数
Expand Down Expand Up @@ -4599,7 +4597,7 @@ private enmPass2JumpTable bunsan_end()
m_seg.m_buf.Set(work.bx + 1, new MmlDatum((byte)(ax >> 8)));//戻り先セット

work.ah = (byte)(ax >> 8);
work.al = (byte)al;
work.al = (byte)ax;

goto bunsan_last;

Expand Down Expand Up @@ -4662,8 +4660,7 @@ private enmPass2JumpTable bunsan_end()
private void bunsan_set1loop()
{
work.bx = 0;//offset bunsan_work
int cx = 0;
cx = mml_seg.bunsan_count;//CX=音符数
int cx = mml_seg.bunsan_count;//CX=音符数

//bunsan_s1l_loop:;
do
Expand Down

0 comments on commit 464137a

Please sign in to comment.