GithubHelp home page GithubHelp logo

doctorwkt / pdp7-unix Goto Github PK

View Code? Open in Web Editor NEW
415.0 415.0 66.0 1.32 MB

A project to resurrect Unix on the PDP-7 from a scan of the original assembly code

License: GNU General Public License v3.0

Assembly 81.91% Makefile 1.26% Limbo 2.20% Perl 12.87% C 1.73% Shell 0.04%

pdp7-unix's People

Contributors

aap avatar decuser avatar doctorwkt avatar dspinellis avatar fragglet avatar larsbrinkhoff avatar livingcomputermuseum avatar minux avatar mohd-akram avatar neochen1024 avatar nigwil avatar philbudne avatar rswier avatar sebras avatar teverett avatar vtamara avatar xorhash avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pdp7-unix's Issues

bc.s compile error

kato:pdp7-unix tom$ tools/as7 src/cmd/bc/bc.s
I
II
src/cmd/bc/bc.s
src/cmd/bc/bc.s:3: start not defined
src/cmd/bc/bc.s:9: fetch not defined
src/cmd/bc/bc.s:17: pc not defined
src/cmd/bc/bc.s:19: pc not defined
src/cmd/bc/bc.s:23: sp not defined
src/cmd/bc/bc.s:35: sp not defined
src/cmd/bc/bc.s:36: t1 not defined
src/cmd/bc/bc.s:37: t1 not defined
src/cmd/bc/bc.s:45: d1 not defined
src/cmd/bc/bc.s:53: d4 not defined
src/cmd/bc/bc.s:59: stop not defined
src/cmd/bc/bc.s:63: pc not defined
src/cmd/bc/bc.s:70: putc not defined
src/cmd/bc/bc.s:76: putc not defined
src/cmd/bc/bc.s:78: putc not defined
src/cmd/bc/bc.s:87: putc not defined
src/cmd/bc/bc.s:92: putc not defined
src/cmd/bc/bc.s:93: flush not defined
src/cmd/bc/bc.s:100: dp not defined
src/cmd/bc/bc.s:104: pc not defined
src/cmd/bc/bc.s:106: sp not defined
src/cmd/bc/bc.s:108: lastv not defined
src/cmd/bc/bc.s:111: B not defined
src/cmd/bc/bc.s:112: pbs not defined
src/cmd/bc/bc.s:120: dp not defined
src/cmd/bc/bc.s:121: t1 not defined
src/cmd/bc/bc.s:122: t2 not defined
src/cmd/bc/bc.s:124: t1 not defined
src/cmd/bc/bc.s:129: t2 not defined
src/cmd/bc/bc.s:131: t2 not defined
src/cmd/bc/bc.s:132: t1 not defined
src/cmd/bc/bc.s:133: d1 not defined
src/cmd/bc/bc.s:134: t3 not defined
src/cmd/bc/bc.s:135: t3 not defined
src/cmd/bc/bc.s:137: t1 not defined
src/cmd/bc/bc.s:138: t1 not defined
src/cmd/bc/bc.s:142: t2 not defined
src/cmd/bc/bc.s:163: lastv not defined
src/cmd/bc/bc.s:164: lastv not defined
src/cmd/bc/bc.s:174: pbs not defined
src/cmd/bc/bc.s:179: pc not defined
src/cmd/bc/bc.s:183: t1 not defined
src/cmd/bc/bc.s:184: t1 not defined
src/cmd/bc/bc.s:195: t1 not defined
src/cmd/bc/bc.s:196: lastv not defined
src/cmd/bc/bc.s:197: lastv not defined
src/cmd/bc/bc.s:199: dm1 not defined
src/cmd/bc/bc.s:202: dsm not defined
src/cmd/bc/bc.s:203: t1 not defined
src/cmd/bc/bc.s:213: n not defined
src/cmd/bc/bc.s:214: b not defined
src/cmd/bc/bc.s:234: flush not defined
src/cmd/bc/bc.s:235: d1 not defined
src/cmd/bc/bc.s:237: stop not defined
src/cmd/bc/bc.s:239: flush not defined
src/cmd/bc/bc.s:240: d1 not defined
src/cmd/bc/bc.s:242: stop not defined
src/cmd/bc/bc.s:244: flush not defined
src/cmd/bc/bc.s:245: d1 not defined
src/cmd/bc/bc.s:247: stop not defined
src/cmd/bc/bc.s:278: ecla not defined
src/cmd/bc/bc.s:280: putc not defined

Need to update README.md with new Makefile

On Master, your README.md states that to compile run make pdp7 however there is no target for this. This project is very exciting to me, however I cannot figure out how to follow the instructions. I can make all or make alt but can't really make heads or tails of how things work.

I have been able to load UNIX with SIMH 4.0 but I cannot follow the "hello world" instructions as the bc compiler is not present on the FS after booting. I can see that this might be part of the make alt subset targets, but running that does not compile bc for me.

I champion your efforts in this awesome project. But perhaps we can update the documents so the rest of us can enjoy this labor of love ;)

Makefile error on OS X

oscar:pdp7-unix tom$ more Makefile 
# Top level makefile to build the utilities etc,
AS= tools/as7

all: utilities

utilities:
        $(AS) -o bin/cat   src/cmd/cat.s
        $(AS) -o bin/cp    src/cmd/cp.s
        $(AS) -o bin/chmod src/cmd/chmod.s
        $(AS) -o bin/chown src/cmd/chown.s
        $(AS) -o bin/chrm  src/cmd/chrm.s
        $(AS) -o bin/ls  src/other/wktls.s

clean:
        rm -f bin/*
oscar:pdp7-unix tom$ make
tools/as7 -o bin/cat   src/cmd/cat.s
I src/cmd/cat.s
bin/cat at tools/as7 line 195.
make: *** [utilities] Error 2

PDP-9 Spacewar

There was a version of Spacewar for the PDP-9 with Graphic-II display. I believe the Bell Labs people said they had a version of Spacewar, so maybe it was that one?

I have two files: source code, and an assember listing. I can't share them now, but they will go public.

as7 problem

I was looking into a problem with p (pool game). I traced it to a location unexpectedly being 0. It's -bvsize in putball.

I'm submitting a condensed test case. This input:

        -y
x:
        .=.+1
y = .-x

results in this output:

010000: 000000          -y

dsw.s compile error

kato:pdp7-unix tom$ tools/as7 src/cmd/dsw/dsw.s
I
II
src/cmd/dsw/dsw.s
src/cmd/dsw/dsw.s:35: do not defined

Add .. links to directories?

There seems to be a convention that file .. in every directory is a link to the directory itself (like . in more modern UNIX). I think this should be created by the build script.

apr.s compile error

kato:pdp7-unix tom$ tools/as7 src/cmd/apr/apr.s
I
II
src/cmd/apr/apr.s
src/cmd/apr/apr.s:12: ecla not defined
src/cmd/apr/apr.s:16: ecla not defined
src/cmd/apr/apr.s:20: ecla not defined
src/cmd/apr/apr.s:52: law040 not defined
kato:pdp7-unix tom$

Fix CI badge

Once we switch to github workflows we should switch the CI status badge in the readme from travis to github ci

moo.s compile error

kato:pdp7-unix tom$ tools/as7 scans/moo.s
I
II
scans/moo.s
scans/moo.s:450: standings not defined

What about a possible tree of source (*.C) to build the full system?

Hello,

What about having a directory with all those files (*.c source code), which will allow to build System v7?

Still many of those programmes can be compiled with TCC or GCC under Linux or BSD (with adaptations).
http://www.tuhs.org/cgi-bin/utree.pl?file=V7

Ex:
cal col diff f77 kill m4 nm prof rev spell t450 touch uux
ac calendar comm diff3 factor ld mail nohup ps rm spline tabs tp vplot
adb cat cp du false learn make nroff pstat rmdir split tail tr vpr
ar cb crypt dump fgrep lex man od ptx roff strip tar troff wc
arcv cc cu dumpdir file lint mesg osh pwd sa struct tbl true who
as checkeq date echo find ln mkdir passwd quot sed stty tc tsort write
at chgrp dc ed graph login mv pcc random sh su tee tty xget
awk chmod dcheck egrep grep look ncheck plot ranlib size sum tek uniq xsend
bas chown dd enroll icheck lookbib neqn pr ratfor sleep sync test units yacc
basename clri deroff eqn iostat lorder newgrp prep refer sort t300 time uucp yes
bc cmp df expr join ls nice primes restor sp t300s tk uulog

Best regards
Spartrekus

Closing braces `}` force exit 'ed'

Sorry for bothering. I am not sure if this is the intended behavior, my build issue, or what else. As soon as I enter } in 'ed' command, 'ed' will exit immediately:

@ ed
edit
}@

Answer and enquiry about TMG

I've just noticed this question in the wiki:

t[1-8].s: McIlroy's(?) TMG?

But didn't find the edit button. So I will just answer here.

Answer:

Yes, this is an early version of TMG for Unix by Douglas McIlroy. He later did a "new TMG" for Unix Version 2 in PDP-11 assembly. This newer implementation was included into Unix until Version 6, but then was abandoned in favor of YACC, a new compiler-compiler developed at Bell Labs. Recently, I ported this "new TMG" from PDP-11 assembly to C (here is my TMG in C repo).

Many routines in this old Unix TMG are named the same as in the later version. Particularly: kput, jget, obuild, ctest, putoct, bundle, table, find, char, string, octal. Some others are recognizable: getname (same as getnam in the later version), parsedo (same as parse), mark (same as smark), roindir (unary *, named .rv on PDP-11), etc. Data structures in t7.s are also recognizable. Though the code is very different from the "new TMG" that I worked with.

Enquiry:

Unfortunately, I didn't notice any TMG programs in this repo. It would be interesting to see, because McIlroy claimed that he wrote TMG for PDP-7 "in its own language" by bootstrapping it up.

I also didn't notice the "driving table" for TMG, which is an assembly output of TMG that would be assembled together with those t[1-8].s files to produce a new compiler. I'd expect that this driving table would be needed to make the TMG code functional.

Didn't find the driving table nor the original TMG program in the PDFs neither.

If anyone is aware of such code, please, let me know.

adm.s compile error

kato:pdp7-unix tom$ tools/as7 src/cmd/adm/adm.s
I
II
src/cmd/adm/adm.s
src/cmd/adm/adm.s:12: ecla not defined
src/cmd/adm/adm.s:16: ecla not defined
src/cmd/adm/adm.s:20: ecla not defined
src/cmd/adm/adm.s:65: r4 not defined
src/cmd/adm/adm.s:158: ecla not defined
src/cmd/adm/adm.s:197: m1s not defined
src/cmd/adm/adm.s:489: distlg not defined
kato:pdp7-unix tom$

License of the original sources?

Is the LICENSE file in the project directory supposed to mean that all of the sources are covered under GPLv3 or later? Are the licenses of the original sources known or are they "all rights reserved" by default? If so, are only the source files created from scratch to be considered covered under the GPLv3 or later?

It would be nice if this could be clarified.

Support for OpenBSD/adJ

Trying to compile on OpenBSD/adJ produces:

% gmake
build/os.mk:32: *** las instrucciones comenzaron antes del primer objetivo. Alto.gmake

/binaries directory missing

Hi
Even if referenced in readme file, the /binaries directory is missing in the current GitHub
It would be great to have image.fs and boot.rim available do to a test-run without having to build them from scratch.
Is this possible?

Best regards

b.c does not compile on OS X

gcc version

oscar:build tom$ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin15.4.0
Thread model: posix

Output:

oscar:build tom$ gcc -Wno-multichar -o b ../tools/b.c
../tools/b.c:29:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
xread() {
^
../tools/b.c:36:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
xwrite(c) {
^
../tools/b.c:46:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
../tools/b.c:48:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
xflush() {
^
../tools/b.c:49:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
../tools/b.c:55:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
main(int argc, char **argv) {
^
../tools/b.c:56:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symtab[], eof, *ns, nerror;
  ~~~~~~ ^
../tools/b.c:56:20: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symtab[], eof, *ns, nerror;
  ~~~~~~           ^
../tools/b.c:50:13: note: expanded from macro 'eof'
#define eof xeof
            ^
../tools/b.c:56:26: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symtab[], eof, *ns, nerror;
  ~~~~~~                 ^
../tools/b.c:56:30: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symtab[], eof, *ns, nerror;
  ~~~~~~                     ^
../tools/b.c:57:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern fin, fout;
  ~~~~~~ ^
../tools/b.c:57:15: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern fin, fout;
  ~~~~~~      ^
../tools/b.c:62:9: warning: implicit declaration of function 'error' is invalid in C99 [-Wimplicit-function-declaration]
        error('fo');
        ^
../tools/b.c:74:5: warning: implicit declaration of function 'extdef' is invalid in C99 [-Wimplicit-function-declaration]
    extdef();
    ^
../tools/b.c:75:5: warning: implicit declaration of function 'blkend' is invalid in C99 [-Wimplicit-function-declaration]
    blkend();
    ^
../tools/b.c:81:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symtab[], symbuf[], eof, *ns;
  ~~~~~~ ^
../tools/b.c:81:20: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symtab[], symbuf[], eof, *ns;
  ~~~~~~           ^
../tools/b.c:81:30: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symtab[], symbuf[], eof, *ns;
  ~~~~~~                     ^
../tools/b.c:50:13: note: expanded from macro 'eof'
#define eof xeof
            ^
../tools/b.c:81:36: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symtab[], symbuf[], eof, *ns;
  ~~~~~~                           ^
../tools/b.c:82:9: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto *np, *sp, *rp;
  ~~~~  ^
../tools/b.c:82:14: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto *np, *sp, *rp;
  ~~~~       ^
../tools/b.c:82:19: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto *np, *sp, *rp;
  ~~~~            ^
../tools/b.c:107:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  while (*ns = *sp) {
         ~~~~^~~~~
../tools/b.c:107:14: note: place parentheses around the assignment to silence this warning
  while (*ns = *sp) {
             ^
         (        )
../tools/b.c:107:14: note: use '==' to turn this assignment into an equality comparison
  while (*ns = *sp) {
             ^
             ==
../tools/b.c:115:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
symbol() {
^
../tools/b.c:116:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval;
  ~~~~~~ ^
../tools/b.c:116:20: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval;
  ~~~~~~           ^
../tools/b.c:116:28: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval;
  ~~~~~~                   ^
../tools/b.c:116:37: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval;
  ~~~~~~                            ^
../tools/b.c:116:44: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval;
  ~~~~~~                                   ^
../tools/b.c:50:13: note: expanded from macro 'eof'
#define eof xeof
            ^
../tools/b.c:116:49: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval;
  ~~~~~~                                        ^
../tools/b.c:116:56: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval;
  ~~~~~~                                               ^
../tools/b.c:116:62: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern symbuf[], ctab[], peeksym, peekc, eof, line, *csym, cval;
  ~~~~~~                                                     ^
../tools/b.c:117:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto b, c, ct, *sp;
  ~~~~ ^
../tools/b.c:117:11: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto b, c, ct, *sp;
  ~~~~    ^
../tools/b.c:117:14: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto b, c, ct, *sp;
  ~~~~       ^
../tools/b.c:117:19: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto b, c, ct, *sp;
  ~~~~            ^
../tools/b.c:148:12: warning: implicit declaration of function 'subseq' is invalid in C99 [-Wimplicit-function-declaration]
    return(subseq('=',80,60));
           ^
../tools/b.c:200:5: warning: implicit declaration of function 'getcc' is invalid in C99 [-Wimplicit-function-declaration]
    getcc();
    ^
../tools/b.c:229:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
subseq(c,a,b) {
^
../tools/b.c:230:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peekc;
  ~~~~~~ ^
../tools/b.c:240:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
getcc() {
^
../tools/b.c:241:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern cval;
  ~~~~~~ ^
../tools/b.c:242:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto c;
  ~~~~ ^
../tools/b.c:245:12: warning: implicit declaration of function 'mapch' is invalid in C99 [-Wimplicit-function-declaration]
  if ((c = mapch('\'')) < 0)
           ^
../tools/b.c:246:5: error: non-void function 'getcc' should return a value [-Wreturn-type]
    return;
    ^
../tools/b.c:249:5: error: non-void function 'getcc' should return a value [-Wreturn-type]
    return;
    ^
../tools/b.c:255:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
mapch(c) {
^
../tools/b.c:256:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peekc;
  ~~~~~~ ^
../tools/b.c:257:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto a;
  ~~~~ ^
../tools/b.c:295:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
expr(lev) {
^
../tools/b.c:296:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, *csym, cval, isn;
  ~~~~~~ ^
../tools/b.c:296:20: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, *csym, cval, isn;
  ~~~~~~           ^
../tools/b.c:296:26: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, *csym, cval, isn;
  ~~~~~~                 ^
../tools/b.c:296:32: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, *csym, cval, isn;
  ~~~~~~                       ^
../tools/b.c:297:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto o;
  ~~~~ ^
../tools/b.c:304:7: warning: implicit declaration of function 'gen' is invalid in C99 [-Wimplicit-function-declaration]
      gen('c',cval); /* consop */
      ^
../tools/b.c:308:5: warning: implicit declaration of function 'number' is invalid in C99 [-Wimplicit-function-declaration]
    number(cval);
    ^
../tools/b.c:329:9: warning: implicit declaration of function 'name' is invalid in C99 [-Wimplicit-function-declaration]
        name(csym+2);
        ^
../tools/b.c:372:5: warning: implicit declaration of function 'pexpr' is invalid in C99 [-Wimplicit-function-declaration]
    pexpr();
    ^
../tools/b.c:439:11: error: non-void function 'expr' should return a value [-Wreturn-type]
          return;
          ^
../tools/b.c:450:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
pexpr() {
^
../tools/b.c:454:7: error: non-void function 'pexpr' should return a value [-Wreturn-type]
      return;
      ^
../tools/b.c:459:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
declare(kw) {
^
../tools/b.c:460:11: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern *csym, cval, nauto;
  ~~~~~~  ^
../tools/b.c:460:17: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern *csym, cval, nauto;
  ~~~~~~        ^
../tools/b.c:460:23: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern *csym, cval, nauto;
  ~~~~~~              ^
../tools/b.c:461:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto o;
  ~~~~ ^
../tools/b.c:482:12: warning: '&' within '|' [-Wbitwise-op-parentheses]
  if (o==1 & kw!=8 | o==7 & kw==8) /* auto/extrn ;  param ')' */
      ~~~~~^~~~~~~ ~
../tools/b.c:482:12: note: place parentheses around the '&' expression to silence this warning
  if (o==1 & kw!=8 | o==7 & kw==8) /* auto/extrn ;  param ')' */
           ^
      (           )
../tools/b.c:482:27: warning: '&' within '|' [-Wbitwise-op-parentheses]
  if (o==1 & kw!=8 | o==7 & kw==8) /* auto/extrn ;  param ')' */
                   ~ ~~~~~^~~~~~~
../tools/b.c:482:27: note: place parentheses around the '&' expression to silence this warning
  if (o==1 & kw!=8 | o==7 & kw==8) /* auto/extrn ;  param ')' */
                          ^
                     (           )
../tools/b.c:483:5: error: non-void function 'declare' should return a value [-Wreturn-type]
    return;
    ^
../tools/b.c:488:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
extdef() {
^
../tools/b.c:489:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, *csym, cval, nauto;
  ~~~~~~ ^
../tools/b.c:489:20: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, *csym, cval, nauto;
  ~~~~~~           ^
../tools/b.c:489:26: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, *csym, cval, nauto;
  ~~~~~~                 ^
../tools/b.c:489:32: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, *csym, cval, nauto;
  ~~~~~~                       ^
../tools/b.c:490:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto o, c;
  ~~~~ ^
../tools/b.c:490:11: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto o, c;
  ~~~~    ^
../tools/b.c:494:5: error: non-void function 'extdef' should return a value [-Wreturn-type]
    return;
    ^
../tools/b.c:518:5: warning: implicit declaration of function 'stmtlist' is invalid in C99 [-Wimplicit-function-declaration]
    stmtlist();
    ^
../tools/b.c:520:5: error: non-void function 'extdef' should return a value [-Wreturn-type]
    return;
    ^
../tools/b.c:528:5: error: non-void function 'extdef' should return a value [-Wreturn-type]
    return;
    ^
../tools/b.c:534:5: error: non-void function 'extdef' should return a value [-Wreturn-type]
    return;
    ^
../tools/b.c:539:5: error: non-void function 'extdef' should return a value [-Wreturn-type]
    return;
    ^
../tools/b.c:578:5: error: non-void function 'extdef' should return a value [-Wreturn-type]
    return;
    ^
../tools/b.c:582:5: error: non-void function 'extdef' should return a value [-Wreturn-type]
    return;
    ^
../tools/b.c:586:3: warning: implicit declaration of function 'stmt' is invalid in C99 [-Wimplicit-function-declaration]
  stmt();
  ^
../tools/b.c:589:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
stmtlist() {
^
../tools/b.c:590:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, eof;
  ~~~~~~ ^
../tools/b.c:590:19: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, eof;
  ~~~~~~          ^
../tools/b.c:50:13: note: expanded from macro 'eof'
#define eof xeof
            ^
../tools/b.c:591:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto o;
  ~~~~ ^
../tools/b.c:595:7: error: non-void function 'stmtlist' should return a value [-Wreturn-type]
      return;
      ^
../tools/b.c:602:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
stmt() {
^
../tools/b.c:603:10: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, peekc, *csym, cval, isn, nauto;
  ~~~~~~ ^
../tools/b.c:603:19: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, peekc, *csym, cval, isn, nauto;
  ~~~~~~          ^
../tools/b.c:603:27: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, peekc, *csym, cval, isn, nauto;
  ~~~~~~                  ^
../tools/b.c:603:33: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, peekc, *csym, cval, isn, nauto;
  ~~~~~~                        ^
../tools/b.c:603:39: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, peekc, *csym, cval, isn, nauto;
  ~~~~~~                              ^
../tools/b.c:603:44: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  extern peeksym, peekc, *csym, cval, isn, nauto;
  ~~~~~~                                   ^
../tools/b.c:604:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto o, o1, o2;
  ~~~~ ^
../tools/b.c:604:11: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto o, o1, o2;
  ~~~~    ^
../tools/b.c:604:15: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  auto o, o1, o2;
  ~~~~        ^
../tools/b.c:611:5: error: non-void function 'stmt' should return a value [-Wreturn-type]
    return;
    ^
../tools/b.c:615:5: error: non-void function 'stmt' should return a value [-Wreturn-type]
    return;
    ^
../tools/b.c:619:5: error: non-void function 'stmt' should return a value [-Wreturn-type]
    return;
    ^
../tools/b.c:641:7: warning: implicit declaration of function 'jumpc' is invalid in C99 [-Wimplicit-function-declaration]
      jumpc(o1);
      ^
../tools/b.c:647:9: warning: implicit declaration of function 'jump' is invalid in C99 [-Wimplicit-function-declaration]
        jump(o2);
        ^
../tools/b.c:648:9: warning: implicit declaration of function 'label' is invalid in C99 [-Wimplicit-function-declaration]
        label(o1);
        ^
../tools/b.c:651:9: error: non-void function 'stmt' should return a value [-Wreturn-type]
        return;
        ^
../tools/b.c:655:7: error: non-void function 'stmt' should return a value [-Wreturn-type]
      return;
      ^
../tools/b.c:669:7: error: non-void function 'stmt' should return a value [-Wreturn-type]
      return;
      ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
91 warnings and 20 errors generated.

compile errors on un.s

I
II
scans/un.s
scans/un.s:11: t1 not defined
scans/un.s:19: t1 not defined
scans/un.s:23: t1 not defined
scans/un.s:25: t1 not defined
scans/un.s:26: ca1 not defined

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.