
݂゠98N ver6.21` tt@C`

wb_\

@0000,0001	`l1̃f[^i[JnԒniʏ002ahj
@0002,0003	`l2@@@V
			E
			E
			E
@0020,0021	`l17 @@V
@0022,0023	fobO̗LȂǁiʏ0000hj
@0024,0025	[UPCMo^i[JnԒn
@0026`0029	AssmblerœꂽS
@002A`	tf[^i[̈


tf[^e(FM)

f[^@޲Đ	MML	

@FF	1	r	xBL[ItĂ特̕ҋ@B
@FE	1	*	ĉtJnB
@FD	1	**	ĉtIB
@FC	1	@stop	`l̂݉t~B
@FB	1	@w	Ȃŉҋ@B
@FA	9		`l3̌ʉ[h4ނ̎gŃL[IB
@F9	1	@sc	OƓgŃL[IB
@F8	4	@f+	O̎gɉZĔB
@F7	4	()n	w񐔂ԂBtf[^őΔԒnWv
			B
@F6	2	@pan	p̎wB
@F5	3	t	e|̐ݒB
@F4	3	l	̎wBɃQ[g^CvZĊi[B
@F3	1	'	߈ʒu𒲐BtĂ`lSĂɂ̃f[
			^܂őҋ@B
@F2	4		ȂB
@F1	3	y	LSIɒڃf[^ݒ肷B
@F0	2	@sd	VXefB`[̐ݒB
@EF	2	@hls	n[hEFALFOx̐ݒB
@EE	3	@hl	n[hEFALFOp[^̐ݒB
@ED	2	@codein	`l3̌ʉ[h̐؂芷B
@EC	2	@kd	Օ\̐ݒB
@EB	2	@	Fԍ̐ݒB
@EA	3	@jump	WvBѐ̑ΔԒni[B
@E9	3	@call	R[B
@E8	1	@ret	Tu[`߂B
@E7	3		fobOB
@E6	27	z	[Uw艹F̐ݒB
@E5	1	@init	tX^bN̏B
@E4	5	@ifjump	WvB
@E3	5	@ifcall	R[B
@E2	2	v	ʒl̐ݒB
@E1	1	~	L[ItEL[IȂŎgݒ肷B
@E0	1	(	[vJñJEglB
@DF	1	&	ՎQ8ƂB
@DE	2	q	Q[g^Ĉ݂̕ύXB
@DD	2		̎̐Fςʒu̎wB
@DC	4	@start	~`l̍ĊJB
@DB	4`46	@com	̎f[^̐ݒB
@DA	4	x	ϐ̐ݒB
@D9	7	@lfo	LFOp[^̐ݒB
@D8	2	@lfo	LFO̊JnE~E[hwB
@D7	2	v+	ʂ̉ZB
@D6	2	v-	ʂ̌ZB
@D5	3		ȂB
@D4	5		ȂB
@D3	5	@ifexit	[vEoB
@D2	1	@pop	tX^bN̈ړB
@D1	1	@fo	tF[hAEgB
@D0	2	@pcm	SSGPCM,gPCM̎wB
@CF	2	@ch	M`lԍ̎wB
@CE	1	@sret	ʉỎFEʂɖ߂B
 00`3F	2		wgŃL[IB


tf[^e(SSG)

f[^@޲Đ	MML	

@FF	1	r	xBL[ItĂ特̕ҋ@B
@FE	1	*	ĉtJnB
@FD	1	**	ĉtIB
@FC	1	@stop	`l̂݉t~B
@FB	1	@w	Ȃŉҋ@B
@FA	9		ȂB
@F9	1		ȂB
@F8	4	@f+	O̎gɉZĔB
@F7	4	()n	w񐔂ԂBtf[^őΔԒnWv
			B
@F6	2	n	mCYg̎wB
@F5	3	t	e|̐ݒB
@F4	3	l	̎wBɃQ[g^CvZĊi[B
@F3	1	'	߈ʒu𒲐BtĂ`lSĂɂ̃f[
			^܂őҋ@B
@F2	4	ps	SSG\tgGx[v̎wB
@F1	3	y	LSIɒڃf[^ݒ肷B
@F0	2	@sd	VXefB`[̐ݒB
@EF	2	p	SSGGx[v[h̐؂芷B
@EE	3	m	SSGGx[vx̎wB
@ED	2	s	SSGGx[v`̎wB
@EC	2	@kd	Օ\̐ݒB
@EB	2	pm	SSG~NT[̎wB
@EA	3	@jump	WvBѐ̑ΔԒni[B
@E9	3	@call	R[B
@E8	1	@ret	Tu[`߂B
@E7	3		fobOB
@E6	27		ȂB
@E5	1	@init	tX^bN̏B
@E4	5	@ifjump	WvB
@E3	5	@ifcall	R[B
@E2	2	v	ʒl̐ݒB
@E1	1	~	L[ItEL[IȂŎgݒ肷B
@E0	1	(	[vJñJEglB
@DF	1	&	ՎQ8ƂB
@DE	2	q	Q[g^Ĉ݂̕ύXB
@DD	2		̎̐Fςʒu̎wB
@DC	4	@start	~`l̍ĊJB
@DB	4`46	@com	̎f[^̐ݒB
@DA	4	x	ϐ̐ݒB
@D9	7	@lfo	LFOp[^̐ݒB
@D8	2	@lfo	LFO̊JnE~E[hwB
@D7	2	v+	ʂ̉ZB
@D6	2	v-	ʂ̌ZB
@D5	3	pa	SSG\tgA^bN̎wB
@D4	5		ȂB
@D3	5	@ifexit	[vEoB
@D2	1	@pop	tX^bN̈ړB
@D1	1	@fo	tF[hAEgB
@D0	2	@pcm	SSGPCM,gPCM̎wB
@CF	2	@ch	M`lԍ̎wB
@CE	1	@sret	ʉỎFEʂɖ߂B
 00`3F	2		wgŃL[IB


tf[^e(RHYTHM,PCM)

f[^@޲Đ	MML	

@FF	1	r	xBL[ItĂ特̕ҋ@B
@FE	1	*	ĉtJnB
@FD	1	**	ĉtIB
@FC	1	@stop	`l̂݉t~B
@FB	1	@w	Ȃŉҋ@B
@FA	9		ȂB
@F9	1		YL[IE_vR}h̏IwB
@F8	4	@f+	O̎gɉZĔB
@F7	4	()n	w񐔂ԂBtf[^őΔԒnWv
			B
@F6	2	@pan	PCMp̎wB
@F5	3	t	e|̐ݒB
@F4	3	l	̎wBɃQ[g^CvZĊi[B
@F3	1	'	߈ʒu𒲐BtĂ`lSĂɂ̃f[
			^܂őҋ@B
@F2	4	@rev	DSP[h̎wB
@F1	3	y	LSIɒڃf[^ݒ肷B
@F0	2		YL[IB
@EF	2		Y_vB
@EE	3	@rs	Yp̉ʂ̎wB
@ED	2		ȂB
@EC	2	@kd	Օ\̐ݒB
@EB	2	@	PCMFԍ̐ݒB
@EA	3	@jump	WvBѐ̑ΔԒni[B
@E9	3	@call	R[B
@E8	1	@ret	Tu[`߂B
@E7	3		fobOB
@E6	27		ȂB
@E5	1	@init	tX^bN̏B
@E4	5	@ifjump	WvB
@E3	5	@ifcall	R[B
@E2	2	v	ʒl̐ݒB
@E1	1	~	L[ItEL[IȂŎgݒ肷B
@E0	1	(	[vJñJEglB
@DF	1	&	PCMs[g̎wB
@DE	2	q	Q[g^Ĉ݂̕ύXB
@DD	2		̎̐Fςʒu̎wB
@DC	4	@start	~`l̍ĊJB
@DB	4`46	@com	̎f[^̐ݒB
@DA	4	x	ϐ̐ݒB
@D9	7	@lfo	LFOp[^̐ݒB
@D8	2	@lfo	LFO̊JnE~E[hwB
@D7	2	v+	ʂ̉ZB
@D6	2	v-	ʂ̌ZB
@D5	3		PCM̔B
@D4	5	@pa	PCM̔ԒnڎwB
@D3	5	@ifexit	[vEoB
@D2	1	@pop	tX^bN̈ړB
@D1	1	@fo	tF[hAEgB
@D0	2	@pcm	SSGPCM,gPCM̎wB
@CF	2	@ch	M`lԍ̎wB
@CE	1	@sret	ʉỎFEʂɖ߂B
 00`3F	2		wgŃL[IB


[UPCMo^pf[^

@(1) 0024,0025Ɏw肳ꂽԒn̐擪88hŊJnB
@(2) f[^`́AFԍ+t@C11oCg+00hōv13oCgłB
@(3) SSGPCM̏ꍇ͂ɂ̌ɓWJʂ1oCgǉB
@(4) f[^̍Ō88hŏIB


̑

@p[^̓eɂẮAeeXgĒׂĂB


MUAP98.COM(ver6.21`)풓̌Œ胏[NGAɂ

 $106 풓L[[h 4d4h
 $108 key int ̃xN^ۑ
 $10c Timer A ̃xN^ۑ
 $110 INT 28h ̃xN^ۑ
 $114 Timer A xN^offset
 $116 Timer A xN^segment
 $118 e탂[htO
	b0 :[CTRL]+[2]֎~(-C)		, b1 :[UPCMo^\֎~
	b2 :[CTRL]+[1]֎~(-D)		, b3 :MML-FEPŃXy[XȂ
	b4 :MML-FEPSSG~(-Q)	, b5 :MML-FEPŉKړSSG~
	b6 :tt@C݋	, b7 :SSGPCM16KHz[h

	b0 :CALďotO		, b1 :
	b2 :-VIvVw		, b3 :tstO
	b4 :CTRLďotO		, b5 :̎\
	b6 :NMIVRAM			, b7 :

	b0 :int28FUNC\؊L	, b1 :OtHggpȂ(-G)
	b2 :VRAM\			, b3 :
	b4 :				, b5 :R}hwv\Ȃ(-#)
	b6 :				, b7 :PCMobt@1MBm

	b0 :WSS-PCM			, b1 :YM2608gp
	b2 :ADPCM			, b3 :EMSw(l)
	b4 :86B/WSS-PCM			, b5 :oN؂芷ς
	b6 :tɃoN		, b7 :

 $11c object buffer segment
 $11e source buffer segment
 $120 text buffer segment
 $122 tone help buffer segment
 $124 tone data buffer segment
 $126 buffer length (source)
 $128 buffer length (object)
 $12a gpe(pOt)
 $12c source data length
 $12e object data length
 $130 EMSnh
 $132 t[ÑItZbg(data_buff)
 $134 ̎f[^̔Ԓn(comdata)
 $136 SSGPCMۑobt@̃ZOg
 $138 SSGPCMobt@̃TCY
 $13a YM2203F
 $13b YM2608F
 $13c YM3438F
 $13d
 $13e FIFOZOg
 $140 USRPCMgpoCg
 $142 SSGPCMgpoCg
 $144 [UPCMt@CZOg
 $146 t[N2ItZbg(bit_status)
 $148 t[N3ItZbg(fade_count)

tp[N

;	t̃f[^obt@
;	VisualPlayp[N1

	   even
data_buff	label byte	; [NGA̔Ԓn
LC = 0
RS = 1
	   db	17 dup(48,0)	; JE^,f[^
VS = 34
LS = 35
	   db	17 dup(110,48)	; ʃf[^,f[^
AD = 68
	   dw	17 dup(?)	; ݂̉tԒn
TS = 102			; Fԍ(CH1-3,7-17)
DY = 102			; fBPCf[^(CH4-6)
TI = 103			; b0=X[,b1=^C,b2=mRMLFO,b3=oneshot
	   db	17 dup(0,0)	; b4=Z/Z,b5=Amd/Pmd,b6=LFO~/
				; b7=SYNCoff/on
FD = 136
	   dw	17 dup(0)	; o͎gf[^
RA = 170			; X^bNItZbg
LK = 171			; LFOCNg̍ŏIl
	   db	17 dup(0,0)
SC = 204-6			; X^[gfBPCJE^(CH4-6)
DC = 204			; fBPCJE^(CH4-6)
PC = 204+6			; Gx[v[h[0/10h] (CH4-6)
SD = 205+6			; X^[gfBPCf[^(CH4-6)
	   db	17 dup(0,0)
PN = 238			; PAN & Hard LFO (CH1-3,7-9,11,12-17)
DV = 239-6			; fBPCx(CH4-6)
LV = 238			; ŏI(CH4-6)
PT = 239			; Gx[v`(CH4-6)
	   db	3  dup(0c0h,0)
	   db	3  dup(0,0)
	   db	11 dup(0c0h,0)
SY = 272			; fobO
	   dw	17 dup(0)
LF = 306			; LFOXs[h(-128`127)
LL = 307			; LFOx(0`127)
	   db	17 dup(0,0)
FC = 340			; LFOJE^
	   dw	17 dup(0)
LD = 374			; LFOfBC(0`255)
LI = 375			; b0`b3 = LFOCNg
				; b4`b6 = LFOxx[X
				; b7 = xrbg
	   db	17 dup(0,80h)
SV = 408-6			; X^[g(CH4-6)
AR = 408			; A^bNCg(CH4-6)
AC = 408+6			; A^bNJE^(CH4-6)
FB = 409			; gf[^
	   db	17 dup(0,0)
SE = 442			; VXefB`[
LB = 443			; LFOXs[hx[X(b0,1),ՐF(b5`7)
	   db	17 dup(0,0)
LR = 476			; LFOԂ
RC = 477			; LFOԂJE^
	   db	17 dup(0,0)
LA = 510			; LFOfBCpl
PM = 511			; b0`4 : PCM[hŎgp
				; b7 : L[ItO
	   db	17 dup(0,0)

;	VisualPlayp[N2
bit_status label byte
timercnt   db	0		; #0  JE^
ssgpcm	   db	0		; #1  SSG/PCM[h
mixsave	   db	0b8h		; #2  SSG MIXER DATA
noisef	   db	0		; #3  mCYg
tempo	   dw	200h		; #4  e|^C}[l
	   dw	200h		;     _~[
rhytbl	   db	6 dup(0)	; #8  Ye[u
playlen	   dw	0,0		; #14 tꂽ
playcont   db	0		; #18 S̃[v
skip_data1 dw	0		; #19 `l~tO(b0 to b16)
skip_data2 db	0
init_skip1 dw	0		; #22 skip_datarp
init_skip2 db	0
ch_mask1   dw	0		; #25 `l~p
ch_mask2   db	0
wait_flg1  dw	0		; #28 p(F3R}h)
wait_flg2  db	0
keymask1   dw	0		; #31 Օ\ȂtO
keymask2   db	0
song_flg1  dw	0		; #34 AH=8 gptO(for NA)
song_flg2  db	0
shflag1	   dw	0		; #37 ʉgptO
shflag2	   db	0
comdata	   db	73 dup(0)	; #40 ̎f[^
comlength  db	0ffh		; #113 Fς̎̌
dsp_mode   db	0		; #114 DSP[h
dsp_level  db	0		; #115 DSPx
init_flg   db	0		; #116 b0 = @init,**,*stO  b1 = @fo

;	VisualPlayp[N3
fade_count dw	0		; tF[hAEgxJE^
mapflag	   db	0		; b0 = EMS}bv, b1 = t, b2 = @dataDisp
				; b3 = TracePlay, b4 = FMintIn, b5 =PCMintIn
				; b7 = ^C}œ
maxlen	   dw	0,0		; ő剹


			aug.10.1995	(c)1987,93,95 by Packen Software.
