home *** CD-ROM | disk | FTP | other *** search
-
- 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?
-