Results 1 to 2 of 2

Thread: Diskfix.txt from fdsloadr.txt?

  1. #1
    Insert Coin (Level 0)
    Join Date
    Aug 2005
    Posts
    6
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts

    Default Diskfix.txt from fdsloadr.txt?

    Does anyone have a copy of the file DISKFIX.TXT, I search google but there was only 4 results, none of which had the file.

    quote--

    If the program is having trouble downloading (acquiring) data from the disk drive unit, the disk you're trying to read may be damaged. Read my "DISKFIX.TXT" document to see how this may be correctable. Also, for reading disks with known working trouble, you will generally have better success reading accurate disk data on a faster PC system. Note that if you're still having trouble reading the disk's data after all of this, it's most likely that the data stored on it is damaged, which makes it impossible to recover accurately.

    thanks

  2. #2
    Key (Level 9) nebrazca78's Avatar
    Join Date
    Sep 2005
    Location
    Lincoln, Nebraska
    Posts
    1,848
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts

    Default

    Also
    FDSLOADR.TXT This document is a translation of Japanese reference.
    And translate only what you need to precede the dump.
    Original documents to English, NES → NES, FDS → disk system and
    You will need to replace.

    The document is a PC, AT compatible machine (DOS / V machine) refers to the English mode.
    Some Japanese DOS environment, us switch mode instruction in English.

    Only questions about the translation, Asahi (asahi@momo.chan.ne.jp).
    Questions about the content and not, to read the text on the original authors.
    Reference section is a summary of each document based on the Asahi,
    Please see the original documents and any questions.

    -------------------------------------------------- ----------------------
    Reference: FDS wiring diagram for the dump

    Disk drives (the original document "Small signal wiring chart" part corresponds to the DDU ~ FDS)

    (A) 12-pin disk drive back
    (B) D-Sub25-pin parallel port

    (A) (B) Other
    1 ---- 14: A → B ~ WRITE GATE
    2 ------------ +5 V: Vcc (+5 V)
    3 ---- 1: A → B ~ SCAN MEDIA
    4 --- 18 ~ 25 --- GND: GND (common connection)
    5 ---- 2: A → B DATA
    6 ---- 11: A ← B MOTOR ON / BATTERY GOOD
    7 ---- 12: A ← B ~ WRITABLE DATA
    8: Do not use this pin
    9 ---- 10: A ← B DATA
    10 ---- 13: A ← B ~ MEDIA SET
    11 ---- 15: A ← B ~ READY
    12 ---- 17: A → B ~ STOP MOTOR

    (A) is a special terminal. Pin number and details of the cable is created,
    Or use backup techniques vol.5 ~ 6 see text.

    Disk drive power for driving a battery or the AC adapter is supplied
    The electronic circuit is attached to the RAM drive Vcc is supplied from the adapter.
    This 2 / 4 from the pin to supply +5 V is necessary.


    Twin NES for (relatively easy to obtain pin)

    (C) NES twin rear extension terminal connected to a column C 12-pin
    (D) pin extension cable back through the existing Twin NES D (2 column) column connected to a pin 12 ※
    (E) D-Sub25-pin parallel port

    (C) (D) (E)
    1 ---- 13: D ← E ~ MEDIA SET
    2 ---- 17: D → E ~ STOP MOTOR
    3 ---- 15: D ← E ~ READY
    4 ---- 10: D ← E DATA
    5 ---- 12: D ← E ~ WRITABLE DATA
    6 ---- 2: D → E DATA
    7 ---- 1: D → E ~ SCAN MEDIA
    8 ---- 14: D → E ~ WRITE GATE
    9 ---- 9 --- 18 ~ 25: GND (common connection)
    10 ---- 10: Vcc (+5 V)
    11 ---- 11: D ← E MOTOR ON / BATTERY GOOD
    12: Do not use this pin

    (C) (D) C-terminal extension to connect the D-terminal extensions are hidden on the back.
    Remove the cover and see the black terminal is already connected by a cable.
    RAM adapter cable to the corresponding parts in the disk drive.

    (D) pin number, the techniques utilized to refer to the backup vol.5
    That was converted from a pin number for the disk drive.
    Twin NES here in the rear port 12 corresponding to the drive pins.
    The actual number of terminal pins are listed in the housing.

    Above (C) ~ (D) in connection with the unification of GND for +5 V supply.
    Twin NES in power electronic circuits and +5 V can take from here.

    ※ 2 terminal extension is one that is already connected by cable, remove the C-side of it.
    I removed the body of the terminal (C), the cable terminal (D) is used.

    Town: Extended pin D ■ [2-terminal sequence pins column ]----[ 1] ■ C-terminal extension

    New: Extended pin D ■ [2-terminal sequence pins column ]----[ 1] (D) --+-- (C) ■ C-terminal extension
    |
    (E)
    You can use the general terminals by using the existing cable in this way.
    http://www.jst-mfg.com/ProductGuideJ...9;造(JST)
    Techniques use the same approach has been backed up vol.6.

    Housing the (C) The SMR-12V, (D) to be SMP-12V.
    By electronic parts stores in the wire and crimp a contact corresponding to this
    Some are sold, manufactured more easily and use it.


    If ANFENORU pin to 36 pin parallel port

    Corresponding to transform in accordance with the following. 19-30 and 18-25 is GND.

    36: 1 2 10 11 12 13 14 32 36 19-30
    25: 1 2 10 11 12 13 14 15 17 18-25


    -------------------------------------------------- ----------------------
    Reference: *. FDS file format

    A single file can hold two or more disk data surface.
    File size, 16 +65500 × the number of terms.

    Beginning of the file header and 16 bytes,
    The 65500 is stored for each byte data of each side.

    Header format,
    Struct (
    unsigned char sign [4]; / / 46h 44h 53h 1Ah ( 'F' 'D' 'S' ^ Z)
    unsigned char disks; / / 1 if single-sided copies if both pieces 01h 1 pcs 04h if 02h 2
    unsigned char dummy [11]; / / 11 bytes all 00h
    )

    FDSLOADR of the sky for you if you make a file *. FDS,
    ... A single-sided sheets top 65,516 bytes 5 bytes 46h 44h 53h 1Ah 01h
    Both a top sheet ... 131,016 bytes 5 bytes 46h 44h 53h 1Ah 02h
    Both the first two pieces ... 262,016 bytes 5 bytes 46h 44h 53h 1Ah 04h
    Create a file, after the first byte is 00h you all.


    -------------------------------------------------- ----------------------
    Reference: FDSLOADR people with dump

    (1) cable, PC disk drive and turned on (power connections).
    (2) Add a card to the disk drive. (Especially the drive would not respond)
    (3) "FDSLOADR 1.FDS" as a valid boot *. FDS file
    (4) to automatically file an FDS of the contents of the card that吸I出SA面部minute disc
    ※ The READ DISUKUDORAIBUMODO to verify that.
    Otherwise there is a possibility that the failure of the cable and wiring.
    ※ If your computer is slow right note on the benchmark results.

    * (5) - (8) for both the one-sided game cards if you suck out *. FDS file.
    * If one side is a dump of the game (9) to go.
    (5) Eject the disc.
    (6) Keyboard'2 'and press to see the changes highlighted by the bar.
    (7) would just put the A side, now put the B side.
    (8) to automatically file the FDS disk card in 2 minutes面部(B side)吸I出SA content.

    (9) F4 key. 1.FDS content is saved to吸I出SHITA, DOS back.
    (10) Eject the disc and turn off the disk drive.
    ※ FDS to a binary file is opened in the editor,
    On each side "* NINTENDO-HVC *" should exist in the string.


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

    FDS Loader description (訂2)

    Project ideas, research, construction, development and documentation solely Brad Taylor (big_time_software@hotmail.com). The other NES / FC / FDS and information-related work has been put in http://nesdev.parodius.com.

    Spelling mistake in the original document is Christopher Cox (c.cox @ sasktel.net) are correct.

    All information will lead to the development of this project, "FDSTECH.TXT" screwy is that come from documents in the document.

    Note: This document using a text-mode character. To see this "Notepad" in Windows YOOU If you use the program, all ASCII characters to display the "terminal" will be displayed properly in the appropriate style to use the typeface.


    Disclaimer
    ----
    The project is "still there" will be provided. Create and run this product is your own risk. This implies that HAORAZU the product is defective, causing some damage to you either directly or indirectly that I (Brad Taylor) is just to ignore the meaning of responsibility.


    Contents
    ----
    Revision history
    Why was this project?
    Description of the software program
    Physical construction of the project
    Improvements in software (compared to the previous version)
    Software compatibility
    Why the program might not work
    Known Issues
    The program changes the disk problem
    Pinout diagram
    Wiring diagram
    Use Software

    +--------+
    | Revision History |
    +--------+

    Add revision date notes
    ~ ~ ~ ~ ~ ~ ~ ~ ~~~~~~~~~~
    2.0 02/11/14 - the character to work before any timing issues, FDSLOADR significant rewrite of the order of DETAAPPURODO
    Fix-FDSLOADR this document that supports the software change
    1.1 02/10/18 - "software comp. / known bugs" section is split into two
    - "The issue of program change the disk" section
    1.02 02 / 5 / 7 - correct spelling
    1.01 02 / 5 / 2 - Note the wiring diagram ($)
    - Revision history
    1.00 02 / 4 / 29 - public


    +--------------------------------+
    | What's on this project? |
    +--------------------------------+

    Why did this project, since 1994 and owns the FDS, a great game (game play sounds great, especially) from playing with it. The 1987 part of the disk is made from very old and have been having more and more features. Furthermore, in experiments conducted in a disk drive so that I賢KUNAKATTA is never complete and the drive was not ready. (In addition, the FDS has seen them plenty of articles online about how to how to SURI減っbelt drive.) Obviously, disk drive and the game is still some time.

    RAM adapter (which I know is intact) and can not fault with, and it will be enough. So, the PC's RAM instead of FDS disk drive interface adapters, consider the structure of the project. The control PC (emulation) through the software from RAM to the hard drive to load up the game adapter FDS. This cumbersome (and often lack credibility) FDS storage system (in other words its own 2.5-inch disk) while ignoring, FDS of RAM it can use a hardware adapter (to play a real game use of the NES). NES adapter RAM as a bonus for developers, this project, PC on its own for the NES program (*. FDS file) to enable the coding of the actual NES to upload it to run on be easy.

    This project works and the disk drive, data communication system used in serial communications, low-level system in the analysis of data will be stored on the disk (01 August) began. It spent about a half months, the majority of the PC disk drive and a challenge to the electronic interface, which writes software to help you understand the captured data.

    The next step will be used to maintain the integrity of data files on the disk was to crack the CRC algorithm. I know I mentioned that the CRC check even the FDS Technical Document, it was generated without the details of their calculations and, to complete this task was very difficult. Most of FDS documents, RAM emulation is perfect, including the development of FDS emulator adapter (which implements the CRC structure is not necessary) so that it conforms to, this is understandable.

    However, CRC is no algorithm, this project is a pipe dream. CRC study, spent a half-moon to understand the meaning of the document there is no description of the software implementation. CRC of the disk system had to solve the biggest mysteries about the value of two points. Polynomial is used and bit order. First, which has been recorded and conforms to the CRC in order to reach the disk (FDS was actually reading a portion of the disk) I tried all the combinations of the image of testing data. At that time, my friend said to me, CRC has been saved to disk in the calculation to include the value of the CRC, the CRC when the data is consistent with 0 to be produced. This is used when the decoding algorithm or a polynomial. In fact, the polynomial was used was very common 16-bit.

    After this, FDS are ready to finalize the project attempts to emulate DISUKUDORAIBUYUNITTO.

    (01 October) I wrote my first software, RAM and external hardware to the PC adapter to transfer data between the (digital electronics were on hand) had to rely on. This is a hardware FIFO (for buffering of data bursts out of the emulation software) and parallel series conversion (mainly 8-bit shift register and XOR gates, the RAM data to convert the original serial communication protocol adapter order) had been. Ultimately, the project by using the external hardware, which is why you need to finish my final project, the public has to be some kind of unusual projects lost interest (but to whom the benefits of this project, also wanted by other people with a background in electronics). Furthermore, RAM write to the disk adapter (stored) until it is ready to process the data was sent to you. Even the ability to store data, and requires more hardware, a conflict with objectives of the project.

    January 1902, I will fix this, I started looking in more detail about how to emulate the hardware and software were used once. The biggest problem is a constant rate (96.4kHz ± 10%) of the RAM to send serial data to the adapter.

    The first thought is, 192,800 per second interruption (and update when the serial data signal transfer to the adapter RAM) in order to hit a PC Programmable timer (PIT) was used, as soon This solution is unrealistic to come to produce results and reliability.

    Try the following program was used to write the time delay inherent in any port. The use of external RAM can be easily connected with the adapter, and ISA bus PIO timing is the industry standard has been established for many years, so the access speed is guaranteed to be more or less the same for old and new computer It had been a major target of the parallel port registers. To this port "OUT" 1 between the times is not necessary to generate a total delay of me, a few consecutive "OUT" will be called. It was reported that in certain practical ways to tackle the above problem (for further study related to the updated "software improvements" clause).

    The last step is to write to the RAM disk support was the interpretation of the serial data out of the adapter. This was certainly difficult to implement in software.

    After all, RAM write data out of the adapter and that is the pulse. This is how the data was the difference between the FDS and be saved to disk, PIO in terms of, (RAM generated adapters) Load-frequency pulse frequency (CPU read from the parallel port registers something) is not synchronized, to ensure the progress of the pulse can not be read, it did not sync of course.

    To overcome this, "write data" signal to the printer port IRQ7 lines and decided to sign, the interrupt is generated each time the pulse is therefore given. Software that is used to determine the duration of the pulse, and to determine the elapsed time between the interrupts, and ultimately it was the correct interpretation of bit pulse.

    "write data" that connects to the IRQ signal line, the second largest one in 96,400 is meant to interrupt, "you" if you turn off all other interrupts, the PIC Apparently, the purpose of the interpretation of bits able to handle this interrupt frequency accurately enough.

    Finally, 96.4kHz (maximum) has been implemented to understand the sense of elapsed time between interrupts.

    First, CPU will be able to count up the highest speed I decided to give the CPU registers used as counters. When an interrupt occurs, the count is read, the appropriate interpretation is based on the number of bits that, when the end of the counter 0 is reset to the interrupt routine.

    Notes of Major had proposed this (only works when the counter is not interrupted) may not care to interrupt the count of the overhead accumulator. In this case, not only because it only requires a single write port, the interrupt overhead is negligible. This is the PIT to Legacy ISA or a hardware device (about the time available to spend 18 percent of the interrupt pulse). Finally, the overhead is calculated in advance, which means some measure of performance in the beginning, I think for the immediate concern is over the head (and computation overhead still not 100% guarantee the accuracy of the TARASA not yet).

    After all, great to know the best elapsed time of the x86 instruction RDTSC (read time stamp count) KUWASHITA accident. This instruction is incremented every CPU clock cycle of the ongoing internal counter, the current 64-bit count value returns. The only problem when you decide to use this instruction, this migration Pentium CPU was only being implemented. Ultimately, Pentium system is already long enough (10 years) to see there are many, and decided to meet with this instruction.

    RDTSC is to ensure the most accurate way to determine the elapsed time between the interrupt, PC to change the pulse across a wide range of CPU count systems, with greater attention. More compatible with programs for other systems, so have concerns about this program to load the data properly for the patient to be that.

    RAM is not impeccable in the acquisition of data issued by the adapter, FDS Despite the program decided to include support for additional interface DISUKUDORAIBUYUNITTO with the real data from the FDS read my disc The program did not interpret well.

    The disc is exactly読MI込META sometimes, when the other pulse may have a strange point to the downloaded data was interpreted in the wrong slump, and after it in the file on this cause they were all converted to inaccurate data.

    The reason for this, FDS disk rotational speed or RPM of the disk drive was not a constant. In fact, when scanning the disc, RPM will be changed outside of the ± 15% was assumed that changes everything. This is due to the greater friction of the disc than in some other mostly. This "drift" because the program is a 0 as one might think, or vice versa, simply because the interpretation of the pulse program is expected to range from the elapsed time between pulses and hence based on the constant there is.

    You, therefore, the RAM will ask about how to deal with the drift of the adapter. RAM adapter, based on the frequency of the pulse is sent, you can dynamically adjust the transfer speed to interpret the data read from the disk drive. For example, RAM 0 adapter to interpret the pulse received from the previous 15 to 24 hours after the expected range of the unit, and the range of 25-34 units. Pulse 22 hours after the unit came with. This adapter RAM is interpreted as 0, but "0" to the definition of 17-26, "a" is changed to a 27-36 unit time (in fact, an added factor range is appropriate, and differences it simply is not moderate, but more than this simple explanation I). This dynamic adjustment of the flexibility of the adapter RAM note that the limited (in other words, it allows the mass transfer rate can not drift. That must be why you stop working them FDS disks will explain).

    To be able to interpret the data transfer rate due to changes in the program had to be implemented in my program the same way. However, for a range of 0 and the elapsed time for the unit, so there is no need to rely on some initial value, had to be implemented to automatically detect the speed of data transmission. This is the first data to obtain anything other than the first program "GAP" to know that the data was available. This data is fully and we know that 0 consists of, GAP was the value of the elapsed time after the first period, the definition of the scope of the first calculation. The calculation is continued throughout the process of getting the data, which is promised to be able to compensate any drift speed. Of course, the implementation of this structure, CPU will not matter to program the clock rate for data interpretation.

    But, however, came with the implementation of the algorithm described above has been little success. Sometimes the data acquisition was complete, the other when they're not. After some investigation, the printer port when a pulse is sent to the IRQ pin, CPU, I realized that sometimes slow the response time. This delay (96.4kHz interrupt at intervals of about 10% occur in the number of times), when compared with the average elapsed time of the pulse is not delayed, to change the shape to a small spike. This algorithm will be calculated based on the pulse of the range only the last pulse, the "spike" had ruined the algorithm running. Fix, recently imported to establish a buffer of 16 to record the pulse period or so, hence the range calculation can be based on the average duration of the pulse stored in the buffer. By this behavior and the calculation of the range previously mentioned "spike" a little insensitive to the rate of change over time to obtain the data is still available.

    In this way, and you get it here. Look at that now, two months of research, documentation and software development and over four months. This has been my biggest project so far is related to NES (NES perhaps the documentation and analysis of the survey will be the second two-channel sound). I want is to enjoy reading this passage, just as I have, of course, want to enjoy the last project I've worked for.


    +------------------------------+
    | Description of the software program |
    +------------------------------+

    The software described in this document have a single purpose, both the Nintendo Famicom Disk System hardware (RAM and DISUKUDORAIBUYUNITTO adapter) that requires the use of.

    Parameters by the user commands, software reads the files *. FDS (FDS DISUKUGEMUIMEJI) is specified. Then using a parallel port, depending on how many FDS is connected to the parallel port hardware, software RAM can communicate with either the adapter or DISUKUDORAIBUYUNITTO.

    RAM is used when the adapter is the perfect software to operate as the Famicom Disk System emulator disk drive. FDS loaded data is provided by DISUKUGEMUIMEJI, RAM can be transmitted at the discretion of the adapter. Data RAM disc is fixed by the adapter, as specified in the original option *. FDS can be saved to a file.

    DISUKUDORAIBUYUNITTO when used, the software can change the program or read the contents of the disk in the drive. Software, operations that are performed (read or modify the program disk in drive) to control. In this case, prior to running the specified program *. FDS file are treated as either a source or destination of the contents of the disk image.


    +--------------------------+
    | Physical building projects |
    +--------------------------+

    To make this project work, an external electronic circuit is required. FDS parallel port only electrical connection is made directly to the hardware (these connections are "wiring" in the News section). However, the role will require you to get this project done for some electronics skills. About creating a few of the wires needed, and if anyone has experience of entry-level soldering wires, and this role is difficult to think of it. But here, we used in this project is created with the responsibility to raise the connectors, some problem solving, ingenuity, and might even need a hard decision, or maybe. With regard to complete any of the hardware for this project, this document does not provide step-by-step guide of the scheme or photos, but hopefully, diagrams, wiring diagrams, the proposal would be sufficient. And physical tools required to complete the project are the following:

    - FDS hardware (RAM disk drive adapter).

    - Soldering iron solder (maybe most, would you want to solder a connection).

    - 25-pin male D connector. Plug into the parallel port printer to your computer (the computer used in the old 25-pin type SHIRIARUPOTOKONEKUTA source procurement will be good for this part).

    - Wire (PC and connect the hardware for FDS). That are very commonly used in any type, I recommend two types of cable, and ribbon cables are shielded. The electronic circuitry associated with the radio is used to facilitate the ribbon (and perhaps, because most computer ribbon cables, more user-friendly) for the shield is the interface of the minority. I use a long line of decided it was appropriate. Lines that require (conductor) to determine the number of the "wiring diagram" of the section.

    - RAM INTAFESUKONEKUTA DISUKUDORAIBUYUNITTO or to plug into the adapter. RAM and connector adapters are required for any card-edge interface, to gain access to the pin, double-sided copper-coated circuit board (PCB) is recommended to use the plug in.銅被覆ボードはコネクタまでの途中ずっとに適合するのにじゅうぶん長く、そしてはんだの詰め物のため の空間となるのにじゅうぶん突き出している(しかし一般にPCB一片は非常に小さい)。またそのボードは、 コネクタのピンの短絡を防ぐために、片面ごとに5つ、それに向けて線を引かれた等距離の絶縁部を持っている 必要があるだろう(これを行うにはユーティリティナイフを使うか、持っているならば他の手段によって)。デ ィスクドライブユニットのピンへのアクセスを得るための唯一の解法は、RAMアダプタ自身のケーブルを使う ことであろう。これは、RAMアダプタを分解してケーブルを抜くことによって、傷つけることなく行うことが 可能である。

    - オプションとしてオス型の4ピン電源コネクタ、PCの電源ケーブルのひとつに接続するため。ディスクドライ ブユニットは(そのグランドピンに関して)5ボルトの直流入力を必要とする。この電源は通常RAMアダプタ から提供される。けれども、それがない状態では、電源はPCから提供する必要がある。これは、もしパラレル ポートがいくらかの電源出力を提供するのならばたいへんなことではないだろうに。従って、この電源はPCの 電源ケーブルの一つから取る必要がある。


    +----------------------------------+
    |ソフトウェアの改良点(前版に比べて)|
    +----------------------------------+

     FDSLOADRで当初動作していたデータアップロードの方法(「なぜこのプロジェクトを行ったのか」節 の第8~10段落を参照)の理由で、ポート378hの正確なタイミング(±10%許容)が、ソフトウェアが FDSハードウェアと適切に動作するためには重大であった。デスクトップPCで私はポート378のタイミン グをベンチマークし、タイミングは非常に一定している(あるいは少なくともタイミングが許容範囲の点に調節 できる)と思われた。だから、プロジェクトのこの特徴は問題にならないだろうし、ポート378のベンチマー ク(SPDETECT.COM)を世間に提供し、念のため互換性問題は存在している(おおよそ起こらないと 予想していたと)と仮定した。

     けれども、02年4月後半のFDSLOADR一般公開の後、プロジェクトのトラブルシューティングに関す るかなりの電子メールを受け取った。具体的に言うと、取り上げられ続けた話題は、SPDETECTにこのプ ロジェクトの実行へ青信号を与えてもらう問題を抱えた人々にかかわっていた。タイミング問題は(私の知って いたように)ラップトップ型のPCで起こると思っていた。一般的な日本のPCもまた、私のソフトウェアでタ イミング問題を発生させる条件となっていた。

     そこで、FDSLOADRソフトウェアに長いこと延び延びになっていた更新を行うことを決めた。最初のプ ログラムの基にしていた、ポート378hへの二重の16ビット書き込みは、1/(96400×2)時間基準の生成にはもはや使われない。この公開の時点では、(必要となる)単独の8ビッ トのポート書き込みのみが行われる。慎重に計時されたCPUループが、時間の違いを作り上げるためにポート 書き込みの中間に導入されている。これらのCPUループは、FDSLOADRがその実行時ごとに行うベンチ マークに基づく繰り返しカウントを持っている。ベンチマークは迅速(2分の1秒)なので、別に気づかれるこ となく行われるだろう。

     最終的にこの変更は今度こそ、内部タイミングが動的に生成される(このための規定は存在する。詳細は次の 節2つを参照)ので、出ている大変多くのどんなPCシステムでもFDSLOADRは動作するという一種の補 償になるはずである。けれども、これらのソフトウェアアーキテクチャの改良は、FDSLOADRの最高の進 化を意味する。FDSLOADRはソフトウェアエミュレーションによるシリアル通信の一里塚に相当し、そし てFDSLOADRがその最終版でも動作しないのなら、あなたのPCでは外部ハードウェア以外にはそれを可 能にするものは存在しない。


    +--------------------+
    |ソフトウェアの互換性|
    +--------------------+

    - 当該のプログラムは、DOSターゲットのx86マシンコードのバイナリイメージコマンドファイル(*.CO M)で格納されている。それゆえ、COMファイルをサポートしないOSではこのプログラムは動作しない。こ のソフトウェアは386命令を利用しているので、必然的に386より前のコンピュータでは動作しないだろう 。

    - FDSLOADRをDOS上で単独に実行することを強く推奨する。Windows内でも動作するだろうが、 起動時にベンチマークを行うため、Windowsがそのときシステムリソースを占有するよう決めたならば、 ベンチマークの結果が汚れてしまう。この期間中にプログラムの優先度を重要と(Windowsに)指し示す 方法は(私の知る限り)存在しない。また、ベンチマーク結果がWindowsによって汚されたならば、デー タアップロードの完全性は直接影響を受けるだろう(これは悪いことである、特にディスクのプログラムの変更 をしようとしているならば)。

    - アップロードは正確なCPU内部に基づく時間遅延ループに頼る。簡単に言えば、あなたのシステムが速いほど よいということである。それ故に、CPU速度が低いほど、より多くのソフトウェアオーバーヘッドがポート書 き込みタイミングに影響する(プログラムの送る一連のビット列の正確さを危うくする)。要約すると、ボトム エンドなシステム(20MHz動作の386など)で動作させようとすれば、すばらしい結果は期待してはなら ない。数段落で述べられるだろう理由については、機能上ソフトウェア全体の色彩を利用するためには、おそら く少なくとも第5世代x86プロセッサのPCでこのソフトウェアを動作させるべきである。

    - Windows(9x)内でのアップロード処理の間は、他の全ての処理が(マウスを含めて)停止する。通常 の動作はアップロードが終了してから再開するだろう。これは、データ転送の間に割り込みが無効化される結果 である。これは避けることができない、なぜならバックグラウンドでの割り込みの発生はいつでもデータ転送の 処理を停止させることができ、これはデータの正確で信頼性のある転送を満足しなくなるからであ る。

    - ダウンロードはWindows(9x)内では動作しない。プログラムがRAMアダプタやディスクドライブか らデータをダウンロードしようとすると、(Windowsは無傷で残るはずだが)プログラムは中断するだろ う。ソフトウェアは、ダウンロードがWindows内で動作するように調節されているのだが、見たところで はWindowsがDOSソフトウェアからパラレルポートIRQをブロックする(あるいは、ただ私が何か正 しいことをしていないのか)。

    - ダウンロードには、"RDTSC"CPU命令(オペコード0F 31)の実装が必要になる、これは公式にはPentiumプロセッサで導入されている(一部の後期486C PUもこの命令に対応している可能性がある)。この命令に関して対応のないCPUでダウンロードを動作させ るためには、その機能をあなた自身でエミュレートさせる必要がある。私の知る限りでは、この課題に利用でき る最良の(そして唯一の)ハードウェアはPIT(プログラム可能なインターバルタイマ)であり、これは継続 的なカウンタとなるためにプログラムできる。この課題のためにPITを使うのを避けた大きな理由は、その基 本カウント周波数が1.19MHzより低めであるからである。経過時間カウントの周波数が低いほど、得られ たデータが危うい可能性がある(けれどもおそらく間違いなくこのカウント周波数はじゅうぶんである)。第2 の理由は、PITがレガシーISAハードウェアであり、これは極めて低速なI/Oアクセスを意味する。これら両方を計算に入れると、わずかに除算や乗算を利用するデータ取得アルゴリズム とともに、このエミュレーションの実装について少し疑いを抱いている理由を見られるだろうし、486以下の クラスのCPUでまあまあ動作することを期待している。

    - このプログラムは、Fan Wenの16バイトヘッダの*.FDSファイルフォーマットのみに対応している。これはまた、プログラムが 1つのディスクから取得できるデータの絶対的な最大量が65500バイトであるということも意味している。 一般的に、公式のFDSディスクはおよそ57KBのデータを持っているが、カートリッジ方式のゲームの海賊 版コピーのディスクは64KB以上のデータを持っている。このようなディスク(65500バイト以上のデー タのディスク)を読み込もうとした結果は不確定である。


    +------------------------------------+
    |プログラムが動かないかもしれない理由|
    +------------------------------------+

     このプログラムは、画面の右上隅に(ネズミ色で)あなたのシステムのポート378h速度の測定結果を(H z単位で)表示する。信頼性のあるアップロードには、このポートの速度が少なくとも192800Hz(この 数字は基本的なFDS転送周波数の2倍に由来している)であることが必須である。もし測定結果がそれ以下で 、しかし10%未満の差ならば、ポート速度の値は緑がかった青で(そしてたぶん点滅して)表示される。FD SLOADRはこの状況下でもまだ動作するだろう、しかしおすすめできない。もしFDSLOADRが最低基 準のより10%以上低いポート速度を計測したなら、プログラムは無条件に終了する(同時にエラーメッセージ を出す)。もしこの問題が出たならば、あなたのコンピュータのBIOS(通常はその中の"ch ipset features"メニュー)にあるパラメータを加減することで、コンピュータのポート378hの動作速度 を増加させることができるかもしれない。これを行うには、2つの方法がある。"(8-bit) I/O recovery time"を最小値にする、あるいはPCI:ISA clock ratioを下げる(BIOSがサポートしているなら)、である。これでも歯が立たなければ、FDSLOA DRを試すためには他のPCが必要になるだろう。

     プログラムがディスクドライブユニットからデータをダウンロード(取得)する途中に問題をかかえたなら、 読もうとしているディスクが痛んでいるのかもしれない。どうしてこれが修正可能かもしれないかを見るには、 "DISKFIX.TXT"を読んでもらいたい。また、周知の動作問題のもとでのディスクの読み込みに関し ては、より高速なPCを使うと一般に、正確なディスクデータを読み込むことができるだろう。この全ての後で もディスクのデータを読む問題を抱えているのなら、たぶんそれに保存されたデータが破損していて、それは正 確に再生することができないということになる。

     もしソフトウェアとFDSハードウェアの間にはっきりと何の通信もないのなら、パラレルポートがBIOS で有効になっているか、ポート番号は378hベースか、IRQは7か、そして配線の接続を二重に確かめても らいたい。

     最後に、世界中の多くの人々がこのプロジェクトを首尾良く組み立てたので、このプロジェクトは、試みられ 、試され、正しいと判断されている。


    +----------+
    |既知の問題|
    +----------+

     このプログラムはキーボードからの(BIOSを経由するかわりに)直接の生データを取り扱っているので、 どうもFDS転送の途中にキーが打たれたとき(特に"jamming"のとき)に問題がときどき起こるらし い。この問題は、プログラムが終了するときに下がったキーのうち一つ(すなわちシフト)がロックされるよう である。"exit"とタイプしてから影響の出ていたキーを押すことで、この問題が修正されることが分かっ ている。FDSLOADRの実行中に、激しい(しかしまれな)場合だと、この問題によってキーボード全てが ロックされ、キーボードが無効になる。もしそうなら、唯一の解決方法は再起動である。


    +------------------------------+
    |ディスクのプログラム変更の問題|
    +------------------------------+

     (吸い出しには関係ないのでひとまず省略)


    +----------+
    |ピン配列図|
    +----------+

    __________________________________________________
    \ 13 12 11 10 9 8 7 6 5 4 3 2 1 /
     \ /
      \ 25 24 23 22 21 20 19 18 17 16 15 14 /
     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

     PCの25ピンパラレルポートコネクタの正面図である。ここで注意すべきこととして、パラレルポートの中 には実際に穴にピン番号を記入しているものもあるので、念入りに見てもらいたい。

    ■■
     ■■■■■■■■■■■■
     ■ 1 3 5 7 9 B ■
     ■ ■
     ■ 2 4 6 8 A C ■
     ■■■■■■■■■■■■

     RAMアダプタの、ディスクドライブユニットに接続する12ピンの配列の正面図である。ここで注意すべき こととして、ディスクドライブのコネクタピンはこの図と比べて水平に反転しているだろう。


    +------+
    |配線図|
    +------+

     この節は、このプロジェクトを動作させるための、FDSハードウェアとパラレルポートコネクタの間に必要 となる電気的な接続を説明する。ここで注意することは、RAMアダプタとディスクドライブユニットは一緒に は使えなく、あるときにはその片方のみがパラレルポートと物理的に配線をつなげるということで ある。

    電源信号の配線方法
    ------------------
     パラレルポートのピン番号18~25はグランド(接地)である。コンピュータのグランド(これらのピン経 由で、あるいは他の方法で)とFDSピン番号4の間を接続することが絶対に必要である。グランドのような電 源信号を伝えるためには、1本以上の配線を使うのが、絶対に必要ではないかもしれない。しかし弱電信号の線 を使う場合には数本を独占的な電源信号用として専念させることを推奨する。これは特にリボンケーブルを使う ときには重要である。例えば、パラレルポートのグラントピン8本全てを使い、リボンケーブルの相互に排他的 な線を割り当てるべきだろう。また、線に信号を割り当てるときには、リボンケーブル内で電源信号と弱電信号 との間を交互に並ばせるよう試みるべきである(すなわち、リボンケーブルの偶数番目の線を電源に、奇数番目 の線を弱電に)。

    弱電信号の配線図
    ----------------
     下の図は、RAMアダプタとディスクドライブユニットの線の間の一般的な12のピン配列の全て(これらは "FDS"フィールド)と、パラレルポートにおける最終の電気的な行き先("RAM"や"DDU"フィール ド)を記載している。"RAM"フィールドに記載されたピン配列は、RAMアダプタをパラレルポートコネク タに接続するときのみ使われ、"DDU"も同様にディスクドライブユニットを接続するときのみ 使われる。

     「信号名/解説」フィールドの前に付いているものは"(R)"か"(D)"(これらは信号の源を示し、(R)がRAM アダプタ、(D)がディスクドライブ)であり、前に"-"が付いているものは(省略時である、H(1)が動作中の信号状態なものとは対照的に)L(0)が動作中の 信号状態であることを示す。このフィールドで提供される情報は参考のためでしかないことに注意。そうでなけ れば無視することができる。

     空白のままになっているフィールドは意図的なもので、「当てはまらない」状態(言い換えると、無視できる )を示す。

    RAM DDU FDS 信号名/解説
    --- --- --- -----------------------
    12 14 1 (R) -write
    * 2 (R) VCC (+5VDC)
    13 1 3 (R) -scan media
    15$ 4 (R) VEE (ground)
    10 2 5 (R) data
    16 11 6 (D) motor on/battery good
    14 12 7 (D) -writeable media
    8 (D) motor power
    2 10 9 (D) data
    1 13 A (D) -media set
    17 15 B (D) -ready
    11 17 C (R) -stop motor

    $:このピンはパラレルポートの入力である。FDSのピン#4をここに接続することは、(上で述べたように )FDSハードウェアとPCの間に必要なグランド接続状態を満たさない。それゆえ、この接続は「電源信号の 配線方法」で述べたものに加えてのものとなる。入力ピンの役割についての詳細は、「ソフトウェアの利用」節 の第2段落を参照。

    *:ディスクドライブのこのピンは電源入力である。(グランドに対して)+5ボルトの直流をこの入力に提供 する必要がある。この電圧は、計算機の中から赤/黒/黄のケーブルを介して利用できる。赤い線が直流+5V(FDSのピン#2に接続)を伝えていて、黒い線がグ ランド(FDSのピン#4)である。ディスクドライブを動作させるにはさらに、電池あるいはドライブの直流 入力を介してその独自の電源条件を満たす必要がある。


    +------------------+
    |ソフトウェアの利用|
    +------------------+

     プログラムのコマンドパラメータとして、FWNESフォーマット(16バイトヘッダ)の有効な*.FDS ファイル(ドライブやパスも指定されるだろう)を指定する(これがアップロードしたいデータあるいはダウン ロードしたデータの格納先となる)。何ら問題(*.FDSファイルが無効、メモリ確保失敗など)に出くわさ なければ、テキストベースの画面モードでプログラムが始動する。両方の動作モードで共通して見えるのは、現 在の動作モードを示すテキスト、プログラムのホットキー、それとディスクファイルの転送の進行状況を示すバ ーである。

     このプログラムの始動したときの動作モードは、どちらのFDSハードウェアがパラレルポートコネクタに接 続されているかに依存する(動作モードの名前は、現在接続されているFDSハードウェアと同じである)。し かし厳密には、そこにあるFDSハードウェアを検出あるいは認証する方法がないため、プログラムの始動時に おけるパラレルポートのピン#15の状態がモードを決定する。

     指定された*.FDSファイルに存在するディスクゲームごとに対応するディスクファイル転送バー1つがあ り、それぞれのバーはディスク上に見つかったファイルごとに四角形1つを持つだろう(特定のディスク面にフ ァイルが存在しないのなら、進捗バーは目に見えないだろうが、存在はしている)。明るく表示(強調表示)さ れたバーは、現在選択されているディスク面を示す。キーボードの'1'~'9'(テンキーは除外)によって 、現在のディスク面を任意に選択できる(しかし('1'で始まる)キー一つのみが各面に対して機能する)。 データ転送が始まれば、現在明るくなっている転送バーは強調解除される。そのとき徐々に読み書きされたファ イルがバーの中で強調表示される。アップロード(送信)されたデータは緑の印が付けられ、ダウンロード(取 得)されたデータは赤の印が付けられる。

     プログラムで使われる、他の共通するキーは。プログラムの終了キーである'Esc'と'F4'である。F 4は、メモリに保存されたデータに変更が加えられていた(これはファイル転送進捗バーに赤く示され、このキ ーがそれらの保存のために押される必要がある)場合、もとの*.FDSファイルを更新する。

    エラー
    ------
     ファイルのダウンロードの間に起こったエラーは、使用中のファイル転送進捗バーに印で示される。見えるだ ろうエラーは2種類ある。

     第一はCRCエラーであり、紫の'X'で示される。CRCの一致しないファイルは、データ転送の中断の原 因とはならないだろう。これは、先へ出たCRC不一致ファイルはそれ自身の破損を意味するとは限らないから である。機能するか疑わしいディスクを何度も読むことで、複数の走査に散乱している正確に得られたファイル にょって、ディスクのファイルを全て正確に取得できるかもしれない。これを行う最良の方法は、ディスク面の 数を8くらいにした*.FDSファイルを生成して、単純にそのディスクを8回読み、それぞれの繰り返しにお いて(数字キーを介して)プログラムで使用する仮想ディスクの番号を漸次増やすことである。もちろん最後に は、利用者は自分で有効なデータを再組み立てしなければならないだろう(これにはFDS形式のディスクデー タ構造のレイアウトに関する知識が必要になる、GorohやNoriのFDS文書が利用できる だろう)。

     第二は無効なファイルタイプのエラーである。FDSディスク内のそれぞれのファイルはファイルタイプバイ トを持っていて、当該ファイルのサイズを最終的に決定する。有効な所定のファイルタイプは4種類(1~4) 存在する。それら以外の値は、ダウンロードの処理の即時中止を引き起こす。黄色(ときどき灰色)の部分は、 不成功であるファイルタイプを進捗バー上で示している(全ASCII文字の図が出くわしたファイルタイプを 表示しているのだが、0~9のみが数字で表示される。)。タイプ#4のファイルのサイズを決定するには、直 前のファイルのデータ取得が完全に正確である必要がある。これは、CRCエラーの起こったファイルが存在す るときに、タイプ#4のファイルがダウンロードをなぜ中断させるのかの理由となる。無効なファイルタイプに 出くわした時点で、取得されたディスクデータは常に切り捨てられる。

    RAMアダプタモード
    -----------------

     (吸い出しには関係ないのでひとまず省略)

    ディスクドライブモード
    ----------------------
     プログラムがディスクドライブモードで動作するとき、見えるだろうものは、現在のデータ転送方式("RE AD"(緑)か"REPROGRAM"(赤)のいずれか)のみである。

     READはディスクドライブからのデータのダウンロードを行い、その結果、メモリ上に保存された現在の* .FDSディスクイメージの内容は上書きされる(これはプログラム始動時の既定モードである。)。このモー ドを選択するには、'Alt'キーを押す。含まれるディスク面の数を特製した「空白の」*.FDSディスク イメージを準備するためには、有効な.FDSファイルヘッダ(16バイト)を生成する必要がある。存在して いなければならない唯一のフィールドは、FDS文字列、*.FDSファイルにダウンロードしたいFDSゲー ムイメージの数(これをこのプログラムが変更することはないし、できない)である。プログラムの終了前にも との*.FDSファイルへダウンロードされたディスクイメージを保存するにはF4キーの投下が必要なことに 注意。

     REPROGRAMは、データ(メモリに読み込むよう指定された*.FDSファイル)をディスクドライブ にアップロードし、その結果、ドライブ内の現在のディスク面の内容は上書きされる。このモードを選択するに は、右側の'Shift'キーを押す。このソフトウェアは、書き込みプロテクトされたディスクのプログラム 変更のリクエストを無視するだろう(注:プログラム変更の試みは効果が望み薄かもしれない。「ディスクのプ ログラム変更の問題」を参照)。

     ドライブにディスクが入れられたときにのみ、転送が発生する(プログラムが開始されたときにドライブにデ ィスクが存在するならばそのときにも起こる)。一度の走査がいったん行われると、ディスクドライブは停止し 、次にディスクが(再び)入れられるまで活動しなくなる。'Space'バーの投下によってこれが覆され、 現在選択されている転送モードでのデータ転送を引き起こす。もし、転送が起こると思われるときにディスクド ライブユニットの赤ライトが点灯しないならば、ディスクドライブの電池が切れていることを意味する。この状 況のとき、プログラムは現在使用されているファイル転送バーを強調解除するだろう。


    EOF


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •