| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Cygwin isn't UTF-8 ready yet, so revert all the text files back to
Latin-1.
|
| |
|
|
|
|
| |
Ignore the files/* directory
|
|
|
|
|
| |
Remove the debugging code. Right now 460800 bps doesn't seem to
work, so undocument the turbo mode.
|
|
|
|
|
|
| |
The last entries in the jump table are indeed delete and rename, but
they don't work due to DOS assuming only disk files can be renamed or
deleted.
|
|
|
|
|
| |
Get some of the block I/O support in there. It's still not right,
however; and of course the documentation is all wrong.
|
| |
|
|
|
|
|
|
|
|
|
| |
Snapshot the file operations work. Basic block download now works
(I'm even testing this by downloading new versions of printer.bin via
a small BASIC stub.) "turbo mode" (460800 bps) doesn't seem to work,
however, not really sure why. Not that it really matters.
Plenty of more work to be done, though.
|
|
|
|
| |
Implement a flash clear command; it's easy enough to do.
|
| |
|
|
|
|
|
| |
Fix the fileop state machine. Disable daemonizing and add some
debugging printfs for the moment.
|
| |
|
|
|
|
|
| |
Two errors in the receive circuit: the counter was tested with &
instead of |, and the wrong bits were being latched.
|
| |
|
| |
|
|\ |
|
| | |
|
| |
| |
| |
| |
| | |
Completely untested, but "at least it compiles" implementation of a
remote file access protocol in abcprintd.
|
| |
| |
| |
| |
| | |
Include a list of ABC80 error codes, using the original Swedish
definitions.
|
|/
|
|
| |
We need basic80.mif for the 80-column BASIC patch ROM.
|
|
|
|
|
| |
Take an optional argument which is the base address of the file being
disassembled.
|
|
|
|
|
|
| |
Make the "printer" port bidirectional, to accommodate a simple
networking interface (to be implemented in abcprintd). Additionally,
implement the FF-escaping in the printer ROM instead of in hardware.
|
|
|
|
|
|
| |
Add a serial port receive FIFO for the "printer" port. This way
we can make it bidirectional and use it to access the rest of the
world.
|
|
|
|
|
|
| |
Fix a typo in sound.v; the synthesizer will have done the right thing
anyway by pure accident, so this doesn't change the logic in any way,
but it'll avoid a warning and perhaps more importantly, avoid confusion.
|
|
|
|
|
| |
Quite a few of the sound DAC register settings were just plain wrong.
Fix them.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The spec states:
SD_SEND_OP_COND (ACMD41) is used to start initialization and to check
if the card has completed initialization. It is mandatory to issue
CMD8 prior to the first ACMD41. Receiving of CMD8 expands the CMD58
and ACMD41 function; HCS (High Capacity Support) in the argument of
ACMD41 and CCS (Card Capacity Status) in the response of CMD58. HCS is
ignored by the card, which didn’t accept CMD8. Standard Capacity SD
Memory Card ignores HCS. The “in idle state” bit in the R1 response of
ACMD41 is used by the card to inform the host if initialization of
ACMD41 is completed. Setting this bit to “1” indicates that the card
is still initializing. Setting this bit to “0” indicates completion of
initialization. The host repeatedly issues ACMD41 until this bit is
set to “0”. The card checks the HCS bit in the OCR only at the first
ACMD41. While repeating ACMD41, the host shall not issue another
command except CMD0.
I misread that to mean that it was supposed to set HCS <- 0 before
re-issuing ACMD41, which is unnecessary.
Also, add a unique LED error code (E8) to ACMD41 error.
|
| |
|
|
|
|
|
|
| |
Did an OTDR instead of INDR to read the OCR, with predicably bad
effects. As a result, version 10 broke all non-SDHC cards except very
old ones.
|
| |
|
|
|
|
|
|
|
| |
Fix support for SDHC. The wrong flag was checked in SDHC, and there
were some minor misses in the initialization sequence. Per spec, the
SDHC offer bit should only be in the first ACMD41, not in the
interations thereof.
|
|
|
|
|
|
|
| |
In the sd_init sequence, be really careful about the argument
registers (DEHL). If there is ever any doubt, call RST 16 to clear
them - it is only a one-byte instruction, and this is not
time-critical code in any way.
|
|
|
|
|
|
| |
Restructure the video_width conditional, so the synthesizer can
recognize it as the usual kind of flipflop with reset and nothing
unusual.
|
|
|
|
| |
Rearrange some entry points to save a few bytes.
|
|
|
|
|
|
| |
Be a bit more strict about when sd_buf is valid or not. In
particular, for a RMW it is valid after the R, invalid during MW, and
then valid again.
|
|
|
|
| |
If we get to setup_command, clear any lock state
|
|
|
|
|
| |
Make sure to clear the interrupt pending flag and not leaving it in
memory (with the obvious result on the next unlock.)
|
| |
|
|
|
|
|
| |
Move the LED codes to a separate include file, and add a few more in
case we ever need them.
|
|
|
|
|
| |
Since errled is not reset by ireset (since the CPU may very well want
to reset controller after an error), make sure it is set to 0 on POR.
|
|
|
|
|
|
| |
Handle SD card initialization errors better. Display an error code
(Ex) on the s7 LED, and report an error to ABC80 instead of hanging
forever.
|
|
|
|
|
|
| |
The check of i2c_rom_stop changed from the beginning to the end of the
cycle, which means that the value should be decremented to the last
valid value.
|
|
|
|
|
| |
Rename "bit" to "sda" to shut up warning about SystemVerilog
compatibility.
|
|
|
|
|
| |
Do some minor cleanups, to reduce the heap of warnings the synthesizer
emits.
|
|
|
|
|
|
| |
Mostly as an exercise in hardware optimization, recode the i2c
generator for much smaller size. It is down from 76 to 43 LEs with
the new design.
|