100 REM +-----------------------------+ 110 REM ! Program.... L\K2.UTL Ver 83! 120 REM ! Utg}va 1.0 86-01-06 ! 130 REM ! (c) ABC-Klubben ! 140 REM ! och Alf Wirdling <4230> ! 150 REM ! och Rolf Skoog <1212> ! 160 REM ! och Olle Bliding <2182> ! 170 REM ! Minne 32 kb ! 180 REM ! Checksumma 11273 ! 190 REM ! Ins{nt av <2182> ! 200 REM +-----------------------------+ 210 ; CHR$(12%)TAB(15%)"L\K" : ; TAB(15%)"===" : ; 220 IF PEEK(33011%)<>52% ; "[r L\KAREN verkligen inladdad (N)"; : INPUT A$ : IF A$="N" OR A$="" STOP 230 IF PEEK(32965)+256*PEEK(32966)<>33929 ; "Hopptabellen {r omorganiserad en g}ng: Jag forts{tter inte." : STOP 240 IF PEEK(24576%)=195% THEN T%=37037% ELSE T%=36467% 250 IF PEEK(65052%)+SWAP%(PEEK(65053%))>=T%+755% 280 260 ; " BOFA {ndrad ? (nu=";PEEK(65052)+256*PEEK(65053)" )" : ; "B|r vara minst=";66291+T% 270 ; "Du forts{tter p} egen risk" : GET A$ : ; 280 ; "Svara RETURN p} alla fr}gor om du vill ha en normal variant" : ; 290 ; "Har rutinen r{tt startadress (nu=";65536+T%;" ) (J)"; : INPUT A$ 300 IF A$="J" OR A$="" 330 310 ; "Ange plats f|r startadress"; : INPUT T% 320 GOTO 290 330 IF T%<>37037% AND T%<>36467% ; "Konstig startadress" 340 IF PEEK(65052%)+SWAP%(PEEK(65053%))>=T%+755% 370 350 ; " BOFA {ndrad ? (nu=";PEEK(65052)+256*PEEK(65053)" )" : ; "B|r vara minst=";66291+T% 360 ; "Du forts{tter p} egen risk" : GET A$ : ; 370 POKE T%,0% : T%=T%+1% 380 ; "Nya CTRL-TANGENTER :" 390 ; "CTRL-R 50 b","Exekverar 'RUN'." 400 ; "CTRL-K 50 b","Exekverar 'RUNCAS:'." 410 ; "CTRL-B 50 b","L{ser in allt mellan" : ; ,"mark|ren och p} sk{rmen" : ; ,"f|rst f|rekommande dubbla" 420 ; ,"mellanslag." 430 ; "CTRL-L 10 b","Som tidigare, men t|mmer" : ; ,"inmatnings bufferten." 440 ; "CTRL-E 0 b","Nytt namn p} CTRL-^." 450 ; "CTRL-^ 50 b","Exekverar '^'." 460 IF PEEK(874%)<>39 ; "CTRL-F 125 b","V{xlar mellan tv} program-";,"minnen" : V%=1% : GOTO 480 470 ; "CTRL-V 125 b","V{xlar mellan tv} program-";,"minnen" 480 ; "Ange vilka nya CTRL-TANGENT-FUNKTIONER som skall ing}:" 490 B$="RKBLVE^" 500 FOR F%=1% TO 4% : ; "CTRL-";MID$(B$,F%,1%);" (J)"; : INPUT C$ : IF C$="J" OR C$="" A$=A$+MID$(B$,F%,1%) 510 NEXT F% 520 IF V% ; "CTRL-F (J)"; ELSE ; "CTRL-V (J)"; 530 INPUT C$ : IF C$="J" OR C$="" A$=A$+"V" 540 ; "CTRL-E och CTRL-^ (J)"; : INPUT C$ : IF C$="J" OR C$="" A$=A$+"E^" 550 T1%=T% 560 REM TXT R U N /C A S : / 570 POKE T%,82%,85%,78%,67%,65%,83%,58% 580 T1%=T1%+7% 590 ; "Nya rutiner, adresser" 600 POKE 33013%,52% : REM Ver 4.4 610 REM EXEKVERA EJ ,FLYTTA TILLBAKA 620 POKE T1%,35%,221%,52%,1%,5%,205%,15%,131% 630 T1%=T1%+8% 640 REM PLING-SUBRUTIN 650 POKE T1%,62%,131%,211%,6%,201% 660 T1%=T1%+5% 670 REM EXEKVERING ?? 680 S1%=T1% 690 POKE T1%,229%,33%,64%,254%,231%,254%,13%,225%,202%,T1%+35%,SWAP%(T1%+35%) 700 T1%=T1%+11% 710 POKE T1%,120%,185%,202%,T1%+24%,SWAP%(T1%+24%) 720 T1%=T1%+5% 730 POKE T1%,43,221,53,1%,4%,126,254,32,194,T%+7%,SWAP%(T%+7%),120,185,202,T1%+19%,SWAP%(T1%+19%),195%,T1%,SWAP%(T1%) 740 T1%=T1%+19% 750 POKE T1%,221%,102%,1%,221%,110%,0%,34%,13%,254%,195%,64135%,SWAP%(64135%) 760 T1%=T1%+12% 770 H1%=T1%-2% : REM HOPPADRESS 780 IF INSTR(1%,A$,"R")=0% 870 790 ; "CTRL-R",65536+T1% 800 POKE 33821%,T1%,SWAP%(T1%) 810 POKE T1%,229%,33%,H1%,SWAP%(H1%),54%,T1%+13%,35%,54%,SWAP%(T1%+13%),225%,195%,S1%,SWAP%(S1%) 820 T1%=T1%+13% 830 POKE T1%,205%,186%,130%,205%,210%,130%,33%,T%,SWAP%(T%),1%,3%,0%,205%,11%,0%,205%,186%,130%,205%,204%,131%,205% 840 T1%=T1%+22% 850 POKE T1%,87%,130%,201% 860 T1%=T1%+3% 870 IF INSTR(1%,A$,"K")=0% 960 880 ; "CTRL-K",65536+T1% 890 POKE 33807%,T1%,SWAP%(T1%) 900 POKE T1%,229%,33%,H1%,SWAP%(H1%),54%,T1%+13%,35%,54%,SWAP%(T1%+13%),225%,195%,S1%,SWAP%(S1%) 910 T1%=T1%+13% 920 POKE T1%,205%,186%,130%,205%,210%,130%,33%,T%,SWAP%(T%),1%,7%,0%,205%,11%,0%,205%,186%,130%,205%,204%,131%,205% 930 T1%=T1%+22% 940 POKE T1%,87%,130%,201% 950 T1%=T1%+3% 960 IF INSTR(1%,A$,"L")=0% POKE 33809%,33487%,SWAP%(33487%) : GOTO 1010 970 ; "CTRL-L",65536+T1% 980 POKE 33809%,T1%,SWAP%(T1%) 990 POKE T1%,205%,186%,130%,205%,207%,130%,201% 1000 T1%=T1%+7% 1010 IF INSTR(1%,A$,"E")=0% 1150 1020 ; "CTRL-E",33536 1030 POKE 33795%,0%,131% 1040 ; "CTRL-^",65536+T1% 1050 POKE T1%,94% 1060 T2%=T1% 1070 T1%=T1%+1% 1080 POKE 33845%,T1%,SWAP%(T1%) 1090 POKE T1%,229%,33%,H1%,SWAP%(H1%),54%,T1%+13%,35%,54%,SWAP%(T1%+13%),225%,195%,S1%,SWAP%(S1%) 1100 T1%=T1%+13% 1110 POKE T1%,205%,186%,130%,205%,210%,130%,33%,(T2%),SWAP%(T2%),1%,1%,0%,205%,11%,0%,205%,186% 1120 T1%=T1%+17% 1130 POKE T1%,130%,205%,204%,131%,205%,87%,130%,201% 1140 T1%=T1%+8% 1150 IF INSTR(1%,A$,"B")=0% 1220 1160 ; "CTRL-B",65536+T1% 1170 POKE 33813%,T1%,SWAP%(T1%) 1180 POKE T1%,205,33740,SWAP%(33740),62,1,50%,32824%,SWAP%(32824%),205%,33408%,SWAP%(33408%),197%,205,659,SWAP%(659%) 1190 T1%=T1%+15% 1200 POKE T1%,193,5,26,254,32,194%,T1%-15%,SWAP%(T1%-15%),175%,50%,32824%,SWAP%(32824%),205%,33479%,SWAP%(33479%),201 1210 T1%=T1%+16% 1220 IF INSTR(1%,A$,"V")=0% 1550 1230 IF V% ; "CTRL-F",65536+T1% : POKE 33797,T1%,SWAP%(T1%) : GOTO 1260 1240 ; "CTRL-V",65536+T1% 1250 POKE 33829%,T1%,SWAP%(T1%) 1260 POKE T1%,229%,33%,H1%,SWAP%(H1%),54%,T1%+24%,35%,54%,SWAP%(T1%+24%),225%,195%,S1%,SWAP%(S1%) 1270 T1%=T1%+13% 1280 T5%=T1% 1290 REM TXT P 1 P 2 1300 POKE T5%,80%,49%,80%,50% 1310 T1%=T1%+4% 1320 M1%=T1% 1330 REM * ALTERNATIV BOFA/EOFA * 1340 A%=PEEK(65063%)+256%*PEEK(65064%)-1000 1350 ; "Skall 'ALTERNATIV BOFA' vid program- delning vara"65536+A%;" (J)"; : INPUT D$ 1360 IF D$="J" OR D$="" 1390 1370 ; "Var skall delningen ske"; : INPUT A 1380 IF A<37600 OR A>PEEK(65063%)+256*PEEK(65064%)-5% ; "EJ TILL]TET" : GOTO 1370 ELSE A%=A 1390 T1%=T1%+7% 1400 POKE T1%,197%,213%,229%,237%,91%,28%,254%,42%,M1%,SWAP%(M1%) 1410 T1%=T1%+10% 1420 POKE T1%,34%,28%,254%,237%,83%,M1%,SWAP%(M1%),237%,91%,30%,254%,42%,M1%+2%,SWAP%(M1%+2%) 1430 T1%=T1%+14% 1440 POKE T1%,34%,30%,254%,237%,83%,M1%+2%,SWAP%(M1%+2%),35%,34%,32%,254%,237%,91%,39%,254% 1450 T1%=T1%+15% 1460 POKE T1%,42%,M1%+4%,SWAP%(M1%+4%),34%,39%,254%,237%,83%,M1%+4%,SWAP%(M1%+4%),58%,M1%+6%,SWAP%(M1%+6%) 1470 T1%=T1%+13% 1480 POKE T1%,254%,2%,32%,10%,62%,1%,50%,M1%+6%,SWAP%(M1%+6%),33%,T5%,SWAP%(T5%),24%,8% 1490 T1%=T1%+14% 1500 POKE T1%,62%,2%,50%,M1%+6%,SWAP%(M1%+6%),33%,T5%+2%,SWAP%(T5%+2%),1%,2%,0%,205%,11%,0% 1510 T1%=T1%+14% 1520 POKE T1%,225%,209%,193%,205%,210%,130%,205%,186%,130%,205%,175%,130%,201% 1530 T1%=T1%+13% 1540 GOTO 1570 1550 ; "Skall n}gon av ~, SW, GOLV laddas in (J)"; : INPUT D$ 1560 IF D$<>"J" AND D$<>"" THEN 2660 1570 X%=33847% : R%=0% 1580 ; "Omorganisation av hopptabellen 50 byte "; 1590 IF X%+R%=33929% 1610 1600 POKE T1%+R%,PEEK(X%+R%) : R%=R%+1% : GOTO 1590 1610 REM TXT S W ~ 1620 POKE T1%+R%,143%,83%,87%,138%,126% 1630 R%=R%+5% 1640 IF INSTR(1%,A$,"V")=0% POKE T1%+R%,128%,32%,32%,32%,32%,32%,32% : GOTO 1670 1650 REM TXT P 1 / P 2 = 1660 POKE T1%+R%,148%,80%,49%,47%,80%,50%,61% 1670 R%=R%+7% 1680 REM TXT G O L V 1690 POKE T1%+R%,149%,71%,79%,76%,86% 1700 R%=R%+5% 1710 IF X%+R%-17%=33979% 1740 1720 IF X%+R%-17%=33939% H3%=T1%+R% 1730 POKE T1%+R%,PEEK(X%+R%-17%) : R%=R%+1% : GOTO 1710 1740 REM FLYTTA TILLBAKA CMD TAB 1750 FOR F%=T1% TO H3%-1% 1760 POKE X%+R1%,PEEK(F%) 1770 R1%=R1%+1% : NEXT F% 1780 REM ADRESS F\R ATT SPARA MINNE OM MAN INTE HAR FLOPPY 1790 POKE 32965,X%+R1%-10%,SWAP%(X%+R1%-10%) 1800 REM FLYTTA UPP JP TAB 1810 ; "Ny adress f|r hopptabellen ";65536+T1% 1820 POKE 33403%,T1%,SWAP%(T1%) 1830 R1%=0% 1840 REM 2*2 BYTE EXTRA F\R 2 EXTRA 1850 FOR F%=H3% TO T1%+R%+2%*2% 1860 POKE T1%+R1%,PEEK(F%) 1870 R1%=R1%+1% : NEXT F% 1880 H2%=T1%+R1%-5% 1890 POKE H2%,36936,SWAP%(36936%) : REM H[R SKALL ADRESSEN F\R 'P1/P2=' VARA. 1900 POKE H2%+2%,37000,SWAP%(37000%) : REM H[R SKALL ADRESSEN F\R 'GOLV+' VARA. 1910 T1%=T1%+R1% 1920 ; : ; "Nya kommandon adresser l{ngd (ca)" 1930 POKE T1%+2%,58% 1940 T4%=T1% 1950 T1%=T1%+3% 1960 ; "~ ",35421" (Of|r{ndrad adress)"; 1970 ; "SW",65536+T1%;" 150 byte (J)"; 1980 POKE H2%-10%,T1%,SWAP%(T1%) 1990 INPUT D$ : IF D$<>"" AND D$<>"J" THEN POKE T1%,201% : T1%=T1%+1% : GOTO 2210 2000 POKE T1%,126%,254%,40%,194%,T4%+77%,SWAP%(T4%+77%),35%,167%,205%,74%,128%,218%,33%,7% 2010 T1%=T1%+14% 2020 POKE T1%,235%,34%,T4%,SWAP%(T4%),205%,1858%,SWAP%(1858),33%,33003%,SWAP%(33003%),1%,4%,0%,205%,11%,0%,33%,33003% 2030 T1%=T1%+18% 2040 POKE T1%,SWAP%(33003%),1%,4%,0%,205%,11%,0%,221%,54%,1%,0% 2050 T1%=T1%+11% 2060 POKE T1%,42%,T4%,SWAP%(T4%),108%,38%,0%,205%,79%,133%,221%,54%,1%,3% 2070 T1%=T1%+13% 2080 POKE T1%,1%,1%,0%,33%,T4%+2%,SWAP%(T4%+2%),205%,11%,0%,42%,T4%,SWAP%(T4%),38%,0%,205%,79%,133%,201% 2090 T1%=T1%+18% 2100 REM SW N1 : N2 ,65536+T1% 2110 POKE T1%,167%,205%,74%,128%,218%,33%,7% 2120 T1%=T1%+7% 2130 POKE T1%,122%,254%,0%,235%,194%,33%,7%,34%,T4%,SWAP%(T4%),235%,126%,254%,58% 2140 T1%=T1%+14% 2150 POKE T1%,194%,33%,7%,35%,167%,205%,74%,128%,218%,33%,7%,122%,254%,0%,194%,33%,7%,213% 2160 T1%=T1%+18% 2170 POKE T1%,205%,1858%,SWAP%(1858%),221%,54%,1%,1%,33%,33003%,SWAP%(33003%),1%,4%,0% 2180 T1%=T1%+13% 2190 POKE T1%,205%,11%,0%,221%,54%,1%,0%,42%,T4%,SWAP%(T4%),101%,209%,107%,205%,79%,133%,201% 2200 T1%=T1%+17% 2210 REM F\R FLYTTNING AV PGM I BLOCK OM 256 2220 ; "GOLV (*256) ";65536+T1%;" 125 byte (J)"; 2230 POKE H2%+2%,T1%,SWAP%(T1%) 2240 INPUT D$ : IF D$<>"" AND D$<>"J" THEN POKE T1%,201% : T1%=T1%+1% : GOTO 2510 2250 M4%=T1% 2260 REM RADEN POKAS IGEN P] RAD (CA) 2400, D] H4% [R BEST[MD 2270 POKE T1%,126%,35%,254%,45%,202%,H4%,SWAP%(H4%),254%,43%,194%,1825%,SWAP%(1825%) 2280 T1%=T1%+12% 2290 REM F\R FLYTTNING AV PGM UPP]T I BLOCK OM 256 2300 POKE T1%,167%,205%,32842%,SWAP%(32842%),218%,1825%,SWAP%(1825%) 2310 T1%=T1%+7% 2320 POKE T1%,42,65054%,SWAP%(65054%),229,229%,123%,132%,103%,254%,251%,210%,33,7,84,93,34,65054,SWAP%(65054%),237,75 2330 T1%=T1%+20% 2340 POKE T1%,65052%,SWAP%(65052%),34%,65052%,SWAP%(65052%),35%,34%,65056%,SWAP%(65056%),225% 2350 T1%=T1%+10% 2360 POKE T1%,167%,237%,66%,68%,77%,3%,225%,237%,184%,19%,237%,83%,65052%,SWAP%(65052%),195%,34002%,SWAP%(34002%) 2370 T1%=T1%+17% 2380 REM F\R FLYTTNING AV PGM NED]T I BLOCK OM 256 2390 H4%=T1% 2400 POKE M4%,126%,35%,254%,45%,202%,H4%,SWAP%(H4%),254%,43%,194%,1825%,SWAP%(1825%) 2410 POKE T1%,167%,205%,32842%,SWAP%(32842%),218%,1825%,SWAP%(1825%) 2420 T1%=T1%+7% 2430 POKE T1%,42%,65052%,SWAP%(65052%),229%,229%,124%,147%,103%,254%,145%,218%,1825%,SWAP%(1825%),84%,93%,237% 2440 T1%=T1%+16% 2450 POKE T1%,75%,65054%,SWAP%(65054%),34%,65052% 2460 T1%=T1%+5% 2470 POKE T1%,SWAP%(65052%),34%,65054%,SWAP%(65054%),35%,34%,65056%,SWAP%(65056%),96%,105%,193% 2480 T1%=T1%+11% 2490 POKE T1%,167,237,66%,68%,77%,3%,225%,237%,176,237,83,65056,SWAP%(65056),27,237,83,65054,SWAP%(65054),195,210,132 2500 T1%=T1%+21% 2510 REM  F\R BYTE AV P1/P2 GR[NS  2520 ; "P1/P2=",65536+T1%;" 50 byte (J)"; 2530 POKE H2%,T1%,SWAP%(T1%) 2540 IF INSTR(1%,A$,"V")=0% ; "?N" : POKE T1%,201% : T1%=T1%+1% : GOTO 2660 2550 ; "?J" 2560 POKE T1%,58,M1%+6,SWAP%(M1%+6),254,1,194%,1825,SWAP%(1825),205%,32842%,SWAP%(32842),218%,1825,SWAP%(1825),98,107 2570 T1%=T1%+16% 2580 POKE T1%,62%,1%,119%,34%,M1%,SWAP%(M1%),34%,M1%+2%,SWAP%(M1%+2%),43%,34%,65063%,SWAP%(65063%),201% 2590 T1%=T1%+14% 2600 REM F\RINITIERING 2610 POKE T1%,33%,PEEK(65063%),PEEK(65064%),34%,M1%+4%,SWAP%(M1%+4%) 2620 T1%=T1%+6% 2630 POKE T1%,33%,A%,SWAP%(A%),205%,T1%-14%-6%,SWAP%(T1%-14%-6%),195%,32937%,SWAP%(32937%),0% 2640 T1%=T1%+10% 2650 POKE 32770%,T1%-10%-6%,SWAP%(T1%-10%-6%) 2660 ; : ; "Till{gget {r";T1%-T%+1%;" byte l}ngt" 2670 POKE 32950%,(T1%),SWAP%(T1%) : POKE 32959%,(T1%),SWAP%(T1%) 2680 ; "Ny BOFA blir nu ="65536+T1% 2690 ; : ; "TRYCK VALFRI TANGENT" : GET A$ 2700 Z%=CALL(32769%)