CCS System 300 Instructions and recipes

System
300
CP/M
SUPPLEMENTARY
MANUAl;
It-.
CaUfomia
COlDpater
SystelDs

Copyright
1981
by
California
Computer
Systems
All
rights
reserved.
No
part
of
this
publication
may
be
reproduced
in
any
form
or
by
any
means
without
express
·permission
of
California
Computer
Systems.
The
information
contained
in
this
manual
is
believed
to
be
correct
at
the
time
of
pUblication.
However,
CCS
assumes
no
liability
resulting
from
the
use
of
this
manual.
Publication
History:
Preliminary
version
print
March
1981
Revision
A
printed
June
1981
Revision
B
printed
September
1981
CP/M
is
a
trademark
of
Digital
Research,
Inc.

SYSTEM
300
CP/M
SUPPLEMENTARY
MANUAL
MANUAL
89008-02603
REV.
B
COPYRIGHT
1981
CALIFORNIA
COMPUTER
SYSTEMS
250
CARIBBEAN
DRIVE
SUNNYVALE
CA
94086

TABLE
OF
CONTENTS
CHAPTER
1INTRODUCTION
CHAPTER
2
SYSTEM
300
CP/M DESCRIPTION
2.1
System
Memory
Configuration
.•.....•.
L
.•
L
.••
2-1
2.2
Reserved
Page
0
RAM
...•••...........•.•..
2-1
2.3
CC30BOOT
................•..........•.....
2-3
2.4
CC30BIOS
2-3
2.4.1
Diskette
Compatibility
.....••.....
2-3
2.4.2
Drive
Compatibility
.•.....•.......
2-4
2.4.3
Software
Compatibility
..•.•...•..•
2-5
2.4.4
Peripheral
Compatibility
..•.....•.
2-6
2.4.5
The
Primitive
Disk
Routines
••.....
2-7
2.4.6
The
Basic
I/O
Routines
.•......•.•.
2-7
2.4.7
Error
Messages
......•••..••.•••.•
2-10
CHAPTER
3
SYSTEM
300
UTITLITY
PROGRAMS
CC30GEN
.•••••.••••••••••••••••••••••••••
CC30INIT
.
Documentation
Conventions
..••••..••..••.•.
3.4.1
Description
••.••.....••••••••••••
3.4.2
Requirements/Restrictions
......•..
3 . 4 . 3 Op
era
t
ion
.......•.••..•.•••••.•••
3.4.4
Error
Messages
.•.••..•.•..•.•••.•
CC30COPY
••.•.••..•.••••••••••••••••••.••
...................................
Description
.••.••.•.•••.•••••••..
Requirements/Restrictions
.....••.
Operation
.
Error
Messages
•..•..••..•.•.•...•
Description
..•••..••.••.••.•••••.•
Requirements/Restrictions
......•...
Operation
..•.•..••..•..••.•..••..••
Error
Messages
.•..••....••••••••.•
3-1
3-2
3-2
3-2
3-3
3-5
'
3-9
Description
.•..•..•....•.•...•••..
3-9
Operation
..•••.•.•••••.
~
•.••••.•••
3-9
3-10
3-10
3-10
3-10
3-12
3-14
3-14
3-14
3-15
3-16
3.5.1
3.5.2
3.5.3
3.5.4
3.2.1
3.2.2
3.2.3
3.2.4
MOVCPM
3.3.1
3.3.2
3.4
3.5
3.3
3.1
3.2
APPENDIX ACUSTOMIZING
THE
SYSTEM
300
CP/M
APPENDIX BDOUBLE-SIDED MINI DRIVES
APPENDIX C
EXTENDED-TRACK
MINI DRIVES
APPENDIX D
SECTOR
SKEW

INTRODUCTION
This
manual
describes
California
Computer
Systems'
System
300
version
of
CP/M
2.2.
It
is
intended
as
a
supplement
to,
not
a
substitute
for,
the
basic
CP/M
documentation
and
covers
only
CCS's
additions
and
modications
to
the
standard
CP/M
package
as
received
from
Digital
Research.
It
assumes
a
basic
knowledge
of
CP/M
terms
and
organization
on
the
part
of
the
reader
and
is
oriented
to
the
systems
programmer,
although
the
system
operator
may
have
reason
to
consult
the
description
of
the
utility
programs
in
Chapter
3.
The
standard
distribution
version
of
CP/M
is
designed
to
work
with
an
Intel
Microprocessor
Development
System.
CCS
has
made
the
necessary
modifications
to
the
operating
system
for
it
to
work
with
CCS's
System
300
and
has
expanded
its
drive
handling
capabilities.
As
distributed,
the
System
300
CP/M
supports
the
following:
.
*
Single-sided
and
double-sided
8"
floppy
disk
drives
*
Single-sided
5.25"
floppy
disk
drives
*
Single-
and
double-density
diskettes
conforming
to
the
IBM
3740
and
System
34
formats
and
containing
either
128,
256,
512,
or
1024
bytes
per
sector
*A
console
device
*A
serial
printer
*A
Centronics-type
parallel
printer
Simple
modifications
to
the
software
will
enable
the
System
300
CP/M
to
support
double-sided,
instead
of
single-sided,
5.25"
floppy
disk
drives.
The
extensively
modified
or
unique
portions
of
the
software
include
the
system
loader,
the
BIOS,
and,
to
support
the
new
capabilities
of
the
BIOS,
several
utility
programs.

1-2
Introduction
The
BIOS
and
the
system
loaders
are
described
in
the
next
chapter;
Chapter
3
describes
the
utility
programs.
To
aid
the
customizing
of
the
software,
the
appendices
describe
how
to
tailor
the
software
for
different
applications.

CHAPTER
2
SYSTEM
300
CP
1M
DESCRIPTION
2.1
SYSTEM
MEMORY
CONFIGURATION
The
system
load
in
memory
is
organized
as
shown
in
the
Digital
Research
r-1anual "CP/M
2.2
Interface
Guide.
II
However,
the
base
of
the
system
load,
CBASE,
is
negatively
offset
2K
compared
to
the
normal
CP/M
load
to
allow
for
the
enlarged
BIOS.
Thus
while
CBASE
in
a64K
version
of
Digital
Research's
standard
CP/M
2.2
is
at
E400h,
it
is
at
DC00H
in
CCS's
64K
version.
For
each
size
memory
configuration,
then,
the
space
available
for
the
TPA
in
CCS's
version
is
2K
less
than
in
a
normal
CP/M
load.
This
is
true
even
·when
a
transient
program
overlays
the
CCP;
the
beginning
address
of
the
system
load
in
this
case,
FBASE,
is
also
negatively
offset
2K
from
the
standard
CP/M
load.
Please
note
that
the
entry
points
into
the
BIOS
will
also
be
offset
by
2K,
or
800h.
2.2
RESERVED
PAGE
0
RAM
Page
0
(00H-0FFH)
in
aCP/M
sy~tem
is
reserved
for
system
parameters.
The
System
300
CP/M
uses
some
unique
parameters
in
addition
to
the
standard
CP/M
parameteTs~
Table
2-1
on
the
following
page
lists
the
page
0
locations
used
by
the
System
300
CP
/tv!.

2-2
Address
Contents
----~-------------------------------------------------
--------
0000H-0002H
These
locations
contain
a
jump
instruction
to
the
warm-start
entry
point,
4203H
+
bias
(the
bias
is
equal
to
the
difference,
converted
into
hex,
between
the
system
memory
size
in
Kbytes
and
20K.
--------------------------------------------------------------
0003H
0004H
0005H-0007H
0008H-000AH
00l0H-00l2H
00l8H-001AH
0020H-0022H
0028H-002AH
0030H-003'2H
0038H-003AH
0040H-0053H
005CH-007CH
007DH-007FH
0080H-00FFH
The
Intel
Standard
IOBYTE
is
stored
in
this
location.
It
is
set
to
its
default
value
by
the
BIOS
during
cold-starts
and
is
preserved
during
warm-starts.
The
current
default
drive
number
is
stored
in
this
location.
These
locations
contain
a
jump
instruction
to
the
BOOS.
The
address
contained
in
0006-0007H
is
the
beginning
address
of
the
BOOS
and
hence
the
lowest
address
in
memory
used
by
CP/M
if
the
CCP
is
overlaid.
The
first
five
of
the
seven
Z-80
restart
loca-
tions
are
not
u~ed
by
CP/M.
The
sixth
restart
location
(0030H-0032H)
is
held
reserved
for
future
use.
The
seventh
restart
location
0038H-003AH)
contains
a
jump
instruction
into
the
DDT
or
SID
when
programmed
breakpoints
are
used
in
the
debug
mode.
These
locations
contain
disk
parameters
used
by
CC30BOOT.
Locations
0040-004FH
are
defined
by
CP/M
as
user
scratch
pad
locations;
0050H-
0053H
are
held
reserved,
but
are
not
used
by
present
versions
of
CP/M.
The
CCP
uses
these
locations
as
a
default
file
control
block
for
the
transient
program.
These
locations
are
the
optional
default
ran-
dom
record
position.
Locations
080H-0FFH
are
a
temporary
buffer
for
CC30BOOT
when
it
is
loaded
into
memory
from
sector
01
of
Track
00
of
the
system
disk.
Table
2-1
Page
0
Parameters

System
300
CP/M
Description
2.3
CC30BOOT
2-3
The
system
loader
CC30BOOT
is
designed
to
read
the
system
into
memory
from
floppy
disk.
During
a
cold-start
entry
into
Cpll1,---
CC30BOOT-,--contained--i-nSector0l-,
'I'rack0-0-of
--
the-
-system
diskette,
is
loaded
into
system
memory
at
locations
080H-0FFH
by
the
ROM-resident
bootstrap
loader
on
the
disk
controller
board.
Once
loaded,
CC30BOOT
begins
execution
and
loads
into
memory
the
system
tracks
(Tracks
00
and
01
on
8
11
system
dlskette
and
Tracks
00, 01,
02
on
a
5.25
11
diskette.)
It
then
transfers
control
to
the
cold-start
routine
in
the
BIOS.
2.4
CC30BIOS
CC30BIOS
is
California
Computer
Systems'
customized,
expanded
BIOS
designed
for
CCS's
System
300.
It
contains
the
hardware-dependent
console,
printer,
and
disk
drivers.
To
support
both
maxi
and
mini
floppy
diskettes
of
varying
formats,
it
uses
a
modified
version
of
CP/M's
sector
deblocking
algorithms.
CC30BIOS
also
implements
the
Intel
MDS
IOBYTE
as
described
in
Section
2.4.6
below
and
in
Digital
Research's
IICP
/r'l
2.2
Al-teration
Guide.
II
2.4.1
Diskette
Compatibility
CC30BIOS
is
designed
to
be
compatible
with
8
11
and
5.25
11
soft-sectored
unrecorded
diskettes
that
conform
to
the
IBM
3740
and
System
34
standards
for
diskette
format
and
that
have
77
and
35
tracks
per
diskette,
respectively.
It
supports
double-sided
8
11
diskettes
as
well.
Table
2-2
on
the
following
page
shows
the
compatible
diskette
formats.
Regardless
of
the
general
diskette
format,
Track
00
of
any
diskette
must
be
formatted
in
128-byte,
single-density
sectors,
as
specified
by
the
IBM
standards.
CCS's
floppy
disk
initialization
routine,
CC30INIT,
automatically
formats
Track
00
in
128-byte,
single-density
sectors
and
should
be
used
to
initialize
any
blank
diskettes
to
ensure
their
compatibility
with
CC30BIOS.

2-4
System
300
CP/M
Description
==============================================================
IDENSITY I
BYTES
PER IDISKETTE ISECTORS I
USER
CAPACITY I
SECTOR I
SIZE
IPER
TRACK
I(BYTES)* i
==============================================================
lSi
ng
1e1
128
15
.25
II
1
18
1
73
,
728
I
I 1 1
8"
I
26
1
249,600
1
1---------1-----------1----------1-----------1---------------1
lSi
ng
1eI
256
15 . 25
II
1
10
1
81
,
92
{)
1
1 I 8
11
I
15
1
288,000
1
---------1-----------1----------1-----------1---------------1
Single
1
512
1
5.25
11
151
81,920
1
1 1 8
11
181
307
,
200
1
---------I-----------I----------I--~--------I--------------~I
Single
1
1024
I
5.25
11
121
65,536
I
1 I 8
11
141
307
,2'10
1
------------------------------------------------------------1
Double
1
128
I
5.25"
1
29
1
118,784
1
1 1 8
II
1
48
1
460,800
1
---------1-----------1----------1-----------1---------------1
Double
1
256
1
5.25"
1
18
I
147,456
1
1 1 8
II
1
26
1
499,200
I
---------1-----------1----------1-----------1---------------1
Daub
1e1
512
15 .
25
II
1
10
1
16
3,
840
I
1 1 1
8"
1
15
1
576,000
1
1---------1-----------1----------1-----------1---------------1
1
Double
1
1024
I
5.25
11
I5i
163,840
i
1 I 1
8"
i81
614,400
1
==============================================================
*
User
capacity
figures
based
on
single-sided
drives
and
on
5.25"
drives
with
35
tracks.
Table
2-2.
Compatible
Diskette
Formats
CC30BIOS
has
been
designed
to
read
recorded
diskettes
of
the
standard
128-byte
sector,
single-density,
single-sided
format
that
have
been
formatted
by
a
disk
controller
chip
of
the
179x
family.
It
cannot,
however,
read
diskettes
formatted
by
a
1771
disk
controller
chip,
nor
is
it
guaranteed
that
CC30BIOS
can
read
diskettes
in
non-standard
formats
recorded
on
other
systems.
2.4.2
Drive
Compatibility
The
software
is
designed
to
control
single-sided
or
double-sided
B"
floppy
disk
drives
of
the
Shugart
SAEHJ0!8SC
type
or
single-sided
5.25"
drives
of
the
Shugart
SA400
type.
If
the
drives
have
been
purchased
from
CCS,
they
are

System
300
cp/n
Description
2-5
configured
for
soft\lare
compatibility.
If
they
have
been
obtained
from
another
source,
they
need
to
configured
as
described
ln
the
Floppy
Disk
Controller
Reference
Manual.
Should
an
application
call
for
double-sided
mini
drives,
different
step
rates,
or
mini
drives
containing
more
than
35
tracks,
see
the
appropriate
appendix
in
this
manual.
2.4.3
Software
Compatibility
The
deblocking
capabilities
of
CC30BIOS
add
considerable
flexibility
to
the
SysteIu
300.
However,
when
the
deblocking
mode
is
used
with
certain
CP/M
programs,
the
last
write
to
disk
may
be
lost.
~ese
programs
complete
their
action
by
writing
to
the
disk
and
then
"warm-booting"
the
system
to
return
control
to
CP/M.
Normally
this
causes
no
problem,
since
in
the
non-deblock
mode
data
is
transferred
directly
to
the
disk.
But
in
the
deblocking
mode,
data
is
transferred
first
to
a
memory
buffer
which
holds
the
data
until
an
event
such
~s
a
subsequent
read
or
write
or
directory
update
operation
forces
the
contents
of
the
buffer
to
be
written
out
to
disk.
An
occasional
result
of
this
holding
operation
is
that
a
reboot
operation
can
be
initiated
without
the
memory
buffer
being
emptierl
first.
Thus
the
final
writes
of
data
never
get
transferred
from
memory
to
disk
and
are
lost.
To
ensure
your
software
is
compatible
with
the
deblocking
mode,
you
can
do
one
of
the
following:
1.
For
new
software,
ensure
that
the
final
disk
write
operations
are
directory
updates.
CP/M
is
set
up
to
immediately
update
the
directory
on
the
disk
every
time
128
bytes
of
directory
information
(one
CP/M
logical
sector)
are
transferred.
This
effectively
empties
the
buffer
before
a
warm
boot
is
initiated.
2.
Or,
after
the
final
disk
write
in
a
routine,
read
any
other
physical
sector.
This
will
p~rge
the
buffer
and
ensure
that
th~
written
data
is
transferred
to
the
disk.
It
is
not
a
good
idea
to
try
to
solve
the
problem
by
modifying
the
warm-start
routine
so
that
it
clears
the
buffer
before
actually
doing
the
warm
start.
Because
a
warm
start
is
the
usual
technique
for
error
recovery,
you
could
aggravate
the
error
conditlon
further
by
attempting
to
write
potentially
bad
data
onto
the
diskette.

2-6
System
300
CP/M
Description
2.4.4
Peripheral
Compatibility
CC30BIOS
contains
drivers
routines
for
the
two
serial
ports
(SIOA
and
SlOB)
and
the
parallel
port
(PIOA)
on
the
2820
System
Processor.
SIOA
is
defined
as
the
default
console
port,
SlOB
as
a
serial
printer
port,
and
PIOA
as
a
Centronics
printer
(or
equivalent)
parallel
port.
Both
serial
port
drivers
program
the
ports
fqr
asynchronous
serial
cOIUil1unication
at
9600
baud
with
a
serial
word
format
of
8-bits,
one
stop
bit,
and
no
parity.
CC30BIOS
supports
the
MDS
IOBYTE
function,
which
allows
selection
of
peripherals
through
the
STAT
command.
The
STAT
command
divides
common
peripherals
into
four
logical
categories
according
to
basic
function:
Console
(primary
channel
of
communication
between
user
and
system),'
List
(output
list
devices
such
as
printers),
Reader
(paper
taper
reader),
and
Punch
(paper
tape
punch).
It
allows.one
of
four
physical
devices
to
be
assigned
to
a
logical
device
category
at
anyone
time.
As
shipped,
CC30BIOS
supports
the-
following
physical-to-logical
device
assignments:
======================================================
I
Logical
Physical
Actual
Peripheral
I
1
Category.
Device
Label
Selected
I
1----------------------------------------------------1
1CONSOLE:
TTY
Console
1
I
LIST:
TTY
Serial
Printer
I
I
CRT
Console
I
1LPT
Parallel
Printer
I
I
READER:
TTY
Console
I
I
PUNCH:
TTY
Console
I
======================================================
Table
2-3.
Logical-to-Physical
STAT
Assignments
The
teletype
is
the
default
physical
device
in
each
of
the
logical
categories.
See
the
STAT command
in
Digital
Research
1'6
manual
1I~~n
Introduction
to
CP/M
Features
and
Facilities"
and
Section
2.4.6
below
for
more
information.

System
300
CP/M
Description
2.4.5
The
Primitive
Disk
Routines
2-7
The
primitive
floppy
disk
routines
transfer
a
sector
of
data
at
a
time.
If
the
drive
has
not
been
previously
accessed,
the
routines
determine
the
drive
size
(8"
or
5.25")
and
disk
format
(bytes
per:
sector,
density):.
·The
primitive
disk
routines
will
attempt
up
to
ten
times
to
successfully
transfer
a
sector
of
data.
To
ensure"
that
control
is
returned
to
the
BDOS
in
case
the
DMAtransfer
"hangs,"
a
watchdog
timer
is
set
at
the
begin
of
the
attempted
disk
access.
If
the
sector
transfer
is
successful,
00H
is
returned
in
the
A
register;
if
it
is
unsuccessful,
a
non-zero
value
is
returned.
During
a
sequential
read
or
write
to
a
double-sided
disk,
overflow
from
the
last
sector
of
a
track
on
side
0
continues
on
sector
01
of
the
same
track
on
side
1.
2.4.6
The
Basic
I/O
Routines
As
mentioned
in
Section
2.4.4
above,
the
basic
I/O
routines
in
CC30BIOS
drive
ports
SIOA,
SlOB,
and
PIOA.
The
following
corrolation
is
made
between
the
BDOS
jump
targets
and
the
BIOS
basic
I/O
routines:
=======================================================
.I
BDOS
Jump
Basic
I/O
Routine
Function
I
I
Targets
Routines
I
I-------------~---------------------------------------I
I
CONST
CSTS
Console
Status
I
ICONIN
CI
Console
Input
I
I
CONOUT
CO
Console
Output
I
I
LIST
LO
List
Output
I
I
PUNCB
PO
Punch
Output
I
I
READER
RI
Reader
Input
I
I
LISTST
LSTAT
List
Status
I
=======================================================
Table'
2-4.
_
BDOS
Jump
Targets--BIOS
Basic
I/o-Routines--
The
basic
I/O
routines
support
the
MDS
IOBYTE
function.
The
IOBYTE,
stored
in
location
0003H,
contains
the
current
physical-to-logical
device
assignments.
When
the
system
is
first
initialized,
the
assignments
for
each
logical
device
are
set
to
their
default
value,
the
teletype.
The
STAT
command
can
be
used
to
modify
the
contents
of
the
IOBYTE,
changing
the
current
physical-to-logical
assignments.
When
an.
I/O
routine
is
called
involving
one
of
the
logical
devices
(for
example,
the
routine
CONIN),
it
jumps
to
one
of
the
basic
I/O
routines

2-8
System
300
CP/M
Description
(listed
in
the
first
column
in
Table
2-5
below).
Each
basic
I/O
routine
contains
a
table
associating
peripheral
driver
routines
with
the
physical
device
assignments
in
its
logical
device
category.
The
I/O
routine
reads
the
IOBYTE
and
then
transfers
control
to
the
driver
routine
indicated
by
the
physical
device
assignment.
It
is
important
to
keep
in
mind
that
the
physical
device
names
are
merely
convenient
labels:
they
are
not
necessarily
descriptive
of
the
actual
peripheral
they
select
for
I/O.
In
most
systems,
for
example,
the
actual
peripheral
selected
for
Console
I/O
by
the
Teletype
assignment
will
be
aCRT.
CC30BIOS
does
not
support
every
physical
device
assignment
in
every
logical
category.
The
peripheral
drivers
for
those
assignments
it
does
not
support
are
equated
to
the
IOER
routine
(see
Table
2-5
below).
The
IOER
routine
outputs
the
10
ASGT
ERROR
message
and
sets
the
physical-to-Iogical
assignments
to
the
Teletype
in
all
categories
(see
Section
2.4.7
below).
See
Appendix
A
for
instructions
on
adding
peripheral
drivers.
The
following
table
lists
the
basic
I/O
routines
for
each
logical
device,
the
peripheral
drivers
selected
by
the
physical
device
assignment,
and
the
contents
of
the
drivers.
---~--------------------------------------------------
--------
BASIC
I/O
ROUTINES PERIPHERAL DRIVERS
CONTENTS
LOGICAL
CONSOLE
DEVICE
CI
(input)
CO
(output)
CSTS
(input
status)
TTY
Assignment:
TTYIN
(input
driver)
TTYOUT
(output
driver)
TTST
(input
status)
TTOST
(output
status)
CRT
Assignment:
CRTIN
(input
driver)
CRTOUT
(output
driver)
CRTST
(input
status)
UCI
Assignment:
CUSII
(input
driver)
CUSOI
(output
driver)
CUSTI
(input
status)
SIOA
input
driver
SIOA
output
driver
SIOA
input
status
SIOA
output
status
IOER
Equate
IOER
Equate
IOER
Equate
IOER
Equate
IOER
Equate
IOER
Equate

System
300
CP/M
Description
2-9
---------------------------------------------------------------
LOGICAL
READER
DEVICE
RI
(input)
TTY ASSIGNMENT:
TTYRDR
(input
driver)
PTR
Assignment:
PTRIN
(input
driver)
PTRST
(status)
URI
Assignment:
RUSII
(input
driver)
RUSTI
(status)
UR2
Assignment:
RUSI2
(input
driver)
RUST2
(status)
TTYIN
Equate
IOER
Equate
IOER
Equate
IOER
Equate
IOER
Equate
IOER
Equate
IOER
Equate
LOGICAL
PUNCH
DEVICE
PO
(output)
TTY
Assignment:
TTYPNCH
(output)
PUN
Assignment:
HSP
(output
driver)
HSPST
(status)
UPI
Assignment:
PUSOI
(output
driver)
PUSTI
(status)
TTYOUT
Equate
IOER
Equate
IOER
Equate
lOER
Equate
lOER
Equate

2-10
System
300
CP/M
Description
UP2
Assignment:
PUS02
(output
driver)
PUST2
(status)
IOER
Equate
IOER
Equate
Table
2-5.
IOBYTE
Handlers
and
Peripheral
Drivers
2.4.7
Error
Messages
CC30BIOS
incorporates
error
messages
for
the
following
four
conditions:
Drive
Not
Ready,
I/O
Assignment
Error,
Disk
Time
Out,
and
Warm
Boot
Error.
DRIVE
NOT
READY:
If
you
try
an
operation
with
which
is
not
ready
(i.e.,
the
door
is
nonexistent
you
will
receive
the
error
message
DRIVE N
NOT
READY
a
drive
open)
or
where
N
is
the
drive
unit.
To
get
out
of
the
error
condition,
ready
the
drive
(insert
a
diskette,
shut
the
door)
and
hit
any
key
on
your
console
device.
Whatever
program
you
were
running
at
the
time
will
then
continue.
If
the
problem
is
a
nonexistent
drive,
you
will
have
to
reboot
your
system.
I/O
ASSIGNMENT ERROR:
You
can
use
the
CP/M STAT
command
as
described
in
the
Digital
Research
manual
II
An
Introduction
to
CP/M
Features
and
Facilities
ll
to
alter
the
contents
of
IOBYTE
and
thus
change
the
physical-to-logical
I/O
device
assignments.
CC30BIOS
contains
driver
routines
only
for
the
teletype
(TTY)
device
in
each
logical
device
categories
and
for
the
CRT
and
Line
Printer
(LPT)
in
the
List
category.
Assigning
any
other
physical
device
to
a
logical
category
forces
a
jump
to
the
I/O
Assignment
Error
routine
when
an
I/O
operation
is
performed
involving
that
logical
category.
The
message
I/O
ASGT
ERR
is
output,
the
I/O
assignments
default
to
the
teletype
for
each
logical
category,
and
control
returns
to
CP/M.
DISK TIMEOUT: CC30BIOS
incorporates
a
watchdog
timer
which
allo\vscontrol:·
to
be
returned
to
CP/M
should
a
drive
IIhang
ll
during
a
disk
operation,
such
as
a
read,
write,
seek,
or
restore.
At
the
beginning
of
each
disk

System
300
CP/M
Description
2-11
operation,
the
watchdog
timer
is
set
for
a
specific
time
interval:
if
it
times
out
before
the
disk
controller
signals
end-of-job,
the
bisk
Timeout
error
message
DISK
TIMEOUT
is
displayed
and
control
is
returned
to
the
BDOS.
BOOT
ERROR:
During
a
warm
boot
of
CP/M,
the
warm-boot
routine
outputs
the
message
BAD
BOOT
and
rings
the
console
bell
if
it
cannot
read
the
system
after
ten
tries.
If
you
hit
the
carriage
return
key,
the
routine
will
try
ten
more
times
to
read
in
the
system.

SYSTEM
300
UTILITY
PROGRAMS
Most·
of
the
utility
programs
(aLso
called
transient
programs)
described
in
Section
6
of
the
CP/M
manual
II
An
Introduction
to
CP/M
Features
and
Facilities"
work
with
the
System
300
CP/M
and
thus
have
not
been
altered
in
any
way.
However,
to
fully
support
the
capabilities
of
the
System
300
CP/M,
CCS
has
added
utility
programs
and
modified
others.
This
chapter
describes
these
utility
programs.
Please
note
that
when
either
CC30INIT,
CC30GEN,
or
CC30COPY
is
executing,
it
does
not
access
the
the
printer
driver
routines
in
the
the
BIOS.
This
means
that
the
console
displays
cannot
be
routed
to
the
printer.
Also
note
that
the
above
programs
work
directly
with
CCS's
disk
controller
boards
and
thus
cannot
work
in
systems
using
other
manufacturer's
boards.
3.1
DOCUMENTATION
CONVENTIONS
The
following
documentation
conventions
are
in
effect
in
this
chapter:
<cr>
represents
a
carriage
return
AC
represents
a
Control-C
N>
represents
the
default
(currently
selected)
drive
prompt,
where
N
can
be
a
letter
between
A
and
P,
inclusive.
Underlined
characters
in
sample
console
displays
are
user
inputs.

3-2
System
300
Utilities--CC30INIT
3.2
CC30INIT
CC30INIT
performs
two
basic
functions:
1)
l~
formats
diskettes:
2)
it
verifies
data
integrity
on
already
recorded
diskettes.
3.2.1
CC30INIT
Description
In
the
format
mode,
CC30INIT
formats
5.25"
and
8"
single-sided
or
double-sided
diskettes
so
that
they
a.
are
compatible
with
CC30BIOS;
b.
conform
to
the
IBM
3740
and
System
34
format
standards;
c.
can
be
read
and
written
to
by
the
l79x
family
of
disk
controllers
and
the
1771
disk
controller.
After
if
finishes
formatting
the
entire
diskette,
CC30INIT
automatically
reformats
Track
00
in
l28-byte,
single-density
sectors
so
that
it
conforms
to
the
IBM
format
standards.
It
then
verifies
the
diskette.
In
addition
to
formatting
an
entire
diskette,
CC30INIT
can
format
a
single
track
only,
allowing
the
data
on
a
diskette
with
one
bad
track
to
be
saved.
This
facility
can
also
be
used
to
reformat
Track
00
in
any
format
supported
by
CC30INIT.
However,
CC30BOOT
and
the
ROM
bootstrap
loader
will
then
be
unable
to
read
the
diskette.
After
formatting
a
track,
CC30INIT
automatically
verifies
the
track.
For
the
details
of
the
formats
used
by
CC30INIT,
refer
to
the
Programming
Information
Appendix
of
your
Floppy
Disk
Controller
Reference
Manual.
In
the
verification
mode,
CC30INIT
verifies
the
data
integrity
of
an
entire
diskette,
indicating
which
records
are
in
error.
Note
that
the
verification
mode
does
not
support
the
single-track
option.
3.2.2
CC30INIT
Requirements/Restrictions
In
the
format
mode,
CC30INIT
does
not
support
128-byte,
double-density
sectors
or
1024-byte,
single-density
sectors.
CC30INIT
can
not
verify
diskettes
written
by
1771
disk
controller
chip.
CC30INIT
requires
a
CCS
Floppy
Disk
Controller.

System
300
Utilities--CC30INIT
3.2.3
CC30INIT
Operation
3-3
************************************************************
* *
*
CAUTION:
CC30INIT
destroys
any
existing
data
as
it
*
*
formats
the
diskette.
If
you
wish
to
reformat
a*
*
diskette
for
CC30BIOS
compatibility,
yet
preserve
*
*
its
contents,
see
CC30COPY. *
**
************************************************************
CC30INIT
relies
on
console
interaction
to
receive
the
parameters
it
needs
to
format
or
verify
a
diskette.
It
accepts
only
a
limited
number
of
responses
to
the
questions
.it
asks
and
prompts
for
the
acceptable
responses.
If
it
receives
an
unacceptable
response,
it
repeats
the
question.
Except
as
noted,
entering
a
carriage
return
in
response
to
any
of
the
questions
returns
you
to
CP/M.
The
console
dialog
is
as
follows:
WHICH
DRIVE
(A-D)?
IEnter
the
drive
letter
of
the
diskette
Ito
be
formatted
and/or
verified.
When
ICC30INIT
is
finished,
it
repeats
this
Iquestion,
allowing
additional
diskettes
Ito
be
formatted
or
verified.
A
<cr>
Ireturns
you
to
CP/M.
SINGLE
OR
DOUBLE
SIDED
(0
OR
l)?
SINGLE
OR
DOUBLE
DENSITY
(S/D)?
10
specifies
single-sided:
11
specifies
double-sided.
IIf
you
respond
with
a
1,
ICC30INIT
formats/verifies
Iboth
sides
of
the
disk.
lIn
the
format
mode,
your
Iresponse
must
agree
with
Ithe
sector
size
selected
I
below.
If
it
doesn't,
ICC30INIT
will
return
to
Ithis
question
when
it
Itries
to
format
the
disk.
TRACK
NUMBER
(0-80
OR
*)?
ITo
format
or
verify
the
entire
Idisk,
enter
*To
format
one
Itrack
only,
enter
the
track
num-
Iber,
followed
by
a
space.
If
you
Ichoose
to
format
a
single
track,
Imake
sure
the
format
you
specify
Table of contents