summaryrefslogtreecommitdiffstatshomepage
path: root/docs/source/techspecs
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2016-11-30 07:04:04 +1100
committer Vas Crabb <vas@vastheman.com>2016-11-30 07:04:04 +1100
commit66f1cb5f3a3b229d8192e1a0fd9db867e3f21d5c (patch)
tree331243dd60253538c4bf22f8bbed5680305c988d /docs/source/techspecs
parente2c6632bc43c19dedb393444cc7cc2979139cedd (diff)
srcclean again (nw)
Diffstat (limited to 'docs/source/techspecs')
-rw-r--r--docs/source/techspecs/floppy.rst12
-rw-r--r--docs/source/techspecs/index.rst2
-rw-r--r--docs/source/techspecs/nscsi.rst8
3 files changed, 11 insertions, 11 deletions
diff --git a/docs/source/techspecs/floppy.rst b/docs/source/techspecs/floppy.rst
index af4b13dc367..2bb91c66ca0 100644
--- a/docs/source/techspecs/floppy.rst
+++ b/docs/source/techspecs/floppy.rst
@@ -115,7 +115,7 @@ Once the cell data stream is extracted decoding depends on the encoding. In the
2.3.2. Sector-level organization
''''''''''''''''''''''''''''''''
-
+
Floppies have been designed for read/write random access to reasonably sized blocks of data. Track selection allows for a first level of random access and sizing, but the ~6K of a double density track would be too big a block to handle. 256/512 bytes are considered a more appropriate value. To that end data on a track is organized as a series of (sector header, sector data) pairs where the sector header indicates important information like the sector number and size, and the sector data contains the data. Sectors have to be broken in two parts because while reading is easy, read the header then read the data if you want it, writing requires reading the header to find the correct place then once that is done switching on the writing head for the data. Starting writing is not instantaneous and will not be perfectly phase-aligned with the read header, so space for synchronization is required between header and data.
In addition somewhere in the sector header and in the sector data are pretty much always added some kind of checksum allowing to know whether the data was damaged or not.
@@ -154,7 +154,7 @@ Then for each sector:
The track is finished with a stream of '1' cells.
-The 125KHz pulse trains are used to lock the PLL to the signal correctly. The specific 16-cells streams allow to distinguish between clock and data bits by providing a pattern that is not supposed to happen in normal FM-encoded data. In the sector header track numbers start at 0, heads are 0/1 depending on the size, sector numbers usually start at 1 and size code is 0 for 128 bytes, 1 for 256, 2 for 512, etc.
+The 125KHz pulse trains are used to lock the PLL to the signal correctly. The specific 16-cells streams allow to distinguish between clock and data bits by providing a pattern that is not supposed to happen in normal FM-encoded data. In the sector header track numbers start at 0, heads are 0/1 depending on the size, sector numbers usually start at 1 and size code is 0 for 128 bytes, 1 for 256, 2 for 512, etc.
The CRC is a cyclic redundancy check of the data bits starting with the mark just after the pulse train using polynom 0x11021.
@@ -209,7 +209,7 @@ Similarly two write splices are created when a sector is written at the start an
3. The new implementation
-------------------------
-
+
3.1. Floppy disk representation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -234,7 +234,7 @@ The last cell implicit end position is of course 200,000,000.
Unformatted tracks are encoded as zero-size.
-The "track splice" information indicates where to start writing if you try to rewrite a physical disk with the data. Some preservation formats encode that information, it is guessed for others. The write track function of fdcs should set it. The representation is the angular position relative to the index.
+The "track splice" information indicates where to start writing if you try to rewrite a physical disk with the data. Some preservation formats encode that information, it is guessed for others. The write track function of fdcs should set it. The representation is the angular position relative to the index.
3.2. Converting to and from the internal representation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -281,7 +281,7 @@ A number of methods are provided to simplify writing the converter classes.
| **UINT8 \*cell stream,**
| **int cell count,**
| **floppy image)**
-|
+|
Takes a stream of cell types (0/1), MSB-first, converts it to the internal format and stores it at the given track and head in the given image.
@@ -344,7 +344,7 @@ A number of methods are provided to simplify writing the converter classes.
| **sector size,**
| **sector count,**
| **UINT8 \*sector data)**
-|
+|
Extract what you'd get by reading in order 'sector size'-sized sectors from number 1 to sector count and put the result in sector data.
diff --git a/docs/source/techspecs/index.rst b/docs/source/techspecs/index.rst
index 20b17b2378e..5b73caffd0c 100644
--- a/docs/source/techspecs/index.rst
+++ b/docs/source/techspecs/index.rst
@@ -11,4 +11,4 @@ This section covers technical specifications useful to programmers working on MA
floppy
nscsi
luaengine
- m6502 \ No newline at end of file
+ m6502
diff --git a/docs/source/techspecs/nscsi.rst b/docs/source/techspecs/nscsi.rst
index bc907d881c3..ef5c7aacbe6 100644
--- a/docs/source/techspecs/nscsi.rst
+++ b/docs/source/techspecs/nscsi.rst
@@ -24,19 +24,19 @@ The nscsi subsystem leverages the slot interfaces and the device naming to allow
First you need to create a list of acceptable devices to plug on the bus. This usually comprises of **cdrom**, **harddisk** and the controller chip. For instance:
-|
+|
| static SLOT_INTERFACE_START( next_scsi_devices )
| SLOT_INTERFACE("cdrom", NSCSI_CDROM)
| SLOT_INTERFACE("harddisk", NSCSI_HARDDISK)
| SLOT_INTERFACE_INTERNAL("ncr5390", NCR5390)
| SLOT_INTERFACE_END
-|
+|
The **_INTERNAL** interface indicates a device that is not user-selectable, which is useful for the controller.
Then in the machine config (or in a fragment config) you need to first add the bus, and then the (potential) devices as sub-devices of the bus with the SCSI ID as the name. For instance you can use:
-|
+|
| MCFG_NSCSI_BUS_ADD("scsibus")
| MCFG_NSCSI_ADD("scsibus:0", next_scsi_devices, "cdrom", 0, 0, 0, false)
| MCFG_NSCSI_ADD("scsibus:1", next_scsi_devices, "harddisk", 0, 0, 0, false)
@@ -46,7 +46,7 @@ Then in the machine config (or in a fragment config) you need to first add the b
| MCFG_NSCSI_ADD("scsibus:5", next_scsi_devices, 0, 0, 0, 0, false)
| MCFG_NSCSI_ADD("scsibus:6", next_scsi_devices, 0, 0, 0, 0, false)
| MCFG_NSCSI_ADD("scsibus:7", next_scsi_devices, "ncr5390", 0, &next_ncr5390_interface, 10000000, true)
-|
+|
That configuration puts as default a CD-ROM reader on SCSI ID 0 and a hard drive on SCSI ID 1, and forces the controller on ID 7. The
parameters of add are: