"Mr Proper" Wymagany rdzeń VBXE co najmniej 1.20. Fot.
Mad Team
Altirra Version 2.90 test 28 [march 14, 2017]:
changes
features added
- Debugger: Added .logopen and .logclose commands.
- Disk: Added support for full disk drive emulation of 810, Happy 810, 810 Archiver, 1050, 1050 Duplicator, US Doubler, Speedy 1050, Happy 1050, Super Archiver, TOMS 1050, Tiger 1050, 1050 Turbo, Indus GT, XF551, ATR8000, and PERCOM RFD-40S1 drives.
- Input: Added a keyboard option to allow host keys to be shared between by the keyboard and input maps.
bugs fixed
- Debugger: Heat-map based uninitialized effective address trap is now filtered properly.
- Debugger: Fixed crash when examining I/O bus memory in the debugger in 800 mode.
- Disk: Fixed disk position not being deterministic on a cold reset.
- VBXE: The xcolor bit now also gates bit 0 of colors in attribute map cells.
authors comment:
Adds emulation support for the Percom RFD-40S1 drive, of the series that introduced the famous Percom configuration block. This is a 6809-based drive, so it was a bit interesting getting a new 6809 core up and running. The 6809 has a clean and powerful instruction set, but many instructions take a few too many clocks than they should... the most egregious being TFR A,B taking 6 cycles. The Percom firmware is written straightforwardly, though I suspect they could have saved quite a few clock cycles and bytes -- everything from unnecessarily long branches, LBSR+RTS pairs, PC-relative everywhere, etc. Some odds and ends about this drive:
Like the ATR8000, the hardware appears to support for 2MHz FDC clock for 8" drives, but the firmware doesn't use it.
Also like the ATR8000, the RFD-40S1 takes too long to initialize if turned on at the same time as the computer due to recalibrating four drives. Soft-reset the computer in order to work around this.
Unlike the ATR8000, the RFD-40S1 can have its drive IDs changed, and it can go as high as D8: with the internal jumper.
The drive does support automatic density switching, but only for sector 1 on D1:. First drive won't even work if it's above D1:, it literally has to be drive ID $31. Not sure why it wasn't allowed on any other drive IDs....
This is the only drive I've seen that physically can't do high-speed operation even with custom firmware. It uses a UART instead of bit-banged SIO and the clock is hardwired to 19,200 baud. The drive firmware doesn't use interrupts for anything other than FDC interrupt and timeout and polls for SIO anyway, so I'm not sure why they didn't just bit-bang like everyone else and save a chip.
The NMI has an unusual one-shot on it for read/write timeout instead of a fake-index-pulse based timeout that the RIOT-based drives use. I couldn't determine the time constant for this one-shot circuit, so I guessed.
The jsobola schematic has several apparent errors in it: IRQ wired to UART chip select, UART clock lines tied together, FDC clock control lines seem crossed....
Other changes:
Fixed disk rotational position not being reset properly on a cold reset, causing the disk position to be randomized. It is now deterministic.
Fixed the heat-map based uninitialized effective address trap being active whenever the heat map was enabled, even if the EA trap was disabled.
Added .logopen and .logclose commands to the debugger.
Fixed crash when examining memory in the debugger in 800 mode with separate I/O bus mode enabled.
Fixed xcolor bit in VBXE not affecting colors in the attribute map.
Added option for keys double-mapped between the keyboard and input maps to be received by both, instead of only by the input map.