示例#1
0
文件: DMA.cs 项目: ziyasal/ProjectPSX
            private void linkedList()   //WARNING QUEUE ARRAY TESTS !!!!
            {
                uint         header = 0;
                Queue <uint> queue  = new Queue <uint>(); //test

                while ((header & 0x800000) == 0)
                {
                    //Console.WriteLine("HEADER addr " + baseAddress.ToString("x8"));
                    header = dma_transfer.fromRAM(baseAddress);
                    //Console.WriteLine("HEADER addr " + baseAddress.ToString("x8") + " value: " + header.ToString("x8"));
                    uint size = header >> 24;

                    if (size > 0)
                    {
                        baseAddress = (baseAddress + 4) & 0x1ffffc;
                        uint[] load = dma_transfer.fromRAM(baseAddress, size);
                        // Console.WriteLine("GPU SEND addr " + dmaAddress.ToString("x8") + " value: " + load.ToString("x8"));
                        //dma_transfer.toGPU(load);
                        //dma_transfer.toGPU();
                        for (int i = 0; i < load.Length; i++)
                        {
                            queue.Enqueue(load[i]);
                        }
                    }
                    baseAddress = header & 0x1ffffc;
                }

                dma_transfer.toGPU(queue.ToArray());
            }
示例#2
0
            private void linkedList()
            {
                uint header = 0;

                while ((header & 0x800000) == 0)
                {
                    //Console.WriteLine("HEADER addr " + baseAddress.ToString("x8"));
                    header = dma_transfer.fromRAM(baseAddress);
                    //Console.WriteLine("HEADER addr " + baseAddress.ToString("x8") + " value: " + header.ToString("x8"));
                    uint size = header >> 24;

                    if (size > 0)
                    {
                        baseAddress = (baseAddress + 4) & 0x1ffffc;
                        //uint load = dma_transfer.fromRAM(dmaAddress);
                        // Console.WriteLine("GPU SEND addr " + dmaAddress.ToString("x8") + " value: " + load.ToString("x8"));
                        //dma_transfer.toGPU(load);
                        dma_transfer.toGPU(dma_transfer.fromRAM(baseAddress, size));
                    }
                    baseAddress = header & 0x1ffffc;
                }
            }
示例#3
0
        private void linkedList(uint addr)
        {
            uint header     = 0;
            uint dmaAddress = getStartAdress(addr);

            while ((header & 0x800000) == 0)
            {
                header = dma_transfer.fromRAM(dmaAddress);
                //Console.WriteLine("HEADER addr " + dmaAddress.ToString("x8") + " value: " + header.ToString("x8"));
                uint size = header >> 24;

                if (size > 0)
                {
                    dmaAddress = (dmaAddress + 4) & 0x1ffffc;
                    //uint load = dma_transfer.fromRAM(dmaAddress);
                    // Console.WriteLine("GPU SEND addr " + dmaAddress.ToString("x8") + " value: " + load.ToString("x8"));
                    //dma_transfer.toGPU(load);
                    uint[] bufferTest = dma_transfer.fromRAM(dmaAddress, size);
                    dma_transfer.toGPU(bufferTest);
                }
                dmaAddress = header & 0x1ffffc;
            }
        }