Commit message (Collapse)AuthorAgeFilesLines
* bin2bac: Simplify by requiring the whole data block to be contiguousH. Peter Anvin2014-06-103-65/+38
| | | | | | | | | Instead of storing a new address for each statement, just encode it once in the loader. This gets the overhead down a fair bit. Also, simplify some of the generated bytecode. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* bin2bac: Add program to convert an assembly program to a .BAC fileH. Peter Anvin2014-06-103-1/+159
| | | | | A fairly compact way to store an assembly program, comparable in overhead to an .ABS file.
* cbios: it is the DPB that can be dynamic, not the DPHH. Peter Anvin2014-06-011-27/+26
| | | | | | BDOS gets really unhappy about a shared DPH Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* dumpregs: useful debugging routineH. Peter Anvin2014-06-011-0/+82
* Actually working version of CP/MH. Peter Anvin2014-06-013-109/+92
| | | | Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* data: Add script to produce an ABS file, generate cpm.absH. Peter Anvin2014-05-162-3/+83
| | | | | | Generate cpm.abs as an alternative to cpm.bas. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* abcprintd: add support for debug messagesH. Peter Anvin2014-05-142-5/+32
| | | | Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* CP/M: Always clear memory beyond the BIOSH. Peter Anvin2014-05-113-6/+12
| | | | | | | Always clear the memory beyond the BIOS. It also means we don't have to store it explicitly as a bunch of zeroes in cpm.bas. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* CP/M: Change to 1024 directory entriesH. Peter Anvin2014-05-111-8/+8
| | | | | | | | | | | | | | | | | Match the following cpmtools diskdefs entry: diskdef abc80-de1 seclen 128 tracks 1904 sectrk 64 blocksize 8192 maxdir 1024 skew 1 boottrk 1 os 2.2 end Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* CP/M: fix the BIOS enough that we can actually get to a promptH. Peter Anvin2014-05-092-39/+65
| | | | | | | Make the keyboard work, fix the loader and the output routine; with this we actually get an A> prompt that we can type at. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* CP/M: Add CBIOS plus change the loaderH. Peter Anvin2014-05-093-49/+569
| | | | | | | Make the loader simply POKE the (C)BIOS into memory and then copy it into place... a bit easier that way. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* cpm22: assembly source for CP/M 2.2 CCP + BDOSH. Peter Anvin2014-05-091-0/+3740
| | | | | | The invariant parts of CP/M, other than relocation. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* z80asm: add an align directiveH. Peter Anvin2014-05-092-2/+19
| | | | | | Having an alignment directive is handy. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* sddrom: Fix the setting of transfer size in CP/M modeH. Peter Anvin2014-05-081-5/+10
| | | | | | | 128 bytes, not 384; this means setting the I/O port accordingly since bit A0 is used as the 8th bit of the counter. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* data: Add a minimal CP/M loaderH. Peter Anvin2014-05-082-2/+83
| | | | | | CP/M is assumed to live at the immediate beginning of HD volume 4. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* abc80.v: remove (useless) support for X MMU; allow NMI disableH. Peter Anvin2014-05-081-8/+11
| | | | | | | | | The X-select in the MMU never worked (the M1 phase is only for the actual opcode fetch, not immediates) so remove it. Allow bit 2 in port 7 to disable NMI; this is needed for CP/M and seems like an entirely reasonable addition to Mikrodatorn's 64K extension mod. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* sddrom: Add CP/M mode (128-byte sectors)H. Peter Anvin2014-05-081-5/+15
| | | | | | | | | | | | Add a mode for CP/M compatibility (128-byte logical sectors, instead of 256.) This is signalled by setting bit 5 in command byte K1 (normally unused except for special commands.) Bit 4 is used as bit 0 of the 128-byte sector number, to avoid deducing the capacity and to make the code changes smaller. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* sddrom: Fix new volume commandH. Peter Anvin2014-05-081-2/+2
| | | | | | Correct the handling of the new volume command. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* z80asm: Upgrade to a new upstream versionH. Peter Anvin2014-05-0819-1622/+2477
| | | | | | | | | Unfortunate the upstream version doesn't handle "-l filename" correctly (needs "-lfilename"). Fix a bug in keyboard.asm the old assembler handled. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* abcprintd: drop CR; fix handling of the default command lineH. Peter Anvin2012-08-081-3/+5
| | | | | | | Drop CR; apparently lpr converts it to LF and results in double spacing (sigh)... Handle the case where we don't have a print command line correctly.
* fileop: for the LIB function, use 8.3 notation so INPUT can handleH. Peter Anvin2012-08-081-13/+40
| | | | Use 8.3 (LIB.BAS) instead of NNNNNNNNEEE (LIB BAS).
* abcprintd: fix UTF-8 table, allow running in the foregroundH. Peter Anvin2012-08-081-4/+9
* abcprintd: make it possible to read a directory via PRA:H. Peter Anvin2012-08-072-51/+134
| | | | | Make it possible to read a directory by opening PRA: without a filename.
* fileop: handle multibyte host filenames, e.g. UTF-8H. Peter Anvin2012-08-071-35/+45
| | | | Handle host filenames with multibyte encoding, like UTF-8.
* Convert more files to UTF-8H. Peter Anvin2012-08-072-33/+33
* abcprintd: output wide characters, and use a Unicode tableH. Peter Anvin2012-08-071-20/+22
| | | | This is 2012, we speak Unicode... if we don't, that is just broken.
* ufdpatch.ny: convert to UTF-8H. Peter Anvin2012-08-071-64/+64
* enc28j60: fix the handling of CS# on readH. Peter Anvin2011-11-012-19/+24
| | | | | | Fix the handling of CS# on read, so that the last byte read is indeed the one which is read by IN 2. We don't need a long CS# hold after a read, so simply deassert CS# immediately after STATUS#.
* Add support for Olimex MOD-ENC28J60 Ethernet controller on GPIO1H. Peter Anvin2011-11-014-448/+746
| | | | | | One can attach an Olimex MOD-ENC28J60 Ethernet controller to the GPIO1 port via an easy to make cable. This allows the MOD-ENC28J60 to be addressed from ABC80.
* Allow parallel synthesisH. Peter Anvin2010-10-021-0/+2
* z80asm: fix some annoying compile problemsH. Peter Anvin2010-10-022-15/+1
| | | | Fix some unnecessary breakage of prototypes.
* Update settings file to Quartus 10.0sp1H. Peter Anvin2010-10-023-4/+769
| | | | | Update settings file to Quartus II 10.0sp1, including changing over to the new (TimeQuest) timing analyzer.
* Make it possible to change the SD controller unit mappingH. Peter Anvin2010-09-233-41/+128
| | | | | | | | | | A modern SD card generally will be way larger than 64 MB or 128 MB (the most that UFD-DOS and the controller interface can handle, respectively.) This adds a nonstandard controller command to reprogram the unit map to allow for up to 256 units instead of 8. This is expected to be useful when we have an ABC800 model, to be able to have the ABC80 and ABC800 system disk each as HD0: on the same card.
* display: latch a local copy of fg_ctlabc80-de1-18H. Peter Anvin2010-09-181-3/+8
| | | | | | fg_ctl is set in another clock domain, so latch a local copy in the video_clk domain. While we're doing that, we might as well defer the switch until vertical blank.
* Document the new FG handling.H. Peter Anvin2010-09-181-0/+22
* display: during the prefetch interval, run at full speedH. Peter Anvin2010-09-181-1/+3
| | | | | | | | | We have one character worth of prefetch, but that is one character at full speed (80 columns). So advance the counter at full speed during the prefetch interval. The alternative would be to adjust the timing of the prefetch start dynamically (otherwise the text would move between 40 and 80 column mode), but that seems to be more complicated especially when using the FG unit.
* Make the "high-resolution" graphics unit work (sort of...)H. Peter Anvin2010-09-185-34/+149
| | | | | | Make the high-resolution graphics unit actually work... at least with 80-character text display. It still doesn't seem to work for a 40-character test display.
* "Flatten" the FGCTL color ROMH. Peter Anvin2010-09-182-23/+22
| | | | | Flatten the FGCTL color ROM; just input the color select on A[1:0] and the FGCTL selection on A[8:2]...
* Add ROM for ABC800C/M-style FGCTL color selectH. Peter Anvin2010-09-184-1/+207
| | | | | Add a ROM to set up the color choices for ABC800C/M FGCTL graphics color selection (4 out of 8).
* Fix bugs in the new display.vH. Peter Anvin2010-09-181-15/+39
| | | | | Fix bugs in the new 6x10 display.v, mostly involving using the wrong counter bits in various places.
* abc80: use an original-compatible 6x10 character matrixH. Peter Anvin2010-09-186-133/+161
| | | | | | Use a 6x10 character matrix instead of a "cheating" 8x16. This is the resolution used by the original system. We use 480-line VGA mode to display this, so we have to use double-scanning.
* abc80.v: prepare for multiplexing SRAM with graphics; fix PLLsH. Peter Anvin2010-09-173-51/+97
| | | | | | | | | | | Prepare for multiplexing the SRAM with a graphics unit by only activating it when the CPU really need it. The CPU will never use it for two adjacent ticks of the CPU clock. Fix the reset time of the PLLs to something in legal range. Add an 18.75 MHz clock to be used as a pixel clock for 480x480 (480x240 dual scan) VGA-compatible mode.
* Remove obsolete cfdisk.vH. Peter Anvin2009-01-221-441/+0
| | | | | Remove obsolete file cfdisk.v, from the NIOS II board which had a CompactFlash slot instead of SD.
* Fix the declaration of the "fileops" booleanH. Peter Anvin2009-01-221-1/+1
* abcprintd: drop -t option from getopt()H. Peter Anvin2009-01-181-1/+1
| | | | | | Drop the no-longer-implemented -t option from the getopt() call. This is a cleanup only; it will already not be recognized as a valid option.
* Document abcprintd changeabc80-de1-17H. Peter Anvin2009-01-181-0/+6
* abcprintd: fix the handing of path namesH. Peter Anvin2009-01-182-22/+19
| | | | | | | daemon() by default makes a chdir to /. We don't want that if we have a file directory. Furthermore, we can make the whole file directory handling a lot simpler if we chdir() to the file directory and then use plain filename paths.
* Remove "turbo mode" - it will not workabc80-de1-16H. Peter Anvin2009-01-183-14/+5
| | | | | | | The driver chip on the DE1 is a MAX232, which is rated only for 120 kbps. As a result, expecting 461 kbps to work is optimistic at best, and is only going to be a source of problems. Drop any trace of "turbo mode" support, and let the synthesizer do a better job instead.
* sound.v: fix the sawtooth generator boundariesH. Peter Anvin2009-01-161-2/+2
| | | | Constrain the sawtooth generator properly.
* Move the audio unit to a separate PLLH. Peter Anvin2009-01-164-45/+356
| | | | | | | Make the clocking a little easier by moving the audio unit to a separate PLL fed from the 24 MHz input clock. Generating 16 MHz from 50 MHz required very high ratios which meant that it was difficult to adjust the other frequencies at all.