TSEA28 Datorteknik Y (och U)

Relevanta dokument
TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

Tentamen. Datorteknik Y, TSEA28

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

Tentamen. Datorteknik Y, TSEA28

TSEA28 Datorteknik Y (och U)

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

TSEA28 Datorteknik Y (och U)

Tentamen. Datorteknik Y, TSEA28

TSEA28 Datorteknik Y (och U)

Tentamen. Datorteknik Y, TSEA28

Digital Aritmetik Unsigned Integers Signed Integers"

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Digital- och datorteknik

TSEA28 Datorteknik Y (och U)

Digital- och datorteknik

Styrteknik: MELSEC FX och numeriska värden

Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Digital- och datorteknik

Lösningar till tentamen i EIT070 Datorteknik

Datorsystemteknik DVG A03 Föreläsning 3

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Tentamen. Datorteknik Y, TSEA28

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Laboration 2 i Datorteknik- Assemblerprogrammering II

Lösningar till tentamen i EIT070 Datorteknik

F4: Assemblerprogrammering

Förenklad förklaring i anslutning till kompedieavsnitten 6.3 och 6.4

Binär addition papper och penna metod

Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp

Grunderna i stegkodsprogrammering

F2 Binära tal EDA070 Datorer och datoranvändning

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Digital elektronik CL0090

Datoraritmetik. Binär addition papper och penna metod. Binär subtraktion papper och penna metod. Binär multiplikation papper och penna metod

Digitala System: Datorteknik ERIK LARSSON

Digital- och datorteknik

Digital- och datorteknik

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

Tentamen (Exempel) Datorteknik Y, TSEA28

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Lösningsförslag till Tenta i Mikrodator

Lösningsförslag till Tenta i Mikrodator

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:

Tentamen Datorteknik Y, TSEA28 Datum

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

Assemblerprogrammering för ARM del 2

TSEA28 Datorteknik Y (och U)

Tentamen (Exempel) Datorteknik Y, TSEA28

TSEA28 Datorteknik Y (och U)

Det finns en hemsida. Adressen är

TSEA28 Datorteknik Y (och U)

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

LABORATION. Datorteknik Y Datorkonstruktion D

Tentamen (Exempel) Datorteknik Y, TSEA28

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

TSEA28 Datorteknik Y (och U)

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!

LABORATION. Datorteknik Y

Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP.

LABORATION. Datorkonstruktion D

TSEA28 Datorteknik Y (och U)

CE_O3. Nios II. Inför lab nios2time

Mål. Datorteknik. Innehåll. Innehåll (forts) Hur ser ett program ut? Hur skapas maskinkoden?

Övningsuppgifter i Mikrodatorteknik 4p/5p

Introduktion till programmering och Python Grundkurs i programmering med Python

DIGITAL ELEKTRONIK. Laboration DE3 VHDL 1. Namn... Personnummer... Epost-adress... Datum för inlämning...

TSEA28 Datorteknik Y (och U)

IE1205 Digital Design: F6 : Digital aritmetik 2

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

Talrepresentation. Heltal, positiva heltal (eng. integers)

Tentamen (Exempel) Datorteknik Y, TSEA28

TSEA28 Datorteknik Y (och U)

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 3. Assembler, stack och subrutiner, programmeringskonventionen. Institutionen för elektro- och informationsteknologi, LTH

Grundläggande datavetenskap, 4p

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

CE_O1. Nios II. Enkla assembler-instruktioner.

Programexempel för FLEX

Tenta i Digitalteknik

Övning2 Datorteknik, HH vt12 - Programmering

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

Tentamen Datorteknik D del 2, TSEA49

Digital- och datorteknik

TSEA28 Datorteknik Y (och U)

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

Transkript:

TSEA28 Datorteknik Y (och U) Föreläsning 4 Kent Palmkvist, ISY Dagens föreläsning Resultat från operationer Flaggor Andra operationer Villkorliga hopp Rotation, skif Vanliga programkonstruktioner Introduktion M68008 (labbdatorn tutor) 2

3 Praktiska kommentarer Labanmälan finns tillgänglig idag f o m kl 12.30 Logga in på Lisam, kursens kursrum TSEA28-2017VT Välj länk labanmälan (längst ned till vänster) Ange 6 olika tillfällen (A och B för lab 1-3) Labbar genomförs i grupper om 2 personer/grupp Kom i tid, inget insläpp efer labbstart Praktiska kommentarer, forts. Datoraccess (MUX2 och ixtab.edu.isy.liu.se) Labbuppgifen görs på Linux-maskiner (finns ett windowslab på ISY, men det är mindre intressant) Samma användarnamn och passord som på IDA och ISY:s vanliga datorlabb) Labbet öppet dygnet runt (mha passerkort) under VT1 med start 2 Februari Ingen hårdvara ansluten till ixtab.edu.isy.liu.se, däremot anslutet till tutor.edu.isy.liu.se Separat hembibliotek (inte kopplat till IDA/ISY vanliga datorlabb) Ej bokad tid är det tillgängligt (INGEN MAT, håll labb snyggt och rent) Datoraccess i ISY:s och IDA:s vanliga datorlabb Separat hembibliotek (inte kopplat till det som används i MUX2 och ixtab.edu.isy.liu.se) Samma användarnamn och passord som i MUX2/ixtab.edu.isy.liu.se Labben öppna dygnet runt (mha passerkort) Ej bokad tid är dom tillgängliga (INGEN MAT, håll labb snyggt och rent) 4

5 Praktiska kommentarer, forts. Glöm inte den individuella hemuppgifen Efer dagens föreläsning bör ni kunna börja studera 1:a hemuppgifen Hemuppgif innan lab 1 består i att förstå ett redan givet program Ni ska förstå vad som händer med registervärden Glöm inte att ni kan simulera program på labbsystemet, även hemifrån (logga in på ixtab.edu.isy.liu.se) Individuell förberedelseuppgif 1 måste vara klar innan 1:a labben! Krävs för att få tillgång till eventuella handledda extratillfällen Se hemuppgif på hemsida (meny till höger) Lab3 har ingen individuell förberedelseuppgif Praktiska kommentarer, forts. Tips: Börja läsa igenom labbmaterial redan nu Bra att vara förberedd innan 1:a lektionen Vi räknar inte med att ni kan processorbeskrivningen utantill, men att ni vet var man hittar den informationen i manualen Uppdaterat labbanvisningen för Lab 1 (v 1.8.1) En ändrad länkadress i kapitel 10, några mindre stavningsändringar och omformuleringar. 6

7 Tvåkomplementsrepresentation För ett n-bitar binärt tvåkomplementstal gäller n-1 bitar viktade precis som för positiva binära tal MSB-biten har vikt -2(n-1) I ett 3-bitars tal är MSB vikt -4 (se tabell) Positiva tal måste ha 0 som teckenbit 011 3 010 2 001 1 000 0 111-1 110-2 101-3 100-4 Generellt: ett n bitars binärt tvåkomplementstal på formen an-1an-2...a1a0 har representerar värdet n 2 (n 1) Värde= a(n 1) 2 + ai 2i i=0 Aritmetiska beräkningar Addition och subtraktion Ingen skillnad hur det går till, kan använda samma instruktion för både positiva heltal och 2-komplement Resultat tolkas olika beroende på talrepresentation Implementeras i ALU Samma ordlängd på indata och utdata Multiplikation Två olika instruktioner för positiva heltal respektive 2-komplement Dubbel längd på resultatet Generellt: m-bitars tal gånger n-bitars tal ger produkt med m+n bitar 8

9 Exempel multiplikation Vad händer med multiplikation av de mest negativa värdena? Antag 3 bitars tal. => minsta värde är -4 (100) 100 *100 --------För få bitar +000 (-4)*(-4)=16 +000 teckenförläng -100 ---------10000-16! 100 *100 ------000000 00000-1100 ----------010000 NxM bitars multiplikation => N+M bitars svar Kommentar om subtraktion Om man tycker det är svårt att räkna subtraktion av binära tal Gör om subtraktion till addition: A-B = A + (-B) Byt tecken på talet som subtraheras Addera Detta är ett vanligt sätt att bygga en ALU som kan addera och subtrahera 10

11 Intressanta beräkningsresultat I tidigare exempel jämfördes likhet mellan tal Beräknas genom subtraktion (A-B) och kontrollera om resultat = 0 Indikera resultat i Z-registret (1-bit) där Z=1 om result = 0, Z=0 annars Jämför med vad som kan göras i vanliga programmeringsspråk med två tal A och B A=B A>B Dessutom kan A och B vara tvåkomplement eller positiva heltal Resultat utanför talområdet för 2-komplement? Carry/borrow från beräkning? 12 Behöver veta mer om resultatet Efer aritmetisk operation (Addition, subtraktion) indikerar flaggor egenskaper hos resultat/beräkning Resultat 0? Lagras i Z-flaggan Samma som i modelldatorn om cmp ersätts med subtraktion Resultat negativ? Lagras i N-flaggan (=MSB) Resultat gav minnessiffra, carry? Lagras i C-flaggan Kan även ses som overflow om positiva heltal in (inte 2C) Resultat gav spill (engelska: overflow) för 2-komplement? Lagras i V-flaggan Antar indata och utdata i 2-komplements form. Detekteras mha minnessiffra in till och ut från teckenbitens position

13 Exempel på genererade flaggor 8-bitars addition (antag D-register i dator är 8 bitar) move #127,D add #3,D 01111111 +00000011 --------------10000010 Z = 0 (resultat inte noll) N = 1 (MSB i resultat ett) C = 0 (fick ingen minnessiffra vid MSB) V = 1 (130 går inte plats i 8 bitar tvåkomplement) Vissa instruktioner kan även addera C, dvs om C=1 läggs även 1 till, adc -10+3 Instruktion som sätter C flaggan move #-10,D adc #3,D 1 11110110 +00000011 --------------11111010 Z = 0 (resultat inte noll) N = 1 (MSB i resultat) C = 0 (ingen minnessiffra) V = 0 (-6 går plats inom 8 bitar) Varning ang. flaggor Hur flaggor sätts och hur de används kan variera mellan processorfamiljer Subtraktionens interaktion med C-flaggan skiljer sig mellan labbutrustning (Motorola 68000) och boken (ARM) Läs alltid manual för aktuell processor innan programmering 14

15 Användning av flaggor Två huvudsakliga användningsområden Skicka bitvärde mellan beräkningar Exempel: addera två 64-bitars tal i en dator som bara kan addera 32bitars tal Addera först minst signifikant 32-bitars del (påverkar även C-flagga) Addera därefer mest signifikant 32-bitars del inkl. C-flaggan Styr exekveringsflödet mha resultat T ex välj en annan programdel om två värden olika (jämför studenträknarexemplet) Villkorliga hopp (conditional branching) Exempel på flaggor för långa additioner Antag två 16-bitars tal ska adderas i en 8-bitars dator $ABCD+$7654 (två hexadecimala tal) Kan bara addera 8 bitar per instruktion Addera först minst signifikant byte Addera sedan mest signifikant byte plus C flaggan $CD+$54 = $21 samt C=1 $AB + $76 + 1 = $22 samt C=1 Svar: $ABCD+$7654 = $2221 samt C=1 Eventuell overflow kontrolleras bara efer andra additionen 16

17 Villkorliga hopp Beroende på indata kan vissa hopp betyda olika saker Tvåkomplements data ger annan betydelse hos jämförelse 1100 > 0100 för positiva heltal, 1100 < 0100 för 2-komplement (samma värden i flaggorna i båda fall) Villkorliga hopp ofa kombinationer av flaggor BLT (branch less than) antar A-B beräknats, testar om tecken (N) skiljer sig från 2komplements spill (V) (uttryckt som N exor V = 1 i manualen) M68008 har 14 möjliga villkorliga hopp (se tutormanual) Tutormanual har även bra lista på jämförelser och hoppvillkor för positiva heltal respektive 2-komplement. Om A-B beräknats så tas hoppet om A < B (dvs svar korrekt negativt eller spill med positivt svar) Ibland kan flera namn finnas på samma operation (ger läsbar kod) Datorn testar bara flaggor, den kommer inte ihåg vilken operation det var som påverkade flaggorna Villkorliga hopp, exempel Implementera motsvarande pseudokod if (A > B) then sekvens1 else sekvens2 /* Antag variabel A i register D0 och variabel B i register D1, / /* båda är i 2-komplements form */ start: cmp D0,D1 bge notlarger : sekvens1 : bra done notlarger: : sekvens2 : done: ; cmp gör D1-D0, dvs B-A ; kan även göra sub D0,D1 med då förstörs D1 efersom ; resultatet från subtraktionen sparas i D1 (Beräknar D1-D0) ; bge är motsats till blt, alltså hoppa om B-A gav ett positivt svar ; instruktioner i sekvens1 (ingen riktig assemblerinstruktion) ; hoppa till efer if-satsen ; Början på sekvens2 ; (ingen riktig assemblerinstruktion) ; plats för 1:a instruktion efer if-sats 18

19 20 Logiska operationer AND #value,d Bit för bit and (1 om båda är 1) move #$23,D and #$42,D 00100011 & 01000010 = 00000010 OR #value,d Bit för bit or (1 om någon eller båda är 1) move #$23,D or #$42,D 00100011 01000010 = 01100011 XOR #value,d Bit för bit xor (0 om båda 0 eller båda 1) move #$23,D xor #$42,D 00100011 ^ 01000010 = 01100001 Användning av logiska operationer Kontrollera om specifik bit i indata är =1 move switchar,d ; läs av många switchar ; där varje switch går till ; en bit and #$04,D ; Kontrollera switch ; kopplad till bit 2 ; Z-flaggan visar resultat ; Z=0 om bit = 1 bne switchpressed ; knappen tryckt (=1), ;gör något 0 1 2 : 7 switches Minnesinnehåll switches 7 6 5 4 3 2 1 0

21 Användning av logiska operationer, forts. Sätt speciell bit move led,d ; läs nuvarande tända lysdioder or #$01,D ; tänd lysdiod 0 utan att move D,led ; påverka övriga lysdioder 0 1 2 : 7 Nollställ speciell bit led move led,d ; läs nuvarande tända lysdioder and #$FD,D ; släck lysdiod 1 utan att move D,led ; påverka övriga lysdioder Minnesinnehåll led 7 6 5 4 3 2 1 0 Toggla (0->1 eller 1->0) speciell bit move led,d ; läs nuvarande tända lysdioder xor #$06,D ; ändra lysdiod 1 och 2 move D,led ; uppdatera utsignalen 22 Skifoperationer LSL, Logical shif lef Skifa D åt vänster (fyll på med 0 till höger) Motsvarar multiplikation med 2 LSR, Logical Shif Right Skifa D åt höger (fyll på med 0 till vänster) Motsvarar division med 2 (för positiva heltal) Blir inte rätt för tvåkomplement! ASR, Arithmetic Shif Right Skifa D åt höger, kopiera MSB (teckenbit!) Motsvarar division med 2 (för 2-komplement) d7 d6 d5 d4 d3 d2 d1 d0 d6 d5 d4 d3 d2 d1 d0 0 0 d7 d6 d5 d4 d3 d2 d1 d0 0 d7 d6 d5 d4 d3 d2 d1 d7 d7 d6 d5 d4 d3 d2 d1 d0 d7 d7 d6 d5 d4 d3 d2 d1 0

23 Exempel på skifoperationer Argument till shifinstruktioner anger antal steg Antag D = 11001011 LSL #1,D => D = 10010110 d7 d6 d5 d4 d3 d2 d1 d0 d6 d5 d4 d3 d2 d1 d0 0 LSL 0 LSL #2,D => D = 00101100 d7 d6 d5 d4 d3 d2 d1 d0 0 d7 d6 d5 d4 d3 d2 d1 LSR #1,D => D = 01100101 ASR #1,D => D = 11100101 0 LSR d7 d7 d6 d5 d4 d3 d2 d1 d0 d7 d7 d6 d5 d4 d3 d2 d1 ASR Andra möjliga instruktioner Rotation (ROL, ROR) d7 d6 d5 d4 d3 d2 d1 d0 Multiplikation, division d6 d5 d4 d3 d2 d1 d0 d7 Bitmanipulering Testa och sätt/nollställ enskilda bitar Kan implementeras med vanlig and/or istället Se kapitel 7 i Manual till Tutorsystemet Många fler som jag inte kommer presentera nu Vissa kommer diskuteras i samband med metoder för snabbare exekvering av program ROL d7 d6 d5 d4 d3 d2 d1 d0 d0 d7 d6 d5 d4 d3 d2 d1 ROR 24

25 M68000 familjen (laborationsdatorn) 32-bitars dator med 8 generella D register 8 register speciellt för adressberäkningar Operationer på A-register påverkar inte flaggor! Kan hantera 8-bit, 16-bit och 32-bitars data Lägg till storleksinfo sist på instruktionen (default 16 bit data).b för byte (8-bit),.W för word (16-bit),.L för long (32-bit) Exempel: 32-bit addition: add.l D2,D3 Flera versioner finns tillgängliga Samma maskinkod Olika extra funktioner Olika gränssnitt Kod för en processor kan köras direkt i en annan processor Speciella enheter för att sköta virtuellt minne (mer info senare) 8-bitars buss (M68008), 16-bitars buss (M68000) etc. 26 Register i M68000 familjen D0 till D7 31 1615 87 0 32-bitars dataregister 32-bitars adressregister, A7 används som stackpekare (SP) SR 1615 A0 till A7 31 16-bitars statusregister med flaggor (+ statusbitar) A0 A1 A2 A3 A4 A5 A6 A7 PC SR PC 0 D0 D1 D2 D3 D4 D5 D6 D7 32-bitars programräknare, 20 bitar används till adresser

27 M68000 instruktioner Alla instruktioner är mellan 2 och 6 byte långa Längd beror på antal parametrar 1 byte = 8 bitar Varje instruktion måste placerats med start på en jämn adress Skiljer inte på minne för program och minne för data Laborationssystemet Tutor Fysisk vy Kretskortet längst upp är tutor Resten är strömförsörjning och möjligheter att koppla in andra enheter Ansluts via serieport till linuxdator Via bandkabel och kretskort i mitten av figuren Bandkabel uppe till höger Strömanslutning till vänster 28

29 Laborationssystemet Tutor, detaljer Beståndsdelar M68008 processor 8 bitar databuss 20 bitars addressbuss (bit 31-20 ignoreras) 8 MHz klocka (ca 100-200 ggr långsammare än en smartphone) Adress $00000 $00001 $00002... $FFFFE $FFFFF RAM (läs och skrivbart) 32 Kbyte EPROM (endast läsbart) 32 KByte Byte nr 2 20-2 Byte nr 2 20-1 Serieport Tutor minneskarta RAM-minne (går att läsa och skriva) $00000 - $008FF reserverat för system och monitor $00900 - $07FFF användbart EPROM (bara möjligt att läsa) $08000 - $0BFFF monitorprogram TUTOR $0C000 - $0FFFF diverse hjälpprogram (nästan tomt) I/O-kretsar $10040 - $10042 Serieport, styr och dataregister $10080 - $10086 Parallellport, styr och dataregister Övriga adresser används inte Vissa adresser kan skada hårdvara? 2 20 bytes (1 Mbyte) Parallellport, programmerbara anslutningar (val av in eller ut) Totalt I/O-enheter... Byte nr 0 Byte nr 1 Byte nr 2... Minne 8 bitar Inte i denna design, men möjligt i andra $00000 $00900 R A M $08000 $0C000 $10000 $10040 $14000 $FFFFF E P R O M 30

31 Tutor programvara På tutorkortet finns en så kallad monitor Enkelt styrprogram för att hjälpa till med programutveckling Endast text in och ut Kan läsa och modifiera register och minnesceller Kan hantera brytpunkter och stega genom kod Kan assemblera enskilda rader kod (inga labels) Antar alla värden är i hexadecimal form Decimaltal indikeras med & framför 216 (= hexdecimalt D8) anges som &216 Väldigt enkel inmatning (ingen historik etc.) 32 Att komma i kontakt med tutor Kommunicera med tutor på labbänk Starta terminalprogram med tutor.sh tutor.sh Hemma/annat labb Finns ett antal tutorsystem i ett låst rum kopplade till en speciell maskin kallad tutor.edu.isy.liu.se Anslut till tutormaskinen med ssh tutor Hemifrån behöver du först logga in på ixtab.edu.isy.liu.se Se även http://www.isy.liu.se/edu/kurs/tsea28/laboration/tutorpm.pdf Dator i annat ISY-labb ssh tutor Dator tutor I låst rum... Tutor I labbsalen MUX2 Dator I MUX2 labbet Tutor Kommunikation med monitor sker via ett terminalprogram Tutor

33 Att skriva och assemblera kod Använd korsassemblern på labbdatorn assemble.sh Gör det möjligt att spara all kod som skrivs Korsassemblern ordnar alla hopp och adresser som behövs Tutor-kortet nollställs helt när strömmen stängs av Kortsassembler: assembler som översätter till maskinkod för en annan processor än den som assemblern körs av (dvs en intelprocessor kör assembler, koden skapas för M68000) Se avsnitt 12 i lab1-manualen för mer detaljerad beskrivning Alla program förväntas starta på adress $1000 34 Lite fler tips för att komma igång Kom ihåg att sätta stackpekare innan ni kör ert program Manuellt i tutor eller först i ert eget program Se till att monitor startas igen efer att programmet är klart Se GT address respektive TT adress (go respektive trace med temporär brytpunkt) Alternativt anropa monitorn sist i din rutin via trap 14 move.b #228,D7 trap #14 Subrutiner bör ha en återhoppsadress på stacken (se avsnitt 7 i laborationsanvisningarna) Enklast: skriv en huvudfunktion som sätter stackpekare och sedan gör ett subrutin anrop till subrutinen du skrivit, och slutligen anropar monitorn via trap #14

Live demo av tutor via ssh (följande kommandon användes) ssh ixtab.edu.isy.liu.se module load BUSSENLAB cd TSEA28 gedit test1.s assemble.sh test1.s list.sh test1.s cp a.out ~/ ssh tutor MD 1000 MD 1000;DI Ctlr-F L MD 1000;DI DF www.liu.se MD 1000;DI DF.PC.D0.PC 1000 DF T T Ctrl-E 35