home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
SIMTEL
/
CPMUG
/
CPMUG049.ARK
/
CDOS.DOC
< prev
next >
Wrap
Text File
|
1984-04-29
|
10KB
|
193 lines
GENERAL NOTES ON CDOS' UNDOCUMENTED FEATURES
When CDOSGEN asks you whether the drive is large [L] or small
[S] try answering 'X'. You will then get a menu for Shugarts,
etc.
You can use the 'SYS.DIR' FCB create call of CDOS 1.07 or
higher to access the directory regardless of its size or
position on the disk. Although the FCB created with this call
is write protected, you can reset that attribute bit and can
then write to the directory as well as read it.
Disk Labels.
A directory label is written to the disk by STAT and is used to
ascertain the storage capacity of the disk and the number of
directory entries (64 to 512).
The last 8 bytes of the first boot loader sector (usually side
0 track 0 sector 1) are always recorded in single density and
contain eight bytes indicating the type of disk to the BIOS, eg
LGSSSD
for Large (8"), Single Sided, Single Density
or LGDSDD
for 8" Double Sided, Double Density diskettes (1.2 MBytes)
STAT 2.15 was written for a WD1797 FDC chip (it records the
side numbers into the address fields) although a WD1793 was
eventually used. CDOS 2.36 does not support the 1797, however,
and this chip will not work instead of the 1793 on the 16FDC.
Double Density Recording Format:
16 sectors of 512 bytes are used per track.(MFM)
A 12 interleave is used (1,C,7,2,D,8,3,E,9,4,F,A,5,10,B,6)
Although a 4 interleave can be read as COM files in my 4MHz no
wait state system a 6 interleave speeds throughput by a factor
of two. (use 1,2,3,4,5,6,C,D,E,F,10,7,8,9,A,B). INIT can be
modified to do this.. if interested write me and I will
disclose all....
Finally, if someone has deciphered how to call the 2.36 BIOS
directly without getting error returns I am all ears...
Trevor Marshall,
26 Mirrelia Way, Ferndale, Western Australia 6155
phone International (619)4576049 or national (09)457 6059
14 December 1980
Notes added by: Chuck Weingart February 1, 1981
2152 W. Iowa
Chicago, Ill 60622
On the "X" feature of CDOSGEN, described above, you must respond
to several questions, such as "Fast or Slow", "Single or
Double". All Shugart type drives are "slow". "Double" drives
are those like the Persci, that have one seek mechanism for two
different disks, or when you are using a Shugart 851 double
sided drive as two "drives" (one "drive" on each side, requires
rewiring the cable).
In CDOSGEN 2.36, when you respond "S" to the drive type, you
again get a "Fast or Slow?" question. MPI drives are "fast",
and Shugart 400 and Wangco drives are "slow" in my experience.
It is easy to attach one of the new Shugart 801/851 drives to
the 4FDC, just use the "TS" data separator (install the jumper).
If you are trying to use an old 800-1 or 801 drive, the data
separator adjustments probably have to be changed to work with
the 4FDC.
To attach the MPI model 52 double-sided 5" drive to a 4FDC, just
add a jumper on the 4FDC from J4 pin 21 to J2 pin 32, if one is
not already there. Then gen a 5" double-sided drive at that
position with 2.17 or greater, initialize some disks with INIT,
and write a double-sided label with STAT, and you are ready to
go. I converted to double-sided in one hour, and it's great!
To attach a Shugart 851 to the 4FDC, install the TS jumper as
noted above. Disconnect the wires 2, 12, 18, and 32 from the
cable (at the drive end is easiest). Connect the Shugart pin 12
to the 4FDC pin 2 (for side select), Shugart pin 30 to 4FDC pin
4 (for Drive select 3), and Shugart pin 32 to 4FDC pin 18 (for
Drive select 4). Connect a jumper from J4 pin 21 to J3 pin 2 if
one is not already there. Use the "X" feature and 2.17 or
greater, initialize disks with INIT, and label the disks with
STAT for double-sided operation.
CDOS 1.07 can be used unchanged on the California Computer
Systems 2422 disk controller if there is a Cromemco compatible
console port at 0, such as a 3P + S, Cromemco TUART, or the
console on the Cromemco SCC. The latter will have to have two
modifications made: the prom (U25) must be altered to put the
parallel port at address 04 somewhere else (such as 0E), and
there must be a 220 ohm resistor in series with U52 pin 6 (to
delay PWR) and a 400pf capacitor from U52 pin 6 to ground (pin
8).
CDOS 2.17 can be used on the CCS 2422 controller in single
density if one uses the 1.07 bootstrap loader. The 2.17
bootstrap will not work without a hardware change on the 2422
board, and it is somewhat lengthy. There will be a persistent
problem of read errors on track 2 sector 1, but this is due to
the WD1793 chip. Just Retry the operation and it will clear up
every time.
CDOS 2.17 has a command, VERIFY, with one of three operands.
VERIFY ON will enable read-after-write verification on the disk.
VERIFY OFF will disable that, and just VERIFY will indicate the
status of the feature. VERIFY is not present in CDOS 2.36.
CDOS 2.17 and up has several undocumented commands: REM and
ATTR. ATTR is the same as ATRIB, and REM is for inserting
remarks into your batch file, because the REM line is ignored.
Although it isnt currently stated in any Cromemco doc-
umentation that I have seen (and I have written Cromemco twice
about it with no answer), all versions of Cromemco software
shipped since about February 1980 come with the system genned
for 64K. If you have a copy of CDOS 1.07, you can run the 2.17
or 2.36 versions of CDOSGEN under 1.07 in order to generate a
smaller system. The new versions of CDOSGEN will not run in a
32K system, tho, they are quite a bit bigger.
For users of non-Cromemco memory boards that want to get a "full
house" (64K), here is how to add a Phantom signal to the 4FDC.
Add a jumper from IC46(74367) pin 15 to IC31(2708) pin 20. Add
a jumper from IC46 pin 12 to pin 8 (ground). Add a jumper from
IC46 pin 11 to S100 pin 67 (Phantom output). The memory board
addressed at C000H must respond to the Phantom signal, of
course. The RES switch (SW2) must be set on. This way, you can
use the 4FDC RDOS program until CDOS is booted, then the EPROM
will be turned off and the memory board "behind" it can then be
used. This method must be used even in many boards that are
advertised as "Cromemco banking compatible" because the boards
do not have the feature of being bank-disabled upon power-up.
CDOS 2.17 now takes about 11K minimum for itself. CDOS 2.36 now
takes 14K minimum.
STAT for 2.36 has several undocumented switches: /M, /N, /E, and
/EZ. STAT/M allows you to change the "master" drive (the one
that CDOS looks at if it cant find a program on the current
drive). STAT/N gives a 5-up directory display. STAT/E is a
directory erase, with prompting. STAT/EZ erases, and no prompts
as I recall.
Jordan Siedband tells me that 2.36 will not read CP/M disks
correctly, cause unknown. Keep a copy of 2.17 around if you
want to continue to use CPMUG stuff. There is one thing that is
obvious to anyone who has looked: CP/M and CDOS directories are
compatable only in "1.4 mode", that is, no system flags of any
kind set in the directories, either CP/M 2.2 flags or CDOS
flags. When they are not compatable, the one operating system
will usually clobber directory entries in the other format or
refuse to work.
CDOS 1.07 and up have an undocumented error message: LOGICAL
DISK ERROR n. This message is produced if you do something like
request a track that does not exist, or a sector that does not
exist, or try an operation that is impossible for the drive to
perform. You will generally get these messages only if you are
trying to do disk I/O thru the "BIOS" directly.
There is a small bug in the Divide Integers CDOS call (8AH) in
2.17 - the BC register will be altered. No problem in 1.07 or
2.36 as far as I can tell.
All versions of CDOS have the CP/M "BIOS" jump table in them,
but none of them use it. That is, you can jump to the entries
in this table, but cannot modify the jump addresses in the table
and expect it to work. The first entry in the table, the "cold
start" jump, is a jump to itself, because CDOS never uses this
entry, and the user is not supposed to use it, either. This
makes routines like FAST rather difficult to use under CDOS.
Some CPMUG programs set themselves below the operating system by
changing the address at location 6, but that will not work under
CDOS. You can use the CDOS call 97H to do the same thing, see
the manual for details.
All versions of CDOS I have used try to initialize all TUART
ports in the system. That is, they will output to ports 12, 13,
22, 23, 52, 53, 62, ... F2, and F3. If you have some other
hardware at those addresses, good luck. CDOS will also zero out
the Dazzler port at 0E every time it starts disk I/O.
CDOS 2.17 and up will disable all interrupts when doing disk I/O
and never re-enable. This means you can't use the timer
interrupts available in the TMS5501.
If anyone figures out what attributes S and U are, I would like
to know. They can be set, reset, and listed, but dont seem to
make any difference to the operating system. Could they be used
for Hard disk files?