1 REM Ins{nt av 2839 10 REM ******************************* 20 REM * * 30 REM * > L[SDISK1 < 2.9 83-05-08 * 40 REM * * 50 REM ******************************* 60 GOTO 90 70 ; CHR$(12%)CUR(0%,1%)"L[SDISK1: L{s och {ndra p} diskett V2.9"CUR(1%,0%)CHR$(151%)STRING$(39%,35%) : ; 80 RETURN 90 DIM W$=256%,S$=240% : F$="PR:" : H0%=-99 : G0%=-99% : W$=SPACE$(256) 100 A%=PEEK(65065)+256*PEEK(65066) 110 POKE A%+6,62720,SWAP%(62720) 120 GOSUB 70 130 S0$="HUVUDMENY" 140 S$="V{lj utskrift/printer,L{s en sektor,Printa en sektor,Printa flera sektorer" 150 S$=S$+",[ndra/skriv till sektor,Avsluta" 160 C0%=5% : GOSUB 1320 : M%=R0% : ON R% GOTO 170,130,120 170 ON M% GOTO 310,180,390,430,510,1070 180 A$="L[S EN SEKTOR (sp}r o sektornr)" : GOSUB 1160 190 P%=0% 200 C0%=8% : GOSUB 770 : ON R% GOTO 220,210,210 210 IF M%=5% 510 ELSE 120 220 C0%=10% : GOSUB 800 : ON R% GOTO 230,200,210 230 C0%=12% : S%=1% : GOSUB 830 : ON R% GOTO 240,220,210 240 IF G%>7% RESTORE 1740 : GOSUB 1640 : G%=0% : GOTO 230 250 ON M% GOTO 310,260,260,460,710 260 S%=G%*32% : GOSUB 860 : ON R% GOTO 270,230 270 GOSUB 900 280 ON R% GOTO 290,230,130 290 IF G%<7% G%=G%+1% ELSE H%=H%+1% : G%=0% 300 IF M%=5% 510 ELSE 220 310 A$="V[LJ UTSKRIFT OCH PRINTER" : GOSUB 1160 320 C0%=8% : GOSUB 1290 : S0$=" Decimal/Hexadecimal" : S1$="D" : S%=1% : S0%=2% : S$="DdHh" : GOSUB 1420 330 ON R% GOTO 340,120,120 340 IF R$="d" OR R$="D" E%=1% ELSE E%=0% 350 C0%=10% : GOSUB 1290 : S0$=" Ange printerfil" : S1$=F$ : S%=12% : S0%=2% 360 S$="@QWERTYUIOP]^[\LKJHGFDSAZXCVBNMmnbvcxzasdfghjkl|{~}poiuytrewq`:.1234567890" : GOSUB 1420 370 ON R% GOTO 380,320,130 380 F$=R$ : GOTO 130 390 A$="PRINTA EN SEKTOR" : GOSUB 1160 400 ONERRORGOTO 420 : OPEN F$ ASFILE 60 : ONERRORGOTO 0 : P%=60% 410 GOTO 200 420 RESTORE 1670 : GOSUB 1640 : GOTO 130 430 A$="PRINTA FLERA SEKTORER" : GOSUB 1160 440 ONERRORGOTO 420 : OPEN F$ ASFILE 60 : ONERRORGOTO 0 : P%=60% 450 GOTO 200 460 S%=G%*32% : GOSUB 860 : ON R% GOTO 470,230 470 GOSUB 900 480 ON R% GOTO 490,230,130 490 IF G%<7% G%=G%+1% ELSE H%=H%+1% : G%=0% 500 GOTO 460 510 A$="[NDRA/SKRIV TILL SEKTOR" 520 S$="Visa DOSBUF,[ndra i DOSBUF,Skriv DOSBUF till sektor,L{s en sektor,Huvudmeny" 530 C0%=5% : S0$=A$ : GOSUB 1320 : M5%=R0% : ON R% GOTO 540,130,130 540 ON M5% GOTO 550,560,690,740,120 550 P%=0% : GOSUB 900 : GOSUB 70 : ON R% GOTO 510,510,510 560 A$="[NDRA I DOSBUF" : GOSUB 1160 : A=62720 570 C0%=8% : GOSUB 1290 580 S0$=" Vilken adress" : S1$=NUM$(A) : S0%=1% : S%=5% : GOSUB 1420 : ON R% GOTO 590,510,510 590 A1=VAL(R$) : IF A1<62720 OR A1>62975 RESTORE 1750 : GOSUB 1640 : GOTO 570 ELSE A=A1 600 X%=PEEK(A) : S$=NUM$(X%) : GOSUB 1190 610 C0%=10% : GOSUB 1290 : S0$=" Vilket v{rde" : S1$=RIGHT$(NUM$(X%),2%)+","+R$ : S%=3% 620 S0%=2% : S$="1234567890ABCDEFH" : GOSUB 1420 630 ON R% GOTO 640,570,510 640 IF INSTR(1%,R$,",")<>0% GOTO 660 650 S$=R$ : GOSUB 1190 : IF R%=4% 600 ELSE X%=R0% 660 GOSUB 1180 : ON R% GOTO 670,600,510 670 POKE A,X% : IF A<62975 A=A+1 680 GOTO 570 690 A$="SKRIV DOSBUF0 TILL SEKTOR" : GOSUB 1160 700 G%=G0% : H%=H0% : GOTO 200 710 ON M5%-2% GOTO 720,760 720 GOSUB 1110 : ; CUR(12%,5%)"Sektor nr:"G%; : GOSUB 1180 : ON R% GOTO 730,230,510 730 GOSUB 1030 : ON R% GOTO 510,230 740 A$="L[S SEKTOR FR]N SKIVA" : GOSUB 1160 750 GOTO 190 760 GOTO 260 770 GOSUB 1290 : S0$=" Vilken drive" : S1$=RIGHT$(NUM$(D%),2%) : S%=1% : S0%=1% : GOSUB 1420 780 IF R%=1% D%=VAL(R$) : POKE -767,D% 790 RETURN 800 GOSUB 1290 : S0$=" Vilket sp}r" : S1$=RIGHT$(NUM$(H%),2%) : S%=2% : S0%=1% : GOSUB 1420 810 IF R%=1% H%=VAL(R$) ELSE 850 820 RETURN 830 GOSUB 1290 : S0$=" Vilken sektor" : S1$=RIGHT$(NUM$(G%),2%) : S0%=1% : GOSUB 1420 840 IF R%=1% G%=VAL(R$) ELSE 850 850 RETURN 860 FOR F%=1 TO 4% 870 X%=CALL(24678,SWAP%(H%)+S%) 880 IF PEEK(-747)=0% G0%=G% : H0%=H% : R%=1% : RETURN ELSE NEXT F% 890 T9$="L{sfel DEL=f|reg fr}ga ESC=meny" : GOSUB 1650 : R%=2% : RETURN 900 ; CHR$(12%)CUR(0,0)"SP]R"H0%" SEKTOR"G0% 910 IF P%<>0% ; #P%,"SP]R"H0% : ; #P%,"SEKTOR"G0% : ; "Avbryt med ESC (Ctrl+ [)" 920 A=62720 : FOR I%=1% TO 256% STEP 16% 930 ; #P%,A" "; : A=A+16 : FOR J%=0% TO 15% : K%=I%+J% 940 B$=MID$(W$,K%,1%) : B%=ASC(B$) 950 IF E%=0% S$=NUM$(B%) : GOSUB 1190 : ; #P%," "R$; : GOTO 970 960 IF B%<32% OR B%>127% ; #P%,SPACE$(4%-LEN(NUM$(B%)))NUM$(B%); ELSE ; #P%," "B$; 970 IF P%=0% AND J%=7% ; A-8" "; 980 NEXT J% : ; #P% 990 IF P%=0% OR INP(56%)>127% GOSUB 1080 : IF R%<>1% 1020 1000 NEXT I% : ; "Slut DOSBUF" 1010 IF P%=0% GOSUB 1080 1020 GOSUB 1110 : RETURN 1030 FOR F%=1 TO 4% 1040 X%=CALL(24675,SWAP%(H%)+G%*32%) 1050 IF PEEK(-747)=0% R%=1% : RETURN ELSE NEXT F% 1060 T9$="Skrivfel DEL=f|reg fr}ga ESC=meny" : GOSUB 1650 : R%=2% : RETURN 1070 ; : ; "Slut: L[SDISK1 Ver 2.9" : GOTO 1770 1080 GOSUB 1570 : IF R%>3% 1100 1090 RETURN 1100 RESTORE 1760 : GOSUB 1640 : GOTO 1080 1110 GOSUB 70 : ON R% GOTO 1120,1120,1150 1120 S0$=A$ : C0%=5% : GOSUB 1290 1130 ; CUR(8%,5%)"Drive nr:"D% 1140 ; CUR(10%,5%)"Sp}r nr:"H% 1150 S0$="" : RETURN 1160 S0$=A$ : C0%=5% : GOSUB 1290 1170 S0$="" : RETURN 1180 ; CUR(15%,5%)"[r det OK ?? (RET=ja)"; : GOSUB 1080 : RETURN 1190 T$='0123456789ABCDEF' 1200 ONERRORGOTO 1240 : H=VAL(S$) : ONERRORGOTO 0 1210 H=VAL(S$) : IF H>255 OR H<0 RESTORE 1690 : GOTO 1280 ELSE H1=INT(H/16) : H2=H-H1*16 1220 R$=MID$(T$,H1+1,1)+MID$(T$,H2+1,1)+"H" : R0%=H 1230 RETURN 1240 H0%=INSTR(1%,S$,"H") : IF H0%<>3% RESTORE 1700 : GOTO 1280 1250 T1$=LEFT$(S$,1%) : T2$=MID$(S$,2%,1%) 1260 R0%=(INSTR(1%,T$,T1$)-1%)*16%+(INSTR(1%,T$,T2$)-1%) 1270 RETURN 1280 GOSUB 1640 : R%=4% : RETURN 1290 FOR T%=C0% TO 22% : ; CUR(T%,0%)TAB(40%); : NEXT T% 1300 ; CUR(C0%,0%); : IF S0$<>"" ; TAB(5%)S0$CUR(C0%+1%,5%)STRING$(LEN(S0$),61%) 1310 S0$="" : RETURN 1320 GOSUB 1290 : IF S1$="" S1$="1" 1330 T0%=0% : T$="123456789?" : FOR T%=0% TO 8% : T0%=INSTR(T0%+1%,S$,",") : IF T0%=0% 1340 ELSE NEXT T% 1340 FOR T0%=1% TO T% : T%=T0%+C0%+2% : ; CUR(T%,8%)MID$(T$,T0%,1%)" "; 1350 ; LEFT$(S$,INSTR(1%,S$,",")-1%) : S$=RIGHT$(S$,INSTR(1%,S$,",")+1%) : NEXT T0% 1360 ; CUR(T%+1%,8%)MID$(T$,T0%,1%)" "S$CUR(T%+4%,5%)"V{lj alternativ: ("S1$")"STRING$(5%,8%); 1370 GOSUB 1570 : ON R% GOTO 1390,1390,1390,1380,1410 1380 IF R0%<49% OR R0%>48%+T0% 1410 ELSE R%=1% : GOTO 1400 1390 IF S1$="" R$="1" ELSE R$=S1$ 1400 ; R$" " : R0%=VAL(R$) : S$="" : S0$="" : S1$="" : RETURN 1410 T9$="V{lj ett alt mellan 1 och"+NUM$(T0%) : GOSUB 1650 : GOTO 1370 1420 ; S0$":"SPACE$(S%+1%)"("S1$")"STRING$(S%+LEN(S1$)+3%,8%); 1430 T$="" : FOR T%=1 TO S% 1440 GOSUB 1570 : ON R% GOTO 1540,1550,1550,1460,1450 1450 IF T%>1% ; " "CHR$(8,8,32,8); : T$=LEFT$(T$,LEN(T$)-1%) : T%=T%-1% : GOTO 1440 ELSE ; CHR$(7%); : GOTO 1430 1460 IF R0%>31% ; R$; ELSE ; " "; 1470 T0%=1% : ON S0%+1% GOSUB 1500,1510,1530 : IF T0%=0% GOSUB 1640 : ; CHR$(8%); : GOTO 1440 1480 T$=T$+R$ 1490 NEXT T% : GOSUB 1570 : ON R% GOTO 1550,1550,1550,1560,1450 1500 RETURN 1510 RESTORE 1710 : IF T%=1% AND (R$="+" OR R$="-") 1520 ELSE IF R0%<48% OR R0%>57% T0%=0% 1520 RETURN 1530 RESTORE 1720 : IF INSTR(1%,S$,R$)=0% T0%=0% : RETURN ELSE RETURN 1540 IF T%=1% T$=S1$ 1550 S0$="" : S1$="" : S%=0% : S1%=0% : R$=T$ : ; STRING$(T%-1%,8%)R$TAB(40%); : RETURN 1560 RESTORE 1730 : GOSUB 1640 : T%=S% : GOTO 1490 1570 GET R$ : GOSUB 1620 : R%=4% : IF R$=CHR$(13%) R%=1% ELSE IF R$=CHR$(127%) R%=2% 1580 IF R$=CHR$(27%) R%=3% ELSE IF R$=CHR$(8%) R%=5% 1590 R0%=ASC(R$) : RETURN 1600 FOR T=0 TO S : NEXT T 1610 RETURN 1620 T8%=PEEK(65011) : T9%=PEEK(65012) : ; CUR(23%,0%)TAB(39%)CUR(23%,0%); 1630 ; CUR(T8%,T9%); : RETURN 1640 READ T9$ 1650 ; CHR$(7%); : T8%=PEEK(65011) : T9%=PEEK(65012) : S=400 : GOSUB 1600 : ; CUR(23%,1%)T9$; 1660 RESTORE 1680 : ; CUR(T8%,T9%); : RETURN 1670 DATA "Hittar inte printer filen" 1680 DATA "***** FEL *****" 1690 DATA "F|r stort decimaltal" 1700 DATA "Talet varken hexadecimalt el decimalt" 1710 DATA "Felaktigt tecken! (Ej numeriskt) 1720 DATA "Felaktigt tecken!" 1730 DATA "Inga fler tecken f}r plats" 1740 DATA "F|r stort sektornummer" 1750 DATA "Adressen utanf|r DOSBUF0" 1760 DATA "RET=forts ESC=meny DEL=f|reg fr}ga" 1770 END