aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* neopixel: simplify the design by offsetting pulsesnpledH. Peter Anvin2016-11-151-56/+27
| | | | | | | | It makes the design quite a bit simpler to not try to synchronize all the pulse starts together. Futhermore, it reduces the number of I/O pins toggling at the same time, which is good for noise reduction. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* neopixel: latch the data in the right cycle and it works...H. Peter Anvin2016-11-153-44/+15
| | | | | | We only need one clock cycle before reading the SRAM data, not two. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* neopixel: now works for the first pixel...H. Peter Anvin2016-11-155-74/+439
| | | | However, we seem to fail on subseqent ones...
* Initial code for Neopixel (WB2812 programmable LED) driverH. Peter Anvin2016-11-142-0/+451
| | | | Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Fix OUT 7 to the memory map: it was blocked by ~intio_selsramshareH. Peter Anvin2016-11-121-19/+15
| | | | | | Obviously, iotio_sel will be zero for OUT 7. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Clear abc_out_7_q on resetH. Peter Anvin2016-11-121-0/+1
|
* Avoid latch in video_width; allow flipping sw9 at runtimeH. Peter Anvin2016-11-121-2/+11
| | | | | | | | Avoid latching video_width. Also track sw[9] and allow it to set the video_width at runtime by flipping the switch (it may or may not change the width based on previous state.) Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* OUT 7 needs a strobe just like intio_selH. Peter Anvin2016-11-121-2/+4
| | | | | | OUT 7 is functionally part of intio; treat it as such Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Improve sdram timing by enabling I/O cell packing; fgpage 5H. Peter Anvin2016-11-113-30/+80
| | | | | | | | | | Further improve SRAM timing by using the flipflops in the I/O cells for input, too. Change the default fgpage to 5 so it doesn't conflict with the default location for the 80-character BASIC in RAM. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* revrom: mark if the working tree is modifiedH. Peter Anvin2016-11-101-1/+1
| | | | | | | If the working tree doesn't match git, add a suffix. -dirty seems unnecessarily offensive, so use (mod) Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Disable revrom poking via JTAG; adds an unnecessary JTAB moduleH. Peter Anvin2016-11-101-3/+3
|
* Create a revision ID ROM which can be read from ABCH. Peter Anvin2016-11-106-17/+265
| | | | | | | | Create a revision ID ROM readable from ABC (via I/O ports 136 and 137) so we have a hope of not getting ourselves confused about which revision of ABC80-DE1 we are currently running. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Finally: a functional version of the 200 MHz SRAMH. Peter Anvin2016-11-1011-296/+348
| | | | | | The 200 MHz SRAM seems to finally work. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* The address is available one CPU cycle before MREQ#, use thatH. Peter Anvin2016-11-091-139/+0
| | | | | | | To do that, we have to remove the read/write mmu map select, however. While we're at it, drop the ugly "basic patch" hack and instead have separate memory maps for 48 and 80 col.
* Current status of SRAM sharingH. Peter Anvin2016-11-087-318/+365
|
* sync.v: work around Quartus problem with generate ifH. Peter Anvin2016-11-051-39/+49
| | | | | | | | | | | Apparently generate if statements with declarations in both branches can make Quartus II think that the register is unused (duplicate?) Thus drop it and (suboptimally) always disable design rule D104. It would still be possible to fix this by duplicating the synchronizer code, but that's for later. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* display.v: use the stabilizer for fgctl_qH. Peter Anvin2016-11-041-9/+5
| | | | | | Now when we have a generic stabilizer, use it to stabilize fgctl_q. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* sync.v: remove unused altera_attributeH. Peter Anvin2016-11-041-2/+2
| | | | | | | | No need to have a filter that will only used for a synchronizer at the top level, now when synchronizer should only be used from the synchronize wrapper module. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* sync.v: include both synchronizer and stabilizer supportH. Peter Anvin2016-11-041-14/+104
| | | | | | | Add appropriate modules for both synchronizer and stabilizer, with the appropriate attribute magic for both. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* SRAM: implement the new 200 MHz shared state machineH. Peter Anvin2016-10-311-51/+116
| | | | | | | Implement the new SRAM state machine, complete with dual access per cpu_clk cycle. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* display.v: rename fgpixels to fgpixelH. Peter Anvin2016-10-311-3/+3
| | | | | | Change the name to fgpixel now when we only have one. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Minor video fixesH. Peter Anvin2016-10-312-2/+2
| | | | | | Allow amber monitor, don't invert output in test pattern. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* WIP: adjust SRAM timing to be able to share with another deviceH. Peter Anvin2016-10-3110-1006/+1414
| | | | | | | | | | | | | Infrastructure for changing the SRAM timing to add another shared device (intended to be the Neopixel driver.) This means upping the SRAM state machine clock to 200 MHz; move video_clk to pll2 to be able to generate that output. It actually gets closer to proper VGA timing, but at the expense of needing a synchronizing FIFO for the fg unit. This also clears a lot of timing warnings. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* sddisk.v: remove expression that turns into a latchH. Peter Anvin2016-10-311-2/+1
| | | | | | | Fix an expression that turns into a latch; the FPGA has flipflops, not latches. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Add support for using the GPIO 0 header as, well, GPIOs.H. Peter Anvin2016-10-232-32/+148
| | | | | It is sometimes useful to be able to control the GPIO header pins as, well, GPIOs. Make it so. No interrupt support or anything like that.
* abc80.qsf: add mega/bgram.vH. Peter Anvin2016-10-231-0/+1
|
* keyboard.txt: convert to UTF-8H. Peter Anvin2016-10-151-8/+8
| | | | | | For some reason this file was still in Latin-1. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Add color block graphics unitH. Peter Anvin2016-10-146-114/+420
| | | | | | Add a completely invented color block graphics unit; it should hopefully be fun for kids to play with using the equivalent method to using characters for groups of normal block pixels.
* Merge branch 'de1' of ssh://terminus.zytor.com/pub/git/fpga/abc80/abc80 into de1H. Peter Anvin2016-10-132-12/+41
|\
| * bin2bac: find the entrypoint in the .def fileH. Peter Anvin2016-10-111-3/+24
| | | | | | | | Make it possible to find a symbolic entry point in the .def file.
| * bin2bac: actually make the relocatable loader workH. Peter Anvin2016-10-112-11/+19
| | | | | | | | Now it will actually load and process relocations.
* | abc80.v: make it possible to simulate a green or yellow screenH. Peter Anvin2016-10-133-156/+192
|/ | | | | | | | | | | | | Make it possible to make the display green or yellow (should really be amber). Switches changed: SW[4] - suppress red (used for green) SW[3] - suppress blue (used for green or amber) SW[2] - V.24 instead of printer for serial port Add a new file to list the current LED/key/switch assignments.
* bin2bac: update to handle relocations from z88dk-z80asmH. Peter Anvin2016-10-074-119/+188
| | | | | | | | | | Change the bin2bac code to process a relocation file generated by z80asm from z88dk version 1.99 or later. At the same time, simplify the loader code substantially by removing the recursive dependency between header length and loader length - it doesn't actually buy us anything, because it is just as easy to fetch the line length from the byte at BOFA (true as long as the BASIC prefix is only one line, but it can be more than one statement if necessary.)
* sound.v: Change the one-shot generator to handle short inhibit pulsesH. Peter Anvin2015-06-091-10/+20
| | | | | | The BASIC interpreter sends 0x00 (clear) and 0x83 (beep) in very short order. We have to clear the oneshot immediately, not on the next strobe.
* rambasic.asm: routine for copying ROM to RAMH. Peter Anvin2015-06-032-1/+63
| | | | | Routine for copying RAM to ROM. Works on real hardware with Mikrodatorn's 64K expansion as well as FPGA.
* bin2bac: Simplify the codeH. Peter Anvin2014-06-171-9/+7
| | | | | | Simplify the code by computing $bldlen in a common loop. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* abc80.v: Allow the CPU to control the red LEDsH. Peter Anvin2014-06-171-1/+12
| | | | | | | Add I/O ports to control the red LEDs from the CPU instead of simply reflecting the switches. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* bacldr: Add loader variant that supports relocatable codeH. Peter Anvin2014-06-173-20/+118
| | | | | | | Add a version of the loader which supports relocatable code to be loaded at BOFA. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* CHANGES: Document that execute map is no longer supportedH. Peter Anvin2014-06-111-0/+4
| | | | | | | The execute map never worked right (immediate fetching is NOT done in the M1 cycle) so just drop it. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* CHANGES: convert file to UTF-8H. Peter Anvin2014-06-111-4/+4
| | | | | | Convert the CHANGES file to UTF-8. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* CHANGES: console is the -c options to abcprintdH. Peter Anvin2014-06-111-1/+1
| | | | | | The -d option is directory, -c is console. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* CHANGES: update to match the current releaseH. Peter Anvin2014-06-101-0/+15
| | | | | | Updates since DE1-18. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* printer: Add PRC: device to print to the debug consoleH. Peter Anvin2014-06-101-44/+70
| | | | | | | Add a new PRC: device (C = console) to print to the abcprintd debug console. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* data: Clean up *.lst files on make cleanH. Peter Anvin2014-06-101-2/+2
| | | | Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* data: Add missing script file stripzero.plH. Peter Anvin2014-06-101-0/+21
| | | | | | stripzero.pl is used to clean up the tail of cbios.bin. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* data: Add .bac to suffixes to be cleaned up on make cleanH. Peter Anvin2014-06-101-2/+2
| | | | Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Ignore .bac and .abs filesH. Peter Anvin2014-06-101-0/+2
|
* bacldr: Correct commentH. Peter Anvin2014-06-101-1/+1
| | | | | | Code was correct, but fix the comment. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* bin2bac: fix missing paren in commentH. Peter Anvin2014-06-101-1/+1
| | | | | | Add missing paren to comment. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* bin2bac: convert entry from oct/hex if necessaryH. Peter Anvin2014-06-101-0/+1
| | | | | | | Not just the base address but also the entrypoint should be converted if necessary. Signed-off-by: H. Peter Anvin <hpa@zytor.com>