public void For(U8 frames)
 {
     _liveQueue.Write(Y, () => {
         _liveQueue.Push(_opPause);
         _liveQueue.Push(frames);
     });
 }
Beispiel #2
0
 public void DrawTile(IOperand tile)
 {
     _liveQueue.Write(Y, () => {
         _liveQueue.Push(_opTile);
         _liveQueue.Push(tile);
     });
 }
Beispiel #3
0
        public void Call(Action action)
        {
            var offsetAddr = LabelFor(action).Offset(-1);

            _liveQueue.Write(Y, () => {
                _liveQueue.Push(_opCallSub);
                _liveQueue.Push(offsetAddr.Lo());
                _liveQueue.Push(offsetAddr.Hi());
            });
        }
Beispiel #4
0
 public void Draw(params U8[] tile)
 {
     _liveQueue.Write(Y, () => {
         _liveQueue.Push(_opTilesRLE);
         for (var i = 0; i < tile.Length; i++)                   //using tile.length here so individual values can be pushed after this call
         {
             _liveQueue.Push(tile[i]);
         }
         _liveQueue.Push(VRamQueue.Op.NOP);
     });
 }
 public void SetU16(Core.Address addr)
 {
     _liveQueue.Write(Y, () => {
         _liveQueue.Push(_opAddr);
         _liveQueue.Push(addr.Hi);
         _liveQueue.Push(addr.Lo);
     });
 }
 public void Write(Core.Address addr)
 {
     _liveQueue.Write(Y, () => {
         _liveQueue.Push(_opPalettes);
         _liveQueue.Push(addr.Lo);
         _liveQueue.Push(addr.Hi);
     });
 }
        public void Draw(params IOperand[] tile)
        {
            _liveQueue.Write(Y, () => {
                _liveQueue.Push(_opTileArray);
                _liveQueue.Push((U8)tile.Length);
                for (var i = 0; i < tile.Length; i++)                   //using tile.length here so individual values can be pushed after this call
                {
                    _liveQueue.Push(tile[i]);
                }
            });

            //TODO: drawing tiles in a sequence can be done with a write() inline func, adding one at a time after
            //setting length already when the length is already known. If it isn't known, maybe a length-val-offset could be stored,
            //then the length tallied up during writes, then a done() inline func called that writes the length at the right offset o_O
        }
Beispiel #8
0
 public void Write(Core.Address ramStart, U8 len)
 {
     _liveQueue.Write(Y, () => {
         _liveQueue.Push(Id);
         _liveQueue.Push(ramStart.Lo);
         _liveQueue.Push(ramStart.Hi);
         _liveQueue.Push(len);
     });
 }
Beispiel #9
0
 public void Push(U8 val)
 {
     _liveQueue.Push(val);
 }