tim@ism780c.UUCP (Tim Smith) (10/07/86)
Here is an FKEY to switch between a qwerty keyboard layout and a Dvorak keyboard layout. The Dvorak layout is the one described in the October 1986 MacWorld. The difference between this layout and other Dvorak layouts is that this one keeps shifted keys with the same un-shifted keys that they are on under the Mac qwerty layout. Option keys stay at the same place on the keyboard. For example, circle-c, which is option-G on the qwerty keyboard, is option-I on the Dvorak keyboard. On the other hand, keyboard shortcuts for menus do move. Install by pasting into System with a resource editor ( renumbering if you already have an FKEY 9 ). This FKEY has the header that the DotP Fkey installer expects, but since I don't have that program, I don't know if it will work. In particular, the file type or creator might not be what that program expects. ---------------------- Cut Here .... --------------------------- (This file must be converted with BinHex 4.0) :#f4fEh*KDb"QDf9j!%e%48C0680$!*!)!h$+N3#3"!%!N!-$-!!!!M!!N!0!F'* eEQa[BfYbB3S+F'*cCA4MBA4TEJT`G'pMFh4b#Q-,C(C[FQ&V)'CVCAN#!*!$684 &4Ne03d-"!!#!!*!$'!!!684&4Ne03d-"!!#!!*!$'!#%!*!1Qk[(e!#3"J0`#JT IBQPZB@4N#PpLD@jKFRN+#PpLD@jbC@d+Af*TEQ&bH3S+Af*TER4cG!TIBQPZBA* j#JT[F'9Z#QGPG(*PCQjeE3TRCA4NDA*TC!TPFR*ZE`TIBQPZB@4N#P"#6h"PEJT `BQK[F'9Z#JTTEQPd,Qm+#J!")5!!"&pTEQPd#JTIB3!!!LaJ#J!!4NY&@3!*!!" )jrrm6VS!#%cI2rp1G8j@!!")j`%`5IS"qL"m!!!#RLC33NGJ!!%1%"2!I!$rX(` !B@B!!(B3+`!"`(`!rl"m!(0Q!!"Q%#X!!X"m!2q`I!"NCJ!!9K!V!!2!I!$rX(` !CQB!!%B3+`!%`(`!rl"m!'KQ!!!f%#X!"F"m!2q`I!"RCJ!!*K!V!!E!I!$rX(` !HQB!!"B3+`!(`(`!rl"m!(KQ!!!'B!!!P"!6`(`!rl"m!'&Q!!"f%#X!!F"m!2q `I!"[CJ!!CK!V!!,!I!$rX(`!C@B!!&B3+`!$`(`!rl"m!(9Q!!"'%#X!"-"m!2q `I!"NCJ!!0K!V!!A!I!$rX(`!D@B!!#B3+`!'`(`!rl"m!$YQ!!!@%#X!"m"m!2q `I!"aCJ!!"Q!!!")`"e*()!Y5L`a(#!"Y!2lZ$%F)!'d!!"!r2!!"6VS!b&52B!! !)%(XrfBN5%*(B!!!$"!D`(`!rl%E8NF-4`#DE3$rm%cI$)"1ANje!"`"%``133N *(3!D9PY,!Km0!*!'B!!!GJ!!B"d5G!SF!!)##Kp)!&Y9$!"B!*!'(!%6$!jJ#3N G!"TcDhX#(`d!N!C@!!!N!!"@(4*%#K`!!J*p(fN!Df8-!'J!N!BF!4--$Q%*#4d !'RClD`)I$3#3"Q!!!(B!!'!G%R3r(!!#!JSID!"lG3`!H%j@!!!r,J!)UFK1ANj e!!!"!*!$!c!!!!)`!*!$3!!#Hl3#0J#3!a`!-J!!4NY&@3#3!`S!#3#3"`,LMJe NGQpbB@X[FAGPFR4jF"S: ---------------------- ...and here... ------------------------- /* * This is in Megamax C. * * Tell mmlink to produce a MDEF or CDEF. Use ResEdit to move the code * produced from the MDEF or CDEF into an FKEY. */ unsigned char table[154]; asm { BRA.S start(PC) DC.W 0 DC.B 'F','K','E','Y' DC.W 9 DC.W 0 start: MOVEM.L D0-D7/A0-A5,-(A7) JSR doit(PC) MOVEM.L (A7)+,D0-D7/A0-A5 RTS doit: } remap() { register unsigned char * b; register unsigned char * n; register int i; asm { LEA myvars(PC), A4 /* set up my variables */ } b = *(unsigned char **)0x29e; /* key1trans */ for ( i = 0; i < 0x800; i++,b++ ) { if ( b[0] == 'a' && b[1] == 's' && b[2] == 'd' && b[3] == 'f' && b[4] == 'h' && b[5] == 'g' && b[6] == 'z' && b[7] == 'x' ) break; if ( b[0] == 'a' && b[1] == 'o' && b[2] == 'e' && b[3] == 'u' && b[4] == 'd' && b[5] == 'i' && b[6] == ';' && b[7] == 'q' ) break; } if ( i >= 0x800 ) { SysBeep(1); return; } n = &table[0]; for ( i = 0; i < 154; i++ ) *b++ ^= *n++; } asm { begin: /* if there is no label here, then there will be a problem with compiler generated local labels */ dc.b 'a' ^ 'a' dc.b 's' ^ 'o' dc.b 'd' ^ 'e' dc.b 'f' ^ 'u' dc.b 'h' ^ 'd' dc.b 'g' ^ 'i' dc.b 'z' ^ ';' dc.b 'x' ^ 'q' dc.b 'c' ^ 'j' dc.b 'v' ^ 'k' dc.b 0 dc.b 'b' ^ 'x' dc.b 'q' ^ 0x27 dc.b 'w' ^ ',' dc.b 'e' ^ '.' dc.b 'r' ^ 'p' dc.b 'y' ^ 'f' dc.b 't' ^ 'y' dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b '=' ^ ']' dc.b 0 dc.b 0 dc.b '-' ^ '[' dc.b 0 dc.b 0 dc.b ']' ^ '=' dc.b 'o' ^ 'r' dc.b 'u' ^ 'g' dc.b '[' ^ '/' dc.b 'i' ^ 'c' dc.b 'p' ^ 'l' dc.b 0 dc.b 'l' ^ 'n' dc.b 'j' ^ 'h' dc.b 0x27 ^ '-' dc.b 'k' ^ 't' dc.b ';' ^ 's' dc.b 0 dc.b ',' ^ 'w' dc.b '/' ^ 'z' dc.b 'n' ^ 'b' dc.b 'm' ^ 'm' dc.b '.' ^ 'v' dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 'A' ^ 'A' dc.b 'S' ^ 'O' dc.b 'D' ^ 'E' dc.b 'F' ^ 'U' dc.b 'H' ^ 'D' dc.b 'G' ^ 'I' dc.b 'Z' ^ ':' dc.b 'X' ^ 'Q' dc.b 'C' ^ 'J' dc.b 'V' ^ 'K' dc.b 0 dc.b 'B' ^ 'X' dc.b 'Q' ^ '"' dc.b 'W' ^ '<' dc.b 'E' ^ '>' dc.b 'R' ^ 'P' dc.b 'Y' ^ 'F' dc.b 'T' ^ 'Y' dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b '+' ^ '}' dc.b '(' ^ '(' dc.b 0 dc.b '_' ^ '{' dc.b 0 dc.b 0 dc.b '}' ^ '+' dc.b 'O' ^ 'R' dc.b 'U' ^ 'G' dc.b '{' ^ '?' dc.b 'I' ^ 'C' dc.b 'P' ^ 'L' dc.b 0 dc.b 'L' ^ 'N' dc.b 'J' ^ 'H' dc.b '"' ^ '_' dc.b 'K' ^ 'T' dc.b ':' ^ 'S' dc.b 0 dc.b '<' ^ 'W' dc.b '?' ^ 'Z' dc.b 'N' ^ 'B' dc.b 'M' ^ 'M' dc.b '>' ^ 'V' dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 'A' ^ 'A' dc.b 'S' ^ 'O' dc.b 'D' ^ 'E' dc.b 'F' ^ 'U' dc.b 'H' ^ 'D' dc.b 'G' ^ 'I' dc.b 'Z' ^ ';' dc.b 'X' ^ 'Q' dc.b 'C' ^ 'J' dc.b 'V' ^ 'K' dc.b 0 dc.b 'B' ^ 'X' dc.b 'Q' ^ 0x27 dc.b 'W' ^ ',' dc.b 'E' ^ '.' dc.b 'R' ^ 'P' dc.b 'Y' ^ 'F' dc.b 'T' ^ 'Y' dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b 0 dc.b '=' ^ ']' dc.b 0 dc.b 0 dc.b '-' ^ '[' dc.b 0 dc.b 0 dc.b ']' ^ '=' dc.b 'O' ^ 'R' dc.b 'U' ^ 'G' dc.b '[' ^ '/' dc.b '|' ^ 'C' dc.b 'P' ^ 'L' dc.b 0 dc.b 'L' ^ 'N' dc.b 'J' ^ 'H' dc.b 0x27 ^ '-' dc.b 'K' ^ 'T' dc.b ';' ^ 'S' dc.b 0 dc.b ',' ^ 'W' dc.b '/' ^ 'Z' dc.b 'N' ^ 'B' dc.b 'M' ^ 'M' dc.b '.' ^ 'V' myvars: } ---------------------- ...and here --- ------------------------- -- member, all HASA divisions POELOD ECBOMB -------------- ^-- Secret Satanic Message Tim Smith USENET: sdcrdcf!ism780c!tim Compuserve: 72257,3706 Delphi or GEnie: mnementh