------------------------------------------------------------------------------

  X68000 EMULATOR XM6 (version 2.06)

  \[XR[h
  for Win32
  Copyright (C) 2001-2006 ohD

------------------------------------------------------------------------------
\[XJɂ

  ̃A[JCuX68000G~[^XM6(version 2.06)̑S\[XR[hłB

  XM6version 1.95܂ŁAׂă\[XJƂĂ܂B͑Ŝ̕
  ܂Advȕoオ܂ł́AJƂɂƂăbg
  Ɣf߂łB

  2005NɂȂversion 2.00ɎāA悤₭ŜƂĂ̊`ĂA
  ׂȐ݌vAꕔtBbNXAl悤ɂȂA\[XR[h
  JłԂɂȂĂ܂B

  X68000͖uInside X68000v͂߂ƂāArIeNjJȎ
  @킾Ƃ܂B݂2006NAȂ킿1987NX68000㔭ȗ
  19No߂AOqInside͖ܘ_̎AefoCX̃f[^V[gȂǎX
  Ɠs\ƂȂĂAƁAmɏ񂪎܂B

  ̃\[XR[hłAX68000̃n[hEFAEAvP[VJ
  ̈ꏕɂȂ΍KłB܂AVɃG~[^J݂ɂƂĂ
  Ql̈ɂȂ邱ƂƎv܂B


gpKiCZXj

  A[JCuɊ܂܂t@CQ́Aꕔ̗O(q)ohD쌠ۗL
  Ă܂B

  \[Xt@C̈ꕔA͑Sėpꍇ́A̋KɊÂ
  Ƃ܂B

  EvmfBNg̃t@Cėpꍇ́AhLgɃIWi
    쌠\𖾋LĂB܂pp͋֎~܂B
  EȊO̍̕ėp͎RłBOlApp͋֎~܂B

  ̃A[JCu̍Ĕzz͂ł܂Bf]ڂւ܂B


gpKɊ܂܂ȂO

  ȉɎt@C68000G~[^"Starscream"ς̂łB
  IWi̒쌠҂Neill CorlettłB(neill@neillcorlett.com)
  ̕ɂĂ͑Oq̋K͓Kp܂BStarscream̃CZX
  Kɏ]܂B

  cpu\star.c
  vm\cpudebug.c
  vm\cpudebug.h

  ȉɎt@CFMG~[^"fmgen"ς̂łB
  IWi̒쌠҂ciscł(cisc@retropc.net)
  ̕ɂĂ͑Oq̋K͓Kp܂BfmgeñCZXK
  ]܂B

  vm\fmgen.cpp
  vm\fmgen.h
  vm\fmgeninl.h
  vm\fmtimer.cpp
  vm\fmtimer.h
  vm\opm.cpp
  vm\opm.h

  ȉɎt@Cco̍łB(cogood@gmail.com)
  A݂͎bgݍ݂ƂƂAXM6{̂ƈ̂ƂĈ
  ܂B

  vm\windrv.cpp
  vm\windrv.h
  mfc\mfc_host.cpp
  mfc\mfc_host.h


J

  RpCƂāAMicrosoft Visual C++ .NET 2003KvłBVC++.NET 2003
  Ɋ܂܂AMFC 7.1AvP[Vt[[NƂĎgpĂ܂B

  ܂AOo[WłVisual C++ 6Apo[WłVisual C++
  .NET 2005ł\z\Ȗ͗lłBA҂̊ł͊mFĂ܂B

  AZuƂāANASM(Netwide Assembler)KvłBzzĂ܂
  ̂ŕʓr肵ĂBo[W0.98.39Win32ł𐄏܂B
  (QlURL:http://sourceforge.net/projects/nasm/)


fBNg

  ȉ̂悤ȃfBNg\ɂȂĂ܂B

  cpu           CPURA(Starscream)
  vm            zX68000
  mfc           I/O(Win32)
  res           Win32\[X
  00vcproj.vc6  Visual C++ 6 vWFNg
  00vcproj.vc7  Visual C++ .NET 2003 vWFNg


`ς݃V{

  ȉ̃V{ŜŎgĂ܂B

  _DEBUG     fobOrh܂Bassertɂ鎩Ȑffs܂B
  NDEBUG     [Xrh܂Bʏ͂`܂B
  _WIN32     Win32錾܂B(RpCɂ莩`܂)

  ȉ̃V{xm6.hŐ錾Ă܂B

  FALSE      0
  TRUE       (!FALSE)
  NULL       0
  ASSERT     _DEBUG`ɁAassertLɂ܂B
  FASTCALL   WX^֐ĂяoKg܂B


rh

   񂶂傳̍DӂɂAVC++6AVC++.NET̃vWFNgt@C
   pӂł܂B

   Visual C++ 6܂.NETNAXM6.dsw(VC++6)܂XM6.sln(VC++.NET)
   [h܂B

   ANeBuȍ\Ƃ"Release"A"Debug"̂ǂ炩IсArh(B)
   \[Ṽrh(B)I܂B

   RpCyуNsARelease܂DebugfBNgXM6.exe
   ܂BŃrh͊łB

   ȂAVC++.NETReleaserh̏ꍇAC++\[XɑΉ.asmt@C
   쐬܂B́Â悤ȃvWFNgݒƂȂĂ邽߂łB


\[XR[h KCh

  XM6̃A[LeN`AvO\ȒPɐ܂B

  XM6VMƌĂԉzX68000ƁAۂI/OG~[VSWin32
  2ɕĂ܂B2͓𖾊mɕĂAVM͉z}V
  _IAۓIɋLq́AWin32VM쓮AWindows̃foCX
  ڑ́AƂʒuÂɂȂ܂B܂̒Ԃ̋nƂȂ̂
  āAt@CI/OEt@CpXAOSɈˑ邱2̊TO
  ۉAVMBĂ܂BAXbhԂ̓IuWFNg
  OSˑƂȂ邽߁Abp[ƂSyncNX݂Ă܂B


  ̗RAVM̓vZbTOSɂȂAėpIȋLqSĂ
  BACPURAłStarscreamx86(IA-32)pł邱ƂA
  ߕpɂɌĂ΂镔AZuĂ邱ƂÃRpCv
  ZbTAOSֈڐAsۂ́Acpu,memory,schedule3t@Cɂ
  炩̏KvłB

  VMɎꂽefoCX́ADeviceNXA܂MemDeviceNXh
  NXƂȂĂ܂B̎(CX^X)VMNXL
  ĂAefoCXVM::SearchDeviceɂ茟A擾\łB

  ȉAVM̊et@Cꗗ܂B

  t@C(ꕔgqȗ)       e
  -------------------------------------------------------------------------
    os.h                         OSˑincludewb_
    xm6.h                        XM6ʒ`
    adpcm                        ADPCM
    areaset                      GAZbg
    cisc.h                       fmgenڑwb_
    config.h                     ݒf[^`
    core_asm                     AZuTu[`
    cpu                          MPU
    cpudebug                     tAZu(Starscreamtł)
    crtc                         CRTRg[
    device                       foCXE}bvhfoCX
    disk                         SASIESCSIfBXNC[Wt@C
    dmac                         DMARg[
    event                        R[obNCxg
    fdc                          tbs[fBXNRg[
    fdd                          tbs[fBXNhCu
    fdi                          tbs[fBXNC[Wt@C
    fileio                       t@CI/O (Win32p)
    filepath                     t@CpX (Win32p)
    fmgen                        FMWFl[^(fmgen)
    fmgeninl                     FMWFl[^(fmgen)
    fmtimer                      FM^C}(fmgen)(gp)
    gvram                        OtBbNVRAM
    iosc                         I/ORg[
    keyboard                     L[{[h
    log                          O
    memory                       SʁE}bsO
    mercury                      Mercury-Unit
    mfp                          MFP
    midi                         MIDI
    mouse                        }EX
    neptune                      Neptune-X
    opm                          YM2151(fmgen)
    opmif                        FM
    ppi                          p|[gEWCXeBbNfoCX
    printer                      v^
    render                       _(ʍ)
    renderin                     _ CC
    rend_asm                     _ AZu
    rtc                          A^CNbN
    sasi                         SASIRg[
    scc                          VAR~jP[V
    schedule                     XPW[
    scsi                         SCSIRg[
    sprite                       BG/XvCgRg[
    sram                         obe[obNAbvSRAM
    starcpu.h                    Starscreamڑ
    sync                         XbhIuWFNg (Win32p)
    sysport                      VXe|[g
    tvram                        eLXgVRAM
    vc                           rfIRg[
    vm                           z}V{
    windrv                       WindrvXM (WINDRV)

  ̃o[Wł́AMercuryENeptune̊eNX̓_~[ƂȂĂ܂B
  ͍\łB܂CRTCEGVRAMESpriteg\肪܂B


  Win32MFC(Microsoft Foundation Classlibrary)AvP[Vt[
  [NƂĎgpĂ܂BhLghLgev[g͎gp
  Ă܂񂪁AȂMFCɈˑɂȂĂ邽߁Åւ̈ڐA
  ͍łBVM̋쓮ƂĎQlɂāAV蒼悢Ǝv
  B܂Aꕔ\[XR[h͂瓾AJdlgĂ镔
  ܂B

  Win32œ삷eW[́AꕔCComponentNXhꂽ
  NXɂȂĂ܂B̎(CX^X)͑oNŐڑ
  Ă邽߁AeR|[lgCComponent::SearchComponentɂ茟A擾
  \łB

  ȉAWin32̊et@Cꗗ܂B

  t@C(ꕔgqȗ)       e
  -------------------------------------------------------------------------
    mfc.h                        Win32ʒ`
    mfc_app                      AvP[VyуO[o
    mfc_asm                      AZuTu[`
    mfc_cfg                      ݒf[^ǗAIvVݒ
    mfc_cmd                      j[R}hnhO
    mfc_com                      R|[lg
    mfc_cpu                      TuEBhE (vZbT)
    mfc_dev                      TuEBhE (foCX)
    mfc_draw                     `EBhEETuEBhEǗ
    mfc_frm                      t[EBhEES̃Rg[
    mfc_host                     zXg t@CVXe (WindrvXM)
    mfc_info                     Xe[^XWǗ
    mfc_inp                      ̓hCo
    mfc_midi                     MIDIhCo
    mfc_port                     VA|[gp|[ghCo
    mfc_que                      ėpL[
    mfc_rend                     TuEBhE (_)
    mfc_res                      \[X
    mfc_sch                      XPW[
    mfc_snd                      TEhhCo
    mfc_stat                     Xe[^Xr[(Sʎ̂ݎgp)
    mfc_sub                      TuEBhE
    mfc_sys                      TuEBhE (VXe)
    mfc_tkey                     TrueKey
    mfc_tool                     fBXNC[W쐬ق
    mfc_ver                      o[W
    mfc_vid                      TuEBhE (rfI)
    mfc_w32                      TuEBhE (Win32)


  ۂ̏ƂẮA̎菇ɂȂ܂B̓̕vbgtH[
  ˑ̂߁AMFC̒m΂藝₷ł傤B

  (1)CApp::InitInstance()   CX^X
  (2)CFrmWnd::Init()        t[EBhE쐬
  (3)CFrmWnd::OnCreate()    t[EBhEE`EBhȄ
                            VM̍\zEEZbg
                            R|[lg̍\zE
                            WM_KICK[UbZ[W̃|Xg
  (4)CFrmWnd::OnKick()      Xe[^XR[hɏ]
                            bZ[W|vƃLvVEXe[^Xn
  (5)CScheduler::Run()      OnKickCScheduler::Enable(TRUE)Ă΂ƁAVM
                            XbhBvȂvm->ExecĂяoB


A

  z[y[W
  http://retropc.net/pi/

  Twitter
  https://twitter.com/xm6_original
