VG93 info [2:2]

ZXNet echo conference «zx.spectrum»

From Pavel Fedin To All 15 December 1997


The "read address" command reads 6 bytes of the first available sector identifier, including the checksum. If the checksum does not
match, then the “checksum error” flag is set and reading
continues. When this command is executed, a byte from the track register is placed in
the sector register.
At the end, the INTRQ signal is generated as usual and the "busy" bit in the status register
is reset.
The "read track" command reads all information from the track, including service information.
In this case, a read strobe is not issued and checksums are not checked.
The "write track" command is intended for formatting disks. All
information, including spaces and index and data fields with all labels.
All bytes are written except #F5 - #FE, which
are interpreted as control address labels. Thus
when formatted, these bytes cannot be written. You can see the list of these
bytes in table:
╔═════════І═════════════════
║ │ Purpose. ║ ║ Byte
├──────────────────────── ──┬─────────────────────────Є ║ │ In
FM mode. │ In MFM mode. ║
╟─────────┼────────────────── ────────┼─────────────────────────Є ║ #F5│ e
is allowed. │Record#A1 tags in MFM. ║ ║ │
│The checksum
is calculated.║ ║ #F6│ is not allowed. │Write label #C2 to
MFM. ║ ║ #F7│The calculated checksum is recorded. ║ ║#F8 -
#FB│Record #F8 - #FB with CLK=#C7│Record #F8 - #FB in MFM. ║ ║ #FC│Write #FC
with CLK=#D7 │Write #FC to MFM. ║ ║ │(index label before
the first index array). ║ ║ #FD│Write #FD with CLK=#FF. │Record #FD
in MFM. ║ ║ #FE│Write #FE with CLK=#C7. You- │Record #FE in MFM. ║
║ │checksum-│ ║ ║ │ma
(index mark at the beginning of the index array) is calculated. ║ ║ #FF│Write #FF with
CLK=#FF. │Write #FF to MFM. ║
╚═════════╧════════════════════
The "force interrupt" command is specified to terminate any command being executed. Unlike other commands, it can be issued at
any point in time. The interrupt condition depends on
the least significant bits of the instruction. If they are 0, then the command is aborted
and no INTRQ is issued. When I0=1, the interrupt is executed after the CPRDY signal transitions from 0 to 1; when I1=1 - from 1 to 0. When I2= =1 - upon
arrival of the index pulse. When I3=1 there is an immediatecommand interruption. After these conditions are met, the INTRQ signal is issued.

Status register 1818ВГ-93.

After execution, the status register will contain flags
showing the result of the command: ╔═══════════════І═══════════════╗
║ │Discharge register║
║ Command ├─┬─┬─┬─┬─┬─┬─┬─Є
║ │7│6│5│4│3│2│1│0║
╟─── ────────────┼─┼─┼─┼─┼─┼─┼─ ┼─Є
║Auxiliary│R│P│H│F│C│T│I│Q║
║Reading addresses │R│0│0│N│C│W│D│Q║
║Reading a sector │R│0│A│N│C│W│D│Q║
║Reading a track │R│0│0│0│0│W│D│Q║
║Sector recording │R│P│E│N│C│W│D│Q║
║Track recording │R│P│E│0│0│W│D│Q║
╚═══════════ ════╧═╧═╧═╧═╧═╧═╧═╧═ў
Values flags:
R - drive readiness (1 - not ready).
P - write protection.
H - head loading.
E - write error.
A - address mark type.
F - search error.
N - array not found.
C - error in checksum.
T - head on track 0 (TR00 signal from the drive). W - data loss.
I - index pulse.
D - data request.
Q - busy (command in progress).

Port 255.

The system register is used to select drives and perform other
auxiliary actions. Its structure:

7 6 5 4 3 2 1 0
│ │ │ │ └─┴─ drive number (0 - 3).
│ │ │ └─────Reset VG-93, if 0.
│ │ └───────Head loading.
│ └─────────Disk side (0 -lower).
└─────────────Recording method (0 - FM, 1 - MFM).

When inputting from this port, the signals are read:

bit 7 - INTRQ;
bit 6 - DRQ.

So far, with a pack of vichezes, Pavel Fedin.