From f47473271d43f6e8b54f9ca20beaa7676187374f Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Wed, 9 Jun 2004 23:01:03 +0000 Subject: minor changes. --- mixlib/mix_types.h | 51 +++++++++++++++++++++++---------------------- samples/permutations.cardrd | 1 + samples/permutations.mixal | 2 +- samples/primes.mixal | 2 +- 4 files changed, 29 insertions(+), 27 deletions(-) diff --git a/mixlib/mix_types.h b/mixlib/mix_types.h index 918046e..e10f8c7 100644 --- a/mixlib/mix_types.h +++ b/mixlib/mix_types.h @@ -2,22 +2,22 @@ * This file contains declarations for the basic types used in MIX: * mix_byte_t, mix_char_t, mix_short_t and mix_word_t. * ------------------------------------------------------------------ - * Copyright (C) 2000, 2001 Free Software Foundation, Inc. - * + * Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * + * */ @@ -66,7 +66,7 @@ typedef guint8 mix_char_t; /* Conversions for mix_char_t's */ #define mix_char_to_byte(mchar) mix_byte_new(mchar) -#define mix_byte_to_char(byte) ((mix_char_t)(byte&MIX_CHAR_MAX)) +#define mix_byte_to_char(byte) ((mix_char_t)((byte) & MIX_CHAR_MAX)) extern mix_char_t mix_ascii_to_char(guchar c); @@ -78,7 +78,7 @@ mix_char_to_ascii(mix_char_t c); /*----------------- mix_word_t --------------------------------------------*/ /* * Represented as a gint32 (glib ensures that this type has 32 - * bits). Bit 30 is the sign, higher bits are 0, + * bits). Bit 30 is the sign, higher bits are 0, * and bits 0-29 are the magnitude. * Each MIX 'byte' is a 6-bit substring of the magnitude. */ @@ -99,7 +99,7 @@ typedef guint32 mix_word_t; ( (x) < 0 \ ? ( MIX_WORD_SIGN_BIT | ((mix_word_t)(-(x)) & MIX_WORD_MAX) ) \ : ( (mix_word_t)(x) & MIX_WORD_MAX ) \ -) +) /* Create a mix_word_t from individual bytes */ #define mix_word_new_b(b1,b2,b3,b4,b5) \ @@ -117,11 +117,11 @@ mix_bytes_to_word(mix_byte_t *bytes, guint byteno); /* Access byte within a word */ extern mix_byte_t /* byte -idx- or MIX_BYTE_ZERO if -idx- out of range */ -mix_word_get_byte(mix_word_t word, /* word parsed */ +mix_word_get_byte(mix_word_t word, /* word parsed */ guint idx /* byte: 1 to 5 */); /* Set a byte within a mix_word_t */ -extern void +extern void mix_word_set_byte(mix_word_t *into, /* word to be modified */ guint idx, /* byte: 1 to 5 */ mix_byte_t value /* byte's value */); @@ -138,9 +138,9 @@ mix_word_set_byte(mix_word_t *into, /* word to be modified */ /* Arithmetic operations */ -extern mix_word_t +extern mix_word_t mix_word_add(mix_word_t x, mix_word_t y); - + #define mix_word_sub(x,y) ( mix_word_add((x),mix_word_negative(y)) ) /* Add two words filling a high word if needed. @@ -153,27 +153,27 @@ mix_word_add_and_carry(mix_word_t x, mix_word_t y, /* Product, stored in -high_word- and -low_word-, which can be NULL. */ -extern void -mix_word_mul(mix_word_t x, mix_word_t y, +extern void +mix_word_mul(mix_word_t x, mix_word_t y, mix_word_t *high_word, mix_word_t *low_word); /* Division. -quotient- and/or -remainder- can be NULL. */ -extern gboolean /* TRUE if overflow */ -mix_word_div(mix_word_t n1, mix_word_t n0, mix_word_t d, +extern gboolean /* TRUE if overflow */ +mix_word_div(mix_word_t n1, mix_word_t n0, mix_word_t d, mix_word_t *quotient, mix_word_t *remainder); /* Shift operations */ -extern void -mix_word_shift_left(mix_word_t A, mix_word_t X, gulong count, +extern void +mix_word_shift_left(mix_word_t A, mix_word_t X, gulong count, mix_word_t *pA, mix_word_t *pX); -extern void -mix_word_shift_right(mix_word_t A, mix_word_t X, gulong count, +extern void +mix_word_shift_right(mix_word_t A, mix_word_t X, gulong count, mix_word_t *pA, mix_word_t *pX); -extern void -mix_word_shift_left_circular(mix_word_t A, mix_word_t X, gulong count, +extern void +mix_word_shift_left_circular(mix_word_t A, mix_word_t X, gulong count, mix_word_t *pA, mix_word_t *pX); -extern void -mix_word_shift_right_circular(mix_word_t A, mix_word_t X, gulong count, +extern void +mix_word_shift_right_circular(mix_word_t A, mix_word_t X, gulong count, mix_word_t *pA, mix_word_t *pX); @@ -196,7 +196,7 @@ mix_fspec_is_valid(mix_fspec_t f); extern mix_word_t /* the specified field or 0 if f is not valid */ mix_word_get_field(mix_fspec_t f, mix_word_t word); -extern mix_word_t /* -to- with the field -f- from -from- or -to- +extern mix_word_t /* -to- with the field -f- from -from- or -to- if -f- is not a valid fspec */ mix_word_set_field(mix_fspec_t f, mix_word_t from, mix_word_t to); @@ -238,6 +238,7 @@ typedef guint16 mix_short_t; ( (s) & (MIX_SHORT_SIGN_BIT - 1) ) #define mix_short_is_positive(s) ( mix_short_sign(s) == 0 ) #define mix_short_is_negative(s) ( mix_short_sign(s) != 0 ) +#define mix_short_reverse_sign(s) ( (s) ^= MIX_SHORT_SIGN_BIT ) /* create short from a long */ #define mix_short_new(val) \ diff --git a/samples/permutations.cardrd b/samples/permutations.cardrd index f626e04..d9e4db6 100644 --- a/samples/permutations.cardrd +++ b/samples/permutations.cardrd @@ -1,2 +1,3 @@ ( A C F G ) ( B C D ) ( A E D ) ( F A D E ) ( B g F a E ) = + diff --git a/samples/permutations.mixal b/samples/permutations.mixal index 24cc682..2c26df5 100644 --- a/samples/permutations.mixal +++ b/samples/permutations.mixal @@ -19,7 +19,7 @@ BEGIN IN PERM(CARDS) OUT OUTBUF(PRINTER) JE 1F INC2 16 - CMP2 =MAXWDS-16=,1(1:5) + CMP2 =MAXWDS-16= JLE 1B HLT 666 1H INC2 15 diff --git a/samples/primes.mixal b/samples/primes.mixal index d2de8c0..365db32 100644 --- a/samples/primes.mixal +++ b/samples/primes.mixal @@ -1,7 +1,7 @@ * table of primes (taopc p. 148) * L EQU 500 -OUTDEV EQU 20 the paper tape +OUTDEV EQU 18 the printer PRIME EQU -1 BUF0 EQU 2000 BUF1 EQU BUF0+25 -- cgit v1.2.3