diff --git a/README.md b/README.md index c527a0cc..966f8966 100644 --- a/README.md +++ b/README.md @@ -26,12 +26,21 @@ Getting Started * Hardware: Currently, we develop QNICE-FPGA on a Nexys 4 DDR development board, so if you own one, the fastest way of getting started is to - download the bitstream file `dist_kit\env1.bit` on the SD card of the + download the bitstream file `dist_kit/qnice.bit` on the SD card of the Nexys board and set the jumpers to read the FPGA configuration from the - SD card. Attach an "old" USB keyboard supporting boot mode to the board - and attach a VGA monitor. Attach the USB cable to your desktop computer, - so that you can setup a serial (terminal) connection between the desktop - and the FPGA. + SD card. Do not copy more than one `*.bit` file on the SD card, i.e. do + not copy `dist_kit/q-tris.bit`, yet. Do empty the "Recycle Bin" or similar + of your host OS between two `*.bit` copies, so that the Nexys board does not + accidentally read the `*.bit` from your trash instead of the recent one. + +* If you do not own a Nexys 4 DDR board, then use your VHDL development + environment to synthesize QNICE-FPGA. The root file for the system + is `vhdl/env1.vhdl`. Make sure that you connect at least the IO pins + for PS2, VGA, UART and the two switches. + +* Attach an "old" USB keyboard supporting boot mode to the board and attach + a VGA monitor. Attach the USB cable to your desktop computer, so that you + can setup a serial (terminal) connection between the desktop and the FPGA. * On your host computer: Open a terminal and head to the root folder of the QNICE-FPGA GIT repository. @@ -82,3 +91,28 @@ Getting Started and page up/down keys to scroll. More documentation to come. + +Q-TRIS +------ + +Q-TRIS is a Tetris clone and the first game ever developed for QNICE-FPGA. +The rules of the game are very close to the "official" Tetris rules as +they can be found on +[http://tetris.wikia.com/wiki/Tetris_Guideline](http://tetris.wikia.com/wiki/Tetris_Guideline). + +![Q_TRIS_IMG](doc/demos/demo_q_tris.jpg) + +Clearing a larger amount of lines at once (e.g. Double, Triple, Q-TRIS) +leads to much higher scores. Clearing a certain treshold of lines leads to the +next level. The game speed increases from level to level. If you clear +1.000 lines, then you win the game. + +Q-TRIS uses the PS2/USB keyboard and VGA, no matter how STDIN/STDOUT +are routed. All speed calculations are based on a 50 MHz CPU that is equal +to the CPU revision contained in release V1.21. + +The game can run stand-alone, i.e. instead of the Monitor as the "ROM" +for the QNICE-FPGA: Just use `dist_kit/q-tris.bit` instead of the +above-mentioned `dist_kit/qnice.bit`. Or, you can run it regularly as an app +within the Monitor environment. In this case, compile it and then load it with +the `M L` command sequence and start Q-TRIS using the address `0x8000`. diff --git a/VERSIONS.txt b/VERSIONS.txt index e0170e19..d2b69792 100644 --- a/VERSIONS.txt +++ b/VERSIONS.txt @@ -1,3 +1,12 @@ +Version 1.21 February, 13 2016 +================================ + +* Fixed predecrement CPU bug +* Q-TRIS V1.0: Tetris clone and first game ever programmed for Q-NICE. + Needs VGA and keyboard. Located in demos/q-tris.asm, starts at 0x8000 when + being run via the monitor. Additionally, there is a special stand-alone + autostart bitstream for the Digilent Nexys 4 DDR in dist_kit/q-tris.bit + Version 1.2 January, 10 2016 ============================= diff --git a/demos/q-tris.asm b/demos/q-tris.asm index 0b84bf0b..ba061c96 100644 --- a/demos/q-tris.asm +++ b/demos/q-tris.asm @@ -18,7 +18,7 @@ ; are routed. All speed calculations are based on a 50 MHz CPU that is equal ; to the CPU revision contained in release V1.21. ; -; The game can run stand-alone, i.e. instead of the monitor as the "ROM" +; The game can run stand-alone, i.e. instead of the Monitor as the "ROM" ; for the QNICE-FPGA - or - it can run regularly as an app. In the latter case ; it loads to 0x8000. #define QTRIS_STANDALONE for the standalone mode. ; diff --git a/dist_kit/q-tris.bit b/dist_kit/q-tris.bit new file mode 100644 index 00000000..c218673e Binary files /dev/null and b/dist_kit/q-tris.bit differ diff --git a/dist_kit/env1.bit b/dist_kit/qnice.bit similarity index 100% rename from dist_kit/env1.bit rename to dist_kit/qnice.bit diff --git a/doc/demos/demo_q-tris.jpg b/doc/demos/demo_q-tris.jpg deleted file mode 100644 index 942d6b98..00000000 Binary files a/doc/demos/demo_q-tris.jpg and /dev/null differ diff --git a/doc/demos/demo_q_tris.jpg b/doc/demos/demo_q_tris.jpg new file mode 100644 index 00000000..69f7be13 Binary files /dev/null and b/doc/demos/demo_q_tris.jpg differ diff --git a/pore/boot_message.asm b/pore/boot_message.asm index edf0bec9..9714448e 100644 --- a/pore/boot_message.asm +++ b/pore/boot_message.asm @@ -2,4 +2,4 @@ PORE$NEWLINE .ASCII_W "\n" ; PORE$RESETMSG .ASCII_W "QNICE-FPGA [WIP] [only 16 reg-banks!] by sy2002 in January 2016 (GIT #" -PORE$RESETMSG .ASCII_W "QNICE-FPGA Version 1.21 by sy2002 in February 2016 (GIT COMMIT #8e368ed)\n" +PORE$RESETMSG .ASCII_W "QNICE-FPGA Version 1.21 by sy2002 in February 2016 (GIT COMMIT #4a4fdfa)\n" diff --git a/vhdl/env1_globals.vhd b/vhdl/env1_globals.vhd index 5093e3e9..8eb2e516 100644 --- a/vhdl/env1_globals.vhd +++ b/vhdl/env1_globals.vhd @@ -13,7 +13,7 @@ package env1_globals is constant ROM_FILE : string := "../monitor/monitor.rom"; constant ROM_SIZE : natural := 2840; --constant ROM_FILE : string := "../demos/q-tris.rom"; ---constant ROM_SIZE : natural := 4522; +--constant ROM_SIZE : natural := 4542; -- file name of file and file size (in lines) of the file containing the Power On & Reset Execution (PORE) ROM constant PORE_ROM_FILE : string := "../pore/pore.rom";