home *** CD-ROM | disk | FTP | other *** search
- CBIOS for Cromemco 4FDC or CCS 2422 disk controller
-
- 4FDCBIOS.Z80 and 4FDCBOOT.Z80 are the bootstrap and Cbios
- for running CP/M 2.x with a Cromemco 4FDC controller board, a
- Z80* cpu, and minimum 20K of RAM. CP/M 1.4 can also be
- supported if some of the 2.x-only code is removed. This code is
- also applicable to, and tested upon, the California Computer
- Systems disk controller board model 2422, if a serial port at 0
- compatible with CDOS is used (a 3P + S, or a Cromemco TUART, or
- the serial port on a Cromemco Single Card Computer.)
-
- This source is capable of supporting three types of disks:
- 5 inch (such as Wangco), 8 inch (such as Shugart), and
- single-arm voice-coil 8 inch (such as Persci). Between one and
- four drives are supportable, but no intermixing. There is no
- current support for double-sided drives, but it should be
- easily addable.
-
- There is no support for the double density mode in the Cro-
- memco 16FDC, or the CCS 2422. This bios is limited to 128 byte
- sectors.
-
- The 8 inch format is compatable with all CP/M and CDOS
- versions currently known. The 5 inch format (skew of 5) is
- compatable with all 5 inch CDOS formats currently used.
-
- It is assumed that the main console, at port zero, is
- already initialized by RDOS or some other program. If not, you
- can insert the necessary code into 4FDCBOOT.Z80.
-
- As additional features, the routine contains an optional
- reader-punch and printer support routine, via TUART and PRI
- boards, and a standard missing memory check. The external
- interrupt of the TMS 5501 is enabled on the 4FDC, which causes
- a 0FF interrupt, which is the same as a missing memory board.
- I like to use this to break out of loops without losing CP/M.
- If this is not desired, it is easily removed from the code.
- Also, in a commented section is a small modification so the
- DEL key (07FH) is changed to a Control-U by the CBIOS, for
- those who have Backspace on the terminal. I do not like to use
- two hands just to be able to erase a mistake.
- The source is for Cromemco Z80 assembler, and there are
- five constants in the front to be changed to select various
- options.
-
- First, select the type of drive: If 5 inch, LARGESW and
- PERSCISW should be 0. If 8 inch Shugart, LARGESW should be 1,
- PERSCISW 0. If Persci, PERSCISW should be 1. LARGESW should
- also be altered in 4FDCBOOT.Z80.
-
- Next, NUMDRIVES should be 1 to 4 for 5" and 8" drives, and
- 2 or 4 for Persci double-disk drives.
-
- Then, to have support for printer and TUART, BIGIOSW should
- be 1, otherwise 0. You might also wish to change BAUDRATE to
- the desired value for the reader-punch (110 baud is supplied).
- Note: if the CCS 2422 is used, it may be necessary to supply an
- initialization and bootstrap routine for the console port, if
- that is on a TUART addressed at zero. The current code does not
- initialize the port at zero, assuming that has been done before
- the disk was booted. The code for the TUART referred to here is
- for an additional TUART port, not the console port, but it is
- easy to add the necessary code to initialize the console port
- also.
-
- Finally, set BEGINADR to the start of the CBIOS. It is
- supplied as 0E400, which is for a 64K system. This should also
- be altered in 4FDCBOOT.Z80.
-
- The switches on the 4FDC are set exactly as described in
- the board manual. For a system over 48K, the ROM must be
- disabled upon bootstrapping. For a smaller system, the RDOS
- can stay in, or not, as you desire. For a CCS 2422 controller,
- the same statement applies, except the 2422 ROM need not be dis-
- abled unless the system memory exceeds 60K.
-
- 4FDCBOOT.HEX and 4FDCBIOS.HEX are supplied, assembled from
- the source files. They are set for a 64K version of CP/M. You
- can use them in another system if you can put about 8K at the
- upper end of memory (E000) and maybe 16K at the low end (0000)
- to be able to re-assemble the files.
-