===============================================================================
=-----------------------------------------------------------------------------=
=-    N2KD FM Driver N2KD.EXE hCo䊄t@NV}jA       -=
=-                                                 version 1.0a (beta 2c)    -=
=-----------------------------------------------------------------------------=
===============================================================================
{ N2KD FM Driver ̖{̃vOł N2KD.EXE 
hCo䊄t@NV̐ɂȂ܂B

hCo䊄t@NVȊO̐ɂĂ
n2kd_doc.txt QƂĂB

===============================================================================
hCo䊄̊Tv
===============================================================================
N2KD ̓𐧌䂷邽߂ɂ́AN2KD 풓ɁA
]̃hCo䊄ĂяoKv܂B
hCo䊄̏풓xN^ 4eh łB

hCõTvvOƂāA
yȂ̍Đƒ~@\vOł
nplay.com (\[XR[ht)𓯍Ă܂B
nplay.com ̎ǵA\[XR[h nplay.asm 
`̃RgQƂĂB

 N2KD ɎĂhCo䊄t@NV͈ȉ̂ƂłB
ah ŎsΏۂ̃t@NVw肵܂B

Eah=00h: hCoo[W擾
Eah=01h: ȃf[^[hƍĐ
Eah=02h: ĐXe[^X擾
Eah=03h: Đ
Eah=04h: ~
Eah=05h: ꎞ~
Eah=06h: ȃf[^obt@AhX擾
Eah=07h: ȃf[^obt@TCY擾
Eah=08h: ȃf[^obt@AhXݒ
Eah=09h: ȃf[^̑ŜɊ֌W擾
Eah=0ah: FĂ鉹̌擾
Eah=0bh: FĂ鉹̏擾
Eah=0ch: FĂ鉹̋ȃf[^ˑ̏擾
Eah=0dh: ȃf[^̊epf[^̏擾

hCo䊄ԂĂ_(uint 4ehvԂĂ_)ł́A
ax y CF G[̗Lɍ킹Ĉȉ̂悤ɐݒ肳Ă܂B

ECF=0 ȂG[ACF=1 ȂG[L
Eax ͉Lɏ]
  Eax=00h: G[Ȃ
  Eax=01h: ah̃t@NVԍł
  Eax=02h: ēh~Ɉ
  Eax=03h: [h悤Ƃȃf[^
  Eax=04h: ݂̍ĐԂw̃t@NVďo\ȒlłȂ
  Eax=05h: m̏NGԍ
  Eax=06h: Őȃf[^[hɎsĂ
            ܂́Aȃf[^[h1sĂȂ
  Eax=07h: ԍs
            FωƋȃf[^̊epf[^̗ɑ΂Ďg܂
  Eax=08h: w肳ꂽɊ蓖Ăꂽȃf[^̃f[^
            ܂́Aw肳ꂽȃf[^̉f[^Ɋ蓖ĂꂽȂ
  Eax=09h: Đ悤Ƃȃf[^Ή̃o[Wł

_ł̓hCoÕ[`Ăяo@\̂߁A
܂Ӗ̂ł͂܂񂪁AhCot@NV
SčēsƂĂ܂B


===============================================================================
ehCo䊄t@NV̉
===============================================================================
ł́AehCo䊄t@NV̏ڂZ߂܂B

̂A̗ł́Aah͏ȗĂ܂B
܂A䊄t@NV̒ɂ̓hCo̊yȍĐԂ̒l
ꍇ݂̂ɌĂяô܂B
et@NVďo\ȍĐԂďo\Ԃ̗ɋLڂĂ܂B

===============================================================================
hCoo[W擾(ah=00h)
-------------------------------------------------------------------------------
E: 
Eߒl: hCoo[W
  Edl=W[o[W
  Edh=}Ci[o[W
  Ecl=pb`o[W(a, b, c, ...)
  Ech=x[^o[W(Δ0)
Eďo\: SĂ̏

hCõo[W擾܂B
Ⴆ΁Ao[Wu1.2c (beta 4)ṽhCoł̃t@NVs
(dl, dh, cl, ch)=(1, 2, 'c', 4) ܂B
x[^łłȂo[W̃hCoł ch=0 ƂȂ܂B

===============================================================================
ȃf[^[hƍĐ(ah=01h)
-------------------------------------------------------------------------------
E: 
Eߒl: 
Eďo\: ~

ȃf[^obt@ɂȃf[^ǂݎAĐ̏s܂B
̃t@NVĂяoOɁA
ȃf[^obt@ɋȃf[^zuĂKv܂B

===============================================================================
ĐXe[^X擾(ah=02h)
-------------------------------------------------------------------------------
E: 
Eߒl: dl=݂̍ĐXe[^X
Eďo\: SĂ̏

݂̃hCo̊yȍĐXe[^X擾܂B
ߒlƃXe[^X̊֌W͈ȉ̒ʂłB

Edl=00h: ~
Edl=01h: Đ
Edl=02h: ꎞ~
Edl=03h: ~҂
Edl=04h: ꎞ~҂

t@NV ah=04h ܂ ah=05h ĂяoA
t̃e|ǗɎgpĂ^C}̎̊܂ł̒ZԁA
Ăяot@NVɉĒ~҂܂͈ꎞ~҂ԂɂȂ܂B
~҂yшꎞ~҂Ԃł͑̃t@NVpł܂B
̂߁AhCovOŁA~yшꎞ~ɂ
t@NVĂяo悤ȏꍇɂ́AĐXe[^XSɒ~
ꎞ~ɐ؂ւ̂ҋ@悤ȏ܂߂̂߂܂B

===============================================================================
Đ(ah=03h)
-------------------------------------------------------------------------------
E: 
Eߒl: 
Eďo\: ~, ꎞ~

yȂ̍ĐJn܂B
̃t@NVĂяoOɁA
ȃf[^[h(ah=01h){ĂKv܂B

===============================================================================
~(ah=04h)
-------------------------------------------------------------------------------
E: 
Eߒl: 
Eďo\: Đ, ꎞ~

yȂ̍Đ~܂B
ɂ́AĐXe[^X~ɂȂOɁA~҂Ԃ݂܂B
~҂̋ɂĂ̓t@NV ah=02h ̐QƂĂB

===============================================================================
ꎞ~(ah=05h)
-------------------------------------------------------------------------------
E: 
Eߒl: 
Eďo\: Đ

yȂ̍Đꎞ~܂B
ɂ́AĐXe[^Xꎞ~ɂȂOɁAꎞ~҂Ԃ݂܂B
ꎞ~҂̋ɂĂ̓t@NV ah=02h ̐QƂĂB

===============================================================================
ȃf[^obt@AhX擾(ah=06h)
-------------------------------------------------------------------------------
E: 
Eߒl: ds:dx=ȃf[^obt@̃AhX
Eďo\: ~, Đ, ꎞ~

ȃf[^obt@̃AhX擾܂B
tΏۂ̋ȃf[^́A
{t@NVœꂽAhX̃obt@Ƀ[hKv܂B

===============================================================================
ȃf[^obt@TCY擾(ah=07h)
-------------------------------------------------------------------------------
E: 
Eߒl: dx=pOtPʂł̃obt@TCY
Eďo\: ~, Đ, ꎞ~

ȃf[^obt@̃TCY擾܂B
[h鉉tΏۂ̋ȃf[^̃TCÝA
{t@NVœobt@TCY菬Kv܂B

===============================================================================
ȃf[^obt@AhXw(ah=08h)
-------------------------------------------------------------------------------
E: es=obt@̃ZOgAhX, dx=pOtPʂł̃obt@TCY
Eߒl: 
Eďo\: ~

ȃf[^obt@̃AhXύX܂B
ItZbgAhX0Ƃ݂Ȃ܂B
hCo䑤ŕʂ̋ȃf[^obt@pӂāA
̃obt@Ɋi[Ăȃf[^t邱Ƃł܂B

===============================================================================
ȃf[^̑ŜɊ֌W擾(ah=09h)
-------------------------------------------------------------------------------
E: al=擾悤Ƃ
  Eal=0: title
  Eal=1: composer
  Eal=2: arranger
  Eal=3: comment
  Eal=4: ȃf[^̉
Eߒl: 擾
  Eal=0,1,2,3 ̏ꍇ: es:dx=̃AhX
  Eal=4 ̏ꍇ: cl=ȃf[^̉
Eďo\: ~, Đ, ꎞ~

ȃf[^ɂ title, composer, arranger, comment 4̏ɑΉ
L^邱Ƃł܂B
al=0`3 ̏ꍇAeڂɑΉ̃AhX擾܂B

al=4 ̏ꍇAȃf[^ɉ̉̃f[^܂܂Ă邩擾܂B

̃t@NVĂяoOɁA
ȃf[^[h(ah=01h){ĂKv܂B

===============================================================================
FĂ鉹̌擾(ah=0ah)
-------------------------------------------------------------------------------
E: 
Eߒl: dl=FĂ鉹̌
Eďo\: ~, Đ, ꎞ~

hCo풓ɔF̌擾܂B

===============================================================================
FĂ鉹̏擾(ah=0bh)
-------------------------------------------------------------------------------
E: al=ԍ
        dl=NGԍ
Eߒl: 擾
  Edl=0 ̏ꍇ: dx= IO |[g, cl=^Cv
    EIO |[ǵAFgp IO AhX̂
      ԏ̂Ԃ܂
    E܂AIO |[ggpȂ̏ꍇ IO |[g̒lɂ 0 Ԃ܂B
  Edl=1 ̏ꍇ: dx=̉̐񂪒uĂZOgAhX
Eďo\: ~, Đ, ꎞ~

hCo풓ɔF̏擾܂B
alɐݒ\Ȓl0`(FĂ鉹̌-1)͈̔͂łB

݂̃t@NVĂœꂤ鉹^Cv͈ȉ1ނłB
Ecl=4: OPL3

===============================================================================
FĂ鉹̋ȃf[^ˑ̏擾(ah=0ch)
-------------------------------------------------------------------------------
E: al=ԍ
        dl=NGԍ
Eߒl: 擾
  Edl=0 ̏ꍇ: dl=w肵蓖Ăꂽȃf[^̉ԍ
Eďo\: ~, Đ, ꎞ~

F̏ŁAȃf[^̃[hɊm肷擾܂B

ȃf[^̉f[^̑̓t@NV 09h Ŏ擾ł܂B

̃t@NVĂяoOɁA
ȃf[^[h(ah=01h){ĂKv܂B

===============================================================================
ȃf[^̊epf[^̏擾(ah=0dh)
-------------------------------------------------------------------------------
E: al=ȃf[^̉ԍ
        dl=NGԍ
Eߒl: 擾
  Edl=0 ̏ꍇ: dl=ȃf[^tO̒l
Eďo\: ~, Đ, ꎞ~

ȏ̂Aȃf[^̊epf[^ɐݒ肳Ă擾܂B

ȃf[^tO̒l͈ȉ̂悤1oCg̒lƂȂĂ܂B
Ebit0`bit7: ׂĖgp

̃t@NVĂяoOɁA
ȃf[^[h(ah=01h){ĂKv܂B
