#skip // output /////////////////////////////////////////////////////////////////// #expect 5263 // program ////////////////////////////////////////////////////////////////// #ship debug : Debug #ship memory : Memory #ship bitfifo : BitFifo #ship fifo : Fifo // dumb configurations debug.in: set ilc=*; take, deliver; memory.inAddrRead: set ilc=*; take, deliver; memory.inAddrWrite: set ilc=*; take, deliver; memory.inDataWrite: set ilc=*; take, deliver; FRED: { fifo.in: deliver, send token to fifo.out; } fifo.in: set word= 5263; fifo.out: recv token, take, send to debug.in; bitfifo.in: set word= 0; deliver; // six bits of leading zero (to wash out the codebag size) set word= FRED; deliver; // FRED = { address_of_fred[31], size_of_fred[6] } // strip off bottom 6 bits bitfifo.inOp: set word= BitFifo.inOp[take=6]; deliver; set word= BitFifo.inOp[take=37]; deliver; bitfifo.outOp: set word= BitFifo.outOp[take=37]; deliver; bitfifo.out: take, send to memory.inAddrRead; // value read out will be the instruction at FRED memory.out: take, send;