home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-03-11 | 153.7 KB | 4,072 lines |
- 0. ÅαÑñ¿ß½«ó¿Ñ................................................... 1
- 1. çáΘ¿Γá «Γ ¬«»¿α«óá¡¿∩, «ß¡«óá¡¡á∩ ¡á ¬½ετÑó«¼ ñ¿ß¬Ñ........... 1
- 1.1 MFM ºá»¿ß∞ ñá¡¡δσ ú¿í¬«ú« ñ¿ß¬á............................. 1
- 1.1.1 Éáºñѽѡ¿Ñ ñó«¿τ¡δσ αáºα∩ñ«ó............................. 2
- 1.1.2 Å«½Ñ ß¿¡σα«¡¿ºáµ¿¿ ¿ íá⌐Γ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá................. 2
- 1.1.3 Å«½¡δ⌐ Σ«α¼áΓ ñ«α«ª¬¿.................................... 3
- 1.2 è«¡Γα«½½Ñα ú¿í¬«ú« ñ¿ß¬á INTEL 8272A........................ 3
- 1.2.1 ÉÑú¿ßΓαδ 8272A........................................... 4
- 1.2.2 Äíº«α ¬«¼á¡ñ 8272A....................................... 4
- 1.2.3 Ä»¿ßá¡¿Ñ ¬«¼á¡ñ ¬«¡Γα«½½Ñαá 8272A........................ 7
- 1.2.4 è«¡Γα«½½Ñα ú¿í¬«ú« ñ¿ß¬á AT.............................. 10
- 1.2.5 "ì«α¼á½∞¡δÑ" Σ«α¼áΓδ ñ¿ß¬ÑΓδ PC.......................... 11
- 1.3 滫߫í óαѼ∩¡Ñºáó¿ß¿¼«⌐ ºáΘ¿Γδ.............................. 12
- 1.3.1 ä«»«½¡¿Γѽ∞¡δÑ ¿½¿ «ΓßπΓßΓóπεΘ¿Ñ ßÑ¬Γ«αá................ 12
- 1.3.2 æ½áíδÑ ñó«¿τ¡δÑ αáºα∩ñδ.................................. 13
- 1.3.3 äá¡¡δÑ ó »α«¼ÑªπΓ¬Ñ...................................... 13
- 1.3.4 æÑ¬Γ«αá íѺ ¼ÑΓ¬¿ áñαÑßá ñá¡¡δσ.......................... 14
- 1.3.5 æÑ¬Γ«αá íѺ áñαÑß¡«⌐ ¼ÑΓ¬¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá........ 14
- 1.3.6 æÑ¬Γ«αá ß »½«σ«⌐ áñαÑß¡«⌐ ¼ÑΓ¬«⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá.. 15
- 1.3.7 Å«½Ñ ñá¡¡δσ, »ÑαÑñáóáѼ«Ñ »« áñαÑß¡«⌐ ¼Ñ⪥ ¿¡ñѬßá...... 15
- 1.3.8 î¡«ú«ß¬«α«ßΓ¡δÑ ñ«α«ª¬¿.................................. 16
- 1.3.9 ä«ßΓπ» ¬ ñá¡¡δ¼ τÑαѺ »α«¼ÑªπΓ«¬......................... 16
- 1.3.10 æπ¼áßΦÑñΦ¿Ñ ¿ñÑ¿........................................ 17
- 1.4 Äß¡«óá¡¡δÑ ¡á Γá⌐¼ÑαÑ ß»«ß«íδ ºáΘ¿Γδ........................ 17
- 1.4.1 Å«α∩ñ«¬ ¬«¡Γα«½∩ ßÑ¬Γ«α«ó................................ 17
- 1.4.2 꺼ÑαÑ¡¿Ñ ߬«α«ßΓ¿ »ÑαÑß佬¿ ñá¡¡δσ...................... 17
- 1.5 çáΘ¿Γá, «ß¡«óá¡¡á∩ ¡á ߻ѵ¿á½∞¡δσ á»»áαáΓ¡δσ ßαÑñßΓóáσ...... 18
- 1.5.1 î«ñ¿Σ¿µ¿α«óá¡¡δÑ MFM-Σ«α¼áΓδ............................. 18
- 1.5.2 ÅÑαÑαẼÑΘÑ¡¡δÑ ñ«α«ª¬¿ ñá¡¡δσ........................... 18
- 1.5.3 ìÑßΓá¡ñáαΓ¡δÑ ß¬«α«ßΓ¿ »ÑαÑß佬¿......................... 18
- 1.6 Åα¿¼Ñαδ ßσѼ ºáΘ¿Γδ......................................... 19
- 1.6.1 Å«¼«Θ¡¿¬, τπóßΓóπεΘ¿⌐ IBM................................ 19
- 1.6.2 SuperLok................................................. 19
- 1.6.3 Cops CopyLock II......................................... 20
- 1.6.4 Ö¿Γ PC................................................... 20
- 2. çáΘ¿Γá, «ß¡«óá¡¡á∩ ¡á ªÑßΓ¬«¼ ñ¿ß¬Ñ........................... 21
- 2.1 çáΘ¿Γá ¡á πα«ó¡Ñ τ¿»á....................................... 21
- 2.2 çáΘ¿Γá ¡á πα«ó¡Ñ BIOS....................................... 23
- 2.2.1 꺼ѡѡ¿∩ ¿¡ΓÑ૨óá...................................... 23
- 2.2.2 꺼ѡѡ¡δÑ ¡«¼Ñαá ßÑ¬Γ«αá................................ 24
- 2.2.3 ìѿ߻«½∞ºπѼδÑ ñ¿ß¬«óδÑ «í½áßΓ¿.......................... 24
- 2.3 çáΘ¿Γá ¡á πα«ó¡Ñ DOS........................................ 24
- 2.3.1 çáó¿ß¿¼«ßΓ∞ «Γ ¡«¼Ñαá ¬½áßΓÑαá........................... 24
- 2.3.2 ìѿ߻«½∞ºπѼδÑ (ºáαѺÑαó¿α«óá¡¡δÑ) ñ¿ß¬«óδÑ «í½áßΓ¿...... 25
- 2.3.3 ìѿ߻«½∞ºπѼδÑ («¬απú½Ñ¡¡δÑ ñ« αẼÑαá ¬½áßΓÑαá)......... 25
- 3. æ¿ßΓÑ¼á ºáΘ¿Γδ ¡á «ß¡«ó¡«⌐ »½áΓÑ ¿ ß¿ßΓÑ¼Ñ BIOS.............. 25
- 3.1 滫߫í, «ß¡«óá¡¡δ⌐ ¡á ñá¡¡δσ................................ 25
- 3.2 滫߫í, «ß¡«óá¡¡δ⌐ ¡á óαѼѡ¿............................... 25
- 4. Åα¿½«ªÑ¡¿Ñ A. Åα«ßΓá∩ »α«úαá¼¼á 8272A......................... 26
- 5. Åα¿½«ªÑ¡¿Ñ B. Åα«ßΓá∩ »α«úαá¼¼á ΓÑßΓ¿α«óá¡¿∩ HDC.............. 46
- 6. Åα¿½«ªÑ¡¿Ñ C. èᬠóδ∩ß¡¿Γ∞ ¡«¼Ñα ¬½áßΓÑαá..................... 55
- 7. Åα¿½«ªÑ¡¿Ñ D. ä«ßΓπ» ¬ σó«ßΓπ Σá⌐½á........................... 60
- 8. Åα¿½«ªÑ¡¿Ñ E. èᬠ«Γ½¿τáΓ∞ «ß¡«ó¡δÑ »½áΓδ..................... 60
-
- 0. ÅαÑñ¿ß½«ó¿Ñ
-
- æ½ÑñπεΘÑÑ «íßπªñÑ¡¿Ñ »α«í½Ñ¼ ºáΘ¿Γδ ¬«»¿¿ »«τΓ¿ »«½¡«ßΓ∞ε íếαπ-
- ÑΓß∩ ¡á ¡áΦ¿σ ß«íßΓóÑ¡¡δσ «»δΓáσ ß ºáΘ¿ΘÑ¡¡δ¼ «Γ ¬«»¿α«óá¡¿∩ »α«ú-
- αá¼¼¡δ¼ «íÑß»ÑτÑ¡¿Ñ¼ PC ¿ ½¿τ¡δ¼¿ ¬«¡Γá¬ΓἿ ¡áΦ¿¼¿ ¬«½½ÑúἿ. æ½Ñ-
- ñ«óáΓѽ∞¡«, »α¿óÑñÑ¡¡δÑ ºñÑß∞ Σá¬Γδ ¡Ñ ¼«úπΓ αáßß¼áΓα¿óáΓ∞ß∩ ¬á¬
- áíß«½εΓ¡á∩ ¿ßΓ¿¡á (¿½¿ ¿ßΓ¿¡á ó««íΘÑ). ¥Γ«Γ ñ«¬π¼Ñ¡Γ ¡Ñ απ¬«ó«ñßΓó«
- ¡á αáºαáí«Γ¬Ñ ßσѼ ºáΘ¿Γδ ¬«»¿¿, ¡« ¬αáΓ¬«Ñ óóÑñÑ¡¿Ñ ó »α«í½Ñ¼π.
- èΓ«-½¿í«, ¿ß»«½∞ºπεΘ¿⌐ φëà ñ«¬π¼Ñ¡Γ ¿½¿ »«ßΓáó½∩ѼδÑ ß ¡¿¼ »α¿¼Ñαδ
- ñ½∩ αáºαáí«Γ¬¿ »α«úαá¼¼¡δσ ¿½¿ á»»áαáΓ¡δσ ßαÑñßΓó ºáΘ¿Γδ «Γ ¬«»¿α«-
- óá¡¿∩ íπñÑΓ ¡áαπΦáΓ∞ ½¿µÑ¡º¿«¡¡«Ñ ß«ú½áΦÑ¡¿Ñ.
- ì¿¬á¬¿Ñ á߻ѬΓδ ºáΘ¿Γδ «Γ ¬«»¿α«óá¡¿∩ ºñÑß∞ ¡Ñ ߬αδóáεΓß∩. Äñ¡á-
- ¬«, óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ φΓ¿ ñá¡¡δÑ Γ«½∞¬« ß«ú½áß¡« ºá¬«¡π. àß½¿
- ¡ÑΓ ºá¬«¡á « »α«úαá¼¼¡«¼ «íÑß»ÑτÑ¡¿¿ ¥éî (¬á¬ ó æ«óÑΓ߬«¼ æ«εºÑ), óδ
- ñ«½ª¡δ óßÑúñá απ¬«ó«ñßΓó«óáΓ∞ß∩ ¼«αá½∞¡δ¼¿ ß««íαáªÑ¡¿∩¼¿. îδ ¡Ñ
- ¡ÑßѼ «ΓóÑΓßΓóÑ¡¡«ßΓ∞ ºá ½εí«Ñ ¡Ñ»«ñσ«ñ∩ΘÑÑ »α¿¼Ñ¡Ñ¡¿Ñ φΓ«ú« ñ«¬π-
- ¼Ñ¡Γá ¿ »«ßΓáó½∩Ѽδσ ß ¡¿¼ »α«úαá¼¼.
- éδ πó¿ñ¿ΓÑ, τΓ« »α¿¼Ñαδ ºáΘ¿Γδ ¡Ñ߬«½∞¬« ¼á½«τ¿ß½Ñ¡¡δ ¿ ¡Ñ óßÑúñá
- ß«óαѼѡ¡δ. (ìá»α¿¼Ñα, ºá¼«¬ »áαώѽ∞¡«ú« »«αΓá - ó ¡áßΓ«∩ΘÑ óαѼ∩
- ¡á¿í«½ÑÑ »«»π½∩α¡«Ñ πßΓα«⌐ßΓó« ºáΘ¿Γδ - ¡Ñ αáßß¼áΓα¿óáÑΓß∩ ó««íΘÑ).
- Åα¿¡¿¼á∩ ó« ó¡¿¼á¡¿Ñ úÑ«úαáΣ¿τÑ߬«Ñ »«½«ªÑ¡¿Ñ ì«ó«ß¿í¿α߬á, ó φΓ«¼
- óα∩ñ ½¿ ÑßΓ∞ ¡áΦá ó¿¡á.
- ïεíá∩ αáí«Γá φΓ«ú« ó¿ñá óßÑúñá íếαπÑΓß∩ ¡á »«ññÑαª¬Ñ ñαπú¿σ φ¡-
- Γπº¿áßΓ«ó, »«Γ«¼π τΓ« ¡¿¬Γ« ¡Ñ ¼«ªÑΓ »α¿«íαÑßΓ¿ óßÑ (¿½¿ ¡Ñ¬«Γ«αδÑ,
- »«Γ«¼π τΓ« «¡¿ »α«ñáεΓß∩ ºá ΓóÑαñπε óá½εΓπ) ¡«óδÑ ºáΘ¿ΘÑ¡¡δÑ «Γ ¬«-
- »¿α«óá¡¿∩ »α«úαá¼¼δ. Å«φΓ«¼π îδ óδαáªáѼ ¡áΦπ ú½πí«¬πε í½áú«ñáα¡«ßΓ∞
- óßѼ, ¬Γ« «íÑß»Ñτ¿½ ¡áß ºáΘ¿ΘÑ¡¡δ¼ »α«úαá¼¼¡δ¼ «íÑß»ÑτÑ¡¿Ñ¼ PC.
-
- æÑαúÑ⌐ ÅáΦ¬«ó¿τ, ì«ó«ß¿í¿α߬ 06 êε¡∞ 1991
-
-
- 1. çáΘ¿Γá «Γ ¬«»¿α«óá¡¿∩, «ß¡«óá¡¡á∩ ¡á ¬½ετÑó«¼ ñ¿ß¬Ñ
-
- ¥Γ«Γ Γ¿» (¿½¿, ߬«αÑÑ, Γ¿»δ) ºáΘ¿Γδ ¿¼ÑÑà ëà ªÑ ßá¼δ⌐ ó«ºαáßΓ
- ¬á¬ ¿ ßá¼ PC. â«ñδ αáºó¿Γ¿∩ ¿ ß½«ª¡δÑ á»»áαáΓ¡δÑ ßαÑñßΓóá ú¿í¬«ú«
- ñ¿ß¬á óδºδóáεΓ »«∩ó½Ñ¡¿Ñ ¼¡«ú«τ¿ß½Ñ¡¡δσ ¼ÑΓ«ñ«ó ºáΘ¿Γδ. ò«Γ∩ ¡Ññáó¡«
- »«∩ó¿½ß∩ ¼ÑΓ«ñ ºá¼¬á »áαώѽ∞¡«ú« »«αΓá, ¼ÑΓ«ñ¿¬á ¬½ετÑó«ú« ñ¿ß¬á
- ¬áªÑΓß∩ Γαáñ¿µ¿«¡¡«⌐, τΓ« «íπß½«ó½Ñ¡«, »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ, ñóπ¼∩ »αÑ¿-
- ¼πΘÑßΓóἿ. é«-»Ñαóδσ, ¬½ετÑó«⌐ ñ¿ß¬ ¼«ªÑΓ «ñ¡«óαѼѡ¡« ¿ß»«½∞º«-
- óáΓ∞ß∩ ¬á¬ ñ¿ßΓα¿íπΓ¿ó¡δ⌐ ñ¿ß¬ ¿ ó«-óΓ«αδσ, φΓ«Γ Γ¿» ºáΘ¿Γδ «τÑ¡∞
- ñÑΦÑóδ⌐ (¡«, ΓѼ ¡Ñ ¼Ñ¡ÑÑ, ¼á½« τπóß¿Γó¿Γѽ∞¡δ⌐ ¬ 󺽫¼π). Æá¬, ¬½ε-
- τÑóδÑ ñ¿ß¬¿ ÑΘÑ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ Φ¿α«¬« αáß»α«ßΓαá¡∩Ѽ«ú«
- »α«úαá¼¼¡«ú« «íÑß»ÑτÑ¡¿∩ »Ñαß«¡á½∞¡«ú« ¿ß»«½∞º«óá¡¿∩. Å«-¼«Ñ¼π, ó
- æææÉ »αÑ«í½áñáÑΓ ¬½ετÑóá∩ ºáΘ¿Γá.
- ùΓ«íδ »«¡∩Γ∞ ß»«ß«í ºáΘ¿Γδ ¬«¡Γα«½½Ñαá ú¿í¬«ú« ñ¿ß¬á (FDC), ¡πª¡«
- º¡áΓ∞ «ß¡«ó¡δÑ ñá¡¡δÑ ¿ «»Ñαᵿ¿ FDC. äáóá⌐ΓÑ ΓÑ»Ñα∞ αáßß¼«Γα¿¼ ¿σ.
- (Åα¿¼Ñτá¡¿Ñ: Éáºñѽδ 1.1 ¿ 1.2 ú½áó¡δ¼ «íαẫ¼ íếαπεΓß∩ ¡á ñ«¬π-
- ¼Ñ¡Γáσ Σ¿α¼δ INTEL "ê¡Γѽ½Ñ¬Γπá½∞¡á∩ ß¿ßΓѼá íáºδ ñá¡¡δσ, ¿ß»«½∞ºπε-
- Θá∩ 8272 ","8272 ¬«¡Γα«½½Ñα ú¿í¬«ú« ñ¿ß¬á «ñ¿¡áα¡«⌐/ñó«⌐¡«⌐ »½«Γ-
- ¡«ßΓ¿ ", "8272A ¬«¡Γα«½½Ñα ú¿í¬«ú« ñ¿ß¬á «ñ¿¡áα¡«⌐/ñó«⌐¡«⌐ »½«Γ-
- ¡«ßΓ¿").
-
- 1.1 MFM ºá»¿ß∞ ñá¡¡δσ ú¿í¬«ú« ñ¿ß¬á
-
- ö«α¼áΓ ¿º¼Ñ¡∩Ѽ«⌐ τáßΓ«Γ¡«⌐ ¼«ñπ½∩µ¿¿ (MFM) ú¿í¬«ú« ñ¿ß¬á
- »αÑñßΓáó½Ñ¡ ó ß¿ßΓÑ¼Ñ IBM 34 ¿ τáßΓ« ¡áºδóáÑΓß∩ "ñó«⌐¡«⌐ »½«Γ¡«ßΓ∞ε
- ºá»¿ß¿". ÆÑନ¡ " «ñ¿¡áα¡á∩ »½«Γ¡«ßΓ∞ ºá»¿ß¿" ß««ΓóÑΓßΓóπÑΓ «íδτ¡«⌐
- τáßΓ«Γ¡«⌐ ¼«ñπ½∩µ¿¿ Σ«α¼áΓá IBM 3740 (FM), ¬«Γ«αδ⌐ ¿ß»«½∞º«óá½ 4
- ¼¬ß, τΓ«íδ ºá»¿ßáΓ∞ «ñ¿¡ í¿Γ ñá¡¡δσ. Äα¿ú¿¡á½ MFM ºá»¿ßδóáÑΓ «ñ¿¡
- í¿Γ ó 2-¼¬ß ∩τÑ⌐¬π, ¡« ñ½∩ »∩Γ¿ñε⌐¼«óδσ ñ¿ß¬ÑΓ IBM PC ¿ß»«½∞º«óá½áß∞
- 4-¼¬ß ∩τÑ⌐¬á. æ½Ññ«óáΓѽ∞¡«, íÑßΣ«α¼áΓ¡δ⌐ αẼÑα «ñ¡«⌐ ñ«α«ª¬¿ íπñÑΓ
- 6.1 èü. Æá¬ ¡áºδóáѼδÑ ñ¿ß¬¿ PC "óδß«¬«⌐ »½«Γ¡«ßΓ¿" »α«ßΓ« óδ»«½¡∩εΓ
- 2-¼¬ß í¿Γ«óπε ∩τÑ⌐¬π «α¿ú¿¡á½∞¡«⌐ MFM-߻ѵ¿Σ¿¬áµ¿¿.
-
- - 2 -
-
- 1.1.1 Éáºñѽѡ¿Ñ ñó«¿τ¡δσ αáºα∩ñ«ó
-
- çỿß∞ ñá¡¡δσ ó Σ«α¼áΓÑ FM »α«ßΓá∩: ¡áτὫ ¬áªñ«ú« «ñ¡«αáºα∩ñ¡«ú«
- αÑú¿ßΓαá «»αÑñѽ∩ÑΓß∩ Γᬠ¡áºδóáÑ¼δ¼ í¿Γ«¼ ß¿¡σα«¡¿ºáµ¿¿, ¿ Σá¬Γ¿-
- τÑ߬¿Ñ ñá¡¡δÑ ºá»¿ßá¡δ ó µÑ¡ΓαÑ ¬áªñ«⌐ ∩τÑ⌐¬¿ (í¿Γ ñá¡¡δσ) (æ¼. α¿ß.
- 1.1.1a ). Æá¬á∩ ¼ÑΓ«ñ¿¬á »«ºó«½∩ÑΓ »α«ßΓ« αẽ¿τáΓ∞ í¿Γδ, ¡« τáßΓ«Γ-
- ¡δÑ ºáΓαáΓδ ó«ºαáßΓáεΓ óñó«Ñ, Γᬠ¬á¬ ¡Ñ«íσ«ñ¿¼« ß«σαá¡∩Γ∞ ñá¡¡δÑ.
- Äñ¡á¬«, »«½¡«Ñ πñá½Ñ¡¿Ñ í¿Γ«ó ß¿¡σα«¡¿ºáµ¿¿ óδºδó«óÑΓ »«∩ó½Ñ¡¿Ñ
- í«½∞Φ«ú« τ¿ß½á ¡ÑαáßΦ¿α«óá¡¡δσ ¡π½Ñóδσ í¿Γ«ó ¿º-ºá »α«¿ºó«½∞¡δσ ¿º-
- ¼Ñ¡Ñ¡¿⌐ ߬«α«ßΓ¿ óαáΘÑ¡¿∩ ñ¿ß¬á ¿ úÑ¡ÑαáΓ«αá ¬«Γα«½½Ñαá.
-
- │ ┌┐ ┌┐ │ ┌┐ │
- │ ││ ││ │ ││ │
- │ ││ ││ │ ││ │
- ──────┼───────────────────────┼───────────────────────┼─────
- '1' '0'
- É¿ß. 1.1.1a FM-ºá»¿ß∞ ñá¡¡δσ.
-
- êº-ºá Γᬫú« ¡Ññ«ßΓáΓ¬á, ¡á¿í«½∞ΦÑÑ ¬«½¿τÑßΓó« í¿Γ«ó ó MFM ºá-
- »¿ßδóáÑΓß∩ ß½ÑñπεΘ¿¼ «íαẫ¼: í¿Γ ß¿¡σα«¡¿ºáµ¿¿ ºá»¿ßδóáÑΓß∩ ó ¡áτá-
- ½Ñ í¿Γ«ó«⌐ ∩τÑ⌐¬¿, Ñß½¿ ó »αÑñδñπΘÑ⌐ ¿ ΓѬπΘÑ⌐ ∩τÑ⌐¬Ñ ¡Ñ ºá»¿ßá¡δ
- í¿Γδ (æ¼. α¿ß. 1.1.1b). Æá¬«Ñ ¬«ñ¿α«óá¡¿Ñ ñѽáÑΓ αáºñѽѡ¿Ñ í¿Γ«ó
- α∩ñ«ó í«½ÑÑ Γαπñ¡«⌐ ºáñáτÑ⌐, ¡« »ÑαѼÑΘáÑΓ í¿Γδ ß¿¡σα«¡¿ºáµ¿¿ í½¿º¬«
- ¬ ¡áτá½π í¿Γ«ó«⌐ ∩τÑ⌐¬¿.
-
- │ |┌┐ │ |┌┐ │ | │ ┌┐ | │
- │ |││ │ |││ │ | │ ││ | │
- │ |││ │ |││ │ | │ ││ | │
- ──────┼───────────┼───────────┼───────────┼───────────┼─────
- '1' '1' '0' '0'
- É¿ß. 1.1.1b MFM-ºá»¿ß∞ ñá¡¡δσ.
-
- ïÑú¬« πó¿ñÑΓ∞, τΓ« º¡áτÑ¡¿Ñ ¿ FM- ¿ MFM-¬«ñ¿α«óá¡¿∩ ºáó¿ß¿Γ «Γ
- ¡áτá½∞¡«⌐ »«º¿µ¿¿ í¿Γ«ó«⌐ ∩τÑ⌐¬¿. ìá»α¿¼Ñα, Ñß½¿ ¼δ αẼÑßΓ¿¼ í¿Γδ,
- ¬á¬ »«¬áºá¡« »«ñτÑભπΓ묨 ΦΓα¿σ«ó묨 ½¿¡¿∩¼¿ ¡á α¿ß. 1.1.1b, »«ß½Ñ-
- ñ«óáΓѽ∞¡«ßΓ∞ "1100" ßΓá¡ÑΓ "0010". Å«φΓ«¼π, ñ½∩ «íÑ߻ѡ¿∩ «ñ¡«º¡áτ-
- ¡«ú« ñѬ«ñ¿α«óá¡¿∩, ¬áªñ«Ñ »«½Ñ ñá¡¡δσ ¡á ñ«α«ª¬Ñ ß«»α«ó«ªñáÑΓß∩ »«-
- ½Ñ¼ ß¿¡σα«¡¿ºáµ¿¿.
-
- 1.1.2 Å«½Ñ ß¿¡σα«¡¿ºáµ¿¿ ¿ íá⌐Γ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá
-
- MFM-»«½∩ ß¿¡σα«¡¿ºáµ¿¿ ß«ßΓ«∩Γ ¿º 96 í¿Γ«ó ¡π½∩ (Γ« ÑßΓ∞ , ∩τÑ⌐-
- ¬¿ ß í¿Γ«¼ ß¿¡σα«¡¿ºáµ¿¿) ¿ íѺ í¿Γ«ó ñá¡¡δσ), ß »«ß½ÑñπεΘ¿¼¿ ΓαѼ∩
- íá⌐ΓἿ A1h (10100001b). ìπ½ÑóδÑ í¿Γδ »«ºó«½∩εΓ »αáó¿½∞¡« ¡á⌐Γ¿
- ∩τÑ⌐¬π ñá¡¡δσ, ¿ A1 - ¿ñÑ¡Γ¿Σ¿µ¿α«óáΓ∞ ¡áτὫ Σá¬Γ¿τÑ߬¿σ íá⌐Γ«ó
- ñá¡¡δσ . ò«Γ∩ ó« óαѼ∩ Σ«α¼áΓ¿¼α«óá¡¿∩ ºá»¿ßδóáÑΓß∩ 12 ¡π½Ñóδσ íá⌐-
- Γ«ó, (φΓ« º¡áτÑ¡¿Ñ ¡Ñ ¼«ªÑΓ ¿º¼Ñ¡∩Γ∞ß∩ »α«úαá¼¼¡δ¼ «íÑß»ÑτÑ¡¿Ñ¼),
- Σá¬Γ¿τÑ߬¿ ¡πªÑ¡ Γ«½∞¬« 1 íá⌐Γ (8 í¿Γ«ó), τΓ«íδ ß¿¡σα«¡¿º¿α«óáΓ∞ í¿-
- Γ«óπε ∩τÑ⌐¬π. äαπú¿Ñ 11 ¡π½Ñóδσ íá⌐Γ«ó ¡πª¡δ "¡á óß∩¬¿⌐ ß½πτá⌐".
- FM-»«½∩ ß¿¡σα«¡¿ºáµ¿¿ »α«ßΓδ - «¡¿ ß«ßΓ«∩Γ ¿º 48 ¡π½Ñóδσ í¿Γ«ó
- ¡π½∩. (ìá»α«Γ¿ó, FDC ¡πªñ¡« 8 í¿Γ«ó ñ½∩ íѺ«»áß¡«ßΓ¿) .
- Éẽ¿τ¡δÑ »«½∩ ñá¡¡δσ (»«½∞º«óáΓѽ∞߬¿Ñ ¿ ñ«»«½¡¿Γѽ∞¡δÑ) ¼«úπΓ
- αẽ¿τáΓ∞ß∩ »« Ññ¿¡ßΓóÑ¡¡«¼π íá⌐Γπ ßαáºπ »«ß½Ñ »«½∩ ß¿¡σα«¡¿ºáµ¿¿.
- ¥Γ¿ íá⌐Γδ ¡Ñ ¼«úπΓ ß¼ÑΦ¿óáΓ∞ß∩ ß ñá¡¡δ¼¿ »«½∞º«óáΓѽ∩, ñáªÑ Ñß½¿
- »«ß½Ññ¡¿Ñ ß«ñÑαªáΓ Γ«τ¡πε »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ íá⌐Γ«ó ß¿¡σα«¡¿ºá-
- µ¿¿/¿ñÑ¡Γ¿Σ¿¬áΓ«αá, »«Γ«¼π τΓ« φΓ¿ íá⌐Γδ (¿ Γ«½∞¬« φΓ¿ íá⌐Γδ ) ¡Ñ
- ¿ß»«½∞ºπεΓ ßΓá¡ñáαΓ ß¿¡σα«¡¿º¿απεΘ¿σ í¿Γ«ó. è ß«ªá½Ñ¡¿ε , ¼δ ¿¼ÑѼ
- ¿¡Σ«α¼áµ¿ε «Γ¡«ß¿Γѽ∞¡« ß««ΓóÑΓßΓóπεΘ¿σ í¿Γ«ó ß¿¡σα«¡¿ºáµ¿¿ Γ«½∞¬«
- ñ½∩ FM-¬«ñ¿α«óá¡¿∩. üá⌐Γδ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá, »« óßÑ⌐ ó¿ñ¿¼«ßΓ¿, »α¿¼Ñ-
- ¡∩εΓß∩ Γá¬ªÑ ¿ ó MFM. (ÄΓ¼ÑΓ¿¼, τΓ« ó »«½Ñ ñá¡¡δσ »Ñαóδ¼ ºá»¿ßá¡
- ßΓáαΦ¿⌐ íá⌐Γ).
-
-
- - 3 -
- Ä»¿ßá¡¿Ñ íá⌐Γá ¿ñÑ¡Γ¿Σ¿¬áΓ«αá »«½∩ ß¿¡σα«¡¿ºáµ¿¿:
-
- FC D7 áñαÑß¡á∩ ¼ÑΓ¬á ¿¡ñѬßá
- FE C7 ¼ÑΓ¬á áñαÑßá ¿ñÑ¡Γ¿Σ¿¬áΓ«αá æÑ¬Γ«αá
- FB C7 ñá¡¡δÑ ßÑ¬Γ«αá
- F8 C7 πñá½Ñ¡¡δÑ ñá¡¡δÑ
- FE C7 ¿ñÑ¡Γ¿Σ¿¬áΓ«α ñÑΣÑ¬Γ¡«⌐ ñ«α«ª¬¿ IBM
-
- ò«Γ∩ ó ñ«¬π¼Ñ¡Γᵿ¿ Σ¿α¼δ INTEL »«½Ñ ß¿¡σα«¡¿ºáµ¿¿ óßÑúñá «Γ-
- ¡«ß∩Γ ¬ τáßΓ¿ »αÑñΦÑßΓóπεΘÑú« »α«¼ÑªπΓ¬á, ¼δ íπñѼ αáßß¼áΓα¿óáΓ∞ Ñú«
- ¬á¬ τáßΓ∞ »«ß½ÑñπεΘÑú« »«½∩ ñá¡¡δσ.
-
- 1.1.3 Å«½¡δ⌐ Σ«α¼áΓ ñ«α«ª¬¿
-
- Æ«τ¬á ßß佬¿ ñ½∩ óßÑσ ñ¿ß¬«óδσ «»Ñαᵿ⌐ - Σ¿º¿τÑ߬á∩ ¿¡ñѬߡá∩
- ¼ÑΓ¬á, ¬«Γ«αá∩ úÑ¡Ñα¿απÑΓß∩ ¿¡ñÑ¬ß¡δ¼ «ΓóÑαßΓ¿Ñ¼ ñ¿ß¬ÑΓδ. éÑß∞ Σ«α-
- ¼áΓ ñ«α«ª¬¿ ¡áτ¿¡áεΘ¿⌐ß∩ ß Σ¿º¿τÑ߬«⌐ ¿¡ñѬߡ«⌐ ¼ÑΓ¬¿ ¿ ¼«ªÑΓ íδΓ∞
- «»¿ßδóá¡ ß½ÑñπεΘ¿¼ «íαẫ¼:
- - ö¿º¿τÑ߬á∩ ¿¡ñѬߡá∩ ¼ÑΓ¬á
- - ÅαÑñ¿¡ñѬߡδ⌐ »α«¼ÑªπΓ«¬ (GAP 5)
- - ê¡ñѬߡá∩ ¼ÑΓ¬á áñαÑßá (IAM)
- - ū߽ѿ¡ñѬߡδ⌐ »α«¼ÑªπΓ«¬ (GAP 1)
- ä½∩ n «Γ 1 ñ« N-1, úñÑ N - τ¿ß½« ßÑ¬Γ«α«ó ¡á ñ«α«ª¬Ñ :
- - êñÑ¡Γ¿Σ¿¬áΓ«α ßÑ¬Γ«αá n
- - Åα«¼ÑªπΓ«¬ »«ß½Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá (GAP 2)
- - äá¡¡δÑ ßÑ¬Γ«αá n
- - Åα«¼ÑªπΓ«¬ »«ß½Ñ ñá¡¡δσ (GAP 3)
- ä½∩ »«ß½Ññ¡Ñú« ßÑ¬Γ«αá ñá¡¡δσ ¡á ñ«α«ª¬Ñ :
- - êñÑ¡Γ¿Σ¿¬áΓ«α ßÑ¬Γ«αá n
- - Åα«¼ÑªπΓ«¬ »«ß½Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá (GAP 2)
- - äá¡¡δÑ ßÑ¬Γ«αá n
- - ū߽Ññ¡¿⌐ »α«¼ÑªπΓ«¬ (GAP 4)
- ê¡ñѬߡá∩ ¼ÑΓ¬á áñαÑßá (¬«Γ«αá∩ ¡Ñ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ñαπú«⌐ µÑ½¿
- 8272A) ¿¼ÑÑΓ ¡Ñ߬«½∞¬« αẽ¿τ¡δσ »«½Ñ⌐ ß¿¡σα«¡¿ºáµ¿¿: ó¼ÑßΓ« A1h
- ¿ß»«½∞ºπÑΓß∩ C2h (11000010b), ºá ¬«Γ«αδ¼ ß½ÑñπÑΓ íá⌐Γ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá
- FCh (11111100b).
- Å«½Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá ß«ñÑαª¿Γ FEh ºá ¬«Γ«αδ¼ ß½ÑñπεΓ «ñ¡«-
- íá⌐Γ«óδÑ º¡áτÑ¡¿∩ C, H, R, N, úñÑ C - ¡«¼Ñα µ¿½¿¡ñαá, H - ¡«¼Ñα ú«-
- ½«ó¬¿, R - ¡«¼Ñαá ßÑ¬Γ«αá ¿ N - ¬«ñ αẼÑαá ßÑ¬Γ«αá. ¥Γ¿ íá⌐Γδ
- (ó¬½ετá∩ FEh ) ß«»α«ó«ªñáεΓß∩ 16-í¿Γ«ó«⌐ µ¿¬½¿τÑ߬«⌐ ¬«¡Γα«½∞¡«⌐
- ßπ¼¼«⌐ (CRC), ÉẼÑα ñá¡¡δσ »«½∞º«óáΓѽ∩ ó ß½ÑñπεΘѼ »«½Ñ ñá¡¡δσ ¼«-
- ªÑΓ óδτ¿ß½∩ÑΓß∩ ¬á¬ 128 * 2^N, Γ« ÑßΓ∞, N=0 «»αÑñѽ∩ÑΓ αẼÑα ñá¡¡δσ
- ó 128 íá⌐Γ«ó, N=1 - 256 íá⌐Γ«ó, N=2 - 512 íá⌐Γ«ó, ¿ Γᬠñá½ÑÑ.
- C=H=R=N=FFh «»αÑñѽ∩ÑΓ ñÑΣÑ¬Γ¡πε ñ«α«ª¬π IBM.
- Å«½Ñ äá¡¡δσ ß«ñÑαª¿Γ FBh, ºá ¬«Γ«αδ¼ ß½ÑñπεΓ 128 * 2^N íá⌐Γ ñá¡-
- ¡δσ »«½∞º«óáΓѽ∩ ¿ ñóá íá⌐Γá CRC. èᬠó ¿ñÑ¡Γ¿Σ¿¬áΓ«αÑ ßÑ¬Γ«αá, Γá¬
- ¿ ó »«½Ñ ñá¡¡δσ CRC óδτ¿ß½∩ÑΓß∩ »« Σ«α¼π½Ñ: x^16 +x^12+ x^5+1 ß ¡á-
- τá½∞¡δ¼ º¡áτÑ¡¿Ñ¼ FFh (¬á¬ óßÑúñá, ßΓáαΦ¿⌐ í¿Γ »Ñαóδ⌐) .
-
- 1.2 è«¡Γα«½½Ñα ú¿í¬«ú« ñ¿ß¬á INTEL 8272A
-
- Rumors ß««íΘáÑΓ, τΓ« »Ñαó«¡áτá½∞¡« PC FDC óδ»«½¡∩½ß∩ ¡á τ¿»Ñ
- INTEL 8272. è«¡Ñτ¡«, φΓ« ¼«ªÑΓ íδΓ∞ ½εí«⌐ ß«ó¼ÑßΓ¿¼δ⌐ »« óδó«ñá¼ τ¿»
- - 8272A, NEC µPD765, ¿ Γᬠñá½ÑÑ. îδ ¡¿¬«úñá ¡Ñ ó¿ñѽ¿ Γᬫú« PC,
- ΓᬠτΓ« îδ Γ«½∞¬« ¼«ªÑ¼ ß««íΘ¿Γ∞ «í φΓ«¼. Äñ¡á¬«, τΓ«íδ «íÑß»Ñτ¿Γ∞
- ß«ó¼ÑßΓ¿¼«ßΓ∞ »« αÑú¿ßΓαá¼ (σ«α«Φá∩ «ß«íÑ¡¡«ßΓ∞ !) ß »Ñαó묨 PC, óßÑ
- í«½∞Φ¿¡ßΓó« ß«óαѼѡ¡δσ ¬«¡Γα«½½Ñα«ó »«τΓ¿ «ñ¿¡á¬«ó« ñ½∩ »α«úαá¼-
- ¼¿ßΓá.
- 諼á¡ñδ óδ»«½¡∩εΓß∩ 8272A ó Γα¿ »«ß½Ññ«óáΓѽ∞¡δσ Σáºδ: Σáºπ ¬«-
- ¼á¡ñδ, Σáºπ óδ»«½¡Ñ¡¿∩ ¿ Σáºá αѺπ½∞ΓáΓá. é ΓÑτÑ¡¿Ñ Σáºδ ¬«¼á¡ñδ ûÅ
- ¿¡ßΓαπ¬Γ¿απÑΓ 8272A, τΓ« ¡πª¡« ñѽáΓ∞. é ΓÑτÑ¡¿Ñ Σáºδ óδ»«½¡Ñ¡¿∩ FDC
- óδ»«½¡∩ÑΓ ºá»αáΦ¿óáѼ«Ñ ñÑ⌐ßΓó¿Ñ. éßÑ »ÑαÑß佬¿ ñá¡¡δσ »«½∞º«óáΓѽ∩
- (Ñß½¿ «¡¿ ÑßΓ∞) »α«¿ºó«ñ∩Γß∩ ó ΓÑτÑ¡¿Ñ Σáºδ óδ»«½¡Ñ¡¿∩.
-
- - 4 -
- çá Σẫ⌐ óδ»«½¡Ñ¡¿∩ ß½ÑñπÑΓ Σẫá αѺπ½∞ΓáΓá, ¬«úñá FDC ó«ºóαá-
- ΘáÑΓ ñá¡¡δÑ ß«ßΓ«∩¡¿∩.
- é Γ« óαѼ∩ ¬á¬ FDC ºá»α«ßδ ñá¡¡δσ ó ΓÑτÑ¡¿Ñ ΣẠ¬«¼á¡ñδ ¿ αÑ-
- ºπ½∞ΓáΓá ¼«ú½¿ ºáñÑনóáΓ∞ß∩ ñ« íÑ߬«¡Ñτ¡«ßΓ¿ (ñá¡¡δÑ íπñπΓ ß«σαá-
- ¡∩Γ∞ß∩ ó ó¡πΓαÑ¡¡¿σ αÑú¿ßΓαáσ ¬«¡Γα«½½Ñαá 8272A) , óßÑ ºá»α«ßδ FDC ó
- ΓÑτÑ¡¿Ñ Σáºδ óδ»«½¡Ñ¡¿∩ ñ«½ª¡δ πñ«ó½ÑΓó«α∩Γ∞ß∩ ¡Ñ¼Ññ½Ñ¡¡«, ¿½¿ FDC
- íπñÑΓ úÑ¡Ñα¿α«óáΓ∞ «Φ¿í¬π «ª¿ñá¡¿∩ ¿ ºáóÑαΦ¿Γ «»Ñαᵿε. æΓα«ú« ú«ó«-
- α∩ , ºá»α«ß ñá¡¡δσ ¡Ñ ¼«ªÑΓ ºáñÑনóáΓ∞ß∩ ñ«½∞ΦÑ óαѼѡ¿ »ÑαÑß佬¿ 8
- í¿Γ«ó. æ½Ññ«óáΓѽ∞¡«, ¡á 360-Kü ñ¿ß¬«ó«ñÑ , ¬«Γ«αδ⌐ αáí«ΓáÑΓ ¡á 250K
- (1K ºñÑß∞ = 1000) í¿Γ ó ßѬπ¡ñπ (Kí«ñ), FDC íπñÑΓ »ÑαÑñáóáΓ∞ íá⌐Γ
- ñá¡¡δσ ¬áªñδÑ 32 µs ¿½¿ 31250 íá⌐Γ«ó ¡á ßѬπ¡ñπ.
- ò«Γ∩ ßá¼ 8272A ¼«ªÑΓ ñÑ⌐ßΓ«ó«áΓ∞ ¬á¬ ó αѪ¿¼Ñ »α∩¼«ú« ñ«ßΓπ»á ¬
- »á¼∩Γ¿ (DMA), Γᬠ¿ íѺ ¡Ñú«, Γ«½∞¬« «Γ¡«ß¿Γѽ∞¡« íδßΓαδ⌐ ûÅ ß»«ß«-
- íÑ¡ ¡á »ÑαÑñáτπ ñá¡¡δσ ß Γᬫ⌐ ߬«α«ßΓ∞ε. éδ»«½¡Ñ¡¿Ñ FDC ó αѪ¿¼Ñ
- ¡Ñ-DMA ¡á ñ¿ß¬áσ ñó«⌐¡«⌐ »½«Γ¡«ßΓ¿ ΓαÑíπÑΓ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ ûÅ 80286
- ß Γá¬Γ«ó«⌐ τáßëë⌐ 6 Mâµ, ó Γ« óαѼ∩, ¬á¬ ñ¿ß¬ÑΓá ß óδß«¬«⌐ »½«Γ-
- ¡«ßΓ∞ε AT íπñÑΓ ΓαÑí«óáΓ∞ óßÑ 10 îâµ.
-
- 1.2.1 ÉÑú¿ßΓαδ 8272A
-
- ù¿» 8272A ßó∩ºá¡ ß ûÅ τÑαѺ ñóá αÑú¿ßΓαá: ú½áó¡δ⌐ αÑú¿ßΓα ß«ßΓ«-
- ∩¡¿∩ (MSR) ¿ αÑú¿ßΓα ñá¡¡δσ (DR). MSR ñ«ßΓπ»Ñ¡ Γ«½∞¬« ñ½∩ τΓÑ¡¿∩. DR
- ¼«ªÑΓ τ¿ΓáΓ∞ß∩ ¿½¿ ºá»¿ßδóáΓ∞ß∩, τΓ« «»αÑñѽ∩ÑΓß∩ í¿Γ«¼ RQM MSR.
- ç¡áτÑ¡¿Ñ í¿Γ«ó ó MSR »α¿óÑñÑ¡« ¡á α¿ß. 1.2.1a.
-
- ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
- │ RQM │ DIO │ NDM │ CB │ D3B │ D2B │ D1B │ D0B │
- └──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┘
- │ │ │ │ │ │ │ └── Åα¿ó«ñ 0 ºá¡∩Γ
- │ │ │ │ │ │ └──────── Åα¿ó«ñ 1 ºá¡∩Γ
- │ │ │ │ │ └────────────── Åα¿ó«ñ 2 ºá¡∩Γ
- │ │ │ │ └──────────────────── Åα¿ó«ñ 3 ºá¡∩Γ
- │ │ │ └────────────────────────── FDC ºá¡∩Γ
- │ │ └──────────────────────────────── ¡Ñ-DMA αѪ¿¼
- │ └────────────────────────────────────── éó«ñ/óδó«ñ ñá¡¡δσ
- └──────────────────────────────────────────── çá»α«ß ¡á îáßΓÑαá
- É¿ß. 1.2.1a â½áó¡δ⌐ αÑú¿ßΓα ß«ßΓ«∩¡¿∩ 8272A.
-
- Éáºα∩ñδ DxB íπñπΓ πßΓá¡áó½¿óáΓ∞ß∩ ó 1, Γ«úñá ß««ΓóÑΓßΓóπεΘ¿⌐
- ñ¿ß¬«ó«ñ óδ»«½¡∩ÑΓ ¬«¼á¡ñπ πßΓá¡«ó¬¿ ¿½¿ »ÑαѬ὿íα«ó¬¿. ü¿Γ CB
- πßΓá¡áó½¿óáÑΓß∩, Γ«úñá FDC óδ»«½¡∩ÑΓ «»Ñαᵿε τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿. NDM
- πßΓá¡áó½¿óáÑΓß∩, ¬«úñá FDC ¡áσ«ñ¿Γß∩ ó ΣáºÑ óδ»«½¡Ñ¡¿∩ ¿ ºá»αÑΘÑ¡δ
- «»Ñαᵿ¿ DMA (φΓ« π¬áºδóáÑΓΓᬪÑ, τΓ« í«½∞ΦÑÑ ¬«½¿τÑßΓó« ñá¡¡δσ
- ñ«½ª¡δ »«ñáóáΓ∞ß∩ ¿½¿ τ¿ΓáΓ∞ ¿º DR). DIO íπñÑΓ Ññ¿¡¿µÑ⌐, Ñß½¿ ûÅ
- ñ«½ªÑ¡ τ¿ΓáΓ∞ ñá¡¡δÑ ¿º DRÇ ¿ ¡π½Ñ¼, Ñß½¿ ûÅ ñ«½ªÑ¡ »«ñáóáΓ∞ ñá¡¡δÑ
- ó DR. RQM = 1 π¬áºδóáÑΓ, τΓ« DR ú«Γ«ó »ÑαÑß½áΓ∞ ß½ÑñπεΘ¿⌐ íá⌐Γ. ìá»-
- αáó½Ñ¡¿Ñ »ÑαÑß佬¿ ºáó¿ß¿Γ «Γ º¡áτÑ¡¿∩ DIO.
- 8272A ß«σαá¡∩ÑΓ ΓѬπΘ¿⌐ ¡«¼Ñα µ¿½¿¡ñαá ó« ó¡πΓαÑ¡¡¿σ αÑú¿ßΓαáσ
- ñ½∩ ¬áªñ«ú« ñ¿ß¬«ó«ñá, ß«Ññ¿¡Ñ¡¡«ú« ß ¡¿¼. Æá¬ ¬á¬ ñ¿ß¬«ó«ñ ñ½∩ ú¿í-
- ¬¿σ ñ¿ß¬ÑΓ ¡Ñ ¼«ªÑΓ «Γ½¿τáΓ∞ «ñ¿¡ µ¿½¿¡ñα «Γ ñαπú«ú« (¬α«¼Ñ µ¿½¿¡ñαá
- 0), φΓ« ¡Ñ«íσ«ñ¿¼«, τΓ«íδ óδ»«½¡∩Γ∞ «»Ñαᵿ¿ πßΓá¡«ó¬¿, ¬«Γ«αδÑ
- Γαá¡ß½¿απεΓß∩ FDC ó ¿¼»π½∞ß Φáúá ñ¿ß¬«ó«ñá. ¥Γ¿ αÑú¿ßΓαδ «τ¿ΘáεΓß∩
- ßíα«ß«¼ FDC (¡« ñ¿ß¬«ó«ñ ú¿í¬«ú« ñ¿ß¬á ¡Ñ íπñÑΓ ó«ºóαáΘáΓ∞ß∩ ¡á ñ«-
- ᫪¬π 0 »α¿ ßíα«ßÑ).
- äαπú¿Ñ ó᪡δÑ ó¡πΓαÑ¡¡¿Ñ αÑú¿ßΓαδ ß«ñÑαªáΓ óαѼ∩ ߬«α«ßΓ¿ Φáúá,
- óδúαπº¬¿ ¿ ºáúαπº¬¿ ú«½«ó¬¿ (ß¼. ¬«¼á¡ñπ Ä»αÑñѽ¿Γ∞).
-
- 1.2.2 Äíº«α ¬«¼á¡ñ 8272A
-
- 諼á¡ñδ 8272A ¼«úπΓ íδΓ∞ αáºñÑ½Ñ¡δ ¡á Γα¿ úαπ»»δ: »ÑαÑß佬á ñá¡-
- ¡δσ »«½∞º«óáΓѽ∩, π»αáó½Ñ¡¿Ñ ñ¿¼¬«¼ ¿ ñ¿áú¡«ßΓ¿τÑ߬¿Ñ ßαÑñßΓóá. ÅÑ-
- αÑß佬á ñá¡¡δσ »«½∞º«óáΓѽ∩ ó¬½ετáÑΓ τΓÑ¡¿Ñ ñá¡¡δσ, τΓÑ¡¿Ñ πñá½Ñ¡¡δσ
- ñá¡¡δσ, ºá»¿ß∞ ñá¡¡δσ, ºá»¿ß∞ πñá½Ñ¡¡δσ ñá¡¡δσ ¿ Γα¿ ¬«¼á¡ñδ
-
- - 5 -
- »α«ß¼«Γαá: »α«ß¼«Γα ¡á αáó¡«, »α«ß¼«Γα ¡á ¼Ñ¡∞ΦÑ ¿½¿ αáó¡« ¿
- »α«ß¼«Γα ¡á í«½∞ΦÑú ¿½¿ αáó¡«. 諼á¡ñδ π»αáó½Ñ¡¿∩ ñ¿ß¬«¼ ó¬½ετá-
- ÑεΓ »ÑαѬ὿íα«ó¬π, πßΓá¡«ó¬π, τΓÑ¡¿Ñ ß«ßΓ«∩¡¿∩ ñ¿ß¬«ó«ñá, τΓÑ¡¿Ñ
- ß«ßΓ«∩¡¿∩ »αÑαδóá¡¿∩ ¿ Σ«α¼áΓ¿α«óá¡¿Ñ ñ«α«ª¬¿. 諼á¡ñδ τΓÑ¡¿∩ ¿ñÑ¡-
- Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá ¿ τΓÑ¡¿∩ ñ«α«ª¬¿ ¼«úπΓ αáßß¼áΓα¿óáΓ∞ß∩, ¬á¬ ñ¿áú-
- ¡«ßΓ¿¬á. éßÑ ¬«¼á¡ñδ ß ¡Ñαáß»«º¡áóáÑ¼δ¼ »Ñαóδ¼ íá⌐Γ«¼ íπñπΓ «íαáíá-
- ΓδóáΓ∞ß∩ ¬á¬ ¡Ññ«»πßΓ¿¼á∩ ¬«¼á¡ñá.
- 諼á¡ñδ 8272A ¼«ª¡« ½Ñú¬« ¿ñÑ¡Γ¿Σ¿µ¿α«óáΓ∞ ¼½áñΦ¿¼ »«½πíá⌐Γ«¼
- »Ñαó«ú« íá⌐Γá ¬«¼á¡ñδ - ß¼. Γáí½¿µπ 1.2.2 (σ«Γ∩ ¡Ñ¬«Γ«αδÑ ¿º Γᬿσ
- ¬«¼á¡ñ íπñπΓ ¡Ññ«»πßΓ¿¼δ¼¿).
-
- Æáí½¿µá 1.2.2 . 8272A è«ñδ «»Ñαᵿ¿ 8272Ç.
- X1 Åα«ß¼«Γα ¡á αáó¡«
- X2 ùΓÑ¡¿Ñ ñ«α«ª¬¿
- X3 Ä»αÑñѽ¿Γ∞
- X4 Ä»αÑñѽ¿Γ∞ ß«ßΓ«∩¡¿Ñ ñ¿ß¬«ó«ñá
- X5 çỿßáΓ∞ ñá¡¡δÑ
- X6 ù¿ΓáΓ∞ ñá¡¡δÑ
- X7 ÅαѬ὿íα«ó¬á
- ò8 Ä»α«ß¿Γ∞ ß«ßΓ«∩¡¿Ñ »αÑαδóá¡¿∩
- X9 çỿßδóáΓ∞ πñá½Ñ¡¡δÑ ñá¡¡δÑ ¿½¿ »α«ß¼«Γα ¡á ¼Ñ¡∞ΦÑ ¿½¿ αáó¡«
- XA ù¿ΓáΓ∞ ¿ñÑ¡Γ¿Σ¿¬áΓ«α
- XC ù¿ΓáΓ∞ πñá½Ñ¡¡δÑ ñá¡¡δÑ
- òC ö«α¼áΓ¿α«óáΓ∞ ñ«α«ª¬π ¿½¿ »α«ß¼«Γα ¡á í«½∞ΦÑ ¿½¿ αáó¡«
- XF ôßΓá¡«ó¬á
-
- â½áó¡á∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ óδ»«½¡Ñ¡¿∩ ¬«¼á¡ñδ 8272Ç ß«ßΓ«¿Γ ¿º
- ß½ÑñπεΘ¿σ Φáú«ó:
- 0. àß½¿ DMA íπñÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ó «»Ñαᵿ¿, »α«úαá¼¼¿απÑΓß∩ ¬á-
- ¡á½ 2 ¼¿¬α«ßσѼδ 8237A ñ½∩ αѪ¿¼á »ÑαÑß佬¿ «ñ¿¡«τ¡«ú« íá⌐Γá. (Åα¿-
- ¼Ñτá¡¿Ñ: ß¿ú¡á½ ßτÑΓτ¿¬á ΓÑନ¡á½á (TC) ¿º DMA íπñÑΓ óδºδóáΓ∞ ¡Ñ-
- »«ßαÑñßΓóÑ¡¡«Ñ ºáóÑαΦÑ¡¿Ñ FDC-«»Ñαᵿ⌐).
- 1. ä½∩ ¬áªñ«ú« íá⌐Γá ó ¬«¼á¡ñÑ ,ªñ¿ΓÑ, »«¬á í¿Γ RQM ¡Ñ ßΓá¡ÑΓ =
- 1, ºáΓѼ »α«óÑα∞ΓÑ DIO: º¡áτÑ¡¿Ñ 0 π¬áºδóáÑΓ, τΓ« FDC ú«Γ«ó »α¿¡∩Γ∞
- ¬«¼á¡ñπ, 1 «º¡áτáÑΓ, τΓ« óáΦá ¬«¼á¡ñá ¡Ñ αáß»«º¡á½áß∞ FDC (»«ß½Ññπε-
- ΘÑÑ τΓÑ¡¿Ñ ¿º DR íπñÑΓ ó«ºóαáΘáΓ∞ 80h) ¿½¿ τΓ« óδ πªÑ »«ñ὿ óßÑ
- ñá¡¡δÑ ó FDC (á ΓᬪÑ, τΓ« óáΦá ¬«¼á¡ñá ¡Ññ«»πßΓ¿¼á).
- àß½¿ óáΦá ¬«¼á¡ñá ¡Ñ ¿¼ÑÑΓ ΣẠóδ»«½¡Ñ¡¿∩ ¿ ¬«¡τá¡¿∩ (¡á»α¿¼Ñα,
- Ä»αÑñÑ½Γ¿Γ∞), óδ «ßΓá¡áó½¿óáÑΓÑß∞ ºñÑß∞.
- 2. àß½¿ óδ ºá»¿πßΓ¿½¿ FDC ó αѪ¿¼Ñ ¡Ñ-DMA ¿ ¬«¼á¡ñá »ÑαÑßδ½áÑΓ
- ñá¡¡δÑ ó ΓÑτÑ¡¿Ñ Σáºδ óδ»«½¡Ñ¡¿∩ (τΓÑ¡¿Ñ, ºá»¿ß∞, Σ«α¼áΓ¿α«óá¡¿Ñ),
- óδ ªñÑΓÑ, »«¬á í¿Γ NDM αáóÑ¡ ¡π½ε. è«úñá NDM ßΓá¡ÑΓ = 1, ñ½∩ ¬áªñ«ú«
- τΓ¿ΓáѼ«ú« ¿½¿ ºá»¿ßδóáѼ«ú« íá⌐Γá óδ ªñÑΓÑ πßΓá¡«ó¬¿ í¿Γá RQM, ¿
- Γ«úñá ºá»¿ßδóáÑÑ ß½ÑñπεΘ¿⌐ íá⌐Γ ó (¿½¿ τ¿ΓáÑΓÑ Ñú« ¿º) DR.
- àß½¿ óδ ¡Ñ ¿ß»«½∞ºπÑΓÑ »ÑαÑß佬π DMA-αѪ¿¼á (¿½¿ ¡Ñ »ÑαÑßδ½áÑΓÑ
- ñá¡¡δÑ ó««íΘÑ), óδ »α«ßΓ« »ÑαÑσ«ñ¿ΓÑ ¬ Φáúπ 3.
- 3. 諡ѵ Σáºδ óδ»«½¡Ñ¡¿∩ π¬áºδóáÑΓß∩ IRQ 6 (int 0eh). éδ ¼«ªÑΓÑ
- ¿½¿ αáºαÑΦ¿Γ∞ 8272A »αÑαδóá¡¿Ñ ¿ «í¡áαπª¿óáΓ∞ Ñú« ó óáΦÑ⌐ »«ñ»α«ú-
- αá¼¼Ñ «íαáí«Γ¬¿, ¿½¿ ¼«ªÑΓÑ »«ßΓ«∩¡¡« «»αáΦ¿óáΓ∞ αÑú¿ßΓα ºá»α«ßá
- »αÑαδóá¡¿∩ 8259A (IRR).
- àß½¿ ¬«¼á¡ñá ¡Ñ ¿¼ÑÑΓ Σáºδ óδ»«½¡Ñ¡¿∩ (Ä»α«ß¿Γ∞ ß«ßΓ«∩¡¿Ñ ñ¿ß¬«-
- ó«ñá), óδ »ÑαÑσ«ñ¿ΓÑ ¬ Φáúπ 4.
- 4. é ΣáºÑ αѺπ½∞ΓáΓá óδ τ¿ΓáÑΓÑ ß«ßΓ«∩¡¿Ñ ¬«¼á¡ñδ ¿º FDC, ΓÑßΓ¿-
- απ∩ í¿Γ RQM (πíÑñ¿ΓÑß∞, τΓ« DIO = 1). 8272A ¼«ªÑΓ ó«ºóαáΘáΓ∞ ñ« ΓαÑσ
- íá⌐Γ«ó ß«ßΓ«∩¡¿∩ (¬«Γ«αδÑ «»¿ßδóáεΓß∩ ¡¿ªÑ) ¡áα∩ñπ ß ñαπú¿¼¿ ñá¡¡δ-
- ¼¿, ¬«Γ«αδÑ íπñπΓ ¿º¼Ñ¡∩Γ∞ß∩ «Γ ¬«¼á¡ñδ ¬ ¬«¼á¡ñÑ.
-
- ┌───────────┬─────┬─────┬─────┬─────┬─────┬─────┐
- │ IC │ SE │ EC │ NR │ H │ DS1 │ DS0 │ ST0
- └───────────┴─────┴─────┴─────┴─────┴─────┴─────┘
- ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
- │ EN │ 0 │ DE │ OR │ 0 │ ND │ MW │ MA │ ST1
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-
- - 6 -
- ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
- │ 0 │ CM │ DD │ WC │ SH │ SN │ BC │ MD │ ST2
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
- │ FT │ WP │ RDY │ T0 │ TS │ H │ DS1 │ DS0 │ ST3
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- É¿ß. 1.2.2 0-3 íá⌐Γδ ß«ßΓ«∩¡¿∩ ¬«¡Γα«½½Ñαá 8272A
-
- ST0
- IC - ¬«ñ »αÑαδóá¡¿∩:
- 00 - ì«α¼á½∞¡«Ñ ºáóÑαΦÑ¡¿Ñ ¬«¼á¡ñδ.
- 01 - Çóáα¿⌐¡«Ñ ºáóÑαΦÑ¡¿Ñ ¬«¼á¡ñδ («»Ñαᵿ∩ ÑΘÑ ¼«ªÑΓ íδΓ∞
- óδ»«½¡Ñ¡á, ¡« ñ«½ª¡δ »α«óÑα∩Γ∞ß∩ ñαπú¿Ñ ¬«ñδ πß½«ó¿⌐).
- 10 - ìÑñ«»πßΓ¿¼á∩ ¬«¼á¡ñá.
- 11 - Çóáα¿⌐¡«Ñ ºáóÑαΦÑ¡¿Ñ (ß¿ú¡á½ ú«Γ«ó¡«ßΓ¿ ñ¿ß¬á ¿º¼Ñ¡¿½ß∩
- ó ΓÑτÑ¡¿Ñ óδ»«½¡Ñ¡¿∩).
- SE - Ä»Ñαᵿ∩ πßΓá¡«ó¬¿ ºá¬«¡τÑ¡á.
- EC - Äí«απñ«óá¡¿Ñ »α«óÑα∩ÑΓ «Φ¿í¬π (»«½πτÑ¡ ß¿ú¡á½ ¡Ñ¿ß»αáó¡«ßΓ¿
- «Γ ñ¿ß¬«ó«ñá ¿½¿ µ¿½¿¡ñα 0 ¡Ñ ¡á⌐ñÑ¡ »«ß½Ñ 77 ¿¼»π½∞ß«ó ó
- ΓÑτÑ¡¿Ñ »ÑαѬ὿íα«ó¬¿).
- NR - ìÑ ú«Γ«ó (ä¿ß¬«ó«ñ ßΓá½ ¡Ñ ú«Γ«óδ¼ ó ΓÑτÑ¡¿Ñ τΓÑ¡¿∩ ¿½¿ ºá-
- »¿ß¿ ¿½¿ ºá»α«ΦÑ¡á ßΓ«α«¡á 1 ñ½∩ «ñ¡«ßΓ«α«¡¡Ñú« ñ¿ß¬á).
- H - ÇñαÑß ú«½«ó¬¿.
- DS0, DS1 - áñαÑß ñ¿ß¬«ó«ñá.
-
- ST1
- EN - ÄΦ¿í¬á ¬«¡µá ñ«α«ª¬¿ (FDC »δΓáÑΓß∩ «íαáΓ¿Γ∞ß∩ ¬ ßÑ¬Γ«απ ºá
- »«ß½Ññ¡¿¼ ßÑ¬Γ«α«¼ ñ«α«ª¬¿). ¥Γ«Γ Σ½áú íπñÑΓ πßΓá¡áó½¿óáΓ∞ß∩
- ó 1 (¿, ß½Ññ«óáΓѽ∞¡«, IC íπñÑΓ αáóÑ¡ 01 ), Ñß½¿ FDC τ¿Γá½
- ßÑ¬Γ«α, «»αÑñѽ∩Ѽδ⌐ ¬á¬ »áαá¼ÑΓα ¬«¼á¡ñδ EOT ¿ ß¿ú¡á½ TC
- ¡¿º¬¿⌐,ΓᬠτΓ« ¬áªñá∩ «»Ñαᵿ∩ τΓÑ¡¿∩ ó αѪ¿¼Ñ ¡Ñ-DMA íπñÑΓ
- c «Φ¿í¬«⌐ EN.
- DE - ÄΦ¿í¬á ñá¡¡δσ. ÇñαÑß¡á∩ ¼ÑΓ¬á ßÑ¬Γ«αá ¿½¿ ñá¡¡δσ ß«ñÑনΓ
- ¡Ññ«»πßΓ¿¼πε CRC.
- OR - ÄΦ¿í¬á «ª¿ñá¡¿∩. 8272A ¡Ñ »«½πτ¿½ ñ«ßΓπ»á ¬ ûÅ ¿½¿ DMA ó ΓÑ-
- τÑ¡¿Ñ «»αÑñѽѡ¡«ú« ¿¡ΓÑαóá½á óαѼѡ¿ (32 ¼¬ß ¡á 360Kü
- ñ¿ß¬«ó«ñÑ) ¿ ñá¡¡δÑ í뫨 »«ΓÑα∩¡δ.
- ND - æÑ¬Γ«α ¡Ñ «í¡áαπªÑ¡¡δ⌐ . Ä»αÑñѽ∩Ѽδ⌐ ßÑ¬Γ«α ¡Ñ íδ½ «í¡áαπ-
- ªÑ¡ ó ΓÑτÑ¡¿Ñ 2-σ «í«α«Γ«ó ñ¿ß¬á (Γ« ÑßΓ∞, ß ¡áτá½á «»Ñαᵿ¿
- »α¿Φ½¿ ñóá ¿¡ñѬߡδσ ¿¼»π½∞ßá). ä½∩ ¼¡«ú«ßÑ¬Γ«α¡δσ »ÑαÑß佫¬
- ΓαÑíπÑΓß∩ 2-«í«α«Γ¡«Ñ «ª¿ñá¡¿Ñ ñ½∩ ¬áªñ«ú« ßÑ¬Γ«αá «Γñѽ∞¡«.
- NW - ÄΦ¿í¬á ºáΘ¿Γδ ºá»¿ß¿ . æ¿ú¡á½ ºáΘ¿Γδ ºá»¿ß¿ íδ½ «í¡áαπªÑ¡ ó
- ΓÑτÑ¡¿Ñ «»Ñαᵿ⌐ ºá»¿¿ß¿ ¿½¿ Σ«α¼áΓ¿α«óá¡¿∩.
- MA - ÄΓßπΓßΓóπÑΓ ¼ÑΓ¬á áñαÑßá. ÇñαÑß¡á∩ ¼ÑΓ¬á cÑ¬Γ«αá ¿½¿ ñá¡¡δσ
- ¡Ñ «í¡áαπªÑ¡á.
-
- ST2
- CM - è«¡Γα«½∞¡á∩ îÑΓ¬á. Äí¡áαπªÑ¡á πñá½Ñ¡¡á∩ áñαÑß¡á∩ ¼ÑΓ¬á ó ΓÑ-
- τÑ¡¿Ñ ¬«¼á¡ñδ τΓÑ¡¿∩ ñá¡¡δσ ¿½¿ «í¡áαπªÑ¡á áñαÑß¡á∩ ¼ÑΓ¬á ó
- ΓÑτÑ¡¿Ñ ¬«¼á¡ñδ τΓÑ¡¿∩ πñá½Ñ¡¡δσ ñá¡¡δσ, ¿ í¿Γ SK ¡Ñ πßΓá-
- ¡«ó½Ñ¡.
- DD - ÄΦ¿í¬á ñá¡¡δσ. ìÑóÑα¡á∩ CRC ßÑ¬Γ«αá ñá¡¡δσ. Æá¬ªÑ íπñÑΓ
- πßΓá¡«ó½Ñ¡ DE.
- WC - ÄΦ¿í¬á áñαÑßᵿ¿ µ¿½¿¡ñαá. ÇñαÑß µ¿½¿¡ñαá ¡á ñ«α«ª¬Ñ ¡Ñ
- ß««ΓóÑΓßΓóπÑΓ «»αÑñѽ∩Ѽ«¼π.
- SH - ôß»ÑΦ¡δ⌐ »α«ß¼«Γα. ôß½«ó¿∩ ¬«¼á¡ñδ »α«ß¼«Γαá í뫨 πñ«ó½ÑΓó«-
- αÑ¡δ.
- SN - Åα«ß¼«Γα ¡Ñ πñ«ó½ÑΓó«αÑ¡.
- BC - ÄΦ¿í¬á ñÑΣÑ¬Γ¡«⌐ ñ«α«ª¬¿. ǡὫú¿τ¡« WC, ¡« áñαÑß µ¿½¿¡ñαá
- ñ«α«ª¬¿ - FFh.
- MD - ÄΦ¿í¬á «ΓßπΓßΓó¿∩ áñαÑß¡«⌐ ¼ÑΓ¬¿. Æá¬ªÑ íπñÑΓ πßΓá¡áó½¿-
- óáΓ∞ß∩ MA.
-
- - 7 -
-
- ST3
- FT - ìѿ߻αáó¡«ßΓ∞. ä¿ß¬«ó«ñ «í¡áαπª¿½ ¡Ñ¿ß»αáó¡«ßΓ∞.
- WP - çáΘ¿Γá ºá»¿ß¿.
- RDY - æ¿ú¡á½ ú«Γ«ó¡«ßΓ¿ ñ¿ß¬«ó«ñá. ìá PC ¿ »«ñß¿ßΓѼáσ ñ¿ß¬ÑΓ AT
- «¡ íπñÑΓ óßÑúñá πßΓá¡«ó½Ñ¡, ¡Ñºáó¿ß¿¼«, ú«Γ«ó ½¿ ñ¿ß¬«ó«ñ
- (¿½¿ πßΓá¡«ó½Ñ¡ ó««íΘÑ).
- T0 - æ¿ú¡á½ ¡πñÑó«⌐ ñ«α«ª¬¿.
- TS - äóπßΓ«α«¡¡¿⌐. ìá PC ¿ »«ñß¿ßΓѼáσ ñ¿ß¬ÑΓ AT «¡ íπñÑΓ óßÑúñá
- 0.
-
- 1.2.3 Ä»¿ßá¡¿Ñ ¬«¼á¡ñ ¬«¡Γα«½½Ñαá 8272A
-
- îδ »α¿ó«ñ¿¼ óßÑ ¬«¼á¡ñδ 8272A ó Γ«¼ »«α∩ñ¬Ñ, ó ¬«Γ«α«¼ «¡¿ ñá¡δ ó
- Γáí½¿µÑ "滿߫¬ ¬«¼á¡ñ 8272A" απ¬«ó«ñßΓóá »« INTEL 8272A. è«¡Ñτ¡«,
- φΓ« «»¿ßá¡¿Ñ ¡Ñ ñ«ßΓáΓ«τ¡« ñ½∩ ¡á»¿ßá¡¿∩ ñαá⌐óÑαá ú¿í¬«ú« ñ¿ß¬á. æ¼.
- απ¬«ó«ñßΓó« INTEL ñ½∩ í«½ÑÑ »«½¡«⌐ ¿¡Σ«α¼áµ¿¿ ¿½¿ Åα¿½«ªÑ¡¿∩ A, úñÑ
- ñá¡ »α«ßΓ«⌐ »α¿¼Ñα.
-
- ùΓÑ¡¿Ñ ñá¡¡δσ
- ─────────────
- 諼á¡ñá: MT MFM SK 0 0 1 1 0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- 0 0 0 0 0 HDS DS1 DS0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- C/H/R/N/EOT/GPL/DTL
- êß»«½¡Ñ¡¿Ñ: Å«½∩ ñá¡¡δσ ¡á ñ«α«ª¬Ñ ßτ¿ΓδóáεΓß∩.
- ÉѺπ½∞ΓáΓ : ST0/ST1/ST2/C/H/R/N
- (çñÑß∞ ¿ ñá½ÑÑ:
- MT - (MultiTrack) ¿¡ßΓαπ¬Γ¿απÑΓ »α«ñ«½ªÑ¡¿Ñ «»Ñαᵿ¿ τΓÑ¡¿∩ ¡á
- ñ«α«ª¬Ñ 1 Γ«ú« ªÑ µ¿½¿¡ñαá.
- SK - ºáßΓáó½∩ÑΓ FDC »α«»π߬áΓ∞ »«½∩ πñá½Ñ¡¡δσ ñá¡¡δσ.
- HDS - π¬áºδóáÑΓ ¡«¼Ñα ú«½«ó¬¿, ¿ß»«½∞ºπѼ«⌐ ó «»Ñαᵿ¿.
- DS1, DS0 - »αÑñßΓáóñ∩εΓ ¡«¼Ñα ñ¿ß¬«ó«ñá.
- C/N/R/N - ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¡áτá½∞¡«ú« ßÑ¬Γ«αá.
- EOT - ¬«½¿τÑßΓó« ßÑ¬Γ«α«ó ¡á ñ«α«ª¬Ñ.
- GPL - ñ½¿¡á ¼ÑªßÑ¬Γ«α¡«ú« »α«¼ÑªπΓ¬á.
- DTL - ñ«½ªÑ¡ íδΓ∞ FFh »α¿ πßΓá¡«ó½Ñ¡¡«¼ MFM.)
-
- ùΓÑ¡¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá
- ─────────────────────────────
- 諼á¡ñá: MT MFM SK 0 0 1 1 0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- 0 0 0 0 0 HDS DS1 DS0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- C/H/R/N/EOT/GPL/DTL
- êß»«½¡Ñ¡¿Ñ: æτ¿ΓδóáÑΓß∩ »Ñαóδ⌐ ¬«ααÑ¬Γ¡δ⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ßÑ¬Γ«αá
- (»Ñαóδ⌐ - º¡áτ¿Γ "»Ñαóδ⌐ ñ«ßΓ¿ú¡πΓδ⌐ «Γ ΓѬπΘÑú« »«½«ªÑ¡¿∩ ú«½«ó¬¿",
- á ¡Ñ "»Ñαóδ⌐ »«ß½Ñ Σ¿º¿τÑ߬«⌐ áñαÑß¡«⌐ ¼ÑΓ¬¿")
- ÉѺπ½∞ΓáΓ: ST0/ST1/ST2/C/H/R/N
-
- ùΓÑ¡¿Ñ πñá½Ñ¡¡δσ ñá¡¡δσ
- ───────────────────────
- 諼á¡ñá: MT MFM SK 0 1 1 0 0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- 0 0 0 0 0 HDS DS1 DS0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- C/H/R/N/EOT/GPL/DTL
- êß»«½¡Ñ¡¿Ñ: æτ¿ΓδóáεΓß∩ πñá½Ñ¡¡δÑ ñá¡¡δÑ ¡á ñ«α«ª¬Ñ.
- ÉѺπ½∞ΓáΓ: ST0/ST1/ST2/C/H/R/N
-
- ùΓÑ¡¿Ñ ñ«α«ª¬¿
- ──────────────
-
- - 8 -
- 諼á¡ñá: 0 MFM SK 0 0 0 1 0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- 0 0 0 0 0 HDS DS1 DS0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- C/H/R/N/EOT/GPL/DTL
- êß»«½¡Ñ¡¿Ñ: ù¿ΓδóáεΓß∩ »«½∩ ñá¡¡δσ ¡á ñ«α«ª¬Ñ.
- ÉѺπ½∞ΓáΓ: ST0/ST1/ST2/C/H/R/N
-
- ¥Γá ¬«¼á¡ñá íπñÑΓ τ¿ΓáΓ∞ »«½∩ ñá¡¡δσ ¡Ñºáó¿ß¿¼« «Γ º¡áτÑ¡¿⌐
- C/H/R/N, σαá¡∩Θ¿σß∩ ó ¿ñÑ¡Γ¿Σ¿¬áΓ«αáσ ßÑ¬Γ«α«ó. Å«½Ñ ñá¡¡δσ, ¬«Γ«α«Ñ
- ¿¼ÑÑΓ ñ«»πßΓ¿¼δ⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α, ¼«ªÑΓ ßτ¿ΓáΓ∞ß∩ φΓ«⌐ ¬«¼á¡ñ«⌐. ò«Γ∩
- ñ«¬π¼Ñ¡Γᵿ∩ INTEL π¬áºδóáÑΓ, τΓ« ¬«¼á¡ñá τΓÑ¡¿∩ ñ«α«ª¬¿ «ßΓá¡áó½¿-
- óáÑΓß∩, ¬«úñá ¡á óßÑ⌐ ñ«α«ª¬Ñ ¡Ñ «í¡áαπªÑ¡δ »«½∩ ñá¡¡δσ ¿½¿ ßτÑΓτ¿¬
- ßÑ¬Γ«α«ó ñ«ßΓ¿ú º¡áτÑ¡¿∩ EOT, φΓá ¬«¼á¡ñá íπñÑΓ ºáóÑαΦáΓ∞ß∩, ¬«úñá
- ¡Ñ «í¡áαπªÑ¡á ¼ÑΓ¬á áñαÑßá ñá¡¡δσ íδ½ «í¡áαπªÑ¡ »«ß½Ñ ¼ÑΓ¬¿ áñαÑßá
- ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá ß »½«σ«⌐ CRC.
- 諼á¡ñá τΓÑ¡¿∩ ñ«α«ª¬¿ »α¿¡¿¼áÑΓ ï₧üÄà º¡áτÑ¡¿Ñ N, ΓᬠτΓ« ¼«ªÑΓ
- τ¿ΓáΓ∞ ¼ÑªßÑ¬Γ«α¡δ⌐ »α«¼ÑªπΓ«¬ (¿½¿ óßε ñ«α«ª¬π, Ñß½¿ N ñ«ßΓáΓ«τ¡«
- í«½∞Φ«Ñ) ¡áα∩ñπ ß ßÑ¬Γ«α«¼ ñá¡¡δσ. æÑ¬Γ«αá íπñπΓ ßτ¿ΓδóáΓ∞ß∩ ó »«-
- α∩ñ¬Ñ ¿σ »«∩ó½Ñ¡¿∩ »«ñ ú«½«ó¬«⌐, Γ« ÑßΓ∞, Ñß½¿ ñ«α«ª¬á Σ«α¼áΓ¿α«óá-
- ½áß∞ ß 8 ßÑ¬Γ«αἿ ß 512 íá⌐ΓἿ (¿¡ΓÑ૨ó 1:1), ¿ óδ ¡áτ¿¡áÑΓÑ ¬«-
- ¼á¡ñπ ñ«α«ª¬¿ τΓÑ¡¿∩ ß R = 1, N = 3, EOT = 4, ßÑ¬Γ«αá 1, 3, 5 ¿ 7
- íπñπΓ ßτ¿Γá¡δ.
-
- çỿß∞ ñá¡¡δσ
- ─────────────
- 諼á¡ñá: MT MFM 0 0 0 1 0 1
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- 0 0 0 0 0 HDS DS1 DS0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- C/H/R/N/EOT/GPL/DTL
- êß»«½¡Ñ¡¿Ñ: ìá ñ«α«ª¬π ºá»¿ßδóáεΓß∩ »«½∩ ñá¡¡δσ
- ÉѺπ½∞ΓáΓ: ST0/ST1/ST2/C/H/R/N
-
- çỿß∞ πñá½Ñ¡¡δσ ñá¡¡δσ
- ───────────────────────
- 諼á¡ñá: MT MFM 0 0 1 0 0 1
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- 0 0 0 0 0 HDS DS1 DS0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- C/H/R/N/EOT/GPL/DTL
- êß»«½¡Ñ¡¿Ñ: ìá ñ«α«ª¬π ºá»¿ßδóáεΓß∩ »«½∩ πñá½Ñ¡¡δσ ñá¡¡δσ
- ÉѺπ½∞ΓáΓ: ST0/ST1/ST2/C/H/R/N
-
- ö«α¼áΓ¿α«óá¡¿Ñ ñ«α«ª¬¿
- ──────────────────────
- 諼á¡ñá: MT MFM 0 0 1 1 0 1
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- 0 0 0 0 0 HDS DS1 DS0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- N/SC/GPL/D
- êß»«½¡Ñ¡¿Ñ: 諼á¡ñá Σ«α¼áΓ¿απÑΓ ñ«α«ª¬π ß SC ßÑ¬Γ«αἿ αẼÑα«¼
- N. æÑ¬Γ«αá ºá»«½¡∩εΓß∩ íá⌐Γ«¼ D. ç¡áτÑ¡¿∩ C/H/R/N ñ½∩ ¬áªñ«ú« ßÑ¬Γ«-
- αá ºáñáεΓß∩ »«½∞º«óáΓѽѼ (¬á¬ ó ¬«¼á¡ñÑ ºá»¿ß¿ ñá¡¡δσ).
- ÉѺπ½∞ΓáΓ: ST0/ST1/ST2/C/H/R/N
- ÅÉêîàùÇìêà: GPL=0 »«¡¿¼áÑΓß∩ ¬á¬ 100h.
-
- Åα«ß¼«Γα ¡á αáó¡«
- ─────────────────
- 諼á¡ñá: MT MFM SK 1 0 0 0 1
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- 0 0 0 0 0 HDS DS1 DS0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-
- - 9 -
- C/H/R/N/EOT/GPL/STP
- êß»«½¡Ñ¡¿Ñ: Å«½∩ ñá¡¡δσ ¡á ñ«α«ª¬Ñ τ¿ΓáεΓß∩ ¿ ßαáó¡¿óáεΓß∩ »«-
- íá⌐Γ¡« ß ñá¡¡δ¼¿, »«ßΓáó½∩Ñ¼δ¼¿ ûÅ ¿½¿ DMA. àß½¿ πß½«ó¿Ñ »α«ß¼«Γαá
- ¡Ñ πñ«ó½ÑΓó«αÑ¡«, »α«ß¼«Γα »α«ñ«½ªáÑΓß∩ ó ßÑ¬Γ«αÑ R+STP.
- ÉѺπ½∞ΓáΓ : ST0/ST1/ST2/C/H/R/N
-
- Åα«ß¼«Γα ¡á ¼Ñ¡∞ΦÑ ¿½¿ αáó¡«
- ────────────────────────────
- 諼á¡ñá: MT MFM SK 1 1 0 0 1
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- 0 0 0 0 0 HDS DS1 DS0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- C/H/R/N/EOT/GPL/STP
- êß»«½¡Ñ¡¿Ñ: á¡á½«ú¿τ¡« ¬«¼á¡ñÑ "Åα«ß¼«Γα ¡á αáó¡«"
- ÉѺπ½∞ΓáΓ : ST0/ST1/ST2/C/H/R/N
-
- Åα«ß¼«Γα ¡á í«½∞ΦÑ ¿½¿ αáó¡«
- ────────────────────────────
- 諼á¡ñá: MT MFM SK 1 1 1 0 1
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- 0 0 0 0 0 HDS DS1 DS0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- C/H/R/N/EOT/GPL/STP
- êß»«½¡Ñ¡¿Ñ: á¡á½«ú¿τ¡« ¬«¼á¡ñÑ "Åα«ß¼«Γα ¡á αáó¡«"
- ÉѺπ½∞ΓáΓ : ST0/ST1/ST2/C/H/R/N
-
- ÅÑαѬ὿íα«ó¬á
- ──────────────
- 諼á¡ñá: 0 0 0 0 0 1 1 1
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- 0 0 0 0 0 0 DS1 DS0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- êß»«½¡Ñ¡¿Ñ: »Ñ»Ñ¬á½¿íαπÑΓß∩ óδíαá¡¡δ⌐ ñ¿ß¬«ó«ñ.
-
- éßÑ 4 ñ¿ß¬«ó«ñá ¼«úπΓ »ÑαѬ὿íα«óδóáΓ∞ß∩ «ñ¡«óαѼѡ¡«. 8272A
- ¼«ªÑΓ óδ»«½¡∩Γ∞ «»Ñαᵿ¿ τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿ ¡á ½εí«¼ ñαπú«¼ ñ¿ß¬«ó«-
- ñÑ. Æá¬¿¼ «íαẫ¼, ¬«¼á¡ñá «»α«ßá ß«ßΓ«∩¡¿∩ »αÑαδóá¡¿∩ ñ«½ª¡á
- ¿ß»«½∞º«óáΓ∞ß∩, τΓ«íδ αẽ¿τáΓ∞ »αÑαδóá¡¿Ñ, óδºóá¡¡«Ñ ºáóÑαΦÑ¡¿Ñ¼
- »ÑαѬ὿íα«ó¬¿ «Γ »αÑαδóá¡¿∩ »α¿ ºáóÑαΦÑ¡¿¿ «»Ñαᵿ¿.
- FDC ¡Ñ íπñÑΓ αáºαÑΦáΓ∞ ½εíπε ¬«¼á¡ñπ ¡á »ÑαѬ὿íαπѼ«¼ ñ¿ß¬«ó«ñÑ
- ñ« Γ«ú«, ¬á¬ »α«óÑñÑ¡ «»α«ß ß«ßΓ«∩¡¿∩ »αÑαδóá¡¿∩ ñ½∩ πßΓá¡«ó¬¿ ºá-
- óÑαΦÑ¡¿∩ »αÑαδóá¡¿∩.
-
- Ä»α«ß ß«ßΓ«∩¡¿∩ »αÑαδóá¡¿∩
- ──────────────────────────
- 諼á¡ñá: 0 0 0 0 1 0 0 0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- ÉѺπ½∞ΓáΓ: STO0/C (Åα¿¼Ñτá¡¿Ñ: ¬«úñá IC = 10 (¡Ññ«»πßΓ¿¼«), C ¡Ñ íπ-
- ñÑΓ ó«ºóαáΘáΓ∞ß∩).
- 8272A íπñÑΓ úÑ¡Ñα¿α«óáΓ∞ ºá»α«ß »αÑαδóá¡¿∩ ó ½εí«¼ ¿º ß½ÑñπεΘ¿σ
- ß½πτáÑó:
- A) öáºá αѺπ½∞ΓáΓá ¡áτ¿¡áÑΓß∩ ñ½∩ ¬«¼á¡ñ τΓÑ¡¿∩/ºá»¿ß¿/Σ«α¼áΓ¿α«-
- óá¡¿∩/»α«ß¼«Γαá.
- B) 꺼ѡ¿½ß∩ ß¿ú¡á½ ú«Γ«ó¡«ßΓ¿ ¡á «ñ¡«¼ ¿º ñ¿ß¬«ó«ñ«ó.
- C) éδ»«½¡∩ÑΓß∩ πßΓá¡«ó¬á/»ÑαѬ὿íα«ó¬á.
- D) ÆαÑíπÑΓß∩ ¡Ñ-DMA »ÑαÑß佬á ñá¡¡δσ.
- Åα«úαá¼¼á «íαáí«Γ¬¿ »αÑαδóá¡¿∩ ¼«ªÑΓ ½Ñú¬« «Γ½¿τáΓ∞ φΓ¿ ß½πτá¿:
- àß½¿ NDM = 1,
- Æ«úñá φΓ« - ºá»α«ß »ÑαÑß佬¿ ñá¡¡δσ,
- ê¡áτÑ
- àß½¿ CB = 1
- Æ«úñá ¡áτ¿¡áÑΓß∩ Σáºá αѺπ½∞ΓáΓá,
- ê¡áτÑ
-
- - 10 -
- àß½¿ SE = 0
- Æ«úñá φΓ« - ¿º¼Ñ¡Ñ¡¿Ñ ß¿ú¡á½á ú«Γ«ó¡«ßΓ¿,
- ê¡áτÑ φΓ« - ¬«¡Ñµ πßΓá¡«ó¬¿ ¿½¿ »ÑαѬ὿íα«ó¬¿.
-
- Ä»αÑñѽ¿Γ∞
- ──────────
- 諼á¡ñá: 0 0 0 0 0 0 1 1
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- SRT HUT
- └───────────────────────┴───────────────────────┘
- HLT ND
- └─────────────────────────────────────────┴─────┘
- SRT - ¿¡ΓÑαóὠ߬«α«ßΓ¿ Φáúá. ôßΓá¡áó½¿óáÑΓ ¼¿¡¿¼á½∞¡πε ºáñÑ᪬π
- ¼Ñªñπ ñóπ¼∩ ¿¼»π½∞ßἿ Φáúá ñ¿ß¬«ó«ñá. (1-16 ¼ß, SRT = 0Fh
- ß««ΓóÑΓßΓóπÑΓ 1 ¼ß). ü«½ÑÑ ßΓáαδÑ ñ¿ß¬«ó«ñδ PC ¡Ñ óδ»«½¡∩½¿
- 3- ¿½¿ 4-¼ß ߬«α«ßΓ∞ Φáúá, á ¡Ñ¬«Γ«αδÑ ¡Ñ ¼«úπΓ óδ»«½¡¿Γ∞ ß
- 2- ¿½¿ ñáªÑ 1-¼ß ߬«α«ßΓ∞ Φáúá.
- HUT - óαѼ∩ αáºúαπº¬¿ ú«½«ó¬¿. çáñÑαª¬á ¼Ñªñπ ºáóÑαΦÑ¡¿Ñ¼ «»Ñαá-
- µ¿¿ τΓÑ¡¿∩ - ºá»¿ß¿ ¿ »«ñΩѼ«¼ ú«½«ó¬¿. (16-240 ¼ß, HUT = 0
- ß««ΓóÑΓßΓóπÑΓ 16 ¼ß). Ä¡« «íδτ¡« πßΓá¡áó½¿óáÑΓß∩ ó 240 ¼ß.
- HLT - óαѼ∩ ºáúαπº¬¿ ú«½«ó¬¿. çáñÑαª¬á ¼Ñªñ𠬫¼á¡ñ«⌐ ºáúαπº¬¿
- ú«½«ó¬¿ ¿ ¡áτὫ¼ «»Ñαᵿ¿ τΓÑ¡¿∩ - ºá»¿ß¿. (2-254 ¼ß,
- HLT=1 - 2 ms). Äíδτ¡« πßΓá¡áó½¿óáÑΓß∩ ó 2 ¼ß.
- ND - 0: αѪ¿¼ DMA. 1: ¡Ñ-DMA αѪ¿¼.
- éßÑ Γá⌐¼Ñαδ ó¡πΓα¿ 8272A Σá¬Γ¿τÑ߬¿ ß¿¡σα«¡¿º¿απεΓß∩ »« ß¿ú¡á½π
- WR CLK, ΓᬠτΓ« óßÑ º¡áτÑ¡¿∩, »«¬áºá¡¡δÑ ºñÑß∞, »αáó¿½∞¡δ ñ½∩ WR CLK
- 500 èâµ, ¿½¿ ߬«α«ßΓ∞ »ÑαÑß佬¿ ñá¡¡δσ ß«ßΓáó¿Γ 500 èü«ñ. Å«¡¿ªÑ¡¿Ñ
- τáßΓ«Γδ WR CLK íπñÑΓ πñ½¿¡∩Γ∞ óßÑ ó¡πΓαÑ¡¡¿Ñ ßτÑΓτ¿¬¿ ºáñÑαªÑ¬.
-
- Ä»α«ß ß«ßΓ«∩¡¿∩ ñ¿ß¬«ó«ñá
- ─────────────────────────
- 諼á¡ñá: 0 0 0 0 0 1 0 0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- 0 0 0 0 0 HDS DS1 DS0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- ÉѺπ½∞ΓáΓ: ST3.
-
- ôßΓá¡«ó¬á
- ─────────
- 諼á¡ñá: 0 0 0 0 1 1 1 1
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- 0 0 0 0 0 HDS DS1 DS0
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- C
- æ¼. »ÑαѬ὿íα«ó¬π.
-
- 1.2.4 è«¡Γα«½½Ñα ú¿í¬«ú« ñ¿ß¬á AT
-
- ÅÑαó«¡áτá½∞¡δÑ PC ¿ XT ¬«¡Γα«½½Ñαδ ú¿í¬«ú« ñ¿ß¬á í뫨 ß»«ß«í¡δ⌐
- »«ññÑনóáΓ∞ 4 ñ¿ß¬ÑΓδ. AT FDC, σ«Γ∩ ¿ ß«ó¼ÑßΓ¿¼δ »« αÑúßΓαá¼, ¼«ª-
- ªÑΓ »«ññÑনóáΓ∞ Γ«½∞¬« 2, ΓᬠτΓ« ¼«ª¡« πßΓá¡áó½¿óáΓ∞ ñóá FDC ó AT.
- ü«½∞Φ¿¡ßΓó« óÑαß¿⌐ BIOS ¡Ñ »«ññÑ«ª¿óáÑΓ óΓ«α«⌐ FDC, ¿ π ¡áß ¡¿¬«úñá
- ¡Ñ í佫 IBM AT, τΓ«íδ »α«óÑα¿Γ∞, τΓ« ªÑ ¬«¡¬αÑΓ¡« ñѽáÑΓ IBM AT
- BIOS. ÅÑαóδ⌐ FDC ºá¡¿¼áÑΓ ñ¿á»áº«¡ áñαÑß«ó 3F0-3F7h, óΓ«α«⌐ FDC ¡á-
- σ«ñ¿Γß∩ ó 370-377h. éß∩ »α¿óÑñÑ¡¡á∩ ºñÑß∞ ¿¡Σ«α¼áµ¿∩ »« »Ñαó«¼π FDC
- Γá¬ªÑ »α¿¼Ñ¡¿¼á ¿ ¬« óΓ«α«¼π »α¿ πßΓá¡«ó¬Ñ φΓ«ú« ñ¿á»áº«¡á áñαÑß«ó.
- 8272A (¿½¿ Ñú« ¿¡ΓÑúαá½∞¡δ⌐ á¡á½«ú) «Γ«íαáªáÑΓß∩ ¬ »«αΓá¼ 3F4h (MSR)
- ¿ 3F5h (DR).
- èᬠóδ πªÑ ó¿ñѽ¿, 8272A ¡Ñ ¼«ªÑΓ ßá¼ π»αáó½∩Γ∞
- ß«ßΓ«∩¡¿Ñ¼ ñó¿úáΓѽ∩ ñ¿ß¬«ó«ñá, ΓᬠτΓ« »«αΓ 3F2 (µ¿Σα«ó«⌐ αÑú¿ßΓα
- óδó«ñá) «íÑß»Ñτ¿óáÑΓ Γá¬¿Ñ «»Ñαᵿ¿. (æ¼. α¿ß. 1.2.4a).
-
-
- - 11 -
- ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
- │ D │ C │ B │ A │ IE │ EC │ DS1 │ DS0 │
- └──┬──┴─────┴─────┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┘
- └────────┬────────┘ │ │ └──┬──┘
- │ │ │ └─éδí«α ñ¿ß¬«ó«ñá
- │ │ └──────────è«¡Γα«½½Ñα ñ«ßΓπ»Ñ¡
- │ └────────────────ÅαÑαδóá¡¿∩ αáºαÑΦÑ¡δ
- └───────────────────────────────äó¿úáΓѽ∞ ñ«ßΓπ»Ñ¡
- É¿ß. 1.2.4a û¿Σα«ó«⌐ αÑú¿ßΓα óδó«ñá (3F2h).
-
- ü¿Γδ DS1 ¿ DS0 µ¿Σα«ó«ú« αÑú¿ßΓαá óδó«ñá «Γ¼Ñ¡∩εΓ í¿Γ DS, «»αÑñѽ∩-
- Ѽδ⌐ ó ¬«¼á¡ñÑ 8272A, ΓᬠτΓ« ¼«ª¡« ¿º¼Ñ¡∩Γ∞ (ºá¼Ñ¡∩Γ∞) ñ¿ß¬«ó«ñ ó ΓÑ-
- τÑ¡¿Ñ óδ»«½¡Ñ¡¿∩ ¬«¼á¡ñδ. ò«Γ∩ φΓ« «»áß¡δ⌐ ¼ÑΓ«ñ, ¼¡«ú¿Ñ ß»«ß«íδ ºáΘ¿-
- Γδ «Γ ¬«»¿α«óá¡¿∩ íếαπεΓß∩ ¡á φΓ«⌐ «ß«íÑ¡¡«ßΓ¿.
- ôßΓá¡«ó¬á í¿Γá EC ó ¡π½∞ ßíαáßδóáÑΓ ¬«¡Γα«½½Ñα, Γᬠ½εíá∩ «»Ñαá-
- µ¿∩ (¡á»α¿¼Ñα , Σ«α¼áΓ¿α«óá¡¿Ñ ñ«α«ª¬¿ ¿½¿ ºá»¿ß∞ ñá¡¡δσ) ¼«úπΓ íδΓ∞
- «ßΓá¡«ó½Ñ¡δ ó ½εí«⌐ ¼«¼Ñ¡Γ. (ò«Γ∩ ñ«½ª¡á ß«í½εñáΓ∞ß∩ «ß«íá∩ «ßë᫪-
- ¡«ßΓ∞, τΓ«íδ óδ»«½¡¿Γ∞ αѺ¬«Ñ ºáóÑαΦÑ¡¿Ñ íѺ í¿Ñ¡¿⌐).
- ü¿Γ IE »Ññ¡áº¡áτÑ¡ ñ½∩ »α¿¼Ñ¡Ñ¡¿∩ ó ¼¡«ú«¬«¡Γα«½½Ñα¡δσ ß¿ßΓѼáσ.
- Æ.¬. óßÑ FDC ¿ß»«½∞ºπεà ëà ªÑ ßá¼δ⌐ IRQ 6 ¿ ¬á¡á½ 2 DMA, íѺ-
- ñÑ⌐ßΓóπεΘ¿⌐ ¬«¡Γα«½½Ñα ¼«ªÑΓ ( ¿½¿ ¡Ñ ¼«ªÑΓ - ¡Ñ½∞º∩ ߬áºáΓ∞ «»αÑñÑ-
- ½Ñ¡¡«) πßΓá¡«ó¿Γ∞ φΓπ ½¿¡¿ε ó ¡¿º¬¿⌐ πα«óÑ¡∞, Γᬿ¼ «íαẫ¼ ºá»αÑΘá∩
- ñαπú¿¼ ¬«¡Γα«½½Ñαá¼ ñ«ßΓπ» ¬ ß¿ßΓѼ¡«¼π «íß½πª¿óá¡¿ε.
- ü¿Γ ñ«ßΓπ»á ¬ ñó¿úáΓѽε ñ¿ß¬«ó«ñá - ñαπú«⌐ ¿ßΓ«τ¡¿¬ ß»«ß«íá ºáΘ¿-
- Γδ (æ¼. 1.4.2).
- éΓ«α«⌐ ñ«»«½¡¿Γѽ∞¡δ⌐ αÑú¿ßΓα ¡áσ«ñ¿Γß∩ ó 3F7 (αÑú¿ßΓα π»αáó½Ñ¡¿∩
- ñ¿ß¬ÑΓδ). (¥Γ«Γ αÑú¿ßΓα ¡Ñ ßπΘÑßΓóπÑΓ ¡á ßΓáαδσ XT, ¡« ¼«ªÑΓ τáßΓ«
- íδΓ∞ «í¡áαπªÑ¡ ¡á »«ºñ¡¿σ á¡á½«úáσ). èᬠ¼¡Ñ σ«α«Φ« ¿ºóÑßΓ¡«, Γ«½∞¬«
- ñóá ¼½áñΦ¿σ í¿Γá º¡áτ¿¼δ ñ½∩ ºá»¿ß¿, ¿ «ñ¿¡«τ¡ ßΓáαΦ¿⌐ í¿Γ - ñ½∩
- τΓÑ¡¿∩.
- 3F7 (ºá»¿ß∞) óδí¿αáÑΓ ß¬«α«ßΓ¿ »ÑαÑß佬¿:
- 00 - 500 èü«ñ (MFM)
- 01 - 300 èü«ñ (MFM)
- 10 - 250 èü«ñ (MFM)
- 11 - 125 èü«ñ (FM)
- ÅÑαóδÑ Γα¿ º¡áτÑ¡¿∩ (00-10) »α¿óÑñÑ¡δ ó απ¬«ó«ñßΓóáσ. ò«Γ∩ »«ß½Ññ¡ÑÑ
- º¡áτÑ¡¿Ñ ¡Ñ«»¿ßá¡«, «¡« αáí«ΓὫ ¡á ½εí«¼ AT FDC, ß ¬«Γ«α묨 ∩ ¬«ú-
- ñá-½¿í« ßΓὬ¿óáΓ∞ß∩. (¥Γ« ßπΘÑßΓóÑ¡¡á∩ ߬«α«ßΓ∞ »ÑαÑß佬¿ - «¡á
- αáºαÑΦáÑΓ τΓÑ¡¿Ñ-ºá»¿ß∞ SD-ñ¿ß¬«ó ó ñ¿ß¬«ó«ñÑ ¡á 360 èü). ç¡áτÑ¡¿∩
- 00-10 »αÑñ¡áº¡áτáεΓß∩ ñ½∩ »α¿¼Ñ¡Ñ¡¿∩ ß MFM-ñ¿ß¬ÑΓἿ, ΓᬠτΓ« «¡¿
- ¿¼ÑεΓ ¿¼»π½∞ßδ ó 1/4 ñ½¿¡δ µ¿¬½á. æ¿¡σα«¡¿ºáµ¿∩ ¡á 125 èü«ñ ¿¼ÑÑΓ
- ¿¼»π½∞ßδ ó 1/8 ñ½¿¡δ µ¿¬½á.
- Æ.¬. FDC ¡Ñ ¿¼ÑεΓ FM-ß¿¡σα«¡¿ºáµ¿¿ ¡á 175 èü«ñ, ñ¿ß¬¿ «ñ¿¡áα¡«⌐
- »½«Γ¡«ßΓ¿ ¡Ñ ¼«úπΓ ºá»¿ßδóáΓ∞ß∩ ¡á ñ¿ß¬«ó«ñÑ ß óδß«¬«⌐ »½«Γ¡«ßΓ∞ε
- (360 «í«α«Γ«ó/¼¿¡.). ü½áú«ñáα∩ óδß«¬«⌐ ºáΘ¿ΘÑ¡«ßΓ¿ «Γ «Φ¿í«¬ FM-Σ«α-
- ¼áΓá ñá¡¡δσ, ñ¿ß¬¿ «ñ¿¡áα¡«⌐ »½«Γ¡«ßΓ¿ ÑΘÑ ¼«úπΓ τ¿ΓáΓ∞ß∩ ó ñ¿ß¬«ó«-
- ñÑ ¡á 360 «í./¼¿¡. FM-ñ¿ß¬ÑΓδ ¼«úπΓ íδΓ∞ ¬á¬ τ¿ΓáΓ∞ß∩, Γᬠ¿
- »¿ßáΓ∞ß∩ ¡á 360Kí (300 «í./¼¿¡.) ñ¿ß¬«ó«ñÑ.
- 3F7 (τΓÑ¡¿Ñ) - ¿º¼Ñ¡Ñ¡¿Ñ ß«ßΓ«∩¡¿∩ ñ¿ß¬«ó«ñá: πßΓá¡«ó¬á í¿Γá 7
- (»α«óÑα∩εΓ al, 80h) º¡áτ¿Γ, τΓ« ñ¿ß¬ÑΓá ºá¼Ñ¡∩½áß∞. ê¡ñ¿¬áΓ«α ߼ѡδ
- MEDIA íπñÑΓ ßíαáßδóáΓ∞ß∩ »«ß½Ñ »Ñαó«⌐ πßΓá¡«ó¬¿ µ¿½¿¡ñαá, «Γ½¿τ¡«ú«
- «Γ ¡π½Ñó«ú«.
- ÄτÑó¿ñ¡«Ñ »α¿¼Ñ¡Ñ¡¿Ñ αÑú¿ßΓαá 3F7 ó ºáΘ¿ΓÑ «Γ ¬«»¿α«óá¡¿∩ «Γ-
- ¡«ß¿Γß∩ ¬ «»αÑñѽѡ¿ε »«º¿µ¿¿ í¿Γ«ó«⌐ ∩τÑ⌐¬¿. Æ.¬. FDC »ÑαѬ½ετáÑΓß∩
- ¡á ¡«ó«¼ε ߬«α«ßΓ∞ »ÑαÑß佬¿ »«τΓ¿ ¼ú¡«óÑ¡¡«, »ÑαѬ½ετá∩ ߬«α«ßΓ∞ ó
- αáßτÑΓ¡δ⌐ ¼«¼Ñ¡Γ, ¼«ª¡« ßñó¿úáΓ∞ í¿Γ«óπε ∩τÑ⌐¬π ¡á ¼á½πε τáßΓ∞ ÑÑ
- ñ½¿¡δ. ¥Γá ¼ÑΓ«ñ¿¬á αáºαÑΦáÑΓ τ¿ΓáΓ∞ ½εíπε τáßΓ∞ ñ«α«ª¬¿, Ñß½¿ ßπ-
- ΘÑßΓóπÑΓ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ «ñ¡« »«½Ñ ñ«ßΓ«óÑα¡δσ ñá¡¡δσ ¿ ¿ºóÑßΓ¡«
- »α¿í½¿º¿Γѽ∞¡« ¼ÑßΓ«»«½«ªÑ¡¿Ñ »αÑñßΓáó½∩εΘÑ⌐ ¿¡ΓÑαÑß «í½áßΓ¿.
-
- 1.2.5 "ì«α¼á½∞¡δÑ" Σ«α¼áΓδ ñ¿ß¬ÑΓδ PC
-
- ÅÑαóδÑ ßΓá¡ñáαΓδ PC »αÑñ¡áº¡áτ὿ß∞ ñ½∩ «ñ¡«ñóπσßΓ«α«¡¡¿σ »∩Γ¿-
-
- - 12 -
- ñε⌐¼«óδσ ñ¿ß¬ÑΓ ¡á 40 ñ«α«ªÑ¬. æ½Ññπ∩ ߻ѵ¿Σ¿¬áµ¿¿ INTEL, «¡¿ ¿¼Ñ½¿
- 8 512-íá⌐Γ«óδσ ßÑ¬Γ«α«ó ¡á ñ«α«ª¬Ñ, Γᬿ¼ «íαẫ¼, ¿ß»«½∞ºπ∩ 4096
- íá⌐Γ«ó (65%) ¿º 6250-íá⌐Γ«ó«⌐ ¡ÑßΣ«α¼áΓ¡«⌐ Ѽ¬«ßΓ¿ ñ«α«ª¬¿. æÑ¬Γ«αá
- ¡á ñ«α«ª¬Ñ αáß»«½áú὿ß∞ »«ß½Ññ«óáΓѽ∞¡« (¿¡ΓÑ૨ó 1:1), ¬á¬ ó« óßÑσ
- ñαπú¿σ ßΓá¡ñáαΓ¡δσ Σ«α¼áΓáσ. Å«ºñ¡ÑÑ ñ¿ß¬¿ ß 9 ¿ 10 ßÑ¬Γ«αáἿ ¡á
- ñ«α«ª¬Ñ ¿ß»«½∞ºπεΓ ß««ΓóÑΓßΓóÑ¡¡« 74% ¿ 82% «íΘÑú« »α«ßΓαá¡ßΓóá. ÆÑ-
- «αÑΓ¿τÑ߬«Ñ «úαá¡¿τÑ¡¿Ñ ñ½∩ Σ«α¼áΓ¿απѼ«⌐ Ѽ¬«ßΓ¿ ñ«α«ª¬¿ ñó«⌐¡«⌐
- »½«Γ¡«ßΓ¿ - »α¿¼Ñα¡« 89.2% (5575 íá⌐Γ«ó ¿½¿ 10.89 ßÑ¬Γ«αá ¡á ñ«α«ª-
- „).
- Æá¬«Ñ πóѽ¿τÑ¡¿Ñ Ѽ¬«ßΓ¿ ñ¿ß¬«ó ßñѽὫß∞ 󫺼«ª¡δ¼ í½áú«ñáα∩
- óδß«¬«⌐ ßΓáí¿½∞¡«ßΓ¿ óαáΘÑ¡¿∩ ó ß«óαѼѡ¡δσ »α¿ó«ñáσ. ò«Γ∩ ñ«»π߬á-
- ÑΓß∩ «Γ¬½«¡Ñ¡¿Ñ ó 2.5% «Γ ¡«¼¿¡á½∞¡«ú« óαѼѡ¿ óαáΘÑ¡¿∩, ¼δ ¡¿¬«úñá
- ¡Ñ óßΓαÑτ὿ ñ¿ß¬«ó«ñ ñ½∩ ú¿í¬¿σ ñ¿ß¬ÑΓ ß «Γ¬½«¡Ñ¡¿Ñ¼ óαѼѡѼ óαá-
- ΘÑ¡¿∩ óδΦÑ 0.2%. Æá¬á∩ ßΓáí¿½∞¡«ßΓ∞ »«ºó«½∩ÑΓ π¼Ñ¡∞Φ¿Γ∞ ñ½¿¡π
- ¼ÑªßÑ¬Γ«α¡«ú« »α«¼ÑªπΓ¬á.
- ìá»α¿¼Ñα , Ñß½¿ 󫺼«ª¡«Ñ «Γ¬½«¡Ñ¡¿Ñ ߬«α«ßΓ¿ óαáΘÑ¡¿∩ - ±2.5%,
- ¡Ñ«íσ«ñ¿¼« αѺÑαó¿α«óáΓ∞ ¼ÑσßÑ¬Γ«α¡δ⌐ »α«¼ÑªπΓ«¬, ñ«ßΓáΓ«τ¡δ⌐, τΓ«íδ
- »«ññÑনóáΓ∞ ½εíπε ñ½¿¡π ßÑ¬Γ«αá. ÅαÑñ»«½«ª¼, τΓ« ñ¿ß¬ÑΓá Σ«α¼áΓ¿α«-
- óá¡á ¡á ñ¿ß¬«ó«ñÑ ß ¡á¿¼Ñ¡∞Φ¿Ñ⌐ ߬«α«ßΓ∞ε óαáΘÑ¡¿∩, ¿ íπñÑΓ ¼«ñ¿Σ¿-
- µ¿α«óá¡á ¡á ñ¿ß¬«ó«ñÑ ß ßἫ⌐ íδßΓα«⌐ ߬«α«ßΓ∞ε óαáΘÑ¡¿∩. é Γᬫ¼
- ß½πτáÑ ¡Ñ«íσ«ñ¿¼« αѺÑαó¿α«óáΓ∞ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ ( 512 + 62 ) * ( 2 *
- 2.5% ) íá⌐Γ ñ½∩ ¼ÑªßÑ¬Γ«α¡«ú« »α«¼ÑªπΓ¬á (62 - ¼¿¡¿¼á½∞¡δ⌐ αẼÑα
- ºáú«½«ó¬á ßÑ¬Γ«αá ñ½∩ Σ«α¼áΓá MFM). ¥Γ« »α¿óÑñÑΓ ¬ ¼¿¡¿¼á½∞¡«¼π »α«-
- ¼ÑªπΓ¬π ó 29 íá⌐Γ«ó, ΓᬠτΓ« ñáªÑ Σ«α¼áΓ 10 ßÑ¬Γ«α«ó ¡á ñ«α«ª¬π íπ-
- ñÑΓ ¡«α¼á½∞¡δ¼ »α¿ Γᬿσ «Γ¬½«¡Ñ¡¿∩σ.
- ùΓ«íδ »«ññÑনóáΓ∞ ß«ó¼ÑßΓ¿¼«ßΓ∞ (»« ¬αá⌐¡Ñ⌐ ¼ÑαÑ, τáßΓ¿τ¡πε)
- Σ«α¼áΓá ¡á 40 ñ«α«ªÑ¬ ß 80-ñ«α«ªÑτ¡δ¼ ñ¿ß¬«ó«ñ«¼ óδß«¬«⌐ »½«Γ¡«ßΓ¿
- (HD), »Ñαóδ⌐ ¼«ñѽ¿απεΓß∩ »πΓѼ »α«»π߬á óßÑσ ¡ÑτÑΓ¡δσ ñ«α«ªÑ¬. æ½Ñ-
- ñ«óáΓѽ∞¡«, 360K ñ¿ß¬¿, ºá»¿ßδóáѼδÑ ó 360K ñ¿ß¬«ó«ñÑ óßÑúñá ¼«ª¡«
- »α«τ¿ΓáΓ∞ ¡á HD-ñ¿ß¬«ó«ñÑ, ¡« 360K ñ¿ß¬ÑΓá ºá»¿ßδóáѼá∩ ó HD-ñ¿ß¬«-
- ó«ñÑ ¼«ªÑΓ íδΓ∞ ¡Ñß«ó¼ÑßΓ¿¼δ⌐ ß 360K ñ¿ß¬«ó«ñἿ.
- Æ.¬. ¬½ετÑóδÑ ñ¿ß¬ÑΓδ »«τΓ¿ óßÑúñá óδ»«½¡∩εΓß∩ ¡á 360K ñ¿ß¬«ó«-
- ñáσ, ¼δ íπñѼ ¡Ñ íπñѼ αáßß¼áΓα¿óáΓ∞ óßÑ Σ«α¼áΓδ óδß«¬«⌐ »½«Γ¡«ßΓ¿
- ó««íΘÑ.
-
- 1.3 滫߫í óαѼ∩¡Ñºáó¿ß¿¼«⌐ ºáΘ¿Γδ
-
- îδ íπñÑΓ αáßß¼áΓα¿óáΓ∞ ñ¿ß¬«óδÑ ¼ÑΓ¬¿ ºáΘ¿Γδ, ¬«Γ«αδÑ ¡Ñ ¼«úπΓ
- íδΓ∞ »α«óÑαÑ¡δ íѺ »α¿¼Ñ¡Ñ¡¿∩ ñαπú¿σ πßΓα«⌐ßΓó, ¬á¬ ßá¼ FDC. ¥Γ«Γ
- ß»«ß«í ñ«½ªÑ¡ αáí«ΓáΓ∞ ¡á ½εí«¼ ß¿ßΓѼ¡«¼ «í«απñ«óá¡¿¿ ß ß«ó¼ÑßΓ¿¼δ¼
- FDC.
- Åα¿¼Ñτá¡¿Ñ: óßÑúñá, ¬«úñá ¼δ íπñѼ π»«¼¿¡áΓ∞ í¿Γ-¬«»¿α«óΘ¿¬, φΓ«
- íπñÑΓ «Γ¡«ß¿Γ∞ß∩ »«ß½Ññ¡Ñ⌐ º¡á¬«¼«⌐ ¡á¼ óÑαß¿¿. é« óß∩¬«¼ ß½πτáÑ,
- φΓ« ¡Ñ »«ß½Ññ¡¿Ñ ßπΘÑßΓóπεΘ¿Ñ óÑαß¿¿. îδ ¿¼ÑѼ ¬«»¿¿ (ºá»αÑΘÑ¡¡δÑ »«
- »α¿τ¿¡á¼, π»«¼∩¡πΓδ¼ ó »αÑñ¿ß½«ó¿¿) Copy II αÑ὿ºáµ¿¿ PC 7.10,
- CopyWrite αÑñᬵ¿¿ ßÑ¡Γ∩íα∩ 1988 ¿ TeleDisk óÑαß¿¿ 2.11.
- Åα¿¼Ñτá¡¿Ñ: πΓóÑαªñÑ¡¿Ñ "¡Ñ ¼«ªÑΓ ó«ß»α«¿ºó«ñ¿Γ∞ß∩", »α¿¼Ñ¡∩Ѽ«Ñ
- áóΓ«α«¼ ¬ Γ«⌐ ¿½¿ ñαπú«⌐ ¼Ñ⪥ ºáΘ¿Γδ, π¬áºδóáÑΓ ¡Ñ ¡á Σ¿º¿τÑ߬¿Ñ
- «úαá¡¿τÑ¡¿∩ á»»áαáΓ¡δσ ßαÑñßΓó PC, ¡« ¡á «úαá¡¿τÑ¡¡«ßΓ∞ ¼«¿σ º¡á¡¿-
- ¿⌐. Å«φΓ«¼π ∩ íπñπ í½áú«ñáαÑ¡ óßѼ, ¬Γ« αáßΦ¿α¿Γ ¿σ.
-
- 1.3.1 ä«»«½¡¿Γѽ∞¡δÑ ¿½¿ «ΓßπΓßΓóπεΘ¿Ñ ßÑ¬Γ«αá
-
- Æá¬ ¬á¬ »ÑαóδÑ ñ¿ß¬ÑΓδ îæ-äÄæ ¿¼Ñ½¿ ¼¡«ú« ¡Ñ¿ß»«½∞ºπѼ«ú« »α«ßΓ-
- αá¡ßΓóá ¡á ñ«α«ª¬Ñ, «τÑó¿ñ¡á∩ ¿ñÑ∩ - ß«σαá¡∩Γ∞ ñ«»«½¡¿Γѽ∞¡δ⌐ ßÑ¬Γ«α
- ¡á ñ«α«ª¬Ñ ¡áα∩ñπ ß ßΓá¡ñáαΓ¡δ¼¿ ßÑ¬Γ«αἿ îæ-äÄæ. äáªÑ ú«αáºñ« ½πτ-
- ΦÑ π»á¬«óá¡¡δÑ Σ«α¼áΓδ 10 ßÑ¬Γ«α«ó ¡á ñ«α«ª¬Ñ ß»«ß«í¡δ αẼÑΘáΓ∞ ñ«-
- »«½¡¿Γѽ∞¡δ⌐ 256-íá⌐Γ¡δ⌐ ßÑ¬Γ«α. äαπú«Ñ ¼ÑßΓ« ñ½∩ αẼÑΘÑ¡¿∩ Γᬿσ
- ñ«»«½¡¿Γѽ∞¡δσ ßÑ¬Γ«α«ó - 41-∩ ñ«α«ª¬á, ¬«Γ«αá∩ ¡Ñ ¿ß»«½∞ºπÑΓß∩ äÄæ,
- ¡« ¬ ¬«Γ«α«⌐ ¼«ªÑΓ «íαáΘáΓ∞ß∩ í«½∞Φ¿¡ßΓó« ñ¿ß¬«ó«ñ«ó. ìá 80-ñ«α«ªÑτ-
- ¡δσ ñ¿ß¬«ó«ñáσ ñ«»«½¡¿Γѽ∞¡δÑ ßÑ¬Γ«αá ¼«úπΓ ß¬αδóáΓ∞ß∩ ¡á ¡ÑτÑΓ¡δσ
- ñ«α«ª¬áσ.
- ÆÑ»Ñα∞, Γá¬á∩ ¼ÑΓ¬á ßá¼á »« ßÑíÑ ¡Ñ ¼«ªÑΓ αáßß¼áΓα¿óáΓ∞ß∩ ¬á¬ σ«-
-
- - 13 -
- α«Φá∩ ºáΘ¿Γá «Γ ¬«»¿α«óá¡¿∩, »«Γ«¼π τΓ« ñ«»«½¡¿Γѽ∞¡δÑ ßÑ¬Γ«αá ¼«úπΓ
- íδΓ∞ ½Ñú¬« «í¡áαπªÑ¡δ ¬«¼á¡ñ«⌐ τΓÑ¡¿∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá. ïεí«⌐
- »«ßΓáó½∩Ѽδ⌐ ¡á αδ¡«¬ í¿Γ-¬«»¿α«óΘ¿¬ (CopyWrite, CopyIIPC, TeleDisk,
- ¿ Γ.ñ.) ß»«ß«íÑ¡ ßñѽáΓ∞ φΓ«. (ò«Γ∩, ßÑ¬Γ«αá ¡á ¡ÑτÑΓ¡δσ ñ«α«ª¬áσ ¡Ñ
- íπñπΓ «í¡áαπªÑ¡δ ¡Ñ¬«Γ«α묨 »α«úαá¼¼). ò«α«Φ¿Ñ αạ«ó¿ñ¡«ßΓ¿ φΓ«⌐
- ßσÑ¼δ »α¿óÑñÑ¡δ ó αáºñѽáσ 1.3.4 - 1.3.8.
-
- 1.3.2 æ½áíδÑ ñó«¿τ¡δÑ αáºα∩ñδ
-
- äαπú«⌐ ßΓáαδ⌐ σ«α«Φ¿⌐ ß»«ß«í ºáΘ¿Γδ - ñá¡¡δÑ , ¬«Γ«αδÑ íπñπΓ αáº-
- ½¿τ¡δ¼¿ ó »«ß½ÑñπεΘ¿σ «»Ñαᵿ∩σ τΓÑ¡¿∩ (Γ.¡. "ß½áíδÑ ñá¡¡δÑ"). æ½á-
- íδÑ ñá¡¡δÑ ¼«úπΓ íδΓ∞ ½εí묨 ñá¡¡δ¼¿, αáß»«½«ªÑ¡¡δ¼¿ ó µ¿Σα«ó«⌐ "¡Ñ-
- «»αÑñѽѡ¡«⌐ «í½áßΓ¿" ¿½¿ ñ½¿¡¡δ¼ α∩ñ«¼ ¡π½Ñ⌐ ß »α«»πΘÑ¡¡δ¼¿ í¿ΓἿ
- ß¿¡σα«¡¿ºáµ¿¿. é »Ñαó«¼ ß½πτáÑ, FDC íπñÑΓ π»αáó½∩Γ∞ß∩ »α«¿ºó«½∞¡δ¼
- Φπ¼«¼. é »«ß½Ññ¡Ñ¼ ß½πτáÑ, »α«¿ºó«½∞¡δÑ ¿º¼Ñ¡Ñ¡¿∩ ó« óαáΘÑ¡¿¿ ñ¿ß¬«-
- ó«ñá íπñπΓ »ÑαѼÑΘáΓ∞ í¿Γ«óπε ∩τÑ⌐¬π ºá ß¿¡σα«¡¿ºáµ¿ε (Γá¬¿Ñ ñá¡¡δÑ
- ¡Ñ ¼«úπΓ ºá»¿ßδóáΓ∞ß∩ íѺ ¼«ñ¿Σ¿¬áµ¿¿ á»»áαáΓπαδ FDC, ΓᬠτΓ« ¼δ ¡Ñ
- íπñѼ «íßπªñáΓ∞ ¿σ).
- Äñ¿¡ σ«α«Φ¿⌐ ß»«ß«í úÑ¡Ñα¿α«óáΓ∞ ß½áíδÑ ñá¡¡δÑ ß«ßΓo¿Γ ó Γ«¼,
- τΓ«íδ »«¼ÑΘáΓ∞ ¿σ «¬«½« ñÑΣѬΓá »«óÑασ¡«ßΓ¿. Æá¬¿Ñ ß½áíδÑ ñá¡¡δÑ ¡Ñ
- íπñπΓ ¿ßτѺáΓ∞ »«ß½Ñ ¬«¼á¡ñδ ºá»¿ß¿ ñá¡¡δσ ó φëà ßÑ¬Γ«αá. è ß«ªá½Ñ-
- ¡¿ε (σá!), ºáó«ñ߬¿Ñ ñÑΣѬΓδ »«óÑασ¡«ßΓ¿ ΓÑ»Ñα∞ αÑñ¬¿, ΓᬠτΓ« ¡πª¡«
- ñѽáΓ∞ ¿σ óαπτ¡πε. îδ ó¿ñѽ¿ ¼¡«ú« Γᬿσ ß»«ß«í«ó - «Γ µáαá»á¡∞∩
- ñ¿ß¬á αªáóδ¼ úó«ºñѼ ñ« »α«ª¿úá¡¿∩ óÑασ¡«ßΓ¿ ¿¡Σαá¬αáß¡δ¼ ½áºÑα«¼.
- Äñ¡á¬«, φΓ« Ññóá ½¿ »α«úαá¼¼¿ßΓ߬á∩ »α«í½Ñ¼á.
- æ½áíδÑ ñó«¿τ¡δÑ αáºα∩ñδ ¼«ú½¿ ß«ºñáóáΓ∞ß∩ Γá¬ªÑ »α«úαá¼¼¡«. ÅÑα-
- óδ⌐ ß»«ß«í - π»αáó½∩Γ∞ í¿Γ«¼ óδí«αá/«Γ¼Ñ¡δ ñ¿ß¬«ó«ñá ó αÑú¿ßΓαÑ µ¿Σ-
- α«ó«ú« óδó«ñá (3F2h). ìá»α¿¼Ñα, Ñß½¿ óδ σ«Γ¿ΓÑ ß«ºñáóΓ∞ ß½áíδ⌐ íá⌐Γ
- ¡á ñ¿ß¬«ó«ñÑ A:, óδ ñ«½ª¡δ ¡áτáΓ∞ «»Ñαáµ¿ε ºá»¿ß¿, »«ñ«ªñáΓ∞, »«¬á
- ªÑ½áѼδ⌐ íá⌐Γ ¡Ñ íπñÑΓ »ÑαѼÑΘÑ¡ ¡á ñ¿ß¬«ó«ñ (¡« ¡Ñ ¡á FDC !) ¿ »«ó-
- Γ«α¿Γ∞ »«ßδ½¬π µ¿Σα«ó«¼π αÑú¿ßΓαπ º¡áτÑ¡¿⌐ 1Dh (óδí«α ñ¿ß¬«ó«ñá 1) ¿
- 1Ch (óδí«α ñ¿ß¬«ó«ñá 0) ó« óαѼ∩ »ÑαѼÑΘÑ¡¿∩ íá⌐Γá. Æá¬á∩ «»Ñαᵿ∩
- íπñÑΓ ¼«ñπ½¿α«óáΓ∞ óßÑ ñá¡¡δÑ (ó¬½ετÑ¡¿Ñ í¿Γδ ß¿¡σα«¡¿ºáµ¿¿) ºá»¿ßδ-
- óáѼδÑ ¡á ñ¿ß¬ »α∩¼«πú«½∞¡δ¼¿ ¿¼»π½∞ßἿ, »ÑαѼÑΘá∩ ¿σ ó ¡Ñ«»αÑñÑ-
- ½Ñ¡¡πε «í½áßΓ∞.
- éΓ«α«⌐ ¼ÑΓ«ñ ΓαÑíπÑΓ »«τΓ¿ Γᬫ⌐ ªÑ «»Ñαᵿ¿ ß αÑú¿ßΓα«¼ π»αáó½Ñ-
- ¡¿∩ ñ¿ß¬ÑΓδ (3F7h). ÅÑαѬ½ετÑ¡¿Ñ ߬«α«ßΓ¿ »ÑαÑñáτ¿ ñá¡¡δσ íπñÑΓ »Ñ-
- αÑαẼÑΘáΓ∞ ñá¡¡δÑ ¿ í¿Γδ ß¿¡σα«¡¿ºáµ¿¿ ¿ ñÑΣ«α¼¿α«óáΓ∞ ¿σ, ΓᬪÑ
- »ÑαѼÑΘá∩ ó ¡Ñ«»αÑñѽѡ¡πε «í½áßΓ∞.
- ü¿Γ-¬«»¿α«óΘ¿¬, ßΓὬ¿óá∩ß∞ ß« ß½áí묨 ñá¡¡δ¼¿, óßΓáÑΓ »ÑαÑñ ¿¡-
- ΓÑαÑß¡«⌐ ñ¿½Ñ¼¼«⌐: ∩ó½∩εΓß∩ ½¿ ß½áíδÑ í¿Γδ ß½ÑñßΓó¿Ñ¼ ¡Ñ«»«º¡á¡¡«ú«
- ñÑΣѬΓá »«óÑασ¡«ßΓ¿, ¿ «»Ñαᵿ∩ ñ«½ª¡á »«óΓ«α∩Γ∞ß∩, »«¬á »Ñαó«¡á-
- τá½∞¡δÑ ñá¡¡δÑ ¡Ñ íπñπΓ ó«ßßΓá¡«ó½Ñ¡δ, ¿½¿ φΓ« ¼ÑΓ¬á ºáΘ¿Γδ, ¬«Γ«αá∩
- ñ«½ª¡á íδΓ∞ ó«ß»α«¿ºóÑñÑ¡á ó« ¿¼∩ Ñú« »«½¡«⌐ ß½áóδ?
- êº óßÑσ í¿Γ-¬«»¿α«óΘ¿¬«ó, ß ¬«Γ«α묨 ¼δ ßΓὬ¿ó὿ß∞, Γ«½∞¬«
- CopyWrite íδ½ ß»«ß«í¡Ñ¡ ß»αáó½∩Γ∞ß∩ ß« ß½áí묨 ñá¡¡δ¼¿, σ«Γ∩ φΓ«
- »αÑ«íαẫóδóáÑΓ «ñ¿¡ ß½áíδ⌐ íá⌐Γ ó 10- 12 íá⌐Γ«ó, ΓᬠτΓ« »Ñαó«¡á-
- τá½∞¡πε ¼ÑΓ¬π ¼«ª¡« ½Ñú¬« «Γ½¿τ¿Γ∞ «Γ ¬«»¿¿. Æá¬¿¼ «íαẫ¼, ß½áíδÑ
- ñá¡¡δÑ - ¡Ñ Γá¬á∩ »½«σá∩ óÑΘ∞ ñ½∩ ñÑΦÑó«⌐ ºáΘ¿Γδ ¿ íπñÑΓ, «τÑó¿ñ¡«,
- »«»π½∩α¡á ó æææÉ ¡á «ΓÑτÑßΓóÑ¡¡«¼ »α«úαá¼¼¡«¼ «íÑß»ÑτÑ¡¿¿.
-
- 1.3.3 äá¡¡δÑ ó »α«¼ÑªπΓ¬Ñ
-
- ¡« ½Ñú¬« ß«σαá¡∩Γ∞ ¡Ñí«½∞Φ«Ñ ¬«½¿τÑßΓó« ñá¡¡δσ ó »α«¼ÑªπΓ¬Ñ
- »«ß½Ñ »«½∩ ñá¡¡δσ ßÑ¬Γ«αá (GAP 3). äѽá∩ φëà φëà ßÑ¬Γ«α ¡Ñ »ÑαѺá-
- »¿ßδóáѼδ¼, ¼ÑΓ¬á íπñÑΓ »«ßΓ«∩¡¡« ¡áσ«ñ¿Γ∞ß∩ ó »α«¼ÑªπΓ¬Ñ ó »«½¡«⌐
- ß«σαá¡¡«ßΓ¿. éÑασ¡¿⌐ ¬αá⌐ ñ½∩ τ¿ß½á íá⌐Γ«ó ñá¡¡δσ, ¬«Γ«α«Ñ ºá»¿ßδóá-
- ÑΓß∩ ó GAP 3, ºáñáÑΓß∩ º¡áτÑ¡¿Ñ¼ GPL ó ¬«¼á¡ñÑ Σ«α¼áΓá ñ«α«ª¬¿. Åα«-
- óÑα¬á Γᬫ⌐ ¼ÑΓ¬¿ »α«ßΓá (»« ¬αá⌐¡Ñ⌐ ¼ÑαÑ, ñ½∩ »Ñαó«ú« ßÑ¬Γ«αá ¡á
- ñ«α«ª¬Ñ) - τ¿ΓáεΓ ¬«¼á¡ñπ ñ«α«ª¬¿ ß N ¡á Ññ¿¡¿µπ í«½∞ΦÑ Σá¬Γ¿τÑ߬«ú«
- º¡áτÑ¡¿∩ ó ¿ñÑ¡Γ¿Σ¿¬áΓ«αÑ ßÑ¬Γ«αá, τΓ« íπñÑΓ ºáúαπªáΓ∞ ñá¡¡δÑ »α«¼Ñ-
- ªπΓ¬á ó »á¼∩Γ∞.
- æ«σαá¡Ñ¡¿Ñ ñá¡¡δσ ó »α«¼Ñªπ⪥ ΓαÑíπÑΓ í«½∞ÑÑ ß½«ª¡«⌐ »α«µÑñπαδ.
-
- - 14 -
- ÅαÑñ»«½«ª¿¼, τΓ« óδ ªÑ½áÑΓÑ ß«σαá¡¿Γ∞ 10 íá⌐Γ«ó ñá¡¡δσ ó »α«¼ÑªπΓ¬Ñ
- »Ñαó«ú« 512-íá⌐Γ«ó«ú« ßÑ¬Γ«αá ¡á ñ«α«ª¬Ñ 0 ú«½«ó¬¿ 0. ìπª¡« ß¡áτá½á
- Σ«α¼áΓ¿α«óáΓ∞ ñ«α«ª¬π 0, «»αÑñѽ∩∩ ¬«ñ ñ½¿¡δ 3 (1024 íá⌐Γ«ó) ñ½∩
- »Ñαó«ú« ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá, ¡« ¬«ñ ñ½¿¡δ 2 ñ½∩ »áαá¼ÑΓα«ó Σ«α¼á-
- Γá. çáΓѼ ¡áτ¿¡áÑΓß∩ «»Ñαᵿ∩ ºá»¿ß¿ ¡á ¿¼¿Γᵿ¿ 1024-íá⌐Γ«ó«ú« ßѬ-
- Γ«αá, ¡« «ßΓá¡áó½¿óáÑΓß∩ »«ß½Ñ »ÑαÑß佬¿ 526 íá⌐Γ«ó (ñá¡¡δÑ ßÑ¬Γ«αá
- ß 512 íá⌐ΓἿ + 2-íá⌐Γ«óá∩ CRC + 10-íá⌐Γ«óδ⌐ »α«¼ÑªπΓ«¬ + 4-íá⌐Γ«óδ⌐
- ¬«¡Ñµ ñ½∩ íѺ«»áß¡«ßΓ¿). çáΓѼ ¡Ñ«íσ«ñ¿¼« ¡áτáΓ∞ «»Ñαᵿε Σ«α¼áΓá
- ñ«α«ª¬¿ ¬«ñ«¼ ñ½¿¡δ 2 (¬á¬ ñ½∩ »áαá¼ÑΓα«ó Σ«α¼áΓá, Γᬠ¿ ñ½∩ ¿ñÑ¡Γ¿-
- Σ¿¬áΓ«αá ßÑ¬Γ«αá) ¿ «ßΓá¡«ó¿Γ∞ ÑÑ úñÑ-¡¿íπñ∞ ó¡πΓα¿ GAP 2 (¿ñÑ¡Γ¿Σ¿-
- ¬áΓ«α ßÑ¬Γ«αá πªÑ ºá»¿ßá¡, ¡« »«½Ñ ñá¡¡δσ ÑΘÑ ¡Ñ ßπΘÑßΓóπÑΓ). èá¬
- «»Ñαᵿ∩ Σ«α¼áΓá, Γᬠ¿ ºá»¿ß¿ ¼«úπΓ «ßΓá¡áó½¿óáΓ∞ß∩ ½¿í« ßíα«ß«¼
- ¬«¡Γα«½½Ñαá (»«ß佬á 0 ¡á αÑú¿ßΓα µ¿Σα«ó«ú« óδó«ñá 3F2h), ¿½¿ ¿º¼Ñ-
- ¡Ñ¡¿Ñ¼ óδíαá¡¡«ú« ñ¿ß¬«ó«ñá (ß¼. 1.3.2).
- è ß«ªá½Ñ¡¿ε, ¿¡«úñá íδΓóáÑΓ Γαπñ¡« αẽ¿τ¿Γ∞ "»πßΓ«⌐" »α«¼ÑªπΓ«¬
- «Γ »α«¼ÑªπΓ¬á, ß«ñÑαªáΘÑú« ñá¡¡δÑ ºáΘ¿Γδ. æΓáαδÑ ñ¿ß¬«ó«ñδ ¿¼Ñ½¿ «Γ-
- ¡«ß¿Γѽ∞¡« í«½∞Φ¿Ñ ¬«φΣΣ¿µ¿Ñ¡Γδ «ß½áí½Ñ¡¿∩ ß¿ú¡á½á ºá»¿ß¿, ΓᬠτΓ«
- »α«¼ÑªπΓ¬¿, ºá»¿ßδóáѼδÑ ¡á Γᬿσ ñ¿ß¬«ó«ñáσ, ºá»«½¡∩½¿ß∞ »α«¿ºó«½∞-
- ¡δ¼ ¼πß«α«¼, ¬«Γ«αδ⌐ ¼«ª¡« ¡ÑóÑα¡« ¿¡ΓÑα»αÑΓ¿α«óáΓ∞, ¬á¬ ñó«¿τ¡δÑ
- ñá¡¡δÑ ºáΘ¿Γδ. Åα«Ñ¬Γ¿α«óΘ¿¬ ßσѼ ºáΘ¿Γδ ¼«ªÑΓ π½πτΦ¿Γ∞ φëà ¡Ñ-
- ñ«ßΓáΓ«¬, ¿ß»«½∞ºπ∩ ß½áíδÑ í¿Γδ (1.3.2) ó¡πΓα¿ »α«¼ÑªπΓ¬á ºáΘ¿ΘÑ¡¡δσ
- ñá¡¡δσ.
- æαÑñ¿ π»«¼∩¡πΓδσ í¿Γ-¬«»¿α«óΘ¿¬«ó Γ«½∞¬« CopyWrite íδ½ ß»«ß«íÑ¡
- «í¡áαπª¿óáΓ∞ ñá¡¡δÑ ó »α«¼ÑªπΓ¬Ñ. Äñ¡« ½εí«»δΓ¡«Ñ ¿ß¬½ετÑ¡¿Ñ - »Ñα-
- óδ⌐ ßÑ¬Γ«α ñ«α«ª¬¿ 0, ú«½«ó¬á 0, ¬«Γ«αδ⌐ »αÑñ¡á¼ÑαÑ¡¡« ¿ú¡«α¿απÑΓß∩
- CopyWrite ¬á¬ ¼ÑßΓ« ñ½∩ ñá¡¡δσ »α«¼ÑªπΓ¬á.
-
- 1.3.4 æÑ¬Γ«αá íѺ ¼ÑΓ¬¿ áñαÑßá ñá¡¡δσ
-
- æÑ¬Γ«αá íѺ ¼ÑΓ¬¿ áñαÑßá ñá¡¡δσ íπñπΓ úÑ¡Ñα¿α«óáΓ∞ «Φ¿í¬π
- «ΓßπΓßΓó¿∩ ñá¡¡δσ (íπñÑΓ πßΓá¡«ó½Ñ¡ í¿Γ MA ó ST0 ¿ í¿Γ MD ó ST2) ó«
- óαѼ∩ «»Ñαµ¿⌐ τΓÑ¡¿∩ ¿ ºá»¿ß¿. 諼á¡ñá τΓÑ¡¿∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá
- íπñÑΓ ¡á Γᬫ¼ ßÑ¬Γ«αÑ íπñÑΓ ºáóÑαΦáΓ∞ß∩ «íδτ¡«.
- æ«σαá¡Ñ¡¿Ñ ßÑ¬Γ«αá íѺ áñαÑß¡«⌐ ¼ÑΓ¬¿ ñá¡¡δσ ΓαÑíπÑΓ »α«ßΓ«⌐ «»Ñ-
- αᵿ¿ Σ«α¼áΓá, ¬«Γ«αá∩ ñ«½ª¡á «ßΓá¡áó½¿óáΓ∞ß∩ »«ß½Ñ ºá»¿ß¿ áñαÑß¡«⌐
- ¼ÑΓ¬¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá, ¡« »ÑαÑñ ºá»¿ß∞ε áñαÑß¡«⌐ ¼ÑΓ¬¿ ñá¡¡δσ
- (¬á¬ ó 1.3.3). 䫽ª¡á ß«í½εñáΓ∞ß∩ «ß«íá∩á∩ «ßë᫪¡«ßΓ∞ τΓ«íδ πñá-
- ½¿Γ∞ αá¡ÑÑ ßπΘÑßΓó«óáóΦπε áñαÑß¡πε ¼ÑΓ¬π ñá¡¡δσ, ¿ß»«½∞ºπ∩ ñ¿ß¬¿,
- ßΓÑαΓδÑ ¿½¿ φ½Ñ¬Γα«¼áú¡¿Γ¡«, ¿½¿ »αÑñóáα¿Γѽ∞¡δ¼ Σ«α¼áΓ«¼ ß αẽ¿τ-
- ¡«⌐ ߬«α«ßΓε »ÑαÑß佬¿ ñá¡¡δσ. ǽ∞ΓÑα¡áΓ¿ó¡δ⌐ ß»«ß«í (¬«Γ«αδ⌐ ¡Ñ íπ-
- ñÑΓ αáí«ΓáΓ∞ ñ½∩ »Ñαó«ú« ßÑ¬Γ«αá ¡á ñ«α«ª¬Ñ): ß¡áτá½á Σ«α¼áΓ¿απ⌐ΓÑ
- ñ«α«ª¬π ß« º¡áτÑ¡¿Ñ¼ GPL, óδíαá¡¡δ¼ Γá¬, τΓ«íδ »«¼ßΓ¿Γ∞ »«½Ñ ñá¡¡δσ
- Γá¼, úñÑ ß¿¡σα«¡¿ºáΓ«α áñαÑß¡á«⌐ ¼ÑΓ¬¿ »«½∩ ñá¡¡δσ ñ«½ªÑ¡ ¡áτ¿¡áΓ∞ß∩
- ¡á µÑ½Ñó«¼ ñ¿ß¬Ñ. é«-óΓ«αδσ, »ÑαÑΣ«α¼áΓ¿απ⌐ΓÑ ñ«α«ª¬π ß ªÑ½áΓѽ∞¡δ¼
- º¡áτÑ¡¿Ñ¼ GPL ¿ «ßΓá¡«ó«¼ »αѪñÑ, τѼ ºá»¿ΦÑΓß∩ áñαÑß¡á∩ ¼ÑΓ¬á ßѬ-
- Γ«αá.
-
- 1.3.5 æÑ¬Γ«αá íѺ áñαÑß¡«⌐ ¼ÑΓ¬¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá
-
- æÑ¬Γ«αá íѺ áñαÑß¡«⌐ ¼ÑΓ¬¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ¼«ª¡« ºá»¿ßáΓ∞ ó ß½Ññπ-
- εΘ¿¼ «íαẫ¼:
- ö«α¼áΓ¿απ⌐ΓÑ ñ«α«ª¬π, ß«σαá¡∩∩ ¬«ñ ñ½¿¡δ N + 1 ñ½∩ ßÑ¬Γ«αá,
- αáß»«½«ªÑ¡¡«ú« »ÑαÑñ ¿¡ΓÑαÑßπεΘ¿¼. çáΓѼ ßτ¿Γá⌐ΓÑ ß«ñÑαªá¡¿Ñ φΓ«ú«
- Σ¿¬Γ¿ó¡«ú« ßÑ¬Γ«αá ¿ ºá»¿Φ¿ΓÑ Ñú« «íαáΓ¡«, «ßΓá¡áó½¿óá∩ «»Ñαᵿε,
- ¬«úñá áñαÑß¡á∩ ¼ÑΓ¬á ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá πªÑ »ÑαÑ»¿ßá¡á, á áñ-
- αÑß¡á∩ ¼ÑΓ¬á ñá¡¡δσ - ÑΘÑ ¡ÑΓ. ÆÑ»Ñα∞ óδ ¿¼ÑÑΓÑ ßÑ¬Γ«α íѺ áñαÑß¡«⌐
- ¼ÑΓ¬¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá. Æá¬«⌐ ßÑ¬Γ«α ¡Ñ íπñÑΓ »α¿¡¿¼áΓ∞ πτáßΓ¿Ñ ó ½ε-
- íδσ FDC-«»Ñαᵿ∩σ. Ä¡ ¡Ñ ¼«ªÑΓ íδΓ∞, ó««íΘÑ ú«ó«α∩, ßτ¿Γá¡ ½εí«⌐ ¬«-
- ¼á¡ñ«⌐ íѺ ߻ѵ¿á½∞¡δσ ¼Ñα, Γᬠ¬á¬ «¡ »«τΓ¿ ¡Ñ ßπΘÑßΓóπÑΓ.
- ì¿ «ñ¿¡ ¿º »α«óÑαÑ¡¡δσ í¿Γ-¬«»¿α«óΘ¿¬«ó ¡Ñ íδ½ ß»«ß«í¡δ⌐ αáß»«º-
- ¡áóáΓ∞ Γá¬¿Ñ ßÑ¬Γ«αá (¡« ½εí«⌐ á»»áαáΓ¡δ⌐ í¿Γ-¬«»¿α«óΘ¿¬ ß»«ß«íÑ¡
- ßñѽáΓ∞ φΓ«), ΓᬠτΓ« «ΓßπΓßΓó¿Ñ áñαÑß¡«⌐ ¼ÑΓ¬¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ¼«ªÑΓ
- αáßß¼áΓα¿óáΓ∞ß∩ ¬á¬ σ«α«Φá∩ ºáΘ¿Γá . Äñ¡á¬«, Γαπñ¡«ßΓ¿ »α«óÑન ñÑ-
-
- - 15 -
- ½áεΓ Γá¬πε ¼ÑΓ¬π ó "ª¿óδσ" ßσѼσ ºáΘ¿Γδ ¬αá⌐¡Ñ ¼á½«óÑα«∩Γ¡«⌐. (ì«
- ß¼. 1.3.10).
-
- 1.3.6 æÑ¬Γ«αá ß »½«σ«⌐ áñαÑß¡«⌐ ¼ÑΓ¬«⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá
-
- ¥Γá ¼ÑΓ¬á «Γ½¿τáÑΓß∩ «Γ 1.3.5 Γ«½∞¬« ßΓѻѡ∞ε ¿ß¬áªÑ¡¿∩ áñαÑß¡«⌐
- ¼ÑΓ¬¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá. çñÑß∞ FDC ÑΘÑ ß»«ß«íÑ¡ αáß»«º¡áóáΓ∞ áñαÑß¡πε
- ¼ÑΓ¬π ¿ñÑ¡Γ¿Σ¿¬áΓ«α, ¡« CRC »α«óÑα∩ÑΓ ¡Ñ»αáó¿½∞¡«. ¥Γá ¼ÑΓ¬á ¡Ñ ¼«-
- ªÑΓ íδΓ∞ «í¡áαπªÑ¡á ¬«¼á¡ñ«⌐ τΓÑ¡¿∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá, ¡« íπñÑΓ
- πßΓá¡áó½¿óáΓ∞ í¿Γ DE ó ST1 ¿ ßíαáßδóáΓ∞ í¿Γ DD ó ST2 ó ΓÑτÑ¡¿Ñ óδ-
- »«½¡Ñ¡¿∩ ¬«¼á¡ñδ τΓÑ¡¿∩ ßÑ¬Γ«αá, ΓᬠτΓ« º¡áτÑ¡¿∩ C/H/R/N íπñπΓ ¿º-
- óÑßΓ¡ ¿ »α«óÑα¬á ¡Ñ ß«ßΓáó¿Γ ¡¿¬á¬«⌐ »α«í½Ñ¼δ. æÑ¬Γ«α ß »½«σ«⌐ áñ-
- αÑß¡«⌐ ¼ÑΓ¬«⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá íπñÑΓ, «ñ¡á¬«, »«∩ó½∩Γ∞ß∩ ó ¬«¼á¡ñÑ
- τΓÑ¡¿∩ ñ«α«ª¬¿. Æ«úñá Γ«τ¡δÑ º¡áτÑ¡¿∩ íπñπΓ C/H/R/N ¡Ñ ¿ºóÑßΓ¡δ, ¡«
- ¿σ ÑΘÑ ¼«ª¡« »«½πτ¿Γ∞ ß½ÑñπεΘÑ⌐ »α«µÑñπα«⌐: º¡á∩ Γ«τ¡«⌐ »«º¿µ¿¿ »«½∩
- ñá¡¡δσ ¿º αẼÑα«ó óαѼѡ¿, ¼«ª¡« óδτ¿ß½¿Γ∞ »α¿í½¿º¿Γѽ∞¡πε »«º¿µ¿ε
- áñαÑß¡«⌐ ¼ÑΓ¬¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ¿ τ¿ΓáΓ∞ ÑÑ, ¿ß»«½∞ºπ∩ ¼ÑΓ«ñ¿¬π ñ«ßΓπ-
- »á ¬ í¿Γ«ó«⌐ ∩τÑ⌐¬Ñ (ß¼. 1.2.4) .
- ûÑ¡¡«⌐ ¼«ñ¿Σ¿¬áµ¿Ñ⌐ φΓ«⌐ ¼ÑΓ¬¿ ñ½∩ αáºαáí«Γτ¿¬á¿¬á ºáΘ¿Γδ «Γ ¬«»-
- α«óá¡¿∩ íπñÑΓ ¡Ññ«»πßΓ¿¼á∩ CRC ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá ¿ «ΓßπΓßΓó¿Ñ
- áñαÑß¡«⌐ ¼ÑΓ¬¿ ñá¡¡δσ. Æá¬«⌐ ßÑ¬Γ«α íπñÑΓ óδºδóáΓ∞ ºáóÑαΦÑ¡¿Ñ ¬«¼á¡-
- ñδ τΓÑ¡¿∩ ñ«α«ª¬¿, Γᬿ¼ «íαẫ¼ »αÑñ«ΓóαáΘá∩ «í¡áαπªÑ¡¿Ñ í¿Γ-¬«»¿-
- α«óΘ¿¬«¼ "¡«α¼á½∞¡δσ" ¼ÑΓ«¬ Γᬫú« Γ¿»á, αẼÑΘÑ¡¡δσ »«ß½Ñ ¡Ñú«.
- ùΓ«íδ ºá»¿ßáΓ∞ »½«σ«⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α, ¡πª¡« «ßΓá¡áó½¿óáΓ∞ «»Ñαᵿε
- Σ«α¼áΓá ó« óαѼ∩ ºá»¿ß¿ CRC áñαÑß¡«⌐ ¼ÑΓ¬¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá.
- (ÄΓ¼ÑΓ¿¼, τΓ« FDC ¿¼ÑÑΓ ó¡πΓαÑ¡¡¿⌐ íπΣÑα »α¿í½¿º¿Γѽ∞¡« ¡á 3 íá⌐Γá,
- ΓᬠτΓ« ¬«¡Γα«½½Ñα ¡áτ¿¡áÑΓ ºá»¿ß∞ CRC ¡Ñ ¬«úñá »«ß½Ññ¡¿⌐ íá⌐Γ ¿ñÑ¡-
- Γ¿Σ¿¬áΓ«αá »«ñá¡ ó DR, ¡« ß»πßΓ∩ ¡Ñ¬«Γ«α«Ñ óαѼ∩). CopyWrite αáß»«º-
- ¡áÑΓ ßÑ¬Γ«α ß »½«σ«⌐ áñαÑß¡«⌐ ¼ÑΓ¬«⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ¿ ¬«»¿απÑΓ Ñú«.
-
- 1.3.7 Å«½Ñ ñá¡¡δσ, »ÑαÑñáóáѼ«Ñ »« áñαÑß¡«⌐ ¼Ñ⪥ ¿¡ñѬßá
-
- îÑΓ¬¿ ºáΘ¿Γδ φΓ«ú« Γ¿»á »«∩󿽿ß∞, ¬«úñá ¬Γ«-Γ« ß»α«ß¿½: τΓ« íπ-
- ñÑΓ ñѽáΓ∞ FDC^ Ñß½¿ ¬«¼á¡ñá Σ«α¼áΓá ñ«α«ª¬¿ íπñÑΓ «»αÑñѽ∩Γ∞ «íΘπε
- ñ½¿¡π ñá¡¡δσ ¡á ñ«α«ª¬Ñ ¡Ñ¼¡«ú« í«½ΦÑ, τѼ ñ«α«ª¬á ¼«ªÑΓ ó¼ÑßΓ¿Γ∞?
- Éáßß¼«Γα¿¼ ß½ÑñπεΘ¿Ñ αѺπ½∞ΓáΓδ »«½πτÑ¡¡δÑ »α¿ Σ«α¼áΓ¿α«óá¡¿¿
- DD-ñ¿ß¬á ó HD-ñ¿ß¬«ó«ñÑ ß 13-ε 256-íá⌐Γ«ó묨 ßÑ¬Γ«αἿ ¿ αẽ¿τ¡δ¼¿
- º¡áτÑ¡¿∩¼¿ Gap 3 (ß¼ÑΘÑ¡¿∩ cÑ¬Γ«αá ¿º¼Ñα∩½¿ß∞ »« ¿¡ñѬߡ«¼π «Γ-
- óÑαßΓ¿ε). ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, τΓ« óαѼ∩ óαáΘÑ¡¿∩ ¿ß»«½∞ºπѼ«ú« ñ¿ß¬«-
- ó«ñá - 166.52 ¼ß.
-
- Æáí½¿µá 1.3.7
- ┌───────────────┬────────────────────┬──────────────────────┐
- │ ç¡áτÑ¡¿Ñ │ ìáτὫ ß¼ÑΘÑ¡¿∩ │ æ¼ÑΘÑ¡¿Ñ ßÑ¬Γ«αá 13h │
- │ GAP 3 │ 1 ßÑ¬Γ«αá │ ¡áτὫ ¬«¡Ñµ │
- ├───────────────┼────────────────────┼──────────────────────┤
- │ 01h │ 3.849 │ 156.981 165.46 │
- │ 08h │ 3.844 │ 160.334 2.29 │
- │ 10h │ «ΓßπΓßΓóπÑΓ │ 164.180 6.14 │
- │ 14h │ «ΓßπΓßΓóπÑΓ │ «ΓßπΓßΓóπÑΓ │
- │ 18h │ «ΓßπΓßΓóπÑΓ │ 1.519 10.00 │
- └───────────────┴────────────────────┴──────────────────────┘
-
- ¡« πó¿ñÑΓ∞, τΓ« ¿¼ÑÑΓß∩ ¼á½Ñ¡∞¬á∩ «í½áßΓ∞ ó ¡áτá½Ñ ñ«α«ª¬¿,
- ¬«Γ«αá∩ ¡Ñ ¿ß»«½∞ºπÑΓß∩ ñá¡¡δ¼¿ ßÑ¬Γ«αá (Σá¬Γ¿τÑ߬¿, «¡á ¿ß»«½∞ºπ-
- ÑΓß∩ áñαÑß¡«⌐ ¼ÑΓ¬«⌐ ¿¡ñѬßá). ¥Γá «í½áßΓ∞ ¼«ªÑΓ »ÑαѺỿßδóáΓ∞ß∩
- »«ß½Ññ¡¿¼ ßÑ¬Γ«α«¼ ¡á ñ«α«ª¬Ñ (¬á¬ ¡á óΓ«α«⌐ ßΓα«¬Ñ Γáí½¿µδ 1.3.7),
- ¡« Ñß½¿ »«ß½Ññ¡¿⌐ ßÑ¬Γ«α º¡áτ¡¿Γѽ∞¡« ¡á¬½áñδóáÑΓß∩ ¡á ¡áτὫ ñ«α«ª-
- ¬¿, ßÑ¬Γ«α 1 íπñÑΓ ßΓÑαΓ (ßΓ᫬á 3). àß½¿ ¡áτὫ »«½∩ ñá¡¡δσ »«ß½Ññ-
- ¡Ñú« ßÑ¬Γ«αá íπñÑΓ »ÑαÑσ«ñ¿Γ∞ τÑαѺ ¿¡ñѬߡ«Ñ «ΓóÑαßΓ¿Ñ (ßΓ᫬á 4),
- ¬«¡Γα«½½Ñα ºá»¿ΦÑΓ GAP 4 ñ« ß½ÑñπεΘÑú« ¼ÑßΓ«¡áσ«ªñÑ¡¿∩ ¿¡ñѬߡ«ú«
- «ΓóÑαßΓ¿∩, Γᬿ¼ «íαẫ¼ »ÑαѺỿßδóá∩ óßÑ ßπΘÑßΓóπεΘ¿Ñ ßÑ¬Γ«αá ¡á
- ñ«α«ª¬Ñ. àß½¿ ¡áτὫ áñαÑß¡«⌐ ¼ÑΓ¬¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá »αÑαÑσ«-
-
- - 16 -
- ñ¿Γ τÑαѺ ¿¡ñѬߡ«Ñ «ΓóÑαßΓ¿Ñ, (ßΓ᫬á 5), φëà ßÑ¬Γ«α Γá¬ªÑ íπñÑΓ
- ß«σαá¡Ñ¡, »ÑαѺỿßδóá∩ óßÑ ºá»¿ßá¡¡δÑ »ÑαÑñ φΓ¿¼ ßÑ¬Γ«αá.
- æÑ¬Γ«α, »ÑαÑñáεΘ¿⌐ß∩ »« IAM, ¼«ªÑΓ óδºδóáΓ∞ º¡áτ¿Γѽ∞¡δÑ »α«í½Ñ¼δ
- ñ½∩ í¿Γ-¬«»¿α«óΘ¿¬á, ¡Ñ αáß»«º¡áεΘÑú« Ñú« ßπΘÑßΓó«óá¡¿Ñ, »«φΓ«¼π
- í«½∞Φ¿¡ßΓó« ¼ÑΓ«¬ ºáΘ¿Γδ ß«ºñáεΓß∩ »«óΓ«α¡«⌐ «»ÑαᵿÑ⌐ Σ«α¼áΓá, ¬«-
- Γ«αá∩ íπñÑΓ αáºαπΦáΓ∞ ñá¡¡δÑ ó ßÑ¬Γ«αÑ ºá IAM. ì¿ «ñ¿Γ ¿º »α«óÑαÑ¡-
- ¡δσ í¿Γ-¬«»¿α«óΘ¿¬«ó ¡Ñ íδ½ ß»«ß«í¡δ⌐ ó«ß»α«¿ºó«ñ¿Γ∞ Γá¬¿Ñ ßÑ¬Γ«αá
- (Γ« ÑßΓ∞ , ß«σαá¡∩Γ∞ ¿ ñá¡¡δÑ ßÑ¬Γ«αá ¿ Ñú« »«º¿µ¿ε) , »«φΓ«¼π Γá¬á∩
- ¼ÑΓ¬á φ¬ßΓÑ¡ß¿ó¡« ¿ß»«½∞ºπѼδ⌐ ó ßσѼáσ ºáΘ¿Γδ ¬«»¿¿ ó æææÉ.
-
- 1.3.8 î¡«ú«ß¬«α«ßΓ¡δÑ ñ«α«ª¬¿
-
- èᬠ¼δ ó¿ñѽ¿ ó »αÑñδñπΘѼ αáºñѽÑ, FDC ¿ú¡«α¿απÑΓ IAM ó ¡áτá½Ñ
- ñ«α«ª¬¿, ΓᬠτΓ« ßÑ¬Γ«αá ¼«úπΓ »«∩ó½∩Γ∞ß∩ ó ½εí«¼ ¼ÑßΓÑ ó¡πΓα¿ ñ«-
- ᫪¬¿. æ½Ññ«óáΓѽ∞¡«, «τÑó¿ñ¡á∩ ¿ñÑ∩ - »«½πτ¿Γ∞ πτáßΓ¬¿ ñ«α«ª¬¿, ºá-
- »¿ßδóáѼδÑ ß αẽ¿τ¡«⌐ ߬«α«ßΓ∞ε »ÑαÑß佬¿ ñá¡¡δσ. (½πτΦÑ óßÑú« óδ-
- »«½¡¿Γ∞ φΓ« ¡Ñ »α¿ »ÑαѬ½ετÑ¡¿¿ ߬«α«ßΓ¿ »ÑαÑß佬¿ ó ΓÑτÑ¡¿Ñ «»Ñαá-
- µ¿¿ Σ«α¼áΓá, á ñóπ¼∩ »«ß½ÑñπεΘ¿¼¿ Σ«α¼áΓἿ ß αẽ¿τ¡«⌐ ߬«α«ßΓ∞ε).
- ìá»α¿¼Ñα, ºá»¿ßáΓ∞ 9 ßÑ¬Γ«α«ó »« 512 íá⌐Γ«ó ¡á ñ«α«ª¬Ñ 0 ó 300èü«ñ
- (HD-ñ¿ß¬«ó«ñ), «ñ¿¡ 512-íá⌐Γ«óδ⌐ ßÑ¬Γ«αἿ ó 500èü«ñ. (Æ.¬. φΓá ñ«-
- ᫪¬á ñ¿ß¬ÑΓδ ßá¼á∩ ñá½∞¡∩∩, ¿ß»«½∞º«óá¡¿Ñ óδß«¬«⌐ ߬«α«ßΓ¿ »ÑαÑßδ½-
- ¬¿ ¡á DD-ñ¿ß¬áσ ¡Ñ íπñÑΓ ß½¿Φ¬«¼ π¼Ñ¡∞ΦáΓ∞ ß«σαá¡¡«ßΓ∞ ñá¡¡δσ).
- ò«Γ∩ αẽ¿τ¡δÑ ß¬«α«ßΓ¿ »ÑαÑß佬¿ ñá¡¡δσ »«½¡«ßΓ∞ε »«ññÑনóáεΓß∩
- AT, »«ñ«í¡á∩ ¼ÑΓ¬á ¼«ªÑΓ úÑ¡Ñα¿α«óáΓ∞ß∩ »α¿ FM- ¿ MFM-Σ«α¼áΓáσ ñá¡-
- ¡δσ (Γ« ÑßΓ∞, 9 MFM ßÑ¬Γ«αá ¿ 1 FM) ¡á PC ¿ XT. ì¿ «ñ¿¡ ¿º »α«óÑαÑ¡-
- ¡δσ í¿Γ-¬«»¿α«óΘ¿¬«ó ¡Ñ íδ½ ß»«ß«í¡δ⌐ ó«ß»α«¿ºóÑßΓ¿ ¼¡«ú«ß¬«α«ßΓ¡πε
- ñ«α«ª¬π, ΓᬠτΓ« φΓ« - σ«α«Φ¿⌐ ß»«ß«í ºáΘ¿Γδ.
- Äñ¡á¬«, ¡á¼ ¡Ñ »«¬á ¡Ñ óßΓαÑτá½áß∞ ºáΘ¿Γá, «ß¡«óá¡¡á∩ ¡á Γᬫ⌐
- ¼ÑΓ¬Ñ.
-
- 1.3.9 ä«ßΓπ» ¬ ñá¡¡δ¼ τÑαѺ »α«¼ÑªπΓ«¬
-
- ÆÑ»Ñα∞ ¼δ »«ñ«Φ½¿ ¬ ¡á¿í«½ÑÑ »«»π½∩α¡«¼π (¿, 󫺼«ª¡«, ¡á¿½πτΦÑ-
- ¼π) ß»«ß«íπ ºáΘ¿Γδ - ñ«ßΓπ»π ¬ ñá¡¡δ¼ τÑαѺ »α«¼ÑªπΓ«¬. Æ.¬. óßÑ
- ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ ßÑ¬Γ«α«ó ¿ »«½∩ ñá¡¡δσ ß¿¡σα«¡¿º¿απεΓß∩ «Γñѽ∞¡«, ñóÑ
- í¿Γ«óδσ ∩τÑ⌐¬¿ ó ñóπσ »«ß½ÑñπεΘ¿σ »«½∩σ ¼«úπΓ »ÑαѼÑΘáΓ∞ß∩ »α«¿º-
- ó«½∞¡«. ¥Γ«Γ ßñó¿ú π»αáó½∩ÑΓß∩ »α«¿ºó«½∞¡δ¼¿ ¿º¼Ñ¡Ñ¡¿∩¼¿ ó WR CLK ¿
- ߬«α«ßΓ¿ óαáΘÑ¡¿∩ ñ¿ß¬«ó«ñá, ΓᬠτΓ« «¡¿ ¡Ñ ¼«úπΓ ¬«¡Γα«½¿α«óáΓ∞ß∩.
- (è«¡Ñτ¡«, ¬¡«-¡¿íπñ∞ ¼«ªÑΓ ¿º«íαÑßΓ¿ á¡á½«ú½óδ⌐ ¬«»¿α«óΘ¿¬, ¬«Γ«αδ⌐
- íπñÑΓ ß»«ß«íÑ¡ ñѽáΓ∞ φΓ«. ƒ ¡¬«úñá ¡Ñ ß½δΦáΓ½ « Γᬫ¼.) ïεíá∩ «»Ñ-
- αᵿ∩ τΓÑ¡¿∩ ñ«α«ª¬¿ ß ñ«ßΓáΓ«τ¡« í«½∞Φ«⌐ ñ½¿¡«⌐ ¬«ñá (߬áªÑ¼, 6)
- íπñÑΓ ñáóáΓ∞ "ß½Ññ ñ«α«ª¬¿". ù¿ß½« αẽ¿τ¡δσ "ß½Ññ«ó" ¼«ªÑΓ úαπí«
- «µÑ¡¿óáΓ∞ß∩ ß½ÑñπεΘ¿¼ «íαẫ¼: »α¿¼¿ΓÑ, τΓ« ¬áªñ«Ñ ß«Ññ¿¡Ñ¡¿Ñ «Γ-
- ñѽ∞¡« ß¿¡σα«¡¿º¿α«óá¡¡δσ »«½Ñ⌐ ¼«ªÑΓ ¿¼ÑΓ∞ 2 αẽ¿τ¡δσ ß«ßΓ«∩¡¿∩
- («τÑó¿ñ¡«, φΓ« ¡Ññ««µÑ¡¬á).
- ìá ñ«α«ª¬Ñ «íδτ¡«⌐ DD-ñ¿ß¬ÑΓδ ¿¼ÑεΓß∩ 19 Γᬿσ ß«Ññ¿¡Ñ¡¿⌐ (9
- ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó, 9 ñá¡¡δσ, 1 IAM), ΓᬠτΓ« τ¿ß½« αẽ¿τ¡δσ ß½Ññ«ó
- ñ½∩ ¬áªñ«⌐ ñ«α«ª¬¿ - »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ 2^19 ≈ 500,000. ùΓ«íδ cñѽáΓ∞
- ª¿º¡∞ ÑΘÑ í«½ÑÑ ¿¡ΓÑαÑß¡«⌐ ñ½∩ á¡á½«ú«ó«ú« ¬«»¿απεΘÑú« πßΓα«⌐ßΓóá,
- ¼«ª¡« ÑΘÑ πóѽ¿τ¿Γ∞ ñ½¿¡π ¬«ñá (߬áªÑ¼, ñ« 7). ¥Γ« ¡Ñ πóѽ¿τ¿Γ τ¿ß½«
- ß½Ññ«ó, ¡« ó¬½ετ¿Γ ñ«α«ª¬π í«½ÑÑ «ñ¡«ú« αáºá. Æ.¬. ñáªÑ ½πτΦÑÑ πßΓ-
- α«⌐ßΓó« ñ«½ª¡« úñÑ-¡¿íπñ∞ ¡áτ¿¡áΓ∞ ¿ «ßΓá¡áó½¿óáΓ∞ «»Ñαᵿε, ñá¡¡δÑ
- íπñÑΓ τáßΓ¿τ¡« αáºαπΦÑ¡δ. ¥Γ« πßΓá¡áó½¿óáÑΓ «ñ¡« «úαá¡¿τÑ¡¿Ñ ¡á »α¿-
- ¼Ñ¡Ñ¡¿Ñ ºáΘ¿ΘÑ¡¡«ú« ñ¿ß¬á: ¬½ετÑóá∩ ñ«α«ª¬á ¡Ñ ¼«ªÑΓ »ÑαѺỿßδ-
- óáΓ∞ß∩.
- äαπúá∩ ¼Ñ¡ÑÑ ¿¡ΓÑαÑß¡á∩ αạ«ó¿ñ¡«ßΓ∞ φΓ«⌐ ¿ñÑ¿ - τ¿ΓáΓ∞ ß½Ññπε-
- Θπε áñαÑß¡πε ¼ÑΓ¬π ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá τÑαѺ GAP 3 ¿ »α«óÑα∩Γ∞,
- ¿º¼Ñ¡¿½áß∞ ½¿ «¡á. Æá¬á∩ »α«óÑα¬á ºá»αÑΘáÑΓ ºá»¿ß∞ Γ«½∞¬« «ñ¡«ú«
- ßÑ¬Γ«αá. ÄτÑó¿ñ¡«, »α«Ñ¬Γ¿α«óΘ¿¬ ºáΘ¿Γδ ¡Ñ «úαá¡¿τΓß∩ »«½πτÑ¡¿Ñ¼
- "ß½Ññ«ó" ¬«¼á¡ñ«⌐ τΓÑ¡¿∩ ñ«α«ª¬¿ (¿ Γᬿ¼ «íαẫ¼, «íαáΘÑ¡¿Ñ¼ ¬
- πα«ó¡ε τ¿»á á»»áαáΓπαδ). ¥Γ« ¼«ªÑΓ íδΓ∞ óδ»«½¡Ñ¡« Γá¬ªÑ ¿ »α«ßΓδ¼
- ñ«íáó½Ñ¡¿Ñ¼ Σ¿¬Γ¿ó¡«ú« ßÑ¬Γ«αá ß ¬«ñ«¼ ñ½¿¡δ 6 ¿½¿ 7 ó ¬«¡µÑ ñ«α«ª-
- ¬¿, ¿ ºáñτá íπñÑΓ óδ»«½¡Ñ¡á BIUOS'«¼.
-
- - 17 -
- ì¿ «ñ¡á ¿º φΓ¿σ »α«óÑ᫬ ¡Ñ ¼«ªÑΓ ó«ß»α«¿ºó«ñ¿Γ∞ß∩ ¡á ßΓá¡ñáαΓ¡«¼
- «í«απñ«óá¡¿¿ PC. Äñ¡á¬«, í«½∞Φ«Ñ ¬«½¿τÑßΓó« »α«úαá¼¼, ¿ß»«½∞ºπεΘ¿σ
- óΓ«απε αạ«ó¿ñ¡«ßΓ∞, ¼«ª¡« »ÑαÑσ¿Γα¿Γ∞ »α¿ αáßΦ¿αÑ¡¿¿ GAP 3 »«ß½Ñ
- »αÑñßΓáó½∩εΘÑú« ¿¡ΓÑαÑß ßÑ¬Γ«αá ¿ »α¿ ß«σαá¡Ñ¡¿¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßѬ-
- Γ«αá φΓ«ú« »α«¼ÑªπΓ¬á, ¬á¬ φΓ« ¡Ñ«íσ«ñ¿¼« »α¿ τΓÑ¡¿¿ τÑαѺ »α«¼Ñªπ-
- Γ«¬. àß½¿ »α«úαá¼¼á ¡Ñ »α«óÑα∩ÑΓ Γ«τ¡δÑ »«º¿µ¿¿ ßÑ¬Γ«α«ó ¡á ñ«α«ª¬Ñ,
- «¡á íπñÑΓ »α¿¡¿¼áΓ∞ Γá¬πε "¬«»¿ε" ¬á¬ ¬½ετÑó«⌐ ñ¿ß¬.
-
- 1.3.10 æπ¼áßΦÑñΦ¿Ñ ¿ñÑ¿
-
- éßÑ «íßáªñáóΦ¿Ñß∩ »αÑñ φΓ¿¼ ß»«ß«íδ ºáΘ¿Γδ ñ«»π߬὿ ¡ÑαáºαπΦáε-
- Θπε »α«óÑα¬π. ÆÑ»Ñα∞ ó««íαế¼ ¼ÑΓ¬π ºáΘ¿Γδ, ¬«Γ«αá∩ ¡Ñ ¼«ªÑΓ »α«óÑ-
- α∩Γ∞ß∩ ¿½¿ «í¡áαπª¿óáΓ∞ß∩ í¿Γ-¬«»¿α«óΦ¿¬«¼ íѺ »αÑñóáα¿Γѽ∞¡«⌐ ºá-
- »¿ß¿ ¡á ¬½ετÑó«⌐ ñ¿ß. éß»«¼¡¿ΓÑ ßÑ¬Γ«αá íѺ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá -
- (1.3.5). ùΓ« íπñÑΓ ¼δ íπñѼ ñѽáΓ∞, Ñß½¿ ¡á »αÑñßΓáó½∩εΘÑ⌐ ¿¡ΓÑαÑß
- ñ«α«ª¬Ñ ¡ÑΓ ñαπú¿σ ßÑ¬Γ«α«ó? (Å« ¬αá⌐¡Ñ⌐ ¼ÑαÑ, ó Γ«⌐ ªÑ ߬«α«ßΓ¿ »Ñ-
- αÑß佬¿). ¥Γ«Γ ßÑ¬Γ«α ¡Ñ íπñÑΓ τ¿ΓáΓ∞ß∩ ñ« Σ«α¼áΓá ñ«α«ª¬¿, ¬«Γ«αδ⌐
- πßΓá¡«ó¿Γ áñαÑß¡δÑ ¼ÑΓ¬¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó. ïεíá∩ »«»δΓ¬á ñ«ßΓπ»á
- ó¡πΓα∞ Γá¬á«⌐ »α«úαá¼¼δ «Γ½áñτ¿¬«¼ íπñÑΓ αáºαπΦáΓ∞ ¼ÑΓ¬π ºáΘ¿Γδ, »«-
- Γ«¼π τΓ« Γ«τ¡δ⌐ óδí«α «»αÑñѽѡ¡«ú« óαѼѡ¿ «ßΓá¡«ó¬¿ «»Ñαᵿ¿ Σ«α-
- ¼áΓá íπñπΓ ßí¿Γ ßἿ¼ óαѼѡѼ «Γ½áñ¬¿. ¥Γ«Γ »α«ßΓ«⌐ »α¿¼Ñα »«¬áºδ-
- óáÑΓ τΓ« ¿¼ÑεΓß∩ ¼ÑΓ¬¿ ºáΘ¿Γδ, ¬«Γ«αδÑ ¡Ñ ¼«úπΓ íδΓ∞ »α«τ¿Γá¡δ íѺ
- αáºαπΦÑ¡¿∩ τáßΓ¿ ¿σ ß«ñÑন¼«ú« ¿½¿ íѺ º¡á¡¿∩ ß»«ß«íá »α«óÑન ºá-
- Θ¿Γδ.
-
- 1.4 Äß¡«óá¡¡δÑ ¡á Γá⌐¼ÑαÑ ß»«ß«íδ ºáΘ¿Γδ
-
- éßÑ PC «í«απñ«óá¡δ óÑß∞¼á σ«α«Φ¿¼ τ¿»«¼ Γá⌐¼Ñαá INTEL 8253 ¿½¿
- Ñú« Σπ¡¬µ¿«¡á½∞¡δ¼ á¡á½«ú«¼. Éáí«Γá∩ ß τáßëë⌐ 1,193,180 âµ, «¡
- »«ºó«½∩ÑΓ ¿º¼Ñα∩Γ∞ ¿¡ΓÑαóá½δ óαѼѡ¿ ß αáºαÑΦÑ¡¿Ñ¼ ¡ß (Γ« ÑßΓ∞, ¼«-
- ªÑΓ ¿º¼Ñα∩Γ∞ óαѼ∩ óδ»«½¡Ñ¡¿∩ ÄäêìÄùìÄë ¬«¼á¡ñδ «Γñѽѡ¿∩ »« 16 386
- îâµ , ¬«Γ«αδ⌐ ¼«ªÑΓ αáßß¼áΓα¿óáΓ∞(»α¿¡¿¼áΓ∞) ¬ 2.4 úµ). Æá¬«⌐ Γá⌐¼Ñα
- í«½ÑÑ τѼ áñѬóáΓÑ¡ ñ½∩ óδí«αá «»αÑñѽѡ¡«ú« óαѼѡ¿ ¡á ú¿í¬¿σ
- ñ¿ß¬áσ (ÅÑαÑñáτá «ñ¿¡«τ¡«ú« íá⌐Γá ñá¡¡δσ ß ßἫ⌐ í«½∞Φ«⌐ ߬«α«ßΓ¿
- (500 èü) ΓαÑíπÑΓ 16 úµ), ΓᬠτΓ« Γ«τ¡«ßΓ∞ Γá¬¿σ ¿¡ΓÑαóὫó íπñÑΓ «ú-
- αá¡¿τ¿óáΓ∞ß∩ ¡Ñ αáºαÑΦáεΘÑ⌐ ß»«ß«í¡«ßΓ∞ε Γá⌐¼Ñαá, á »α«¿ºó«½∞¡δ¼¿
- ¿º¼Ñ¡Ñ¡¿∩¼¿ ߬«α«ßΓ¿ óαáΘÑ¡¿∩.
-
- 1.4.1 Å«α∩ñ«¬ ¬«¡Γα«½∩ ßÑ¬Γ«α«ó
-
- 꺼Ñα∩∩ óαѼ∩ ºáóÑαΦÑ¡¿∩ ¬«¼á¡ñ τΓÑ¡¿∩ ñ«α«ª¬¿, ¼«ª¡« »«½πτ¿Γ∞
- Γ«τ¡πε »«º¿µ¿ε ¬áªñ«ú« ßÑ¬Γ«αá ¡á ñ«α«ª¬Ñ. é ΓÑନ¡áσ í¿Γ«ó, óδ ¼«-
- ªÑΓÑ »«½πτ¿Γ∞ Γ«τ¡«ßΓ∞ »«½«ªÑ¡¿∩ ßÑ¬Γ«αá, »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ, ó «ñ¡¿¡
- í¿Γ. Æ.¬. ¬«¼á¡ñá Σ«α¼áΓá ñ«α«ª¬¿ FDC π»αáó½∩ÑΓ »«º¿µ¿Ñ⌐ ßÑ¬Γ«αá ß
- αáºαÑΦÑ¡¿Ñ¼ ó íá⌐Γ, ¡Ñ½∞º∩ ó«ß»α«¿ºóÑßΓ¿ Γᬫ⌐ Γ«τ¡δ⌐ »«α∩ñ«¬ ßÑ¬Γ«-
- α«ó. Æá¬¿¼ «íαẫ¼, αáß»«½«ªÑ¡¿Ñ ßÑ¬Γ«α«ó ¼«ªÑΓ ß½πª¿Γ∞ ¬á¬ ¼ÑΓ¬á
- ºáΘ¿Γδ. Äñ¡á¬«, φΓá »α«óÑα¬á íπñÑΓ ß½¿Φ¬«¼ τπóßΓó¿Γѽ∞¡á ¬ íδßΓα«-
- ñÑ⌐ßΓó¿ε ûÅ ¿ ßΓáí¿½∞¡«ßΓ¿ óαáΘÑ¡¿∩ ñ¿ß¬«ó«ñá ¿ íπñÑΓ τáßΓ« ¿ß¬áªáΓ∞
- ¬½ετÑó«⌐ ñ¿ß¬. æ½Ññ«óáΓѽ∞¡«, »«º¿µ¿∩ ßÑ¬Γ«αá «íδτ¡« ¿ß»«½∞ºπÑΓß∩
- ¬á¬ ñ«íáó½Ñ¡¿Ñ ¬ ñαπú«⌐ ¼Ñ⪥ ºáΘ¿Γδ (ß¼. 1.3.9).
-
- 1.4.2 꺼ÑαÑ¡¿Ñ ߬«α«ßΓ¿ »ÑαÑß佬¿ ñá¡¡δσ
-
- 欫α«ßΓ∞ »ÑαÑß佬¿ ñá¡¡δσ óδí¿αáѼá∩ αÑú¿ßΓα«¼ π»αáó½Ñ¡¿∩ ñ¿ß¬ÑΓδ
- (3F7h) - Γ«½∞¬« ¡áτá½∞¡á∩ τáßΓ«Γá, ¿ß»«½∞ºπѼá∩ FDC ñ½∩ ñѬ«ñ¿α«óá-
- ¡¿∩ í¿Γ«ó. æ»Ñµ¿á½∞¡á∩ á¡á½«ú«óá∩ ßσѼá, ¡áºδóáѼá∩ ºá¼¬¡πΓδ⌐ »« Σá-
- ºÑ µ¿¬½ (PLL), αÑúπ½¿απÑΓ ß¬«α«ßΓ∞ ñ«α«ª¬¿, ó ¬«Γ«α«⌐ Σá¬Γ¿τÑ߬¿
- »α¿íδóáεΓ í¿Γδ. PLL ñ«»π߬áÑΓ «Γ¬½«¡Ñ¡¿∩, »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ, ó 4% «Γ
- µÑ¡Γαá½∞¡«⌐ τáßΓ«Γδ (αáºαÑΦÑ¡¡«Ñ «Γ¬½«¡Ñ¡¿Ñ ó ߬«α«ßΓ¿ óαáΘÑ¡¿∩
- ñ¿ß¬«ó«ñ«ó - ±2%). Åαá¬Γ¿τÑ߬¿, PLL íπñÑΓ ß»αáó½∩Γ∞ß∩ ß 10%-¼ «Γ¬½«-
- ¡Ñ¡¿Ñ¼ ¡á MFM-ñ¿ß¬ÑΓáσ ¿ »«τΓ¿ 100% ¡á FM.
- 欫α«ßΓ∞ »«ßΓπ»½Ñ¡¿∩ ñó«¿τ¡δσ αáºα∩ñ«ó «»αÑñѽ∩ÑΓß∩ ¬á¬ πú½«ó«⌐
- »½«Γ¡«ßΓ∞ε ñá¡¡δσ ¡á ñ¿ß¬Ñ, Γᬠ¿ ߬«α«ßΓ∞ε óαáΘÑ¡¿∩ ñ¿ß¬«ó«ñá, Γá¬
-
- - 18 -
- τΓ« ñ½∩ «»αÑñѽѡ¿∩ σáαá¬ΓÑα¿ßΓ¿¬ ñ¿ß¬á (πú½«ó«⌐ »½«Γ¡«ßΓ¿ ñá¡¡δσ)
- ¡Ñ«íσ«ñ¿¼« ¿º¼Ñα∩Γ∞ óαѼ∩ »ÑαÑß佬¿ «ñ¡«ú« ßÑ¬Γ«αá ¿ óαѼ∩ óαáΘÑ¡¿∩.
- îá¬ß¿¼á½∞¡á∩ Γ«τ¡«ßΓ∞ Γᬫú« ¿º¼ÑαÑ¡¿∩ ¼«ªÑΓ íδΓ∞ ½Ñú¬« «µÑ¡Ñ¡á:
- «ñ¿¡ 512-íá⌐Γ«óδ⌐ ßÑ¬Γ«α íπñÑΓ »ÑαѼÑΘáΓ∞ß∩ ß τáßëë⌐ 500 èü ó ΓÑ-
- τÑ¡¿Ñ 8.2 ¼ß, αáºαÑΦáεΘá∩ ß»«ß«í¡«ßΓ∞ Γá⌐¼Ñαá 0.84 ¼¬ß ñáßΓ «Γ¡«ß¿-
- Γѽ∞¡πε Γ«τ¡«ßΓ∞ 0.01%. ÄΓ¡«ß¿Γѽ∞¡á∩ »«úαÑΦ¡«ßΓ∞ ó «»αÑñѽѡ¿¿ óαÑ-
- ¼Ñ¡¿ óαáΘÑ¡¿∩ íπñÑΓ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ ¡á »«α∩ñ«¬ ¼Ñ¡∞ΦÑ. Åα¿ 10 ñ½∩
- ¬αá⌐¡Ñ⌐ íѺ«»áß¡«ßΓ¿, 0.1% ¬áªÑΓß∩ »α¿Ñ¼½Ñ¼«⌐ «µÑ¡¬«⌐. Æá¬, óßÑ
- ñ¿ß¬«ó«ñδ ñ½∩ ú¿í¬¿σ ñ¿ß¬ÑΓ PC íπñπΓ αáºí¿óáΓ∞ß∩ ¡á 40 (2 * 2%/0.1%)
- αẽ¿τ¡δσ úαπ»», ¿ ñ¿ß¬ÑΓδ, ºá»¿ßδóáѼδÑ ¡á ñ¿ß¬«ó«ñÑ «ñ¡«⌐ úαπ»»δ,
- ¼«ª¡« ½Ñú¬« «Γ½¿τáΓ∞ «Γ ñ¿ß¬ÑΓ, ºá»¿ßδóáѼδσ ¡á ñαπú«⌐.
- è ß«ªá½Ñ¡¿ε (σá !), í«½∞Φ¿¡ßΓó« ß«óαѼѡ¡δσ ñ¿ß¬«ó«ñ«ó »«»áñáÑΓ ó
- ±0.2%-ε «í½áßΓ∞ ¿, Γᬿ¼ «íαẫ¼, αẫí∞εΓß∩ ¡á 4 úαπ»»δ ó¼ÑßΓ« 40,
- »«τΓ¿ π¡¿τΓ«ªá∩ óßε "ºáΘ¿Γπ". ìѬ«Γ«αδÑ FDC (¡á»α¿¼Ñα, ¼«⌐ ßΓáαδ⌐ WD
- HDC/FDC 1986 ú«ñá) αáºαÑΦáεΓ »α«ßΓ«⌐ Γαε¬ ß αÑú¿ßΓα«¼ µ¿Σα«ó«ú« óδ-
- ó«ñá (3F2h): óδóÑñ¿ΓÑ 0Ch ó 3F2h («ßΓá¡«ó¿Γ∞ ñó¿úáΓѽ∞ »α¿ó«ñá A:),
- ªñ¿ΓÑ «ßΓá¡«ó¬¿ 10 ¼ß, óδóÑñ¿ΓÑ 1Ch ó 3F2h (ºá»πßΓ¿Γ∞ ñó¿úáΓѽ∞ »α¿-
- ó«ñá A:) ¿ ¡Ñ¼Ññ½Ñ¡¡« óδ»«½¡¿ΓÑ «»Ñαáµ¿ε ºá»¿ß¿. 欫α«ßΓ∞ óαáΘÑ¡¿∩
- ñ¿ß¬«ó«ñá íπñÑΓ ¡Ñ¼¡«ú« ¼Ñ¡∞ΦÑ ¡«¼¿¡á½∞¡«⌐ ó ΓÑτÑ¡¿Ñ »α¿¼Ñα¡« 20 ¼ß,
- αáºαÑΦá∩ ºá»¿ßáΓ∞ «ñ¿¡ ßÑ¬Γ«α. î«⌐ ¡«óδ⌐ IDE HDC/FDC 1990 ú«ñá, «ñ-
- ¡á¬«, ªñÑΓ, »«¬á ߬«α«ßΓ∞ óαáΘÑ¡¿∩ ¡Ñ ñ«ßΓú¡ÑΓ ¡«¼¿¡á½∞¡«⌐, ºáñÑন-
- óá∩ «»Ñαáµ¿ε ºá»¿ß¿.
- ê¡ΓÑαÑß¡δÑ αạ«ó¿ñ¡«ßΓ¿ φΓ«⌐ ¼ÑΓ¬¿ ¼«úπΓ »«½πτáΓ∞ß∩ »α¿ ¡Ñí«½∞-
- Φ¿σ ¼«ñ¿Σ¿¬áµ¿∩σ á»»áαáΓ¡δσ ßαÑñßΓó PC (ß¼. 1.5.3).
-
- 1.5 çáΘ¿Γá, «ß¡«óá¡¡á∩ ¡á ߻ѵ¿á½∞¡δσ á»»áαáΓ¡δσ ßαÑñßΓóáσ
-
- ƒ ¡Ñ ߻ѵ¿á½¿ßΓ ó á»»áαáΓ¡δσ ßαÑñßΓóáσ ºáΘ¿Γδ ¬«»¿¿, ΓᬠτΓ«
- «íßπªñÑ¡¿Ñ »«τΓ¿ µÑ½¿¬«¼ íếαπÑΓß∩ ¡á rumors ¿ »αÑñ»«½«ªÑ¡¿∩σ.
-
- 1.5.1 î«ñ¿Σ¿µ¿α«óá¡¡δÑ MFM-Σ«α¼áΓδ
-
- ù¿» FDC INTEL 8272A ¡Ñ ¿¼ÑÑΓ ó«º¼«ª¡«ßΓ¿ ¿º¼Ñ¡Ñ¡¿∩ »α«úαá¼¼¡δ¼
- «íÑß»ÑτÑ¡¿Ñ¼ ñ½¿¡δ GAP1, GAP2 ¿ GAP5, ¡« íπñÑΓ »α¿¡¿¼áΓ∞ ñ¿ß¬ÑΓδ ß
- φΓ¿¼¿ »α«¼ÑªπΓ¬á¼¿, «Γ½¿τáεΘ¿¼¿ß∩ «Γ ßΓá¡ñáαΓá ¿ ¿¼ÑÑΓ ß»«ß«í¡«ßΓ∞
- ¿º¼Ñα∩Γ∞ Σá¬Γ¿τÑ߬πε ñ½¿¡π »α«¼ÑªπΓ¬á. ìá»α¿¼Ñα, GAP2 (»α«¼ÑªπΓ«¬
- »«ß½Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá) ¼«ªÑΓ ¿º¼Ñα∩Γ∞ß∩ ¿½¿ ¬«¼á¡ñ«⌐ τΓÑ¡¿∩ ñ«α«ª¬¿ ß
- ¬«ñ«¼ ñ½¿¡δ í«½∞ΦÑ Σá¬Γ¿τÑ߬«⌐ ñ½¿¡á ßÑ¬Γ«αá, ¿½¿ »α¿ ¿º¼ÑαÑ¡¿Ñ¼
- αẽ¿τ¿∩ ó« óαѼѡ¿ ºáóÑαΦÑ¡¿∩ τΓÑ¡¿∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ¿ñÑ¡Γ¿Σ¿¬áΓ«αá
- ¿ ¬«¼á¡ñδ τΓÑ¡¿∩ ñá¡¡δσ. ä¿ß¬ÑΓδ ß αẽ¿τ¡δ¼¿ º¡áτÑ¡¿∩¼¿ »α«¼ÑªπΓ¬á
- ¼«ú½¿ ß«ºñáóáΓ∞ß∩ ñ½∩ PC ¡á ñαπú¿σ ß¿ßΓѼáσ ¥éî, ¬«Γ«αδÑ ¼«úπΓ ¿º¼Ñ-
- ¡∩Γ∞ φΓ¿ »áαá¼ÑΓαδ. (îδ ß½δΦ὿, τΓ« ¡Ñ¬«Γ«α«Ñ ß¿ßΓѼδ DEC ß»«ß«í¡δ
- ñѽáΓ∞ φΓ«.)
-
- 1.5.2 ÅÑαÑαẼÑΘÑ¡¡δÑ ñ«α«ª¬¿ ñá¡¡δσ
-
- ìѬ«Γ«αδÑ ¬«¡Γα«½½Ñαδ ¿ ñ¿ß¬«ó«ñδ ¿¼ÑεΓ í«½∞ΦÑÑ ßΓα«ú«Ñ π»αáó½Ñ-
- ¡¿Ñ »«º¿µ¿«¡¿α«ó᡿Ѽ ú«½«ó¬¿ ñ½∩ τΓÑ¡¿∩/ºá»¿ß¿, τѼ φΓ«ú« ΓαÑíπÑΓ
- PC. (ƒ πóÑαÑ¡, τΓ« ΓαÑíπѼδÑ ¼«ñ¿Σ¿¬áµ¿¿ á»»áαáΓ¡δσ ßαÑñßΓó ¡Ñ ß½¿Φ-
- ¬«¼ í«½∞Φ¿Ñ.) ¥Γ« ¼«ªÑΓ íδΓ∞ »Ñαó«¡áτá½∞¡« óδ»«½¡Ñ¡« ¡Ñ ñ½∩ µÑ½Ñ⌐
- ºáΘ¿Γδ «Γ ¬«»¿α«óá¡¿∩, ¡« τΓ«íδ «íÑß»Ñτ¿óáΓ∞ ß»«ß«í¡«ßΓ∞ τ¿ΓáΓ∞
- ñ¿ß¬ÑΓδ, ºá»¿ßδóáѼδÑ ¡á »½«σ« αÑúπ½¿απѼδσ ñ¿ß¬«ó«ñáσ. (îδ ß½δΦ὿,
- τΓ« ICL FDC ¿¼ÑÑΓ Γá¬πε ß»«ß«í¡«ßΓ∞.) æ½Ññ«óáΓѽ∞¡«, ¡á Γᬫ⌐ ß¿ßΓÑ-
- ¼Ñ ¼«ª¡« »«ñú«Γ«ó¿Γ∞ ¬½ετÑó«⌐ ñ¿ß¬ ß ¡ÑßΓá¡ñáαΓ¡δ¼ αẼÑΘÑ¡¿Ñ¼ ñ«α«-
- ªÑ¬ (¿ »α«úαá¼¼¡«Ñ «íÑß»ÑτÑ¡¿Ñ íπñÑΓ »α«óÑα∩Γ∞ φΓ«). Æá¬«⌐ ñ¿ß¬ ¡Ñ
- ß¼«ªÑΓ »α«óÑα∩Γ∞ß∩ ¡á ñαπú«⌐ ß¿ßΓÑ¼Ñ ¥éî, ΓᬠτΓ« φΓá ¼ÑΓ«ñ¿¬á ¼«ú½á
- íδ ¿¼ÑΓ∞ Γ«½∞¬« «úαá¡¿τÑ¡¡«Ñ »α¿¼Ñ¡Ñ¡¿Ñ.
-
- 1.5.3 ìÑßΓá¡ñáαΓ¡δÑ ß¬«α«ßΓ¿ »ÑαÑß佬¿
-
- èᬠ¼δ ó¿ñѽ¿ ó 1.4.2, FDC ñ«»π߬áÑΓ º¡áτ¿Γѽ∞¡δÑ ¿º¼Ñ¡Ñ¡¿∩ ó πú-
- ½«ó«⌐ »½«Γ¡«ßΓ¿ ñá¡¡δσ ¡á ñ«α«ª¬Ñ (¿ ¿¼ÑÑΓ ß»«ß«í¡«ßΓ∞ ¿º¼Ñα∩Γ∞ ¿σ).
- ìÑí«½∞Φ¿Ñ ¼«ñ¿Σ¿¬áµ¿¿ FDC ¿½¿ ñ¿ß¬«ó«ñá ñáεΓ ó«º¼«ª¡«ßΓ∞ π»αáó½∩Γ∞
-
- - 19 -
- óαπτ¡πε ßαÑñ¡Ñ⌐ τáßëë⌐ WR CLK úÑ¡ÑαáΓ«αá ¿½¿ ߬«α«ßΓ∞ε óαáΘÑ¡¿∩
- ñ¿ß¬«ó«ñá ¿ Γᬿ¼ «íαẫ¼ ñáεΓ ó«º¼«ª¡«ßΓ∞ ºá»¿ßδóáΓ∞ ñá¡¡δÑ ß ¡Ñ¼-
- ¡«ú« ¡ÑßΓá¡ñáαΓ¡δ⌐ (¡« ÑΘÑ »α¿Ñ¼½Ñ¼δ⌐ ñ½∩ í«½∞Φ¿¡ßΓóá FDC) ߬«α«ßΓ∞
- »ÑαÑß佬¿ ñá¡¡δσ.
- ìѬ«Γ«αδÑ ¿ºú«Γ«ó¿Γѽ¿ á»»áαáΓ¡δσ ßαÑñßΓó (¡á»α¿¼Ñα, ¡áπτ¡«ú«
- «í«απñ«óá¡¿∩ ß« óßΓα«Ñ¡¡δ¼¿ ¼¿¬α«-¥éî) ñѽáεΓ φëà "»«ñá᫬" ºá¬áº-
- τ¿¬á¼. (îδ ó¿ñѽ¿ 3-ñε⌐¼«óδÑ ñ¿ß¬«ó«ñδ ß« ߬«α«ßΓ∞ε 360 «í./¼¿¡.,
- ¬«Γ«αδÑ í뫨 ¡Ñß«ó¼ÑßΓ¿¼δÑ ß "¡«α¼á½∞¡δ¼" ¡á 300 «í./¼¿¡.)
-
- 1.6 Åα¿¼Ñαδ ßσѼ ºáΘ¿Γδ
-
- Åα¿ó«ñ¿¼δÑ ºñÑß∞ ßσÑ¼δ ºáΘ¿Γδ «ß¡«óá¡¡δ⌐ ¡á ¡áΦѼ ½¿τ¡«¼ «»δΓÑ
- ºáΘ¿Γδ »α«úαá¼¼ (¬α«¼Ñ ¡Ñ¬«Γ«αδσ π¬áºá¡¡δσ) ¡Ñ ¼«úπΓ αáßß¼áΓα¿óáΓ∞ß∩
- ¬á¬ ºá¬«¡τÑ¡δÑ ¿ ¡Ñ ß»«ß«í¡δ »«¬αδóáΓ∞ óßÑ á߻ѬΓδ ¿ óÑαß¿¿ ºáΘ¿Γδ
- »α«úαá¼¼¡«ú« «íÑß»ÑτÑ¡¿∩. éßÑ ºáΘ¿ΘÑ¡¡δÑ »α«úαá¼¼δ, «íßπªñÑ¡¡δÑ
- ºñÑß∞, ¿ßß½Ññ«ó὿ß∞ ß »«¼«Θ∞ε Copy Unprotector Toolkit (C.U.T).
-
- 1.6.1 Å«¼«Θ¡¿¬, τπóßΓóπεΘ¿⌐ IBM
-
- ¥Γ« ñÑ⌐ßΓó¿Γѽ∞¡« »α«ßΓá∩ ¿ ¡Ñ»«ßαÑñßΓóÑ¡¡á∩ ºáΘ¿Γá, ñáΓ¿α«óá¡¡δ⌐
- 1986 ú. Ä¡á ¡Ñ ¿¼ÑÑΓ ¡¿¬á¬«ú« »αá¬Γ¿τÑ߬«ú« º¡áτÑ¡¿∩ ¿ »α¿óÑñÑ¡á
- ºñÑß∞ Γ«½∞¬« τΓ«íδ »«¬áºáΓ∞ αáºó¿Γ¿Ñ »α¿Ñ¼«ó ºáΘ¿Γδ ó ΓÑτÑ¡¿Ñ
- »«ß½Ññ¡¿σ ½ÑΓ. ¥Γ« "ºáΘ¿ΘÑ¡¡«Ñ" »α«úαá¼¼¡«Ñ «íÑß»ÑτÑ¡¿Ñ »α«óÑα∩ÑΓ
- »α¿ßπΓßΓó¿Ñ ßÑ¬Γ«αá 8Fh ß ñ½¿¡«⌐ ¬«ñá 2 ¡á ñ«α«ª¬Ñ 39d ßΓ«α«¡δ 1
- ¬½ετÑó«⌐ ñ¿ß¬ÑΓδ. ì¿¬á¬¿Ñ ñαπú¿Ñ »α«óÑન ¡Ñ ñѽáεΓß∩. Æ,¬. »ÑαóδÑ
- óÑαß¿¿ CopyWrite ¬«Γ«αδ⌐ ¼δ ó¿ñѽ¿, »«∩󿽿ß∞ ó 1985 (¿ í뫨 ß»«ß«í-
- ¡δÑ ¬«»¿α«óáΓ∞ Γá¬¿Ñ ¼ÑΓ¬¿), Γ«½∞¬« ¡áñѪñδ ¡á "φΓ¿σ
- απß߬¿σ" ¼«úπΓ íδΓ∞ »α¿τ¿¡«⌐ αáºαáí«Γ¬¿ Γᬫ⌐ ºáΘ¿Γδ.
-
- 1.6.2 SuperLok
-
- ä¿ß¬ ß »α«úαá¼¼«⌐ SuperLok, ¬«Γ«αδ⌐ ∩ ß¼«ú »α¿«íαÑßΓ¿, ñáΓ¿α«-
- óá½ß∩ 10 «¬Γ∩íα∩ 1986 ú. çáΘ¿ΘÑ¡¡δ⌐ ñ¿ß¬ ß«ñÑαªá½ Γα¿ ñ«α«ª¬¿, «Γ¼Ñ-
- τÑ¡δÑ ¬á¬ "¡Ñ¡«α¼á½∞¡δÑ" ( óßÑ ¡á ú«½«ó¬Ñ 0). ÅÑαó«⌐ íδ½á ñ«α«ª¬á 5,
- ¬«Γ«αá∩ ¿¼Ñ½á ¡Ñ«íδτ¡δ⌐ ¿¡ΓÑα½¿ó ¿ ñóá ßÑ¬Γ«αá ß ¬«α«Γ¬¿¼¿ ñá¡¡δ¼¿ ,
- ΓᬠτΓ« ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ ßÑ¬Γ«α«ó »αÑñßΓáó½∩½¿ ß½ÑñπεΘπε »«ß½Ññ«óá-
- Γѽ∞¡«ßΓ∞ (óßÑ º¡áτÑ¡¿∩ ΦÑßΓ¡áñµáΓÑα¿τ¡δÑ):
-
- 05/00/01/02, 05/00/06/02, 05/00/8A/03, 05/00/02/02, 05/00/07/02,
- 05/00/65/03, 05/00/03/02, 05/00/08/02, 05/00/04/02, 05/00/09/02,
- 05/00/05/02
-
- èᬠí佫 ºá¼ÑτÑ¡«, SuperLok ¡Ñ »α«óÑα∩ÑΓ φΓπ ñ«α«ª¬π ó««íΘÑ, Γá¬
- τΓ« φΓ« »αÑñßΓáó½∩ÑΓ ó¿ñ ½«óπΦ¬¿ ñ½∩ ºá¿¡ΓÑαÑß«óá¡¡«ú« ¿ßß½Ññ«óáΓÑ-
- ½∩.
- éΓ«αá∩ ºáΘ¿ΘÑ¡¡á∩ ñ«α«ª¬á ¡á ñ¿ß¬Ñ íδ½á 12-á∩. Ä¡á ß«ñÑαªá½á ßѬ-
- Γ«α ß« ߬αδΓ«⌐ áñαÑß¡«⌐ ¼ÑΓ¬«⌐ (ß¼. 1.3.6) ß ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼
- 7B/46/05/00, ¬«Γ«αδ⌐ SuperLok »α«óÑα∩½ ¬«¼á¡ñ«⌐ τΓÑ¡¿∩ ñá¡¡δσ.
- äαπúá∩ »α«óÑα¬á ºáΘ¿Γδ ¡á φΓ«⌐ ñ«α«ª¬Ñ íδ½á óδ»«½¡Ñ¡á ¬«¼á¡ñ«⌐ τΓÑ-
- ¡¿∩ ñ«α«ª¬¿ ß ¬«ñ«¼ ñ½¿¡δ 6 («ñ¿¡ 8192-íá⌐Γ«óδ⌐ ßÑ¬Γ«α) ¿ 3 (ñóá
- 4096-íá⌐Γ«óδσ ßÑ¬Γ«αá). 16-í¿Γ«óá∩ ¬«¡Γα«½∞¡á∩ ßπ¼¼á óδτ¿ß½∩½áß∞ ó
- «í«¿σ ß½πτá∩σ ¿ ßαáó¡¿óá½áß∞ ß ß«σαá¡Ñ¡¡δ¼ º¡áτÑ¡¿Ñ¼ (ß¼. 1.3.9).
- ÆαÑΓ∞∩ ñ«α«ª¬á ºáΘ¿Γδ ß«ñÑαªá½á τÑΓδαÑ ß»Ñµ¿á½∞¡δσ ßÑ¬Γ«αá. ÅÑα-
- óδ⌐ ¿º ¿σ ¿¼Ñ½ ߬αδΓπε áñαÑß¡πε ¼ÑΓ¬π ßÑ¬Γ«αá ¿ ¡Ñ ¿¼Ñ½ áñαÑß¡«⌐
- ¼ÑΓ¬¿ ñá¡¡δσ, »αÑñ«ΓóαáΘá∩ «í¡áαπªÑ¡¿Ñ ñαπú¿¼¿ »α«úαἼἿ. Æα¿ ßѬ-
- Γ«αá ¿¼Ñ½¿ ߬αδΓδÑ áñαÑß¡δÑ ¼ÑΓ¬¿: 21/47/05/00, A5/86/81/04 ¿
- EB/76/EE/04. Å«ß½Ñ ¿σ »α«óÑન, SuperLok τ¿ΓáÑΓ ñ«α«ª¬π ß ¬«ñἿ 6 ¿
- 3, ß¡«óá óδτ¿ß½∩∩ 16-í¿Γ«óδÑ ¬«¡Γα«½∞¡δÑ ßπ¼¼δ.
- Æá¬¿¼ «íαẫ¼, SuperLok »αÑñßΓáó½∩ÑΓ σ«α«Φπε ºáΘ¿Γπ «Γ ¬«»¿α«óá-
- ¡¿∩. ì¿ «ñ¿¡ ¿º »α«óÑαÑ¡¡δσ í¿Γ-¬«»¿α«óΘ¿¬«ó ¡Ñ íδ½ ß»«ß«í¡δ⌐ ¬«»¿-
- α«óáΓ∞ Γᬫ⌐ ñ¿ß¬ "íπ¬óá½∞¡«" íѺ ¼«ñ¿Σ¿¬áµ¿¿ «í½áßΓÑ⌐ ñá¡¡δσ
- SuperLok. éÑα«∩Γ¡«, Γá¬á∩ ¬«»¿∩ »α«ßΓ« ¡Ñ󫺼«ª¡á (ß¼. 1.3.9).
- Å«ºªÑ ∩ ¿¼Ñ½ 󫺼«ª¡«ßΓ∞ τΓ«íδ ñѽáΓ∞ íδßΓαδ⌐ glance ¡á ñ¿ß¬Ñ ß
-
- - 20 -
- SuperLok, ñáΓ¿α«óá¡¡«¼ 1990 ú. ÇñαÑß¡δÑ ¼ÑΓ¬¿ ߬αδΓδσ ßÑ¬Γ«α«ó í뫨
- πñá½Ñ¡δ (?), ñ«ßΓπ» ¬ τΓÑ¡¿ε ñ«α«ª¬¿ ß ¼ÑΓ¬«⌐ ºáΘ¿Γδ ºá¼Ñ¡∩½ß∩ (?)
- ñ«»«½¡¿Γѽ∞¡δ¼ ßÑ¬Γ«α«¼ ß ¬«ñ«¼ ñ½¿¡δ 6 ó ßἫ¼ ¬«¡µÑ ñ«α«ª¬¿. éÑß∞
- (?) ñ«ßΓπ» ¬ ñ¿ß¬π íδ½ óδ»«½¡Ñ¡ BIOS'«¼.
-
- 1.6.3 Cops CopyLock II
-
- COPS CopyLock II «ß¡«óδóáÑΓ »α«óÑન ºáΘ¿Γδ ¡á ºá¼Ñαáσ óαѼѡ¿.
- Ä¡ ¿ß»«½∞ºπÑΓ ñ«»«½¡¿Γѽ∞¡δ⌐ ßÑ¬Γ«α 00/00/6A/01 ¡á ñ«α«ª¬Ñ 0 ú«½«ó¬¿
- 0, τΓ«íδ ß«σαá¡∩Γ∞ »ÑαѼѡ¡δÑ ñá¡¡δÑ ºáΘ¿Γδ. ( COPS CopyLock ß«ºñáÑΓ
- ºáΘ¿ΘÑ¡¡δÑ »α«úαá¼¼¡δÑ »α«ñπ¬Γδ "»«óδΦÑ¡¡«ú« ¬áτÑßΓóá" íѺ ¬½ετÑó«ú«
- ñ¿ß¬á, ΓᬠτΓ« ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ß«σαá¡∩Γ∞ τΓ«-½¿í« ÑΘÑ, ¬α«¼Ñ ßÑ-
- α¿⌐¡«ú« ¡«¼Ñαá ó ΓÑ½Ñ »α«úαá¼¼δ). éΓ«α«⌐ ñ«»«½¡¿Γѽ∞¡δ⌐ ßÑ¬Γ«α ¡á
- ñ«α«ª¬Ñ 0 (00/00/F6/02), 𠬫ëα«ú« íδ½á τáßΓ¿τ¡« »ÑαѺỿßá¡á IAM,
- ¿ß»«½∞º«óá½ß∩, τΓ«íδ »α«óÑα¿Γ∞ ¿ñÑ¡Γ¿Σ¿¬áΓ«α áñαÑß¡«⌐ ¼ÑΓ¬¿ ßÑ¬Γ«αá
- 1 τÑαѺ »α«¼ÑªπΓ«¬ (ß¼. 1.3.9). ùΓ«íδ »αÑñ«ΓóαáΓ¿Γ∞ «íσ«ñ ºáΘ¿Γπ,
- ß«óÑαΦáѼδ⌐ »« 1.3.9, CopyLock »α«óÑα∩ÑΓ »«º¿µ¿ε óßÑσ (?) ßÑ¬Γ«α«ó
- ¡á ñ«α«ª¬Ñ óδí«α«¼ «»αÑñѽѡ¡«ú« óαѼѡ¿ ¬«¼á¡ñδ τΓÑ¡¿∩ ¿ñÑ¡Γ¿Σ¿¬á-
- Γ«αá ßÑ¬Γ«αá.
- ä«α«ª¬¿ 1 ¬ 6 «τÑ¡∞ ßσ«ª¿: «¡¿ ¿¼ÑεΓ ñóá ñ«»«½¡¿Γѽ∞¡δσ ßÑ¬Γ«αá ó
- ¬«¡µÑ: XX/00/14/01, ¬«Γ«αδ⌐ ¡Ñ ¿ß»«½∞ºπÑΓß∩ (?), ¿ XX/00/13/02, π
- ¬«Γ«α«ú« »ÑαѺỿßá¡á IAM, ¿ »α«óÑα∩ÑΓß∩ ΓѼ ªÑ ß»«ß«í«¼, τΓ« ¿
- 00/00/F6/02. ä«α«ª¬¿ 7 ¬ 9 ¿¼ÑεΓ »« «ñ¡«¼π ñ«»«½¡¿Γѽ∞¡«¼π ßÑ¬Γ«απ
- (XX/00/14/01). ¥Γ¿ ßÑ¬Γ«αá ¡Ñ ¿ß»«½∞ºπεΓß∩ (?). ìá ¿ßß½Ññ«óá¡¡«⌐
- ñ¿ß¬ÑΓÑ ¿¼Ñ½ß∩ »«óÑασ¡«ßΓ¡δ⌐ ñÑΣÑ¬Γ ó ñ«α«ª¬Ñ 32 ú«½«ó¬¿ 1, ¡«
- CopyLock ¡Ñ »α«óÑα¿½á Ñú« ¡á½¿τ¿Ñ, ΓᬠτΓ« ¼δ ¡Ñ ñπ¼áѼ τΓ« φΓ« ñαπ-
- úá∩ ¼ÑΓ¬á ºáΘ¿Γδ.
- ¥Γ« - ÑΘÑ «ñ¿¡ »α¿¼Ñα σ«α«ΦÑ⌐ ßσÑ¼δ ºáΘ¿Γδ, σ«Γ∩ ¿ ñ«ßΓ¿ú¡πΓ«⌐
- ßαÑñßΓóἿ, «Γ½¿τ¡δ¼¿ «Γ 1.6.2. Äñ¡á¬« , ß »«¼«Θ∞ε C.U.T. δδ ß¼«ú½¿
- ó«ßßΓá¡«ó¿Γ∞ ¡ÑºáΘ¿ΘÑ¡¡πε óÑαß¿ε »αÑñßΓáó½∩εΘÑ⌐ ¿¡ΓÑαÑß »α«úαá¼¼δ
- (¥Γ« íδ½ Paradisk ¿º JV ParaGraph ) ó ΓÑτÑ¡¿Ñ »α¿í½¿º¿Γѽ∞¡« 2-σ
- τáß«ó. îδ ¡Ñ ñπ¼áѼ, τΓ« αáºαáí«Γ¬á CopyLock ºá¡∩½á ¼Ñ¡∞ΦÑ óαѼѡ¿.
- ò«Γ∩ ¼δ ¿¼ÑѼ ¬«»¿ε COPS CopyLock III, ÑΘÑ ¡Ñ í佫 óαѼѡ¿ ñ½∩ ÑÑ
- ¿ßß½Ññ«óá¡¿∩.
-
- 1.6.4 Ö¿Γ PC
-
- ¥Γá ñ¿ß¬«óá∩ ßσÑ¼á ºáΘ¿Γδ «ΓÑτÑßΓóÑ¡¡«ú« »α«¿ºó«ñßΓóá, ¿º«íαÑΓÑ¡-
- ¡á∩ ǽѬßá¡ñα«¼ 濼¬¿¡δ¼, »«½πτ¿½á í«½∞Φπε αѬ½á¼π ó æ«óÑΓ߬«¼ æ«ε-
- ºÑ. îδ ¿¼Ñ½¿ 󫺼«ª¡«ßΓ∞ ¿ßß½Ññ«óáΓ∞ »«½-ñ¡δ óÑαß¿⌐ φΓ«⌐ »α«úαá¼-
- ¼δ, ¿, Γᬿ¼ «íαẫ¼, ¡áí½εñáΓ∞ ÑÑ »«ßΓѻѡ¡«Ñ αáºó¿Γ¿Ñ.
- ÅÑαóδÑ óÑαß¿¿ Ö¿Γá PC ¿ß»«½∞º«ó὿ »α«ßΓπε ¼ÑΓ¬π ßÑ¬Γ«αá, »ÑαѺá-
- »¿ßδóá∩ IAM Γ«½∞¬« ¡á ñ«α«ª¬Ñ 0. ¥Γ« «í¼á¡δóὫ »«τΓ¿ óßÑ í¿Γ-¬«»¿-
- α«óΘ¿¬¿, ¬«Γ«αδÑ «»αÑñѽ∩½¿ φΓπ ¼ÑΓ¬π ¬á¬ ¬«α«Γ¬¿Ñ ñá¡¡δÑ (»«½«ó¿¡á
- ßÑ¬Γ«αá - »«ß½Ñ ¿¡ñѬߡ«ú« «ΓóÑαßΓ¿∩, ¡Ñ Γᬠ½¿ ?) ¿, Γᬿ¼ «íαẫ¼,
- αáºαπΦ὿ ÑÑ. Äñ¡á¬«, φΓá ¼ÑΓ¬á ÑΘÑ ¼«ªÑΓ ½Ñú¬« ºá»¿ßδóáΓ∞ß∩ «íδτ¡δ-
- ¼¿ ó맮óἿ BIOS'á (¡Ñ ú«ó«α∩ πªÑ « ¡«óδσ óÑαß¿∩σ í¿Γ-¬«»¿α«óΘ¿¬«ó),
- ¿ φΓá ºáΘ¿Γá "αá߬á½δóá½áß∞".
- æ½ÑñπεΘ¿⌐ »αÑñ»α¿¡∩Γδ⌐ Φáú - «íαáΘáΓ∞ß∩ ¬ ¿ñÑ¡Γ¿Σ¿¬áΓ«απ áñαÑß¡«⌐
- ¼ÑΓ¬¿ »Ñαó«ú« ßÑ¬Γ«αá τÑαѺ »α«¼ÑªπΓ«¬ (ó½¿∩¡¿Ñ COPS?). ÅÑαó«¡áτá½∞-
- ¡« ñ½∩ φΓ«ú« ñ«»«½¡¿Γѽ∞¡«ú« ßÑ¬Γ«αá óδí¿αá½ß∩ ¬«ñ ñ½¿¡δ 2 (512 íá⌐-
- Γ«ó). ¥Γá ¼ÑΓ¬á "αá߬á½δóá½áß∞" ¼ÑΓ«ñ¿¬«⌐, «»¿ßá¡¡«⌐ ó 1.3.9 (ß¡«óá
- , ¡Ñ ΓαÑíπÑΓß∩ ¡¿τÑú« ¬α«¼Ñ BIOS'á). ê ΓÑ»Ñα∞ , »«ß½Ññ¡¿⌐ Φáú - ¬«ñ
- ñ½¿¡áδ ñ«»«½¡¿Γѽ∞¡«ú« ßÑ¬Γ«αá πóѽ¿τ¿óá½ß∩ ñ« 6 (ó½¿∩¡¿Ñ
- SuperLok?), ñѽá∩ Γαπñ¡δ¼ (¡« ÑΘÑ ¡Ñ ¡Ñ󫺼«ª¡δ¼) ó«ß»α«¿ºóÑñÑ¡¿Ñ
- φΓ«⌐ ¼ÑΓ¬¿ BIOS'«¼. ÄτÑó¿ñ¡«, φΓ« ¡Ñ »αÑ»∩ΓßΓó¿Ñ ñ½∩ σ«α«ΦÑú«
- í¿Γ-¬«»¿α«óΦ¿¬á, ¿ C.U.T íπñÑΓ ½Ñú¬« ¿¼¿Γ¿α«óáΓ∞ Γá¬πε ¼ÑΓ¬π.
- äá½∞¡Ñ⌐Φá∩ αáºαáí«Γ¬á φΓ«⌐ ßσÑ¼δ ºáΘ¿Γδ ¼«ªÑΓ »«⌐Γ¿ »« ñóπ¼ ¡á»-
- αáó½Ñ¡¿∩¼: ó¬½ετÑ¡¿Ñ »α«óÑન »«º¿µ¿¿ ßÑ¬Γ«αá (¬á¬ ó 1.6.3) ¿½¿ »«½-
- ¡«Ñ τΓÑ¡¿Ñ ñ«α«ª¬¿ ß »α«¼ÑªπΓ¬á¼¿ (¬á¬ ó 1.6.2). éΓ«α«Ñ ¡á»αáó½Ñ¡¿Ñ,
- σ«Γ∩ ΓαÑíπÑΓ ß«σαá¡Ñ¡¿∩ óßÑ⌐ ñ«α«ª¬¿ ñ½∩ µÑ½Ñ⌐ ºáΘ¿Γδ, ¬áªÑΓß∩ í«½ÑÑ
- óÑα«∩Γ¡δ¼, »«Γ«¼π τΓ« Γá¬á∩ αáºαáí«Γ¬á ¡Ñ ΓαÑíπÑΓ ñ«ßΓπ»á ¬ FDC ¡á
- πα«ó¡Ñ τ¿»á (óßÑ ¿ºóÑßΓ¡δÑ ¡á¼ óÑαß¿¿ Ö¿Γá PC »«½∞ºπεΓß∩ ¿ß¬½ετ¿-
-
- - 21 -
- Γѽ∞¡« »α«µÑñπαἿ ñ«ßΓπ»á ¬ ñ¿ß¬π BIOS'á).
-
-
- 2. çáΘ¿Γá, «ß¡«óá¡¡á∩ ¡á ªÑßΓ¬«¼ ñ¿ß¬Ñ
-
- è½ετ¿ ¡á ú¿í¿σ ñ¿ß¬áσ ¼«úπΓ «íÑß»Ñτ¿óáΓ∞ σ«α«Φ¿⌐ πα«óÑ¡∞ ºáΘ¿Γδ,
- ¡« «¡¿ ß½Ñú¬á πΓ«¼¿Γѽ∞¡δ ñ½∩ ѪÑñ¡Ñó¡«ú« »α¿¼Ñ¡Ñ¡¿∩, ºá¡¿¼áεΓ
- ó»πßΓπε ñ¿ß¬«ó«ñ ¿ ¼«úπΓ íδΓ∞ ½Ñú¬« »«óαѪñÑ¡δ ¡Ñ»«ñσ«ñ∩Θ¿¼ «íαáΘÑ-
- ¡¿Ñ¼. æ½Ññ«óáΓѽ∞¡«, í«½∞Φ¿¡ßΓó« ºáΘ¿ΘÑ¡¡δσ «Γ ¬«»¿α«óá¡¿∩ »á¬ÑΓ«ó
- ¼«úπΓ πßΓá¡áó½¿óáΓ∞ß∩ ¡á ªÑßΓ¬«¼ ñ¿ß¬Ñ, ¿ß»«½∞ºπ∩ ½εíδÑ ¼ÑΓ¬¿ ºáΘ¿Γδ
- ªÑßΓ¬«ú« ñ¿ß¬á (φΓá ú½áóá) ¿½¿ ¼ÑΓ¬¿ «ß¡«ó¡«⌐ »½áΓδ (ú½áóá 3). ü½á-
- ú«ñáα∩ ßπΘÑßΓó«óá¡¿ε í«½∞Φ«ú« τ¿ß½á ¡Ñß«ó¼ÑßΓ¿¼δσ Σ¿º¿τÑ߬¿ ¿¡ΓÑα-
- ΣÑ⌐ß«ó ªÑßΓ¬«ú« ñ¿ß¬á, ¼ÑΓ¬¿ ªÑßΓ¬«ú« ñ¿ß¬á - «íδτ¡« "¡á¿¼Ñ¡∞Φ¿⌐ «í-
- Θ¿⌐ º¡á¼Ñ¡áΓѽ∞" αẽ¿τ¡δσ 󫺼«ª¡«ßΓÑ⌐ ¿ í«½ÑÑ »α«ßΓδ ó ¿ºú«Γ«ó½Ñ-
- ¡¿¿.
-
- 2.1 çáΘ¿Γá ¡á πα«ó¡Ñ τ¿»á
-
- ¥Γ«Γ πα«óÑ¡∞ ñ«ßΓπ»á ¬ ªÑßΓ¬«¼π ñ¿ß¬π óÑß∞¼á ¼á½«óÑα«∩ΓÑ¡, Γá¬
- τΓ« ¼δ Γ«½∞¬« ¬αáΓ¬« «íßñ¿¼ AT WDC (¬«¡Γα«½½Ñα ó¿¡τÑßΓÑα¡«ú« ñ¿ß¬á),
- ß ¬«Γ«αδ¼ îδ ¿¼ÑѼ ¡Ñí«½∞Φ«⌐ ½¿τ¡δ⌐ «»δΓ «íαáΘÑ¡¿∩. è »Ñαó«¼π AT WDC
- ¼«ª¡« «íαáΘáΓ∞ß∩ »« áñαÑßá¼ 1F0-1F7 ¿ 3F6 (φëà »«αΓ ¡áσ«ñ¿Γß∩ ó áñ-
- αÑß¡«¼ »α«ßΓαá¡ßΓóÑ »Ñαóδσ AT FDC, ¿ ∩ó½∩ÑΓß∩ »α¿τ¿¡«⌐ ñ½∩ ¬«¡Σ½¿¬Γá
- á»»áαáΓ¡δσ ßαÑñßΓó ó ß¿ßΓѼáσ ß FDC ¿ WDC, óδ»«½¡Ñ¡¡δσ ¡á αẽ¿τ¡δσ
- ñ«»«½¡¿Γѽ∞¡δσ »½áΓáσ). éΓ«α«⌐ AT WDC ºá¡¿¼áÑΓ áñαÑßá 170-177 ¿ 376.
- AT WDC ¿ß»«½∞ºπÑΓ IRQ 14 (int 76 ó îæ-äÄæ) ¿ ¡Ñ ¿ß»«½∞ºπÑΓ DMA.
- æΓαπ¬Γπαá AT WDC óδú½∩ñ¿Γ «τÑ¡∞ ßσ«ªÑ ß τ¿»«¼ INTEL 82062, ñÑ⌐ßΓóπε-
- ΘѼ ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ ß 4-íá⌐Γ«óδ¼ ¬«ñ«¼ ECC (¬«ñ ¿ß»αáó½Ñ¡¿∩
- «Φ¿í«¬), ñ«íáó½Ñ¡¡δ¼ ¬ ¬áªñ«¼π ßÑ¬Γ«απ. (è ß«ªá½Ñ¡¿ε, ¼δ ¿¼ÑѼ Γ«½∞-
- ¬« ¿¡Σ«α¼áµ¿ε »« πß«óÑαΦÑ¡ßΓó«óá¡¿ε ¡á 82062, ΓᬠτΓ« »α¿ó«ñ¿¼«¬
- «»¿ßá¡¿Ñ ¡¿ªÑ ¡Ñ ¼«ªÑΓ íδΓ∞ Γ«τ¡δ¼ ¿½¿ ºá¬«¡τÑ¡¡δ¼).
- 1F0 - αÑú¿ßΓα ñá¡¡δσ, ¿ß»«½∞ºπѼδ⌐ ñ½∩ íπΣÑαá τΓÑ¡¿∩/ºá»¿ß¿ ßѬ-
- Γ«α«ó (512 íá⌐Γ«ó). ò«Γ∩ ñ½∩ ñá¡¡δσ ßÑ¬Γ«αá ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩
- ß½«ó¡δ⌐ ñ«ßΓπ» Γ«½∞¬« íá⌐Γ«óδ⌐ »α¿Ñ¼½Ñ¼ ñ½∩ τΓÑ¡¿∩/ºá»¿ß¿ íá⌐Γ«ó
- ECC.
- 1F1 - τΓÑ¡¿Ñ: αÑú¿ßΓα Σ½áú«ó «Φ¿í«¬
-
- ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
- │ BBD │ CRC │ 0 │ ID │ 0 │ AC │ TK0 │ DM │
- └──┬──┴──┬──┴─────┴──┬──┴─────┴──┬──┴──┬──┴──┬──┘
- │ │ │ │ │ └ Çî ñá¡¡δσ ¡Ñ ¡á⌐ñÑ¡á
- │ │ │ │ └─── ìÑπñáτ¡á∩ »ÑαѬ὿íα«ó-
- │ │ │ │ α«ó¬á:ßÑ¬Γ«α 0 ¡Ñ ¡á⌐ñÑ¡
- │ │ │ └──────────── 諼á¡ñá »αÑαóá¡á
- │ │ └──────────────────────── ID AM ¡Ñ ¡á⌐ñÑ¡
- │ └──────────────────────────────────── ìѿ߻αáó¿¼á∩ «Φ¿í¬á
- │ ¿½¿ AM ñá¡¡δσ ¡Ñ ¡áñÑ¡á
- └────────────────────────────────────────── ìá⌐ñÑ¡ »½«σ«⌐ í½«¬
- É¿ß 2.1a ÉÑú¿ßΓα Σ½áú«ó «Φ¼í«¬ (1F1)
-
- 1F1 - ºá»¿ß∞: »π߬ π¼Ñ¡∞ΦáÑΓ ºá»¿ß∞ ΓѬπΘÑú« µ¿½¿¡ñαá / 4, 0FFh
- «Γ¬½ετáÑΓ RWC.
- 1F2 - αÑú¿ßΓα ßτÑΓτ¿¬á ßÑ¬Γ«α«ó. êß»«½∞ºπÑΓß∩, τΓ«íδ «»αÑñѽ∩Γ∞
- τ¿ß½« »ÑαÑßδ½áѼδσ ßÑ¬Γ«α«ó ó ¼¡«ú«ßÑ¬Γ«α¡δσ «»Ñαᵿ∩σ - 1, Γ« ÑßΓ∞
- , º¡áτÑ¡¿Ñ 1 º¡áτ¿Γ 2 ßÑ¬Γ«αá. WDC íπñÑΓ »α¿¡¿¼áΓ∞ í«½ÑÑ «ñ¡«⌐ ñ«-
- ᫪¬¿, ß«ßΓ«∩ΘÑ⌐ ¿º ßÑ¬Γ«α«ó, ¼«ñ¿Σ¿µ¿απ∩ ¡«¼Ñαá ú«½«ó¬¿ ¿ µ¿½¿¡ñαá,
- ß««ΓóÑΓßΓóÑ¡¡«. é ΓÑτÑ¡¿Ñ «»Ñαᵿ¿ Σ«α¼áΓá ñ«α«ª¬¿ «»αÑñѽ∩ÑΓ τ¿ß½«
- ßÑ¬Γ«α«ó ¡á ñ«α«ª¬Ñ (0FFh - 255 ßÑ¬Γ«α«ó).
- 1F3 - αÑú¿ßΓα ¡«¼Ñαá ßÑ¬Γ«αá. é ΓÑτÑ¡¿Ñ «»Ñαᵿ¿ Σ«α¼áΓá ñ«α«ª¬¿
- «»αÑñѽ∩ÑΓ º¡áτÑ¡¿Ñ GAP 1 ¿ GAP 3 (ß¼. «»¿ßá¡¿Ñ MFM ó 1.1.3) ¼¿¡πß 3
- íá⌐Γá.
- 1F4 - 8 ¼½áñΦ¿σ í¿Γ«ó ¡«¼Ñαá µ¿½¿¡ñαá. (Tech Help! 4.0 ºñÑß∞ ¡Ñ-
- óÑαÑ¡).
-
- - 22 -
- 1F5 - 2 ßΓáαΦÑú« αáºα∩ñá ¡«¼Ñαá µ¿½¿¡ñαá (í¿Γδ 0-1 ¿ß»«½∞ºπεΓß∩).
- ìѬ«Γ«αδÑ WDC ¡Ñ íπñπΓ »α¿¡¿¼áΓ∞ í«½ÑÑ 2-σ í¿Γ ó φΓ«¼ αÑú¿ßΓαÑ, Γá-
- ¬¿¼ «íαẫ¼, »«ññÑনóá∩ ªÑßΓ¬¿Ñ ñ¿ß¬¿ ß í«½ÑÑ 1023 µ¿½¿¡ñαἿ, ¡«
- í«½∞Φ¿¡ßΓó« BIOS'«ó óßÑúñá πñá½∩ÑΓ φΓ¿ ßΓáαΦ¿Ñ í¿Γδ.
- 1F6 - óδí«α ßÑ¬Γ«αá/»α¿ó«ñá/ú«½«ó¬¿.
-
- ┌─────┬───────────┬─────┬───────────────────────┐
- │ EXT │ SIZE │ DRV │ HEAD │
- └──┬──┴────┬──────┴──┬──┴─────┴─────┼─────┴─────┘
- │ │ │ └────── éδí«α ú«½«ó¬¿ (0-15)
- │ │ └───────────────────── éδí«α »α¿ó«ñá (0-1)
- │ └──────────────────────────────── è«ñ αẼÑαá ßÑ¬Γ«αá:
- │ 00 = 256 íá⌐Γ«ó
- │ 01 = 512 íá⌐Γ«ó
- │ 10 = 1024 íá⌐Γ«ó
- │ 11 = 128 íá⌐Γ«ó
- └──────────────────────────────────────── 0: ¿ß»«½∞º«óáΓ∞ CRC
- 1: ¿ß»«½∞º«óáΓ∞ ECC
- É¿ß. 2.1b SDH (Sector/Drive/Head) αÑú¿ßΓα (1F6).
-
- é »Ñαó«¡áτá½∞¡«⌐ ߻ѵ¿Σ¿¬áµ¿¿ 82062 3 í¿Γá αѺÑαó¿α«ó὿ß∞ ñ½∩
- »«½∩ óδí«αá ú«½«ó¬¿ ¿ 2 í¿Γá - ñ½∩ óδí«αá ñ¿ß¬«ó«ñá, ¡« φΓ¿ ß¿ú¡á½δ
- «íαáíáΓδó὿ß∞ ó¡ÑΦ¡¿¼¿ ßσѼἿ, ΓᬠτΓ« φΓ« ñÑ⌐ßΓó¿Γѽ∞¡« ¡Ñ ¿¼ÑÑΓ
- º¡áτÑ¡¿∩.
- 1F7 - τΓÑ¡¿Ñ : αÑú¿ßΓα ß«ßΓ«∩¡¿∩
-
- ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
- │BUSY │READY│ WF │ SC │ DRQ │ ECC │ CIP │ERROR│
- └──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┘
- │ │ │ │ │ │ │ └ ÉѺε¼Ñ «Φ¿í¬¿ (OR ß«
- │ │ │ │ │ │ │ óßѼ¿ í¿ΓἿ 1F1)
- │ │ │ │ │ │ └────── 諼á¡ñá ó αáí«ΓÑ
- │ │ │ │ │ └─────────── äá¡¡δÑ ECC-¿ß»αáó½Ñ¡δ
- │ │ │ │ └────────────────── çá»α«ß ñá¡¡δσ (íπΣÑα
- │ │ │ │ «ª¿ñáÑΓ ñá¡¡δÑ)
- │ │ │ └──────────────────────── ôßΓá¡«ó¬á óδ»«½¡Ñ¡á
- │ │ └────────────────────────────── ÄΦ¿í¬á ºá»¿ß¿
- │ └──────────────────────────────────── WDC ú«Γ«ó
- └────────────────────────────────────────── WDC ºá¡∩Γ (óßÑ ñαπ-
- ú¿Ñ í¿Γδ ¡ÑóÑα¡δ)
- É¿ß. 2.1c ÉÑú¿ßΓα ß«ßΓ«∩¡¿∩ (1F7)
-
- 1F7 - ºá»¿ß∞: αÑú¿ßΓα ¬«¼á¡ñ. çñÑß∞ ºá»¿ßδóáÑΓß∩ ¬«ñ ¬«¼á¡ñδ.
- æ¿ßΓÑ¼á ¬«¼á¡ñ AT FDC (¬«Γ«αá∩ ∩ó½∩ÑΓß∩ ¡áñ¼¡«ªÑßΓó«¼ 82062), ó¬½ε-
- τáÑΓ ß½ÑñπεΘ¿Ñ:
- 0 0 0 1 R3 - R0 ôßΓá¡«ó¬á ñ«α«ª-
- └─────┴─────┴─────┴─────┴───────────────────────┘ ¬¿ 0
-
- 0 1 1 1 R3 - R0 ôßΓá¡«ó¬á
- └─────┴─────┴─────┴─────┴───────────────────────┘
-
- 0 0 1 0 I M E T ù¿ΓáΓ∞ ßÑ¬Γ«α
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-
- 0 0 1 1 0 M E T Å¿ßáΓ∞ ßÑ¬Γ«α
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-
- 0 1 0 0 0 0 0 0 Åα«ß¼«Γα ¿ñÑ¡Γ¿-
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ Σ¿¬áΓ«αá
-
- 0 1 0 1 0 0 0 0 ö«α¼áΓ¿α«óá¡¿Ñ
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-
-
- - 23 -
- 1 0 0 1 0 0 0 0 ä¿áú¡«ßΓ¿¬á
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-
- 1 0 0 1 0 0 0 1 ôßΓá¡«ó¬á »áαá¼Ñ-
- └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ Γα«ó »α¿ó«ñá
-
- R3-R0 «»αÑñѽ∩εΓ ß¬«α«ßΓ∞ Φáúá ñ¿ß¬«ó«ñá, ¬«Γ«αá∩ íπñÑΓ 0.035+0.5
- * R ¼ß ñ½∩ 5 îⵠ߬«α«ßΓ¿ ß¿¡σα«¡¿ºáµ¿¿. (ìáΦ¿ φ¬ß»Ñα¿¼Ñ¡Γδ ß AT WDC
- π¬áºδóáεΓ, τΓ« φΓ« º¡áτÑ¡¿Ñ ¿ú¡«α¿απÑΓß∩ ¬«¡Γα«½½Ñα«¼, ¬«Γ«αδ⌐ πßΓá-
- ¡áó½¿óáÑΓ ú«½«ó¬π ó ¼á¬ß¿¼á½∞¡«Ñ 󫺼«ª¡«Ñ íδßΓα«ñÑ⌐ßΓó¿Ñ, ¿ß»«½∞ºπ∩
- á»»áαáΓ¡πε ¿¡ΓÑαΣÑ⌐ß¡πε ½¿¡¿ε Seek Completed).
- I = 0 αáºαÑΦáÑΓ ºá»α«ß »αÑαδóá¡¿∩ ¡á á¬Γ¿ó¡«¼ DRQ, ¬á¬ ¿ »«ß½Ñ
- ºáóÑαΦÑ¡¿∩ ¬«¼á¡ñδ, I = 1 «Γ¬½ετáÑΓ »αÑαδóá¡¿Ñ ¡á á¬Γ¿ó¡«¼ DRQ.
- M = 1 «»αÑñѽ∩ÑΓ ¼¡«ú«ßÑ¬Γ«α¡πε »ÑαÑß佬π, τ¿ß½« ßÑ¬Γ«α«ó ¡áσ«-
- ñ¿Γß∩ ó αÑú¿ßΓαÑ ßτÑΓτ¿¬á ßÑ¬Γ«αá.
- E = 1 «Γ¬½ετáÑΓ ¿ß»αáó½Ñ¡¿Ñ ñá¡¡δσ ¿ »ÑαÑñáÑΓ 4 íá⌐Γá ECC ¡áα∩ñπ
- ß ñá¡¡δ¼¿ ßÑ¬Γ«α«ó.
- T = 0 ñ«»π߬áÑΓ »«óΓ«α¡δÑ »ÑαÑß佬¿, Γ« ÑßΓ∞, Ñß½¿ «»αÑñѽ∩Ѽδ⌐
- ßÑ¬Γ«α ¡Ñ íδ½ «í¡áαπªÑ¡ »«ß½Ñ 6 «í«α«Γ«ó, WDC óδ»«½¡∩ÑΓ áóΓ«¼áΓ¿-
- τÑ߬¿ ¬«¼á¡ñπ »α«ß¼«Γαá ¿ñÑ¡Γ¿Σ¿¬áΓ«αá, ¼«ñ¿Σ¿µ¿απÑΓ ó¡πΓαÑ¡¡¿⌐ ¡«-
- ¼Ñα µ¿½¿¡ñαá, óδ»«½¡∩ÑΓ ó ß½πτáÑ ¡Ñ«íσ«ñ¿¼«ßΓ¿ πßΓá¡«ó¬π ¿ »«óΓ«α∩ÑΓ
- «»Ñαᵿε. Åα¿ T = 1 «Φ¿í¬á 󫺡¿¬áÑΓ, Ñß½¿ «»αÑñѽ∩Ѽδ⌐ ßÑ¬Γ«α ¡Ñ
- íδ½ «í¡áαπªÑ¡ »«ß½Ñ 2 «í«α«Γ«ó.
- 3F6 - ºá»¿ß∞: αÑú¿ßΓα «»µ¿⌐. çỿß∞ 02h «Γ¬½ετáÑΓ WDC IRQ 14 «Γ
- ß¿ßΓѼ¡«⌐ Φ¿¡δ, 00h »α«ñ«½ªáÑΓ ¡«α¼á½∞¡δÑ «»Ñαᵿ¿, 04h ßíαáßδóáÑΓ
- ¬«¡Γα«½½Ñα.
- æ¿ßΓÑ¼á ¬«¼á¡ñ WDC ú«αáºñ« ¼Ñ¡ÑÑ ú¿í¬á∩, τѼ π 8272, ¿ αáºαÑΦáÑΓ
- óδí¿αáΓ∞ óαπτ¡πε Γ«½∞¬« ¡«¼Ñα ßÑ¬Γ«αá. ò«Γ∩ áñαÑß¡á∩ ¼ÑΓ¬á ¿ñÑ¡Γ¿Σ¿-
- ¬áΓ«αá ßÑ¬Γ«αá ß«ñÑαª¿Γ Γá¬ªÑ º¡áτÑ¡¿∩ µ¿½¿¡ñαá, ú«½«ó¬¿ ¿ αẼÑαá,
- «¡¿ »α«¿ºó«ñ∩Γß∩ ¿º αÑú¿ßΓαá ¬«¼á¡ñ WDC ¿ ¡Ñ ¼«ªúπΓ ∩ó¡« «»αÑñÑ-
- ½∩Γ∞ß∩. Å«φΓ«¼π óßÑ ¬«¼á¡ñδ WDC (ºá ¿ß¬½ετÑ¡¿Ñ¼ ¬«¼á¡ñδ »α«ß¼«Γαá
- ¿ñÑ¡Γ¿Σ¿¬áΓ«αá) ¿ß»«½∞ºπεΓ »áαá¼ÑΓαδ πßΓá¡«ó¬¿, φΓ¿ »«½∩ Γαπñ¡« ¿º-
- ¼Ñ¡∩Γ∞.
- Äß«íÑ¡¡«ßΓ¿ AT WDC, «τÑó¿ñ¡«, óδú«ñ¡δ ñ½∩ ¡«α¼á½∞¡δσ «»Ñαᵿ⌐
- ¥éî, ¡« ß«¬αáΘáεΓ ó«º¼«ª¡«ßΓ¿ ºáΘ¿Γδ «Γ ¬«»¿α«óá¡¿∩ ñ«»«½¡¿Γѽ∞¡δ¼¿/
- »α«»πΘÑ¡¡δ¼¿ ßÑ¬Γ«αἿ (ß¼. 1.3.1) ¿ »«α∩ñ¬«¼ »α«óÑન ßÑ¬Γ«α«ó (ß¼.
- 1.4.1). êß»αáó½Ñ¡¿Ñ ñá¡¡δσ ECC »«ºó«½∩ÑΓ óδ»«½¡¿Γ∞ ΓαÑΓ¿⌐ Γαε¬ ºáΘ¿-
- Γδ ªÑßΓ¬«ú« ñ¿ß¬á, ¿º¼Ñ¡∩∩ í¿Γ ó «»αÑñѽѡ¡«⌐ »«º¿µ¿¿, ¬«Γ«αδ⌐ íπñÑΓ
- ߬αδóáΓ∞ß∩ ECC.
- éßÑ φΓ¿ ¼ÑΓ¬¿ ¼«úπΓ Γá¬ªÑ úÑ¡Ñα¿α«óáΓ∞ß∩ ¿ »α«óÑα∩Γ∞ß∩ »α¿
- ¿ß»«½∞º«óá¡¿¿ ñ«ßΓπ»á ¬ ñ¿ß¬π ¡á πα«ó¡Ñ BIOS, ΓᬠτΓ« «íαáΘÑ¡¿Ñ ¡á
- πα«ó¡Ñ τ¿»á «íαáΘáεΓß∩ ¬ WDC ¡Ñ ñáÑΓ ¡¿¬á¬¿σ ßπΘÑßΓóÑ¡¡δσ »αÑ¿¼π-
- ΘÑßΓó, ¬«Γ«αδÑ ¼«úπΓ »«¬αδΓ∞ß∩ »½«σ«⌐ »ÑαÑ¡«ß¿¼«ßΓ∞ε »α«úαá¼¼.
-
- 2.2 çáΘ¿Γá ¡á πα«ó¡Ñ BIOS
-
- ¥Γ«, «τÑó¿ñ¡«, «ß¡«ó¡«⌐ πα«óÑ¡∞ ñ½∩ ºáΘ¿Γδ, «ß¡«óá¡¡«⌐ ¡á ªÑßΓ¬«¼
- ñ¿ß¬Ñ. ä«ßΓáΓ«τ¡á∩ ºáΘ¿Γá ¿º αѺ¿ñÑ¡Γ¡δσ »α«úαá¼¼, ¬«¡Γα«½¿απεΘ¿σ
- ó맮óδ int 13h BIOS, ¼«ªÑΓ ñ«ßΓ¿úáΓ∞ß∩ ó φΓ«¼ ß½πτáÑ »α¿ «Γ߽Ѫ¿óá-
- ¡¿¿ «íαáΘÑ¡¿∩ ¬ »αÑαδóá¡¿ε, 13h, ∩ó½∩εΘÑú«ß∩ Γ«τ¬«⌐ óσ«ñá BIOS »α¿
- «íαáΘÑ¡¿¿ ¬ ªÑßΓ¬«¼π ñ¿ß¬π (ß¼. »α¿¼Ñα ó Åα¿½«ªÑ¡¿¿ B). äαπúá∩ »α¿-
- τ¿¡á ñ½∩ Γᬫú« πñá½Ñ¡¿∩ ¡áí½εñÑ¡¿∩ - 󫺼«ª¡á∩ »«ΓαÑí¡«ßΓ∞ ñ½∩ Γ«τ-
- ¡«ú« óδí«αá Γ«τ¡«ú« óαѼѡ¿ «»Ñαᵿ¿ ó «»αÑñѽѡ¿¿ ¿¡ΓÑ૨óá.
-
- 2.2.1 꺼ѡѡ¿∩ ¿¡ΓÑ૨óá
-
- ¥Γ«Γ ¼ÑΓ«ñ «τÑ¡∞ ßσ«ñÑ¡ ß ºáΘ¿Γ«⌐ ú¿í¬¿σ ñ¿ß¬«ó, «»¿ßá¡¡«⌐ ó
- 1.4.1. é «Γ½¿τ¿Ñ «Γ ñ¿ß¬ÑΓ, úñÑ ßÑ¬Γ«αá, ¬á¬ »αá󿽫, αẼÑΘáεΓß∩
- »«ß½Ññ«óáΓѽ∞¡« (¿¡ΓÑ૨ó 1:1), ßÑ¬Γ«αá ªÑßΓ¬¿σ ñ¿ß¬«ó τáßΓ« αẼÑ-
- ΘÑ¡δ Σ«α¼áΓÑαἿ ¡¿º¬«ú« πα«ó¡∩ »αѵ¿º¿«¡¡«, τΓ«íδ «íÑß»Ñτ¿óáΓ∞ ßá-
- ¼πε íδßΓαπε ¿º 󫺼«ª¡δσ ߬«α«ßΓ∞ »ÑαÑß佬¿ ñá¡¡δσ. æ½Ññ«óáΓѽ∞¡«
- í«½ÑÑ Γαπñ¡« πó¿ñÑΓ∞ ¼ÑΓ¬π ¿¡ΓÑ૨óá ¡á ªÑßΓ¬«¼ ñ¿ß¬Ñ, τѼ ¡á ñ¿ß¬Ñ-
- ΓÑ.
-
- - 24 -
-
- 2.2.2 꺼ѡѡ¡δÑ ¡«¼Ñαá ßÑ¬Γ«αá
-
- æ¡«óá, φΓ« ñó«⌐¡¿¬ 1.3.1. Äñ¡á¬«, ªÑßΓ¬¿Ñ ñ¿ß¬¿ «íδτ¡« ¿¼ÑεΓ
- »½«Γ¡ÑÑ π»á¬«óá¡¡δÑ ßÑ¬Γ«αá ñá¡¡δσ, ¿ τΓ«íδ ñ«íáó¿Γ∞ ßÑ¬Γ«α ß
- ¡ÑßΓá¡ñáαΓ¡δ¼ ¡«¼Ñα«¼, ¡πª¡« »ÑαѼÑΘáΓ∞ «ñ¿¡ ¿º ßÑ¬Γ«α«ó ñá¡¡δσ.
- ¥Γ«á ß¿Γπᵿ∩ ¼«ªÑΓ ½Ñú¬« «»αÑñѽ∩Γ∞ß∩.
-
- 2.2.3 ìѿ߻«½∞ºπѼδÑ ñ¿ß¬«óδÑ «í½áßΓ¿
-
- ìá πα«ó¡Ñ BIOS ¿¼ÑεΓß∩ ñóÑ ¡Ñ¿ß»«½∞ºπѼδσ «í½áßΓ¿ ¡á »«τΓ¿ ½εí«¼
- ªÑßΓ¬«¼ ñ¿ß¬Ñ: ó ßἫ¼ ¡áτá½Ñ ¿ ó ßἫ¼ ¬«¡µÑ ñ¿ß¬«ó«ñá. ÅÑαóδ⌐ ßѬ-
- Γ«α ¬áªñ«ú« ªÑßΓ¬«ú« ñ¿ß¬á (»« ¬αá⌐¡Ñ⌐ ¼ÑαÑ, ¡Ñ SCSI ¿½¿ ESDI) ºá¡∩Γ
- Γáí½¿µÑ⌐ αáºñѽ«ó, ó Γ« óαѼ∩ ¬á¬ óßÑ ñαπú¿Ñ ßÑ¬Γ«αá ¡á µ¿½¿¡ñαÑ 0
- ñ«α«ª¬¿ 0 ¡Ñ ¿ß»«½∞ºπεΓß∩ ó IBM ¿ ßσÑ¼Ñ αáºñѽ«ó Microsoft. àΘÑ, φΓá
- «í½áßΓ∞ ¼«ªÑΓ íδΓ∞ ºá¡∩Γá τáßΓ¡δ¼ »α«úαá¼¼¡δ¼ «íÑß»ÑτÑ¡¿Ñ¼ óδñѽѡ¿∩
- αáºñѽ«ó. ìá»α¿¼Ñα, DiskManager (dmdrvr.bin) ¿ß»«½∞ºπÑΓ ßÑ¬Γ«α 0/0/8
- ñ½∩ αáßΦ¿αÑ¡¡«⌐ Γáí½¿µδ αáºñѽ«ó, Olivetty îæ-äÄæ ¡áτ¿¡áÑΓ »Ñαóδ⌐
- αáºñѽ DOS ó 0/0/2, ¿ Γ.ñ.
- éΓ«αá∩ ¡Ñ¿ß»«½∞ºπѼá∩ «í½áßΓ∞ - µ¿½¿¡ñα ñ¿áú¡«ßΓ¿¬¿ »«½∞º«óáΓѽ∩
- , ¬«Γ«αδ⌐ αẼÑΘáÑΓß∩ ºá ó »«ß½Ññ¡¿¼ ñ¿ß¬«óδ¼ µ¿½¿¡ñα ¡á ¥éî AT ¿ ¡á
- »«ß½Ññ¡Ñ¼ µ¿½¿¡ñαÑ ¡á PS/2 (ì« «¡¿ ÑΘÑ ß«ó¼ÑßΓ¿¼δ, ¡Ñ Γᬠ½¿?).
- ùΓ«-¡¿íπñ∞, ºá»¿ßá¡¡«Ñ ºñÑß∞, ¿¼ÑÑΓ «τÑ¡∞ ¡Ñí«½∞Φ¿Ñ ó«º¼«ª¡«ßΓ¿ ß«σ-
- αá¡¿Γ∞ß∩ ñ«½ú«, »«Γ«¼π τΓ« ½εíá∩ ñ¿ß¬«óá∩ »α«úαá¼¼á ΓÑßΓá ¡¿º¬«ú«
- πα«ó¡∩ ¼«ªÑΓ «íαáíáΓδóáΓ∞ φΓπ ñ«α«ª¬π ¬á¬ Ñ⌐ ºáσ«τÑΓß∩. (ƒ πóÑαÑ¡,
- Norton DiskTreet ¿ Gibbson Research's SpinRite «»αÑñѽ∩εΓ ºñÑß∞ «»-
- Γ¿¼á½∞¡δ⌐ ¿¡ΓÑ૨ó).
-
- 2.3 çáΘ¿Γá ¡á πα«ó¡Ñ DOS
-
- çáΘ¿Γá ¡á πα«ó¡Ñ BIOS ªÑßΓ¬«ú« ñ¿ß¬á «íÑß»Ñτ¿óáÑΓ ¡Ñ ß½¿Φ¬«¼ ¼¡«-
- ú« óáα¿á¡Γ«ó, ó Γ« óαѼ∩ ¬á¬ DOS ¿¼ÑÑΓ πñ«í¡δÑ (¿ «Γ¡«ß¿Γѽ∞¡« »ÑαÑ-
- ¡«ß¿¼δÑ) ß»«ß«íδ ó맮óá αáºñѽ«ó DOS (¿¡ΓÑαΣÑ⌐ß«¼ »αÑαδóá¡¿⌐
- 25h/26h, ExtendedOpen (6Ch) ó DOS 4.0+), ¬«Γ«αδÑ ¼«úπΓ ¿ß»«½∞º«-
- óáΓ∞ß∩ ñ½∩ ºáΘ¿Γδ «Γ ¬«»¿α«óá¡¿∩.
- æΓαπ¬Γπαá Σá⌐½«ó«⌐ ß¿ßΓѼδ DOS Φ¿α«¬« ¿ºóÑßΓ¡á, ΓᬠτΓ« ¼δ íπñѼ
- Γ«½∞¬« ¬αáΓ¬« π»«¼¿¡áΓ∞ ¡á¿í«½ÑÑ ßπΘÑßΓóÑ¡¡δÑ ÑÑ τáßΓ¿.
- æÑ¬Γ«α 0 - ßÑ¬Γ«α ºáúαπºτ¿¬á. Ä¡ ß«ñÑαª¿Γ ¬«ñ ¬«Γ«αδ⌐, ºáúαπªáÑΓ
- «»Ñαᵿ«¡¡πε ß¿ßΓÑ¼π ¿ Γáí½¿µπ, «»¿ßδóáεΘπε σáαá¬ΓÑα¿ßΓ¿¬¿ αáºñѽá,
- ¬á¬ τ¿ß½« ßÑ¬Γ«α«ó, τ¿ß½« ßÑ¬Γ«α«ó ¡á ¬½áßΓÑα, ¡«¼Ñα FAT, τ¿ß½« óσ«-
- ñ«ó ó ¬«α¡Ñó«⌐ ¬áΓὫú.
- Æáí½¿µá αẼÑΘÑ¡¿∩ Σá⌐½á«ó (FAT), ¬«Γ«αδ⌐ ß½ÑñπÑΓ ºá ºáúαπºτ¿¼,
- ß«ñÑαª¿Γ 12- ¿½¿ 16-í¿Γ«óδÑ º¡áτÑ¡¿∩ ñ½∩ ¬áªñ«ú« ¼«ñπ½∩ αáß»αÑñѽÑ-
- ¡¿∩ (¬½áßΓÑαá), π¬áºδóá∩ ¡«¼Ñα ß½ÑñπεΘÑú« ¬½áßΓÑαá ó µÑ»«τ¬Ñ. Äíδτ-
- ¡«, ¡á ñ¿ß¬Ñ ÑßΓ∞ í«½ÑÑ «ñ¡«⌐ (ñóÑ) FAT, «íÑß»Ñτ¿óá∩, Γᬿ¼ «íαẫ¼,
- ß«σαá¡¡«ßΓ∞ ñá¡¡δσ. (Äñ¡á¬«, DOS ¡Ñ «íαáíáΓδóáѼ ¬«»¿¿ FAT «Γñѽ∞¡«,
- á »α«ßΓ« ß«σαá¡∩ÑΓ »Ñαóπε FAT ó ñ«»«½¡¿Γѽ∞¡δσ «í½áßΓ∩σ, ñπí½¿απε∩
- ½εíπε «Φ¿í¬π ó 1-«⌐ ¬«»¿¿ ó« óßÑσ FAT, ΓᬠτΓ« ºáΘ¿Γá, ó ñÑ⌐ßΓó¿-
- Γѽ∞¡«ßΓ¿, ó««íαáªáѼá∩).
- è«α¡Ñó«⌐ ¬áΓὫú (»«ß½Ñ »«ß½Ññ¡Ñ⌐ ¬«»¿¿ FAT) ß«ñÑαª¿Γ Γáí½¿µπ ß
- 32 íá⌐ΓἿ (¡áºδóáѼδ⌐ óσ«ñ«¼ ¬áΓὫúá) ñ½∩ ¬áªñ«ú« Σá⌐½á ó ¬áΓὫ-
- úÑ. éσ«ñ ¬áΓὫúá ß«ñÑαª¿Γ ¿¼∩ Σá⌐½á, αẼÑαδ, ñáΓπ ¼«ñ¿Σ¿¬áµ¿¿ Σá⌐-
- ½á ¿ »Ñαóδ⌐ ¡«¼Ñα ¬½áßΓÑαá. äαπú¿Ñ ¬áΓὫú¿ ¿ß»«½∞ºπεΓ ΓÑ ªÑ ßá¼δÑ
- ¼ÑΓ«ñδ αáß»αÑñѽѡ¿∩, ¬á¬ «íδτ¡δÑ Σá⌐½δ.
-
- 2.3.1 çáó¿ß¿¼«ßΓ∞ «Γ ¡«¼Ñαá ¬½áßΓÑαá
-
- æΓá¡ñáαΓ¡δÑ ¿¡ßΓαπ¼Ñ¡Γá½∞¡δÑ ßαÑñßΓóá äÄæÇ ¡Ñ αáºαÑΦáεΓ »«¬-
- ½áßΓÑα¡δ⌐ ¬«¡Γα«½∞ Σá⌐½«ó, ΓᬠτΓ« φΓá ¿¡Σ«α¼áµ¿∩ ¼«ªÑΓ ¿ß»«½∞º«-
- óáΓ∞ß∩ τΓ«íδ ¬«ñ¿α«óáΓ∞ ¿º«íαáªÑ¡¿Ñ »α«úαá¼¼δ ¿/¿½¿ ñá¡¡δσ. æΓáαΓ«-
- óδ⌐ ¡«¼Ñαá ¬½áßΓÑαá Σá⌐½á ¼«ªÑΓ íδΓ∞ »«½πτÑ¡ CP/M-«íαẫ¼, óδºóáó
- »αÑαδóá¡¿Ñ 11h ( FindFirst τÑαѺ FCB). (é맮óδ CP/M ¼«úπΓ ß¬αδóáΓ∞ß∩
- «Γ í«½∞Φ¿¡ßΓóá ¡áí½εñáΓѽÑ⌐ óδ»«½¡Ñ¡¿Ñ¼ ñá½∞¡«ú« ó맮óá ¬ áñαÑßπ
-
- - 25 -
- 0:0C0h ß ¬«ñ«¼ Σπ¡¬µ¿¿ ó CL ó¼ÑßΓ« AL). éδ∩ߡѡ¿Ñ ñαπú¿σ ¡«¼Ñα«ó
- ¬½áßΓÑα«ó ΓαÑíπÑΓ »α«ß¼«Γαá FAT (æ¼. »α¿¼Ñα ó Åα¿½«ªÑ¡¿¿ C).
-
- 2.3.2 ìѿ߻«½∞ºπѼδÑ (ºáαѺÑαó¿α«óá¡¡δÑ) ñ¿ß¬«óδÑ «í½áßΓ¿
-
- é ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿, ¿¼ÑÑΓß∩ Γ«½∞¬« «ñ¡á Γá¬á∩ «í½áßΓ∞ »« ß¼ÑΘÑ¡¿ε
- 0Ch óσ«ñá ¬áΓὫúá (ñ½¿¡«⌐ 10 íá⌐Γ«ó). è ß«ªá½Ñ¡¿ε , φΓá «í½áßΓ∞
- τáßΓ« ¿ß»«½∞ºπÑΓß∩ "DOS-ß«ó¼ÑßΓ¿¼δ⌐" «»Ñαᵿ«¡¡δ¼¿ ß¿ßΓѼἿ. ìá»α¿-
- ¼Ñα, Digital Research DOS ¿ß»«½∞ºπÑΓ φΓ« »«½Ñ ñ½∩ σαá¡Ñ¡¿∩ »áα«½∩
- Σá⌐½á, PC-MOS/386 (Software Liks) ºá»«¼¿¡áÑΓ ºñÑß∞ ¿ñÑ¡Γ¿Σ¿¬áΓ«α
- ó½áñѽ∞µá Σá⌐½á, »αáóá ñ«ßΓπ»á ¿ ñáΓπ/óαѼ∩ ß«ºñá¡¿∩.
- äαπúá∩ ºáαѺÑαó¿α«óá¡¡á∩ «í½áßΓ∞, ¬«Γ«αá∩ ¼«ªÑΓ ßπΘÑßΓó«óáΓ∞ ¡á
- ñ¿ß¬Ñ, ∩ó½∩ÑΓß∩ «ßΓáΓ¬«¼ »«ß½Ññ¡Ñú« ßÑ¬Γ«αá ó FAT 1, ¬«Γ«αδ⌐ ß«σαá-
- ¡∩ÑΓß∩ DOS (¿ ñáªÑ ¬«»¿απÑΓß∩ ó« óßÑ ñαπú¿Ñ ¬«»¿¿ FAT).
-
- 2.3.3 ìѿ߻«½∞ºπѼδÑ («¬απú½Ñ¡¡δÑ ñ« αẼÑαá ¬½áßΓÑαá)
- ñ¿ß¬«óδÑ «í½áßΓ¿
-
- Æ.¬. DOS αáß»αÑñѽ∩ÑΓ ñ¿ß¬«ó«Ñ »α«ßΓαá¡ßΓó« ó ¬½áßΓÑαáσ (¬«Γ«αδÑ
- ß«ñÑαªáΓ 2^N ßÑ¬Γ«α«ó), ó Γ« óαѼ∩ ¬á¬ αẼÑα Σá⌐½á ¿º¼Ñα∩ÑΓß∩ ó
- íá⌐Γáσ, í«½∞Φ¿¡ßΓó« Σá⌐½«ó ¿¼ÑÑΓ ¡Ñ¿ß»«½∞ºπÑ¼δ¼ (¿ «íδτ¡« ¡Ñó¿ñ¿¼δ⌐
- ¡á πα«ó¡Ñ Σá⌐½«ó«⌐ ß¿ßΓѼδ) σó«ßΓ, ¬«Γ«αδ⌐ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩
- µÑ½Ñ⌐ ºáΘ¿Γδ. èπα∞Ѻ¡á∩ «Φ¿í¬á ó DOS, ¬«Γ«αá∩ αáºαÑΦáÑΓ πßΓá¡«ó¬π
- (Σπ¡¬µ¿∩ DOS 42h) ºá ¬«¡µ«¼ Σá⌐½á, ñѽáÑΓ ñ«ßΓπ» ¬ φΓ«¼π σó«ßΓπ
- »α«ßΓδ¼ ñáªÑ ¿º ∩ºδ¬«ó óδß«¬«ú« πα«ó¡∩ (æ¼. Åα¿½«ªÑ¡¿Ñ D).
-
- 3. æ¿ßΓÑ¼á ºáΘ¿Γδ ¡á «ß¡«ó¡«⌐ »½áΓÑ ¿ ß¿ßΓÑ¼Ñ BIOS
-
- äαπúá∩ τáßΓ∞ PC, ¬«Γ«αá∩, ¡áα∩ñπ ß ñ¿ß¬ÑΓ«⌐ ¿ ªÑßΓ¬¿¼ ñ¿ß¬«¼, ∩ó-
- ½∩ÑΓß∩ óßÑúñá ñ«ßΓπ»¡«⌐ ñ½∩ ºáΘ¿Γδ «Γ ¬«»¿α«óá¡¿∩ - «ß¡«ó¡á∩ »½áΓá.
- ò«Γ∩ «ß¡«ó¡δÑ »½áΓδ ΓÑ»Ñα∞ »α«¿ºó«ñ∩Γß∩ ó Γδß∩τἿ, »«τΓ¿ ¬áªñδá∩ ¿º
- ¿σ ¿¼ÑÑΓ (¿½¿ ¼«ªÑΓ »α¿«íαÑßΓ¿) ¿¡ñ¿ó¿ñπá½∞¡δÑ ¬áτÑßΓóá.
-
- 3.1 滫߫í, «ß¡«óá¡¡δ⌐ ¡á ñá¡¡δσ
-
- èáªñá∩ «ß¡«ó¡á∩ »½áΓá ¿¼ÑÑΓ ß«íßΓóÑ¡¡δ⌐ BIOS. Æá¬ τΓ« φΓ« ¼«ªÑΓ
- ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ ºáΘ¿Γδ ¬«»¿¿ , σ«Γ∩ ¼δ αѬ«¼Ñ¡ñπѼ φΓ« »αѪñÑ
- óßÑú« ñ½∩ »α«¿ºó«ñ¿ΓѽÑ⌐ á»»áαáΓ¡δσ ßαÑñßΓó, á ¡Ñ ñ½∩ ¡Ñºáó¿ß¿¼δσ
- αáºαáí«Γτ¿¬«ó »α«úαá¼¼¡«ú« «íÑß»ÑτÑ¡¿∩. (Æá¬, ¡áτ¿¡¬á BIOS ß«ñÑনΓ
- ¼¡«ú« ¡Ñ«»¿ßá¡¡δσ Σπ¡¬µ¿⌐ ¿ Γáí½¿µ, ¿ñÑ¡Γ¿Σ¿¬áµ¿∩ ¬«Γ«αδσ ¼«ªÑΓ ∩ó-
- ½∩Γ∞ß∩ ó¿ñ«¼ ºáΘ¿Γδ «Γ ¬«»¿α«óá¡¿∩).
- äαπúá∩ «í½áßΓ∞ ñá¡¡δσ ñ«ßΓπ»¡á∩ ¡á «ß¡«ó¡δσ »½áΓáσ -
- φ¡Ñαú«¡Ñºáó¿ß¿¼á∩ »á¼∩Γ∞ CMOS, ¬«Γ«αá∩, ¬á¬ »αá󿽫 ¿¼ÑÑΓ ¼¡«ú«
- («¬«½« 6) ¡Ñ¿ß»«½∞ºπѼ«ú« »α«ßΓαá¡ßΓóá. ìѬ«Γ«αδÑ
- ó¿ñδ τ¿»«ó (¡á»α¿¼Ñα, ¿º C&T) ¼«úπΓ «Γ«íαáªáΓ∞ τáßΓ∞ »á¼∩Γ¿ CMOS ó
- áñαÑß¡«¼ »α«ßΓαá¡ßΓóÑ ß¿ßΓѼ¡«ú« Äçô, Γᬿ¼ «íαẫ¼, ß«ºñáóá∩ »«∩ó-
- ½Ñ¡¿Ñ "»α«úαá¼¼, »ÑαÑ»α«úαá¼¼¿απεΘ¿σ ROM BIOS".
-
- 3.2 滫߫í, «ß¡«óá¡¡δ⌐ ¡á óαѼѡ¿
-
- ü«½ÑÑ ¿¡ΓÑαÑß¡δÑ ¼ÑΓ¬¿ ºáΘ¿Γδ - «ß¡«óá¡¡δ⌐ ¡á «»αÑñѽѡ¿¿ ó¡πΓ-
- αÑ¡¡Ñú« óαѼѡ¿ «ß¡«ó¡«⌐ »½áΓδ. Æα¿ «ß¡«ó¡δσ »«ñß¿ßΓѼδ ñ«ßΓπ»¡δ ñ½∩
- Γá¬¿σ ¿º¼ÑαÑ¡¿⌐: ûÅ, »á¼∩Γ∞ ¿ óó«ñ/óδó«ñ (ß¼. Åα¿½«ªÑ¡¿Ñ E). Éẽ¿-
-
- Æáí½¿µá 3.2. îÑΓ¬¿ «ß¡«ó¡«⌐ »½áΓδ ¡á τÑΓδαÑσ αẽ¿τ¡δσ ¥éî.
- ┌─────────────────────┬────────────┬─────────────┬───────────┐
- │ æ¿ßΓѼá │ ûÅ │ Åá¼∩Γ∞ │ éó./óδó. │
- ├─────────────────────┼────────────┼─────────────┼───────────┤
- │ 25 îâµ 80386 (A) │ 35972 │ 24576 │ 47292 │
- │ 25 îâµ 80386 (B) │ 35972 │ 24576 │ 49154 │
- │ 20 îâµ 80386 │ 44958 │ 30112 │ 59990 │
- │ 12 îâµ 80286 │ 3544 │ 41018 │ 46646 │
- └─────────────────────┴────────────┴─────────────┴───────────┘
-
- - 26 -
-
- τ¿∩ ¼«úπΓ íδΓ∞ πñ¿ó¿Γѽ∞¡« í«½∞Φ¿¼¿ (ß¼. Γáí½¿µπ 3.2).
- ç¡áτÑ¡¿∩, »«¬áºá¡¡δÑ ó Γáí½¿µÑ 3.2, ßαÑñ¡¿Ñ ñ½∩ ¼¡«ú¿σ ºá»π߬«ó
- »α«úαá¼¼δ ¿º Åα¿½«ªÑ¡¿∩ E. öá¬Γ¿τÑ߬¿Ñ º¡áτÑ¡¿∩ «Γ½¿τáεΓß∩ «Γ ßαÑñ-
- ¡Ñú« »α¿í½¿º¿Γѽ∞¡« ±4. æ¿ßΓѼδ (A) ¿ (B) ¿¼Ñ½¿ ñóá »«ß½Ññ«óáΓѽ∞¡δσ
- ºáó«ñ߬¿σ ¡«¼Ñαá, ¡« ÑΘÑ ¼«úπΓ ½Ñú¬« «Γ½¿τáΓ∞ß∩ ¼ÑΓ¬«⌐ óó«ñá/óδó«ñá
- (»«αΓ 0Ch, ¿ß»«½∞º«óá½ß∩ 1-δ⌐ ¬«¡Γα«½½Ñα DMA). ìÑ«íσ«ñ¿¼« Γá¬ªÑ «Γ-
- ¼ÑΓ¿Γ∞, τΓ« ¼ÑΓ¬á óó«ñá/óδó«ñá «τÑ¡∞ τπóßΓó¿Γѽ∞¡á ¬ αѪ¿¼π ñÑ⌐ßΓó¿∩
- ûÅ, ó Γ« óαѼ∩, ¬á¬ ¼ÑΓ¬¿ ûÅ ¿ »á¼∩Γ¿ »«τΓ¿ «ñ¿¡á¬«óδ ó «í«¿σ αѪ¿-
- ¼áσ.
-
- 4. Åα¿½«ªÑ¡¿Ñ A. Åα«ßΓá∩ »α«úαá¼¼á 8272A
-
- ÆÑ¬ßΓ »α«úαá¼¼δ ¡áσ«ñ¿Γß∩ ó test_fdc.c. ä½∩ ¬«¼»¿½∩µ¿¿ ΓαÑíπÑΓß∩
- Æπαí«-æ 2.0 ¿ Æπαí« ÇßßѼí½Ñα (½εíá∩ óÑαß¿∩). î¿¡¿¼á½∞¡δÑ á»»áαáΓ¡δÑ
- ßαÑñßΓóá, ΓαÑíπѼδÑ τΓ«íδ óδ»«½¡¿Γ∞ φëà »α¿¼Ñα - 8 îâµ/0 WS ¥éî
- 80286 «í«απñ«óá¡¡á∩, »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ, «ñ¡¿¼ ñ¿ß¬«ó«ñ«¼ ñ½∩ ú¿í¬¿σ
- ñ¿ß¬ÑΓ, »α¿ó«ñ ñ½∩ óδ»«½¡Ñ¡¿∩ ΓÑßΓá «»αÑñѽ∩ÑΓß∩ »áαá¼ÑΓα«¼ »α«úαá¼-
- ¼δ (0 ñ½∩ A:, 1 ñ½∩ B:). ¥Γ«Γ ΓÑßΓ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ¡á óΓ«α«¼
- FDC, τΓ« «íÑß»Ñτ¿óáΓ∞ß∩ ºá¼Ñ¡«⌐ FDC_BASE ó ¿ßσ«ñ¡«¼ Σá⌐½Ñ ¡á 0x370.
- 諼á¡ñá 'T' ¬«¼á¡ñá (á¡á½¿º¿α«óáΓ∞ ñ«α«ª¬π) íπñÑΓ αáí«ΓáΓ∞ ¡Ñ»αá-
- ó¿½∞¡« ß ñ¿ß¬«ó«ñἿ ¡á 300 «í«α«Γ«ó ó ¼¿¡πΓπ (360K, 720K, 1.44M)
- »«¬á REVOLUTION_TIME ó ¿ßΓ«τ¡¿¬Ñ »α«úαá¼¼δ ¡Ñ ¡Ñ íπñÑΓ ºá¼Ñ¡Ñ¡á ¡á
- 200L*2*1193 (¡« Γ«úñá «¡á íπñÑΓ αáí«ΓáΓ∞ ¡Ñ»αáó¿½∞¡« ß 1.2M ñ¿ß¬«ó«-
- ñἿ).
-
- #if ! defined( __TURBOC__ )
- #error Åα«úαá¼¼á ¿ß»«½∞ºπÑΓ Turbo C 2.00 ß ó¡πΓαÑ¡¡¿¼ áßѼí½Ñα«¼!
- #else
- #pragma inline
- #endif
- #if ! defined( __SMALL__ )
- #error 諼»¿½¿α«óáΓ∞ ¡á ¼«ñѽ¿ Small!
- #endif
- #include <stdio.h>
- #include <dos.h>
- #include <bios.h>
- #include <limits.h>
- #include <stdlib.h>
- #include <ctype.h>
- #include <setjmp.h>
- #include <string.h>
- #include <io.h>
- #include <fcntl.h>
- #include <mem.h>
- /*
- * FDC_BASE óδí¿αáÑΓ ¡«¼Ñα ¬«¡Γα«½½Ñαá.
- * 0x3F0 ñ½∩ »Ñαó«ú« FDC, 0x370 ñ½∩ óΓ«α«ú« FDC.
- */
- #define FDC_BASE 0x3F0
- #define FDC_MSR (FDC_BASE+4)
- #define FDC_DATA (FDC_BASE+5)
- #define FDC_DIGITAL (FDC_BASE+2)
- #define FDC_RATE (FDC_BASE+7)
- /*
- * RATE_??? ñ«½ªÑ¡ íδΓ∞ πßΓá¡«ó½Ñ¡ »« FDC_RATE ñ½∩ óδí«αá º¡áτÑ¡¿∩
- WR CLK . */
- #define RATE_250 2
- #define RATE_300 1
- #define RATE_500 0
-
- /*
- * æ½ÑñπεΘ¿Ñ «»αÑñѽѡ¿∩ «»¿ßδóáεΓ Σ«α¼áΓ αÑú¿ßΓαá ß«ßΓ«∩¡¿∩ 8272A.
-
- - 27 -
- */
- typedef struct {
- unsigned ds : 2 ; /* éδí«α »α¿ó«ñá */
- unsigned h : 1 ; /* éδí«α ú«½«ó¬¿ */
- unsigned nr : 1 ; /* ìÑ ú«Γ«ó */
- unsigned ec : 1 ; /* Åα«óÑα¬á «í«απñ«óá¡¿∩*/
- unsigned se : 1 ; /* ôßΓá¡«ó¬á ºá¬«¡τÑ¡á */
- unsigned ic : 2 ; /* è«ñ »αÑαδóá¡¿∩ */
- } ST0 ;
-
- typedef struct {
- unsigned ma : 1 ; /* ìÑΓ áñαÑß¡«⌐ ¼ÑΓ¬¿ */
- unsigned nw : 1 ; /* çáΘ¿Γá ºá»¿ß¿ */
- unsigned nd : 1 ; /* æÑ¬Γ«α ¡Ñ ¡á⌐ñÑ¡ */
- unsigned _1 : 1 ;
- unsigned or : 1 ; /* ÄΦ¿í¬á »ÑαÑ»«½¡Ñ¡¿∩ */
- unsigned de : 1 ; /* ÄΦ¿í¬á ñá¡¡δσ */
- unsigned _2 : 1 ;
- unsigned en : 1 ; /* ÄΦ¿í¬á ¬«¡µá ñ«α«ª¬¿ */
- } ST1 ;
-
- typedef struct {
- unsigned md : 1 ; /* ìÑΓ áñαÑß¡«⌐ ¼ÑΓ¬¿ */
- unsigned bc : 1 ; /* Ž«σá∩ ñ«α«ª¬á */
- unsigned sn : 1 ; /*æ¬á¡¿α«óá¡¿Ñ ¡Ñ πß»ÑΦ¡«*/
- unsigned sh : 1 ; /* æ¬á¡¿α«óá¡¿Ñ πß»ÑΦ¡« */
- unsigned wc : 1 ; /* ìÑóÑα¡δ⌐ µ¿½¿¡ñα */
- unsigned dd : 1 ; /* ÄΦ¿í¬á ñá¡¡δσ ßÑ¬Γ«αá*/
- unsigned cm : 1 ; /* è«¡Γα«½∞¡á∩ ¼ÑΓ¬á */
- unsigned _1 : 1 ;
- } ST2 ;
-
- typedef struct {
- unsigned ds : 2 ; /* éδí«α »α¿ó«ñá */
- unsigned h : 1 ; /* éδí«α ú«½«ó¬¿ */
- unsigned ts : 1 ; /* äóπσßΓ«α«¡¡∩∩ */
- unsigned t0 : 1 ; /* ä«α«ª¬á 00 */
- unsigned rdy: 1 ; /* â«Γ«ó */
- unsigned wp : 1 ; /* çáΘ¿Γá ºá»¿ß¿ */
- unsigned ft : 1 ; /* ìѿ߻αáó¡«ßΓ∞ */
- } ST3 ;
-
- /*
- * FDC_MSR fields
- */
- typedef struct {
- unsigned A_buzy : 1 ;
- unsigned B_buzy : 1 ;
- unsigned C_buzy : 1 ;
- unsigned D_buzy : 1 ;
- unsigned cb : 1 ; /* è«Γ¡Γα«½½Ñα ºá¡∩Γ */
- unsigned ndm : 1 ; /* ÉѪ¿¼ ¡Ñ-DMA */
- unsigned dio : 1 ; /* ìá»αáó½Ñ¡¿∩ I/O */
- unsigned rqm : 1 ; /* ÆαÑíπÑΓß∩ ñ½∩ ¼áßΓÑαá*/
- } STATE ;
- /*
- * Åáαá¼ÑΓαδ óδíαá¡¡«⌐ ¬«¼á¡ñδ.
- */
- typedef struct {
- unsigned hut : 4 ; /*éαѼ∩ óδúαπº¬¿ ú«½«ó¬¿*/
- unsigned srt : 4 ; /* ôα«óÑ¡∞ Φáúá */
- unsigned nd : 1 ; /* ¡Ñ-DMA */
- unsigned hlt : 7 ; /*éαѼ∩ ºáúαπº¬¿ ú«½«ó¬¿*/
-
- - 28 -
- } SPECIFY ;
-
- /*
- * ü½«¬ »áαá¼ÑΓα«ó ñ¿ß¬ÑΓδ BIOS, áñαÑßπѼδ⌐ óÑ¬Γ«α«¼ 1Eh.
- */
- typedef struct {
- SPECIFY specify ;
- char motor_wait ; /* 55-¼ß ¿¡¬αѼѡδ */
- char sector_size ; /* 使¡á ¬«ñá */
- char EOT ;
- char GAP1 ; /* ºá»¿ß∞/τΓÑ¡¿Ñ */
- char DTL ; /* FFh */
- char GAP2 ; /* Σ«α¼áΓ */
- char fill_char ; /* Σ«α¼áΓ */
- char head_settle ; /* ¼ß */
- char motor_startup ; /* 1/8 ᥪ. */
- } BIOS_DISK ;
-
- /*
- * Åáαá¼ÑΓαδ «»Ñαᵿ⌐ τΓÑ¡¿∩/ºá»¿ß¿ 8272A
- */
- typedef struct {
- char c ;
- char h ;
- char r ;
- char n ;
- char eot ;
- char gpl ;
- char dtl ;
- } RW_INPUT ;
-
- /*
- * Æ¿¬«ó ñ« ó䬽ετÑ¡¿∩ ¼«Γ«αá »α¿ó«ñá
- */
- #define MOTOR_COUNT (*(unsigned char far *)MK_FP(0,0x440))
-
- /*
- * write_data() and read_data() »¿ΦÑΓ/τ¿ΓáÑΓ ñá¡¡δÑ 8272A
- */
-
- #define write_data(x) \
- {\
- while( ( inportb( FDC_MSR ) & 0xc0 ) != 0x80 ) ;\
- outportb( FDC_DATA, (x) ) ;\
- }
-
- #define read_data(x) \
- {\
- while( ( inportb( FDC_MSR ) & 0xc0 ) != 0xc0 ) ;\
- (x) = inportb( FDC_DATA ) ;\
- }
-
- /*
- * Ä»αÑñѽѡ¿Ñ LOOK_TIME αáºαÑΦÑ¡¿Ñ óαѼѡ¿ ¿ß»«½¡Ñ¡¿∩ ¬«¼á¡ñ
- * 8272A.
- */
- #define LOOK_TIME
-
- /*
- * Ä»αÑñѽѡ¿Ñ HANG_ABORT αáºαÑΦÑ¡¿Ñ ªÑßΓ¬«ú« ºáóÑαΦÑ¡¿∩ »α«µÑñπαδ
- * »«ß½Ñ ABORT_WAIT Γ¿¬«ó ß¿ßΓѼ¡«ú« Γá⌐¼Ñαá.
- */
- #define HANG_ABORT
-
- - 29 -
-
- #ifdef LOOK_TIME
- #define START start_time = get_exact_time()
- #define END elapsed_time = get_exact_time() - start_time
- #else
- #define START
- #define END
- #endif
-
- #ifdef HANG_ABORT
- #define HANG_START(x) hang_start(x)
- #define HANG_END hang_end()
- #else
- #define HANG_START(x)
- #define HANG_END
- #endif
-
- char FDD = 0 ; /*쫼Ñα ΓѬπΘÑú« »α¿ó«ñá*/
-
- #define ABORT_WAIT (2*16) /* Ĭ«½« 2 ßѬ. */
-
- #define BUFFER_SIZE (32*1024)
-
- #define MAX_SECTORS 40
-
- /*
- * REVOLUTION_TIME πßΓá¡«ó½Ñ¡á ñ½∩ 1.2 Mb AT HD »α¿ó«ñá.
- * ä½∩ óßÑσ «ßΓá½∞¡δσ »α¿ó«ñ«ó ¼Ñ¡∩ÑΓß∩ «Γ 166L ñ« 200L
- */
- #define REVOLUTION_TIME (166L*2*1193)
-
- BIOS_DISK far *bios_disk ;
- union { char c ; ST0 x ; } st0 ;
- union { char c ; ST1 x ; } st1 ;
- union { char c ; ST2 x ; } st2 ;
- union { char c ; ST3 x ; } st3 ;
- unsigned char r_c ; /* # µ¿½¿¡ñαá ¿º »αÑñδñπΘÑ⌐ «»Ñαᵿ¿ */
- unsigned char r_h ; /* ⫽«ó¬á ... */
- unsigned char r_r ; /* æÑ¬Γ«α ... */
- unsigned char r_n ; /* ÉẼÑα ¬«ñá ßÑ¬Γ«αá */
- unsigned long start_time ;
- unsigned long elapsed_time ;
- unsigned char *buffer ;
- unsigned buffer_bytes = 0 ;
- volatile unsigned long bios_time = 0 ;
- jmp_buf hang_reset ;
- char *current_function ;
- unsigned rest_ticks ; /* ä« »αѬαáΘÑ¡¿∩ */
- char abort_on_hangup ;
- FILE *out ;
- unsigned char mfm = 0x40 ; /* 0 ñ½∩ FM, 0x40 ñ½∩ MFM */
-
- void interrupt (*old_int_0eh)( void ) ;
- void interrupt (*old_int_08h)( void ) ;
-
- /*
- * get_exact_time() ó«ºóαáΘáÑΓ 32-í¿Γ«ó«Ñ óαѼ∩ »«ß½Ñ »πß¬á »α«úαá¼-
- * ¼δ. ä½∩ »ÑαÑó«ñá ó ßѬπ¡ñδ ñѽ¿Γ∞ ¡á 2,386,360.
- */
- static unsigned long
- get_exact_time( void )
- {
- asm pushf
-
- - 30 -
- asm sti
- asm jmp $+2
- asm cli
- asm mov al, 0c2h
- asm out 43h, al
- asm jmp $+2
- asm jmp $+2
- asm in al, 40h
- asm mov bl, al /* üá⌐Γ ßτÑΓτ¿¬á ß«ßΓ«∩¡¿∩ */
- asm jmp $+2
- asm jmp $+2
- asm in al, 40h
- asm mov ah, al
- asm jmp $+2
- asm jmp $+2
- asm in al, 40h
- asm xchg ah, al
- asm neg ax
- asm mov dx, word ptr bios_time
- asm rcl bl, 1
- asm cmc
- asm rcl dx, 1
- asm popf
- return( ( (unsigned long)_DX << 16 ) + _AX ) ;
- }
-
- void interrupt
- int_0eh( void )
- {
- /*
- * ¥Γ« ¡¿¬«úñá ¡Ñ ñ«½ª¡« »α«¿º«⌐Γ¿!
- */
- outportb( 0x20, 0x20 ) ;
- printf( "ìÑ«»αÑñѽѡ¡«Ñ »αÑαδóá¡¿Ñ FDC!\n" ) ;
- }
-
- void
- report_st0( void )
- {
- printf( "Åα¿ó«ñ %c, ú«½«ó¬á %d :\n", 'A' + st0.x.ds, st0.x.h ) ;
- switch( st0.x.ic ){
- case 0: break ;
- case 1:
- printf( "ìÑ¡«α¼á½∞¡«Ñ ºáóÑαΦÑ¡¿Ñ «»Ñαᵿ¿\n" ) ;
- break ;
- case 2:
- printf( "ìÑóÑα¡á∩ ¬«¼á¡ñá\n" ) ;
- break ;
- case 3:
- printf( "꺼ѡ¿½«ß∞ πß½«ó¿Ñ ú«Γ«ó¡«ßΓ¿ ñ¿ß¬á\n" ) ;
- break ;
- }
- if( st0.x.se )
- printf( "ôßΓá¡«ó¬á ºáóÑαΦÑ¡á\n" ) ;
- if( st0.x.ec )
- printf( "Å«½«¼¬á »α¿ó«ñá\n" ) ;
- if( st0.x.nr )
- printf("Åα¿ó«ñ ¡Ñ ú«Γ«ó ¿½¿ óδí«α ú«½«ó¬¿ 1 ¡á «ñ¡«ßΓ«α«¡¡Ñ¼
- »α¿ó«ñÑ\n");
- }
-
- void
- hang_start( char *f )
-
- - 31 -
- {
- current_function = f ;
- rest_ticks = ABORT_WAIT ;
- abort_on_hangup = 1 ;
- }
-
- void
- hang_end( void )
- {
- abort_on_hangup = 0 ;
- }
-
- void
- install_fdc_driver( void )
- {
- _AH = 0 ; _DL = FDD ;
- geninterrupt( 0x13 ) ; /* æíα«ß ñ¿ß¬á BIOS */
- delay( 500 ) ;
- disable() ;
- bios_time = biostime( 0, 0 ) ;
- old_int_0eh = getvect( 0x0e ) ;
- old_int_08h = getvect( 0x08 ) ;
- outportb( 0x21, inportb( 0x21 ) | 0x40 ) ; /* çá»αÑΓ »αÑαδóá¡¿∩ */
- setvect( 0x0e, int_0eh ) ;
- asm mov dx, offset int_08h_routine
- asm push ds
- asm mov ax, cs
- asm mov ds, ax
- asm mov ax, 02508h
- asm int 21h
- asm pop ds
- bios_disk = (void far *) getvect( 0x1e ) ;
- enable() ;
- asm jmp exit
-
- asm int_08h_routine label near
- asm extrn DGROUP@:word
- asm push ax
- asm push ds
- asm mov ds, cs:DGROUP@
- asm add word ptr bios_time, 1
- asm adc word ptr bios_time + 2, 0
- asm push ds
- asm mov ax, 40h
- asm mov ds, ax
- asm mov byte ptr ds:[40h], 0ffh
- asm pop ds
- asm mov al, 20h
- asm out 20h, al
- asm cmp abort_on_hangup, 0
- asm je done
- asm dec rest_ticks
- asm jg done
- longjmp( hang_reset, -1 ) ;
- done:;
- asm pop ds
- asm pop ax
- asm iret
-
- exit:;
- }
-
- void
-
- - 32 -
- specify( SPECIFY parms )
- {
- START ;
- HANG_START( "Ä»αÑñѽ¿Γ∞" ) ;
- parms.nd = 1 ;
- write_data( 0x03 ) ;
- write_data( *(char *)&parms ) ;
- write_data( *((char *)&parms + 1 ) ) ;
- HANG_END ;
- END ;
- printf( "HUT = %d ms\n", parms.hut * 16 ) ;
- printf( "HLT = %d ms\n", parms.hlt * 2 ) ;
- printf( "SRT = %d ms\n", 16 - parms.srt ) ;
- printf( "%sDMA mode\n", parms.nd ? "non-" : "" ) ;
- }
-
- void
- sence_is( void )
- {
- write_data( 0x08 ) ;
- read_data( st0.c ) ;
- if( st0.c != 0x80 ) /* ìÑóÑα¡á∩ ¬«¼á¡ñá */
- read_data( r_c ) ;
- }
-
- void
- wait_interrupt( void )
- {
- do outportb( 0x20, 0x0a ) ; /* ÆαÑíπÑΓß∩ 8259A IRR */
- while( ( inportb( 0x20 ) & 0x40 ) != 0x40 ) ;
- outportb( 0x20, 0x08 ) ; /* æΓá¡ñáαΓ¡«Ñ ß«ßΓ«∩¡¿Ñ*/
- }
-
- int
- recalibrate( void )
- {
- START ;
- HANG_START( "ÅÑαѬ὿íα«ó¬á" ) ;
- write_data( 0x07 ) ;
- write_data( FDD ) ;
- wait_interrupt() ;
- do sence_is() ;
- while( st0.x.se != 1 ) ;
- HANG_END ;
- END ;
- if( ! st0.x.se || st0.x.ic != 0 )
- report_st0() ;
- if( r_c == 0 )
- return 0 ;
- return -1 ;
- }
-
- int
- seek( unsigned char cyl )
- {
- START ;
- HANG_START( "ôßΓá¡«ó¬á" ) ;
- write_data( 0x0f ) ;
- write_data( FDD ) ;
- write_data( cyl ) ;
- wait_interrupt() ;
- do sence_is() ;
- while( st0.x.se != 1 ) ;
-
- - 33 -
- HANG_END ;
- END ;
- if( ! st0.x.se || st0.x.ic != 0 )
- report_st0() ;
- if( r_c == cyl )
- return 0 ;
- return -1 ;
- }
-
- void
- start_operations( void )
- {
- SPECIFY temp ;
-
- temp = bios_disk->specify ;
- temp.nd = 1 ;
- MOTOR_COUNT = UCHAR_MAX - 1 ;
- outportb( FDC_DIGITAL, FDD ) ;
- delay( 1 ) ;
- outportb( FDC_DIGITAL, 0x04 | FDD ) ;
- delay( 1 ) ;
- outportb( FDC_RATE, RATE_300 ) ;
- specify( temp ) ;
- outportb( FDC_DIGITAL, ( 0x10 << FDD ) | 0x0C | FDD ) ;
- delay( bios_disk->motor_startup * 120 ) ;
- }
-
- void
- reset_old_fdc( void )
- {
- setvect( 0x0e, old_int_0eh ) ;
- setvect( 0x08, old_int_08h ) ;
- outportb( 0x21, inportb( 0x21 ) & ~0x40 ) ;
- biostime( 1, bios_time ) ;
- MOTOR_COUNT = 1 ;
- _AH = 0 ;
- _DL = 0 ;
- geninterrupt( 0x13 ) ;
- }
-
- void
- read_ST3( void )
- {
- START ;
- HANG_START( "read_ST3" ) ;
- write_data( 0x04 ) ;
- write_data( FDD ) ;
- read_data( st3.c ) ;
- HANG_END ;
- END ;
- }
-
- /*
- * Éáí«Γá ¬«¡Γα«½½Ñαá ó ¡Ñ-DMA αѪ¿¼Ñ «íß½πª¿óáÑΓß∩ ûÅ, »«φΓ«¼π
- * read_operation,write_operation ¿ format_track ºá»αÑΘáεΓ »αÑ-
- * αδóá¡¿∩ ¡á ñ½¿Γѽ∞¡«Ñ óαѼ∩. Åα«Φπ »α«ΘÑ¡¿∩.
- */
- void
- read_operation( int code, int head, RW_INPUT *param, char far *buf,
- unsigned max_len )
- {
- char *p = (void *)param ;
- int i = sizeof( RW_INPUT ) ;
-
- - 34 -
-
- buffer_bytes = 0 ;
- START ;
- HANG_START( "«»Ñαᵿ∩ τΓÑ¡¿∩/ºá»¿ß¿" ) ;
- /*
- * ū߽áΓ∞ »áαá¼ÑΓα ¬«¼á¡ñδ w/ ó 8272A
- */
- write_data( code ) ;
- write_data( ( ( head & 1 ) << 2 ) | FDD ) ;
- for( ; i > 0 ; i--, p++ ) write_data( *p ) ;
- /*
- * åñáΓ∞ ñ« ¡áτá½á Σáºδ ¿ß»«½¡Ñ¡¿∩
- */
- while( !( inportb( FDC_MSR ) & 0x20 ) ) ;
- disable() ;
- /*
- * ÉáºαÑΦÑ¡¿Ñ ¡á »ÑαÑñáτπ ñá¡¡δσ
- */
- asm mov cx, max_len
- asm mov dx, FDC_MSR
- asm les di, buf
- asm xor si, si
- asm mov bx, 1+1
- asm cld
- input_loop:
- asm in al, dx
- asm test al, 20h
- asm jz exit
- asm test al, 80h
- asm jz input_loop
- asm inc dx
- asm in al, dx
- asm stosb
- asm inc si
- asm dec dx
- asm loop input_loop
- exit:;
- enable() ;
- asm mov buffer_bytes, si
- /*
- * åñáΓ∞ ¬«¡µá Σáºδ óδ»«½¡Ñ¡¿∩
- */
- wait_interrupt() ;
- /*
- * ù¿ΓáΓ∞ αѺπ½∞ΓáΓ
- */
- read_data( st0.c ) ;
- read_data( st1.c ) ;
- read_data( st2.c ) ;
- read_data( r_c ) ;
- read_data( r_h ) ;
- read_data( r_r ) ;
- read_data( r_n ) ;
- HANG_END ;
- END ;
- }
-
- void
- write_operation( int code, int head, RW_INPUT *param, char far *buf,
- unsigned max_len )
- {
- char *p = (void *)param ;
- int i = sizeof( RW_INPUT ) ;
-
- - 35 -
-
- buffer_bytes = 0 ;
- START ;
- HANG_START( "«»Ñαᵿ∩ τΓÑ¡¿∩/ºá»¿ß¿" ) ;
- /*
- * ū߽áΓ∞ »áαá¼ÑΓα ¬«¼á¡ñδ w/ ó 8272A
- */
- write_data( code ) ;
- write_data( ( ( head & 1 ) << 2 ) | FDD ) ;
- for( ; i > 0 ; i--, p++ ) write_data( *p ) ;
- /*
- * åñáΓ∞ ñ« ¡áτá½á Σáºδ óδ»«½¡Ñ¡¿∩
- */
- while( !( inportb( FDC_MSR ) & 0x20 ) ) ;
- disable() ;
- /*
- * üδΓ∞ ú«Γ«óδ¼ »ÑαÑñáΓ∞ ñá¡¡δÑ
- */
- asm push ds
- asm mov cx, max_len
- asm mov dx, FDC_MSR
- asm lds si, buf
- asm xor di, di
- asm cld
- wait_start:
- asm in al, dx
- asm test al, 20h
- asm jz wait_start
-
- output_loop:
- asm in al, dx
- asm test al, 20h
- asm jz exit
- asm test al, 80h
- asm jz output_loop
- asm inc dx
- asm outsb
- asm inc di
- asm dec dx
- asm loop output_loop
- /*
- * FDC ΓαÑíπÑΓ í«½∞ΦÑ ñá¡¡δσ, ¡« ñá¡¡δσ ß½Ñóá ¡ÑΓ, ΓᬠτΓ« «¡¿
- * αáºαπΦáεΓß∩.
- */
- outportb( FDC_DIGITAL, 0 ) ;
- delay( 5 ) ;
- outportb( FDC_DIGITAL, ( 0x10 << FDD ) | 0x0C | FDD ) ;
- asm pop ds
- asm mov buffer_bytes, di
- HANG_END ;
- END ;
- enable() ;
- specify( bios_disk->specify ) ;
- return ;
- exit:;
- enable() ;
- asm pop ds
- asm mov buffer_bytes, di
- /*
- * åñáΓ∞ ¬«¡Ñµ Σáºδ ¿ß»«½¡Ñ¡¿∩
- */
- wait_interrupt() ;
- /*
-
- - 36 -
- * Read result
- */
- read_data( st0.c ) ;
- read_data( st1.c ) ;
- read_data( st2.c ) ;
- read_data( r_c ) ;
- read_data( r_h ) ;
- read_data( r_r ) ;
- read_data( r_n ) ;
- HANG_END ;
- END ;
- }
-
- void
- format_track(int head, int n, int sc, int gpl, int d, char far *buf,
- int lim )
- {
- START ;
- HANG_START( "ö«α¼áΓ ñ«α«ª¬¿" ) ;
- /*
- * ÅÑαÑñáΓ∞ »áαá¼ÑΓαδ ¬«¼á¡ñδ ºá»¿ß¿ ó 8272A
- */
- write_data( 0x0D | mfm ) ;
- write_data( ( ( head & 1 ) << 2 ) | FDD ) ;
- write_data( n ) ;
- write_data( sc ) ;
- write_data( gpl ) ;
- write_data( d ) ;
- /*
- * åñáΓ∞ ñ« ¡áτá½á Σáºδ ¿ß»«½¡Ñ¡¿∩
- */
- while( !( inportb( FDC_MSR ) & 0x20 ) ) ;
- disable() ;
- /*
- * üδΓ∞ ú«Γ«óδ¼ ¬ »ÑαÑñáτÑ ñá¡¡δσ
- */
- asm push ds
- asm mov cx, lim
- asm mov dx, FDC_MSR
- asm lds si, buf
- asm xor di, di
- asm cld
- output_loop:
- asm in al, dx
- asm test al, 20h
- asm jz exit
- asm test al, 80h
- asm jz output_loop
- asm inc dx
- asm lodsb
- asm out dx, al
- asm inc di
- asm dec dx
- asm loop output_loop
- /*
- * FDC ¡πª¡« í«½∞ΦÑ ñá¡¡δσ, ¡« í«½∞ΦÑ ñá¡¡δσ ¡ÑΓ, Γá¬
- * τΓ« «¡¿ αáºαπΦáεΓß∩
- */
- delay( 1 ) ;
- outportb( FDC_DIGITAL, 0 ) ;
- delay( 5 ) ;
- outportb( FDC_DIGITAL, ( 0x10 << FDD ) | 0x0C | FDD ) ;
- asm pop ds
-
- - 37 -
- asm mov buffer_bytes, di
- HANG_END ;
- END ;
- enable() ;
- specify( bios_disk->specify ) ;
- return ;
- exit:;
- enable() ;
- asm pop ds
- asm mov buffer_bytes, di
- /*
- * Wait execution phase end
- */
- wait_interrupt() ;
- /*
- * ù¿ΓáΓ∞ αѺπ½∞ΓáΓ
- */
- read_data( st0.c ) ;
- read_data( st1.c ) ;
- read_data( st2.c ) ;
- read_data( r_c ) ;
- read_data( r_h ) ;
- read_data( r_r ) ;
- read_data( r_n ) ;
- HANG_END ;
- END ;
- }
-
-
- void
- read_sector( int head, RW_INPUT *param )
- {
- read_operation( 0x06 | mfm, head, param, buffer, BUFFER_SIZE ) ;
- }
-
- void
- read_deleted( int head, RW_INPUT *param )
- {
- read_operation( 0x0C | mfm, head, param, buffer, BUFFER_SIZE ) ;
- }
-
- void
- read_track( int head, RW_INPUT *param )
- {
- read_operation( 0x02 | mfm, head, param, buffer, BUFFER_SIZE ) ;
- }
-
- void
- write_sector( int head, unsigned count, RW_INPUT *param )
- {
- write_operation( 0x05 | mfm, head, param, buffer, count ) ;
- }
-
- void
- write_deleted( int head, unsigned count, RW_INPUT *param )
- {
- write_operation( 0x09 | mfm, head, param, buffer, count ) ;
- }
-
- void
- read_address( int head )
- {
- START ;
-
- - 38 -
- HANG_START( "Read_address" ) ;
- write_data( 0x0a | mfm ) ;
- write_data( ( ( head & 1 ) << 2 ) | FDD ) ;
- wait_interrupt() ;
- read_data( st0.c ) ;
- read_data( st1.c ) ;
- read_data( st2.c ) ;
- read_data( r_c ) ;
- read_data( r_h ) ;
- read_data( r_r ) ;
- read_data( r_n ) ;
- HANG_END ;
- END ;
- }
-
- void
- explain_ST3( void )
- {
- printf( "ST3 is %02X\n", st3.c ) ;
- printf( "Drive %c is %s\n", 'A' + st3.x.ds, st3.x.rdy ? "ready" :
- "not ready" ) ;
- printf( "Selected head %d\n", st3.x.h ) ;
- if( st3.x.ft )
- printf( "!!!!! Drive fault !!!!!\n" ) ;
- if( st3.x.wp )
- printf( "Write protected\n" ) ;
- if( st3.x.t0 )
- printf( "Currently at track 0\n" ) ;
- }
-
- void
- print_rw_return( void )
- {
- printf( "STn : %02x %02x %02x\n", st0.c, st1.c, st2.c ) ;
- printf( "Drive %c, head %d :\n", 'A' + st0.x.ds, st0.x.h ) ;
- switch( st0.x.ic ){
- case 0: break ;
- case 1:
- printf( "Abnormal operation termination\n" ) ;
- break ;
- case 2:
- printf( "Illegal command\n" ) ;
- break ;
- case 3:
- printf( "Disk drive ready condition changed\n" ) ;
- break ;
- }
- if( st0.x.se )
- printf( "Seek ended\n" ) ;
- if( st0.x.ec )
- printf( "Drive fault\n" ) ;
- if( st0.x.nr )
- printf( "Drive not ready or head 1 selected on single-sided
- drive\n" );
- if( st1.x.en )
- printf( "End of track error\n" ) ;
- if( st1.x.de )
- if( st2.x.dd )
- printf( "User data CRC error\n" ) ;
- else printf( "Sector ID CRC error\n" ) ;
- if( st1.x.or )
- printf( "Overrun error\n" ) ;
- if( st1.x.nd )
-
- - 39 -
- printf( "Sector not found\n" ) ;
- if( st1.x.nw )
- printf( "Write protect error\n" ) ;
- if( st1.x.ma )
- printf( "Missing address mark\n" ) ;
- if( st2.x.cm )
- printf("Control mark-Deleted data on Read Data or reverse\n");
- if( st2.x.wc )
- printf( "Sector ID cylinder number do not match\n" ) ;
- if( st2.x.sh )
- printf( "Scan condition hit\n" ) ;
- if( st2.x.sn )
- printf( "Scan not satisfied\n" ) ;
- if( st2.x.bc )
- printf( "IBM bad track\n" ) ;
- if( st2.x.md )
- printf( "Missing data address mark\n" ) ;
- }
-
- void
- read_rw_input( RW_INPUT *p )
- {
- int temp ;
-
- printf( "C = " ) ;
- scanf( "%x", &temp ) ; p->c = temp ;
- printf( "H = " ) ;
- scanf( "%x", &temp ) ; p->h = temp ;
- printf( "R = " ) ;
- scanf( "%x", &temp ) ; p->r = temp ;
- printf( "N = " ) ;
- scanf( "%x", &temp ) ; p->n = temp ;
- printf( "EOT = " ) ;
- scanf( "%x", &temp ) ; p->eot = temp ;
- printf( "GPL = " ) ;
- scanf( "%x", &temp ) ; p->gpl = temp ;
- printf( "DTL = " ) ;
- scanf( "%x", &temp ) ; p->dtl = temp ;
- }
-
- void
- print_chrn( void )
- {
- printf( "Cyl = %2x Head = %2x Sect = %2x Siz = %1x\n", r_c, r_h, r_r, r_n ) ;
- }
-
- /*
- analyze_track() «τÑ¡∞ »α«ßΓ«⌐ á¡á½¿ºáΓ«α ñ«α«ª¬¿, «ß¡«óá¡¡δ⌐ ¡á ¬«-
- ¼á¡ñÑ τΓÑ¡¿∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ßÑ¬Γ«αá. Ä¡ ¡Ñ ß»«ß«íÑ¡ ¡á⌐Γ¿ ߻ѵ¿á½∞¡«
- ß»α∩Γá¡¡δÑ ßÑ¬Γ«αδ.
- */
- void
- analyze_track( int cyl, int head )
- {
- struct _x {
- char c, h, r, n ;
- long time_diff ;
- } ;
- struct _x sector_table[ MAX_SECTORS ] ;
- struct _x *p ;
- int i ;
- long start, end ;
- int track_size ;
-
- - 40 -
- RW_INPUT param ;
-
- seek( cyl ) ;
- fprintf( stderr, "Analyzing track %02X ... Please Wait\n", cyl ) ;
-
- param.c = 0xff ;
- param.h = 0xff ;
- param.r = 0x0 ;
- param.n = 0xff ;
- param.eot = 0xff ;
- param.gpl = 0x20 ;
- param.dtl = 0xff ;
- disable() ;
- /*
- * æ½ÑñπεΘ¿⌐ read_sector ºá¬á¡τ¿óáÑΓß∩ ßαáºπ »«ß½Ñ τΓÑ¡¿∩ ¿¡ñѬߡ«ú«
- * «ΓóÑαßΓ¿∩
- */
- do {
- param.r-- ;
- read_sector( head, ¶m ) ;
- } while( ( ! st1.x.nd ) && ( ! st1.x.ma ) ) ;
- if( st1.x.ma ){
- print_rw_return() ;
- return ;
- }
- start = get_exact_time() ;
- for( i = 0, p = sector_table ; i < MAX_SECTORS ; i++, p++ ){
- read_address( head ) ;
- end = get_exact_time() ;
- enable() ;
- p->c = r_c ;
- p->h = r_h ;
- p->r = r_r ;
- p->n = r_n ;
- if( st1.x.ma ){
- print_rw_return() ;
- return ;
- }
- p->time_diff = end - start ;
- if( p->time_diff > REVOLUTION_TIME )
- break ;
- }
- track_size = i ;
- fprintf(out, "%02X sectors found on track %02X side %1X\n",
- track_size, cyl, head ) ;
- fprintf(out, " Cyl Hd Sec N Pos (ms) Off (ms) Cyl Hd
- Sec N Pos (ms) Off (ms)\n" ) ;
- for( i = 0, p = sector_table ; i < track_size ; i++, p++ ){
- fprintf( out, "#%2d - %02X %1X %02X %1X %7.3lf %7.3lf%c", i,
- p->c, p->h, p->r, p->n, p->time_diff / ( 1193.18 * 2 ),
- ( i == ( track_size - 1 ) ? ( sector_table->time_diff +
- REVOLUTION_TIME - p->time_diff ) :
- ( (p+1)->time_diff - p->time_diff ) ) / ( 1193.18 * 2 ),
- i % 2 ? '\n' : '\t' ) ;
- }
- if( i % 2 == 1 ) fputc( '\n', out ) ;
- }
-
- void
- analyze_disk( int from, int count )
- {
- int i ;
-
-
- - 41 -
- for( i = 0 ; i < count ; i++, from++ ){
- analyze_track( from, 0 ) ;
- analyze_track( from, 1 ) ;
- }
- }
-
- #define LINE_SIZE 16
- #define SCREEN_SIZE 10
- #define PAGE_SIZE (SCREEN_SIZE*LINE_SIZE)
-
- void
- draw_buffer( char *start, unsigned lines, unsigned num_start )
- {
- int i ;
-
- for( ; lines-- > 0 ; num_start += LINE_SIZE, start += LINE_SIZE ){
- printf( "%04X ", num_start ) ;
- for( i = 0 ; i < LINE_SIZE ; i++ )
- printf( "%02X ", start[ i ] ) ;
- for( i = 0 ; i < LINE_SIZE ; i++ )
- putchar( isprint( start[ i ] ) ? start[ i ] : '.' ) ;
- putchar( '\n' ) ;
- }
- }
-
- void
- buffer_operations( void )
- {
- unsigned current_offset = 0 ;
- int need_redraw = 1 ;
- unsigned offset, len ;
- unsigned pattern ;
- char temp[ 80 ] ;
- int handle ;
-
- START ;
- while( 1 ){
- if( need_redraw ){
- draw_buffer(buffer + current_offset, SCREEN_SIZE, current_offset);
- printf( "[H,U,D,G,F,S,E,R,W,C,X]\n" ) ;
- }
- need_redraw = 1 ;
- switch( toupper( (char)bioskey( 0 ) ) ){
- case 'X':
- case 0x1b:
- END ;
- return ;
- case 'U':
- if( current_offset >= PAGE_SIZE )
- current_offset -= PAGE_SIZE ;
- else need_redraw = 0 ;
- break ;
- case 'D':
- if( current_offset < BUFFER_SIZE - 2 * PAGE_SIZE )
- current_offset += PAGE_SIZE ;
- else need_redraw = 0 ;
- break ;
- case 'G':
- printf( "Go to offset : " ) ;
- scanf( "%x", ¤t_offset ) ;
- if( current_offset >= BUFFER_SIZE - PAGE_SIZE )
- current_offset = 0 ;
- break ;
-
- - 42 -
- case 'F':
- printf( "Fill from offset : " ) ;
- scanf( "%x", &offset ) ;
- printf( "Length : " ) ;
- scanf( "%x", &len ) ;
- printf( "Pattern : " ) ;
- scanf( "%x", &pattern ) ;
- setmem( buffer + offset, len, pattern ) ;
- break ;
- case 'S':
- printf( "Set at offset : " ) ;
- scanf( "%x", &offset ) ;
- printf( "Value : " ) ;
- scanf( "%x", &pattern ) ;
- buffer[ offset ] = pattern ;
- break ;
- case 'E':
- printf( "Set at offset : " ) ;
- scanf( "%x", &offset ) ;
- printf( "Byte count : " ) ;
- scanf( "%x", &len ) ;
- for( ; len-- > 0 ; offset++ ){
- printf( "Value : " ) ;
- scanf( "%x", &pattern ) ;
- buffer[ offset ] = pattern ;
- }
- break ;
- case 'R':
- printf( "Read to offset : " ) ;
- scanf( "%x", &offset ) ;
- printf( "Byte count : " ) ;
- scanf( "%x", &len ) ;
- printf( "File : " ) ;
- scanf( "%s", temp ) ;
- if( ( handle = _open( temp, O_RDONLY | O_BINARY ) ) == -1 ){
- perror( temp ) ;
- break ;
- }
- if( _read( handle, buffer + offset, len ) != len )
- perror( temp ) ;
- _close( handle ) ;
- break ;
- case 'W':
- printf( "Write from offset : " ) ;
- scanf( "%x", &offset ) ;
- printf( "Byte count : " ) ;
- scanf( "%x", &len ) ;
- printf( "File : " ) ;
- scanf( "%s", temp ) ;
- if( ( handle = _creat( temp, 0 ) ) == -1 ){
- perror( temp ) ;
- break ;
- }
- if( _write( handle, buffer + offset, len ) != len )
- perror( temp ) ;
- _ßlose( handle ) ;
- break ;
- case 'C':
- printf( "Set at offset : " ) ;
- scanf( "%x\n", &offset ) ;
- printf( "Type string : " ) ;
- gets( temp ) ;
- memcpy( buffer + offset, temp, strlen( temp ) ) ;
-
- - 43 -
- break ;
- case 'H':
- printf( "U - Up D - Down G - Go to F - Fill S - Set byte\n"
- "E - Enter R - Read W - Write X - Exit C - set string\n");
- default:
- need_redraw = 0 ;
- }
- }
- }
-
- main( int argc, char *argv[] )
- {
- int cyl, hd ;
- char key ;
- RW_INPUT rw ;
- char name[ 20 ] ;
- int n, sc, gpl, d, lim ;
-
- if( ( buffer = malloc( BUFFER_SIZE ) ) == NULL ){
- printf( "Can't allocate buffer space !\n" ) ;
- return( 3 ) ;
- }
- if( argc > 1 ) FDD = atoi( argv[ 1 ] ) ;
- delay( 1 ) ;
- install_fdc_driver() ;
- start_operations() ;
- do {
- switch( setjmp( hang_reset ) ){
- case 0: break ;
- default:
- fprintf(stderr,"Unexpected hangup in function %s\n",
- current_function);
- start_operations() ;
- }
- fprintf( stderr, "-----[H,S,D,R,A,E,B,T,F,L,P,W,C,O,I,M,Z] : " ) ;
- do key = toupper( bioskey( 0 ) ) ;
- while( key == 0 ) ;
- printf( "%c\n", key ) ;
- switch( key ){
- case 'H':
- printf("H - Help S - Seek D - ST3
- R - Read sector\n" ) ;
- printf("A - Read ID E - Recalibrate B - BufOps
- T - Analyze track\n" ) ;
- printf("F - AnalizeDisk L - ReadDeleted P - Data rate
- W - WriteData\n" ) ;
- printf("C - read traCk O - fOrmat I - wrItedelete
- M - MFM/FM toggle\n" ) ;
- printf("Z - Exit\n" ) ;
- break ;
- case 'S':
- printf( "*Seek to cylinder : " ) ;
- scanf( "%x", &cyl ) ;
- seek( cyl ) ;
- break ;
- case 'D':
- read_ST3() ;
- explain_ST3() ;
- break ;
- case 'R':
- printf( "*Read data\n" ) ;
- printf( "Head : " ) ;
- scanf( "%x", &hd ) ;
-
- - 44 -
- read_rw_input( &rw ) ;
- read_sector( hd, &rw ) ;
- print_rw_return() ;
- printf( "%d (%#4x) bytes read\n", buffer_bytes, buffer_bytes ) ;
- printf( "Operation time is not reliable !\n" ) ;
- break ;
- case 'L':
- printf( "*Read deleted data\n" ) ;
- printf( "Head : " ) ;
- scanf( "%x", &hd ) ;
- read_rw_input( &rw ) ;
- read_deleted( hd, &rw ) ;
- print_rw_return() ;
- printf( "%d (%#4x) bytes read\n", buffer_bytes, buffer_bytes ) ;
- printf( "Operation time is not reliable !\n" ) ;
- break ;
- case 'C':
- printf( "*Read a track\n" ) ;
- printf( "Head : " ) ;
- scanf( "%x", &hd ) ;
- read_rw_input( &rw ) ;
- read_track( hd, &rw ) ;
- print_rw_return() ;
- printf( "%d (%#4x) bytes read\n", buffer_bytes, buffer_bytes ) ;
- printf( "Operation time is not reliable !\n" ) ;
- break ;
- case 'W':
- printf( "*Write data\n" ) ;
- printf( "Head : " ) ;
- scanf( "%x", &hd ) ;
- printf( "Byte count : " ) ;
- scanf( "%x", &cyl ) ;
- read_rw_input( &rw ) ;
- write_sector( hd, cyl, &rw ) ;
- print_rw_return() ;
- printf( "%d (%#4x) bytes written\n", buffer_bytes, buffer_bytes );
- printf( "Operation time is not reliable !\n" ) ;
- break ;
- case 'I':
- printf( "*Write deleted\n" ) ;
- printf( "Head : " ) ;
- scanf( "%x", &hd ) ;
- printf( "Byte count : " ) ;
- scanf( "%x", &cyl ) ;
- read_rw_input( &rw ) ;
- write_deleted( hd, cyl, &rw ) ;
- print_rw_return() ;
- printf( "%d (%#4x) bytes written\n", buffer_bytes, buffer_bytes );
- printf( "Operation time is not reliable !\n" ) ;
- break ;
- case 'A':
- printf( "*Read address\n" ) ;
- printf( "Head = " ) ;
- scanf( "%x", &cyl ) ;
- read_address( cyl ) ;
- print_rw_return() ;
- print_chrn() ;
- break ;
- case 'E':
- printf( "*Recalibrating\n" ) ;
- recalibrate() ;
- break ;
- case 'B':
-
- - 45 -
- buffer_operations() ;
- break ;
- case 'T':
- printf( "Analyze cylinder : " ) ;
- scanf( "%x", &cyl ) ;
- printf( "Head : " ) ;
- scanf( "%x", &hd ) ;
- out = stdout ;
- analyze_track( cyl, hd ) ;
- break ;
- case 'F':
- printf( "Analyze from cylinder : " ) ;
- scanf( "%x", &cyl ) ;
- printf( "Cylinder count : " ) ;
- scanf( "%x", &hd ) ;
- printf( "File for output : " ) ;
- scanf( "%s", name ) ;
- if( ( out = fopen( name, "wt" ) ) == NULL ){
- perror( name ) ;
- break ;
- }
- analyze_disk( cyl, hd ) ;
- fclose( out ) ;
- break ;
- case 'P':
- printf( "Select rate : 0 - 500 KBS, 1 - 300 KBS, 2 - 250 KBS\n" ) ;
- scanf( "%x", &cyl ) ;
- outportb( FDC_RATE, cyl ) ;
- break ;
- case 'O':
- printf( "*Format a track using IDs from buffer\n" ) ;
- printf( "Head : " ) ;
- scanf( "%x", &hd ) ;
- printf( "N = " ) ;
- scanf( "%x", &n ) ;
- printf( "SC = " ) ;
- scanf( "%x", &sc ) ;
- printf( "GPL = " ) ;
- scanf( "%x", &gpl ) ;
- printf( "D = " ) ;
- scanf( "%x", &d ) ;
- printf( "TC = " ) ;
- scanf( "%x", &lim ) ;
- format_track( hd, n, sc, gpl, d, buffer, lim ) ;
- print_rw_return() ;
- printf( "%x bytes transferred as IDs\n", buffer_bytes ) ;
- break ;
- case 'M':
- if( mfm ) mfm = 0 ;
- else mfm = 0x40 ;
- printf( "Current mode is %s\n", mfm ? "MFM" : "FM" ) ;
- break ;
- case 'Z':
- reset_old_fdc() ;
- return( 0 ) ;
- default:
- printf( "No action for this key : %c\n", key ) ;
- break ;
- }
- printf( "Elapsed time is %8.3f ms\n", elapsed_time / ( 1193.180 * 2 ) ) ;
- } while( 1 ) ;
- }
-
-
- - 46 -
- 5. Åα¿½«ªÑ¡¿Ñ B. Åα«ßΓá∩ »α«úαá¼¼á ΓÑßΓ¿α«óá¡¿∩ HDC
-
- ÆÑ¬ßΓ »α«úαá¼¼δ ¡áσ«ñ¿Γß∩ ó Σá⌐½Ñ hd_scan.c, ¬«Γ«αδ⌐ Γá¬ªÑ ΓαÑíπ-
- ÑΓ TC 2.0 ¿ TASM ñ½∩ ¬«¼»¿½∩µ¿¿. Åα«úαá¼¼á »α¿¡¿¼áÑΓ ¿ñÑ¡Γ¿Σ¿¬áΓ«α
- ñ¿ß¬«ó«ñá BIOS (80 ñ½∩ 1-ú« ñ¿ß¬«ó«ñá, 81 ñ½∩ 2-ú«). àß½¿ φëà ΓÑßΓ
- ºáó¿ßáÑΓ »«ß½Ñ »ÑτáΓ¿ ß««íΘÑ¡¿∩ :
- " Cyls = XXX, Heads = XXX, Sectors = XXX ",
- óßÑ »α«úαá¼¼δ «»Γ¿¼¿ºáµ¿¿ ñ¿ß¬á ñ«½ª¡δ íδΓ∞ πñá½Ñ¡δ ¿º »á¼∩Γ¿ ñ« óδ-
- »«½¡Ñ¡¿∩ φΓ«ú« ΓÑßΓá.
-
- static char __rights__[]="î«ñπ½∞ ΓÑßΓ¿α«óá¡¿∩ ªÑßΓ¬«ú« ñ¿ß¬á. (C) 1991
- æÑαúÑ⌐ æ. ÅáΦ¬«ó¿τ" ;
-
- #ifndef __TINY__
- #error ìÑ«íσ«ñ¿¼« ¬«¼»¿½¿α«óáΓ∞ ó ¼«ñѽ¿ TINY!
- #endif
- #pragma inline
- #include <stdio.h>
- #include <stdlib.h>
- #include <bios.h>
- #include <dos.h>
-
- #define VERSION "0.0"
- #define MAX_ROMS 100
- #define MAX_SECTORS 64
- #define SECTOR_SIZE 512
- #define TIMER_CLOCK_RATE (2*1193180ul)
-
- #define INT_13() geninterrupt(0x13)
- #define BIOS_13() (*BIOS_entry)()
-
- unsigned HDD ;
- unsigned cyls, heads, sectors ;
- FILE *report ;
- void interrupt (*BIOS_entry)( void ) ;
- unsigned ROM_count = 0 ;
- unsigned long revolution_time ;
- unsigned char error_code ;
- double ForcedRPS = 0.0 ;
-
- struct _Z_ {
- unsigned char sector ;
- unsigned long position ;
- } ;
-
- static struct _Y_ {
- unsigned ROM_start ; /* para */
- unsigned ROM_end ; /* para */
- } ROM_list[ MAX_ROMS ] ;
-
- static struct _X_ {
- unsigned char code ;
- char *message ;
- } disk_errors[] = {
- 0x00, "öπ¡¬µ¿∩ óδ»«½¡Ñ¡á πß»ÑΦ¡«",
- 0x01, "ìÑóÑα¡«Ñ º¡áτÑ¡¿Ñ ¿½¿ ¡ÑóÑα¡á∩ Σπ¡¬µ¿∩",
- 0x02, "ìÑ ¡á⌐ñÑ¡á áñαÑß¡á∩ ¼ÑΓ¬á",
- 0x03, "çáΘ¿Γá ºá»¿ß¿",
- 0x04, "æÑ¬Γ«α ¡Ñ ¡á⌐ñÑ¡",
- 0x05, "ÄΦ¿í¬á πßΓá¡«ó¬¿",
- 0x07, "ÄΦ¿í¬á »áαá¼ÑΓαá á¬Γ¿óᵿ¿",
- 0x08, "æí«⌐ DMA",
- 0x09, "Å«»δΓ¬á ñ«ßΓπ»á ¬ DMA ßóδΦÑ 64K",
-
- - 47 -
- 0x0A, "Ž«σ«⌐ Σ½áú ßÑ¬Γ«αá",
- 0x0D, "Ž«σ«⌐ ¡«¼Ñα ßÑ¬Γ«αá (Σ«α¼áΓ)",
- 0x0E, "Äí¡áαπªÑ¡δ ¬«¡Γα«½∞¡δÑ ñá¡¡δÑ áñαÑß. ¼ÑΓ¬¿",
- 0x0F, "ìÑóÑα¡«Ñ º¡áτÑ¡¿Ñ πα«ó¡∩ áαí¿Γαáªá DMA",
- 0x10, "ìѿ߻αáó¿¼á∩ «Φ¿í¬á ECC",
- 0x11, "äá¡¡δÑ ß¬«ααÑ¬Γ¿α«óá¡δ ECC",
- 0x20, "Å«½«¼¬á ¬«¡Γα«½½Ñαá ñ¿ß¬á",
- 0x40, "ÄΦ¿í¬á «»Ñαᵿ¿ πßΓá¡«ó¬¿",
- 0x80, "åÑßΓ¬¿⌐ ñ¿ß¬ ¡Ñ ú«Γ«ó",
- 0xBB, "ìÑ«»αÑñѽѡ¡á∩ «Φ¿í¬á",
- 0xCC, "ÄΦ¿í¬á ºá»¿ß¿",
- 0xE0, "ÉÑú¿ßΓα «Φ¿í«¬ «í¡π½Ñ¡",
- } ;
-
- char *
- get_error_name( unsigned char code )
- {
- int i ;
- static char buf[ 80 ] ;
-
- for( i = 0 ; i < sizeof disk_errors / sizeof( struct _X_ ) ; i++ )
- if(code == disk_errors[ i ].code) return disk_errors[ i ].message;
- sprintf( buf, "Unknown error code 0x%02X", code ) ;
- return buf ;
- }
-
- unsigned long
- get_exact_time( void )
- {
- asm xor ax, ax
- asm mov es, ax
- asm pushf
- asm sti
- repeat_request:
- asm mov al, 0c2h
- asm cli
- asm out 43h, al
- asm jmp $+2
- asm jmp $+2
- asm in al, 40h
- asm jmp $+2
- asm mov bl, al /* æτÑΓτ¿¬ íá⌐Γá ß«ßΓ«∩¡¿∩ */
- asm in al, 40h
- asm jmp $+2
- asm mov ah, al
- asm in al, 40h
- asm mov dx, es:[46Ch]
- asm sti
- asm xchg ah, al
- asm cmp dx, es:[46Ch]
- asm jne repeat_request
- asm popf
- asm neg ax
- asm shl bl, 1
- asm cmc
- asm rcl dx, 1
- return ( (unsigned long)_DX << 16 ) + _AX ;
- }
-
- void
- init_timer_channel( unsigned char channel )
- {
- asm pushf
-
- - 48 -
- asm cli
- asm mov al, channel
- asm mov cl, 6
- asm shl al, cl
- asm or al, 36h
- asm out 43h, al
- asm mov dx, 40h
- asm add dl, channel
- asm jmp $+2
- asm jmp $+2
- asm xor al, al
- asm out dx, al
- asm jmp $+2
- asm jmp $+2
- asm out dx, al
- asm popf
- }
-
- int
- parce_parameters( int argc, char **argv )
- {
- printf( "HD_scan v. " VERSION " (C) 1991 Serge S. Pachkovsky\n" ) ;
- printf("Values reported can be incorrect for a caching disk
- controllers\n" ) ;
- if( argc < 2 ){
- printf( "HD_scan BIOS_disk_ID [Drive RPS]\n" );
- return -1 ;
- }
- if( sscanf( argv[ 1 ], "%x", &HDD ) != 1 ){
- printf( "Invalid disk ID %s\n", argv[ 1 ] ) ;
- return -1 ;
- }
- if( argc > 2 )
- if( sscanf( argv[ 2 ], "%lg", &ForcedRPS ) != 1 ){
- printf( "Invalid drive revolutions_per_secons %s\n", argv[ 2 ] );
- return -1 ;
- }
- return 0 ;
- }
-
- int
- init_files( void )
- {
- if( ( report = fopen( "HD_scan.rep", "wt" ) ) == NULL ){
- perror( "HD_scan.rep" ) ;
- return -1 ;
- }
- fprintf(report, "Hard disk scan v " VERSION " report on disk %X\n",
- HDD );
- return 0 ;
- }
-
- int
- read_HDD_params( unsigned char disk )
- {
- unsigned dx, cx ;
-
- _DL = disk ;
- _AH = 0x08 ;
- INT_13() ;
- dx = _DX ; cx = _CX ;
- heads = dx >> 8 ;
- sectors = cx & 0x3F ;
-
- - 49 -
- cyls = ( cx >> 8 ) | ( ( ( cx >> 6 ) & 3 ) << 8 ) ;
- return 0 ;
- }
-
- int
- scan_ROMs( void )
- {
- unsigned seg ;
- unsigned char far *ptr ;
- struct _Y_ *x = ROM_list ;
-
- for( seg = 0xC800 ; seg < 0xE000 ; seg += 0x80 ){
- ptr = MK_FP( seg, 0 ) ;
- if( ptr[ 0 ] == 0x55 && ptr[ 1 ] == 0xAA ){
- /* ìá⌐ñÑ¡ »α¿º¡á¬ αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿ */
- x->ROM_start = seg ;
- x->ROM_end = seg + (unsigned)ptr[ 2 ] * (512/16) - 1 ;
- x++ ; ROM_count++ ;
- }
- }
- x->ROM_start = 0xF000 ; x->ROM_end = 0xFFFF ;
- ROM_count++ ;
- return 0 ;
- }
-
- void interrupt
- (*trace_to_BIOS( void interrupt (*start)(), unsigned char disk ))()
- {
- static void interrupt (*old_01)( void ) ;
- static void interrupt (*entry_point)( void ) ;
- static unsigned char trace_on ;
- static void interrupt (*trace_dst)( void ) ;
-
- entry_point = start ;
- old_01 = getvect( 0x01 ) ;
- trace_on = 1 ;
- asm push cs
- asm lea ax, trace
- asm push ax
- asm mov ax, 1
- asm push ax
- asm call setvect
- asm add sp, 6
- asm pushf
- asm push cs
- asm lea ax, normal_return
- asm push ax
- asm pushf
- asm pop ax
- asm or ah, 1
- asm push ax
- asm popf
- asm pushf
- asm push word ptr start + 2
- asm push word ptr start + 0
- asm mov ah, 8
- asm mov dl, disk
- asm iret
- asm normal_return label near
- setvect( 0x01, old_01 ) ;
- asm jmp end_routine
-
- asm trace label near
-
- - 50 -
- asm push bp
- asm mov bp, sp
- asm push ax
- asm push bx
- asm push cx
- asm push ds
- asm push es
- asm mov ax, cs
- asm mov ds, ax
- /*
- * BP -> 0 old BP
- * 2 IP
- * 4 CS
- * 6 Flags
- * 8 IP or flags
- * 10 CS
- * 12 flags
- */
- asm cmp trace_on, 1
- asm je proceed_trace
- stop_trace:
- asm and byte ptr ss:[bp+6+1], NOT 1 /* clear TF */
- exit_trace:
- asm pop es
- asm pop ds
- asm pop cx
- asm pop bx
- asm pop ax
- asm pop bp
- asm iret
- proceed_trace:
- asm mov ax, ss:[bp+2]
- asm shr ax, 1
- asm shr ax, 1
- asm shr ax, 1
- asm shr ax, 1
- asm add ax, ss:[bp+4]
- asm lea bx, ROM_list
- asm mov cx, ROM_count
- look_next_ROM_block:
- asm cmp ax, ds:[bx].ROM_start
- asm jb bad_ROM
- asm cmp ax, ds:[bx].ROM_end
- asm ja bad_ROM
- asm mov ax, ss:[bp+2]
- asm mov word ptr entry_point + 0, ax
- asm mov ax, ss:[bp+4]
- asm mov word ptr entry_point + 2, ax
- asm jmp stop_trace
- bad_ROM:
- asm add bx, 4
- asm loop look_next_ROM_block
- asm les bx, dword ptr ss:[bp+2]
- asm mov ax, word ptr es:[bx]
- asm cmp al, 0cfh
- asm je trace_iret_command
- asm cmp al, 09dh
- asm je trace_popf_command
- asm cmp al, 0cdh
- asm je trace_intn_command
- asm cmp al, 0cch
- asm je trace_int3_command
- asm jmp exit_trace
-
- - 51 -
-
- trace_iret_command:
- asm or byte ptr ss:[bp+12+1], 1
- asm jmp exit_trace
- trace_popf_command:
- asm or byte ptr ss:[bp+8+1], 1
- asm jmp exit_trace
- trace_int3_command:
- asm inc word ptr ss:[bp+2]
- asm mov ah, 3
- asm jmp trace_interrupt
- trace_intn_command:
- asm cmp ah, 10h
- asm jb OK_to_trace
- asm cmp ah, 13h
- asm jb exit_trace
- asm je OK_to_trace
- asm cmp ah, 1dh
- asm jb exit_trace
- OK_to_trace:
- asm add word ptr ss:[bp+2], 2
- asm jmp trace_interrupt
- trace_interrupt:
- asm xor bx, bx
- asm mov es, bx
- asm mov bl, ah
- asm shl bx, 1
- asm shl bx, 1
- asm mov ax, word ptr es:[bx]
- asm mov word ptr trace_dst, ax
- asm mov ax, word ptr es:[bx+2]
- asm mov word ptr trace_dst+2, ax
- asm pop es
- asm pop ds
- asm pop cx
- asm pop bx
- asm pop ax
- asm pop bp
- asm pushf
- asm push word ptr cs:trace_dst + 2
- asm push word ptr cs:trace_dst + 0
- asm iret
-
- end_routine:;
- return entry_point ;
- }
-
- int
- detect_BIOS_entry( unsigned char disk )
- {
- if( scan_ROMs() == -1 ) return -1 ;
- if( ( BIOS_entry = trace_to_BIOS( getvect( 0x13 ), disk ) ) == NULL)
- return -1 ;
- return 0 ;
- }
-
- int
- detect_HDD_params( void )
- {
- if( read_HDD_params( HDD ) == -1 ) return -1 ;
- fprintf( report, "Cyls = %u, Heads = %u, Sectors = %u\n", cyls + 1,
- heads + 1, sectors ) ;
- printf( "Cyls = %u, Heads = %u, Sectors = %u\n", cyls + 1, heads +
-
- - 52 -
- 1, sectors ) ;
- if( detect_BIOS_entry( HDD ) == -1 ) return -1 ;
- fprintf( report, "Hard disk BIOS entry point %Fp\n", BIOS_entry ) ;
- printf( "Hard disk BIOS entry point %Fp\n", BIOS_entry ) ;
- return 0 ;
- }
-
- int
- init_system_timer( void )
- {
- init_timer_channel( 0 ) ;
- return 0 ;
- }
-
- void
- read_sector(unsigned cyl,unsigned head,unsigned sector,char buf[512])
- {
- unsigned cx, dx ;
-
- cx = ( sector & 0x3F ) | ( cyl << 8 ) | ( ( cyl >> 8 ) << 6 ) ;
- dx = ( head << 8 ) | HDD ;
- _ES = FP_SEG( buf ) ;
- _BX = FP_OFF( buf ) ;
- _CX = cx ;
- _DX = dx ;
- _AX = 0x0201 ;
- BIOS_13() ;
- switch( error_code = _AH ){
- case 1:
- case 3:
- case 5:
- case 7:
- case 8:
- case 9:
- case 0x0D:
- case 0x0F:
- case 0x20:
- case 0x40:
- case 0x80:
- case 0xBB:
- case 0xCC:
- case 0xE0:
- fprintf( stderr, "%s", get_error_name(error_code));
- exit( 255 ) ;
- }
- }
-
- int
- detect_rotation_speed( void )
- {
- int i ;
- unsigned long start, end ;
- char buf[ 512 ] ;
-
- _AX = 0 ; _DL = HDD ; BIOS_13() ;
- read_sector( 0, 0, 1, buf ) ;
- start = get_exact_time() ;
- for( i = 0 ; i < 500 ; i++ ){
- _AX = 0 ; _DL = HDD ; BIOS_13() ;
- read_sector( 0, 0, 1, buf ) ;
- }
- end = get_exact_time() ;
- revolution_time = ( end - start ) / i ;
-
- - 53 -
- fprintf( report, "Measured drive RPM is %lu\n", 60*TIMER_CLOCK_RATE
- / revolution_time ) ;
- printf( "Measured drive RPM is %lu\n", 60 * TIMER_CLOCK_RATE /
- revolution_time ) ;
- if( ForcedRPS != 0.0 ){
- revolution_time = TIMER_CLOCK_RATE / ForcedRPS ;
- fprintf( report, "Forced drive RPM is %lu\n", 60 *
- TIMER_CLOCK_RATE / revolution_time ) ;
- printf( "Forced drive RPM is %lu\n", 60 * TIMER_CLOCK_RATE /
- revolution_time ) ;
- }
- return 0 ;
- }
-
- int
- check_sectors( unsigned cyl, unsigned head, struct _Z_ *p )
- {
- int secs = 0 ;
- unsigned i ;
- char buf[ 512 ] ;
-
- for( i = 1 ; i <= sectors ; i++ ){
- read_sector( cyl, head, i, buf ) ;
- if( error_code != 0 )
- fprintf( report, "\t%s at sector %4u/%2u/%2u\n",get_error_name(
- error_code ), cyl, head, i ) ;
- if( error_code == 0 || error_code == 0x0A || error_code == 0x10
- || error_code == 0x11 ){
- p++->sector = i ;
- secs++ ;
- }
- }
- return secs ;
- }
-
- int
- get_read_times(unsigned cyl,unsigned head,int sectors,struct _Z_
- *table)
- {
- int i ;
- char buf[ 512 ] ;
- unsigned long index ;
-
- read_sector( cyl, head, sectors + 1, buf ) ;
- index = get_exact_time() ;
- for( i = 0 ; i < sectors ; i += 2 ){
- read_sector( cyl, head, table[ i ].sector, buf );
- table[ i ].position = get_exact_time() - index;
- }
- for( i = 1 ; i < sectors ; i += 2 ){
- read_sector( cyl, head, table[ i ].sector, buf ) ;
- table[ i ].position = get_exact_time() - index ;
- }
- return 0 ;
- }
-
- int
- cmp_positions( const struct _Z_ *a, const struct _Z_ *b )
- {
- if( a->position < b->position ) return -1 ;
- if( a->position > b->position ) return 1 ;
- return 0 ;
- }
-
- - 54 -
-
- int
- process_read_times( int sectors, struct _Z_ *table )
- {
- int i ;
-
- for( i = 0 ; i < sectors ; i++ )
- while( table[ i ].position > revolution_time )
- table[ i ].position -= revolution_time ;
- qsort( table, sectors, sizeof( struct _Z_ ), cmp_positions ) ;
- return 0 ;
- }
-
- int
- report_track_ordering( int sectors, struct _Z_ *table )
- {
- int i ;
-
- for( i = 0 ; i < sectors ; i++ ){
- if( i % 17 == 0 ){
- putc( '\t', report ) ;
- if( i != 0 ) putc( '\t', report ) ;
- }
- fprintf( report, "%02d ", table[ i ].sector ) ;
- if( i % 17 == 16 )
- putc( '\n', report ) ;
- }
- if( i % 17 != 0 ) putc( '\n', report ) ;
- return 0 ;
- }
-
- int
- scan_track( unsigned cyl, unsigned head )
- {
- struct _Z_ sector_table[ MAX_SECTORS ] ;
- int sectors ;
-
- if( ( sectors = check_sectors( cyl, head, sector_table ) ) == -1 )
- return -1 ;
- if( get_read_times( cyl, head, sectors, sector_table ) == -1 )
- return -1 ;
- if( process_read_times( sectors, sector_table ) == -1 ) return -1 ;
- fprintf( report, "%4u/%2u\t", cyl, head ) ;
- if(report_track_ordering(sectors, sector_table ) == -1 ) return -1;
- return 0 ;
- }
-
- int
- scan_surface( void )
- {
- unsigned cyl, head ;
-
- for( cyl = 0 ; cyl <= cyls ; cyl++ ){
- for( head = 0 ; head <= heads ; head++ ){
- fprintf( stderr, "\rTrack %4d, head %2d ", cyl, head ) ;
- if( scan_track( cyl, head ) == -1 ) return -1 ;
- fflush( report ) ;
- }
- }
- fputc( '\n', stderr ) ;
- return -1 ;
- }
-
-
- - 55 -
- int
- main( int argc, char *argv[] )
- {
- if( parce_parameters( argc, argv ) == -1 ) return 1 ;
- if( init_files() == -1 ) return 2 ;
- if( detect_HDD_params() == -1 ) return 3 ;
- if( init_system_timer() == -1 ) return 4 ;
- if( detect_rotation_speed() == -1 ) return 5 ;
- if( scan_surface() == -1 ) return 6 ;
- return 0 ;
- }
-
- 6. Åα¿½«ªÑ¡¿Ñ C. èᬠóδ∩ß¡¿Γ∞ ¡«¼Ñα ¬½áßΓÑαá
-
- ÆÑ¬ßΓ »α«úαá¼¼δ ¡áσ«ñ¿Γß∩ ó Σá⌐½Ñ cluster.c, ΓαÑíπεΓß∩ TC 2.0 ¿
- TASM ñ½∩ ¬«¼»¿½∩µ¿¿. Å«½¡«Ñ ¿¼∩ Σá⌐½á (Γ« ÑßΓ∞, ó¬½ετá∩ ñ¿ß¬«ó«ñ ¿
- ¬áΓὫú, ñáªÑ Σá⌐½ ¡áσ«ñ¿Γß∩ ó ΓѬπΘѼ ¬áΓὫúÑ) ñ«½ª¡« óó«ñ¿Γ∞ß∩,
- ¬á¬ »áαá¼ÑΓα. ò«Γ∩ φëà »α¿¼Ñα »α«óÑα∩½ß∩ ¡á Äæ MS DOS 3.20, 3.30,
- 4.00 ¿ 5.00 (beta), «¡ ¼«ªÑΓ ¡Ñ αáí«ΓáΓ∞ »«ñ ñαπú¿¼¿ óÑαß¿∩¼¿ MS DOC
- ¿½¿ ß«ó¼ÑßΓ¿¼δ¼¿ ß¿ßΓѼἿ, »«Γ«¼π τΓ« «¡ «ß¡«óδóáÑΓß∩ ¡á ßΓαπ¬ΓπαÑ
- ¡Ñ«»¿ßá¡¡«ú« DiskInfoBlock.
-
- static char __rights__[] = "(C) 1991 Serge S. Pachkovsky" ;
-
- #pragma inline
- #include <stdio.h>
- #include <stdlib.h>
- #include <io.h>
- #include <fcntl.h>
- #include <dir.h>
- #include <dos.h>
- #include <mem.h>
- #include <string.h>
- #include <ctype.h>
- #include <alloc.h>
- #include <limits.h>
- #include <stdarg.h>
-
- typedef struct _DI {
- unsigned char drv ; /* 쫼Ñα »α¿ó«ñá 0 - A: */
- unsigned char subunit ; /*ÄΓ ú«½«ó¬¿ πßΓα«⌐ßΓóá*/
- unsigned sect_siz ; /* ÉẼÑα ßÑ¬Γ«αá */
- unsigned char hi_sector ;/*æ¬αδΓδ⌐ ßÑ¬Γ«α ó ¬½áß*/
- unsigned char cls_shift ;/* æñó¿ú ¬½áßΓ. ¬ ßѬΓ.*/
- unsigned boot_siz ; /* ÉѺÑαó¡δÑ ßÑ¬Γ«αδ */
- unsigned char fats ; /* 쫼Ñα FAT */
- unsigned max_dir ; /* 쫼Ñα ¬«α¡Ñó«ú« ¬áΓ.*/
- unsigned data_sec ; /*ÅÑαóδ⌐ ¬½áßΓÑα ñá¡¡δσ*/
- unsigned hi_clust ; /* è½áßΓÑαδ + 2 */
- union {
- struct {
- unsigned char fat_size ; /* æÑ¬Γ«α«ó ó FAT */
- unsigned root_sec ; /* ìáτὫ ¬α¡Ñó«ú« ¬áΓ.*/
- void far *device ; /* ÇñαÑß ºáú«½«ó¬á πßΓα.*/
- unsigned char media ; /* Media «»¿ßáΓѽ∞ */
- unsigned char access ; /* 0 Ñß½¿ ñ«ßΓπ»¡« */
- struct _DI far *next ; /* æ½ÑñπεΘ¿⌐ ¿¡Σ. í½«¬ */
- } dos3 ;
- struct {
- unsigned fat_size ;/* æÑ¬Γ«α«ó ó FAT */
- unsigned root_sec ;/* ìáτὫ ¬α¡Ñó«ú« ¬áΓ. */
- void far *device ; /* ÇñαÑß ºáú«½«ó¬á πßΓα.*/
- unsigned char media ; /* Media «»¿ßáΓѽ∞ */
-
- - 56 -
- unsigned char access ; /* 0 Ñß½¿ ñ«ßΓπ»¡« */
- struct _DI far *next ; /* æ½ÑñπεΘ¿⌐ ¿¡Σ. í½«¬ */
- } dos4 ;
- } dos_dependent ;
- } DISK_INFO ;
-
- typedef struct {
- char file_name[ 8 ] ;
- char file_ext[ 3 ] ;
- char file_attribute ;
- char __unused[ 10 ] ;
- unsigned time ;
- unsigned date ;
- unsigned cluster ;
- long file_size ;
- } DIRECTORY_ENTRY ;
-
- static DISK_INFO source_disk_info ;
- enum { FAT_16, FAT_12 } ;
- static int fat_type = FAT_16 ;
-
- static int near
- get_disk_info( char *name )
- {
- unsigned char drive ;
- DISK_INFO far *p ;
-
- drive = toupper( *name ) - 'A' ;
- asm push ds
- asm mov dl, drive
- asm inc dl
- asm mov ah, 32h
- asm int 21h
- asm cmp al, 0
- asm jne error
- asm mov dx, ds
- asm pop ds
- p = MK_FP( _DX, _BX ) ;
- source_disk_info = *p ;
- return 0 ;
- error:
- asm pop ds
- return -1 ;
- }
-
- static unsigned near
- get_fat( char huge *fat, unsigned clust )
- {
- unsigned temp_clust ;
- unsigned x ;
-
- switch( fat_type ){
- case FAT_12:
- temp_clust = ( clust * 3 ) / 2 ;
- x = *(unsigned huge *)( fat + temp_clust ) ;
- if( ( clust & 1 ) == 0 )
- x &= 0xfff ;
- else x >>= 4 ;
- if( ( x & 0xfff ) > 0xff0 )
- x |= 0xf000 ;
- break ;
- case FAT_16:
- x = *( (unsigned huge *)fat + clust ) ;
-
- - 57 -
- break ;
- }
- return x ;
- }
-
- static unsigned near
- search_start_cluster( char *name )
- {
- char dir[ MAXDIR ] ;
- char drive[ MAXDRIVE ] ;
- char file[ MAXFILE ] ;
- char ext[ MAXEXT ] ;
- struct xfcb xfcb ;
- struct fcb *fcb = &xfcb.xfcb_fcb ;
- char dta[ sizeof( DIRECTORY_ENTRY ) + 9 ] ;
- char far *old_dta ;
-
-
- printf( "Looking for first cluster number of %s\n", name ) ;
- setdisk( toupper( *name ) - 'A' ) ;
- if( getdisk() != toupper( *name ) - 'A' ){
- printf( "setdisk(%d) failure\n", toupper( *name ) - 'A' ) ;
- return 0xffff ;
- }
- fnsplit( name, drive, dir, file, ext ) ;
- if( strlen( dir ) > 1 )
- dir[ strlen( dir ) - 1 ] = 0 ;
- if( chdir( dir ) == -1 ){
- printf( "chdir(%s) failure\n", dir ) ;
- return 0xffff ;
- }
- old_dta = getdta() ;
- setdta( dta ) ;
- xfcb.xfcb_flag = 0xff ;
- setmem( xfcb.xfcb_resv, sizeof( xfcb.xfcb_resv ), 0xff ) ;
- xfcb.xfcb_attr = FA_RDONLY | FA_HIDDEN | FA_SYSTEM | FA_ARCH ;
- fcb->fcb_drive = 0 ;
- setmem( fcb->fcb_name, 8 + 3, ' ' ) ;
- memcpy( fcb->fcb_name, file, strlen( file ) ) ;
- if( strlen( ext ) != 0 )
- memcpy( fcb->fcb_ext, ext + 1, strlen( ext + 1 ) ) ;
- asm push ds
- asm mov dx, ss
- asm mov ds, dx
- asm lea dx, xfcb
- asm mov ah, 11h
- asm int 21h
- asm pop ds
- if( _AL != 0 ){
- printf( "DOS fun 11h failure (%u)\n", _AL ) ;
- return 0xffff ;
- }
- setdta( old_dta ) ;
- return ((DIRECTORY_ENTRY *)( dta + 8 ))->cluster ;
- }
-
- /*
- * abs_read/abs_write section
- */
- static int abs_error = 0 ;
-
- static int near
- abs_read( int drive, int start, int len, void far *buf )
-
- - 58 -
- {
- asm push si
- asm push di
- asm push ds
- asm mov al, drive
- asm mov cx, len
- asm mov dx, start
- asm lds bx, dword ptr buf
- asm int 25h
- asm pop dx
- asm pop ds
- asm pop di
- asm pop si
- asm jnc no_error
- asm mov abs_error, ax
- return -1 ;
- no_error:
- return 0 ;
- }
-
- static char huge * near
- load_fat( void )
- {
- char huge *fat ;
- char huge *p ;
- unsigned fat_size ;
- unsigned sectors_per_call ;
- unsigned fat_start ;
-
- if( _osmajor >= 4 )
- fat_size = source_disk_info.dos_dependent.dos4.fat_size ;
- else fat_size = source_disk_info.dos_dependent.dos3.fat_size ;
- if( ( fat = (char huge *)farmalloc( source_disk_info.sect_siz
- * fat_size ) ) == NULL )
- return NULL ;
- sectors_per_call = 0x8000u / source_disk_info.sect_siz ;
- for( p = fat, fat_start = source_disk_info.boot_siz ; fat_size > 0 ;
- fat_size -= min( sectors_per_call, fat_size ),
- p += sectors_per_call * source_disk_info.sect_siz,
- fat_start += sectors_per_call )
- if( abs_read( source_disk_info.drv, fat_start, min(fat_size,
- sectors_per_call ), (void far *)p ) == -1 ){
- farfree( (void far *)fat ) ;
- return NULL ;
- }
- return fat ;
- }
-
- static void near
- detect_fat_type( void )
- {
- if( _osmajor <= 2 )
- fat_type = FAT_12 ;
- else if( source_disk_info.hi_clust > 4086 )
- fat_type = FAT_16 ;
- else fat_type = FAT_12 ;
- }
-
- static unsigned near
- collect_chain( char huge *fat, unsigned start_cluster )
- {
- unsigned clusters ;
-
-
- - 59 -
- printf( "Clusters chain is :\n" ) ;
- for( clusters = 0 ; start_cluster < 0xfff0 ; clusters++ ){
- start_cluster = get_fat( fat, start_cluster ) ;
- printf( "%5u ", start_cluster ) ;
- if( clusters % 10 == 9 ) putchar( '\n' ) ;
- }
- if( clusters % 10 != 0 ) putchar( '\n' ) ;
- return clusters ;
- }
-
- int
- main( int argc, char *argv[] )
- {
- unsigned start_cluster ;
- char huge *fat ; /*䫽ªÑ¡ íδΓ∞ HUGE ñ½∩ DOS 4.x*/
- unsigned clusters ;
- char directory[ MAXPATH + 1 ] ;
- int disk ;
- char *name ;
-
-
- if( argc != 2 ){
- printf( "Type : Cluster full_file_name\n" ) ;
- return -1 ;
- }
- name = argv[ 1 ] ;
- disk = getdisk() ;
- getcurdir( disk + 1, directory + 1 ) ;
- directory[ 0 ] = '\\' ;
- if( directory[ 1 ] == '\\' ) directory[ 1 ] = 0 ;
- if( get_disk_info( name ) == -1 ){
- printf( "Get disk info failure\n" ) ;
- chdir( directory ) ;
- setdisk( disk ) ;
- return -1 ;
- }
- if( ( start_cluster = search_start_cluster( name ) ) == 0xffff ){
- printf( "Get start cluster failure\n" ) ;
- chdir( directory ) ;
- setdisk( disk ) ;
- return -1 ;
- }
- printf( "Starting cluster number is %u\n", start_cluster ) ;
- if( start_cluster == 0 ){
- chdir( directory ) ;
- setdisk( disk ) ;
- return -1 ;
- }
- if( ( fat = load_fat() ) == NULL ){
- printf( "Load FAT failure\n" ) ;
- chdir( directory ) ;
- setdisk( disk ) ;
- return -1 ;
- }
- detect_fat_type() ;
- clusters = collect_chain( fat, start_cluster ) ;
- printf( "Total number of clusters is %d\n", clusters ) ;
- farfree( (void far *)fat ) ;
- chdir( directory ) ;
- setdisk( disk ) ;
- return 0 ;
- }
-
-
- - 60 -
- 7. Åα¿½«ªÑ¡¿Ñ D. ä«ßΓπ» ¬ σó«ßΓπ Σá⌐½á
-
- ÆÑ¬ßΓ »α«úαá¼¼δ ¡áσ«ñ¿Γß∩ ó Σá⌐½Ñ tail.c. ò«Γ∩ ½εí«⌐ ANSI
- Γαá¡ß½∩Γ«α ñ«½ªÑ¡ »α¿¡¿¼áΓ∞ ÑÑ, φëà »α¿¼Ñα «ß¡«óδóáÑΓß∩ ¡á ¡Ñ«-
- »¿ßá¡¡«¼ »«óÑñÑ¡¿¿ Σπ¡¬µ¿¿ seek() ¿ ¼«ªÑΓ ¡Ñ αáí«ΓáΓ∞ ß Γαá¡ß½∩Γ«αá-
- ¼¿, «Γ½¿τ¡δ¼¿ «Γ TC 2.0.
-
- #include <stdio.h>
- #include <io.h>
- #include <fcntl.h>
- #include <stdlib.h>
- #include <string.h>
-
- #define GRANULARITY (512)
- #define ID_LENGTH 30
-
- int
- main( int argc, char *argv[] )
- {
- int handle ;
- long length ;
- char buf[ ID_LENGTH + 1 ] ;
- int size ;
-
- if( ( handle = open( argv[ 0 ], O_RDWR | O_BINARY ) ) == -1 ){
- perror( argv[ 0 ] ) ;
- return -1 ;
- }
- length = filelength( handle ) ;
- if( GRANULARITY - length % GRANULARITY < ID_LENGTH ){
- printf( "File %s has no sufficient tail !\n", argv[ 0 ] ) ;
- close( handle ) ;
- return -1 ;
- }
- if( argc == 2 ){ /* Write to tail */
- lseek( handle, 0, SEEK_END ) ;
- size = min( strlen( argv[ 1 ] ) + 1, ID_LENGTH ) ;
- if( write( handle, argv[ 1 ], size ) != size ){
- perror( argv[ 0 ] ) ;
- close( handle ) ;
- return -1 ;
- }
- }
- else {
- lseek( handle, ID_LENGTH, SEEK_END ) ;
- write( handle, " ", 1 ) ;
- lseek( handle, length, SEEK_SET ) ;
- read( handle, buf, ID_LENGTH ) ;
- printf( "File tail is \"%s\"\n", buf ) ;
- }
- chsize( handle, length ) ;
- close( handle ) ;
- return 0 ;
- }
-
- 8. Åα¿½«ªÑ¡¿Ñ E. èᬠ«Γ½¿τáΓ∞ «ß¡«ó¡δÑ »½áΓδ
-
- ÆÑ¬ßΓ »α«úαá¼¼δ ¡áσ«ñ¿Γß∩ ó Σá⌐½Ñ sysboard.c, ΓαÑíπεΓß∩ TC 2.0 ¿
- TASM ñ½∩ ¬«¼»¿½∩µ¿¿. ÆÑ¬πΘÑÑ º¡áτÑ¡¿Ñ »áαá¼ÑΓαá INSTRUCTIONS (16384)
- íπñÑΓ ºáßΓáó½∩Γ∞ ßτÑΓτ¿¬ óαѼѡ »ÑαÑ»«½¡∩Γ∞ß∩ ¡á τáßΓ«ΓÑ ¼Ñ¡ÑÑ 20
- îâµ »α«µÑßß«αá 80386.
-
- static char __rights__[] = "î«ñπ½∞ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿ «ß¡«ó¡«⌐ »½áΓδ";
-
- - 61 -
-
- #pragma inline
- #include <stdio.h>
- #include <stdlib.h>
- #include <dos.h>
- #include <alloc.h>
-
- #define INSTRUCTIONS (16*1024u)
-
- void
- init_timer_channel( unsigned char channel )
- {
- asm pushf
- asm cli
- asm mov al, channel
- asm ror al, 1
- asm ror al, 1
- asm or al, 36h
- asm out 43h, al
- asm mov dx, 40h
- asm add dl, channel
- asm jmp $+2
- asm jmp $+2
- asm xor al, al
- asm out dx, al
- asm jmp $+2
- asm jmp $+2
- asm out dx, al
- asm popf
- }
-
- unsigned
- read_sound_timer( void )
- {
- /*
- * ! ¥Γá Σπ¡¬µ¿∩ ¡Ñ ñ«½ª¡á ¿º¼Ñ¡∩Γ∞ αÑú¿ßΓαδ, ¬α«¼Ñ AX !
- */
- asm mov al, 80h
- asm out 43h, al
- asm jmp $+2
- asm jmp $+2
- asm in al, 42h
- asm jmp $+2
- asm mov ah, al
- asm in al, 42h
- asm xchg ah, al
- asm neg ax
- return _AX ;
- }
-
- #define disable_count() (outportb(0x61,inportb(0x61)&(unsigned
- char)~1))
- #define enable_count() (outportb(0x61,inportb(0x61)|(unsigned
- char)1))
-
- void
- instruction_fill( char far *buf, unsigned cnt, char instr[ 2 ] )
- {
- while( cnt-- > 0 ){
- *buf++ = instr[ 0 ] ;
- *buf++ = instr[ 1 ] ;
- }
- *buf++ = 0xCB ; /* retf */
-
- - 62 -
- }
-
- unsigned
- measure( char far *routine )
- {
- unsigned time ;
-
- init_timer_channel( 2 ) ;
- disable_count() ;
- asm push cs
- asm lea ax, ret_point
- asm push ax
- asm les bx, routine
- asm push es
- asm push bx
- asm xor dx, dx
- asm mov bx, 1
- asm cli
- enable_count() ;
- asm mov ax, bx
- asm retf
- asm ret_point label near
- disable_count() ;
- time = read_sound_timer() ;
- asm sti
- return time ;
- }
-
- int
- main( int argc, char *argv[] )
- {
- char far *buf ;
- unsigned idle_time ;
- unsigned CPU_mark, mem_mark, DMA_mark ;
-
- if( ( buf = farmalloc( INSTRUCTIONS * 2 + 1 ) ) == NULL ){
- perror( "No memory" ) ;
- return -1 ;
- }
- instruction_fill( buf, 0, NULL ) ;
- idle_time = measure( buf ) ;
- instruction_fill( buf, INSTRUCTIONS, "\xF7\xF3" ) ;
- CPU_mark = measure( buf ) - idle_time ; /* div bx */
- instruction_fill( buf, INSTRUCTIONS, "\xC4\x07" ) ;
- mem_mark = measure( buf ) - idle_time ; /* les ax, [bx] */
- instruction_fill( buf, INSTRUCTIONS, "\xE6\x0C" ) ;
- DMA_mark = measure( buf ) - idle_time ; /* out 0Ch, al */
- printf( "Idle time = %u\n", idle_time ) ;
- printf( "CPU mark = %u\n", CPU_mark ) ;
- printf( "Memory mark = %u\n", mem_mark ) ;
- printf( "DMA mark = %u\n", DMA_mark ) ;
- return 0 ;
- }
-