0% found this document useful (0 votes)
423 views45 pages

CPM 2.2 Technical Manual and Installation Oct84

CompuPro makes no representations or warranties with respect to the contents of this publication. CompuPro reserves the right to revise this publication and to make any changes from time to time in the content hereof. No part of this publication may be reproduced or transmitted without the written permission of CompuPro.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
423 views45 pages

CPM 2.2 Technical Manual and Installation Oct84

CompuPro makes no representations or warranties with respect to the contents of this publication. CompuPro reserves the right to revise this publication and to make any changes from time to time in the content hereof. No part of this publication may be reproduced or transmitted without the written permission of CompuPro.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 45

GmpuPro!

________ C_P_I_M__2_-_2
Technical Manual
& .Installation Procedures
CP/M 2.2 Technical Manual
Copyright 1984 CompuPro
Hayward, CA 94545
Document II 15299
File Name: CPM8022.MAN
First Edition: August 1982
Latest Printing: October 1984
DISCLAIMER - CompuPro makes no representations or warranties with
respect to the contents hereof and specifically disclaims any
implied warranties of merchantability or fitness for any particular
purpose. Further, CompuPro reserves the right to revise this
publication and to make any changes from time to time in the
content hereof without obligation of CompuPro to notify any person
of such revision or changes.
CP/M and CP/M-86 are registered trademarks of Digital Research Inc.
MP/M 8-16 is a compound trademark of Digital Research and CompuPro.
CP/M-80 and MP/M-86 are trademarks of Digital Research Inc.
MDRlVE is a registered trademark of CompuPro.
All rights reserved. No part of this publication may be reproduced
or transmitted in any form, or by any means, without the written
permission of CompuPro. Printed in U.S.A.
Introduction and Installation
Hardware Requirements
Making a Backup System
Formatting the Hard Disk - Disk 2 and Disk 3
Installing your CP/M 2.2 Operating System
Reconfiguring your software
Reassembling the CP/M 2.2 CBIOS
Getting Ready to
'CONTENTS
,.
1
1
1
2
3
5
5
Reassemble the CompuPro CP/M 2.2 System
Reassembling the CompuPro CP/M 2.2 System
Using the CompuPro MDrive/H Memory Disk
. ,. . 6
10
' ~ : : . ~ . . 12
-:.
SOFTWARE SECTION
Introduction . 13
Applicable Documents '.. 13
Software User's Guide . ..' 14
FORMAT.com - Floppy Disk Format Utility 14
COPY.com - Disk Copy Utilities ' , 0 ..... 16
,SYSGEN.com/SYSGEN86.com - System Tracks Copy Utility 17
DISK2.com - Hard Disk Format/Test Utility 0. ',. 17
DISK3.com- Formatting the DISK 3 ~ 18
MFORM.com - Memory Disk Format Utility 19
Software Features
CompuPro DISK 1 ROM/BOOT
CompuPro COLD BOOT
Cold Start
CompuPro DISK 1 CBIOS
Warm Boot
Unit Record
Home
Select Disk
Set Track
Set Sector
Set Disk Memory Address
Set Extended Address
Set Number of Sectors
Read from Disk
Write to Disk
Translate Sector
DISK 1 FORMAT
COPY Utility
SYSGEN
MFORM Utility
Number
20
20
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
24
24
Software Internal Design
CompuPro DISK 1 ROM/BOOT
CompuPro DISK 1 LOADER
CompuPro DISK 1 CBIOS
HARDWARE SECTION
Troubleshooting Your System
Hardware Settings for CP/M
CPU 8085/88
CPU Z80
SYSTEM SUPPORT 1
RAM 22
RAM 21
RAM 17
Memory Board
Memory Board
Memory Board
RAM 16 Memory Board
DISK 1A Floppy Disk Controller
DISK 1 Floppy Disk Controller
DISK 2 / SELECTOR CHANNEL
DISK 3
INTERFACER 1
INTERFACER 3
INTERFACER 4
MDRIVE/H
. 25
25
. 25
25
29
32
. . . 32
32
. 32
33
33
34
34
35
35
37
38
38
39
39
40
INTRODUCTION & INST ALLATION
There is one diskette included with your CP/M$ 2.2 system. lt
includes a bootable CP/M system for operation with the DISK 1 or
DISK lA floppy disk controller, the CPU 8085/88 or CPU Z and a
number of ".COM" files which will be described later. It also
contains all of the system command files, utility programs and BIOS- -
source files. This document will describe how to get CP/M "up and
running" with a minimum amount of trouble.
This version of CP/M 2.2 requires the following hardware for proper
operation:
HARDWARE REQUIREHElfI'S
(1) A working S-100 mainframe.
(2) A CompuPro CPU 8085/88 (with swap port at OFDh) or CPU Z
(3) A CompuPro SYSTEM SUPPORT 1
You could also use an INTERFACER 3 or 4 addressed at 10h
or an- INTERFACER 1 or 2 addressed at 0 as your console.
(4) A CompuPro DISK 1 or DISK 1A floppy controller addressed
at OCOR and J17 jumpered.
(5) At least 64K of 24 bit address ~ ~ M in the first 64K page.
(6) An operational disk drive subsystem.
MAKING A BACKUP SYSTEM
The first thing to do when trying to bring up and configure your
CP/M system is to make two backup copies for alteration. This will
require two diskettes formatted in double density with 1024 byte
sectors.
To format the two blank diskettes, boot up the CP/M diskette and
invoke the format utility by typing: FORMAT. Press the RETURN
([RET)) key. Insert a blank diskette into the B drive. Select the
B drive for formatting and 1024 byte sectors. When the format ts
done, repeat for the other diskettes.
To copy the system disk onto the formatted diskettes, type:
COPY(cr) with the blank formatted diskette in the B dri ve and the
system master in the A drive. Choose the source on A and the
destination on B. The COpy utility will then copy the master disk
track-for-track. Repeat with the second blank diskette.
1
This method will leave the copies in the same format (1024 byte
sectors) as the master. If you wish to change densities to 256 or
512 byte sectors, or if you want to modify the loader, you will
have to use the SYSGEN To use the SYSGEN utility, put
your CP/M diskette in the A drive and a formatted diskette in the B
dri vee _ Call up the SYSGEN utili ty by selecting the "A" drive as
the source and typing: SYSGER [RET). Select "B" as the destination
drive. Repeat for as many diskettes as necessary. Then you may
PIP as files as necessary onto the copies.
FOKBATTIBG THE BARD DISK - DISK 2 & DISK 3
If you have a hard disk or disks, you must run the DISK2 or DISK3
formatter/diagnostic. The DISK2 and DISK3 programs are included on
your CP/M diskette. They should be run as follows:
A>disk2 [drive type) all
or
A>disk3 [drive type) all
and press the RETURN ([RET)) key.
DISK 2 drive types:
M10
M20
M20BE
M40BE
Fujitsu 10 megabyte drive
Fujitsu 20 megabyte drive (default value)
Fujitsu 20 megabyte drive with Pragmatic modification
Fujitsu 40 megabyte drive with Pragmatic modification
DISK 3 drive types:
Q540
ST506
Quantum 40 megabyte drive
Seagate 5 megabyte drive
This test takes seventeen (17) hours or more to complete. It
begins by formatting the tracks, which is evidenced by something
like the following display:
Formatting Track : NNN Hard NNN Soft NNN
The track number (NNN) and number (NNN) of hard and soft sector
errors are displayed to the of each entry. If 12 or more
errors are reported, consult the DISK 2 or DISK 3 Technical
Manuals.
2
The test continues with:
Verifying Track
Data Test Track
and ends with:
Seek Test
There are 12 "passes" through the sectors in this last test. Upon
completion, a bad sector report is given. Any bad sectors found
are "mapped out" or effectively blocked from use.
IIISTALLIHG YOUR CP IIf. 2.2 OPERATIRG SYSTEM.
Your CompuPro CP/M 2.2 master disk is configured to "BOOT-UP" on a
very simple system. This means that the system will not take
advantage of many of the hardware features of your CompuPro system.
If you have a non-CompuPro system, you will be on your own to look
at the BIOS or system source and build a system for your hardware.
For CompuPro systems, we have already configured systems that will
take full advantage of your hardware. There are a number of pre-
configured system files on your master disk of the form "CPM*.COM",
where the "*" is replaced by letters denoting a particular hardware
configuration.
The following list describes the notation used to describe the
different systems:
CPMPLAIN.COM - Same system that boots up off of master dlsk.
CPM210.COM
CPM220.COM
CPMQ540.COM
CPMSYS.COM -
CPMZ80.COM -
Uses CPU 8085/88 with a CompuPro Disk 2 and
10 or 20 megabyte hard disk.
Uses a CPU 8085/88 and the CompuPro H40 Hard
Disk system.
Uses a CPU 8085/88 and CompuPro floppy disk
system.
Uses A CPU-Z and a CompuPro floppy disk
Subsystem.
CPMHMX2.COM -- Uses CPU 8085/88 and extended I/O system.
3
Once you have selected a system file that matches your hardware,
you must create a "system" disk on a copy of your master for that
configuration as follows (example is for a CPU 8085/88 and CompuPro
Floppy Disks):
A>SYSGER CPKSYS.COK
Destination drive (or hit RETURN.to terminate): B
Function complete.
A>
Now you can lise your newly created disk for a faster and quieter
system.
4
RECONFIGURING YOUR SOFTWARE
REASSEMBLING THE CP/M 2.2 CBIOS (Background information)
To reassemble this CBIOS, you should use Digital Research"'s RMAC
and LINK80. (NOTE: RMAC and LINK80 are not included with CP/M 2.2.
They can be obtained from your Systems Center or Digital Research.)
MAC or ASM could also be used. If you are going to use ASM, there
are some library files RMAC uses to assemble the BIOS. They should
be edited into the CBIOS source and the macros must be expanded.
The library files have the extension ".LIB" and are as follows:
ASCII. lib
COMPUPRO.lib
CPMDISK.lib .
ACTIVE. lib
BOOTSCPM.lib
Some handy ASCII equates
CompuPro hardware equates
CP/M BDOS equates
Sets up a particular configuration
Cold boot routines
The file ACTIVE.lib is the one that contains all of the equates to
set up a particular system (i.e.: turning hard disk on, etc). Be
sure you look at all of the equates in this file. An important
equate is the BDISL This is the drive letter that the system will
try to warm boot from. This should be set to the letter of the
first floppy (drive 0) in the system. If there is no hard disk
this will be "A", if there is a Disk 2, the first floppy becomes
"I" and the BDISK should be set to "1". Drive are set
in the MAKDPH macros. Currently, different DPH"'s are invoked
depending on what devices are turned on. For instance, if there is
a hard disk, the hard disk has drives "A","B" and "c" and the
floppies are drives and "J". If there is no hard disk, the
floppies are drives "A" and "B". Equates are provided to include
multiple "like" hard disks (i.e.: two 20 meg hard disks or two 10
meg hard disks, but not a 10 meg disk and a 20 meg disk).
This bios does support 5-1/4" floppies on the DISK 1A or the
special 5-1/4" DISK 1 addressed at OCCh. WARNING: there are many
different 5-1/4" floppy formats and types out there. The two-sided
line (pin 10) on the 34 pin cable that goes to the floppies must be
pulled to ground if your drives are two-sided and you are using a
DISK 1. Also be sure toset the equate TRK5 to the number of
tracks on your drives, usually 40, 77, or 80.
There are actually two bios source files included - HMX1BIOS.ASM
and HMX2BIOS.ASM. HMX1BIOS.ASM contains I/O drivers for all
CompuPro I/O boards for both console and printer. Spacein this
bios is very tight, so you cannot turn all devices on. For
instance, only two floppies, one hard disk and one memory drive
will fit on the boot tracks. If you want more physical devices, you
can use HMX2BIOS.ASM which contains only minimal console I/O
drivers. Then the program HMX2IO.COM is executed at cold boot.
HMX2IO.ASM is a program that will relocate an extensive I/O system
5
into a reserved space in the bios.' This. I/O system is easily
modifiable and comes supporting IOBYTE, a special 10 control byte,
interrupts, XON/XOFF and much more. This allows you to put more
device drivers on the boot tracks. If you use HMX2IO, you must set
the equate "XLOADZ" to be at least 400h and use MOVCPM to move your
BDOS and CCP down by IK. still, be careful of space in both the
BIOS and the I/O file.
There are two RAM disks supported in this bios. The first is the
"soft" M D R I V E ~ that uses the 8088 to move data in and out of
extended system memory, called in the bios XMDRIVE. XMBOOT can be
turned on also so that warm boots wi,ll be done from system memory
instead of the floppy. XMBOOT can be on independent of whether or
not XMDRIVE is on. The second RAM disk is the MDRIVE/H, called
HMDRIVE in the bios. If only one of HMDRIVE or XMDRIVE is turned
on, it will be set to letter "M". If both memory' drives. are turned
on, HMDRIVE is drive ''H'' and XMDRIVE is drive "M".
GEn'IRG READY TO REASSEMBLE 'I'BE COMPUPRO CP 1M 2.2 SYSTEM
Your CompuPro CP/M 2.2 includes some already assembled system files
for a few different system configurations. All of -the system files
are of the form "CPM*.COM", where the * stands for the particular
configuration. The file "CPMSYS.COM", is a floppy only system
designed for a CompuPro system with a CPU 8085/88 and 3ms step rate
Qume floppy disk drives. "CPMPLAIN" will run on an 8080 type
processor and' uses an 8ms step for the floppy disk drives. Files
named "CPM2?? .COM", where the "?"s are 10, 20 or 40, are' for the
DISK 2 hard disk controller. "CPMQ540.COM" is for the CompuPro
DISK 3 and 40 mbyte Quantum hard disk system. Use "CPM80.COM" for a
Z-80 based system. Choose the configuration for your system and
"sysgen" it on to a copy of; the master as follows:
A>SYSGEN CPM?????COM
Use your copY,for the destination.
NOTE: If you have a DISK 3, be careful when changing from CP/M to
MP/M
M
8-16
M
, CCP/M
M
8-16
M
, CP/M-86
m
or CP/M 8-16
M
because the
log ical 'drive part i t ioning on the hard disk is different bet ween
CP/M and all the rest. However, the first and last logical drives
are the same on all operating systems.
If you don't have a "standard" CompuPro system and need to change
some parameters, use the following inst ructions before you
reassemble your operating system.
6
Change the baud rate, step rate, software and hardware handshaking
To change the baud rate for the system console, use the
HMXFBOOT.ASM file. Go to the Input/Output Device Initialization
Sequence Table (see the following table). This table is arranged
with the port number to initialize followed by its initialization
byte.
;****************************************************************
;* INPUT/OUTPUT DEVICE INITIALIZATION SEQUENCE TABLE *
;****************************************************************
INISEQ: jPort, Value to transmit sequence until Port = OFFh.
Interfacer 3,4 UART initialization.
DB IF3UX, 4 ;Select Uart 4
DB IF3UM,01011010b jAsync, 16x, 7 bits, odd parity, I stop
DB IF3UM,01111110b j 9600 baud
DB IF3UC,00100111b jTrans on, DTR low, rec. on, no break/
jreset RTS low
DB IF3UX, 5 jSelect Uart 5
DB IF3UM,01011010b jAsync, 16x, 7 bits, od.d parity, 1 stop
DB IF3UM,01111110b j 9600 baud
DB IF3UC,00100111b jTrans .on, DTR low, rec. on, no break/
jreset RTS low
DB IF3UX, 6 jSelect Uart 6
DB IF3UM,01011010b jAsync, 16x, 7 bits, odd parity, 1 stop
DB IF3UM,Olll1110b j 9600 baud
DB IF3UC,00100111b jTrans on, DTR low, rec. on, no break/
jreset RTS low
DB IF3UX, 7 ;Select Uart 7
DB IF3UM,Ol011010b ; Async, 16x, 7 bits, odd parity, 1 stop
DB IF3UM,01111110b; 9600 baud
DB IF3UC,OOlOOlllb jTrans on, DTR low, rec. on, no break/
jreset RTS low
System Support I UART initialization.
DB SSIUM,OlOI1010b jAsync, 16x, 7 bits, odd parity, 1 stop
DB SS1UM,011111llb ;19200 baud
DB SS1UC,OOl00111b jXmit on, DTR low, rec. on, no break, run,
jRTS low
DB OFFh jEnd of I/O port initialization string
The lines of the table under the "System Support 1 ", as well as
the other headings are for mode register I, mode register 2 and the
command register (see the following tables). Refer to these tables
and change the parameters as necessary.
7
MRI' MRI-I MRI-5
MOOE REGISTER 1 FORMAT
liT NUMBERS
MRI-] MRI-2
.. ,,-. I ....
SYNC SYNC PARITY TYPE PARITY CONTROL CHARACTER LENGTH MODE AND lAUD RATE fACTDRI
00 - SYNCHRONOUS Ix RATE NO. Of SYN TRANSPARENCY O ODD 0- !lISAlLED
I -ENAILED
00 - 5 BITS
01-' BITS
10- 7 BITS
11-I8ITS
CHARACTERS CONTROL
I- EVEN 01 - ASYNCHRONOUS h RATE
O'
I
DOUBLE SYN O' NORMAL
SINGLE SYN I ' TRANSPARENT
ASYNC'
STOP liT LENGTH
00' INVALID
01 - I STOP lIT
10' IY, STOP IITS
11 2 STOP IITS
MRZ-7 MRI-&
MODE.REGISTER 2 FORMAT
MR2-5
""'. o"'r"" .,,'
MR2-2
10 - ASYNCHRONOUS IIx RATE
11 - ASYNCHRONOUS 64. RATE
MAl-I MAl-O
NOT USED TRANSMITTER
CLOCK
RECEIVER
CLOCK
BAUD RATE SELECTION
0- EXTERNAL O' EXTERNAL 0000 - sa lAUD 0110 -100 lAUD 1100 - 4100 lAUD
I - INTERNAL' I - INTERNAL ODOI - 7S1AUO Dill - 1200 lAUD
DOlO -110 lAUD 1000 -1100 lAUD'
0011 - 1l4_SlAUO 1001 - 2000 lAUD
0100 - ISO lAUD 1110 - 2400 lAUD
OIDI - 300 lAUD 1011 - 3100 lAUD
1101 - 7200 BAUD
1110 -1&00 lAUD
1111 - IIZOIIAUD
Use the last four bits of mode register 2 in the table to make
changes to the baud rate.
Locate:
System Support I UART initialization."
DB SS1UM,01011010b ;Async, 16x, 7 bits, odd parity, 1 stop
DB SSlUM,01111111b ;19200 baud
DB SSlUC,00100111b ;Xmit on, DTR low, r e c ~ on, no break, run, RTS low
Example: You need to change your system terminal's baud rate from
the 19200 in the table to 9600.
Go into HMXFBOOT.ASM and find the line:
DB SSlUM,01111111b ;1920q baud
Change it to:
DB SS1UM,01111110b ;9600 baud
8
If you need to change the parameters for any of relative users 4-7,
use the same format described above and change the bi ts based on
the tables, only using the lines of the table under the "Interfacer
3,4 UART" heading of the INPUT/OUTPUT DEVICE INITIALIZATION
SEQUENCE TABLE.
To change the software handshake, use HMXFBOOT.ASM.
Input/Output Device Initial Select Table.
Find the
;*****************************************************************
;* INPUT/OUTPUT DEVICE INITIAL SELECT TABLE *
;*****************************************************************
;
BIOTBL: ;1/0 byte (IOBYTE) value, Aux I/O control byte (IOCNTL) value
Switch = 0
DB 10$00$00$01b
DB 01$00$00$10b
Switch = 1
DB 10$00$00$01b
DB 01$00$00$10b
Switch = 2
DB 10$00$00$01b
DB 01$00$00$10b
Switch = 3
DB 10$00$00$01b
DB 01$00$00$10b
;LST:=LPT, PUN:=TTY;, RDR:=TTY:, CON:=CRT:
;LPT:=Interfacer I UART 1, CRT:=Interfacer I UART 0
;LST:=LPT, PUN:=TTY;, RDR:=TTY:, CON:=CRT:
;LPT:=Interfacer 3 USER 4 xon/xoff, CRT:=USER 0
;LST:=LPT, PUN:=TTY;, RDR:=TTY:, CON:=CRT:
;LPT:=Interfacer 3,4 USER 4, CRT:=System Support
;LST:=TTY, PUN:=TTY;, RDR:=TTY:, CON:=UC1:
;LPT:=Interfacer 3,4 USER 4, CRT:=System Support
IOBYTE value is the first entry for each switch selection, and --
; IOCNTL = ww$xx$yy$zzb selects the following:
;(second byte ww xx yy 00 CRT:=Interfacer 3 USER O.
;of each entry ww xx yy 01 CRT:=System Support I
;in BIOTBL). ww xx yy 10 CRT:=Interfacer 1,2 UART o.
xx yy 11 CRT:=Interfacer 1,2 UART 1 (Custom Routine).
00 xx yy -- LPT:=Interfacer 3,4 USER 4.
01 xx yy -- LPT:=Interfacer 1,2 UART 1.
10 xx yy -- LPT:=Interfacer 1,2 UART 2 (Custom Routine).
11 xx yy LPT:= II "
xx -- Interfacer 3,4 USER 5 list routine select,
; yy Interfacer 3,4 USER 4 list routine select,
;Where xx and/or yy = 00 Straight output, no software protocol
01 XON/XOFF software protocol active.
10 ETX/ACK software protocol active.
Change the"yybits for the required software protocol. If you are
not sure of the switch value, you can set the yy bits of IOCNTL for
all the switch values. The default software protocol is XON/XOFF
for the system as shipped from CompuPro.
9
To change the hardware handshake to ON, if your peripherals are
using an Interfacer 3 or 4, use the ACTIVE. LIB file.
Find the section that says:
; Interfacer 3,4 composit status masks and activity indicators:
;
INTERF ACER3 EQU TRUE
INTERFACER4 EQU TRUE
IF3TMSK EQU
IF3FMSK EQU
IF3TBE ;or IF3DSR
IF3TBE lor IF3DSR
;Interfacer 3 board is present
;Interfacer 4 board is present
;Xmit ready mask (for either board)
;Xmit buffer empty flip bit mask
;--------------------------------------
;
; System Support I setup characteristics:
SYSUP1 EQU TRUE ;System Support board is present
; System Support Uart Active Status Masks:
SS1TMSK EQU SS1TBE ;or SS1DSR ;Transmit Ready Mask
SS1FMSK EQU SS1TBE lor SS1DSR ;Transmit Ready Bit Flip Mask
Remove the underlined semicolon in the above example. (The
underline will not appear on the screen.)
To change the step rate, use the ACTIVE. LIB file. Change the
underlined number in the table under the:
Floppy Disk (DISK 1) controller and drive constants:
8 inch drive
FLOPPY8 EQU
FPY8X4 EQU
STEPR8 EQU
ULOAD8 EQU
HDLT8 EQU
characteristics:
TRUE '
FALSE
3
240
35
;8 inch floppy disk system (Disk 1) present
;4 drives present (2 is default)
;8 inch drive step rate in milliseconds
;Head unload time delay in milliseconds
;Head load settling time in milliseconds
The number will not appear underlined on the screen.
BEASSEKBLIBG THE COHPDPRO CP/M 2.2 SYSTEM
The first thing that must be done is to create a CCP and BDOS that
have been relocated to the right memory address for this version of
the BIOS. BIOS HMXlBIOS wants to start at E800H, therefore, the
BDOS must start at nDOOH and the CCP mu'st start at D200H (CCP
always starts 1600h bytes below the BIOS). Step one is to tell
MOVCPM the size of the BIOS, then MOVCPM will relocate the CCP and
BDOS to the right place . Once the file ACTIVE.LIB as been set for
your system, the system is built as follows (enter the underlined
words):
10
A)STAT MOVCPM.COM
Recs Bytes Ext Acc
100 14K 1 R/W A:MOVCPM.COM
Bytes Remaining On A: xK
A)jMOVCPM must be 14K bytes long.
A)DDT MOVCPM.COM
DDT VERSION 2.2
NEXT PC
3300 0100
-SB06
B06 14 1B
B07 00 :-
_ ... C -
(This is the hex number of 256 byte pages from
the top of memory to the start of the BIOS.)
A>SAVE 50 MOVCPM.COM
A)MOVCPM 64 ~
CONSTRUCTING 64K CP/M Vers 2.2
READY FOR "SYSGEN" OR
"SAVE 43 CPM64.COM"
A)SAVE 43 CPM64.COM
A)RMAC HMX1BIOS (or RMAC HMX2BIOS)
CP/M RMAC ASSEM 1.1 --
F3AF ( These numbers may change
04FH USE FACTOR
END OF ASSEMBLY
A)LINK HMX1BIOS [LEBOO) (or LINK HMX2BIOS [CLEBOO)
LINK 1.3
ABSOLUTE
CODE SIZE
DATA SIZE
COMMON SIZE
USE FACTOR
OBAF (EBOO-F3AE) (These numbers may change )
0000
0000
0000
00
A)RMAC HMXFBOOT
CP/M RMAC ASSEM 1.1
0200 ( These numbers may change )
016H USE FACTOR
END OF ASSEMBLY
A)LINK HMXFBOOT
LINK 1.3
ABSOLUTE
CODE SIZE
DATA SIZE
COMMON SIZE
USE FACTOR
0100 (0100-01FF) (These numbers may change )
0000
0000
0000
00
A)DDT CPM64.COM (CPMHMX2.COM for HMX2BIOS)
NEXT PC
2COO 0100
11
-IHMXFBOOT.COM
-R800
NEXT PC
2COO 0100
-IHMXlBIOS.COM (or IHMX2BIOS.COM)
-R900
NEXT PC
2COO 0100
-""C
A>SAVE 43 CPM.COM
A>SYSGENCPM.COM
SYSGEN Version 2.2D
Destination drive name (or RETURN to terminate).!
Function complete.
Destination drive name (or RETURN to terminate).cr
A>;Now your "B" disk should boot up
USIBG THE COHPOPRO HDRIVE/n MEMORY DISK
The CompuPro CP/M BIOS includes drivers for an MDRIVE/H memory
disk, containing up to 4 megabytes of fast memory disk on drive
"M", and a "soft" MDRIVE that uses the 8088 and extended address
RAM (memory beyond 64K) on a very fast memory disk.
The CompuPro CP/M BIOS wili automatically determine how many
MDRIVE/H boards are present, if any, or how much memory is there
for the 8088 and set the disk parameter blocks accordingly. The
sizing routine is exactly like the memory sizing, and no data is
destroyed at boot. The system sign on will tell you how many
MDRIVE/H boards it found. If that number does not equal the number
of MDRIVE/H boards in your system, you should check your switch
settings.
Once the system is booted up, the MFORM program is automatically
invoked to format only the MDRIVE/H. You can copy any files that
you want to access very fast onto drive "M" with a "SUBMIT" file or
with "PIP" and get ready ~ f l y !
If the MFORM program sees that the MDRIVE/H has already been
formatted, it will not reformat 'the drive. So, data on the memory
disk is not destroyed when reset is pushed.
MFORM can also be used to format the soft MDRIVE, but you must 'tell
it which drive to format. (It will not automatically format the
soft MDRIVE. See the MFORM.com instructions in the Software section
of this manual.)
12
SOFTWARE SECTION
IBTRODUCTION
The purpose of this section is to descri be the software supplied
with CP/M 2.2 and the CompuPro DISK 1 Floppy Disk Controller for
the Standard IEEE 696/S-100 bus.
This manual is written for those of you who are familiar with the
CP/M BIOS customizing techniques. If CP/M 2.2 was purchased with
the Disk 1 controller then all corrective patches have been
installed. On the other hand if the CP/M was purchased for a
different controller then be sure to obtain and install all CP/M
corrective patches.
The information contained within the document is divided as
follows:
a. Software User's Guide
b. Software Features
c. Software Internal Design
d. CBIOS Customization Guide
The Software User's Guide describes how to use these software
packages:
a. FORMAT.com --disk formatter
b. COPY.com -- disk copy utility
c. SYSGEN.com -- system track copy utility
d. DISK2.com/DISK3.com -- hard disk formatters
e. MFORM.com -- memory disk formatter
The next section describes the external features of the supplied
software. This section describes the enhancements and assumptions
made by the CompuPro CBIOS routines and utility routines.
The Software Internal Design section describes the design of the
supplied software. This section should help you understand how the
software components work; thus making it possible for you to
modify the software for your hardware configuration.
APPLICABLE DOCUHEIIrS
The reader should be familiar with the following documents.
a. NEC uPD765 Floppy Disk Controller Application Note
b. INS265l Programmable Communications Interface Note
c. CompuPro DISK 1 Floppy Disk Controller Description
d. An Introduction to CP/M Features and Facilities
e. CP/M Operating System Users Guide
f. CP/M Operating System System Guide
g. CP/M Operating System Programmers Guide
13
SOFTWARE USER'S GUIDE
The following paragraphs describe the operating featuresof the
supplied utility programs.
FORHAT.com -- Floppy Disk Format Utility
The FORMAT.com utility program is supplied so if you have a DISK 1
board, you can change the density of your disk (data is destroyed).
The FORMAT.com utility formats floppy disk in IBM compatible
formats; not all disk controllers are IBM compatible.
FORMAT contains the DISK 1 board interface routines allowing the
user to run under a c u r r e ~ t IEEE 696 CP/M system.
FORMAT has simple and straightforward operating instructions. You
are prompted for input to control the utilities flow. Start FORMAT
by entering the following:
FORMAT [RET]
or
FORMAT drive [RET]
If the drive is not specified on the command line then the FORMAT
utility prompts you with the following line:
Specify drive (A: - P:)
Enter the drive (A thru P) and FORMAT continues.
After you have specified the drive to be formatted, FORMAT attempts
to determine the specified disk's format. The disk format or lack
thereof is displayed for you and a message requesting the new
format selection is displayed. The format of these displays are as
follows:
8" disk: 77 tracks, 1 sided, format flO, 128 byte sectors.
Track 0, All other tracks, Density, Format type:
128/SD, 26 x 128 bytes, Single = 0 IBM 1 (3740)
128/SD, 26 x 256 bytes, Double 1
128/SD, 15 x 512 bytes, Double 2
128/SD, 8 x 1024 bytes, Double 3
Select Disk format type (0-3):
o 128 2 512
1 = 256 3 = 1024 >
14
Enter the disk formatting selection and the FORMAT utility begins
formatting the disk. As each track is formatted an F appears on
the screen (total of 77). After formatting all the tracks, FORMAT
begins a verify operation. This verify operation shows you
possible bad spots on the floppy disk. The screen will look like
this:
Confirm ready for format on disk drive B (y)._
1 2
012345678901234567890
FFFFFFFFFFFFFFFFFFFFF
VVVVVVVSSSVVVVEEEVVVV
6 7
012345678901234567
FFFFFFFFFFFFFFFFFF
VVVVVVVVVSVVSVVEEE
Symbol meaning: F -- successful format operation.
V -- read verified.
S error occurred but retry worked.
E -- hard failure.
After the verification, FORMAT asks if another disk is to be
formatted. Your answer will result in one of three actions:
1. Return to CP/M.
2. Format another disk with the same parameters.
3. Change formatting parameters.
FORMAT can be used in many ways. You can see y6ur options by
entering the following command line:
FORMAT ? [RET]
This will result in the following. display: .
FORMAT will format a diskette to be compatible
with the CompuPro disk subsystem. The FORMAT program
will format a diskette as either 128, 256, 512 or 1024
byte sectors, depending on the user request.
The format command has several optional arguments, all
associated with any logical drive connected to a DISK
1 controller or Memorydrive.
FORMAT d: II will format Drive "d:", with type "II", and
is primarily intended for batch formatting.
FORMAT d? will display the format of Drive "d:".
FORMAT d* will re-write the directory of "d:" with all
entries marked as "not in use" (repaired).
FORMAT d! is specifically for Memory drives: - IF - it
has not already been formatted, then the "d:" directory
will be reformatted as above, otherwise the drive will
not be affected.
15
COPY.coa -- Disk Copy Utilities
The COPY.com utility program performs diskette copy functions.
This program is intended to be used to copy an entire diskette to
another diskette. It performs this by reading in a track of data,
writing it out, reading it back in and comparing.
You must tell this program the following information:
1. Area of diskette to be copied.
2. Source drive.'
3. Destination drive.
These programs get t h i ~ information by prompting y o ~ w i t h t h ~
following messages:
CompuPro COpy Utility Version 2.X.
Select one:
(A) All tracks
(D) Data tracks only
(S) System tracks only
(X) Return to CP/M
(?) Provide helpful information
Selection:
Source drive (a-p):
Destination drive (a-p):
Enter newline to start copying (cr)
As with the FORMAT program, the following is available:
COPY ?
This will result in the following display:
Copy will copy disks on the CompuPro
disk subsystem. To start, type:
COpy <portion><cr>
Where <cr> is the Carriage Return
and <portion> is S = system, D = data or
A = all. If not entered, a reminder
will be displayed.
You are then asked for the source and destination drive.
16
SYSGEH.coa -- Systea Tracks Copy Utility
The SYSGEN program is used to put the BOOT routines and CP/M system
on the system tracks (0 and 1) of a disk drive formatted in any of
the MFM modes. SYSGEN will put a BOOT program on track 0 that is
written in 8080 code.
The SYSGEN program may be given a source CPM.COM file as part of
the command line as shown below:
SYSGEN CPM.COM
SYSGEN Version 2.2D
Destination drive name (or return to terminate). !
or SYSGEN will get the CP/M system for a specified source drive as
follows:
A) SYSGEN
---
SYSGEN Version 2.2D
Source drive name (or return to skip). !
Function complete
Destination drive name (or return to terminate): B
Function complete
Enter a drive name. The program will put the BOOT 8080 routine and
the CPM.COM file on the system tracks (0 and 1) of the "B" drive.
The SYSGEN utility will continue to ask for a destination drive
until only a return is pressed.
DISK2.com - Bard Disk Format/Test Utility.
Before using your hard disk, you must format it with the "DISK 2"
utility provided with all CompuPro S100 systems. The "DISK 2"
program will format, verify and test your hard disk drive. Any bad
places on the disk that are found will be reported and "blocked" or
remapped so the operating system will not use them. The different
options that can be used are listed below.
Usage: DISK 2 {options}
. At least one option must be specified. You can mix any of the
options. Options consist of:
mlO
m20
f40
drive
format
data
test
seek
all
skew /I
/I
Set drive type to Fujitsu 10 Mbyte
Set drive type to Fujitsu 20 ~ b y t e
Set drive type to Fujitsu 40 Mbyte BE
Format selected drive
Format headers
Write out data fields with ESH
Perform a data field test
Perform a seek test
Perform format, data test, seek test
Set skewing of disk to specified number
This option goes along with hardware settings.
17
Defaults:
If an opti<?n is riot specified then the following defaults are used:
M20
skew of 2
sector size 1024
drive 0
no tests or formatting
Examples:
disk2 format data
disk2 m20 all
disk2 data
disk2 format data drive 1 skew 3 m10
DISKl.co. - Formatting the DISK 3
Use this utility program to format the DISK 3. The "DISK 3"
program will format, verify and test your hard disk drive. Any bad
places on the disk that are found will be reported and "blocked" or
remapped so the operating system will not use them. After running
the "ALL" test, DO NOr reformat your drive. R'eformatting will
destroy the bad sector map! The dIfferent options that can be used
are listed below.
Usage: DISK 3 {options}
At least one option must be specified. If a drive type is not
specified, D3FMT will ask you for all of the needed drive
specifications. You can mix any of the options.
Options consist of:
st412
cmi5619
q540
st506
help
format
drive II
test
seek
all
verify
sector size
dummy
Set drive to Segate ST 412 10Mbyte
Set drive to CMI 5619 20 Mbyte
Set drive to Quantum 540 40Mbyte CompuPro
standard
Set drive to Seagate 506 5Mbyte
Print list of commands and options
Format headers and data
Format selected drive
Perform a data field test
Perform a seek test
Perform format, data test, seek test
Verify sector. headers
Set sector size for drive
Do nothing except put out an unused bad map
(pristine) - useful for retrieving data from
damaged file system
18
The defaults for this program are:
q540
step rate in 0 increments of 100 us
head settle time is 0 ms
sector size of 1024
sectors per track is 9
/I of heads is 8
/I of cylinders is 512
pre com will start on cylinder 256
reduce current will start on sylinder 512
interleave of 1
retry count is 8
reserved track count is 21
drive 0
no tests or formatting
HFORH.co. - He.ory Disk Format Utility
The MFORM program will format any size CompuPro MDRIVE/H memory
disk, using a format compatible with all of the CompuPro CP/M
MDRIVE/H implementations. This means that you can transfer files
between CP/M 2.2 and CP/M-86 by putting files on the MDRIVE/H
memory disk.
The CompuPro BIOS uses the auto-vector feature of CP/M to invoke
MFORM at cold boot. If the MFORM program sees that a memory drive
has already been formated, it wi 11 not ref ormat the memory disk.
Thus data on the memory disk when reset is pushed.
You can force a reformat of the memory drive by typing:
A)HP'ORHH
The program will prompt you and ask if you really want to proceed
and destroy all the data.
Once the memory disk is formatted, you can use it just like any
other disk drive.
19
SOFTWARE FEATURES
This section describes the features and the assumptions made in the
following routines:

DISK 1 ROM I BOOT

DISK 1 LOADER

DISK 1 CBIOS

DISK 1 FORMAT

COpy Program

SYSGEN Program

MFORM Program
The above programs assure a disk which has been formatted by the
DISK 1 FORMAT utility. The DISK 1 FORMAT utility always formats
side 0 cylinder 0 in 128 bytes sectors, FM, 26 sectors per track.
The rest of the disk is formatted in one of the following optional
formats:

128 byte sectors, PM, 26 sectors per track.

256 byte sectors, MPM, 26 sectors per track.

512 byte sectors, MFM, 15 sectors per track.
1024
byte sectors, MFM, 8 sectors per track.
Also note that due to the size of the DISK 1 CBIOS; a CP 1M System
disk must be recorded in one of the MFM modes.
CoapuPro DISK 1 ROM/Boor
The CompuPro DISK 1 ROM code must reside within 256 bytes and
contain no memory data references. The ROM code is therefore
straight line code performing the following functions:
Reads the first four sectors (BOOT program).
Disables the ROM.
Begin executing the BOOT program.
The BOOT program resides in the first four sectors of the disk (512
bytes). It is read by the ROM code into location 0100h and
performs the following functions:
Reads in the CP/M LOADER.
Sends the SPECIFY command to all floppy disk controllers
in the system.
Initializes all serial I/O ports.
Jumps to the Cold Start entry of the LOADER.
The CBIOS'resides in the 3rd thru 26th sectors of the disk. The
code for the ROM and BOOT is very similar and assumes FM disk read
(side 0 head 0 is always FM).
20
CompuPro COLD BOOT
The CompuPro CP/M COLD BOOT does the system initialization, dis-
plays a sign on message, perform a cold start which loads the CP/M
BDOS and CCP file into memory and transfers control to the CCP.
Cold Start
The Cold Start code performs the following functions:
Initialize, System. Segment Location 3 -- IOBYTE
System Segment Location 4 - Current Flexible disk
Perform the Warm Boot function
Transfer control to CCP.
Size both types of MDRIVE
Load the CCP and BDOS off of the system disk
Move a copy of the CCP & BIOS to very high RAM for warm
boots (if 8088 switch is on).
CoapuPro DISK I CBIOS
The CompuPro DISK I CP/M CBIOS implements all of the jump vectors
described in the CP/M 80 Operating System System Guide.
Since the CompuPro CBIOS uses Blocker/Deblocker code to handle the
MFM recorded disks; assumptions are required because CP/M 2.2 does
not inform the CBIOS when to flush the disk buffer. Floppy disks
are removable media and before a disk can be safely removed the
disk buffer must be flushed. Before a change of disk is performed
one of the following sequences ~ be performed:
1. A warm start.
2. Close all files and reset a disk.
3. Call the CBIOS HOME routine.
Failure to perform one of the above sequences might result in disk
data being written on the newly inserted disk.
Warm Boot
The Warm Boot code loads the CP/M CCP and BDOS modules and transfer
control to the CCP.
Unit Record
The Standard Unit Record Input/Output routines are:
Console Status.
Console Input.
Console Output.
21
List Output.
List Status.
Punch Output.
Reader Input.
The code included in the CompuPro DISK 1 CBIOS assumes you have a
CompuPro INTERFACER 1,2,3,4 or SYSTEM SUPPORT 1. The default
console, reader, punch, and list port assignments are shown in the
table below:
INTERFACER 1 or 2:
SYSTEM SUPPORT 1:
INTERFACER 3 or 4:
Console -- ports 0 & 1
List -- ports 2 & 3
Reader,Punch -- ports 2 & 3
UL1 -- not supported
Console -- ports 05CH & 05DH
List -- port 10, user 4
Reader,Punch not supported
UL1 -- port 10, user 5
Console -- port 10, user 7
List -- port 10, user 4
Reader,Punch -- not supported
UL1 -- port 10, user 5
Other serial Input/Output controllers are quite similar and usually
require very little modification, however, parallel or memory
mapped video is a different subject and extensive
might be required.
Boae
The HOME routine flushes the Blocker/Deblocker buffer and sets the
selected track to zero (0).
Select Disk
The Select Disk routine performs the following functions:
Checks for valid drive selection.
Computes the specified drive's DPH.address.
If this is a "first time call" then
the disk type is determined.
Set Track
Sets the selected track to the specified value for a subsequent
disk transfer.
Set Sector
Sets the selected sector to the specified value for subsequent disk
transfer.
Set Disk Memory Address
Sets the disk memory buffer address. for the next disk transfer.
22
Set Extended Address
This routine allows the user to set the high order byte of the DMA
address. This allows you to access the entire memory address range
available on the IEEE 696 bus.
Set Nuaber of Sectors
This routine allows you to access more than one sec tor on a track
at a time. This feature is only useful for individuals who perform
direct transfers with the CompuPro CBIOS.
Read from Disk
A 128 byte record is transfered from the disk previously specified
by the Select Disk, Set Track, and Set Sector routines, into the
memory buffer defined by the Set Disk memory address routine.
Vrite to Disk
A 128 byte record is transfered from the memory buffer to the
previously selected disk track and-sector.
Translate Sector Nu.ber
A sector translation function is performed on the specified sector
using the translation table specified the the caller.
DISK 1 FORHAT
The DISK 1 FORMAT utility has some important features. One of
these features is the automatic determination of the number of
sides the disk supports. The FORMAT utility will adjust the
formatting parameters for a two-sided disk.
Another feature of the DISK 1 FORMAT utility is to perform a read
verify which gives you a check on the ability of the disk to retain
data. We have found disks which will have read errors at one
density but not a another. If a disk has hard or soft errors at
all densities, then this could indicate one of the following
problems:
1. Disk media is bad.
2. Drive heads are dirty.
3. Drive is out of adjustment.
4. Controller is out of adjustment.
A third feature of the FORMAT program is its ability to format
CompuPro MDri ve disks.
23
By typing A)Format ?, a help message will be displayed that
discusses all of the format options.
The ability of the FORMAT program to repeat the identical format on
another disk saves time when formatting batches of floppy disks.
Features the purchaser might want to add to the DISK 1 FORMAT
utility are:
o Formatting System Tracks only.
o Formatting Selected Tracks only.
COPY U t i l i ~
The COpy routine performs a track by track copy of the source disk
to your specified destination disk.
COpy uses the 765A/8272 multi-sector commands for reading and
writing the data. The only known restriction with this program is
that the format of the disk must be compatible with the NEC
definition for FM and MFM and the source and destination disks must
be exactly the same format and contain the same number of sides.
SYSGEN Utilities
The SYSGEN program will put the BOOT and CP/M 2.2 System onto the
system tracks (0 & 1) of a user specified destination disk.
The SYSGEN routine wil-1 writ'e to either single or double sided
disks, and since the system tracks are always FM, SYSGEN can put
the BOOT and LOADER onto a disk formatted in any of the standard
MFM formats.
HFORK U t i l i ~
The MFORM Utility will format any size CompuPro MDRIVE/H memory
drive. MFORM is invoked automatically at power on, but will not
reformat when just the reset button is pressed. So, as long as
power remains on, the system can be reset without destroying the
data on the memory drive.
24
SOFTW ARE INTERNAL DESIGN
This section describes the general flow and philosophy of the
supplied components.
CompuPro DISK 1 ROM/BOOT
The DISK 1 ROM and BOOT routines are very straightforward. They
are both straight line code routines with few loops. The important
item to remember when reviewing the listing is the following system
disk layout:
Cylinder 0, Head 0 FM recording; 128 byte sectors 0-1
reserved for CompuPro DISK 1 BOOT. Sectors 2-23
reserved for CompuPro DISK 1 CBIOS. Sector 25 reserved
for RESTART code loaded at FFF8:0070 (actual location
OFFFFO)
Cylinder 0, Head 1 MFM recording; 256, 512, or 1024 byte
sectors. Sectors 1-n - not used.
Cylinder 1, Head OMFM; 512 byte sectors. Sectors 0 -3
reserved for CCP. Sectors 4-11 reserved for BDOS.
Sectors 12-15 reserved.
Cylinder 1, Head 0 MFM; 1024 byte sectors. Sectors 0-1
reserved for CCP. Sectors 2-5 reserved for BDOS. Sector
6,7 reserved.
Cylinder 1, Head 1 MFM; 256,512, or 1024 byte sectors.
Sectors 1-n not used.
The value of 'n' which equals sectors per track is: 26 for 256
byte sectors, 15 for 512 byte sectors, 8 for 1024 byte
CompoPro DISK 1 LOADER
The CompuPro DISK 1 LOADER's basic funct:ionis to initialize any
hardware that requires it, to load in the CBIOS (located on
0) and transfer execution to the CBIOS cold start.
CoapuPro DISK 1 CBIOS
The CompuPro DISK 1 CBIOS literally makes CP/M work. The CompuPro
DISK 1 CBIOS uses a modified version of the CP/M DEBLOCK routines.
The modification stems from the fact that mUltiple sector formats
are supported. All CP/M disk transfers are 128 bytes in length,
and a method for combining the 128 byte transfers into a single
transfer is required.
The description of tables and variables used in the CompuPro DISK 1
CBIOS are key to its understanding; therefore the following
paragraphs describe the key tables and variables.
25
The DPBASE table contains a CP/M Disk Parameter Header (DPH) for
each logical disk drive. The DPH is described in the Alteration
section of the CP/M! Operating System manual by Digital Research.
A few comments here are appropriate. The DPH is used mostly by
CP/M, but five entries are of interest to the CompuPro DISK 1 CBIOS
- the relative drive number, the Translation Table Address, the
Disk Parameter Block (DPB) Address, the Check Vector Address, and
the Allocation Vector Address. The Check Vector Address and
Allocation Vector Address are mentioned here, because storage
within the CompuPro DISK 1 CBIOS must be reserved for these CP/M
tables.
The relative drive number tells the CBIOS which drive on a
particular controller is being accessed.
The Translation Table Address is used to translate CP/M consecutive
sectors into software interlaced external sectors. In order to
maintain compatibility between single density disks, a six sector
interlace table is used; but for other sector formats different
tables are used.
The most important entry within the DPH is the Disk Parameter
Block. This address points to a table -- one table for each disk
type -- which describes the storage characteristics of associated
disk type. The CP/M ~ Operating System manual describes the entries
within the DPB, but the Guide does not describe why the CompuPro
DISK 1 CBIOS has defined the DPB values. The format of the
CompuPro DISK 1 CBIOS DPBs follows:
Disk type definition blocks for each particular mode. The format
of these areas are as follows:
8 bit
16 bit
8 bit
8 bit
8 bit
16 bit
16 bit
16 bit
16 bit
16 bit
Disk type code
Sectors per track
Block shift
BS mask
Extent mask
Disk size/1024 - 1
Directory size
= Allocation for directory
Check area size
Offset to first track
The Sector translation tables contain values which are CP/M
compatible or compatible with other popular CP/M implementations.
Now that the description of the tables is complete, the key
variables need to be described. The variables contain information
about various stages of a disk transfer. The following variables:
ACTDSK
ACTTYP
ACTTRK
ACTSEC
Disk Selection Value
Disk Type
Track Number
Sector in Track
26
The information about the data contained within the host disk
deblocking buffer is contained in a corresponding set of variables
called HSTDSK, HSTTYP, HSTTRK, and H S T S ~ C . The SEKxxx variables
contain the initial CP/M data transfer request. The variables
might result in an actual physical transfer, or the data requested
could be contained in the host disk deblocking buffer. Each time
CP/M calls the WRITE routine, the C register contains a value which
indicates one of the following:
o Write to an allocated block
1 Write to the directory
2 First write to a previously unallocated block
How the CompuPro DISK 1 CBIOS uses these values and other variables
reduces the number of unnecessary pre-reads.
The following paragraphs describe the differences between the CBIOS
described in the CP/M 2.2 and the CompuPro DISK 1 CBIOS
implementation. The reader should be especially familiar with
Sec tions 6 and 12.
The SECTRAN routine differs from the Alteration description in the
Digital Research documentation by testing register DE. If register
DE is zero, then no sector translation is performed. Otherwise, DE
contains the translation table address.
Since the CompuPro DISK 1 CBIOS attempts to detect the density and
number of sides of a floppy disk contains, the SELDSK diverges
significantly from the Alteration Guide. When the SELDSK is
invoked by CP/M, the disk selection value is saved. SELDSK
calculates the DPH address, and the least significant byte of DE is
tested for zero. If the bit is non-zero, then the disk type is
extracted and saved, and the DPH address is returned.
The more complicated process begins when the bit is zero.
SELDSK routine calls TRE4D to try and determine the floppy
type. If TREAD returns with the zero flag set, then the type
determined. SELDSK then computes the appropriate DPB address
initializes the translation table and DPB address in the DPH.
The
disk
was
and
The READ routine appears simplified, but this is a result of
modularizing its code. This routine first calls for the CHKBKD,
which checks the disk type for single density floppy. If the disk
is a single density floppy, then the READ routine jumps to the
physical sector reading routine FINAL. If the disk is not a single
density floppy, then the host buffer is filled by the FILL routine,
and the appropriate 128 byte sector is moved to the user's buffer.
The WRITE routine is significantly more complicated than the READ
routine. This complication results from the attempt to reduce the
number of unnecessary pre-reads of the disk.
27
The WRITE routine calls CHKBKD to determine the disk type. If the
disk type is a single density floppy, a jump to the physical WRITE
routine is performed. If the disk type is not a single density,
then the logic parallels the WRITE routine documented in the
Alteration Guide.
CompuPro DISK 1 CBIOS is written fairly straight forward, and only
two places are "tricky". The first sneaky portion is in the FILL
routine. The FILL routine returns two parameters on the stack:
the host buffer address, and the caller's buffer address. The code
to place these two addresses into the stack starts wi th the XTHL
instruction. The other "sneaky" code is in SETUP. SETUP pushes
the transfer routine address onto the stack so that the EXEC
routine jumps directly to the appropriate disk transfer routine.
This concludes the description of the CompuPro DISK 1 CBIOS. If
you want more detailed information, refer to the listings and
source of the supplied CompuPro DISK 1 CBIOS.
28
HARDWARE SECTION
TK.OUBLESllOOlDIG YOUR SYSTEM
The following table has been designed to aid you in the event your
system does not operate correctly:
Problem
Pan off, power
indicator
not lit:
Pan on, power
Indicator
not lit
Power on, but
disk drive
indicator light
does not blink:
Probable Cause
FLOPPY DISK
Power cord not
plugged in.
Power cord not
plugged into rear
panel of system.
Wall outlet not
live.
Main. circuit
breaker has
tripped.
Indicator light
bad.
Internal connection
loose .
Power supply
connection" loose.
Disk drive
not plugged in.
Power cord 'riot
plugged in.
Floppy disk drive
breaker switch not ON.
Circuit breaker
on disk drive rear
panel tripped.
29
Remedy
Plug in cord.
Plug in cord.
Check outlet.
Check circuit
breaker.
Check system
for shorts; turn
br.eaker OFF,
then back ON.
Contact dealer.
Contact dealer.
Contact dealer.
Plug it in.
Plug it in.
Turn it ON.
Check connections
for shorts; turn
breaker OFF, then
back ON.
Problem
Disk drive
indicator light
does not blink:
Dr! ve head loads J
seeks J but systea
does not boot up:
Drive does DOt
inil:lallze
Probable Cause
Cable improperly
connected.
System not
initialized.
Floppy diskette
inserted
incorrectly.
Incorrect
diskette inserted.
Cables and plugs
incorrectly connected.
HARD DISK
Data or control
cable connected
incorrectly.
Power supply
connection loose.
Drive head not
unlocked.
CPU switch
settings incorrect.
Internal drive
cable unplugged.
Internal drive
cable disconnected.
Error in tracks
o and 1.
30
Remedy
Re-connect it.
Push RESET on
Enclosure 2
front panel.
Insert diskette
with label facing
up and away from
slot.
Insert CP/M boot
diskette.
Refer to board
manuals.
Methodically
change cable
connections.
Contact dealer.
Unlock head.
Reset switches.
Check cable
connections.
Undo cover of
drive cabinet
and re-connect.
Contact dealer.
---P;;blem ----r--- Cause r Remedy

--------__ ----1 1 ______________ __
System sounds
like it booted up
but no message on
the terminal:
Terminal cable
incorrectly
connected.
Terminal
incorrectly set.
Terminal not,
powered up.
1/0 board switches
not set properly.
I/O board
headers not
wired correctly.
Bad RS232 cable.
31
Check cable
connections.
Check baud
rate and word
size settings.
;Plug in' terminal
and turn on.
Reset switches.
'Recheck
connections
on headers.
Try another
cable.
HARDWARE SETTINGS FOR CP/M
CPO 8085/88 - Switch Settings:
SI S2 S3
OFF ON OFF ON OFF ON
I -11
I-
I 1
I--
I 1
I -12
I-
I 2 I -12
I -13
I--
I 3
I--
I 3
I- I 4
I-
I 4
I-
I 4
I-
I 5
I-
I 5 1=- I 5
I-
I 6
I-
I 6 I- I 6
I -17
I-
I 7 1=- I 7
I- I 8
I-
I 8
I-
I 8
I I I I I I
CPO Z - Switch Settings:
S1 S2 S3
OFF ON OFF ON OFF ON
I-
I 1
I-
I 1 I=- I 1
I-
I 2
I-
I 2 1=- I 2
I-
I 3
I-
I 3 1=- I 3
I-
I 4 1-= I 4
I-
I 4
I-
I 5
I-
I 5 I =-1 5
I- I 6
I-
I 6 I- I 6
I- I 7 1=- I 7 1-.. I 7
I- I 8
I-
I 8 I=- I 8
I I I I I I
SYsrEK SUPPORT 1 - Switch Settings:
SI S2 S3
OFF ON OFF ON OFF ON
I-
I 1 I -11
I-- I 1
I-
I 2 I
=-1 2 1=- I
2
I-
I 3 I
..... 1 3
I--
I 3
I -I 4 I -I 4 1== I 4
I- I 5 I ..... I 5 I =-1 5
I ~ = I 6
I-
I 6 1=- I 6
I -17
I-
I 7 I -I 7
1- I 8
I--
I 8 1=- I 8
I I I I I I
32
Jumpered Settings:
J1 -- Serial port connection.
J2 -- Insert a dip shunt, shunting all 8 lines.
J3 -- Plug an auxiliary battery cable into this connector, red
wire toward the left.
J13 -- Insert shorting plug onto prongs 8 and C (if you have a
CPU 8085/88).
Insert shorting plug onto prongs C and Z'(if you have a
CPU Z).
Remaining jumpers are left unconnected.
ROM Sockets:
U16 -- Install a 6116 RAM chip or ""GO 86,", EPROM (if you have a
CPU 8085/88).
RAN 22 MEMORY BOARD - Switch settings
1st .256K 2nd 256K 3rd 256K 4th 256K 5th 256K
OFF .ON OFF ON OFF ON OFF ON OFF -ON
1
1
1 - 1
1
1 -- 1
1
1 1 1
I 1
1 -=1
2
1
..... 1 2
1
..... 1 2 1 -I 2
1 ==1
1 ==1
3
1
a::rl 3
1 ==1
3 1 -I 3
1 -I
I
... =1 4
I
..... 1 4
I
..... 1 4 I = ... 1 4 -.j.
-I
I ==1 5
I =1
5
I ==1 5 I
..... 1
5 1-== I
I ==1
6
I ==1
6
1== I
6 1== I
6
I ==1
1 ==1
7
1== I
7
I ==1
7 1= I
7
I ==1
I I- 8 I --- I
8
I --- 1
-8 I -- I
8
I ---
1 1 I I 1 1 I I I 1
OOOOOOH 040000H 080000H OCOOOOH 100000H
1
2
3
4
5
6
7
8
NOTE: This board does not allow any-of the four 64K blocks on the
board to be disabled.
BAH 21 HEHORY BOARD - Switch Settings for-Sl:
1st 128K 2nd 128K 3rd l28K 4th 128K
OFF ON. OFF ON OFF ON OFF ON
==1
1
L ==1
1
1 =1 1 1 ==1
1
==1 2
1 ==1 2
I ==1
2
I ==1
2
==1 3
I ==1
3
I ==1 3
I ==1
3
= ~ I 4
1 ==1
4
I ==1
4
I ==1 4
==1 5
I ==1 5
I ==1 5
I ==1' 5
==1 6
I ==1 6
1== I
6
1= I
6
==1
7
1== I
7
1 ==1
7 I-- I
7
I 8
I -- I
8
I --- I
8
I --- I
8
I I I 1 I I I
0-1FFFF 20000-3FFFF 40000-5FFFF 60000-7FFFF
33
RaK 17 MEMORY BOARD - Switch settings for Sl:
OFF ON
I- I 1
I -12
I -13
I -14
I --I 5
I -16
I -17
I =-1 8
I -19
I -110
I I
Switch Settings for S2:
1st 64K 2nd 64K 3rd 64K 4th 64K
OFF ON OFF ON OFF ON OFF ON
I- I 1 I- I
1 1== I 1 1-= I 1
I'
a_I 2
. I
-I
2
I =-= I 2 I =-1 2
I -13 I =-1 3
f ==1 3 I -=1 3
I -14 I - ~ I 4 I ==1 4 I ==1 4
I =-1 5 I -15 I ==1 5 I =-1 5
I -16 I
..... 1 6
I -16 I =1
6.
I
.... 17
I -17 I -17 I -I
7
I -18 I -18
I ......
I 8 1-..
I
8
I --19 I- I 9 I -19
1= .. I 9
I -110 I -110 I ==110
I =110
I I I I I I I I
O-FFFF 10000-lFFFF 20000-2FFFF 30000-3FFFF
RAK 16 MEMORY BOARD - Switch Setting for Sl:
1st 64K 2nd 64K 3rd 64K 4th 64K
OFF ON OFF ON OFF ON OFF ON
-11 I =-1 1 I ==1 1 I
=-1 1
-12 I -12 I -12 I ==1 2
-I 3
I
--13 I ==1 3 I ==1 3
-14 I =-1 4 I ==1 4 I =14
-15 I ==1 5 I ==1 5 I =-1 5
--I '6
I -16 I
..... 1 6
I
==1 6
-17 I -17 I- I 7 I- I 7
--18 I- I 8 I --I 8 1-= I 8
I I I I I I I
O-FFFF 10000-lFFFF 20000-2FFFF 30000-3FFFF
34
DISK lA - The standard switch settings for running 8" floppies as
drives "A" and "B", and 5.25" floppies as drives
C ..
and "D" are as
follows:
S1 S2 S3
OFF ON OFF ON OFF ON
1 =1 1 1== 1
1 1== 1
1
1 ==1 2 1== 12
1 ==1 2
1 =1 3 1== 1
3 I ==1 3
1* *1 4 1== 1
4
1 ==1 4
1* *1 5 1== 1
5
1
==1 5
1* *1 6 1== 1
6 1== 1
6
1== 1
7 1.:.=
1
7 1== 1
7
1== 1
8
1 ==1 8
1 ==1 8
1 1 I 1 1 1
*Sl positions 4-6 must be set as shown below depending on the type
of CPU being used
Sl POSITION
4 5 6
ON ON ON
ON ON OFF
ON OFF ON
ON OFF OFF
OFF ON ON
OFF ON OFF
OFF OFF ON
OFF OFF OFF
J1 - POSITION "5"
J2 - POSITION "5"
J3 - POSITION "8"
J4 - POSITION "8"
Js - REMOVED
and the I/O device beingused as the console.
CPU TYPE CONSOLE I/O DEVICE
CPU 86/87 INTERFACER 1/2
CPU 68K SYS. SUP./ INTERF.
CPU 86/87 SYSTEM SUPPORT
CPU 86/87 INTERFACER 3/4
CPU 85/88 - Z INTERFACER 1/2
NOT SUPPORTED
CPU 85/88 - Z SYSTEM SUPPORT
CPU 85/88 - Z INTERFACER 3/4
J6 - A-C FOR MINIFLOPPIES GENERATING READY, OTHERWISE B-C.
J7 - B-C (TWO WAIT STATES)
J8 - LEAVE AS SHIPPED
J9 - LEAVE AS SHIPPED
J10- SHUNT ON "4"
J11- SHUNT INSTALLED
3/4
These settings select DMA arbiter priority 15, port COH-C3H, wait
states enabled, and the BOOT routine as selected.
35
DISK 1 FLOPPY DISK CORT.ROLLER
Switch Settings for 8" drives: (Disk 1-8)
Sl S2
OFF ON OFF ON
==1 1
1------;;;1
1*
1== I
2
I ==1 2*
1== I 3
1== I 3
1== I
4-
1== I
4
1== I S I ==1 S
1== I
6
I ==1
6
1-= I
7
I ==1
7
1== I
8
I -=1 8
I I I I
- OFF to BOOT from a Floppy Disk, ON to BOOT from a Hard Disk.
* Paddles 1 & 2 ON for INTERFACER 1 & 2; Paddle 1 OFF, Paddle 2 ON
for SYSTEM SUPPORT 1; Paddle 1 & 2 OFF for INTERFACER 3 & 4
- Jumpered Settings: J16 -- Install a jumper on B-C
J17 -- Jumper A-C
Switch Settings for 5.2S" drives: (Disk l-S)
S1 S2
OFF ON OFF ON
1--=';1
1
I ==1
1
1== I
2
I =1 2
1== I
3 1== I
3
I ==1 4
1== I
4
1== I
S I ==1
S
1= I
6
I ==1 6
1== I
7
1== I
7
1-= I
8
1== I
8
I I I I
---
* Paddles 1 & 2 ON for INTERFACER 1 & 2
- Jumpered Settings:
If your minifloppy does not drive the READY* line, install a
jumper on J15 between "A" and "B". If your minifloppy
does drive the READY* line, install a jumper between "A"
and "C".
If you are using double-sided diskettes in your minifloppy, you
must ground the "TWO-SIDED" line on the Dtsk 1-S board.
36
D I S ~ 2/SELECTOR awIIIEL BARD DISK COJID.OLLER.
DISK 2 Switch Settings:
Sl S2
OFF ON OFF ON
I-- I
1
I-- I
1
I-- I
2
I- I
2
I -I
3
I --I
3
I- I
4
I -I
4
I -I
5
I- I
5
I- I 6
I -I
6
I -I
7
I -I
7
I- I
8
I -I
8
I--
I 9 I I
1- 110
I I
SELECTOR CHANNEL Switch settings:
Sl
OFF ON
I-- I
1-
I -I
2
I- I
3
I-- I
4
I- I
5
I- I
6
I -I 7
I -I
8
I -19
I -110
I I
- OFF to BOOT from Floppy Disk: On to BOOT from Hard Disk
Jumper settings:
J8 Jumper installed on "+" if INTERFACER 3 or INTERFACER 4
Jumper installed on "G" if SYSTEM SUPPORT 1 or INTERFACER 1
J9 Jumper installed on "+" if INTERFACER 3, INTERFACER 4, or
SYSTEM SUPPORT 1
Jumper installed on "G" if INTERFACER 1
J10 Jumper installed on "G"
37
DISK 3 Switch Settings:
SI S2
OFF ON OFF ON
I- I
1 I- I
1
I =1
2
I ==-1
2
I ==1
3
I =-1
3
1== I
4
1== , I
4
I ==1
5
I I
5
I ==1 6 I I
6
I -I
7
I I
7
I I
8
I I
8
I I I I
Jumper Settings:
Jl Connector for drive 1 radial cable.
J2 Connector for drive 2 radial cable.
J3 Connector for drive 3 radial cable.
J4 Connector for drive 4 radial cable.
J5 Connector for daisy chained cable cable for all drives.
J6 (Not currently used.)
J7 B-C
J8 A-C
J9 Jumper position 1.
JI0 Jumper top position.
IBrERPACER 1
Sl - Set paddles according to baud rate settings described in
Technical Manual (example is for 9600 baud).
SI S2 S3
OFF ON OFF ON OFF ON
I ==1
1
I ==1
1 1== I
1
1== I 2 I ==-1 2 I ==1
2
1-= I 3 I ==1
3
I ==1
3
1= I
4
I ==1
4
I -=1
4
..
I ==1 5 I -I 5 I -=1
5
I- I 6 I ==1 6 I '. ==1
6
1-=
. I
7
I ==1
7 I =1
7
1== I 8
1= I 8
1- I
8
I I I I I I
Jumpered Settings: J3 & J5- Pin 1 to 15
Pin 2 to 16
J4 & J6 - Pin 6 to 7
38
IllElPACEa 3 - Switch Settings for Sl:
OFF; "ON
1- 1
I 2
-I - 3
I '4-
1- 5
I 6
I 7
I a
1 __ -
Jumpered Settings:
J1 -- Insert a dip shunt, shunting all a lines.
Consult manual for hardware handshaking.
J2 -- Insert a dip shunt, shunting all 8 lines.
Consult manual for hardware handshaking.
J17 -- Jumper top two pins.
Remaining jumpers unconnected.
DIEIlPACIDt 4: - Switch Settings:
S1 S2 S3
OFF ON OFF ON OFF ON
1-
1
I
..... 1 1 I --I 1
I ....
2 I =-1
2
I --I 2
1--
3 1-= I
3 I
--I
3
1--
4 I- I
4 I -I
4
1--
5
I -I 5 I- I
5
1-
6
I -I 6 I-- I
6
I .... 7
I
.... 1 7 1-.. I
7
I-- a I-- I a J-- I
a
1- 9 I -I 9 I I
1-- 10
I
..... 1 10
I I I
39
Jumpered Settings
J1 -- No shunt need be installed
J2 -- Bottom installed with EPSON printer /
No shunt otherwise .
J3 -- Top installed with EPSON / No shunt
otherwise
J4 -- Bottom installed with both EPSON and Centronics
J5-J25 -- Removed
J26 -- Jumper A-B and C-D for the CENTRONICS CHANNEL
as user 4.
Jumper A-C and B-D for the CENTRONICS CHANNEL
as user 6 .
JS1,JS2,JS3 - - I n s t ~ l l shunt, shorting all 8 lines.
JS4-JS6 -- No connections.
IIDRIVE/B
-
Switch settings
Sl Board Switch Number*
OFF ON Number 8 9 10
1-...
I
1 1st . . . ON ON ON
I- I
2 2nd
ON
ON OFF
I -I
3 3rd ON OFF ON
I -I
4 4th ON OFF OFF
I -I
5 5th
OFF
ON ON
I- I
6 6th . OFF ON OFF
I .....
I
7 7th
OFF
OFF ON
I -I
8* 8th .
OFF
OFF OFF
. \
-I 9*
I
.... 110* *Switches 1 thru 7 are the set
I I
the same on all boards.
40
(OmpuPro@
15299/4 3506 BREAKWATER COURT. HAYWARD. CA 94545 (415) 786-0909 494250

You might also like