10 REM---------1---------2---------3---------4---------5---------6---------7---------8---------9---------012345678 20 REM---------1---------2---------3---------4---------5---------6---------7---------8---------9---------0---------1---------2---------3---------4---------5---------6---------7---------8---------9---------0---------1---------2123456 30 PRINT "HOTKEY.BA": PRINT "Copyright 1987 Tri-Mike Network East" 40 PRINT "by MJ Nugent, Jr.": PRINT "All rights reserved" 50 PRINT "Installing...." 60 '----- m/l sizes, variables ----- 70 READ S1, S2, DFLAG, DIR, YO, YT, YR 80 '----- locate HOTKEY in RAM ----- 90 PRG=PEEK(63100)+256*PEEK(63101) 100 '----- set line 10 & 20 pointers ----- 110 L10=PRG+5 120 P20=PEEK(PRG)+256*PEEK(PRG+1) 130 L20=P20+5 140 '----- install m/l in line 10 ----- 150 BASE=L10: N=S1-1: GOSUB 460 160 '----- skip junk betw. lines ----- 170 FOR I=1 TO 6: READ A: NEXT 180 '----- install m/l in line 20 ----- 190 BASE=L20: N=S2-1: GOSUB 460 200 '----- find HOTKEY dir entry ----- 210 A$="": FOR I=3 TO 10: A$=A$+CHR$(PEEK(DIR+I)): NEXT 220 IF A$<>"HOTKEYBA" OR PEEK(DIR)<>128 THEN DIR=DIR+11: GOTO 210 230 '----- store it in m/l code ----- 240 MSB=INT(DIR/256): LSB=DIR-MSB*256 250 POKE L10+DFLAG,LSB: POKE L10+DFLAG+1,MSB 260 '----- store yr for date$ fix ----- 270 YR$=STR$(YR) 280 POKE L10+YT,ASC(MID$(YR$,2,1)) 290 POKE L10+YO,ASC(RIGHT$(YR$,1)) 300 '----- setup to kill these lines ----- 310 OPEN "KILLER.DO" FOR OUTPUT AS 1 320 FOR I=30 TO 1090 STEP 10 330 PRINT#1, STR$(I) 340 NEXT 350 CLOSE 360 '----- stuff cmds into keyboard buffer ----- 370 A$="KILL"+CHR$(34)+"KILLER.DO"+CHR$(13)+"MENU"+CHR$(13) 380 FOR I=1 TO LEN(A$) 390 POKE65449+2*I,ASC(MID$(A$,I,1)) 400 POKE65450+2*I,0 410 NEXT 420 POKE 65450,I-1 430 '----- waste lines, end install ----- 440 MERGE "KILLER.DO" 450 '----- install/relocate m/l ----- 460 FOR I=0 TO N 470 PTR=BASE+I 480 READ A: IF A=>0 THEN 540 490 READ A, B: REL=A+256*B 500 FX=REL+L10 510 B=INT(FX/256): A=FX-B*256 520 IF A=0 OR B=0 OR A=13 OR B=13 THEN BEEP: PRINT "Load Error!": END 530 POKE PTR+1,B: I=I+1 540 POKE PTR,A 550 NEXT 560 RETURN 570 '----- s1, s2, dflag, dir, yo, yt, yr ----- 580 DATA 108, 226, 1, 63842, 36, 29, 88 590 '----- line 10 m/l code ----- 600 DATA 33, 255, 255, 126, 238, 8, 119, 40 610 DATA 3, 26, 238, 99, 18, 33,-1, 28 620 DATA 0, 235, 42, 222, 250, 34,-1, 14 630 DATA 0, 235, 34, 222, 250, 201, 62, 56 640 DATA 214, 48, 50, 46, 249, 62, 55, 214 650 DATA 48, 50, 45, 249, 42, 82, 246, 17 660 DATA 239, 84, 223, 202,-1, 59, 0, 17 670 DATA 6, 89, 223, 194,-1, 65, 0, 62 680 DATA 1, 50,-1, 66, 0, 201, 62, 1 690 DATA 254, 2, 250,-1, 94, 0, 202,-1 700 DATA 114, 0, 62, 1, 61, 202,-1, 94 710 DATA 0, 50,-1, 76, 0, 33, 255, 255 720 DATA 126, 35, 34,-1, 85, 0, 225, 201 730 DATA 205, 214, 18, 245, 254, 27, 194,-1 740 DATA 63, 1, 62, 2, 195,-1, 65, 1 750 '----- junk between lines ----- 760 DATA 0, 0, 0, 0, 0, 0 770 '----- line 20 m/l code ----- 780 DATA 205, 214 790 DATA 18, 245, 205, 233, 15, 254, 27, 202 800 DATA -1, 63, 1, 33,-1, 71, 1, 34 810 DATA -1, 85, 0, 254, 84, 194,-1, 143 820 DATA 0, 205, 15, 25, 195,-1, 151, 0 830 DATA 254, 68, 194,-1, 156, 0, 205, 47 840 DATA 25, 62, 9, 195,-1, 51, 1, 254 850 DATA 87, 194,-1, 169, 0, 205, 98, 25 860 DATA 62, 4, 195,-1, 51, 1, 254, 70 870 DATA 194,-1, 193, 0, 219, 187, 230, 6 880 DATA 238, 2, 62, 12, 245, 196, 98, 118 890 DATA 241, 204, 63, 109, 195,-1, 20, 1 900 DATA 254, 86, 194,-1, 9, 1, 42, 224, 250, 229, 33, 243, 127, 34, 224, 250 910 DATA 33, 1, 254, 43, 229, 17, 70, 255, 6, 40 920 DATA 229, 213, 197, 205, 66, 37, 42, 57 930 DATA 246, 229, 33, 1, 1, 205, 124, 66 940 DATA 205, 93, 66, 225, 34, 57, 246, 205 950 DATA 112, 93, 205, 214, 18, 193, 209, 225 960 DATA 235, 205, 66, 37, 225, 205, 34, 70, 225, 34, 224, 250 970 DATA 195, -1, 20, 1, 254, 79, 194, -1 980 DATA 25, 1, 205, -1, 0, 0, 205, 98 990 DATA 118, 62, 1, 195, -1, 56, 1, 254 1000 DATA 9, 194, -1, 63, 1, 33, -1, 79 1010 DATA 1, 34, -1, 85, 0, 58, 58, 246 1020 DATA 61, 6, 5, 144, 242, -1, 42, 1 1030 DATA 128, 79, 120, 145, 60, 50, -1, 76 1040 DATA 0, 62, 3, 50, -1, 66, 0, 241 1050 DATA 175, 225, 201, 62, 1, 50, -1, 66 1060 DATA 0, 241, 225, 201, 42, 98, 117, 102 1070 DATA 102, 101, 114, 42, 32, 32, 32, 32 1080 DATA 32 1090 '----- turn HOTKEY on/off ----- 2000 CALL PEEK(63100)+256*PEEK(63101)+5: MENU