10 REM . SAVE MTASK2 20 REM ------------------------------ 30 REM 1986-04-03 40 REM David Andersson <5201> 50 REM 60 REM Multitasking p} ABC80 70 REM Flera BASICprogram (processer) 80 REM kan k|ras samtidigt. 90 REM ------------------------------ 100 REM 110 REM LADDA MASKIN-KOD 120 REM PROGRAMMET POKAR EVENTUELLT \VER SIG SJ[LV! 130 POKE 65061%,32% : REM LISTSKYDD 140 POKE 49152%,195%,56%,192%,1%,57%,4%,243%,237%,179%,78%,35%,70%,237%,67%,52%,192% 150 POKE 49168%,201%,79%,135%,135%,135%,148%,192%,207%,255%,183%,127%,162%,192% 160 POKE 49204%,148%,192%,148%,5%,235%,70%,35%,197%,94%,35%,86%,35%,1%,7%,0%,237% 170 POKE 49220%,176%,94%,35%,86%,35%,235%,54%,105%,35%,54%,192%,235%,193%,16%,232%,126% 180 POKE 49236%,35%,102%,111%,34%,29%,192%,229%,62%,192%,237%,71%,33%,17%,192%,205%,3% 190 POKE 49252%,192%,225%,195%,40%,193%,42%,21%,254%,17%,197%,0%,25%,34%,28%,254%,33% 200 POKE 49268%,0%,0%,57%,34%,39%,254%,253%,33%,22%,254%,175%,50%,15%,254%,50%,37% 210 POKE 49284%,254%,50%,51%,254%,50%,245%,253%,33%,140%,1%,34%,10%,254%,195%,198%,0% 220 POKE 49300%,245%,62%,110%,61%,61%,50%,150%,192%,40%,35%,241%,251%,237%,77%,245%,219% 230 POKE 49316%,56%,254%,143%,40%,24%,254%,159%,194%,33%,3%,197%,229%,33%,17%,192%,205% 240 POKE 49332%,3%,192%,62%,205%,205%,69%,193%,225%,193%,241%,251%,237%,77%,197%,213%,229% 250 POKE 49348%,221%,229%,253%,229%,217%,8%,245%,197%,213%,229%,237%,115%,18%,254%,33%,243% 260 POKE 49364%,253%,237%,91%,21%,254%,1%,197%,0%,237%,176%,253%,42%,29%,192%,33%,31% 270 POKE 49380%,192%,219%,56%,254%,159%,32%,16%,33%,23%,192%,205%,3%,192%,62%,197%,205% 280 POKE 49396%,69%,193%,253%,229%,225%,24%,45%,254%,143%,32%,20%,253%,110%,29%,253%,102% 290 POKE 49412%,30%,34%,29%,192%,229%,253%,225%,253%,126%,33%,205%,69%,193%,24%,18%,190% 300 POKE 49428%,40%,15%,119%,203%,127%,40%,10%,253%,119%,2%,254%,131%,32%,3%,253%,119% 310 POKE 49444%,20%,42%,16%,254%,17%,243%,253%,1%,197%,0%,237%,176%,237%,123%,18%,254% 320 POKE 49460%,225%,209%,193%,241%,217%,8%,253%,225%,221%,225%,225%,209%,193%,241%,251%,237% 330 POKE 49476%,77%,42%,116%,3%,70%,119%,219%,56%,135%,56%,251%,112%,201% 350 REM 360 B0%=49489% : B1%=B0% : REM F\RSTA LEDIGA ADR 370 B9%=PEEK(65063%)+SWAP%(PEEK(65064%)) : REM SISTA ADR 380 A0%=65408% : A%=A0%+1% 390 REM 391 ; 400 ; '*** MULTITASKING p} ABC80 ***' 410 ; 420 ; 'Anger hur stora processer du vill ha.' 440 ; '(Talet f}r inte vara mindre {n 800)' 450 ; 460 ; 'Om du inte vill ha flera processer' 470 ; 'avslutar du inmatningen med bara RETURN' 490 ; 500 FOR N%=1% TO 9% 510 IF B0%+800%>B9% THEN 680 520 ; 'Process'N%' (max'B9%-B1%')', 530 ONERRORGOTO 680 540 INPUT S% : IF S%<800% GOTO 520 550 ONERRORGOTO 0 560 IF B1%+S%>B9% THEN 520 570 IF N%>1% POKE A%-11%+2%,B1%,SWAP%(B1%) 580 B2%=B1%+S%-22% 590 B4%=B1%+S%-2% 600 B3%=B1%+(65040%-65011%) 610 POKE A%,B3%,SWAP%(B3%) 620 POKE A%+2%,B0%,SWAP%(B0%),B2%,SWAP%(B2%),N%+48%+128%,B1%,SWAP%(B1%) 630 POKE A%+9%,B4%,SWAP%(B4%),B0%,SWAP%(B0%) 640 POKE A0%,N% 650 A%=A%+11% 660 B1%=B1%+S% 670 NEXT N% 680 REM 690 IF N%<2% ; 'Minst en process m}ste definieras' : STOP 691 ; 700 ; 'CTRL-O' 710 ; ' G} till n{sta process' 720 ; ' En blinkande siffra anger vilken' 730 ; ' man kommit till.' 740 ; 750 ; 'CTRL-SHIFT-O' 760 ; ' V{lj om en eller flera processer ska' 770 ; ' k|ra samtidigt. En blinkande bokstav' 780 ; ' visar vad som valts:' 781 ; ' M=alla k|r samtidigt' 782 ; ' E=endast den man {r i k|r' 783 ; 784 ; 'Tryck p} en knapp f|r att starta'; 785 GET A$ 790 REM STARTA MTASK2 800 Z%=CALL(49152%,A0%) 810 END