Dear visitor, welcome to Forum64.
If this is your first visit here, please read the Help. It explains in detail how this page works.
To use all features of this page, you should consider registering.
Please use the registration form, to register here or read more information about the registration process.
If you are already registered, please login here.
I think:
830-831/$033E-$033F Unshifted
832-833/$0340-$0341 SHIFT
834-835/$0342-$0343 Commodore
836-837/$0344-$0345 CONTROL
838-839/$0346-$0347 ALT (same as unshifted)
840-841/$0348-$0349 CAPS LOCK
(Yes, I know that layout of ALT & CAPS LOCK has not)
028D 652 Flag for SHIFT/CNTRL 1=SHIFT, 2=COMMODORE, 4=CONTROL
028E 653 last SHIFT pattern on keyboard
(some else please explain the difference to the previous address)
028F 654 pointer to the keyboard decoding table, low byte normaly: $48
0290 655 pointer to the keyboard decoding table, high byte normaly: $EB
0291 656 SHIFT mode (0=set, 128=locked)
I'll attach a small C listing and binary, just for my enjoyment.
P.S: Perhaps I did not get you right, or you asked the wrong question. Did you perhaps mean location of pointers to (shifted) charsets?
Source code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <conio.h>
int main( void )
{
unsigned int i;
clrscr();
for (;;)
{
gotoxy(0,0);
for ( i = 653; i < 658; ++i )
{
cprintf("$%4x / %3d: $%-2x\n\r", i, i, *(unsigned char *) i );
}
}
}