If it mirrors to 0x41 then it's a 2793
If it writes/reads back but does not mirror it's a WD1002-5
- Now check if writes to 0x45 affect 0x5 with 0x58 switched
+ Now check if writes to 0x45 affect 0x45 with 0x58 switched
(if so its two controllers and we can repeat the probe algorithm
for the other one)
- Support attributes, colour.
- Buffer reclaim of discard memory
- Bank the video
+- Debug TC keyboard code: shift/ctrl are busted
To Do:
- Floppy - media detect/sectors per track etc/ hard skew
-- Debug TC keyboard code: shift/ctrl are busted - do we need repeat ?
- Hard disk driver debug
- IDE driver (note the ubee512 emulator ide appears to be very busted as
of 5.8.0)
- If we have wd1002-5 and fd wtf do we put IDE in major/minors ?
- Non TC keyboard (lightpen keyboard)
+- Fix reboot/panic logic
+- Keyboard repeat
Longer Term
- RAM based fonts (load the ROM one into RAM
- Map video at 0x8000 DONE
- Clear attribute ram if present DONE
- Move common up DONE
-- Do buffer over discard change UNTESTED
+- Do buffer over discard change DONE
- Check we have video latches/map right everywhere DEBUGGING
- Init vtattr_cap and the video variables correctly PARTLY DONE
- Check if scrolling in hw is doable or not in 80x25 NO
/* 5x */
{ KEY_F11, ')', 'P', ':', KEY_DEL, '"', '|', '>' },
{ KEY_F12, '_', '{', '\'', 0, '+', '}', '?' },
- /* 60 shift 67 ctrl 70 alt */
+ /* 67 shift 6F ctrl 77 alt */
};
}
/* TODO: ALT */
- if (keymap[6] & 0x80) /* shift */
+ if (keymap[12] & 0x80) /* shift */
c = shift_keyboard_tc[keybyte][keybit];
else
c = keyboard_tc[keybyte][keybit];
- if (keymap[7] & 0x80) { /* control */
+ if (keymap[13] & 0x80) { /* control */
if (c > 31 && c < 127)
c &= 31;
}
keybyte = c >> 3;
keybit = c & 7;
if (keybyte < 15) {
- keymap[keybyte] |= keybit;
+ keymap[keybyte] |= (1 << keybit);
keysdown++;
newkey = 1;
}
static void keymap_up(uint8_t c)
{
if (keybyte < 15) {
- keymap[c >> 3] &= ~(c & 7);
+ keymap[c >> 3] &= ~(1 << (c & 7));
keysdown--;
}
}