1 REM +++++++++++++++++++++++++++++++ 2 REM ! Program .... FORM.BAS 3 REM ! Utg}va 4 REM ! av 5 REM ! Minne 16 Kbytes 6 REM ! 7 REM +++++++++++++++++++++++++++++++ 8 REM Formaterar flexskivor utan att 9 REM du beh|ver g|ra BYE. 10 GOSUB 100 : REM inledning - fr}gor 20 GOSUB 260 : REM s{tt drive nummer 30 GOSUB 900 : REM formatera 40 GOSUB 280 : REM skriv system sp}r och testa 50 IF F% Z%=INP(7%) 60 ; CUR(22%,T%/2%+1%)'En till? (J/N)'; : GET S$ 70 S$=CHR$(ASC(S$) AND 223) : ; S$ 80 IF S$='J' OR S$='j' 10 ELSE Z%=INP(7%) 90 END 95 REM ========== subrutiner ========== 97 REM 99 REM ============= inledning - fr}gor 100 F%=0% : T%=PEEK(590%) 105 ; CHR$(12%)CUR(0%,T%/2%-17%)'## F O R M A T E R I N G ##' 110 ; CUR(3%,T%/2%-17%)'I vilken drive? (1) '; : GET D$ 113 IF D$=CHR$(13%) D$='1' : D%=1% : GOTO 120 115 D%=INSTR(1%,'012',D$) 117 IF D%=0% 110 118 D%=D%-1% 120 ; 'DR'D$':' 130 ; CUR(5%,T%/2%-17%)'[r det verkligen DR'D$;':? (N) '; : GET I$ : I$=CHR$(ASC(I$) AND 223%) 140 IF I$<>'J' ; 'Nej' : GOTO 90 ELSE ; 'Ja' 170 ; CUR(7%,T%/2%-17%)'Skivan i drive';D%;' formateras!' 180 ; CUR(8%,T%/2%-17%)'Ev. inneh}ll p} skivan i drive';D% 190 ; CUR(9%,T%/2%-17%)'F\RST\RS.......' 200 ; CUR(11%,T%/2%-17%)'[r detta ok? '; : GET I1$ 210 IF INSTR(1%,'Jj',I1$)=0% ; 'Nej' : GOTO 90 ELSE ; 'Ja' 220 ; CUR(13%,T%/2%-17%)'Starta med * '; : GET I1$ : ; I1$ 230 IF I1$<>'*' 90 235 RETURN 255 REM ==================== s{tt drive nummer 260 POKE -767%,D% 265 RETURN 270 REM ===================== skriv system sp}r och testa == 280 IF SWAP%(Z%) AND 8% POKE -747%,2% : GOTO 660 290 K=(Z% AND 255%) 300 FOR K1%=62720% TO 62722% : POKE K1%,255% : NEXT K1% 310 FOR K1%=62723% TO 62720%+K : POKE K1%,0% : NEXT K1% 320 FOR K1%=62720%+K+1% TO 62958% : POKE K1%,255% : NEXT K1% 330 FOR K1%=62959% TO 62966% : POKE K1%,1% : NEXT K1% 340 FOR K1%=62967% TO 62975% : POKE K1%,0% : NEXT K1% 350 Z%=CALL(24675%,192%) 360 IF PEEK(-747%) 660 370 Z%=CALL(24675%,224%) 380 IF PEEK(-747%) 660 390 FOR K1%=62720% TO 62735% : POKE K1%,0% : NEXT K1% 400 FOR K1%=62736% TO 62975% : POKE K1%,255% : NEXT K1% 410 FOR K1%=256% TO 736% STEP 32% 420 Z%=CALL(24675%,K1%) 430 IF PEEK(-747%) 660 440 NEXT K1% 445 REM === testa === 450 FOR K1=0% TO (K+1%)*256%-32% STEP 32% 460 ; CUR(20%,T%/2%-17%)'Testar sektor:';K1/32%; 470 R%=5% 480 OUT 1%,45%,2%,0% 490 IF INP(1%) AND 2% 490 500 OUT 0%,3%,0%,D%,0%,SWAP%(K1),0%,K1 510 IF INP(1%) AND 64% 510 520 IF INP(1%) AND 8% 640 530 IF R% R%=R%-1% : GOTO 480 540 IF K1<768% POKE -747%,2% : GOTO 660 550 ; CUR(21%,0%)'Sp}r'FIX(K1/256%)' d}ligt, borttaget nu'; 560 Z%=CALL(24678%,192%) 570 IF PEEK(-747%) 660 580 POKE 62720%+K1/256%,255% 590 Z%=CALL(24675%,192%) 600 IF PEEK(-747%) 660 610 Z%=CALL(24675%,224%) 620 IF PEEK(-747%) 660 630 K1=(FIX(K1/256%)+1%)*256%-32% 640 NEXT K1 650 RETURN 655 REM ======== n}got fel ========== 660 ; CHR$(12%) 670 ; 'DETTA MISSLYCKADES!' : ; 690 IF PEEK(-747%)=2% GOSUB 810 700 IF PEEK(-747%)=128% GOSUB 790 710 IF ERRCODE=35% GOSUB 760 720 IF ERRCODE=36% GOSUB 770 730 IF ERRCODE=41% GOSUB 780 740 IF ERRCODE=42% GOSUB 790 750 IF ERRCODE=43% GOSUB 800 755 F%=1% : RETURN 757 REM ======== felmeddelande ===== 760 ; 'CHECKSUMMAFEL VID L[SNING' : RETURN 770 ; 'CHECKSUMMAFEL VID SKRIVNING' : RETURN 780 ; 'SKIVAN FULL' : RETURN 790 ; 'SKIVAN EJ KLAR I DRIVE'PEEK(-767%) : RETURN 800 ; 'SKIVAN SKRIVSKYDDAD I DRIVE'PEEK(-767%) : RETURN 810 ; 'KAN EJ FORMATERA SKIVAN I DRIVE'PEEK(-767%) : RETURN 890 REM =================================== H{r ligger formaterings rutinen 900 ; CUR(15%,T%/2%-17%)'Formatering p}g}r !!' 902 ; CUR(16%,T%/2%-17%)'====================' 905 POKE -1792%,30%,159%,205%,36%,249%,200%,30%,149%,205%,36%,249%,200%,30%,79%,205% 910 POKE -1777%,36%,249%,200%,30%,79%,205%,165%,249%,200%,30%,39%,205%,165%,249%,200% 920 POKE -1762%,30%,34%,205%,165%,249%,201%,42%,18%,253%,36%,36%,36%,46%,0%,175% 930 POKE -1747%,6%,12%,205%,4%,250%,62%,245%,6%,3%,205%,4%,250%,62%,254%,6% 940 POKE -1732%,1%,205%,4%,250%,175%,6%,3%,205%,4%,250%,62%,1%,71%,205%,4% 950 POKE -1717%,250%,62%,247%,6%,1%,205%,4%,250%,62%,78%,6%,22%,205%,4%,250% 960 POKE -1702%,175%,6%,12%,205%,4%,250%,62%,245%,6%,3%,205%,4%,250%,62%,251% 970 POKE -1687%,6%,1%,205%,4%,250%,62%,64%,6%,197%,205%,4%,250%,14%,0%,205% 980 POKE -1672%,43%,250%,37%,62%,64%,6%,59%,205%,4%,250%,62%,247%,6%,1%,205% 990 POKE -1657%,4%,250%,62%,78%,6%,196%,205%,4%,250%,14%,64%,205%,43%,250%,37% 1000 POKE -1642%,62%,78%,6%,0%,205%,4%,250%,14%,128%,205%,43%,250%,195%,71%,250% 1010 POKE -1627%,42%,18%,253%,36%,36%,36%,46%,0%,175%,6%,6%,205%,4%,250%,62% 1020 POKE -1612%,254%,6%,1%,205%,4%,250%,175%,6%,4%,205%,4%,250%,62%,247%,6% 1030 POKE -1597%,1%,205%,4%,250%,62%,255%,6%,11%,205%,4%,250%,175%,6%,6%,205% 1040 POKE -1582%,4%,250%,62%,251%,6%,1%,205%,4%,250%,62%,64%,6%,128%,205%,4% 1050 POKE -1567%,250%,62%,247%,6%,1%,205%,4%,250%,62%,255%,6%,97%,205%,4%,250% 1060 POKE -1552%,14%,0%,205%,43%,250%,37%,62%,255%,6%,0%,205%,4%,250%,14%,128% 1070 POKE -1537%,205%,43%,250%,24%,67%,119%,35%,16%,252%,201%,205%,96%,96%,211%,2% 1080 POKE -1522%,219%,1%,203%,79%,32%,250%,120%,205%,33%,250%,121%,205%,33%,250%,122% 1090 POKE -1507%,205%,33%,250%,123%,245%,219%,1%,15%,48%,251%,241%,211%,0%,201%,6% 1100 POKE -1492%,4%,205%,9%,250%,42%,18%,253%,36%,36%,36%,46%,0%,219%,1%,230% 1110 POKE -1477%,4%,32%,250%,71%,126%,205%,33%,250%,35%,16%,249%,201%,6%,16%,58% 1120 POKE -1462%,1%,253%,230%,7%,246%,8%,79%,22%,0%,205%,9%,250%,219%,1%,230% 1130 POKE -1447%,128%,40%,250%,205%,96%,96%,230%,8%,107%,103%,192%,58%,1%,253%,79% 1140 POKE -1432%,6%,1%,17%,192%,0%,205%,9%,250%,219%,1%,203%,119%,32%,250%,219% 1150 POKE -1417%,1%,47%,230%,8%,103%,58%,0%,248%,230%,1%,180%,103%,230%,8%,201% 1160 OUT 4%,0% : Z%=CALL(-1792%) 1170 RETURN