Leo [Fri, 6 Aug 2010 22:36:36 +0000 (22:36 +0000)]
* avr/z80.asm:
- Reinit sd card if needed.
- Added printhexw.
- resetAVR: Wait, till tx buffer is empty.
- Bugfix in sysclockint: Can't use _0 register in interrupt.
Leo [Thu, 5 Aug 2010 13:39:22 +0000 (13:39 +0000)]
Merge softuart/cpm back into trunk:
* cpm/bios.asm:
- Ramdisk: changed DRM from 15 to 31.
- Changed '$nnnn' notation to 'nnnnh' to ease porting to ohter assemblers (M80).
Leo [Thu, 5 Aug 2010 09:32:02 +0000 (09:32 +0000)]
* avr/z80.asm:
- Save partition sizes and check if sector to be read or written is in partition range.
- read/write functions return error code to Z80 bios.
- Some bugfixes and cleanups in (de)blocking code.
- DRAM refresh interupt does nothing, if read or write cycle is in progress.
- print_ultoa saves all used registers.
Leo [Thu, 5 Aug 2010 08:43:26 +0000 (08:43 +0000)]
Merge softuart/cpm back into trunk:
* cpm/bios.asm:
- read/write: Get error code from avr part and return it to caller.
- Added dph/dpb for ramdisk.
- boot: If ramdisk exists, clear directory area, and copy ccp+bdos from boot disk.
- wboot: Load system from ramdisk, if feasible.
- Added print hex and reorderd functions to ease debugging.
* cpm/ipl.asm
- Increased number of sectors to load from 49 to 51 (= all reserved sectors).
* cpm/Makefile:
- oflag=direct removed from installcpm target.
Leo [Wed, 28 Jul 2010 20:21:17 +0000 (20:21 +0000)]
* avr/z80.asm:
- Scan partition table of sd-card and mount CP/M partitions as disk drives.
* cpm/bios.asm:
- seldsk: More then 1 disk selectable (4 for now). The actual number of disks will be determined in avr-part.
- dph/dpb tables extended accordingly.
Leo [Wed, 28 Jul 2010 19:32:31 +0000 (19:32 +0000)]
* avr/z80.asm:
- Added macro DRAM_WAITSTATES
- Some clean up in the init code.
- mmc read/write: Enable 32 bit sector/byte addresses.
- adrl/adrh are no longer used as dedicated dram adress registers. Replaced by the predefined names yl/yh.
- added keywords
Leo [Sun, 25 Jul 2010 22:40:07 +0000 (22:40 +0000)]
* avr/z80.asm:
- Removed DRAM_DQ_ORDER.
- New macros inm8/outm8 to hide the differences between ATmega8 and ATmegaX8.
- Added USART TX buffer with Interrupt.
- DRAM read: 1 nop added.
- Cleaned up INS_DEBUG.
Leo [Mon, 19 Jul 2010 15:25:20 +0000 (15:25 +0000)]
From experimental:
Initial implementation of blocking and deblocking algorithms.
See CP/M 2.2 ALTERATION GUIDE for reference.
* cpm/bios.asm:
- New disk I/O interface.
- 16 bit wide track numbers
- sectran competed. Unused translation table removed.
* cpm/ipl.asm:
- New disk I/O interface.
* cpm/Makefile:
- new target "installcpm": Install only system tracks.
* avr/z80.asm:
- New disk I/O interface.
- (de)blocking algorithm. Disk parameters are fixed for now.
- 16 bit wide track numbers
- register reorganisation
- "printstr" saves *all* registers.
Leo [Fri, 16 Jul 2010 00:08:50 +0000 (00:08 +0000)]
Initial implementation of blocking and deblocking algorithms.
See CP/M 2.2 ALTERATION GUIDE for reference.
* cpm/bios.asm:
- New disk I/O interface.
- 16 bit wide track numbers
- sectran competed. Unused translation table removed.
* cpm/ipl.asm:
- New disk I/O interface.
* cpm/Makefile:
- new target "installcpm": Install only system tracks.
* avr/z80.asm:
- New disk I/O interface.
- (de)blocking algorithm. Disk parameters are fixed for now.
- 16 bit wide track numbers
- register reorganisation
- "printstr" saves *all* registers.
Leo [Mon, 5 Jul 2010 19:24:16 +0000 (19:24 +0000)]
z80.asm: added interrupt driven delay timer; used in BOOTWAIT and RAMTEST.
RAMTEST waits some seconds after fill to test refresh.
dram_read: time between "CAS low" and data input was too short. added one clock cycle.
Leo [Sun, 4 Jul 2010 18:13:12 +0000 (18:13 +0000)]
use lookup table for parity flag computation
as we now have the table, use it for sign and zero flag too
changed flags to 8080 behavior
DRAM read/write routines changed to use A8 to select low/high nibble.
added USART RX buffer with Interrupt
added timer routines
more magic number eliminations