u_short ubastd
[] = { 0776700 };
char up_gottype
[MAXNUBA
*8] = { 0 };
char up_type
[MAXNUBA
*8] = { 0 };
short up_off
[] = { 0, 27, 68, -1, -1, -1, -1, 82 };
short fj_off
[] = { 0, 50, 0, -1, -1, -1, -1, 155 };
32, 19, 32*19, 823, up_off
,
32, 10, 32*10, 823, fj_off
,
register struct updevice
*upaddr
=
(struct updevice
*)ubamem(io
->i_unit
, ubastd
[0]);
register struct upst
*st
;
while ((upaddr
->upcs1
& UP_DVA
) == 0)
if (up_gottype
[io
->i_unit
] == 0) {
upaddr
->uphr
= UPHR_MAXTRAK
;
up_type
[io
->i_unit
] = 1; /* fuji kludge */
upaddr
->upcs2
= UPCS2_CLR
;
up_gottype
[io
->i_unit
] = 1;
st
= &upst
[up_type
[io
->i_unit
]];
if (io
->i_boff
< 0 || io
->i_boff
> 7 || st
->off
[io
->i_boff
] == -1)
io
->i_boff
= st
->off
[io
->i_boff
] * st
->nspc
;
int unit
, nspc
, ns
, cn
, tn
, sn
;
register struct updevice
*upaddr
=
(struct updevice
*)ubamem(io
->i_unit
, ubastd
[0]);
register struct upst
*st
= &upst
[up_type
[io
->i_unit
]];
if ((upaddr
->upds
& UPDS_VV
) == 0) {
upaddr
->upcs1
= UP_DCLR
|UP_GO
;
upaddr
->upcs1
= UP_PRESET
|UP_GO
;
upaddr
->upof
= UPOF_FMT22
;
if ((upaddr
->upds
& UPDS_DREADY
) != UPDS_DREADY
)
rp
= (short *) &upaddr
->upda
;
*--rp
= -io
->i_cc
/ sizeof (short);
} while ((upaddr
->upcs1
& UP_RDY
) == 0);
if (upaddr
->upds
& UPDS_ERR
) {
printf("up error: (cyl,trk,sec)=(%d,%d,%d) cs2=%b er1=%b er2=%b\n",
upaddr
->upcs2
, UPCS2_BITS
, upaddr
->uper1
, UPER1_BITS
,
upaddr
->uper2
, UPER2_BITS
);