From owner-pups@minnie.cs.adfa.edu.au Fri Jun 16 09:39:12 2000
Received: (from major@localhost)
	by minnie.cs.adfa.edu.au (8.9.3/8.9.3) id JAA77758
	for pups-liszt; Fri, 16 Jun 2000 09:35:48 +1000 (EST)
	(envelope-from owner-pups@minnie.cs.adfa.edu.au)
Received: from henry.cs.adfa.edu.au (henry.cs.adfa.edu.au [131.236.21.158])
	by minnie.cs.adfa.edu.au (8.9.3/8.9.3) with ESMTP id JAA77754
	for <pups@minnie.cs.adfa.edu.au>; Fri, 16 Jun 2000 09:35:46 +1000 (EST)
	(envelope-from wkt@henry.cs.adfa.edu.au)
Received: (from wkt@localhost)
	by henry.cs.adfa.edu.au (8.9.2/8.9.3) id JAA45585
	for pups@minnie.cs.adfa.edu.au; Fri, 16 Jun 2000 09:33:10 +1000 (EST)
	(envelope-from wkt)
Received: from junk.nocrew.org (mail@[212.73.17.42])
	by minnie.cs.adfa.edu.au (8.9.3/8.9.3) with ESMTP id RAA72991
	for <pups@minnie.cs.adfa.edu.au>; Thu, 15 Jun 2000 17:38:33 +1000 (EST)
	(envelope-from lars@junk.nocrew.org)
Received: from lars by junk.nocrew.org with local (Exim 3.12 #1 (Debian))
	for pups@minnie.cs.adfa.edu.au
	id 132UBq-0006Dy-00; Thu, 15 Jun 2000 09:35:50 +0200
To: pups@minnie.cs.adfa.edu.au
Newsgroups: alt.sys.pdp11
Subject: Help reviewing PDP-11 model processors
From: lars brinkhoff <lars@nocrew.org>
Date: 15 Jun 2000 09:35:50 +0200
Message-ID: <85ya478kh5.fsf@junk.nocrew.org>
Lines: 60
User-Agent: Gnus/5.0803 (Gnus v5.8.3) Emacs/20.6
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Posted-To: alt.sys.pdp11
Sender: owner-pups@minnie.cs.adfa.edu.au
Precedence: bulk

The following message is a courtesy copy of an article
that has been posted to alt.sys.pdp11 as well.

Time for the second round of assembler source code review.

If the user specifies a PDP-11 model to the assembler (e.g. -m11/45),
this code is used to tell the assembler what processor to assemble for.

Also, in one case (11/34a), the model enables FP-11 floating-point
instructions.  Should this be done for 11/34c too?  If there are any
other models with otherwise optional features installed, I'd like to
know.

  if (strcmp (arg, "03") == 0)                  /* 11/03 */
    return set_cpu_model ("kd11f");             /* KD11-F */

  else if (strcmp (arg, "04") == 0)             /* 11/04 */
    return set_cpu_model ("kd11d");             /* KD11-D */

  else if (strcmp (arg, "05") == 0 ||           /* 11/05 or 11/10 */
           strcmp (arg, "10") == 0)
    return set_cpu_model ("kd11b");             /* KD11-B */

  else if (strcmp (arg, "15") == 0 ||           /* 11/15 or 11/20 */
           strcmp (arg, "20") == 0)
    return set_cpu_model ("ka11");              /* KA11 */

  else if (strcmp (arg, "21") == 0)             /* 11/21 */
    return set_cpu_model ("t11");               /* T11 */

  else if (strcmp (arg, "24") == 0)             /* 11/24 */
    return set_cpu_model ("f11");               /* F11 */

  else if (strcmp (arg, "34") == 0)             /* 11/34 */
    return set_cpu_model ("kd11e");             /* KD11-E */

  else if (strcmp (arg, "34a") == 0)            /* 11/34a */
    return set_cpu_model ("kd11e") &&           /* KD11-E with FP-11 */
           set_option ("fpp");

  else if (strcmp (arg, "35") == 0 ||           /* 11/35 or 11/40 */
           strcmp (arg, "40") == 0)
    return set_cpu_model ("kd11da");            /* KD11-A */

  else if (strcmp (arg, "44") == 0)             /* 11/44 */
    return set_cpu_model ("kd11dz");            /* KD11-Z */

  else if (strcmp (arg, "45") == 0 ||           /* 11/45/50/55/70 */
           strcmp (arg, "50") == 0 ||
           strcmp (arg, "55") == 0 ||
           strcmp (arg, "70") == 0)
    return set_cpu_model ("kb11");              /* KB11 */

  else if (strcmp (arg, "60") == 0)             /* 11/60 */
    return set_cpu_model ("kd11k");             /* KD11-K */

  else if (strcmp (arg, "53") == 0 ||           /* 11/53/73/83/84/93/94 */
           strcmp (arg, "73") == 0 ||
           strcmp (arg, "83") == 0 ||
           strcmp (arg, "84") == 0 ||
           strcmp (arg, "93") == 0 ||
           strcmp (arg, "94") == 0)
    return set_cpu_model ("j11");               /* J11 */

