---------------------------------- 1986-04-04 David Andersson <5201> Multitasking p} ABC80 P} grund av programmets begr{nsningar {r det inte speciellt anv{ndbart, men det duger att leka med en stund. ---------------------------------- KONCEPT Multitasking g|r att datorn kan k|ra flera program samtidigt. Vi kallar den resurs som kan k|ra ett program f|r en process. Med multitasking erh}lls m|jlighet att k|ra flera processer. UPPSTART Ladda och starta MTASK2.BAS Ange hur mycket minne som varje processen ska ha. N{r du inte vill skapa flera processer, tryck RETURN. N{r multitasking {r initierad {r process nr 1 aktuell process. Med aktuell process menas den process som kan styras fr}n tangentbordet. Det {r programmet i aktuell process som tar emot tangentinterupt. F|r att t ex stoppa ett program i en process med CTRL-C s} m}ste man f|rst s{tta processen som aktuell process. Alla program som k|rs kan skriva p} sk{rmen. STYRNING Med CTRL-O {ndras vilken process som ska vara aktuell process. En blinkande siffra p} sk{rmen talar om vilken process som blir aktuell process. Siffran visas s} l{nge CTRL-O {r nedtryckt. Med CTRL-SHIFT-O sl}r man av eller p} samtidig exekvering. En blinkande bokstav anger om en (E) eller flera (M) processer kommer att k|ra. N{r samtidig exekvering {r avslagen s} k|r endast aktuell process. Om aktuell process {ndras (CTRL-O) s} kommer den nya aktuella processen att starta och den andra processen slutar att k|ra. BESKRIVNING Multitasking kr{ver inte floppy eller utbyggt minne. Styrprogrammet {r 345 bytes stort och laddas p} adress 49152-49497. Basic-programmet skapar en tempor{r lista i poke-arean som styrprogrammet anv{nder f|r att dela in minnet mellan de olika processerna. Efter initiering ligger alla processer i ABC80 kommando-mode. DOS-et {r inte initierat f|r n}gon process. 128 us strobinterupt anv{nds f|r att administrera multitaskingen. Processerna f}r exekvera 1/60 sekund i taget. F|r de processer som f|r tillf{llet inte k|rs sparas deras systemvariabler i b|rjan av processens minnesarea. De systemvariabler som p} detta s{tt blir unika f|r varje process {r de p} adress 65011-65207, alts} inte DOS-ets variabler. Adress 65040-65045 anv{nds av MTASK2. Poke-arean {r ledig f|r t ex kommunikation mellan processerna. BEGR[NSNINGAR Om cassett-minnet ska anv{ndas f}r inte flera processer k|ra samtidigt. Anv{nd d} CTRL-SHIFT-O. Om flera processer f|rs|ker att anv{nda DOS-et samtidigt kan fel intr{ffa, d{rf|r kan i initialskedet ingen process anv{nda DOS-et. F|r att en process ska kunna anv{nda DOS-et s} kan man skriva ; CALL(189) i processen (n{r den {r aktuell process). Plocka f|rst bort eventuell Smartaid 3 eller Super Smartaid. end.