'$DYNAMIC DEFINT A-Z DECLARE SUB setmodex () DECLARE SUB copypage (BYVAL page1, BYVAL page2) DECLARE SUB setvispage (BYVAL PAGE) DECLARE SUB drawsprite (pic(), pal(), BYVAL po, BYVAL x, BYVAL y, BYVAL PAGE) DECLARE SUB loadsprite (pic(), BYVAL x, BYVAL y, BYVAL w, BYVAL h, BYVAL PAGE) DECLARE SUB stosprite (pic(), BYVAL x, BYVAL y, BYVAL PAGE) DECLARE SUB fadeto (palbuff(), BYVAL red, BYVAL green, BYVAL blue) DECLARE SUB fadetopal (pal(), palbuff()) DECLARE SUB setpal (pal()) DECLARE SUB clearpage (BYVAL PAGE) DECLARE SUB loadpage (buf(), fil$, BYVAL p) DECLARE SUB setkeys () DECLARE SUB setfont (F()) DECLARE SUB printstr (s$, BYVAL x, BYVAL y, BYVAL p) DECLARE SUB textcolor (BYVAL F, BYVAL b) DECLARE SUB setitup (fil$, buff(), BYVAL p) DECLARE SUB resetdsp DECLARE SUB playsnd (BYVAL n, BYVAL F) DECLARE SUB closefile DECLARE FUNCTION Keyseg () DECLARE FUNCTION keyoff () DECLARE FUNCTION keyval (BYVAL a) DECLARE FUNCTION getkey () TYPE Regtype ax AS INTEGER bx AS INTEGER cx AS INTEGER dx AS INTEGER bp AS INTEGER si AS INTEGER di AS INTEGER flags AS INTEGER ds AS INTEGER es AS INTEGER END TYPE DIM SHARED regs AS Regtype regs.ax = &H3509: CALL interruptx(&H21, regs, regs) off9 = regs.bx: seg9 = regs.es DIM font(1024), mainpal(767), kp(13), name$(127), what$(26), buffer(8000), fade(1536) GOSUB switchon setmodex setpal mainpal() DEF SEG = VARSEG(font(0)): BLOAD "data\font1.bob", VARPTR(font(0)) DEF SEG = VARSEG(mainpal(0)): BLOAD "data\palette.0", VARPTR(mainpal(0)) setfont font() setvispage 0 OPEN "data\keys.dat" FOR INPUT AS #1 FOR i = 1 TO 11: INPUT #1, kp(i): NEXT FOR i = 10 TO 13: INPUT #1, kp(i): NEXT CLOSE #1 FOR i = 1 TO 13: READ what$(i): NEXT FOR i = 0 TO 127: READ name$(i): NEXT GOSUB listing csr = 1 copypage 2, 1 printstr ">", 90, 40 + (csr * 8), 1 copypage 1, 0 fadetopal mainpal(), fade() setkeys DO: setkeys IF keyval(72) > 1 AND csr > 1 THEN csr = csr - 1 IF keyval(80) > 1 AND csr < 14 THEN csr = csr + 1 IF (keyval(28) > 1 OR keyval(57) > 1) AND csr < 14 THEN GOSUB newkey IF (keyval(28) > 1 OR keyval(57) > 1) AND csr = 14 THEN GOTO done IF keyval(1) > 1 THEN GOTO done copypage 2, 1 textcolor 15, 0 temp$ = "" FOR i = 1 TO 127 IF keyval(i) > 0 THEN temp$ = temp$ + "[" + RIGHT$(STR$(i), LEN(STR$(i)) - 1) + "] " NEXT i printstr temp$, 0, 190, 1 printstr ">", 90, 40 + (csr * 8), 1 copypage 1, 0 LOOP newkey: kp(csr) = 0 GOSUB listing copypage 2, 1 printstr ">", 90, 40 + (csr * 8), 1 copypage 1, 0 kp(csr) = getkey ctemp = csr: csr = 0 GOSUB listing csr = ctemp RETURN listing: loadpage buffer(), "data\keys.mxs" + CHR$(0), 2 FOR i = 1 TO 13 textcolor 15, 0 IF csr = i THEN textcolor 14, 0 printstr what$(i), 100, 40 + (8 * i), 2 NEXT i FOR i = 1 TO 13 textcolor 7, 0 printstr name$(kp(i)), 180, 40 + (8 * i), 2 NEXT i textcolor 6, 0 printstr "&save changes&", 100, 152, 2 textcolor 2, 0 RETURN done: OPEN "data\keys.dat" FOR OUTPUT AS #1 FOR i = 1 TO 9: WRITE #1, kp(i): NEXT WRITE #1, 29, 56 FOR i = 10 TO 13: WRITE #1, kp(i): NEXT WRITE #1, name$(kp(12)) CLOSE #1 fadeto buffer(), 0, 0, 0 GOSUB shutoff: SCREEN 13: SYSTEM switchon: regs.ax = &H2509: regs.ds = Keyseg: regs.dx = keyoff CALL interruptx(&H21, regs, regs) RETURN shutoff: regs.ax = &H2509: regs.ds = seg9: regs.dx = off9 CALL interruptx(&H21, regs, regs) RETURN DATA UP,DOWN,RIGHT,LEFT,STRAFE,ATTACK,ATTACK,STATUS,SAVE,CONFIRM,CONFIRM,TALK,CANCEL DATA "",ESC,1,2,3,4,5,6,7,8,9,0,-,=,BACK,TAB,Q,W,E,R,T,Y,U,I,O,P,[,],ENTER,CTRL,A,S,D,F,G,H,J,K,L,;,',`,,*(pad),ALT,SPACE,CAPS DATA F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,NUM,SCROLL,HOME,^,PAGE^,-(pad),<,5(pad),>,+(pad),END,|,PAGE|,INS,DEL,Unknown[84],Unknown[85],Unknown[86],F11,F12 DATA Unknown[89],Unknown[90],Unknown[91],Unknown[92],Unknown[93],Unknown[94],Unknown[95],Unknown[96],TASK,Unknown[98],Unknown[99],Unknown[100],Unknown[101] DATA Unknown[102],Unknown[103],Unknown[104],Unknown[105],Unknown[106],Unknown[107],Unknown[108],Unknown[109],Unknown[110],Unknown[111],katakana/hiragana,Unknown[113],Unknown[114],Unknown[115],Japanese \,Unknown[117] DATA Unknown[118],Unknown[119],Unknown[120],Right Kanji Key,Unknown[122],Left Kanji Key,Unknown[124],Yen Key,Unknown[126],Unknown[127]