Annotation of cci/sys/tahoe/Awrite_byte.c, revision 1.1

1.1     ! root        1: #include       "../machine/alignment.h"
        !             2: 
        !             3: write_byte (infop,byte, where)
        !             4: process_info   *infop;
        !             5: long           byte; 
        !             6: struct oprnd   *where;
        !             7: /*
        !             8: /*     Put the 'byte' at the given address in
        !             9: /*     tahoe's memory.
        !            10: /*     
        !            11: /*     1. Only the least significant byte is written.
        !            12: /*
        !            13: /**************************************************/
        !            14: {
        !            15:        register struct operand_des *look_at;
        !            16: 
        !            17:        look_at = &Table[opCODE].operand[last_operand];
        !            18:        if (! (look_at->add_modes & NOVF))
        !            19:                if (byte > 0x7f || byte < -0x80) overflow_1;    
        !            20:        if (!(where->mode & W)) exception(infop, ILL_ADDRMOD);
        !            21:        switch (where->mode & ADDFIELD) /* Mask out R/W bits */
        !            22:        {
        !            23:        case Add:
        !            24:                put_byte(infop, byte, where->address);
        !            25:                break;
        !            26:        case Dir:
        !            27:                Replace (infop, where->reg_number, byte);
        !            28:                break;
        !            29:        case SPmode:
        !            30:                where->mode = where->mode & ~SPmode | Add;
        !            31:                write_longword (infop, byte, where);
        !            32:                break;
        !            33:        default:
        !            34:                printf("Unknown destination in write_byte (alignment code)\n");
        !            35:        };
        !            36: }      

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.