projects
/
unix-history
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
blame
|
history
|
raw
|
HEAD
Research V4 development
[unix-history]
/
sys
/
ken
/
prf.c
#define KL 0177560
struct
{
int
rsr
;
int
rbr
;
int
xsr
;
int
xbr
;
int
csw
;
};
printf
(
fmt
,
x1
,
x2
,
x3
,
x4
,
x5
,
x6
,
x7
,
x8
,
x9
,
xa
,
xb
,
xc
)
char
fmt
[];
{
char
*
s
;
int
*
adx
,
x
,
c
;
adx
= &
x1
;
loop
:
while
((
c
= *
fmt
++) !=
'%'
) {
if
(
c
==
'\0'
)
return
;
putchar
(
c
);
}
x
= *
adx
++;
switch
(
c
= *
fmt
++) {
case
'd'
:
if
(
x
<
0
) {
putchar
(
'-'
);
x
= -
x
;
}
case
'l'
:
case
'o'
:
printn
(
x
,
c
==
'o'
?
8
:
10
);
break
;
case
'c'
:
putchar
(
x
);
putchar
(
x
>>
8
);
break
;
case
's'
:
s
=
x
;
while
(
c
= *
s
++)
putchar
(
c
);
}
goto
loop
;
}
printn
(
n
,
b
) {
int
a
;
if
(
a
=
ldiv
(
0
,
n
,
b
))
printn
(
a
,
b
);
putchar
(
lrem
(
0
,
n
,
b
) +
'0'
);
}
putchar
(
c
)
{
int
s
;
if
(
KL
->
csw
==
0
)
return
;
while
((
KL
->
xsr
&
0200
) ==
0
);
if
(
c
==
0
)
return
;
s
=
KL
->
xsr
;
KL
->
xsr
=
0
;
KL
->
xbr
=
c
;
if
(
c
==
'
\n
'
)
putchar
(
'
\r
'
);
if
(
c
==
'
\r
'
) {
putchar
(
0177
);
putchar
(
0177
);
}
putchar
(
0
);
KL
->
xsr
=
s
;
}
panic
(
s
)
char
*
s
;
{
prproc
();
update
();
printf
(
"panic: %s
\n
"
,
s
);
for
(;;)
idle
();
}