| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
A fairly compact way to store an assembly program, comparable in
overhead to an .ABS file.
|
|
|
|
|
|
| |
BDOS gets really unhappy about a shared DPH
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| |
|
|
|
|
| |
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
| |
Generate cpm.abs as an alternative to cpm.bas.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
| |
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
The invariant parts of CP/M, other than relocation.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
| |
Having an alignment directive is handy.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
CP/M is assumed to live at the immediate beginning of HD volume 4.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Correct the handling of the new volume command.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Use 8.3 (LIB.BAS) instead of NNNNNNNNEEE (LIB BAS).
|
| |
|
|
|
|
|
| |
Make it possible to read a directory by opening PRA: without
a filename.
|
|
|
|
| |
Handle host filenames with multibyte encoding, like UTF-8.
|
| |
|
|
|
|
| |
This is 2012, we speak Unicode... if we don't, that is just broken.
|
| |
|
|
|
|
|
|
| |
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#.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Fix some unnecessary breakage of prototypes.
|
|
|
|
|
| |
Update settings file to Quartus II 10.0sp1, including changing over to
the new (TimeQuest) timing analyzer.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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 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 ROM; just input the color select on A[1:0]
and the FGCTL selection on A[8:2]...
|
|
|
|
|
| |
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 6x10 display.v, mostly involving using the wrong
counter bits in various places.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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 file cfdisk.v, from the NIOS II board which had a
CompactFlash slot instead of SD.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Constrain the sawtooth generator properly.
|
|
|
|
|
|
|
| |
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.
|