home *** CD-ROM | disk | FTP | other *** search
- ABSTRACTS FOR CP/M USERS' GROUP VOLUME 49
- -----------------------------------------
-
- This volume consists mostly of Rational Fortran (RATFOR) files.
- A letter and abstract by the author are presented here, as
- well as several abstracts on various files by Chuck Weingart
- of the Chicago Area Computer Hobbyist Exchange. Please note
- that some of the files on this disk rely on Cromemco CDOS
- calls and are not compatible with "standard" CP/M systems.
- Almost ALL FORTRAN and RATFOR files require a Z-80 processor.
- See the abstracts by Chuck which point these out.
- 01/28/81 Jim Mills, CACHE SIG CP/M Chairman
-
- ------------------------------------------------------------
-
- 1 E. Lakeview Dr. #17
- Cincinnati, OH 45237.
- Oct 1, 1979
-
- CP/M Users Group
- --etc--
- I have enclosed a disk which has RATFOR.RAT adapted for
- Fortran-80. This gives essentially identical results to your
- volume 24 RATFOR.COM but is somewhat faster and gives people
- the chance to play with it. Also the foreign .COM file
- is hard to work with. I had to write a special program
- to copy it correctly on my system. The disk also has some
- useful sample programs.
- Tim Prince
- ------------------------------------------------------------
-
- This disk contains mainly utility programs associated with
- the Ratfor preprocessor and helps to bring some of the FORTRAN
- 77 functions into FORTRAN-80. The Ratfor follows the Addison-
- Wesley code closely but uses BYTE variables as appropriate.
- Transliteration, which is done inefficiently in the A-W ver-
- sion, is omitted. The matrix inversion-determinant calculator
- MINV and the address quicksort SORTI are given as examples of
- the use of Ratfor.
- The INDEX subroutine is given both in FORTRAN (in F77LIB)
- and Z80 versions. As FORTRAN-80 does not permit the usage of
- this function to be as in FORTRAN 77, the calling sequence is
- somewhat arbitrary.
- LCAT, for concatenating .REL files, calls assembler
- library functions which may not be available on some systems.
- However, the .COM file may work anyway. SCOPY calls the
- READLB subroutine which will have to be rewritten for systems
- which do not support the same extended CP/M calls.
- Tim Prince
-
- ------------------------------------------------------------
-
- REVIEWS BY CHUCK WEINGART
-
- RATFOR is a preprocessor for FORTRAN source programs which
- facilitates control constructs and text insertions, described
- in "Software Tools" by Kernighan and Plauger (Addison-Wesley).
- RATFOR source code is free form, with statements separated by ;
- or [CR]. Ratfor statements include extensions to Fortran such
- as IF ELSE, WHILE, REPEAT UNTIL, FOR, BREAK, NEXT, and INCLUDE.
- An earlier version of RATFOR.COM is in CPMUG V.24. This new
- version runs only on a Z80, is faster, has documentation
- (RATFOR.DOC), source (RATFOR.RAT, RATFOR.FOR), and uses
- RATCOMNS.RAT and TRNSLT.Z80. The resulting Fortran program is
- then compiled with Microsoft FORTRAN-80 or Cromemco Fortran,
- V3.21. This should run on any version of CP/M that supports the
- Fortran and has a Z80. (reviewed by Chuck Weingart)
-
- F77LIB.FOR is a file containing definitions of most of the new
- intrinsic functions in FORTRAN 77. These functions can be
- employed by searching the file F77LIB.REL which will be created
- by compiling F77LIB.FOR There is also an INCLUDE file
- CONSTS.RAT which automatically defines some frequently used
- constants. INDEX.Z80 is a subroutine given both in FORTRAN (in
- F77LIB) and Z80 versions. They are written in Cromemco
- Z80 Fortran and assembler language, but should be acceptable to
- Microsoft versions. INDEXT.FOR is a test for INDEX. There is
- some Fortran-77 documentation in F77.DOC and F77DEF.DOC.
- (reviewed by Chuck Weingart)
-
- LCAT.RAT are for concatenating Microsoft .REL files, described
- in LCAT.DOC. It calls CDOS Z80 assembler library functions
- which are not be available on CP/M systems. This is written for
- RATFOR, and uses ASMDEF.RAT and IOER.Z80, written in Cromemco
- Z80 assembler, Microsoft will also work. There are two possible
- problems with this routine, both related to the end-of-file.
- First, some versions of Microsoft Fortran did not put an eof
- (1A hex) at the end of the REL library. Second, this program
- stops if it hits 9E1A Hex, and there is a small chance of that
- ocurring in the middle of a file, so don't destroy your old
- library before checking the output of LCAT. (reviewed by Chuck
- Weingart)
-
- MINV.RAT and MINV.FOR contain a subroutine which inverts a
- matrix and calculates the determinant. It does not have any
- protection against the case where the equations are of wildly
- different orders of magnitude. There is a test case included in
- the file. These are included as tests for RATFOR, and the
- Fortran version will run on Microsoft or Cromemco Fortran,
- V3.21, any supported size and version of CP/M or CDOS,
- respectively. The DOC file includes some, but not all, info
- needed to use. Look at the test file included for more.
- (reviewed by Chuck Weingart)
-
- SORTI.RAT, SORTI.FOR are an address quicksort with a test
- driver program. Unfortunately, although the FORTRAN appears
- essentially identical to a successful program developed on a
- large system, the Microsoft version doesn't work yet. They are
- given as examples of the use of RATFOR. The SORTI.DOC file has
- some information describing the use of this routine. The FOR
- file will compile on Microsoft or Cromemco Fortran, V3.21, with
- any supported CP/M or CDOS, respectively. (reviewed by Chuck
- Weingart)
-
- SCOPY.FOR does direct disk I/O, either disk to disk or disk to
- console, described scantily in SCOPY.DOC. The FOR file should
- be useable by any Microsoft or Cromemco Fortran, V3.21. It
- calls the READLB.Z80 subroutine which will have to be rewritten
- for systems which do not support the same CDOS calls. READLB is
- written in Z80 assembler, Microsoft is acceptable. (reviewed by
- Chuck Weingart)
-
- ------------------------------------------------------------
-
- NON-RATFOR PROGRAM REVIEWS
-
- FILTER.ASM
- FILTER.HEX
- FILTER2.ASM
- FILTER2.HEX
- FILTER.ASM is source taken from an article by J. Warner in the
- January, 1980 issue of Dr. Dobbs. It implements two essential
- CDOS calls, 80H and 86H, to allow some Cromemco software to run
- under CP/M*. This is commented Zilog Z80* source, and can be
- assembled by Microsoft or CDOS* assemblers. The chicken-egg
- problem is avoided by supplying the FILTER.HEX file to bring up
- the CDOS assembler. As supplied, Cromemco Fortran IV and COBOL
- will not work with it, more functions must be added. This
- routine is installed by making it part of the memory image of a
- program: using DDT, load FILTER.HEX, then load the Cromemco
- program starting at 200H, and then save the combined programs.
- When it gets control it boosts the function code filter into
- place at the top of the TPA and then moves the original program
- down to 100H and jumps to it. (reviewed by Chuck Weingart)
-
- FILTER2.ASM is the source for a modified version of FILTER.ASM,
- primarily minor improvements and one bug fix. More comments
- are also included from the original article in DDJ. The same
- installation procedures and comments as FILTER apply to FILTER2,
- including FILTER2.HEX. (FILTER2 is from the reviewer, Chuck
- Weingart.)
-
- Warning: CP/M and Cromemco CDOS directories are partially in-
- compatable. The first byte of each FCB must be made zero (1.4
- mode). These routines do not allow most Cromemco software to
- run on non-Cromemco equipment. They are supplied here to let
- the Cromemco owner run his/her legitimately obtained programs
- under CP/M on Cromemco hardware. It does not appear that any
- any software supplied with versions of CDOS after 2.17 are
- compatible with CP/M (2.2) with FILTER.
-
- 4FDCBIOS.DOC
- 4FDCBIOS.Z80
- 4FDCBIOS.HEX
- 4FDCBOOT.Z80
- 4FDCBOOT.HEX
- 4FDCBIOS.Z80 and 4FDCBOOT.Z80 are the cbios and boot programs
- for running CP/M 2.x on a Cromemco 4FDC disk controller board,
- or a California Computer Systems 2422 disk controller, with a
- 3P + S or Cromemco TUART or similar console port at address 0.
- Assembly options include memory size, one to four drives, supp-
- ort for 5", 8" Shugart, and 8" Persci drives. Drivers for the
- Cromemco TUART for paper tape and Cromemco printer board are
- optionally included. The source is moderately commented, not
- structured, in Cromemco Z80 assembler; Microsoft can also be
- used. The source is supplied for two 8" Shugart drives and 64K,
- and 4FDCBIOS.HEX and 4FDCBOOT.HEX are the assembled output
- files. Since the 4FDC is designed for the Z80*, conversion to
- 8080 would be difficult. 4FDCBIOS.DOC contains detailed doc-
- umentation. (abstract by Chuck Weingart)
-
- CDOS.DOC
- This is an accumulation of comments by Trevor Marshall and this
- reviewer for users of Cromemco hardware and software. Nothing
- can be guaranteed, but everything is true as far as can be
- checked. (No attempt is made to help those who want to run the
- cheap Cromemco programs on CP/M without buying any Cromemco
- hardware). Must reading for CDOS users who participate in
- CPMUG. (reviewed by Chuck Weingart)
-
- CDOSCOPY.COM
- CDOSCOPY.DOC
- CDOSCOPY.HEX
- CDOSCOPY.PRN
- CDOSCOPY.Z80
- CDOSCOPY is the COPY program, CPMUG 1.3, converted to Z80 and
- extensively rewritten by Trevor Marshall to work on the Cromemco
- CDOS operating system. The program supports 8" disks, single or
- double sided, single or double density. It is possible to con-
- vert the program for 5" disks, see the DOC file for details.
- As supplied, would require a 48K system to copy double-density
- disks, but I have not personally been able to verify operation
- that way. The program runs correctly, but unfortunatly slower
- than the COPY program because of CDOS internal operations. A
- single-sided, single density disk copies in around 5 minutes.
- Supplied are the source file (.Z80), the output (.HEX), the
- print file (.PRN), and the executable program (.COM). This pro-
- gram runs only on a CDOS system, with all Cromemco hardware as
- required by that operating system, and assembles only with the
- Cromemco Z80 assembler. (reviewed by Chuck Weingart)
-
- ASTRO.FOR is a series of Fortran routines to do astronomical
- calculations. (Borrowed from an old SMITHSONIAN ASTROPHYSICAL
- OBSERVATORY computing note.) Of only specialized interest but
- for the DECML, IDECML, and KDECML; These are routines for free
- format reading from Fortran. They are used by reading the
- characters into a LOGICAL*1 array of dimension of say 80, using
- a format of say 80A1. Successive calls to DECML as a function
- then give the real numbers on that line. The variable N is a
- pointer, the current column of the input buffer. Can be com-
- piled by CDOS or Microsoft Fortran IV, tho their usefulness can
- only be judged by an astronomer. (Reviewed bu Chuck Weingart)
-
- * Please note that Z80 is a trademark of Zilog, Inc. CP/M is
- a trademark of Digital Research, and CDOS is a trademark of
- Cromemco, Inc. Use of the term Z80 in this application is in
- no way meant to imply that this program was written by Zilog,
- (or Digital Research, or Cromemco).
-
-