SMC MIO CHIP's Serial High Speed mode Support for NT4.0

߂
  ŋ߁ÃvoC_ISDNMPT|[g悤ɂȂĂ
BZyXEL2864Î悤ȃVAڑTAƁAVA|[
gōx115.2Kbps̕ʂAT݊@̑gݍ킹ł128KbpsƂMP
̑x𐶂܂B

  ܂mĂ܂񂪍ŋ߂FM-VAptivaÂ΂甄肳Ă
}U[{[hɂgĂSMC37C665IR,666IR,669,669FR,67x,68x,
93x,93xAPM,93xFR,957FR`bṽVA|[g460800bps܂őΉ
ʂȃ[hĂ܂BkႭCPǓׂyPPPȂP5/90ȏ
}VłExar16650,TI16750ƌ16550ǃ`bvg{[h
,ZyXEL SP111AT,Hays ESPȂǂ̍VA{[hŖĂ\p
Ȃ̂łgȂ͂܂B

  łƃhCoĂ݂̂łBNT̏ꍇAnCp
[^[~iKTX̂悤ɒ230400bps460800bpswł̂
hȂ̂Ŏۂ̑xݒ肵xN{(N=1,2 or 4,ꕔ␳̂
N{ɂȂȂݒ܂B)ɂȂxN[hƃAvP[V̐ݒ
Ɋ֌WȂɈ̑xɂȂ鑬xŒ胂[hpӂ܂B
  [h̐ݒ͏ݒ̓WXgŃOC̓[eBeBŁA
s܂B]NT3.51ł̃pb`Ƃ͎dlႤ̂ŒӂĂB

  ݒł郂[h͈ȉ̒ʂłB

  0: 16550݊
  1: x1[h(default)
  2: x2[h
  3: 230400bpsŒ胂[h
  4: x4[h
  5: 460800bpsŒ胂[h

  xN[hł͐ݒ肵bpsƎۂbps̊֌W͈ȉ̒ʂN{܂B
AN{76800bpsɂȂꍇ͎gl57600bpsɕ␳
܂Bx1[h230400bps460800bpsݒłȊO͏]Ɠ
B

 ݒ
  bps           x1              x2              x4       
   300     300(0x0180)      600(0x00c0)    1200(0x0060)
   600     600(0x00c0)     1200(0x0060)    2400(0x0030)
  1200    1200(0x0060)     2400(0x0030)    4800(0x0018)
  2400    2400(0x0030)     4800(0x0018)    9600(0x000c)
  4800    4800(0x0018)     9600(0x000c)   19200(0x0006)
  9600    9600(0x000c)    19200(0x0006)   38400(0x0003)
 19200   19200(0x0006)    38400(0x0003)   57600(0x0002)
 38400   38400(0x0003)    57600(0x0002)  115200(0x0001)
 57600   57600(0x0002)   115200(0x0001)  230400(0x8002)
115200  115200(0x0001)   230400(0x8002)  460800(0x8001)
230400  230400(0x8002)   460800(0x8001)      Error
460800  460800(0x8001)       Error           Error

()Divisorɐݒ肷l

\ȊȎx͈ȉ̎ŌvZł܂B

xN[h:
    original divisor = 115200/(original bps)
    bps = 115200/( (original divisor)/N + (original divisor)%N ? 1:0);

@AAʂT|[gĂȂlɂȂꍇAႦ110bps2{A
220bps4{A440bps͎ۂɂ͎g܂B14400bps2{A28800bps
Ƃǂ̏ꍇT|[gĂ܂B

CXg[
0.

    shsnt4j1.zipKȃfBNgɓWJĂB
    smchsmod.exeDOSbootĂANZXłƂɃRs[Ă
  ܂B

1.`bv̊mF

    ܂AgĂ`bvmF邽߂DOSBootAsmchsmod
  sĂB
    NTDOS/R\[EBhEŎsƈӖ̖ʂ
  ꖳ̂ŕKDOSōs܂BŁA
    !!! Not SMC37C665IR/666IR/669/669FR/93x chip ...ƌꂽT|
  [gÕ`bvȂ̂Œ߂ĂB

  SMC37C669 at 0x3f0 ..
  port1 (03f8h) ..
  port2 (02f8h) ..

    ̂悤ɏԂ\OKłB(l͗ł)

2.hCo̒u

    WJfBNgɂinstshs.bat_uNbNČʂ
  mF܂BSuccessful.ƕ\OKłB*ERROR*ꍇAt
  ^̎蓮CXg[ĂB

3.WXg̐ݒ

    RAST[o[̃OCOɋNT[rXɑ΂ăftHg
  x1ȊOx2,x4,xŒw肵ɂ̓WXgݒ肷Kv
  ܂Bx1͏(T[rX̏ꍇ͈x~߂Ă)[eB
  eBŐݒ肷ꍇ͂̍ڂ̓pXł܂B

  ** 
     WXgύXĂAu[g܂ł͗LɂȂ܂B
     ̃L[gpĂ邽߃[h0w肷FifoɂȂ
     ܂BFifoL16550݊ɂɂ̓[eBeBgpĂ
     B

  3a. ꂼ̃|[gɕʂ̐ݒꍇB

    X^[g->ݒ->Rg[pl->VA|[gJ܂B
  ݒ肷COM|[gIсAݒ{^܂Bďڍ׃{^
  ܂BԉFIFOLɂƂ`FbN{bNX̃`FbN
  O܂BOK{^ƍċN𑣂bZ[Wo܂ċN
  ȂIсAĂяڍ׃{^čxFIFOLɂƂ`
  FbN{bNXɃ`FbN܂BxċNȂIOK{^
  A{^ĕĂB
     āAX^[g->t@Cw肵ĎsIREGEDT32N
  ܂BHKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Services->
  Serial->Parameters->Serialn(n:0..)JADosDevicesw肵com
@|[gɂȂĂ邩APortAddresssmchsmod̕\l̂ǂ
@ƓmFAForceFifoEnable_uNbNl
@ς܂B

  3b. ̃|[g𓯂ݒŎgꍇB

     X^[g->t@Cw肵ĎsIREGEDT32N܂B
   HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Services->Serial
   J܂B̎ẢParameters->Serialn(n:0..)Ƃ
   mFĂBꍇ͂炪DȂ̂3a.̐ݒsKv
   ܂BForceFifoEnable_uNbNl܂B
     ̕@ł͌ő̐ݒꍇParameters->Serialn
   Ă̐ݒ肪ɂȂ邱Ƃ̂ł߂ł͂
   B

4.  u[gănCp[^[~iKTXȂǂTAƒʐMݒ肵ʂ
  ɂȂĂ邩mF܂BnCp[^[~ȉꍇAVɐݒ肵
  xɕ\ɂւ炸ۂɂ͈xčċNȂ
  LɂȂȂ̂ŒӂKvłB

@@Ⴆ230400bpsɂꍇAx1[hȂ230400Ax2Ȃ115200,x4
  57600bpsw肵230400bpsɂȂĂ邩mF܂B(

  ZyXEL Elite2864I,Omni TA128̏ꍇ
     230400bpŝƂ S20WX^= 0B(ATS20?000ԂBZyXELȊO
     TAł͂͑0ŒȂ̂ōfтȂ悤))

  MN128̏ꍇA
     AT\S0DTE RATEĂB

        AT\S0
        CMD DESCRIPTION             OPTION
        --- ------------------------------
            DTE RATE.............230400BPS

    ȊŐ@͂̋@̃}jAQƂĂB
  ꍇ͎ۂɐڑY-,Z-Modem̂悤ȑvgRgēK
  ȑ傫̃t@C]đxvĂ݂Ƃ܂B

5. ̃hCo[ReportWarełBpĎgpꍇɂ͕Kreport
  𑗂ĂBt鎖ΑȂĂ\܂
  BmF̎Ăgݍ킹͈ȉ̒ʂłB
  ŐV̏HomePageɓKXfڂ܂B

     665IR 666IR 669 669FR 67x 68x 93x 93xAPM 93xFR 957FR
 3F0   OK   ??    OK   ??   ??  ??  OK    ??    ??    ??
 370   --   --    ??   ??   ??  ??  ??    ??    ??    ??

  ??܂񍐂̖łB

SHSMode[eBeB
  ̃hCõ[hݒs[eBeBłB

Syntax: SHSMode <Port#> [<Value>]

:
com2̃[hB
 SHSMode 2
 com2: SMC37C669 at 03f0h, Mode = 02h

com2x4[hɐݒ肷B
 SHSMode 2 4
 com2: SMC37C669 at 03f0h, Mode = 04h

G[
 Device not exist.
  w肵com|[g݂͑܂B

 Device in use.
  w肵com|[g͑̃vOgpĂ܂B

 *Error* - No SHS driver installed.
  SHSΉhCoł͂܂B

 com2 is not SMC serial port.
  w肵com|[gSMC chipȊÕVA|[głB

:
  ΉhCoł̓G[ɂȂ܂B
  WXg͏܂BċNƃWXgɐݒ肳ꂽ[
hɖ߂܂B

Q&A
Q1. Cxgr[ɂ͈ȉ̂悤ȃbZ[WL^܂B

  User configuration data for parameter COM1 overriding 
  firmware configuration data. 

  ΂͎d̂ł傤HB

A1.  ͂̃|[gp̃WXg(Parameters->Serialn)Ƃ
  ႦftHgƑSlłĂo܂B܂xłݒ/
  ύXƏo܂B񍡉̃pb`Ƃ͊֌W܂B
    3bŎSĕWݒ̃|[gŗƂݒꍇȂ
  ł܂񂪑Oq悤ɂ߂ł͂܂B
    WXgg킸[eBeBŐݒ肷邱Ƃo܂Ӑ}
  ȂxɂȂĂ鎖ɋCÂȂꂪ̂ŒӂKvłB
    ǁA񍐃x͖肪NׂĂ݂̂ŕi͋C
  ȂƂ̂߂łB

Q2.  f62400bpsƌĂ܂B

A2.  ꕔ̃f͐ɃT|[gĂȂxŐڑƏoLڂ
  lԂ悤łBCɂȂ悤Ȃ琳lɂȂ鑬xɐݒ肵Ă
  B

܂삵ȂꍇB
0.IWĩhCoœĂ܂?
1.u[g܂?
2.ݒ肵|[g͎gĂ|[gł?
  DosDevicesmFĂB
3.̃|[gSMC Chip̃|[gł?
  SHSModeŊmFĂB
  PortAdresssmchsmoďʂƔrĂB
4.ڑ@͎ۂɐݒ肳bpsT|[gĂ܂?
  ̃f115200bps܂MN128230400bps܂łłB
5.gpĂ\tg͂̑xɑς܂? x2, x4[h̎A
  ӂKvłB̑xɂȂ悤ĂBu܂v
  ̃nCp[^[~iłQ̍ϐĂ̂łŎ
  Ă݂̂łBKTX߂łB

History
96/08/30
  initial release for NT3.51J
96/09/12
  T|[ggݍ킹ǉBsmchsmodƓɂB
  time stampقȂꍇ̑Ώ@ǉB
  pWSPgp悤ɂB
97/01/26
  NT4.0
  /ݒ胋[`VOXbhۏ؂Ă鏉ɈړB
  T|[g`bvǉBsmchsmod1.2bƓɂB
  WXgŃ}`vC[ݒł悤ɂB
97/01/28
  x2[hAxŒ胂[hǉB
97/01/31
  230400bps,460800bpswłx1[hǉB
  x2[h230400bpsɐݒ肵460800bpsŎg悤ɂB
97/02/05 beta4
    NT̃hCo[bpsɉsĂ邽߁Aŕێ
 bps͎ۂbpsɂȂƒxȂꍇƔB
 ݒ肷悤ɗvꂽbpsƁAuꂽɓbpsقȂĂ
 ꍇoĂ܂B
   ŗvꂽbpsoĂĐuꂽɂ͂𓚂Ƃ
 [hpӁBAݒ肪ÎmF邾Ƃ̂
 ʂł킴킴ۂɂɂȂu˂ďƍȂǂƂ̂
 悤Ȃ̂ŞXJɏIB݂͐u˂Ǝۂ̒lԂf
 tHgBvlԂė~ꍇbit3𗧂Ă(+8)B
97/02/06
  GTermƃfɂĂRASG[ɂȂꍇ邽߁Axu
˂ƗvlԂftHgɕύXBۂ̒lԂė~
ꍇbit3𗧂Ă(+8)B̓SƋtB
  669FR𖢃T|[ĝCBǂȂ̂Ń|[gAhXr
SMC̃|[gƊmFł̂LɁBSMC̃|[gƔSM
C̃|[g݂Ăꍇ̍B
  SMC chip(0x3f00x370)ĂꍇɕЕLɂ
ȂQ̉B
97/02/08 6
  ioctlŃ[hݒ肪o悤ɂBݒ胆[eBeBł
B
97/02/11
  SHSModeWhCoŃNbVQ̏CB
97/02/20
  [XBJpɉMB

쌠/zz
  ݂ReportWarełBΏۃ`bvĂ̕񍐂W܂iKFreeWare
Ƃ\łB쌠AĔzzFreeWareɏ܂B

ӎ
  {̎A傫ڂǂ܂܂ႢVƂႢ
CɁB

  WSP, KTX̍҂̕XɁB

-----------------------
 C(Osamu Imaizumi)
HomePage:
    http://www1.yk.rim.or.jp/~gigo/
SNTP Mail:
    imaizumi@nisiq.net
    (gigo@yk.rim.or.jp)
------------------------

t^1 -- 蓮CXg[

2a. hCoJĂꍇ
    2a.1 shsnt4j.patch.txtă\[XCsĂB

    2a.2 buildR}hŐVserial.sys쐬Â(Ⴆ
        \winnt\system32\drivers\serial.sys)ƒu܂B
        
2b. hCoJĂȂꍇ

   t@CgĊ̃hCoXV܂BR}hvv
 gNĂB

    2b.1 serial.syŝfBNgɈړ܂BႦ΁A
       cd \winnt\system32\drivers

    2b.2 SHSNT4J1.COMJgfBNgɃRs[Ďs܂B
       comt@CWSPself update executable.łB

       serial.sys$erial.sysrenameAVserial.sys
       o܂B"shsnt4j1.sys done!"ƕ\OK.

    2b.3 "serial.sys incorrect!"ƂG[oꍇwsp肵A

        wsp -T SHSNT4J1.com

        ƂĂB-TTimeStamp𖳎IvVłB

        wsp͗Ⴆ,
        ftp://ftp.forest.impress.co.jp/pub/dos/util/wsp/
        downloado܂B

        邢͓Kȃc[ŃIWiserial.systime Stamp

        96/10/29 12:00aɕςĂB

    2b.4 oオserial.systime stampmF܂B

        97/02/20 09:23p

t^2 - t@Cꗗ
Shsnt4j1.txt    ̃t@C
instshs.bat     CXg[pob`t@C
uinstshs.bat    ACXg[pob`t@C
shsnt4j1.com    ZtAbvf[gt@C
shsnt4j1.patch  DDK\[XƂ̍t@C
SHSMode.c       SHSModeC\[X
shsioctl.h      V݂ioctlp̃wb_ƃeNjJCtH[V
SHSMode.exe     ݒ胆[eBeB(Win32R\[vO)
SMCHSMOD.EXE    SMC`bvo/ݒ胆[eBeB(DOS)
