рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдбреЗрдореЛ рджреВрд╕рд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛


23 рдЬреБрд▓рд╛рдИ 2013 рдХреЛ, рджреВрд╕рд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдбреЗрдореЛ (1993) рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред рдХрдИ рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣, рдореИрдВ рдЙрд╕ рдбреЗрдореЛ рдХреЗ рдЗрдирд╕рд╛рдЗрдб рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рдерд╛ рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдЗрддрдиреЗ рд╕рд╛рд▓реЛрдВ рдореЗрдВ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдореБрдЭреЗ рдЕрд╕реЗрдВрдмрд▓рд░ рд╕реЗ рдЕрдЦрдВрдб рдЕрд░рд╛рдЬрдХрддрд╛ рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рдереА, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореЗрд░реЗ рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдЬрдЯрд┐рд▓ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рдЦреЛрдЬ рдХреА рдЬреЛ рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдврдВрдЧ рд╕реЗ рдЬреЛрдбрд╝рддреА рд╣реИред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрднреА рдРрд╕рд╛ рдХреЛрдб рдирд╣реАрдВ рджреЗрдЦрд╛, рдбреЗрдореЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рджреЛ рдЕрднрд┐рдиреНрди рдкрд╣рд▓реБрдУрдВ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реБрдП:

  • рдЯреАрдо рд╡рд░реНрдХред
  • рдХрд╣рд╛рдирд┐рдпреЛред

рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдиреЛрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЗрдЦ рдмрдирд╛рдпрд╛: рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЛ рдХреБрдЫ рдШрдВрдЯреЗ рдмрдЪрд╛рддрд╛ рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рджреВрд╕рд░реЛрдВ рдХреЛ рдЕрдзрд┐рдХ рд╕реНрд░реЛрдд рдХреЛрдб рдкрдврд╝рдиреЗ рдФрд░ рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡реА рдЗрдВрдЬреАрдирд┐рдпрд░ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рднрд╛рдЧ 1: рдкрд░рд┐рдЪрдп


рдбреЗрдореЛ


рдХреЛрдб рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдПрдЪрдбреА рд╡реАрдбрд┐рдпреЛ (рдорд╛рдЗрдХрд▓ рд╣рдЯ) рдореЗрдВ рдкреМрд░рд╛рдгрд┐рдХ рдбреЗрдореЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджреВрдВрдЧрд╛ред рдЖрдЬ, рдпрд╣ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЧреНрд▓рд┐рдЪ рдХреЗ рдмрд┐рдирд╛ рдбреЗрдореЛ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдбреЙрд╕рдмреЙрдХреНрд╕ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓реЙрдиреНрдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред


рдкрд╣рд▓реЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ


рд╕реНрд░реЛрдд рдХреЛрдб GitHub рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдмрд╕ рдПрдХ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВ git:

git clone git@github.com:mtuomi/SecondReality.git

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рд╛рдордЧреНрд░реА рднреНрд░рд╛рдордХ рд╣реИ: 32 рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ рдПрдХ рд░рд╣рд╕реНрдпрдордп U2.EXEрдПрдХ рдЬреЛ рдбреЙрд╕рдмреЙрдХреНрд╕ рдореЗрдВ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред


рдбреЗрдореЛ рдореЗрдВ рд╡рд░реНрдХрд┐рдВрдЧ рдЯрд╛рдЗрдЯрд▓ "Unreal 2" рдерд╛ (рдкрд╣рд▓рд╛ "Unreal" рдкрд┐рдЫрд▓реЗ Future Crew рдбреЗрдореЛ рдерд╛, рдЬрд┐рд╕реЗ 1992 рдореЗрдВ рдкрд╣рд▓реА рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рд░рд┐рд▓реАрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред рдФрд░ рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдирд╛рдо рдмрджрд▓рдХрд░ "рджреВрд╕рд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛" рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо "U2.EXE" рдмрддрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ ...

рдпрджрд┐ рдЖрдк CLOC рдЪрд▓рд╛рддреЗ рд╣реИрдВ , рддреЛ рд╣рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рдореАрдЯреНрд░рд┐рдХ рдорд┐рд▓реЗрдЧреА:

    -------------------------------------------------------------------------------
                                                   
    -------------------------------------------------------------------------------
    Assembly                        99           3029           1947          33350
    C++                            121           1977            915          24551
    C/C++ Header                     8             86            240            654
    make                            17            159             25            294
    DOS Batch                       71              3              1            253
    -------------------------------------------------------------------------------
    SUM:                           316           5254           3128          59102
    -------------------------------------------------------------------------------

  • ┬л┬╗ 50% .
  • Doom.
  • рдЗрд╕рдореЗрдВ рд╕рддреНрд░рд╣ рдореЗрдХрдлрд┐рд▓ рд╣реИрдВред рд╕рд┐рд░реНрдл рдПрдХ рд╣реА рдХреНрдпреЛрдВ?

рдбреЗрдореЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ


рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдбреЗрдореЛ рдХреЛ DosBox рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ U2.EXEрдФрд░ рдЗрд╕реЗ рд╕рд╣реА рдЬрдЧрд╣ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЬрдм рдореБрдЭреЗ рдХреЛрдб рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛рдордХрд╛рдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рддреЛ рдпрд╣ рдмрд╣реБрдд рддрд╛рд░реНрдХрд┐рдХ рд▓рдЧрдиреЗ рд▓рдЧрд╛:

        рд╕реАрдбреА рдХрд╛ рдирд╛рдо
        UVE.EXE рдбреЗрдЯрд╛ / рд╕реЗрдХрдВрдбред рдореЛрд╡реЗ
        рд╕реАрдбреА рдбрд╛рдЯрд╛
        SECOND.EXE

рдФрд░ рд╡реЛрдЗрд▓рд╛!


рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░


90 рдХреЗ рджрд╢рдХ рдореЗрдВ, рдбреЗрдореЛ рдЬреНрдпрд╛рджрд╛рддрд░ рдлреНрд▓реЙрдкреА рдбрд┐рд╕реНрдХ рдкрд░ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЧрдП рдереЗред рдЕрдирдкреИрдХрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рджреЛ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛: SECOND.EXEрдФрд░ REALITY.FC:

    ред <рдбреАрдЖрдИрдЖрд░> 08/08/2013 16:40
    .. <рдбреАрдЖрдИрдЖрд░> 08/01/2013 16:40
    FCINFO10 TXT 48,462 04-10-1993 11:48
    FILE_ID DIZ 378 04-10-1993 11:30
    README 1ST 4.222 04-10-1993 12:59
    REALITY FC 992.188 07-10-1993 12:59 
    рд╕реЗрдХрдВрдб рдПрдХреНрд╕ 1,451,093 07-10-1993 13:35
        5 рдлрд╛рдЗрд▓реЗрдВ (рдУрдВ) 2.496,343 рдмрд╛рдЗрдЯреНрд╕ред
        2 рдбреАрдЖрд░ (рдПрд╕) 262,111,744 рдмрд╛рдЗрдЯреНрд╕ рдореБрдлреНрддред

рдЦреЗрд▓ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореИрдВ рд╣рдореЗрд╢рд╛ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдкреВрд░реА рддрд╕реНрд╡реАрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП:

  • SECOND.EXE: рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рднреА рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рдЗрдВрдЬрдиред
  • REALITY.FC: рдПрдХ рдорд╛рд▓рд┐рдХрд╛рдирд╛ / рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ (рд╕рдВрдЧреАрдд, рдзреНрд╡рдирд┐ рдкреНрд░рднрд╛рд╡, рдЪрд┐рддреНрд░) рдПрдХ рд▓рд╛ WADрдХрдпрд╛рдорддред

рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, MAIN/PACK.CрдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдореБрдЭрд╕реЗ рдЧрд▓рддреА рд╣реБрдИ рдереА: рджреВрд╕рд░рд╛ рд░рд┐рдпрд▓рд┐рдЯреА рдЗрдВрдЬрди рд╕рд┐рд░реНрдл рдПрдХ рд▓реЛрдбрд░ рдФрд░ рдПрдХ рдЗрдВрдЯрд░рдкреНрдЯ рд╕рд░реНрд╡рд░ (рдЬрд┐рд╕реЗ DIS рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рджреГрд╢реНрдп (рдЬрд┐рд╕реЗ "PART" рднреА тАЛтАЛрдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдбреЗрдореЛ рдПрдХ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ DOS рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдХреЛ рд▓реЛрдбрд░ рд▓реЛрдбрд░ рджреНрд╡рд╛рд░рд╛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рднрд╛рдЧреЛрдВ рдХреЛ рдЕрдВрдд рдореЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ SECOND.EXE:


  • REALITY.FC рдбреЗрдореЛ рдХреЗ рджреМрд░рд╛рди рдмрдЬрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рджреЛ рд╕рдВрдЧреАрдд рд░рдЪрдирд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ (рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдУрдлрд╝реНрдлрд╝реНрдпреВрд╢рди рдФрд░ рдлрд┐рд▓рд┐рдВрдЧ рдорд╛рд░реНрдХрд░)ред
  • SECOND.EXE рдЗрд╕рдореЗрдВ рдмреВрдЯрд▓реЛрдбрд░ рдФрд░ рдбреЗрдореЛ рдЗрдВрдЯрд░рдкреНрдЯ рд╕рд░реНрд╡рд░ (DIS) рд╣реИред
  • рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рдмрд╛рдж SECOND.EXE, рдбреЗрдореЛ рдХреЗ 32 рднрд╛рдЧреЛрдВ (PART) рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп DOS рдлрд╝рд╛рдЗрд▓реЛрдВ (рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб) тАЛтАЛрдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрдИ рд▓рд╛рдн рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ:

  • : PART , _start (450 ).
  • EXE SECOND.EXE -.
  • : Loader DIS 20 . DOS .
  • : PART PART .
  • / : , PART ( ), : EXE , .
  • PART рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдХреЛрдб рдореЗрдВ рд╣рдо C, рд╡рд┐рдзрд╛рдирд╕рднрд╛ ... рдФрд░ рдкрд╛рд╕реНрдХрд▓ рдкрд╛рддреЗ рд╣реИрдВред

рдЕрдиреБрд╢рдВрд╕рд┐рдд рдкрд╛рда


рджреВрд╕рд░реЗ рд░рд┐рдпрд▓рд┐рдЯреА рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рд╕реНрддрдВрдн VGA, рдХреЛрдбрд╛рдВрддрд░рдХ рдФрд░ PC рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ (PIC рдФрд░ PIT рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ) рд╣реИрдВред рдпрд╣рд╛рдВ рдХреБрдЫ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ:


рднрд╛рдЧ 2: рджреВрд╕рд░рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдЗрдВрдЬрди


рдЬреИрд╕рд╛ рдХрд┐ рднрд╛рдЧ 1 рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рджреВрд╕рд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреА рдиреАрдВрд╡ рдореЗрдВ рдирд┐рдореНрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • DOS рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдмреВрдЯрд▓реЛрдбрд░ред
  • рдореЗрдореЛрд░реА рдореИрдиреЗрдЬрд░ (рд╕рд╛рдзрд╛рд░рдг рд╕реНрдЯреИрдХ рдкреВрд▓)
  • рдбреЗрдореЛ рдЗрдВрдЯрд░рдкреНрдЯ рд╕рд░реНрд╡рд░ (DIS)ред

рдЗрд╕ рднрд╛рдЧ рдореЗрдВ рдореИрдВ рдЙрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдХреЛ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рджреВрдВрдЧрд╛ рдЬреЛ рдЗрдВрдЬрди рдФрд░ рдмреВрдЯрд▓реЛрдбрд░ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА)ред

рдЗрдВрдЬрди рдХреЛрдб


рдЗрдВрдЬрди рдХреЛрдб 100% ASM рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ:

  • MAIN/U2.ASM (рдХреЛрд░)ред
  • MAIN/U2A.ASM (рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ)ред
  • MAIN/VMODE.ASM (рд╡реАрдЬреАрдП рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ)ред

рдЫрджреНрдо рдХреЛрдб рдореЗрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

    exemus  db 'STARTMUS.EXE',0
    exe0    db 'START.EXE',0
    ...
    exe23   db 'ENDSCRL.EXE',0

    start:
       cli                         ; Disable all interrupts
       mov     ah,4ah              ; Deallocate all memory
       call checkall               ; Check for 570,000 bytes of mem, 386 CPU and VGA
       call file_getexepath        
       call dis_setint             ; Install Demo Interrupt Server on Interrupt 0fch
       call file_initpacking       ; Check exe signature (no tempering) !
       call file_setint            ; Replace DOS routines (only OPENFILE, SEEK and READ) on Interrupt 021h
       call flushkbd               ; Flush the keyboard buffer
       
       call  checkcmdline          ; check/process commandline

       ;======== Here we go! ========
       call vmode_init             ; Init VGA (not necessarly Mode13h or ModeX), each PARTs had its own resolution

       mov si,OFFSET exe0
       call executehigh            ; loaded to high in memory. Used for loading music loaders and stuff.
   
       call  _zinit ; Start music
       call  restartmus

       mov   si,OFFSET exe1     ;Parameter for partexecute: Offset to exec name
       call  partexecute
       ; Execute all parts until exe23

       call fademusic
       ;======== And Done! (or fatal exit) ========

    fatalexit:
       mov cs:notextmode,0
       call vmode_deinit

рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рдкрдврд╝рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ:

  1. рд╡реНрдпрд╡рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ DIS рд╡реНрдпрд╡рдзрд╛рди рд╕рд░реНрд╡рд░ рд╕реЗрдЯ рдХрд░реЗрдВ 0fchред
  2. DOS рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓реНрд╕ рдХреЛ рд░реБрдХрд╛рд╡рдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ 021h(рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, "рджреЗрд╡ рдФрд░ рдкреНрд░реЛрдбрдХреНрдЯ рдореЛрдбреНрд╕" рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ )ред
  3. рдИрдПрдордПрд╕ рдореЗрдореЛрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕рд╛рдЙрдВрдб рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреАрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред
  4. рд╕рдВрдЧреАрдд рдЪрд▓ рд░рд╣рд╛ рд╣реИред
  5. рдбреЗрдореЛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдХрд╛ рдкреНрд░рджрд░реНрд╢рдиред
  6. рдХрд┐рдпрд╛ рд╣реБрдЖ!

рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг execute:

 execute:
      cld
      call  openfile ; Open the DOS executable for this PART
      call  loadexe  ; loads the specified exe file to memory, does relocations and creates psp
      call  closefile
      call  runexe   ;runs the exe file loaded previously with loadexe.
                     ; returns after exe executed, and frees the memory
                     ; it uses.

рдореЗрдореЛрд░реА рдореИрдиреЗрдЬрд░


рдХрдИ рдХрд┐рдВрд╡рджрдВрддрд┐рдпрд╛рдВ рдереАрдВ рдХрд┐ рджреВрд╕рд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдПрдордПрдордпреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЬрдЯрд┐рд▓ рдореЗрдореЛрд░реА рдореИрдиреЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдЗрдВрдЬрди рдореЗрдВ рдХреЛрдИ рдирд┐рд╢рд╛рди рдирд╣реАрдВ рдереЗред рдореЗрдореЛрд░реА рдкреНрд░рдмрдВрдзрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбреЙрд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ: рдЗрдВрдЬрди рд╕рднреА рд░реИрдо рдХреЛ рдореБрдХреНрдд рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЕрдиреБрд░реЛрдз рдкрд░ рдЗрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ ред рдПрдХрдорд╛рддреНрд░ рдореБрд╢реНрдХрд┐рд▓ рдЪрд╛рд▓ рд╣реА рдвреЗрд░ рдХреЗ рдЕрдВрдд рд╕реЗ рд░реИрдо рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ: рдпрд╣ рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рд░реИрдо рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдореЙрд▓реЙрдХ рдбреЙрд╕ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред

рднрд╛рдЧ 3: DIS


рдбреЗрдореЛ рдЗрдВрдЯрд░рдкреНрдЯ рд╕рд░реНрд╡рд░ (рдбреАрдЖрдИрдПрд╕) рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛рдУрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рд╡рд┐рднрд┐рдиреНрди рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рд╕реЗ рд╡реАрдЬреАрдП рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдПред

DIS рд╕реЗрд╡рд╛рдПрдБ


рд░рди-рдЯрд╛рдЗрдо, PART рдореЗрдВ, DIS рд╕рд░реНрд╡рд░ рдЗрд╕реЗ рд╕реЗрд╡рд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ DIS/DIS.Hред

рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реЗрд╡рд╛рдПрдВ:

  • рд╡рд┐рднрд┐рдиреНрди PART ( dis_msgarea) рдХреЗ рдмреАрдЪ рдЖрджрд╛рди- рдкреНрд░рджрд╛рди: DIS рдкреНрд░рддреНрдпреЗрдХ 64 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рддреАрди рдмрдлрд╝рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ PART рдкрд┐рдЫрд▓реЗ PART рдХреЗ рд▓реЛрдбрд░ рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗред
  • рдПрдореБрд▓реЗрд╢рди рдХреЙрдкрд░ ( dis_setcopper): рдПрдорд┐рдЧрд╛ рдХреЙрдкрд░ рд╕рд┐рдореБрд▓реЗрдЯрд░ рдЬреЛ рдЖрдкрдХреЛ рд╡реАрдЬреАрдП рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  • Dev / Prod ( dis_indemo) рдореЛрдб : PART рдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ DEV рдореЛрдб рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛) рдпрд╛ PROD рдореЛрдб рдореЗрдВ рдмреВрдЯрд▓реЛрдбрд░ рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
  • рд╡реАрдЬреАрдП рдлреНрд░реЗрдо рдХрд╛рдЙрдВрдЯ ( _dis_getmframe)
  • рд╡реАрдЬреАрдП рдмреИрдХрд╕реНрдЯреЙрдк ( dis_waitb) рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ ред

рдбреЗрдореЛ рдЗрдВрдЯрд░рдкреНрдЯ рд╕рд░реНрд╡рд░ рдХреЛрдб


DIS рд╕реНрд░реЛрдд рдХреЛрдб рднреА 100% ASM рд╣реИ ... рдФрд░ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рдЯрд┐рдкреНрдкрдгреА рдХреА:

  • DIS/DIS.ASM(рдЗрдВрдЯрд░ рд╣реИрдВрдбрд▓рд░ рдЗрдВрдЯ рдЯреВ рд╕реЗрдЯ 0fch)ред
  • DIS/DISINT.ASM (DIS рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╕реНрд╡рдпрдВ)ред
  • рдЪреВрдВрдХрд┐ рджреВрд╕рд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рднреА рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕реА рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ, рдХреЛрдб рдореЗрдВ рд╕реА: DIS/DIS.HрдФрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ DIS/DISC.ASMред

рдпрд╣ рдХрд╛рдо рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ


DIS рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ 0fchред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╣рд╛рди рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ SECOND.EXEрдбреЗрдореЛ рдЪрд▓рдиреЗ рдкрд░ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рджреЗрд╡ рдореЛрдб рдореЗрдВ рдПрдХ рдирд┐рд╡рд╛рд╕реА рдХрд╛рд░реНрдпрдХреНрд░рдо ( рдЯреАрдПрд╕рдЖрд░ ) рдХреЗ рд░реВрдк рдореЗрдВред рдпрд╣ рд▓рдЪреАрд▓рд╛рдкрди рдЖрдкрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд╛рд░реНрдЯ рдбреЗрдореЛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

                          // рдЪрд▓реЛ рджрд┐рдЦрд╛рд╡рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдПрдХ рдПрдлрд╕реА рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ рдФрд░ рд╕реАрдзреЗ рд╕реНрдЯрд╛рд░ рднрд╛рдЧ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
  C: \> CD DDSTARS            
  C: \ DDSTARS> K

  рддреНрд░реБрдЯрд┐: DIS рд▓реЛрдб рдирд╣реАрдВ рд╣реИред 

                          // рдЙрдлрд╝, PART 0fch рдкрд░ DIS рдирд╣реАрдВ рдвреВрдБрдв рд╕рдХрд╛ред
  C: \ DDSTARS> CD .. \ DIS
  C: \ DIS> DIS

  рдбреЗрдореЛ рдЗрдВрдЯ рд╕рд░реНрд╡рд░ (DIS) V1.0 рдХреЙрдкреАрд░рд╛рдЗрдЯ (C) 1993 рдж рдлреНрдпреВрдЪрд░ рдХреНрд░реВ
  рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг - рд╕рдВрдХрд▓рд┐рдд: 07/26/93 03:15:53 
  рд╕реНрдерд╛рдкрд┐рдд (int fc)ред
  рдиреЛрдЯ: рдпрд╣ DIS рд╕рд░реНрд╡рд░ рддрд╛рдВрдмреЗ рдпрд╛ рд╕рдВрдЧреАрдд рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ!
                          // DIS рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдЖрдЗрдП рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

  C: \ DIS> CD ../DDSTARS
  C: \ DDSTARS> K

рдФрд░ рд╡реЛрдЗрд▓рд╛!


рддрд╛рдВрдмрд╛



"рдХреЙрдкрд░" рдХреЙрдкрд░рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИ рдЬреЛ рдЕрдореАрдЧрд╛ рдХреЗ рд▓рд┐рдП рдбреЗрдореЛ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдкрд╕рдВрдж рдЖрдпрд╛ред рдпрд╣ рдУрд░рд┐рдЬрд┐рдирд▓ рдЪрд┐рдк рд╕реЗрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛ рдФрд░ рдЖрдкрдХреЛ рд╡реАрдбрд┐рдпреЛ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдП рдЧрдП рдХрдорд╛рдВрдбреНрд╕ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдордпреЛрдЧреНрдп рд╕реНрдЯреНрд░реАрдо рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкреАрд╕реА рдкрд░ рдРрд╕рд╛ рдХреЛрдИ рдХреЙрдкреАрдкреНрд░реЛрд╕реЗрд╕рд░ рдирд╣реАрдВ рдерд╛, рдФрд░ рдлреНрдпреВрдЪрд░ рдХреНрд░реВ рдХреЛ рдбреЗрд╕ рдХреЗ рдЕрдВрджрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХреЙрдкрд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЛ рд▓рд┐рдЦрдирд╛ рдерд╛ред

рдХреЙрдкрд░ рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП FC рдЯреАрдо рдиреЗ 8254-PIT рдФрд░ 8259-PIC PC рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЪрд┐рдкрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЙрд╕рдиреЗ рд╡реАрдЬреАрдП рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рдИ , рдЬреЛ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдкрд┐рдЫрдбрд╝реЗ рдмреАрдо рдХреЗ рддреАрди рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ :

  • рд╕реНрдерд╛рди 0: рдкреНрд░рджрд░реНрд╢рди рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж (рд▓рдЧрднрдЧ рд╕реНрдХреИрди рд▓рд╛рдЗрди 25 рдкрд░)
  • рдкреНрд▓реЗрд╕ 1: рд░рд┐рд╡рд░реНрд╕ рдмреАрдо рд╕реНрд╡реАрдк рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж (IT рдкреЛрд╕рдмреНрдмрд▓ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦреЗрдВ)
  • рдЬрдЧрд╣ 2: рд╕реНрдХреИрди рдмреАрдо рдХреЗ рд░рд┐рд╡рд░реНрд╕ рдмреАрдо рдореЗрдВ

рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ MAIN/COPPER.ASM(рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрд░реЗрдЦ рдореЗрдВ рджреЗрдЦреЗрдВ рдФрд░ рджреЗрдЦреЗрдВ):

  1. рд╡рд╛рдВрдЫрд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде IRQ0 рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 8254 рдЪрд┐рдк рдХреЗ рдЯрд╛рдЗрдорд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  2. 8h рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ (рдЬрд┐рд╕реЗ IRQ0 рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж 8259 PIC рджреНрд╡рд╛рд░рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЛ рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ intti8ред

рдиреЛрдЯ: DIS рдлреНрд░реЗрдо рдХрд╛рдЙрдВрдЯ рд╕реЗрд╡рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЙрдкрд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред

рднрд╛рдЧ 4: рджреЗрд╡ рдФрд░ рдкреНрд░реЛрдбрдХреНрд╢рди рдореЛрдб


рджреВрд╕рд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдкрдврд╝рддреЗ рд╣реБрдП, рдЖрдк рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдЪрдХрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ рдЯреАрдо рдиреЗ DEV рд╕реЗ PROD рддрдХ рдХреЗ рд╕рд╣рдЬ рд╕реНрд╡рд┐рдЪ рдкрд░ рдХрд┐рддрдирд╛ рдзреНрдпрд╛рди рджрд┐рдпрд╛ред

рд╡рд┐рдХрд╛рд╕ рдореЛрдб



рд╡рд┐рдХрд╛рд╕ рдореЛрдб рдореЗрдВ, рдбреЗрдореЛ рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдПрдХ рдЕрд▓рдЧ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдерд╛ред

  • DIS рдХреЛ рдирд┐рд╡рд╛рд╕реА TSR рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдПрдХ рдЕрд╡рд░реЛрдз рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ 0cfhред
  • рдмреВрдЯрд▓реЛрдбрд░ рдиреЗ 21hрдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреЛрд▓рдиреЗ, рдкрдврд╝рдиреЗ, рдЦреЛрдЬрдиреЗ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреАрдУрдПрд╕ рд░реБрдХрд╛рд╡рдЯ рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ ред

рдЗрд╕ DEV рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдн рд╣реИрдВ:

  • рдкреНрд░рддреНрдпреЗрдХ рдХреЛрдбрд░ рдФрд░ рдХрд▓рд╛рдХрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╛рдХреА рдЯреАрдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ред
  • рдХрд┐рд╕реА рднреА рд╕рдордп рдкреВрд░реНрдг рдбреЗрдореЛ рдХреЛ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ SECOND.EXE(рд╕рднреА EXE рдХреЛ рдЕрдВрдд рддрдХ рдЬреЛрдбрд╝рдХрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛ 021hрдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рд╕реЗ DOS рдЗрдВрдЯрд░рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред

рдЙрддреНрдкрд╛рджрди (рдбреЗрдореЛ рдореЛрдб)



рдЙрддреНрдкрд╛рджрди рдореЛрдб рдореЗрдВ, рдЫреЛрдЯреЗ SECOND.EXE(рдмреВрдЯрд▓реЛрдбрд░ рд╡рд╛рд▓реЗ), DIS, рдФрд░ рдЕрд▓рдЧ EXEs рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдореЛ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдПрдХ рдореЛрдЯреА рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ SECOND.EXEред

  • рдЬрд┐рд▓реЗ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдЕрднреА рднреА рдмрд╛рдзрд┐рдд рдерд╛ 0fchред
  • DOS 21h рдЗрдВрдЯрд░рдкреНрдЯ API рдХреЛ рдЕрдкрдиреЗ рдлреНрдпреВрдЪрд░ рдХреНрд░реВ рд░реВрдЯреАрди рджреНрд╡рд╛рд░рд╛ рдкреИрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдПрдХ рдмрдбрд╝реА рдлрд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рд╕реЗ рдлрд╛рдЗрд▓ рдЦреЛрд▓рддреЗ рд╣реИрдВ SECOND.EXEред

рдЗрд╕ PROD рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓реЛрдб рд╕рдордп рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдлрд╛рдпрджрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдпрд╛ рд▓реЛрдбрд┐рдВрдЧ рдкрд╛рд░реНрдЯ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, DEV рд╕реЗ PROD рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред

рднрд╛рдЧ 5: рдЕрд▓рдЧ рднрд╛рдЧ


рджреВрд╕рд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рджреГрд╢реНрдп рдкреНрд░рднрд╛рд╡реЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдбреЙрд╕ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╣реИред рдЙрдиреНрд╣реЗрдВ PART рдФрд░ рдЙрди рд╕рднреА рдХреЛ 23 рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рд╕рдорд╛рдзрд╛рди рдХреЛ рддреЗрдЬреА рд╕реЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрд┐рдВрдЧ, рд╕рдорд╛рдирд╛рдВрддрд░ рд╡рд┐рдХрд╛рд╕ (рдХреНрдпреЛрдВрдХрд┐ FC рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдЙрдкрдХрд░рдг рдирд╣реАрдВ рдерд╛) рдФрд░ рднрд╛рд╖рд╛рдУрдВ (рдПрдПрд╕рдПрдо, рд╕реА, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкрд╛рд╕реНрдХрд▓ рд╕реНрд░реЛрдд рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ) рдХрд╛ рдореБрдлреНрдд рд╡рд┐рдХрд▓реНрдк рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред

рдЕрд▓рдЧ рднрд╛рдЧ


рдЗрдВрдЬрди рдкрд╛рд░реНрдЯ рдХреЛрдб: U2.ASM рдореЗрдВ рд╕рднреА PART / EXE рдХреА рд╕реВрдЪреА рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ ред рдпрд╣рд╛рдБ рд╕рднреА 23 рднрд╛рдЧреЛрдВ рдХрд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд╛рдо рдмрд╣реБрдд рднреНрд░рд╛рдордХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ)

рд╢реАрд░реНрд╖рдХрдирд┐рд╖реНрдкрд╛рджрдиреАрдп рдлрд╛рдЗрд▓рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдмрджрд▓рдиреЗрд╡рд╛рд▓рд╛рд╕реНрдХреНрд░реАрдирд╢реЙрдЯрд╕реНрд░реЛрдд
STARTMUS.EXEрдореБрдЦреНрдп / STARTMUS.C
START.EXEрдЬрдВрдЧрд▓ рдХреА рдЖрдЧрд╕реНрдЯрд╛рд░реНрдЯ / MAIN.c
рдЫрд┐рдкрд╛ рд╣реБрдЖ рднрд╛рдЧDDSTARS.EXEрдЬрдВрдЧрд▓ рдХреА рдЖрдЧDDSTARS / STARS.ASM
рдЕрд▓реНрдХрдХрдЯреЗрд╕реНрдЯ рдЖрдИALKU.EXEрдЬрдВрдЧрд▓ рдХреА рдЖрдЧALKU / MAIN.C
рдЕрд▓реНрдХрдХрдЯреЗрд╕реНрдЯрд┐рдЯ IIU2A.EXEрдкреАрдПрд╕рдЖрдИVISU / C / CPLAY.C
Alkutekstit IIIPAM.EXETRUG / WILDFIREPAM /
BEGLOGO.EXEрдмреАрдИрдЬреА / рдмреАрдИрдЬреАред рд╕реА
GlenzGLENZ.EXEрдкреАрдПрд╕рдЖрдИGLENZ /
DottitunneliTUNNELI.EXEрд▓рдХрдбреА рдХреА рдбрд▓рд┐рдпрд╛TUNNELI / TUN10.PAS
рдЯреЗрдХреНрдиреЛTECHNO.EXEрдкреАрдПрд╕рдЖрдИрддрдХрдиреАрдХреА / KOEA.ASM
PanicfakePANICEND.EXEрдкреАрдПрд╕рдЖрдИрдШрдмрдбрд╝рд╛рд╣рдЯ
Vuori-рдкреБрд╕реНрддрдХMNTSCRL.EXEрд╡рди / READ2.PAS
рд░реЗрдЧрд┐рд╕реНрддрд╛рди рдХреЗ рд╕рдкрдиреЗ рдХреЗ рд╕рд┐рддрд╛рд░реЗDDSTARS.EXEрд▓рдХрдбреА рдХреА рдбрд▓рд┐рдпрд╛
рд▓реЗрдВрд╕рдкреАрдПрд╕рдЖрдИ
RotazoomerLNS рдФрд░ ZOOM.EXEрдкреАрдПрд╕рдЖрдИрд▓реЗрдВрд╕ /
рдкреНрд▓рд╛рдЬреНрдорд╛рдЬрдВрдЧрд▓ рдХреА рдЖрдЧ
PlasmacubePLZPART.EXEрдЬрдВрдЧрд▓ рдХреА рдЖрдЧPLZPART /
MiniVectorBallsMINVBALL.EXEрдкреАрдПрд╕рдЖрдИрдбреЙрдЯреНрд╕ /
PeilipalloscrollRAYSCRL.EXEрд▓рдХрдбреА рдХреА рдбрд▓рд┐рдпрд╛рдкрд╛рдиреА / DEMO.PAS
3 рдбреА рд╕рд╛рдЗрдирд╕рдлреАрд▓реНрдб3DSINFLD.EXEрдкреАрдПрд╕рдЖрдИCOMAN / DOLOOP.C
JellypicJPLOGO.EXEрдкреАрдПрд╕рдЖрдИJPLOGO / JP.C
рд╡реЗрдХреНрдЯрд░ рднрд╛рдЧ II 'U2E.EXEрдкреАрдПрд╕рдЖрдИVISU / C / CPLAY.C
рдХреИрдкреНрд╢рди / рдЖрднрд╛рд░
ENDLOGO.EXEEND / END.C
CRED.EXEрдЬрдВрдЧрд▓ рдХреА рдЖрдЧрдХреНрд░реЗрдбрд┐рдЯ / рдПрдордПрдЖрдИрдПрдирд╕реА
ENDSCRL.EXEENDSCRL / MAIN.C

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╡рд▓рдкрд░ рдХреА рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдереА, рдЬрд┐рд╕реЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ, рдЬрд╣рд╛рдЬреЛрдВ рдФрд░ рд╡рд┐рд╕реНрдлреЛрдЯреЛрдВ (Alkutekstit) рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рджреГрд╢реНрдп рдореЗрдВ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рдирд┐рд░рдВрддрд░ рдкреНрд░рднрд╛рд╡ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рддреАрди рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬреЛ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреА рдЧрдИ рд╣реИрдВ:

Alkutekstit (рдХреНрд░реЗрдбрд┐рдЯ) рдЕрдиреБрдХреНрд░рдо
WILDFIRE рджреНрд╡рд╛рд░рд╛ ALKUрдкреАрдПрд╕рдЖрдИ рджреНрд╡рд╛рд░рд╛ рдпреВ 2 рдПTRUG / WILDFIRE рджреНрд╡рд╛рд░рд╛ PAM

рд╕рдВрдкрддреНрддрд┐


рдЫрд╡рд┐ рдПрд╕реЗрдЯреНрд╕ ( .LBM) 90 рдХреЗ рджрд╢рдХ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд▓реЛрдХрдкреНрд░рд┐рдп рдмрд┐рдЯрдореИрдк рд╕рдВрдкрд╛рджрдХ, рдбрд┐рд▓рдХреНрд╕ рдкреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ ред рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд╡реЗ рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ PART рдХреЗ рдЕрдВрджрд░ рд╕рдВрдХрд▓рд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, exe рдлрд╝рд╛рдЗрд▓ рд╕рднреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рднреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреЛ рдЙрд▓рдЭрд╛рддрд╛ рд╣реИред

рд╢рд╛рдВрдд рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯреЛрдВ рдореЗрдВ рдирд╡реАрдирддрдо 3 рдбреА рджреГрд╢реНрдп рд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз CITY рдФрд░ SHIP рд╣реИрдВ :



рдЖрдВрддрд░рд┐рдХ рдЗрдХрд╛рдИ PART


рдЪреВрдБрдХрд┐ рд╡реЗ рд╕рднреА рдбреЙрд╕ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрдиреЛрдВ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдереЗ, рднрд╛рдЧ рдореЗрдВ, рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


рд╕реНрдореГрддрд┐ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдФрд░ рдЕрдиреНрдп рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдкрд░ MMU рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдкрдврд╝рд╛ ... рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрдореЛрд░реА рд╕реЗ рдЕрдирд▓реЛрдб рдерд╛ред

рд╡реАрдЬреАрдП рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдиреЗ рдЪрд╛рд▓ рдХреЗ рдЕрдкрдиреЗ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕рдХреЗ рд╕рдВрдХрд▓реНрдк рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЙрди рд╕рднреА рдореЗрдВ, рдореЛрдб 13h рдирд╣реАрдВ рдФрд░ рдореЛрдбрдПрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдмрд▓реНрдХрд┐ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдВрдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд╕рдВрд╢реЛрдзрд┐рдд рдореЛрдб 13 рдПрдЪ рдореЛрдбред SCRIPT рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдХреНрд╕рд░ 320x200 рдФрд░ 320x400 рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реЛрддрд╛ рд╣реИред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬрдм рдкрд╛рд░реНрдЯ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдкрдврд╝рдирд╛ рдПрдХ рдХрдард┐рди рдХрд╛рдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ: рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдЧрд┐рд░рддреА рд╣реИрдВред рд╢рд╛рдпрдж рдпрд╣ рднреАрдбрд╝ рдХреА рд╡рдЬрд╣ рд╕реЗ рд╣реБрдЖ рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ PART рдиреЗ рдЕрдкрдиреЗ рдбреЗрд╡рд▓рдкрд░ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ (рдпрд╛рдиреА, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдпрд╛ рдХреЛрдб рдХреА рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдХреЛрдИ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА), рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднреНрд░рдорд┐рдд рдерд╛:


рдкрд░рд┐рд╖реНрдХреГрдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рди рдХреЗрд╡рд▓ рдЪрд░ рдХрд╛ рднреА рдирд╛рдо рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ ( a, b, co[]...)ред рдпрджрд┐ рдХреЛрдб рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯреЛрдВ рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╣рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рддреЛ рдХреЛрдб рдЕрдзрд┐рдХ рдкрдардиреАрдп рд╣реЛрдЧрд╛ред рдирддреАрдЬрддрди, рдореИрдВрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреНрдпрд╛рджрд╛ рд╕рдордп рдирд╣реАрдВ рджрд┐рдпрд╛; рдЕрдкрд╡рд╛рдж U2A.EXE рдФрд░ U2E.EXE рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ 3D рдЗрдВрдЬрди рдерд╛ред

3 рдбреА рдЗрдВрдЬрди рджреВрд╕рд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛




рд╡реИрд╕реЗ рднреА, рдореИрдВрдиреЗ 3 рдбреА рдЗрдВрдЬрди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: U2A.EXEрдФрд░ U2E.EXEред

рд╕реНрд░реЛрдд рдХреЛрдб рд╕реА рдХреЛрдбрд╛рдВрддрд░рдХ-рдЕрдиреБрдХреВрд▓рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Gouro рднрд░рдг рдФрд░ рдЫрд╛рдпрд╛) рдХреЗ рд╕рд╛рде рд╣реИ:

  • CITY.C (рдореБрдЦреНрдп рдХреЛрдб)ред
  • VISU.C (рдкреБрд╕реНрддрдХрд╛рд▓рдп visu.lib)ред
  • AVID.ASM (рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЛрдбрд╛рдВрддрд░рдХ рд╡реАрдбрд┐рдпреЛ (рд╕рдлрд╛рдИ, рд╕реНрдХреНрд░реАрди рдХреЙрдкреА рдЖрджрд┐))ред
  • ADRAW.ASM (рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдФрд░ рдЯреНрд░рдВрдХрдЯрд┐рдВрдЧ рдХреЛ рдбреНрд░реЙ рдХрд░рдирд╛)ред
  • ACALC.ASM ( рдореИрдЯреНрд░реАрдЬрд╝ рдФрд░ рддреЗрдЬрд╝ рдкрд╛рдк / рдХреЙрд╕ рдЧрдгрдирд╛)ред


рдЗрди рдШрдЯрдХреЛрдВ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛рдлреА рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ: рдкреБрд╕реНрддрдХрд╛рд▓рдп VISUрд╕рднреА рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛: 3 рдбреАрдПрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕, рд╕рд╛рдордЧреНрд░реА рдФрд░ рдкреНрд░рд╡рд╛рд╣ (рдХреИрдорд░рд╛ рдФрд░ рдЬрд╣рд╛рдЬ рдЖрдВрджреЛрд▓рдиреЛрдВ)ред

рдЗрдВрдЬрди рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЫрд╛рдБрдЯрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдХрд▓рд╛рдХрд╛рд░ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдкреБрдирд░реНрд╡рд┐рдХрд╛рд╕ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╡реАрдЬреАрдП рдХреБрдВрдбреА рдЖрдкрдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ 4 рдкрд┐рдХреНрд╕реЗрд▓ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реИред

рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рддрдереНрдп: рдЗрдВрдЬрди рдПрдХ "рдкреБрд░рд╛рдиреЗ-рд╕реНрдХреВрд▓" рддрд░реАрдХреЗ рд╕реЗ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддрд╛ рд╣реИ: рд╕рд╛рдорд╛рдиреНрдп рд╕рдЬрд╛рддреАрдп 4x4 рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ 3 * 3 рд░реЛрдЯреЗрд╢рди рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдПрдХ рд╡рд┐рд╕реНрдерд╛рдкрди рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдЫрджреНрдо рдХреЛрдб рдореЗрдВ рдПрдХ рд╕рд╛рд░рд╛рдВрд╢ рд╣реИ:

      main(){

            scenem=readfile(tmpname);  // Load materials
            scene0=readfile(tmpname);  // Load animation

            for(f=-1,c=1;c<d;c++){  //Load objects
              sprintf(tmpname,"%s.%03i",scene,e);
              co[c].o=vis_loadobject(tmpname);
            }

            vid_init(1);
            vid_setpal(cp);

            for(;;){

                vid_switch();
                _asm mov bx,1   _asm int 0fch // waitb for retrace via copper simulator interrupt call 
                vid_clear();
                
                // parse animation stream, update objects
                for(;;){}

                vid_cameraangle(fov); // Field of vision

                // Calc matrices and add to order list (only enabled objects)
                for(a=1;ac<conum;a++) if(co[a].on) /* start at 1 to skip camera */
                    calc_applyrmatrix(o->r,&cam);

                // Zsort via Bubble Sort
                for(a=0;ac<ordernum;a++)
                    for(b=a-1;b>=0 && dis>co[order[b]].dist;b--)

                // Draw
                for(a=0;ac<ordernum;a++)
                    vis_drawobject(o);
              }
            }
            return(0);
     }

рдЖрдзреБрдирд┐рдХ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрдВрджрд░рдЧрд╛рд╣


рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЖрдзреБрдирд┐рдХ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдХреНрд▓рд╛рдЙрдбрд┐рдпреЛ рдорд╛рддреНрд╕реБрдУрдХрд╛ рдиреЗ рдПрд╕рдЖрд░-рдкреЛрд░реНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛ , рд▓рд┐рдирдХреНрд╕ рдФрд░ рдУрдкрдирдЬреАрдПрд▓ рдИрдПрд╕ 2.0 рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реА рдкреЛрд░реНрдЯ, рдЬреЛ рдЕрдм рддрдХ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реИред рдирд┐рдХ рдХреЛрд╡рд╛рдХреНрд╕ рдиреЗ PART PLZ рдкрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛, рдЗрд╕реЗ C (рдЕрдм рдпрд╣ sr-port рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ) рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░ рд▓рд┐рдпрд╛, рд╕рд╛рде рд╣реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рднреА :


All Articles