This is IndexRegister.h in view mode; [Download] [Up]
// // IndexRegister // // An Objective-C class for a register with the ability to load, // increment and decrement. // // Operation: LOAD loads the register from the input, INC increments the // current register value and DEC decrements the current value. These // operations are exclusive, but the logic doesn't handle this (if more // than one of LOAD, INC or DEC is high, then the operation is undefined). // the register asserts its output on OUT. // #import <objc/Object.h> #import "Register.h" #import "Incrementor.h" #import "Decrementor.h" #import "MUX.h" #import "Node.h" #import "ORGate.h" #import "Merger.h" #import "One.h" @interface IndexRegister : Object { // // Internal State: // int numbits; // // External interface: // Node *LOAD; // 1-bit LOAD signal. Node *INC; // 1-bit INC signal. Node *DEC; // 1-bit DEC signal. Node *IN; // n-bit input. Node *OUT; // n-bit output. // // Internal glue nodes: // Node *inc_out; // Output of the incrementer. Node *dec_out; // Output of the decrementer. Node *mux_out; // Internal data bus. Node *sel_low_out; Node *sel_high_out; // // Internal Functional Units: // MUX *mux; Merger *merge_sel; ORGate *sel_low; ORGate *sel_high; One *reg_load; Incrementor *reg_inc; // Incrementer module. Decrementor *reg_dec; // Decrementer module. Register *reg; // Actual register. } - initNumBits:(int)nbits load:loadnode // Node with LOAD signal. inc:incnode // Node with INCREMENT signal. dec:decnode // Node with DECREMENT signal. in:innode // Node giving input. out:outnode; // Node accepting output. - free; - cycle; - reg; @end // // End of file. //
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.