10 REM -........................- 20 REM .. Skivl{s (SD10.BAC) .. 30 REM .. Av Ulf S|rensen .. 40 REM .. MEDL NR 1297 .. 50 REM .. 82-02-25 Vers 1,5d .. 60 REM .. Copyright US .. 70 REM .. Given ABC-klubben .. 72 REM .. Sept 1982 .. 80 REM -......040/46 41 92......- 90 REM -........................- 100 G%=INP(3%) : ; CHR$(12)TAB(15)'Skivl{s' : ; ,,, 110 IF INP(56%)=127% THEN 200 120 FOR A%=0% TO 1% : POKE 64769%,A% 130 Z%=CALL(24678%,224%) 140 IF INP(56%)=127% THEN 200 150 IF PEEK(-747%) ; 'Ingen skiva i drive:'A% : GOTO 190 160 Z%=CALL(24678%,0%*32%) : ; 'Drive:'A%' Volume:'; 170 FOR B%=62855% TO 62975% 180 B1%=PEEK(B%) : IF B1%=0% OR B1%=255% THEN 190 ELSE ; CHR$(B1%); : NEXT B% 190 ; : NEXT A% 200 REM 210 ; : ; 'Skriv Ctrl-V om du beh|ver hj{lp' 220 ; CUR(9%,0%)'Vilken drive vill du l{sa/skriva? ' : ; CUR(9%,33%); : GET B$ 230 ; B$ : IF B$='0' B%=0% : GOTO 260 240 IF ASC(B$)=22% GOSUB 1160 : GOTO 220 250 IF B$='1' B%=1% ELSE 220 260 ; : ; 'Rekord'; : INPUT A$ 270 IF ASC(A$)<48% OR ASC(A$)>57% 260 280 ONERRORGOTO 260 290 A%=VAL(A$) : IF A%<0% OR A%>1231% 220 300 ONERRORGOTO 0 310 POKE -767%,B% : D%=1% : GOSUB 2060 320 ; CHR$(12%)'Drive:'B%' Rekord:'A%TAB(24%)'Byte:'D%' ' 330 ; CUR(23%,0%)STRING$(39%,61%); 340 ; CUR(1%,0%)STRING$(39%,61%) : ; 350 Z%=CALL(24678%,A%*32%) 360 FOR D%=62720% TO 62975% 370 E%=PEEK(D%) : IF E%<33% OR E%>127% AND E%<>255% ; '_'; ELSE ; CHR$(E%); 380 NEXT D% 390 F%=3% : G%=0% : D%=1% 400 ; CUR(0%,29%)D%' ' : POKE 65013%,0 410 ; CUR(21%,0%)'Ascii:'PEEK(D%+62719%); : IF D%<256% THEN ; PEEK(D%+62720%); 415 ; ' ' 420 ; CUR(F%,G%); : GET A$ : K%=ASC(A$) 430 IF K%=9% IF D%=256% 440 ELSE IF G%=39% F%=F%+1% : G%=0% : D%=D%+1% ELSE G%=G%+1% : D%=D%+1% : REM I och h-pil 440 IF K%=8% IF D%=1% 460 ELSE IF G%=0% F%=F%-1% : G%=39% : D%=D%-1% ELSE G%=G%-1% : D%=D%-1% : REM H och v-pil 460 IF K%=1% IF A%>0% A%=A%-1% : GOTO 320 : REM A 470 IF K%=2% THEN 1720 : REM B 480 IF K%=20% THEN 390 : REM T 490 IF K%=5% THEN 870 : REM E 500 IF K%=6% GOSUB 2300 : REM F 510 IF K%=7% THEN 920 : REM G 520 REM K%=8% p} rad 440 = H 530 REM K%=9% p} rad 430 = I 540 IF K%=10% THEN 1970 : REM J 550 IF K%=11% THEN 2220 : REM K 560 IF K%=16% THEN 2490 : REM P 570 IF K%=14% THEN 1920 : REM N 580 IF K%=15% THEN 2330 : REM O 590 IF K%=18% GOSUB 2270 : REM R 610 IF K%=19% IF A%<1231% A%=A%+1% : GOTO 320 : REM S 620 IF K%=17% THEN 2180 : REM Q 630 IF K%=21% THEN 2000 : REM U 640 IF K%=22% GOSUB 1160 : GOTO 420 : REM V 650 IF K%=23% THEN 740 : REM W 660 IF K%=24% THEN 1020 : REM X 670 IF K%=25% THEN 1820 : REM Y 680 IF K%=26% THEN 970 : REM Z 690 IF K%>31% IF D%<257% POKE D%+62719%,K% : ; A$ ELSE 400 ELSE 400 700 IF D%=256% THEN 400 710 IF G%<39% G%=G%+1% ELSE F%=F%+1% : G%=0% 720 IF D%<256% D%=D%+1% 730 GOTO 400 740 ; CUR(21%,0%)'Printer?(N)'; 750 INPUT A$ 760 IF A$='J' OR A$='j' THEN 790 770 IF A$='N' OR A$='n' OR A$='' 860 780 ; CUR(21%,0%)SPACE$(30%) : GOTO 740 790 OPEN 'PR:' ASFILE 1 800 ; #1,'Rekord:'A% 810 FOR H%=62720% TO 62975% 820 ; #1,TAB(I%)PEEK(H%); 830 I%=I%+4% : IF I%>72% I%=0% : ; #1,'' 840 NEXT H% : I%=0% 850 ; #1,'' 860 ; CUR(21%,0%)SPACE$(38%) : GOTO 400 870 ; CUR(21%,0%)'Rekord:'; : INPUT A$ 880 IF A$='' THEN 400 890 IF ASC(A$)<48% OR ASC(A$)>57% 870 900 A%=VAL(A$) : IF A%<0% OR A%>1231% 870 910 ; CUR(21%,0%)SPACE$(38%) : GOTO 320 920 ; CUR(21%,0%)'Drive'; : INPUT A$ 930 ; CUR(21%,0%)SPACE$(30%) 940 IF A$='' THEN 400 950 IF A$='0' B%=0% : GOTO 310 960 IF A$='1' B%=1% : GOTO 310 ELSE 920 970 GOSUB 1690 : GOSUB 2450 : ; CUR(21%,0%)'Jag skriver p} rekord:'A% 980 ; CUR(21%,0%)'Jag skriver p} rekord:'A% 990 Z%=CALL(24675%,A%*32%) 1000 FOR K%=1% TO 6000% : NEXT K% 1010 ; CUR(21%,0%)SPACE$(38%) : GOTO 400 1020 ; CUR(21%,0%)'Ctrl-tecken (Ascii):'; 1030 IF F%=3% POKE 32128%+G%,128%+PEEK(D%+62719%) 1040 IF F%=4% POKE 32256%+G%,128%+PEEK(D%+62719%) 1050 IF F%=5% POKE 32384%+G%,128%+PEEK(D%+62719%) 1060 IF F%=6% POKE 32512%+G%,128%+PEEK(D%+62719%) 1070 IF F%=7% POKE 32640%+G%,128%+PEEK(D%+62719%) 1080 INPUTLINE A$ : A$=LEFT$(A$,LEN(A$)-2%) : IF A$='' THEN 1150 1090 ; CUR(F%,G%)'_' 1100 IF G%>38% F%=F%+1% : G%=-1% 1110 IF D%<256% G%=G%+1% 1120 IF ASC(A$)<48% OR ASC(A$)>57% 1020 1130 K%=VAL(A$) : IF K%<0% OR K%>256% 1020 1140 POKE 62719%+D%,K% : IF D%<256% D%=D%+1% 1150 ; CUR(21%,0%)SPACE$(30%) : GOTO 400 1160 ; CUR(11%,0%)SPACE$(480%); 1170 ; CUR(11%,0%)'****** K O M M A N D O N ******' 1180 ; 1190 ; 'Allt {r Ctrl-tecken' 1200 ; 'Du styr cursorn med pilarna' 1210 ; 1220 ; 'V - Ger denna lista (Visa)' 1230 ; 'Q - Slut (Quite)' 1240 ; 'W - 256 bytes p} printer (Write)' 1250 ; 'E - Byt rekord-nummer (Exchange)' 1260 ; 'R - Cursor upp (40 tecken/steg)' 1270 ; 'T - Cursor home (Top)' 1280 ; 'Y - Repeat-tangent' 1290 GET A$ : GOSUB 1690 1300 ; CUR(11%,0%)'****** K O M M A N D O N ******' 1310 ; 1320 ; 'Allt {r Ctrl-tecken' 1330 ; 'Du styr cursorn med pilarna' 1340 ; 1350 ; 'U - Visar 10 ascii-tecken' 1360 ; 'I - V-PIL "FRAMSTEG-tangenten' 1370 ; 'O - Flytta rekord' 1380 ; 'P - Letar upp programsnuttar' 1390 ; '] -' 1400 ; '^ -' 1410 ; 1420 GET A$ : GOSUB 1690 1430 ; CUR(11%,0%)'****** K O M M A N D O N ******' 1440 ; 1450 ; 'Allt {r Ctrl-tecken' 1460 ; 'Du styr cursorn med pilarna' 1470 ; 1480 ; 'A - Rekord -1' 1490 ; 'S - Rekord +1' 1500 ; 'D - ' 1510 ; 'F - Cursor ner (40 tecken/steg)' 1520 ; 'G - Byt drive (0 eller 1)' 1530 ; 'H - V-PIL "BACKSTEG-tangenten' 1540 ; 'K - R{knar ut byte 1 & 2 i Lib-titel' 1550 GET A$ : GOSUB 1690 1560 ; CUR(11%,0%)'****** K O M M A N D O N ******' 1570 ; 1580 ; 'Allt {r Ctrl-tecken' 1590 ; 'Du styr cursorn med pilarna' 1600 ; 1610 ; 'Z - Skriv rekord' 1620 ; 'X - Skriva in Ctrl-tecken <31 och >127' 1630 ; 'C - N\DSTOPP' 1640 ; 'B - Auto header-s|kning' 1650 ; 'N - 5 Steg fram}t' 1660 ; 'J - 5 Steg bak}t' 1670 ; 'M - RETURN-tangent' 1680 GET A$ : GOSUB 1690 : RETURN 1690 FOR H%=10% TO 22% 1700 ; CUR(H%,0%)SPACE$(38%) 1710 NEXT H% : RETURN 1720 L%=(PEEK(D%+62719%)*8%)+(PEEK(D%+62720%)/32%) 1730 ; CUR(21%,0%)'Headern i prog:'; 1740 FOR H%=0% TO 10% 1750 IF H%=8% ; '.'; 1760 ; CHR$(PEEK((H%+D%)+62723%)); 1770 NEXT H% : ; 1780 ; 'ligger p} rekord:'L% 1790 FOR H%=1% TO 8000% : NEXT H% 1800 GOSUB 1690 1810 GOTO 420 1820 IF D%=1% THEN 400 1830 IF D%>=256% THEN 400 1840 IF G%<39% G%=G%+1% ELSE F%=F%+1% : G%=O% 1850 J1%=0% 1860 J%=PEEK(D%+62718%) 1870 IF J%>=128% ; '_' : J1%=1% 1880 IF J%<=33% ; '_' : J1%=1% 1890 IF J1%=0% ; CHR$(J%) 1900 POKE D%+62719%,J% : J%=0% 1910 D%=D%+1% : GOTO 400 1920 IF F%>9% THEN 400 1930 IF F%=9% B1%=11% ELSE B1%=34% 1940 IF G%>B1% IF F%>=9% 400 ELSE F%=F%+1% : G%=5%-(40%-G%) ELSE G%=G%+5% 1950 D%=D%+5% 1960 GOTO 400 1970 IF G%<5% IF F%=3% 400 ELSE F%=F%-1% : G%=40%-(5%-G%) ELSE G%=G%-5% 1980 D%=D%-5% 1990 GOTO 400 2000 IF D%>247% B1%=256%-D% ELSE B1%=9% 2010 ; CUR(20%,0%)SPACE$(39%) 2020 ; CUR(20%,1%); 2030 FOR Z%=0% TO B1% 2040 ; PEEK(62719%+Z%+D%); : NEXT Z% 2050 GOTO 400 2060 Z%=CALL(24678%,A%*32%) 2070 IF PEEK(-747%) 2080 ELSE RETURN 2080 ; CHR$(7%) 2090 FOR B2%=1% TO 10% 2100 ; CUR(21%,0%)'Du har ingen skiva'; 2110 ; ' i drive'B% 2120 FOR D1%=1% TO 600% : NEXT D1% 2130 ; CUR(21%,0%)SPACE$(38%) 2140 FOR D1%=1% TO 600% : NEXT D1% 2150 NEXT B2% 2160 IF B%=0% B%=1% ELSE B%=0% 2170 GOTO 310 2180 ; CUR(22%,0%) : END 2220 M=A% 2230 A=M/8 : IF INT(A)-A>0 A=A-1 : GOTO 2230 2240 M%=A : M1%=(A%-(M%*8%))*32% 2250 ; CUR(21%,0%)'Byte 1:'M%' Byte 2:'M1% 2260 GOTO 1000 2270 IF F%>3% F%=F%-1% ELSE RETURN 2280 IF F%=9% D%=D%-16% ELSE D%=D%-40% 2290 RETURN 2300 IF F%=8% AND G%>15% RETURN 2310 IF F%<9% F%=F%+1% ELSE RETURN 2320 D%=D%+40% : RETURN 2330 GOSUB 1690 : ; CUR(21%,0%)'Flytta rekord.' 2340 ; CUR(22%,0%)'Fr}n:'; 2350 INPUTLINE A$ : A$=LEFT$(A$,LEN(A$)-2%) : B1%=ASC(A$) : IF A$='' THEN 400 2360 IF B1%<48% OR B1%>57% THEN 2340 2370 B1%=VAL(A$) : IF B1%>1233% 2330 2380 ; CUR(22%,20%)'Till:'; 2390 INPUTLINE B$ : B$=LEFT$(B$,LEN(B$)-2%) : B2%=ASC(B$) : IF B$='' THEN 400 2400 IF B2%<48% OR B2%>57% THEN 2380 2410 B2%=VAL(B$) : IF B2%>1233% 2330 2420 FOR B3%=0% TO 256% : POKE 62976%+B3%,PEEK(62720%+B3%) : NEXT B3% 2430 GOSUB 2450 : Z%=CALL(24678%,B1%*32%) : Z%=CALL(24675%,B2%*32%) : ; 'Ok!' 2440 FOR B2%=0% TO 256% : POKE 62720+B2%,PEEK(62976%+B2%) : NEXT B2% : GOTO 400 2450 GOSUB 1690 : ; CUR(21%,0%); 2460 ; 'ABSOLUT S[KER? (J/N)'; 2470 INPUT A$ : IF A$='J' RETURN ELSE 400 2480 REM ****** CTRL P ****** 2490 GOSUB 1690 : ; CUR(22%,0%)'S|kning av programsnuttar.' : ; CUR(21%,0%)'Ctrl-< avbryter!' 2500 B1%=PEEK(62720%) : B2%=23% 2510 B3%=-6% : B4%=10% 2520 ; CUR(22%,27%)'R:'B2%' '; 2530 IF B2%=1231% ; 'Ok!' : GOTO 400 2540 IF INP(56)=127% ; 'Ok!' : GOTO 400 2550 B2%=B2%+1% : Z%=CALL(24678%,B2%*32%) : IF PEEK(62720%)<>B1% THEN 2520 2560 IF B3%<=29% B3%=B3%+6% ELSE B4%=B4%+1% : B3%=0% 2570 IF PEEK(62721%)=0% AND PEEK(62722%)=0% A$='*' ELSE A$=' ' 2580 ; CUR(B4%,B3%)B2%A$ : GOTO 2550 2590 REM save SD10