|
Spectrofon #21
04 декабря 1996 |
|
Designer - a monumental paper on the universal controller peripherals SMUC.

B0
(C) 1996 A. Larchenko
SMUC
UNIVERSAL CONTROLLER PERIPHERALS
October 26, 1996 on sale of a universal controller card for
PC peripherals SMUC Scorpion ZS 256. Included with the
controller board comes complete description of how hardware
connection SMUC, and software software, which is implemented in
the framework ProfPZU version 3.98 and above. This article
partially similar description, is intended primarily for owners
of the Scorpions, who are already able to work with and SMUC
hard drive. The release ProfPZU version 4.0, which will be used
SMUC any scorpion-compatible computer, is expected shortly.
The article describes the program
Support the controller work with the operating system TR-DOS.
In applications that are intended for programmers who are
describe the challenges of the Shadow Monitor for the hard disk
drive ("HDD") and nonvolatile clock, how to work with
these challenges - the text of the pilot
driver for the system IsDOS. And also an example program access
cards IBM PC XT, be connected to SMUC.
1. Work Hard Disk
Perhaps the most important and anticipated
device on the universal controller peripherals SMUC is IDE
hard disk interface. This interface
allows you to simultaneously connect up to two
devices, and to date this
popular interface is not supplied
only hard drives, but some other devices such as disk drives, CD
ROM. Software Shadow Mo
nitora calculated so far only on the maintenance of one hard
drive, but the hardware SMUC controller provides full interface
IDE, whose implementation naturally be implemented in the
future.
This section describes work with tough
drive connected to the controller SMUC.
Actually, the disk is not much
more complicated than a floppy disk and drive, and
Perhaps the main difference is "not
replacement of the "floppy" and an order of magnitude
greater than its volume.
Begin work to naturally
to connect the hard disk (insert
floppy disk). Then you need to define the parameters of the
device (remember that when working with TR-DOS diskette first
tries to determine its size - the number of tracks, and sides).
However, in contrast to the drive, this procedure for multiple
hard drives difficult, but should only be done
once. At this stage, the connection ends at
ourselves to and need to partition your hard disk - that is to
create information structure, share a large amount of disk
acceptable for the work part. I must say the concept of
formatting for hard IDE disks missing, these
output devices formatted with
factory and more in his life ever format does not change. And,
finally, actually work with the data on your hard drive.
The order of presentation of the material in this section is
designed so that you maximize quickly and at the same time,
correctly and consistently including drives to work.
1.1. Installing a hard disk
Installing a hard disk interface IDE, consists of three main
phases. Hard-wired connection, the software identification and
testing of the disk.
1.1.1. Hardware Connection
Hardware connection devices, perhaps the simplest and at the
same time the most responsible action. When errors possible
failure of not only the hard drive and controller, and a
computer. So, be very careful.
SMUC controller is inserted into the connector
motherboard of your computer so that the details of the
controller looked "at the details the board. The controller
connects to the hard drive, a special 40-wire ribbon cable, so
that would be a contact coincided on the controller and hard
drive (on cable extreme wire, corresponding to a contact,
usually marked). Power is supplied to the hard drive via a
special connector, similar to the same on the drive.
After all the connections can be included
food, on the computer screen immediately
should see the familiar inscription "fast
test of computer ", and then several reports found (or not
found) device controller SMUC. After filing power drives of
different companies and models behave differently. But the
characteristic is small (less than a second) Pause, then the
sound of aircraft taking off in miniature (in modern models, he
almost inaudible), this promotion engine itself
disks ("pancakes"). Then, the "recalibration" and internal
testing of the mechanism of magnetic heads, reflected in
lightweight (and the old models - quite loudly) "pohryukivanii.
The whole operation on self-test occurs at each
power (and, incidentally, no matter
from connecting to the controller), and lasts from
5-10 to 30 seconds.
If after switching voltage hard "silent", then either he
lacks the power source (it can be verified by measuring the
voltage tester +5 and +12 B) or wrong (vice versa) is connected
cable connecting the hard drive and controller. Insufficient
power source supply may cause an unstable disk (this is
especially true for older models that may consume in a pulse up
to several amperes to 12 volts, compared to new, modern hard
drives can consume less than floppy disks).
Now look at the screen. If, despite "attempts to" hard disk
on the screen just appears "Hard disk not found ", then again,
most likely" upside down "cable or malnutrition, for hard disk
interface (interface part of any hard disk, usually works even
when the identification error self-test and communicate them to
the controller). Perhaps, but complete loss of the disc.
1.1.2. Software Connection
If the interface part is in order,
during the process of self-test your hard drive "hangs", waiting
"Response" from the device, and after receiving
This response attempts to define the parameters of the disc. To
obtain these parameters is a special procedure, which also
takes some time. Total time when you first start your hard
disc should not exceed a few minutes. If the time longer, then
do not drive in order.
Successfully identified the hard drive issue
on the computer screen label of the form "IDE / AT
42 MB Hard disk found ", where instead of
42 will be a definite program
the amount of your hard drive. If this size is not
corresponds to the actual volume of the disc, then this disc is
not properly inform themselves about the program and requires
manual settings, as below. Yes
more displays three lines of information
producer firms. The first line, as
typically contains a meaningful name of firm
or model, two other serial number and
date models, but each manufacturer is free to enter what he
wants. Monitor not include any delay for examining these
inscriptions, if you are still interested, press (and hold) the
"Reset", but After necessarily produce a "cold"
start your computer (reset with-held on
keyboard by pressing "Left").
If the internal tests and Auto identification hard drive
were successful, then the computer goes to standard menu
running BASIC. Further action on the connection hard drive
should be carried out in the Shadow Monitor (remember that the
entrance to the TM by briefly pressing on
button Magic).
If you have an old and slow disk, then
he may not have time to do all the internal tests to verify its
start time monitor program, in this case on a computer screen
instead of the above posts there any error message (most likely
"Hard disk data not ready "or" Busy not found "). In
this case, try not turning off the power to make a second
"cold" start computer. If it does not help (still receive error
messages), then check your hardware connection
SMUC controller and hard drive. It is possible that such a copy
of the disc requires manual setting of parameters, or it can
not work at all.
1.1.2.1. Automatic Identification
Thus, we have the menu of the Shadow Service Monitor. Choose
menu item "Hard disk utility ", as it" Set Up ".
As the name implies automatic
identification of the hard drive is
automatically. Actually, the first automatic identification has
already occurred (see previous section). Or at least,
trying to happen. The results of the process
displayed in the menu items Cylinders,
Head and Sector, which show the "geometric dimensions of the"
hard drive, respectively, the number of cylinders, heads and
sectors. These parameters should ideally conform to the
parameters of the passport hard drive. You can once again on
Just in case, follow the procedure Autoconfiguration hard drive
by selecting item "Auto detection hard disk". "Geometric" sizes
should remain stable and unchanged.
A small note - some types of
Winchester has a number of cylinders
more than 1023, and the software is not yet able to handle such
values. Therefore, use the handles Noah parameter settings, and
set number of cylinders in 1023.
So, if all goes well, the data found agree with those
expectations, then can allow identification at the start
(It is enabled by default, the menu item
"On start" in a state of ON), and immediately move to test the
hard drive. In Otherwise, go to the manual identification of
the disc.
1.1.2.2. Manual tuning "hard drive"
Actually you should enter in paragraphs
menu "Hard disk utility / Set Up" the real
"Geometrical" size of your hard
disc. This is the number of cylinders, heads, and
sectors. These options sometimes lead to
case of the disks themselves, if they do not, contact the
seller to shove it to you a miracle. "
Is that the parameters read from the
hard disk is not true, although by all indications Auto
identification was (quickly and without errors).
So, you entered the real parameters of the hard disk. Now
you need to make sure that the launching would be the monitor
has not undertaken Auto identification with the "cold" reset
the computer. To do this, move the item "on start" to OFF.
1.1.2.3. Saving settings
Any changes to settings in the menu of the Shadow Service
Monitor only until the moment power is turned off, or "cold"
Reset the computer. After that, everything is restored to the
state "by default". This fully applies to the parameters
hard drive and as a trigger "on
start ". However, not all so sad. On
controller installed SMUC nonvolatile memory capable of storing
life Nenno important variables of the Monitor. However,
write them into memory, you must manually.
Exit to the main menu, Service Monitor
("Main menu"), then select the submenu "Set
Up ", and in it the submenu" Monitor ". Now click" Save CMOS ".
1.1.3. Testing of the hard disk
After identifying the hard drive must be
check both the disk will work with the established "geometric"
size. For this purpose, the submenu Set Up menu, Hard disk
utility, you can choose two tests, the first
designed to test the translation scheme
sectors within the hard drive and identify
unreadable sectors. In addition, the test allows you to
visually estimate the speed of the hard disk, because uses real
semiconductor driver, "wired" into the ROM of the Shadow
Monitor. The second test is more complicated. It allows
check the data transfer mechanism, ie,
the circuit IDE "in the enhanced mode.
Let us work tests. The first test
simple sequential reads all sectors of the sector from the hard
drive. Checking content sector is impossible, and
estimation error test is satisfied by messages issued by a hard
disk. On the computer screen displayed the current counter
checked the cylinder and "running a stick, some animating
picture abort the test can be clicking on BREAK. Actually, if
"all good", then this case and limited - counter to doschityvaet
maximum cylinder on the screen is given
coordinate of the last read sector
and the test is completed. You can move to
second test.
In the case of fixing the bugs on screen
I get a message about it, which presents the coordinate of the
bad sector (number of cylinders, heads and sectors) and type
errors. Here we should pay attention to "Frequency" errors. If
they are few and they happen randomly, it is likely, given
LIMITED copy of the hard disk is defective, and Further work
with him is not recommended. If an error is followed by
"groups", with alternating certain numbers, such as unreadable
sector, starting with some a certain number on all heads or
on all cylinders, an error occurs, starting with a specific
head, then it is likely that the hard drive are incorrect
"geometrical" dimensions. It happens that on the disk "crashes"
some one head, and all sectors, read it, are "beaten". In these
cases you must return to the manual setting of parameters and
try to "cut off" the defective, reducing a certain value. After
Why spend a re-test.
The second test is more informative, but also more
dangerous. Its algorithm is as follows - from the Gaza
stityvaetsya stationed there, the information sector is
recorded and then pseudo-code, after which new information is
read and verified satisfies the recorded, and of the sector
returns to its former value. Such an operation made for all
sectors on the hard disk. As can be seen, the test is not only
relies on diagnostic error output by the drive, but also
objectively examines the quality of channel read / write. Why
test dangerous - obviously. If there are write errors, then the
sector can not come back, you had before the operation value to
the same unexpected interruption of test (Power off, manual or
random resetting the computer) can lead to similar effect.
Therefore, first, a second test after successful completion of
the first, and, secondly, interrupt the passage of the test
only on command from the keyboard BREAK.
Indication, which is issued on the screen similar to the
first test. Just similar action in case of error - try
"Close" the bad sectors or heads manually specifying the
appropriate parameters.
A few comments on the management of error messages, you can
pause the output text (and test) by pressing press SPACE, in
this state cancellation further passing the test - a key
EDIT / C, well and continues to test the ENTER key.
At the end stage of testing, connect the hard drive, now you
need to create a logical structure for data storage.
1.2. Creating information sections
As for the floppy disk, hard disk space
need to create something like a directory
information from which the operating system will find it
necessary files. However, the structure of such a catalog is
much more complicated than for a floppy disk. Firstly,
comparable volumes, stored on a floppy disk and hard disk
Secondly, I would like to be able to
run multiple operating systems and even different "classes" of
computers within a single disk (good volume disk is completely
allows).
Why use multiple systems? This
question should not be considered here, but
briefly, I note that none of the existing on ZX Spectrum disk
systems are not fully covered by all the interests of all
users. TR DOS de facto become the "general" system, including
storage game programs, Is DOS - a system for record keeping,
Micro DOS - the best tool for programming, etc. And none of the
They do not have to date, say, mechanism for user-level use of
additional memory. Except it is quite possible to combine the
use of the same hard disk ZX Spectrum and IBM PC. To combine
All of these requirements was developed format
storage, which is sufficient
Shadow has been supported by Monitor.
1.2.1. Global Partition Table (GPT)
First, you need to separate
access the hard drive from the ZX
Spectrum and, if necessary, other OS
computers. To this end, the disk is created,
so-called master boot record (Master Boot Record, MBR), and in
it primary partition table (Global Partition
Table, GPT). The idea is this: one section - one system.
In the submenu, select Hard disk utility
Partition manager item and enter the partition editor. Note the
name of a submenu, it must be "Global partition manager ", but
if you're in "Local partition manager" means
that the hard disk has been used
on the ZX Spectrum, and the MBR with GPT created.
Look at the current main table
section, select Partition
information. This will display a table
which is displayed on the right partition type, and
left - the volume of the partition in megabytes. Refuse to
watch the table you can use the button EDIT / C. Type Unused
means "empty" space (the free account in the table do not
correspond to any type). If your drive is not new, it is likely
the entire volume will be divided into several (Or one) of
sections of MS DOS or another. Use paragraph Delete partition
you to remove unwanted sections (the cursor on the screen to a
busy recording and press ENTER).
Now you can create a special "Spectrum" section. Select
Create partition ..., appeared in a familiar table, select the
line Unused, then press ENTER. Edit if you want the number to
the right side of the line. As already mentioned, this number
specifies the amount of new partition. If work with other
computers is not expected to leave the number unchanged.
Again, press the ENTER. Table
will create a section called MFS, and the specified volume.
Item Create partition ... can only create a partition MFS, for
create other types of sections should be
use appropriate programs
other operating systems.
If you intend to work with multiple computers, you can
"break" the hard drive standard means, for example, on the IBM
PC, for example, the program fdisk, leaving the partition MFS
desired location.
A few comments. Spekrumovsky section MFS can be only one.
Several MFS partitions allowed for future extensions of the
system, but the current work is only the first of them. All in
all the main partition table can contain up to four entries.
Note that all steps for editing the partition table is a
parameter myati computer, you can delete and create partitions
as you like, but in order that would have got information on a
disk, select the Write to disk. And only after the confirmation
key (Y) primary partition table is written.
Item Restore from disk, to copy in the computer memory of the
current table from the disk. If you change anything, while in
sub-editor, then when you try to exit the menu you will be
asked or write the changes (again, the key is Y), or abandon
the changes and leave everything as it was (any other key).
Serious about changing the partition table, since format change
Table violates existing relationships and can lead to loss of
previously contained hard disk media.
Notice that I did not say anything about the maximum size
Section MFS. Indeed, its size
virtually unrestricted. Although those
two-level monitor can have access to the volume
about 1800 mb, the volume of the partition can be
more, but the "extra" part just disappears
in vain.
Once the section of MFS was founded in the main
partition table in sub-Global
partition table "open" paragraph Local
partition table. By selecting this option you get into a
similar sub-editor of the local sections or subsections.
1.2.2. Local table (sub) partition
Created in the main table, "Spectrum" section of MFS,
should, in turn, be divided into one (but, rather, multiple)
subkeys. Each subsection able to "carry" its operating system
in the ZX Spectrum. In the current version Shadow Monitor
provides the following OS types: TR-DOS, Micro DOS, IsDOS.
Future versions may add other systems, if need be.
I note that only the TR-DOS until completely
supported by integrated software
Enablement Shadow Service Monitor. For
other OS should be the appropriate drivers in these OS.
Immediately Noting the limited section of MFS -
it can contain up to 63 different sub-sections, up to 32 MB
each.
In addition to topics such as different names, you can
create several sub- the same type but with different names. The
name can not exceed six characters.
1.2.2.1. Collection of floppies (Subsections
TR-DOS)
The most important (and difficult) feature built-in software
is an attempt to emulate the hard drive disk-TR-DOS. Due to
different circumstances and despite the glaring errors and
shortcomings it is this system has become
the most common for the Spectrum-compatible computers in our
country. Therefore, it is the OS from the beginning given the
most attention.
When comparing the amount of disk, which is oriented TR-DOS,
and the volume of sub-section on the hard drive immediately
catches eyes disparity proprietary information in the directory
disk. Directory was not designed for large volumes. Attempt
somehow change the system itself, "fit"
its parameters to the hard drive will inevitably
would lead to incompatibility between the new and old versions,
and finally - just to the new operating system, and with
initially poor performance. Not trying to revive the TR-DOS,
the Shadow Monitor, at the same time, makes it possible to use
the hard disk to work with the old system.
The idea is very simple - the hard drive
is a collection of psevdodisket,
format which corresponds exactly to
real floppy disks. Special funds
allow you to "embed" such a floppy disk in the "normal" drives,
and TR-DOS did not even realize that working with the emulator.
Directly devoted to the work is integral part of this
description, but here I will tell you how create a collection
of ramdisk (sub TR-DOS).
First you need to create a sub-
TR-DOS. Select Create partition ...
(Remember, this should be done in the submenu
Local partition manager). Move the cursor to the line that says
Unused (at the beginning a single line), press
ENTER. The line appears TR-DOS -
again, press ENTER. Now it is necessary
enter the name of the subdivision. This name will be in
subsequently used to access
stored in subsection ramdisk. It
can contain up to 6 characters. Fix a name to press Enter.
Finally must choose the amount of sub-section - introduction
dite representing the number of ramdisk contained in this
section. The minimum number of drives - one, the maximum - 51
(of course, if you have enough free places). By default the
maximum possible in this subsection number. Fix the number of
ramdisk - press the ENTER. In contrast to the global partition
table, to keep in mind all the changes associated with Local
table troublesome, so the program immediately offered to make
changes the hard disk. If the
answer key (Y) will be made marking the appropriate subsection,
which may take some time. At the end of Markup control returns
to the editor local subdivisions.
You can create multiple collections ramdisk, it is only
important that the names would they have were different.
Bear in mind one thing. Collection ramdisk can
be removed as well as the section in the global table (just
like any other subsection, paragraph Delete partition ...), but
only in its entirety. Current software does not provide a
decrease / increase the size of sub-section.
Now being developed program to support hard disk of some
functions Shadow Monitor will require the hard disk of a
certain amount of memory (Planned to 3-5 MB). Likely
sub-type to use should be
be Micro DOS. Therefore, it is recommended to leave a few
megabytes of vacant.
1.2.2.2. The topics in operating systems
Creating a sub IsDOS and Micro DOS
does not substantially different from the creation of
sub-TR-DOS. Select Create partition ..., move the cursor to
free sub-section (Unused), then
ENTER. SPACE key to select the desired
type, fix the selection by pressing ENTER.
Then enter the name of the subkey (not more than
six characters), record the name, and finally set the volume of
sub-section, in kilobytes. Volume subsection shall not be less
256KB or exceed 32MB (or more precisely 32767Kb).
As for the sub-TR-DOS, you can create several sub-sections
with one type of OS, but different names.
Created a subsection - it's just selection (reserved) seat
for the selected operating system on your hard drive. For real
the OS driver is required, written in Under this OS. In the ROM
contains all the necessary tools (RST 8 calls) to maintain such
a driver. There is no doubt that Soon the driver will be
written for both systems. Text esperimentalnogo
driver (beta-version) for the system IsDOS
given in Appendix 2.
1.3. Work with a hard disk for TR-DOS
As already mentioned the work of the hard drive within the
TR-DOS does not differ from that of the real diskettes.
1.3.1. Virtual and physical drives
Hardware and operating system support TR-DOS (Beta Disk
Interface) has historically maintained for up to four real
drives. In the system they are designated symbols A, B, C and
D, respectively. Really well connected one, maximum two
drive devices C and D, as it were missing. Originally it was
planned specifically to These are not used to assign symbols
created on your hard drive psevdodiskety. These becomes virtual
drives - for TR-DOS they are, and to Beta Disk
Interface does not. However, it turned out
possible (for consistency) predusmot
Ret such an opportunity for all four
devices.
But the question arose - how to tell the system
that, say, drive B is now
physical (if it is connected to a computer) and not virtual,
and vice versa? To exit from this situation, we introduced the
notion of Communications and floppy disk image on your hard
drive. If the connection is established - the drive is virtual,
and when it receives a choice of physical
drive is not happening. If there is no connection -
physical drive.
This rule has one exception -
this device A. When you work from TR-DOS -
it is never virtual.
1.3.2. Connecting the floppy image
Establishing a connection between the device and
ramdisk is carried out in sub-Hard
disk utility. For each device has
click Mount, followed by the name of the virtual drive.
Selecting this item leads to the appearance on the Today screen
table of local chapters. From this it is necessary to select a
collection ramdisk (the choice is fixed by pressing ENTER).
After that comes Directory collection, move the cursor to the
desired drive and fix a choice.
The name of the selected (connected) ramdisk appear in a row
Mount. The name of the compound, the first is the name of the
collection (sub-TR-DOS), and by the character "\" should be the
name of the disk image.
Now, any appeal from the TR-DOS or
monitor to the appropriate virtual
drive will be "sent" to the hard
disc. You can "format" ramdisk
(I choose "quick" formatting in
Disk Utility menu item Quick format
disk), and copy the virtual disk
files with a real disk.
The current target is automatically stored on your hard disk
and restored when the "cold" start your computer.
1.3.3. Disconnecting from a virtual drive
If you must break the link between
device name TR-DOS and ramdisk on
hard disk, for example, that would return
physical drive B, you must select
click Dismount ... submenu Hard disk
utility. In this case, all items are replaced by the Mount
Dismount. Select corresponding to the required disk, for
example Dismount B. All items Dismount again "turn" in the
Mount, but the selected item disappears name ramdisk.
1.3.4. Features of the monitor and
TR-DOS
So, plugging the hard drive, making for
its structure and sub-collections
linking the ramdisk and floppy drive, thus
create a virtual disk, you can proceed to the normal daily
work. Now let's talk about some of the features this work.
Prepare to be that some small portion of programs previously
more or less worked with the floppy TR-DOS, now will not work.
This applies mainly to the old programs that do not take into
account especially the functioning of the disk system, or, by
its very nature, very closely to "communicate" with the disk
controller. You make the inevitable changes in the codes of
TR-DOS, if possible not touched "bottom"
level of the system and vital functions.
But "there is no perfection in life, and
that, alas, those changes will affect.
For the "softening" of the situation and help "wrong"
program, left a loophole. This device A. If access to this
"drive" is from the monitor (downloading files from the
debugger, disco curves operation in the menu), then no
restrictions. If running TR-DOS, then passing the all-purpose
drive A is always a physical device. Made it deliberately to
ensure that the work of those programs that use non-standard
TR-DOS, or can not work together with
Shadow Monitor. In the future we plan to make this property
konfigurabelnym.
A few words on computer startup. If the menu "Disk Utility"
item "Autostart" is in the ON, the
at any time the computer boots (after the "cold" or "warm"
reset) will occur automatically run the operating system
located on the device specified in paragraph "from drive" the
same submenu. Do not forget to record the current state of the
nonvolatile memory. For a system of TR-DOS, this means that the
program will attempt to "Boot ", if any program on a floppy
disk or psevdodiskete present. Fach cally as it is automatically
Pressing ENTER on the menu 128 BASIC,
and the system passed the command RUN "boot"
for device A, and RUN "x: boot" for the other (where x - drive
letter). Thus, every time you automatically find yourself in a
familiar environment for themselves. Note: not all file shell
("butts") will automatically loaded from the device,
distinct from A. This applies to those of
them who are supposed to, firstly, a fixed allocation of memory
after the start (note the two extra characters in the command
RUN Device B. .. D). A Second, for those who do not check the
name drive its load, such programs
trying to load your files are always
fixed disk drive (A).
1.4. The work of other operating systems
As already mentioned for the OS is different from TR-DOS
requires a special driver, which will provide access to poison
RA OC to the selected hard disk partition. Currently, work on
connecting the two systems Micro DOS and IsDOS. Micro DOS (the
port of CP / M) - full fledged operating system, initially
focused on the hard disk drive is needed above all to improve
the functioning of the Shadow Monitor. The system will be
completely transparent to the user - that is, if you want (or
do not desire "), he did not know that such a system installed
on his computer. The main objective of the project - Support
for a programmer, I remind you that most of the TM was written
programs that use CP / M.
Popular System Is-DOS, in my opinion,
paradoxically, was not originally intended to use the hard
drive. There is no lack of support in view of the disc itself,
but the lack of a core system to boot from devices other than
floppy disks.
This creates certain inconveniences, such as when working with
the controller computer KAY - booting takes place from floppy
disk, then loaded the driver hard drive. Programmers or firms
Iskra Soft will make the appropriate adjustments (or be told
how to avoid these difficulties), or I'll try to think of
something.
2. Menu
To service the hard drive to the main menu of the Shadow
ServisMonitora made submenu Hard disk utility.
2.1. Hard disk utility
In this menu all operations for finding, connecting and
maintaining a hard drive connected to the control of external
devices SMUC. Log in This submenu is only possible if the
testing equipment controller for SMUC
"Cold" start the computer, was found
Interface IDE. Otherwise, the submenu
available, which means that no interface IDE, the controller or
malfunctions in equipment (see "Installing a hard disk).
2.2. Hard disk utility / 0. Previous menu
Return to the previous menu.
2.3. Hard disk utility / A. Mount on A
Create a virtual device - the appointment of ramdisk (disk
image) on the device listed in the menu. From the table appears
to select a collection ramdisk (sub-type TR-DOS), and then you
want the disk image. Selection is control keys cursor or
"mouse". In case of successful communication addressed to
ramdisk (including the name of the collection) will be
indicated in the menu bar. WHO
You can change an existing connection without
prior removal of the current.
2.4. Hard disk utility / A. Dismount on A
Release the device listed in the menu, "breaking" link from
the device ramdisk. A further appeal to the device will lead to
the choice of physical disc.
2.5. Hard disk utility / Z. Dismount ...
Change the value of teams in points
Mount / Dismount the opposite.
2.6. Hard disk utility / P. Partition
manager
Back to the menu - editor tables
sections. If the hard disk failed
to find a special "Spectrum" section
MFS, will be carried out "direct" transition to a sub-editor -
Local
Partition Manager, bypassing the global table. Otherwise, the
editor will be selected by the global tables - Global Partition
Manager.
2.7. Hard disk utility / S. Set Up
Back to the menu - the identification and
Test your hard drive.
2.8. Hard disk utility / P. Partition
manager / 0. Previous menu
Return to the previous menu.
2.9. Hard disk utility / P. Partition
manager / L. Local Partition table
Go to the sub editor of the local
Table subsections.
2.10. Hard disk utility / P. Partition
manager / G. Global partition manager
Go to the menu editor, Global
partition table.
2.11. Hard disk utility / P. Partition
manager / V. Partition Information
Displays the global or local partition table, depending on
the the current menu.
The global table is located on the left
the name of the partition type (MS DOS, OS / 2, MFS and
etc.), and the right - the volume of the partition in
megabytes. In the local table, in addition, shows the name of
sub-section, the amount given in kilobytes. Not occupied area
on the hard disk shows the word Unused. necessary observation:
there is a minimum volume, which can still be employed by the
system and hence is shown in table. For the global table - is 1
MB, for local - 256 KB. Back to the menu - key EDIT / C.
2.12. Hard disk utility / P. Partition
manager / C. Create partition
Create a section or subsection in the global or local table.
In the resulting screen, the current partition table you must
select the free space (line Unused), then edit the field
consistently. Fixing the values in the field - key Enter.
Recreate existing section or subsection is impossible, it
should be previously removed.
For the global table can only be
choice of volume created by "Spectrum" section of the MFS. This
section of the current version of the program can only be one
The default is invited to take them all
free hard disk space.
In the local table, you can create up to 63
subsections with different types of operating
systems. The choice of system type (first field)
by pressing Space, fixation
choice - press Enter. Next, you need
enter a unique name for the subkey that contains no more than 6
of any character except a space. Finally, we must choose volume
subdivision. For a collection of floppy disks amount specified
in the ramdisk, the maximum number that can not be more 51. For
the other subsections of kilobytes.
Incorrect parameters entered in the editor, rejected the
program, while in bottom of the screen error message,
and invited to re-enter incorrect
field. Interrupts the operation of a section
Key EDIT / C.
Real-time creation of sub-
different for different types. For TR-DOS subsections are
prompted to write the changes to the table on the hard drive
for others - this action is delayed until exit from the
submenu, or to push
records (see Partition manager / Write
to disk).
2.13. Hard disk utility / P. Partition
manager / N. Rename partition
Change the name of the subdivision. Chosen
only for the local table. Select
list and edit the desired sub-
name. Real account name change is delayed exit from the
submenu, or to forced entry (see Partition
manager / Write to disk).
2.14. Hard disk utility / P. Partition
manager / D. Delete partition
Delete section or subsection of the global or local tables.
Select a topic is carried out appears in the list. The actual
recording altered table is delayed exit from the submenu, or to
forced entry (see paragraph Partition manager / Write to disk).
The current version of the software is deleted only from the
corresponding entry in the table, no changes in the body
section is not performed. Therefore, if in the future when you
create a partition pointers in the table would be similar to
the signs to the remote interface, then will "recover"
information. K this feature should be approached very
caution, as in the case of any changes on the disk between the
time of removal and "recovery" partition, it is possible the
partial or total destruction of information in this section.
2.15. Hard disk utility / P. Partition
manager / A. Delete all part
Complete cleaning of global or local sub-tables. The real
record "clean" the table is delayed exit from the submenu, or
forced to write (see Partition manager / Write to disk).
Cleaning the table does not lead to physical changes in the
content sections.
2.16. Hard disk utility / P. Partition
manager / R. Restore from disk
Loading into memory the current table
hard drive. All changes made to a table in memory (and not
recorded on the disc) disappears. Note that
creation of sub-TR-DOS requires immediate modification of the
table on the hard disk, and thus restore the previous state is
meaningless.
2.17. Hard disk utility / P. Partition
manager / W. Write to disk
Write table to disk. Usually, partition table editor makes
changes to the copy of the table, which is in the computer
memory. This choice leads to a recording of this copy on the
hard disk.
2.18. Hard disk utility / S. Set Up / A.
Auto detection hard disk
Setting up the disk (extract from the hard drive of his
"geometric" parameters). Each disc equipped with interface IDE,
there is a command whose execution makes the device "tell"
about yourself. The result is, in particular, the size of the
hard disk - the number of cylinders, heads and sectors. In
fact, the parameters obtained may not have nothing to do with
real "geometry" inside the disc, but the exchange on the
interface occurs with the use of these particular
parameters.
Read from the hard disk parameters
immediately appears in the menu
Cylinders, Head and Sector.
2.19. Hard disk utility / S. Set Up / O. on
start
Disable (or enable) the fulfillment of
"Home" settings on the hard drive. When
ON position, automatic tuning
happens every time from cold start the computer. If, however, a
team of detection, the drive is performed correctly, then the
dimensions must be set manually, record them in volatile
memory, and disable this menu item (OFF).
2.20. Hard disk utility / S. Set Up / C.
Cylinders
Set the number of cylinders of your hard
disc. The line displays the current value.
This and the following two settings define the "geometric"
size hard disc.
2.21. Hard disk utility / S. Set Up / H. Head
Set the number of heads of the hard disk. ATA IDE interface
specification is allowed a maximum of 16 heads. In line the
current value.
2.22. Hard disk utility / S. Set Up / S.
Sector
Set the number of sectors on the disk surface. The line
displays the current value.
2.23. Hard disk utility / S. Set Up/1.Test
Perform testing of all sectors
hard disk, the method of successive
reading. The screen displays the current count of cylinders in
the event of an error is issued complete address (including
cylinder number and head) bad sector. The test is relatively
safe, there are no records to disk not performed. To stop the
test
need to press on the keyboard BREAK, and then
- EDIT / C to return to the menu. For more information, see
"Testing your hard drive."
2.24. Hard disk utility / S. Set Up/2.Test
Perform testing of all sectors
hard disk, method of successive
rewriting. The screen displays the current count of cylinders
in case of error given the full address (including room and
cylinder heads) bad sector. Performing the test potentially
dangerous, as in Runtime sector may be
test data, whereas the actual data stored in computer memory.
Abort the test is only possible with the keyboard, pressing the
BREAK, and then on EDIT / C for return to the menu. For more
information, see "Testing your hard drive."
2.25. Hard disk utility / S. Set Up / D.
Delete all part
Removing the global (main) table
Partition (GPT). It requires confirmation. If yes, from the
hard drive erased the first sector zero zero cylinder head,
which store the partition table. In addition to GPT
destroyed the primary boot record
(MBR, BootRecord), the operating systems of other computers (eg
IBM PC).
The operation is designed to re-plug hard drives, in case of
erroneous entries in the GPT, remaining after partitioning with
other "geometric" parameters. And if you do not want to use the
hard drive on other types of computers.
Removing GPT leads to the fact that the monitor will no
longer finds the sub-MFS,
this leads to an automatic stop
All virtual disks. Selecting
"Partition manager" will give a global menu
partition table.
Despite the fact that so little is removed,
access to all the available hard disk space
data becomes impossible after this operation! Although the
actual data are not erased. Therefore, re-partitioning the disk
with the same parameters (partition, with the same
size as before to remove GPT)
would lead to "restore" old information. To actually delete the
subkeys necessarily use the points
"Delete all part" in global and
in the local partition table.
3. Terms
ATA (AT Attachment Standart)
Standard manufacturers to Connected
of peripherals. By device
properties include a variety of drives
information (Hard dis
semiconductors and CD-ROM). The standard defines an
paratnoe connection of devices and prog
rammno hardware and protocols work.
One port can support up to
two devices.
Boot Record
Start recording or start prog
Ramm, usually stored at the beginning of time
case. Primary loader reads
the record and passes control to it.
Assigning an entry - to download selected
tem. The need BootRecord
due to "ignorance" of the primary
bootloader (stored in ROM) on the inner
tic device specific system.
The hard disk drive, where usually present
corresponds to a few systems exist so
called the master boot record
(See the MBR).
GPT (Global Partition Table)
Home partition table is located
the MBR, can contain up to four described
satellite sections.
IDE (Integration Drive Electronic)
Standard external conditions
ful to the computer. Historically, yk
repivsheesya name for certain
type of hard disk drives. At the present time
name standardization of the interface holds
preserves CAM Commitete (see ATA)
MBR (Master Boot Record)
Master boot record (see Boot
Record). Proposed by IBM standard
Dart on storing data on hard
drive requires a major
boot record on zero physical
com sector of the disk. MBR consists of
program start the computer (IBM PC)
and the main partition table (GPT), from
which loads the program selects
muyu operating system (which occupies
usually the entire section, ie, one entry in
table).
MFS
Format developed by the MOA, for storage
of information on hard drives spec
room-compatible computers. MFS "snakes
is called "standard IBM's storage
data.
Winchester
See Hard disk.
Virtual disk
The name of the disk, when accessed from
TR-DOS is "diverted" to the
hard disk. Virtual disk under
changing a physical disk. For cos
denmark virtual disk should be
"Connect" disk image on vincheste
solution to the disk name.
The geometry of the hard disk
Maximum cylinder number, head
and sectors used in the treatment of
the hard disk. Virtually every
model has its unique to her,
geometric dimensions.
Master boot record
See the MBR (Master Boot Record).
Global Partition Table
See GPT (Global Partition Table).
Head (magnetic)
The device that reads the sector with one
Noah disk surface. As
Typically a disk is slightly
surfaces, and each of them used
uses its own magnetic head. But
measures the magnetic head is of
real part location indicator
the desired sector on the disk.
Hard drive
Drive information with non-replaceable
rigid surfaces. Differ
interface used to connect
computer (usually say "the type of wine
Chester "), volume, geometric
size.
Peripheral control unit
The first universal controller, once
The developed Scorpion 'MOA, for the spectrum
Terumah-compatible computers, prednaz
The value for the hard
drive with an IDE and any period
feriynyh card computer IBM PC XT
(Supported only by reference to
I / O ports). In addition, the
controller chip set
volatile clock (CMOS) and energy
gonezavisimoy memory (NVRAM).
Span local partition table
Index record on the hard drive
designed to further the case
of the information field of the disk on a
sections. The need for this is due
"Handicap" format in the main table
sections, which can store
one disc only has four sections. C
increase in drive and the appearance
Niemi fairly large number of operators
rations systems, this limitation hundred
locally principal.
Floppy image
A copy of the floppy disk located
imposed on the hard drive in a subdivision
le TR-DOS. Floppy image (or pseudo-
floppy disk) has a fixed format,
coincides with the standard floppy disk
TR-DOS 2 sides on 80 tracks.
The main partition table
See GPT (Global Partition Table).
Primary Boot Record
See Boot Record.
Subsection
Continuous range of data (a sequence
sequence of sectors) on the hard drive
which is linked to in the table
ends of the subsections. Such a complex organization
zatsiya (section / subsection) is called "research
toric circumstances "and adopted
Tym by IBM format for storing global
ball of the partition table (GPT), in which
torus can be written information
only about 4 sections.
Subdivision TR-DOS
One taken in the form of MFS
Comrade storage emulator hybrid
FIR drive system TR-DOS. One under
section can contain up to 51 images
floppy disks.
The topics in operating systems
Taken in the MFS data formats for storage
equation of information of operating systems
IsDOS, MikroDOS and others. Maxi
maximum possible amount of section 32 MB.
Section
Continuous range of data (a sequence
sequence of sectors) on the hard drive
record is located in the global
ball partition table (see GPT).
Real Drive
The name of the disk, when accessed from
TR-DOS, the choice of the real dispersion
kovoda.
Sector
Data storage unit for zhes
tkom drive.
Cylinder
Number of data tracks on the surface
hard drive. Because all magnet
nye heads typically are rigidly connected between
one another, tracks data at all discrete
framework of how to form a "hat".
Appendix 1
New routines Shadow Service Monitor (RST 8) to work with the
controller peripherals SMUC. (C) 1996 MOA
A number of new challenges for the semiconductor 81h R8DOS
(call the built-in monitor disk interpreter):
Changed subfunction 9 (SETWRK) disk
system (R8DOS). Starting with version 3.0a
(Code 68 04/29/1995) in the registers DE and BC return code
version and date of compilation of the monitor (in previous
versions of these registers unchanged). D - code version; C, B,
E - respectively, month and year.
C = 34 ($ hddid) identification of the hard disk
in: 512-byte buffer, a pointer to that given in workfl
(subfunction 9) out: CY - error (no HDD)
In principle, the identification is done automatically during
boot, this subfunction determines whether there is a disc in
general and attempts to return to the buffer sector identifier
read from the HDD.
C = 35 ($ hddmount) connection section to the
HD driver
Connects to the specified sub-driver
hard drive, then become
possible read / write operations from the section and if
connected disk image (ie given name and the name of the
sub-TRDOS disk therein), it becomes possible treatment of
TR-DOS
in: Akk - the type of operation is given by bits (in
brackets [] are given priority - 0 highest)
7 [2] Auto-ie, connect
that is set in the Gaza avtonastroek at
this:
bits 0, 1 - the disk number (0 "A", 1
"B", 2 "C" or 3 "D")
CD A - only when hardware under
support of, otherwise the issue
error;
6 [0] off sub from the driver
(Prohibition of read / write operations), in
this case:
bits 0, 1 - the disk number (0 "A", 1
"B", 2 "C" or 3 "D")
5 [1] to connect the sub to the driver,
specifying (in DE) address descriptor (length
Noah 25 bytes) that is returned when the preceding
duschih connections (see bit 4)
4 [4] back in the memory (HL) descriptor
torus currently connected to the driver
section, only this team can be indicated
is called together with the other
3 [3] connection name, address, name
Memory DE: text string of the form
[Dr:] [\] part \ dos, where part - the name again
case, dos - the drive letter in the section
TR-DOS, if not set dr, then connected
chenie happens to the bits specified by
0 and 1 disk
2 should be 0
1 \ drive number
0 / 0 "A", a "B", 2 "C" or 3 "D"
out: CY - error (any error, including the section was not found)
C = 36 ($ hddrd) reading sectors from the partition
Hard Disk
in: hl - the memory address to read
de - the starting sector number (counting from
1!)
b - number of sectors (sector size 512
bytes!)
out: CY - Error
C = 37 ($ hddwr) recording sectors of the partition
Hard Disk
in: hl - the memory address where to write
de - the starting sector number (counting
1!)
b - number of sectors (the sector size
512 bytes!)
out: CY - Error
C = 38 ($ hddpart) return table (directory)
subsection
Each entry in the table described by 16 bits, where
0 sub-type, only the lower 5 bits
(0 no, 1 TR-DOS, 2 MicroDOS ...)
6 volume of sub sectors
10 name of subsection (6 bytes)
Note: get the name of sub-TR-DOS
possible by connecting the sub-TR-DOS (see
function of 35, without specifying the drive!) and further -
direct reading sectors 0 and 1 - Catalog disks. Directory
format is similar to the format of the table subsections.
in: Akk - should be 0
hl - address of buffer for the table (1024 bai ma)
out: CY - Error
de - involvement of a number of inputs in the table
Function 89h (R8time), call RST 8, allows you to set or read
the time from chip nonvolatile memory
(CMOS), opcode hurt in the register D
(Individual bits):
7 - (1) write the value of time and / or
date
(0) read the values of time and / or date
6 - (1) read into the buffer (only if
Bit 7 == 0) (see bit 5)
5 - (1) direct reading (6 bytes of data
of CMOS)
(0) reading in ASCII format
0 - (1) work with the date
(0) Work with time
In addition, the call to register HL
can specify the address of buffer (located at 5 and 2 banks
CPU), if bit 6 == 1. Register E contains the format reader:
lower 5 bits separator character (for the output format ASCII);
B0bity 7, 6 and 5, respectively, allow the withdrawal of the
hours, minutes and seconds, or for withdrawal date:
7 show day of the week
6 represent the "0" before the number,
5 displays a word and a month before the year to add 19.
The function returns the data or the buffer (in
as an ASCII string or a 6-byte: seconds, minutes, hours, day,
month, year) or in the registers C - seconds / date, B -
minutes per month, E - hours / year, L - day of the week. In
these registers are given values for change the time or date.
CY bit indicates an error (no chip CMOS).
Appendix 2
Text driver for OC IsDOS. This is quite
working example of using the software
interface for communication with the hard drive. In
Currently, such a driver is
comprehensive testing.
C0 subttl 'Introduction'
version macro
string '(c) 1996 MOA SMUC IDE driver v 0.98 (beta)'
string 'My address:'
string 'E-mail: moa@ddeeds.spb.su'
string 'FidoNet: 2:5030 / 25.1'
string 'Phone: +7-812-130-1995'
endm
. Comment '
************************************************** *******
Driver * IDE hard disk on the controller for SMUC *
* Operating System Is DOS *
************************************************** *******
Program hard disk drive equipped with an interface
IDE, and is connected to the universal controller peripherals
SMUC. The driver can be used only with the version of IS
DOS, designed to work with Shadow Service Monitor (TM).
Demonstrates how to use calls for the Shadow Monitor
hard disk drive.
When writing a driver to use the materials firm
"Iskrasoft:" Operating System Is-DOS for the ZX-Spectrum.
Programming in Is-DOS. Programmer's Guide "
"Iskrasoft" Saint-Petersburg. "Slot", Moscow, 1994.
This text is distributed "as is", and does not imply ka
FIR or warranties, including implied. I do not correspond
tea for any consequences resulting from the use of this
text.
No part of this text may be reproduced by
separately from the others, including distorted or altered
comments. Driver is generated from the text can not
Jette used for profit, ie, in any room
mercial purposes. However, you can use methods of management
leniya controller implemented in the program, with mandatory
reference to the source.
subttl 'Description'
page
. Comment '
It is assumed that subsection IsDOS be "assembled" from the TM
to drive B, C or D. In this case, this subsection will be
visible from IsDOS as device B, C or D, respectively.
Assembling the assembler is M80 (in the OS CP / M) or
Ma-80 (krossrede on IBM PC):
ma80 = mhdd / l
followed by line up or l80 mlink.exe:
mlink.exe / p: 10 / ws: 10 mhdd
The resulting coded file is to be transferred to
CD Is DOS, rename (command "6") in mhdd.blk, and changes
thread of the file attributes (command "6" followed by "SS /
SPACE"),
setting the "Address" value of 16. Prepared
the driver must be loaded (by pressing "Enter" on behalf of
file).
Further, in the Shadow Monitor need to create a sub-Is DOS
(Size should be no more than 15-16 MB), connect time
cases to any disk. After this, Is DOS, using
program create, you must create a device with the following
parameters:
sector size - 256 bytes;
size of the device - the volume of the partition (in
kilobytes) multiplied LIMITED four.
'
title Driver of HDD
. Z80
;. Lall
subttl 'Macro definitions'
page
. Comment '
Required system IsDOS table settings for physical Adre
sa memory (to move the program) is formed semiautomatic
cally with the use of macros.
Wherever needed further correction address, you must
use makrovyzovy.dw i.c to accommodate the data or to
Mand assembler.
Makrovyzov lofinit, placed at the beginning of the text
driver, mouth establishes the initial count, and makrovyzov
ltable,
placed at the end of the program - automatically generates a
table face displacements.
In addition to macro, in the section formed the necessary
concentration constant.
'
IsDOS equ 3; partition type
RdOnly equ 00100000b; read-only partition
R8DOS equ 81h; call the disk subsystem
$ Mount equ 35; function mount (connecting section)
$ Hddrd equ 36; reading function of the sub-disk
$ Hddwr equ 37; recording function in the sub-disk
; Macros to create a table setting addresses in IsDOS
lofinit macro;; initialization of the counter used tags
. Num defl 0
endm
loff macro? l,? o;; generation entity bias
. Addr '? L' defl $? O
endm
. Dw macro? A;; placement of words in memory
;; To absolute address
loff%. num, <- 1>
. Num defl. Num + 1
dw? a
endm
. C macro? A;; placement team c absolute address
loff%. num, <>
. Num defl. Num + 1
? A
endm
. Ce macro? A;; placement prefiksiruemoy commands
;; Abs. address
loff%. num, <+ 1>
. Num defl. Num + 1
? A
endm
.0 Dw macro? O;; the construction of the table
dw. addr '? o'
endm
ltable macro;; create table
if. num eq 0; checking the existence of Address
exitm;; exit from the macro, if there is no address
endif
dw 0ffffh;; signature
. Numct defl 0; counter tags
rept. num;; cycle generation table
.0 Dw%. Numct
. Numct defl. Numct + 1
endm
endm
; Macros to work with TM
DISKBIOS macro? C,? B;; call the disk subsystem
ifnb <? c>
ifb <? b>
ld c,? c
else
ld bc, + (? b shl 8) or? c
endif
endif
rst 8
db R8DOS
endm
string macro? t;; forming a line of text
db? t, 13, 10
endm
subttl 'Code'
page
;=================================================
==============
; Proper driver program
cseg
lofinit; initiate a counter table
; Address
; Header drivers
. Dw INSTALL; n / n instolyatsii driver
. Dw BREAD; p / n Read Block
. Dw BWRITE; semiconductor recording unit
. Dw BINIT; n / n driver initialization
db 0E0h; 0 .. 3 for virtual device number.
; Drive
3 driver with buffer / buffer
, 5 ban / bit. reading for the
RST
, 6 ban / bit. records for the
RST
, 7 by email. CD / through it
db 4, 0 request at a QVST
, 1 auto-flash
2 trdos / No
; 7 does not / work out bugs
dw 0; offset to IM2
db 0FCh; type trdos?
db 1, number of attempts to read / write
dw 0; address of the buffer driver
, The beginning of the modification of parameters
db 0
db 0
dw 0
dw 0
dw 0
dw 0
dw 0
dw 0
dw 0
dw 0
db 0
; The end of the modification of parameters
dw 0
db 0
; Reading block from the hard drive
; Options for treatment:
; B - number of blocks
; DE - number of the initial block
; HL - address of the memory
BREAD:
ld a, b
or a
ret z; invalid number of blocks
. C
ret c
. Ce <ld (stkold), sp; save stack pointer>
. C
jr nc, r_even; even block, located at the beginning
; Sector
, The processing of the first unit, located second in
the sects.
push bc
push de
push hl
. C <ld hl, buffer; reading sector in the interim
; Buffer>
DISKBIOS $ hddrd, a
jr c, rw_error; transition to generate an error
pop de
. C <ld hl, buffer + 256>
ld bc, 256
ldir; transfer of power from the clipboard into the
program
ex de, hl
pop de
inc de; the next sector in sub-section
pop bc
dec b; counter blocks
ret z; this unit was the only
r_even:
srl b; convert counter blocks
; Sector counter
jr z, r_end; was the only unit in the early
; Sector
, The processing core of the array of blocks that fit
; A whole number of sectors
push af; preservation of the flag C - the presence of
; Last sector
ld c, $ hddrd; read command unit
. C
pop af
r_end:
ret nc; all blocks read
; Processing the last block, located at the beginning
; Sector
push hl
. C <ld hl, buffer; reading sector in the interim
; Buffer>
push hl
DISKBIOS $ hddrd, a
jr c, rw_error; transition to generate an error
pop hl; address of the intermediate buffer
pop de; address in program memory
ld bc, 256
ldir; transfer of power from the buffer to
program
ret
, Forming an error code, restoring the state of the stack,
, Since the output may be due to sub-
rw_error:
. Ce <ld sp, (stkold)>
ld a, 10
scf
ret
; Conversion unit number in the number of sectors in sub-section
, CY-bit output indicates the position of the block in Gaza
; == 0 - in the beginning, == 1 - at the end
blk2sect:
srl d
rr e
inc de; pass service sector section!
ret
; Read or write blocks of sectors, the command type is
determined by ; Contents of register C
moveblock:
push hl; address in memory
push de; number of first sector
push bc; register B sector counter
DISKBIOS; the operation
jr c, rw_error; transition to generate an error
; Correction facilities sector
pop af
ld b, a
pop de
add a, e
ld e, a
jr nc, $ +3
inc d
; Correction of address allocation
pop hl
ld a, h
add a, b
add a, b
ld h, a
ret
; Recording block on the hard disk
; Options for treatment:
; B - number of blocks
; DE - number of the initial block
; HL - address of the memory
BWRITE:
ld a, b
or a
ret z
. C
ret c
. Ce <ld (stkold), sp; save stack pointer>
. C
jr nc, w_even; even block, located at the beginning
; Sector
, The processing of the first unit, located in the
second sector
exx
. C <ld hl, buffer + 256; address the "second" unit sector>
. C <ld (addrbuf), hl>
exx
. C
inc de; next sector
dec b; counter blocks
ret z; this unit was the only
w_even:
srl b; convert counter blocks
; Sector counter
jr z, w_end; was the only unit in the early
; Sector
, The processing core of the array of blocks that fit
; A whole number of sectors
push af; preservation of the flag C - the presence of
the latter
; Sector
ld c, $ hddwr; team record in the block
. C
pop af
w_end:
ret nc; all blocks read
; Processing the last block, located at the beginning
; Sector
exx
. C <ld hl, buffer; address the "first" block sector>
. C <ld (addrbuf), hl>
exx
; Recording unit in the "part" of the whole sector through the
buffer ; Buffer address is given from the outside change the
command code write2:
, Read the required sectors in the buffer
push de
exx
pop de
. C <ld hl, buffer>
DISKBIOS $ hddrd, a
jr c, rw_error; transition to generate an error
; Change information in the buffer
exx
push de
push bc
addrbuf equ $ + 1
. C <ld de, buffer + 256>
ld bc, 256
ldir
pop bc
pop de
; Record buffer pozdazdel
push de
exx
pop de
. C <ld hl, buffer>
DISKBIOS $ hddwr, a
jr c, rw_error; transition to generate an error
exx
ret
; Driver initialization
BINIT:
or a
ret
; Installation of the driver (device selection)
; Number of the device in Akk (0 - A, 1 - B. ..)
INSTALL:
or a
jr z, installErr; A device is not supported
cp 4
ret nc
ld d, a
Calculation of the address descriptor table
ld l, a
rlca
rlca
ld h, a
rlca
rlca
add a, h
add a, l
. C <ld hl, partPtr; current descriptor table>
add a, l
ld l, a
jr nc, stdrv1
inc h
stdrv1:
ld a, (hl); type previously connected sub-
, (Or 0)
push de
. C
pop de
jr nc, setOk; successfully
, May change in the table of
xor a; set "Auto-"
. C
ret c; subsection not found
setOk:
; Check the partition type
ld a, (hl)
and not RdOnly; to remove bits of read-only "
cp IsDOS
ret z; yes, this subsection Is DOS, the connection
; Produced
ld (hl), 0 to remove the "reference" section of a
; Driver
jr installErr
; Connect subsection (for all subsequent transactions through
the RST 8) mount:
push hl
or a
ld a, d; device number
ld b, 10010000b; Auto-+ back into memory
; Handle
jr z, setcom; first connection (on the table
; Auto-)
, The connection has been - to set the saved settings
ld b, 00100000b; connect from the handle
ex de, hl; de - address descriptor
setcom:
or b; add a command code
DISKBIOS $ mount
pop hl
ret nc
; Error - IsDOS drive (section)
installErr:
ld a, 9
scf
ret
; Verification operation is interrupted from the keyboard
testBREAK:
ld a, 7Fh; test pressing BREAK
in a, (0FEh)
rra; pressed SPACE?
ccf
ret nc
ld a, 7Fh
in a, (0FEh)
rra; pressed CS
ccf
ret nc
ld a, 20; error code is' pressed BREAK "
scf
ret
subttl 'Data'
page
;=================================================
==============
; Working variables drivers
; Table of the current descriptors
partPtr:
rept 21 * 4
db 0
endm
, The initial stack pointer, at the entrance of the driver
stkold: ds 2
; Buffer to accommodate the "not a" sector
buffer:
version
string 'driver for the IDE hard disk controller's SMUC'
db 0
ds 512 - ($ - buffer)
; The end of the hard disk drive
;=================================================
==============
; Table to convert addresses
; Automatically generated macro
ltable
end
Appendix 3
Description of access to IBM-card peripherals that are
connected to the controller SMUC.
The scheme allows the decoding controller
choose any port I / O peripheral board IBM PC XT, connected to
SMUC.
I / O ports IBM-deshifiriruyutsya devices with 10 address
lines (A9. .. a0). In this case, the specification of IBM,
a9 line for "external" devices IBM PC XT
should be able to log. 1, which is a hardware obespetsivaetsya
in SMUC. The remaining 9 lines, but put them all in the address
ZX Spectrum space is difficult - it is necessary to provide
decoding and other devices of the controller. Therefore, the
two older line (a8 and a7) are multiplexed - their
state in the I / O operation is static. The value of these
addresses should be written in a special control register
controller. Register address in the space of TR-DOS ZX Spectrum
- 0ffbah. Since the other bits control register is used for
internal purposes the controller, it is necessary to ensure
their correct installation.
Quest bits a8 and a7:
D7 D6 D5 D4 D3 D2 D1 D0
0 1 1 1 0 a8 a7 1
Another installation is in bits D7, D6, D5,
D4, D2 and D0, except as shown above, is unacceptable and may
lead to the controller inoperable. Rather, in final version to
support the controller (4.0) will be provided for special
Call RST 8, correctly sets the address lines a8 and a7. The
final information for the software you can from the author (see
end of article).
The remaining seven address lines directly
transferred to IBM-slot. To select the IBM-device is necessary
to ensure full shestnadtsatiznachny address I / O port ZX
Spectrum, which should be set line choice of the slot and
addresses in it. Address to the address should be made in
address field TR-DOS.
Selecting IBM slots:
C0A15 A14 A13 A12 A11 A10 A09 A08 A07 A06 A05 A04 A03 A02 A01
A00 0 a4 a3 January 1 a2 a1 a0 1 1 1 a6 a5 1 1 0
B0
AN symbols denote address lines
I / O ports on the cards IBM PC XT.
Example card access serial COM1, connected to
controller SMUC. Base address of COM1 device specified in the
IBM-compatible cards - 0x3f8h. At the beginning of the content
is determined by the control register (address lines a8 and
a7). To address 0x3f8h a: a8 = 1, a7 = 1, and hence in the
control register must write 7bh:
D7 D6 D5 D4 D3 D2 D1 D0
0 1 1 1 1 0 1 1
Next, calculate the address of the external devices in the
field of TR-DOS, substituting in the appropriate table address
lines, obtained 78feh: C0
A15 A14 A13 A12 A11 A10 A09 A08 A07 A06 A05 A04 A03 A02 A01 A00
0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0
B0
To access the I / O ports ZX
Spectrum, addressable in the TR-DOS, in
Shadow Monitor, there are two routines that are located in the
part of TR-DOS ROM.
org 3ff0h
out (c), a
ret
org 3ff3h
in a, (c)
ret
Example of reading a byte from the data register
COM1:
ld a, 7bh
ld bc, 0ffbah
call wrtrdos
ld bc, 78feh
call rdtrdos
And the data in the accumulator
;....
wrtrdos:; entry into the port I / O
ld hl, 3ff0h
push hl
jp 3d2fh
rdtrdos:; read from the port I / O
ld hl, 3ff3h
push hl
jp 3d2fh
*
On all matters of policy support
Controller SMUC, raised in the article,
You can contact the author via e-mail FidoNet 2:5030 / 25.1, or
InterNet: Email moa@ddeeds.spb.su, or
phone: (+7-812) -130-1995. About
acquiring controllers and ProfPZU please call (+7-812)
-524-1653, (+7-812) -251-1262, (+7-812) -172-3117,
(+7-812) -298-0653. For a detailed directory of the services
provided by the "Scorpion" by mail, send a request to address:
199048, St. Petersburg, PO Box 083, Sergei Zonov.
*
Other articles:
Similar articles:
В этот день... 25 October