Annotation of 43BSDReno/sys/tahoealign/Awrite_byte.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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