Programmering i maskinkode på AMIGA

Størrelse: px
Starte visningen fra side:

Download "Programmering i maskinkode på AMIGA"

Transkript

1 Programmering i maskinkode på AMIGA A.Forness & N.A.Holten Copyright 1989 ARCUS Copyright 1989 DATASKOLEN Hæfte 3 Indhold Binær aritmetik Logiske operatorer Status-registret Branching Bitplanes og Copper DATASKOLEN Postboks 62 Nordengen Kokkedal Telefon Postgiro

2 LOGISKE OPERATIONER I dette kapitel skal vi se på BINÆR aritmetik (først og fremmest plus og minus), samt såkaldte logiske operationer (AND, OR, NOT og XOR). Det er noget du vil få meget brug for. Det kan virke lidt indviklet når du ser det første gang - men det er IKKE vanskeligt. Når vi i decimale talsystemer tager tallet 9 og lægger 1 til, så nulstiller vi talpositionen for enere og forhøjer talpositionen for tiere med 1. Sådan: = 10 I ti-tals systemet har vi altså 10 tal (fra 0 til 9) til vor rådighed når vi regner. I det BINÆRE talsystem har vi kun 2 tal: 0 og 1. Men det fungerer på akkurat samme måde. Lad os se på følgende opsætning: = 10 I det DECIMALE talsystem strider det som står ovenfor imod al fornuft, men det er helt korrekt i det BINÆRE talsystem. Det har vi været gennem tidligere (se BREV I), men nu skal vi gå lidt mere i dybden. Følgende regnestykke (BINÆRT) vil blive brugt som forklarende eksempel i dette afsnit. Eksempel nr. 1: % (CARRY = 0) +% =% (CARRY = 1) ============ Nu skal vi gennemgå dette regnestykke bogstavelig talt BIT for BIT. Den BIT som kaldes LSB (den længst til højre) i det øverste tal (% ) skal lægges sammen med LSB i tallet nedenunder (% ). Altså skal vi lægge de to BITs 1 og 0 sammen. Det bliver 1. Det fungerer nøjagtigt som i det DECIMALE system: 1+0=1 Så tager vi næste BIT umiddelbart til venstre for LSB i de to tal: 0 og 1. Også her fungerer det akkurat som i det DECIMALE system: 0+1=1 Næste par BITs er to nuller. Fungerer også som i DECIMALE talsystem: 0+0=0 Næste to BITs er to enere. Her kommer den funktion ind i billedet som vi nævnte før, når man går fra 9 til 10 i det deci male talsystem. Man har jo kun to tal som kan bruges når man 2

3 regner BINÆRT - 1 og 0. Så når to enere skal adderes får vi et 0 og så 1 i mente. Altså opstår det som vi indledte dette kapitel med: = 10. Mente havner i næste position til venstre, således at det bliver 0 i den position vi er i gang med, og så tager vi menten med til næste operation. Næste to BITs er to nuller. Som vist ovenfor er 0+0=0 i alle talsystemer. Nu er der også en mente, Så det totale regnestykke for denne talposition bliver: = 1 Næste BIT-par er 0 og 1. Som tidligere bliver resultatet 1 (ingen mente). I næste position er der to nuller. Facit bliver her 0 (ingen mente) I BIT-parret længst til venstre MSB, står der to enere. Resultatet bliver altså: = 10. Her noterer vi derfor nul i denne talposition i svaret og sætter CARRYen til 1 for at markere, at der er en mente. Vi behøver altså 9 BITs for at kunne få angivet svaret korrekt. Opgave 0301: Læg de BINÆRE tal % og % sammen. Nu burde du være klar til at prøve SUBTRAKTION af BINÆRE tal. Det foregår på samme måde som ved subtraktion af DECIMALE tal. Reglerne er her: BINÆRT regel 1: 0 0 = 0 regel 2: 1 0 = 1 regel 3: 1 1 = 0 regel 4: 0-1 =? (Tallet bliver NEGATIVT) Reglerne 1, 2 og 3 burde være indlysende. Det er akkurat som i DECIMALT, som du ser. Vi kan ikke forestille os at du har problemer med det. Vi vender tilbage til regel 4 i et senere brev under et kapitel, som vil behandle SIGNEREDE TAL (negative tal). 3

4 AND - OR - NOT - XOR Nu skal vi til at se på DATA-LOGIK. Eri matematiker konstruerede denne logik før der fandtes datamaskiner, men hans logik blev ikke fuldt ud værdsat før datamaskinerne gjorde deres indtog. Nu kan vi ikke forestille os at undvære denne logik. Denne logik - som vi starter på om et øjeblik - bruges blandt andet når man skal sætte en BIT i et register uden at forstyrre de andre BITs - eller hvis man vil nulstille en BIT i et register uden at ændre på de andre BITs, som findes i registeret. Vi skal nu forklare dette lidt nærmere. Vi begynder med AND. Ordet AND betyder OG. Hvis man har to BYTEs og skal "ANDe" dem, så udfører man en bestemt operation for hver BIT i de to BINÆRE tal. Eksempel nr 2: % AND % = % =============== Vi sagde at AND betød OG, og nu skal du få at se hvordan det hele fungerer. BITsene længst til venstre i de to BINÆRE tal i EKSEMPEL 2, er to enere. Logikken siger at hvis du ANDer to enere (1 OG 1) så bliver resultatet ALTID 1. Hvis du har noget andet - som 1 og 0 eller 0 og 1, så bliver svaret ALTID 0. Hvis du da sammenligner BIT for BIT i de to BINÆRE tal, så ser du at hver gang man ANDer to enere, så bliver svaret 1 - i alle andre tilfælde bliver svaret nul. Man kan sætte en tabel op over dette. En sådan tabel for logiske operationer kaldes en sandhedstabel. Sandhedstabel for AND: 0 AND 1 = 0 0 AND 0 = 0 1 AND 0 = 0 1 AND 1 = 1 Som du ser får du kun 1 som svar hvis du ANDer to BITs og begge er sat: 1 AND 1 (dansk: 1 OG 1). I alle andre tilfælde får du som sagt nul. Denne funktion er vældig god at kunne når du skal nulstille BITs i et register, hvor forskellige BITs har forskellig betydning. 4

5 Hvis du for eksempel i et eller andet register skal nulstille BIT nummer 3 (fjerde BIT regnet fra højre - 3,2,1,0), så kan du ANDe registret med følgende BINÆRE tal: % hvis registret på forhånd så således ud: % og BIT nummer 3 bliver nulstillet. Det bliver lidt mere overskueligt hvis vi sætter tallene op under hinanden: REGISTRET indeholder: % Vi AND'er med: % Resultat: % =========== Her ser man tydeligere at fjerde BIT er nulstillet. Man behøver ikke vide hvilken værdi de øvrige BITs i registret har. Det er nok at du kender den BIT, der skal ændres når du ANDer - alle andre BITs lader du være urørt. Funktionen AND kommer du til at benytte ofte i programmeringen på AMIGA. Opgave 0302: Udfør en AND på % og % Næste logiske funktion kaldes OR - dansk: ELLER. Hermed menes, at når to BINÆRE tal ORes og blot en af to BITs har værdien 1 (egentlig en eller begge to), så bliver svaret 1. Sandhedstabel for OR (ELLER): 0 OR 0 = 0 1 OR 0 = 1 0 OR 1 = 1 1 OR 1 = 1 Af sandhedstabellen for OR (ELLER) ser du at, hvis en af to BITs som ORes - eller begge to - er 1, så bliver resultatet af de to BITs: 1. Eksemplet som kommer her OR'er to BINÆRE tal. Studer det nøje, og sammenlign med sandhedstabellen for OR. % OR % = % =========== I programmering i MC har denne logiske operation den modsatte virkning af AND. Med OR sætter du BITs i et register til 1. Lad os tage det samme eksempel som under forklaringen af ANDfunktionen. Registret forudsættes at indeholde % Efter ANDingen indeholdt samme register % Nu vil vi bruge OR-operationen til igen at give BIT 3 (den fjerde BIT fra LSB) værdien 1. 5

6 REGISTRET indeholder: % Vi udfører en OR med: % Resultat: % =========== Den fjerde BIT er atter 1, og vi er tilbage, hvor vi begyndte. Dette er også en meget anvendelig operation som du vil komme til at bruge mange gange. Opgave 0303: Udfør en OR på % og % Nu er vi kommet til den logiske operator NOT (dansk: IKKE). Vi sætter en sandhedstabel op med det samme: Sandhedstabel for NOT (IKKE): NOT 0=1 NOT 1=0 NOT 0 er det samme som at sige: IKKE 0 - og det må jo blive 1. På samme måde bliver NOT 1 (IKKE 1) lig med nul. Med denne logiske operation udfører man en såkaldt konvertering (vending) af BITs. Hvis man skriver: NOT % , bliver resultatet: % Mere logisk kan det vel ikke blive? Operationen NOT vil vi blandt andet komme tilbage til i forbindelse med aflæsninger af tastaturet på AMIGA. Og så er der den sidste logiske operation: XOR (udtales: eksår). Den kan oversættes med EKSKLUSIV ELLER. Vi sætter en sandhedstabel op først: 0 XOR 0 = 0 0 XOR 1 = 1 1 XOR 0 = 1 1 XOR 1 = 0 Af tabellen kan man se, at det er kun når den ene BIT er 1, at resultatet bliver 1, når man udfører en XOR. Vi viser her et eksempel på en udførsel af XOR på to BYTEs: REGISTRET indeholder: % Vi udfører en XOR med: % Resultat: % =========== En gang til: Når to BITer XORes, så bliver resultatet 1 (BITen bliver sat) hvis den ene BIT er sat - og kun da. Resultatet af en XOR bliver nul, hvis begge BITs er 0 eller begge BITs er 1. Denne logiske operation bliver sjældent brugt, men vi vil dog få brug for den i et senere brev. 6

7 MASKINKODEPROGRAMMERING Så kaster vi os ud i MC igen. Vi laver et lille program, som indlæser de 16 første hukommelses-celler - adresserne - i AMIGA. Derefter placerer vi dem et andet sted i maskinens hukommelse i en BUFFER, som vi selv har opsat. Vi viser to eksempler af samme program. Det første er lidt "tungt" for tydelighedens skyld (men fuldt brugbart), og det andet er lidt mere avanceret: kortere, hurtigere og smartere. Her er første version: 1 move.l #16,d0 2 move.l #$00,a0 3 lea.l buffer,a1 4 loop: 5 move.b (a0),d1 6 add.l #1,a0 7 move.b d1,(a1) 8 add.l #1,a1 9 sub.l #1,d0 10 cmp.l #0,d0 11 bne loop 12 rts buffer: 15 blk.b 16,0 Linie 1: Flytter det decimale tal 16 ind i d0. Dette register bruges som en tæller - altså et regnskab når vi kræver, at en loop skal gå et vist antal gange (her: 16 gange). Tegnet "#" kan du oversætte med "Tag følgende tal". Altså: Tag følgende tal (16) og placer det i dataregister d0. I linie 6: Adder følgende tal (1); i linie 9: Subtraher følgende tal (1), og i linie 10: Sammenlign følgende tal (0) med det som findes i dataregister d0. Linie 2: Lægger tallet $00 ind i adresseregister a0. I og med at vi bruger LONGWORD, nulstiller vi dermed alle BITsene (32 stykker). Dette adresseregister bruger vi som en pointer (den pointer altså i dette tilfælde på adresse $000000): den adresse vi vil læse fra. Linie 3: Lægger adressen på vores egen BUFFER (se linie 14) ind i a1. Eller med andre ord: Vi har sat en del af AMIGAens hukommelse af til lagringsplads for det vi indlæser. Denne lagringsplads begynder på den adresse i maskinen, hvor vores LABEL befinder sig (LABEL-navnet assembles jo ikke til enere og nuller, som du ved. Det bliver derfor den første 7

8 Linie 4: En LABEL BYTEs adresse, som repræsenterer begyndelsen på vor BUFFER). Adresseregisteret al bruges altså som en pointer til det sted (den adresse), hvor vi ønsker at vore data skal lagres. Læg mærke til at vi ikke forandrer noget i de adresser vi læser. Dataene bliver bare kopieret ind i vores BUFFER. Linie 5: Flytter tallet som befinder sig i den BYTE (eller bedre: adresse), som adresseregistret a0 peger på, ind i dl. Parantesen rundt om a0 betyder, at man ikke skal bruge de data, som adresseregistret a0 måtte indeholde fra før, men at man holder sig til den adresse, som a0 indeholder (peger på) og henter de data som ligger der. Denne måde at adressere på kaldes for: REGISTER INDIRECT (oversat: indirekte register-adressering) og benyttes meget ofte i MC på AMIGA. Linie 6: Adder 1 til det tal som findes i a0. Det resulterer i at a0 vil pege på den næste adresse vi vil læse fra. Linie 7: Flytter tallet, som er sig i dl, ind på den adresse, som adresseregister al peger på. Se kommentarer til LINIE 5. Linie 8: Adderer 1 til det tal, som findes i al (forhøjer altså al med en). Dette resulterer i at al nu vil pege på den adresse i hukommelsen (i vores buffer), hvor vi skal lagre næste BYTE. Linie 9: Træk tallet 1 fra d0. Dette er vores tæller, som bliver formindsket med en, hver gang vi har læst en BYTE - ialt 16 gange. Linie 10: Check om d0 er blevet 0. CMP (compare) betyder "sammenlign" og bruges her for at se om vi har læst 16 BYTEs (for så er dataregister d0 blevet 0). Linie 11: Hvis d0 ikke er lig med 0, hopper programmet tilbage til vores LABEL "loop:" (linie 4). Hvis d0 er lig med 0, er LOOPen udført 16 gange, og programmet vil ikke hoppe tilbage. I stedet vil programmet starte på næste instruktion. Linie 12: RETURNER FRA SUBRUTINE (eller afslut), og giv kontrollen tilbage til K-SEKA. Linie 14: LABELen som peger på begyndelsen af vores egen BUFFER. 8

9 Linie 15: Her har vi deklareret (sat plads af til) 16 BYTEs til vores buffer. Vi kunne også have skrevet: blk.l 4,0 eller blk.w 8,0. Det havde givet samme resultat. BLK står for "blok", og 4,0 (og 8,0) viser antal LONGWORDs (eller antal WORDs), som vi ønsker at reservere som BUFFER. Tallet "0" bliver lagt ind i alle BYTEs i BUFFERen, således at vi samtidig får BUFFERen "renset" (eller tømt - i tilfælde af at der skulle ligge gamle data fra tidligere). Se også kommende afsnit. Lad os se på nogen nye instruktioner: CMP (sammenlign) BNE,BEQ,BHL,BLO (forskellige "BRANCHes" dvs afgreninger) BLK,DC (BLOK- og DECLARE-kommandoer) Vi vil først se på STATUS-registret før vi går igennem instruktionerne. STATUSREGISTRET MSB LSB INDHOLD: X N Z V C Dette er en del af det såkaldte STATUSREGISTER i MC Vi kommer ikke til at læse eller skrive direkte i dette register. Du behøver heller ikke at vide, hvilke BIT-numre de forskellige FLAG ligger på (ordet FLAG forklares nedenfor). Alt hvad du behøver at vide er hvilke FLAG, som findes, og hvad de bruges til. FLAG er et nyt udtryk, som vi skal se lidt nærmere på. Her er først deres navne: C - Carry flag (mente) V - overflow flag (advarsel, tallet er blevet for stort) Z - Zero flag (noget er blevet nul) N - Negative flag (tallet er negativt) X - extend flag (speciel mente) At bruge en BIT til at vise, hvis en bestemt tilstand er opnået, kaldes at benytte sig af BITen som flag. Når FLAGET er 1, siger man at det er SAT. Forestil dig en længdesprings-konkurrence. Ved stregen, hvor springeren sætter af, står der en og vifter med et rødt flag, hver gang der er overtrådt - og hvidt hvis springet er 9

10 gyldigt. Samme princip gælder for FLAGENE i STATUSREGISTERET. De fortæller den, som programmerer, for eksempel når et tal er negativt (N-flaget), når et resultat er blevet nul (Zflaget), når et tal er blevet for stort (C-flaget og V- flaget) og så videre. Vi forklarer hvert flag mere indgående nedenfor. I næste eksempel bliver CARRY-flaget 1 fordi summen af de to tal (200 og 100) overstiger det tal, en BYTE kan indeholde (255). move.b #200,d0 add.b #100,d0 rts Som du ved kan et 8-BITs tal, eller en BYTE kun indeholde tal fra 0 til og med 255. I eksemplet ovenfor lægger vi 200 ind i do, og tillægger så 100. Der burde altså ligge 300 i vores BYTE. Da et så stort tal ikke kan få plads der, bliver CARRYflaget sat (til 1) for at fortælle os at tallet er blevet for stort (200 deciamlt) (100 decimalt) = (300 decimalt) ========== Som du ser må vi tage en niende BIT i brug for at få rigtigt svar. Det er denne BIT (længst til venstre i svaret), som havner i CARRY-flaget (CARRY-BITen). Hvis resultatet bliver 255 eller mindre nulstilles CARRY-flaget i stedet. OVERFLOW-flaget ligner CARRY-flaget meget. Forskellen er at det bruges som den "niende BIT" i 2-KOMPLIMENT-TAL eller SIGNEREDE tal. Mere om dette i et senere brev. ZERO-flaget bruges tit og i mange forskellige sammenhænge. Hver gang en operation resulterer i et nul-resultat, bliver dette flag sat. I det første eksempel i dette kapitel står der i linie 10: cmp.l #0,d0. Denne linie kunne godt fjernes fordi, så snart linie 9 resulterer i nul i dataregister d0, sættes ZERO-flaget automatisk. F.eks, betyder instruktionen: cmp.l #100,d0...tag følgende tal (100) og sammenlign det med det, som er i dataregister d0. Hvis d0 indeholder 100, resulterer sammenligningen i en lighed, og ZERO-flaget sættes. NEGATIVE-flaget bliver sat for at vise, at resultatet er negativt (minus). Vi vil beskæftige os med dette senere. EXTEND-flaget bliver brugt ved rotering eller skiftning af BITs. Flaget bliver også brugt i komplicerede adderings- 10

11 eller multiplikations-rutiner og fungerer da som et CARRYflag. Vi kommer tilbage til dette flag senere. Instruktionen CMP for "COMPARE" (sammenlign) bruges til at sammenligne tal. For at den skal have nogen nytte må den kombineres med en BRANCH. Vi tager nogen eksempler: move.l #100,d0 cmp.l #50,d0 (næste linie er en af følgende BRANCHer): BEQ BNE BHI BLO tallet er lig med (BRANCH ON EQUAL) tallet er ulig med (BRANCH ON NOT EQUAL) tallet er højere (BRANCH ON HIGHER) tallet er lavere (BRANCH ON LOWER) BEQ-instruktionen (Branch on EQual) vil ikke udføre et hop fordi d0 i vores lille eksempel (som indeholder 100) ikke er lig med 50. BNE-instruktionen (Branch on Not Equal) udfører et hop, fordi d0 er ulig med 50. BHI-instruktionen (Branch on HIgher) udfører et hop fordi d0 er "højere" end 50. Her er tallet 50 brugt som reference. Du skal altså tyde instruktionen "bagvendt" for, at det bliver rigtigt, altså: "Er d0 større end 50 BLO-instruktionen (Branch on LOwer) udfører ikke et hop, fordi d0 ikke er "lavere" end 50. Det er meget vigtig at du forstå dette godt. Se også i programeksemplet på linie 11. Vi kunne der have skrevet BHI i stedet for BNE. Nu skal vi se lidt på BLK- og DC-instruktionen. BLKinstruktionen (BLocK) bruges til at reservere et område i hukommelsen hvori vi kan behandle eller lagre data. BLK er ingen instruktion, og assembles ikke til enere og nuller. Lad os se lidt på, hvordan man bruger den. 1 blk.b blk.b $10,0 3 blk.l 100,0 4 blk.b $2800,255 5 blk.w $2800,255 Linie 1: Reserverer 10 BYTEs og nulstiller dem alle. Sådan: $ Linie 2: Reserverer $10 ($10 = 16) BYTEs og nulstiller dem. Sådan: $

12 Linie 3: Reserverer 100 LONGWORDs (ialt 400 BYTEs) og lægger 0 (nulstiller) i alle LONGWORDene. Sådan: $ (100 gange) Linie 4: Reserverer 2800 BYTEs (decimalt=10240) og lægger 255 i alle BYTEs. (255 DECIMALT er lig med $FF HEXADECIMALT) Sådan: $FF FF FF FF FF FF FF FF FF FF FF FF...(10240 gange) Linie 5: Reserverer $2800 WORDs og lægge 255 i alle WORDene Sådan: $00FF 00FF 00FF 00FF 00FF 00FF 00FF... (10240 gange) DC-instruktionen (DECLARE, oversat deklarere) har samme funktion som BLK, men reserverer kun en BYTE af, et WORD eller et LONGWORD. 1 dc.b 0 2 dc.b 255,0,10 3 dc.b "AMIGA" 4 dc.w $100 5 dc.l Linie 1: Reserverer en byte og sætter den til 0. Sådan: $00 Linie 2: Det er muligt at have flere tal på samme linie. Så reserveres der lige så mange BYTEs (vi bruger kommandoen DC.B), som der er tal (her 3). Her sættes de til 255 (=$FF), 0 og 10 (=$0A). Sådan: $FF 00 0A Linie 3: Denne er lidt speciel. Du ved sikkert at et tegn bruger en byte. Når tegn lagres i datamaskiner, bliver de lagret som tal. Vi har tidligere nævnt at bogstavet A lagres som tallet 65 ($41). Bagest i manualen til AMIGA er en tabel, som viser hvilke tal, der repræsenterer hvilke bogstaver. Denne tabel kaldes for en ASCII-tabel (udtales: ASKI). Forkortelsen står for: American Standard Code for Information Interchange, oversat: Amerikansk kode for udveksling af information. Denne data-standard for at lagre information bruges i alle datamaskiner idag. Via ASCII-tabellen kan du læse ordet AMIGA som HEXADECIMALE tal. Sådan: $41 4D

13 Linie 4: Reserverer et WORD, og sætter det til $100 (=256) Sådan: $0100 Linie 5: Reserverer et LONGWORD, og sætter det til (=$1E240). Sådan: $0001E240 Forstod du det hele? hvis du er det mindste i tvivl så læs det en gang til. Det er uhyre vigtigt at du forstår det. Det skal være en af grundstenene i din viden om programmering. Og så den anden version: 1 move.l #15,d0 2 move.l #$00,a0 3 lea.l buffer,a1 4 loop: 5 move.b (a0)+,(a1)+ 6 dbra d0,loop 7 rts 8 9 buffer: 10 blk.b 16,0 Linie 1: Lægger tallet 15 ind i d0. Her bruges d0 igen som tæller. Linie 2: Lægger tallet $00 ind i a0. Linie 3: Lægger adressen på vores buffer ind i a1. Linie 4: En LABEL. Linie 5: Erstatter linierne 5,6,7 og 8 i det andet eksempel. Vi forklarer instruktionen nærmere nedenfor. 13

14 Linie 6: Erstatter linierne 9, 10 og 11 i det andet eksempel, Også denne instuktion forklares nedenfor. Linie 7: Afslutter programmet. Linie 9: LABELen til vores BUFFER. Linie 10: Reserverer 16 BYTEs og nulstiller dem. Den udgave af MOVE-instruktionen, du ser i linie 5, bliver brugt meget ofte, så lad os tage fat på den først: Du har lært, at hvis du sætter parenteser om et adresseregister, som i linie 5 i det første eksempel, så peger adresseregistret på den adresse, der skal bruges. Denne nye version virker på samme måde, men har en ekstra finesse. Se på dette eksempel: move.b (a0)+,d0 Den udfører det samme som: move.b add.l (a0),d0 #l,a0 Altså: Tallet, som ligger i a0, bruges som adresse. Derefter går den til den adresse og henter det tal, der ligger der, og lægger det ind i dataregister d0. Derefter adderer den automatisk 1 til a0, fordi der står et plustegn efter parantesen. Havde der stået "move.w" i stedet for "move.b" ville den have adderet 2 til a0 (fordi et WORD består af to BYTEs). Havde der stået "move.l" i stedet for "move.b" ville den have adderet 4 til a0 (fordi et LONGWORD består af fire BYTEs). Instruktionen MOVE.B (a0)+,(a1)+ vil: 1: Hente tallet på adressen a0 peger på, og lagre det på den adresse som al peger på. 2: Adderer 1 til a0 (Vi arbejder med størrelsen BYTE). 3: Adderer 1 til a1 (Vi arbejder med størrelsen BYTE). Du kommer til at bruge denne adresseringsmåde ofte. Specielt når du behandler data-tabeller, og når du flytter rundt på data i AMIGAs hukommelse. Det er derfor meget vigtigt at du lærer disse ting. 14

15 Den næste instruktion vi skal se på er DBRA.: move.l loop: dbra rts #9,d0 d0,loop Eksemplet udfører det samme som: move.l loop: sub.l cmp.l bne rts #10,d0 #l,d0 #0,d0 loop Det DBRA gør er at: 1: Trække 1 fra i registret ( I dette tilfælde d0). 2: Sammenligne med -1. 3: Er det -1? Hvis ikke, hop tilbage. (Hvordan et tal kan være negativt i en BYTE, et WORD eller et LONGWORD kommer vi tilbage til. I øjeblikket behøver du ikke spekulere på det problem). Når do er blevet -1 vil den fortsætte på næste instruktion. Husk at DBRA hele tiden sammenligner med -1, så vi skal angive et tal i tælleren (d0), som er 1 mindre en det antal gange LOOPen skal udføres. COPPER OG BITPLANES Nu kaster vi os ud på det store ocean, som kaldes BITPLANEs (udtales bittpleins og kan oversættes med "BIT-flader"). Vi forklarer mere om COPPERen samtidig og det vil medføre en del nødvendig hoppen frem og tilbage i emnet. Det kan betale sig først at gennemlæse hele kapitlet en gang for at få overblik over stoffet, og derefter læse det hele forfra igen. Vi begynder med at forklare lidt om et HARDWARE-register som i datalitteraturen om AMIGA har fået navnet "DMACON". Navnet er en forkortelse af "DMA-CONTROL". DMACON er navnet på et specielt WORD (en 2 BYTEs adresse) som betegnes REGISTER. HARDWARE-registre ikke har noget med d0, 15

16 a0 eller andre af registrene i MC at gøre. HARDWAREregistrene ligger i en helt anden del af maskinen, nemlig i AGNUS, PAULA og DENISE. Registrene har derfor en adresse, og adressen til DMACON er SDFF096. Alle adresser på HARDWAREregistre begynder med $DFF??? Vi kalder $DFF000 for HARDWAREregistrenes BASE-ADRESSE. NB! Alle HARDWARE-registre er 16 BITs, altså et WORD. Det er vigtigt at lægge mærke til, at HARDWARE-registrene er opbygget således at de enten kun kan skrives til, eller kun læses fra. F.eks. kan der kun skrives til farveregistrene. Hvis du prøver at læse dem, vil du få returneret enten nul eller et andet vilkårligt tal. JOYSTICK-registrene er den anden type, den der kun kan læses fra. At skrive til disse har ingen betydning. (Du kan altså ikke bede din JOYSTICK ryge og rejse!) Nogle registre har to adresser - en skrive-adresse og en læse-adresse. Det er sådan et register (DMACON) vi nu skal gennemgå. Hvis du skal skrive til DMACON skal du bruge adresse $DFF096, men hvis du skal læse fra det, skal du bruge adresse $DFF002. DMACON er opsat således (Husk! 1 WORD = 16 BITs): $DFF096 WRITE - $DFF002 READ BIT NR. FUNKTION ACCES 15 SET/CLR W 14 BLITTER BUSY R 13 BLITTER ZERO R BLITTER NASTY R/W 9 DMA ENABLE R/W 8 BITPLANE DMA R/W 7 COPPER DMA R/W 6 BLITTER DMA R/W 5 SPRITE DMA R/W 4 DISK DMA R/W 3 AUDIO CHANNEL 3 DMA R/W 2 AUDIO CHANNEL 2 DMA R/W 1 AUDIO CHANNEL 1 DMA R/W 0 AUDIO CHANNEL 0 DMA R/W Vi har, som du ser, valgt at bruge de engelske betegnelser. Det er der to grunde til: For det første så kan du lettere referere til (og forstå) special-litteratur på engelsk, når du kender de engelske udtryk, og for det andet så bliver oversættelserne meget dårlige, da der ofte ikke findes et tilsvarende ord i dansk-dataterminologi. Læg mærke til at vi i sidste kolonne (ACCES, oversat: tilgang til) angiver, hvilke BITs, som kan læses ("R" for READ), og 16

17 hvilke BITs, der kan skrives ("W" for WRITE) til. NB! hvis en DMA skal være OFF (eller nulstillet), sættes den til 0. Hvis en DMA derimod skal være ON (eller aktiveres), sættes den til 1. BIT 0-3: BIT 4: BIT 5: BIT 6: BIT 7: BIT 8: BIT 9: DMA til lydkanal 0 til 3 on/off DISK-DMA on/off SPRITE-DMA on/off BLITTER-DMA on/off COPPER-DMA on/off BITPLANE-DMA on/off Denne BIT kaldes for DMA ENABLE (oversat: aktiver DMA) og skal være sat (1) for at DMA'er skal kunne benyttes (kan sammenlignes med en hovedafbryder). Ønsker man af en eller anden grund at slukke alle DMA'er, så nulstiller man denne BIT. Man bør også være opmærksom på, hvis DISK-DMAen og SPRITE-DMAen er on, når du slukker for DMAen, så vil det kun være disse to DMAer, som aktiveres, når du tænder dem igen. BIT 10: BLITTER NASTY. Mere om denne BIT i brev 6 og 7. BIT 11-12: Benyttes ikke. BIT 13: BLITTER ZERO. Mere om denne BIT i brev 6 og 7. BIT 14: BLITTER BUSY. Mere om denne BIT i brev 6 og 7 BIT 15: SET/CLEAR. Dette vil blive forklaret nedenfor. Registret DMACON er lidt specielt når det gælder skrivning. F.eks., hvis du skal aktivere COPPER-DMA, skal du lægge disse data ind i registret på adresse $DFF096: BIT 7 og 15 skal være "1", resten skal være "0". HEXADECIMALT: $8080, BINÆRT: % (Hvis du har glemt omregning mellem HEXADECIMALT og BINÆRT, så læs brev I igen). Når COPPEREN skal slukkes skal BIT 7 være "1", resten skal være "0". HEXADECIMALT: $0080, BINÆRT: % Når du vil slukke for f.eks. BITPLANE-DMAen og SPRITE-DMAen, skal BIT 15 være 0, BIT 5 og 8 skal være 1 og resten være 0. HEXADECIMALT bliver det $0120, BINÆRT % , 17

18 eller som en instruktion: move.w #$0120,$DFF096 Hvis du nu vil aktivisere de samme DMAer igen, ændrer du bare BIT 15 til 1. Altså: move.w #$8120,$DFF096 (eller move.w #% ,$DFF096) Vi vil gerne forklare det en gang til. Det er nemlig sådan, at der findes 4 registre (8 hvis du regner med både READ og WRITE registrene), som fungerer på denne måde, og det er derfor vigtigt, du forstå dette helt: Hvis du sætter BIT 15 til "1" og viser hvilke BITs, der skal påvirkes, så vil AMIGA selv sørge for, at de BITs du har valgt sættes til "1", også. Hvis du derimod sætter BIT 15 til "0", så vil den sætte de af dig valgte BITs til "0". En gang til - men med andre ord: Alle de BITs, som du sætter til "1" får den værdi, som BIT 15 har. Alle andre BITs (som er "0") forbliver uforandrede. Enkelt og let, ikke sandt? OBSERVER! Hvis du skal åbne for en DMAer og slukke for en anden DMA samtidig, skal du skrive til registret to gange - en gang for at lukke for DISK DMA'en, og en gang for at åbne for BLITTER-DMAen på (eksempelvis). 18

19 Forklaring til COPPER-instruktionerne: Studer følgende opsætninger af de to WORDs, som en komplet COPPER-instruktion består af: Første WORD: BIT NR: MOVE WAIT 15 A15 V7 14 A14 V6 13 A13 V5 12 A12 V4 11 A11 V3 10 A10 V2 9 A9 V1 8 A8 V0 7 A7 H8 6 A6 H7 5 A5 H6 4 A4 H5 3 A3 H4 2 A2 H3 1 A1 H Andet WORD: BIT NR: MOVE WAIT 15 D15 BFD 14 D14 MV6 13 D13 MV5 12 D12 MV4 11 D11 MV3 10 D10 MV2 9 D9 MV1 8 D8 MV0 7 D7 MH8 6 D6 MH7 5 D5 MH6 4 D4 MH5 3 D3 MH4 2 D2 MH3 1 D1 MH2 0 D0 0 En Copper-instruktion er altid 4 BYTEs lang (2 WORDs). Vi plejer at dele den i to dele, som vist her: 19

20 dc.w $5001,$FFFE (dc.w = DECLARE WORD) Lad os gå igang med WAIT-instruktionen: I vores forklaring vil vi bruge "W" for at beskrive vertikal venteposition. Med det mener vi, at COPPERen får besked på, at elektronstrålen skal komme til den linie du angiver, før den (COPPERen) henter næste instruktion. "HH" bruges for at beskrive horisontal venteposition for COPPERen. Med det mener vi, at COPPERen får besked på, at elektronstrålen skal komme til et bestemt punkt på den linie du angiver, før den (COPPERen) henter næste instruktion. VVHH,$FFFE VV=$00 til $FF HH=$01 til DF (kun ulige tal kan benyttes) Vi kommer til at bruge værdien $01 som horisontal position i alle WAIT-instruktioner. (Det er punktet længst til venstre på linien.) Venten på horisontale positioner større end $01 vil blive forklaret i brev 12. Når det drejer sig om den vertikale position gælder følgende: Den øverste, hvide linie, du ser på f.eks din WORKBENCH-skærm er ikke linie 0. Det er som regel linie $2C (44 DECIMALT). Det vil sige at elektronstrålen reelt begynder 44 linier længere oppe end den øverste linie, du kan se. Det vil igen sige at den nederste linie på WORKBENCH-skærmen bliver nummer = 300 (WORKBENCH-skærmen er 256 linier høj). Under disse 300 linier ligger yderligere 13 linier - som du delvis ikke kan se - så den totale størrelse på en fuld AMlGA-skærm er 313 linier. COPPERen har derfor et totalt venteområde fra linie 0 til og med linie 312. Det andet WORD i WAIT-instruktionen har man sjældent behov for at ændre. Denne del vil blive forklaret senere. Vi kommer til at bruge samme værdi hele tiden, nemlig: $FFFE FORKLARING AF MOVE-INSTRUKTIONEN MOVE-instruktionen kan kun skrive data til HARDWAREregistrene i området $DFF000 til DFF200. Eksempel: dc.w $180,$0FFF Det første WORD i MOVE-instruktionen skal indeholde adressen. Det andet WORD i MOVE skal indeholde de data du lægger ind på adressen. 20

21 Adressen regnes således ud: $ $DFF000 = $DFF180. Denne adresse skal være et lige tal - næste adresse bliver derfor $DFF182 (en afstand på et WORD). Hvis du derimod skriver sådan (med ulige-tals-adresse): dc.w $0181,$0FFF vil COPPERen tolke den som en WAIT-instruktion i stedet. COPPERen benytter BIT 0 i det første WORD til at skille en WAIT- og en MOVE-instruktion fra hinanden. Den tredie COPPER-instruktion hedder SKIP. Denne instruktion har du praktisk taget aldrig brug for, så vi vil ikke spilde tid på den nu. Den vil blive forklaret i et senere brev. Forklaring til eksemplet i BREV II (side 17): Linie 1: Sluk BITPLANE-, COPPER- og SPRITE-DMAene. Linie 2: Lægger adressen til COPPER-listen ind i al. Linie 3: Lægger indholdet af al ind i $DFF080. Vi må lægge adressen på vores egen COPPER-liste ind i dette register, for at COPPERen skal vide, hvor COPPERlisten befinder sig. Som du ser bruger vi i denne linie LONGWORD, når vi kopierer adressen til al, selv om vi har sagt at du kun kan bruge WORD, når du adresserer HARDWARE-registrene. Dette er en undtagelse. Egentlig er COPPER-pointeren to adresser: $DFF080 (HI) og $DFF082 (LO) Betegnelserne HI og LO står for H\J (engelsk HIGH) adresse, og LAV (engelsk: LOW) adresse. Som du ved er et LONGWORD det samme som to WORDs. BIT 31 til 16 havner således i $DFF080 og repræsenterer de 16 højeste (mest "værdifulde") BITs i den komplette adresse, og BIT 15 til 0 havner i $DFF082 og repræsenterer de 16 laveste (mindst "værdifulde") BITs i den komplette adresse. Linie 4: Aktiviser COPPERen igen. Denne instruktion starter vores egen COPPER-liste. Linie 6: En LABEL. Linie 7: Denne instruktion har vi ikke gennemgået endnu. Det den gør, er at checke BIT 6 (btst = BitTeST) i adressen $BFE001. Hvis BITen er 0 vil den sætte ZERO-flaget til 1. Er BITen 1, sættes ZERO-flaget til 0. Når du trykker på venstre mus-tast, bliver denne BIT i $BFE001 sat til 0. 21

22 Linie 8: Denne BRANCH undersøger om ZERO-flaget er 0, og hvis den er det, så har du ikke trykket på venstre mus-tast, og programmet hopper tilbage til reference-punktet "wait:". Programlinierne 7 og 8 er en vente-funktion, til du har trykket på musen. Linie 10: Sluk COPPER-DMAen. Linie 11: Lægger indholdet af adresse $ ind i a6. (linierne 11 til 13 bliver nærmere forklaret i BREV X. Man kan kort sige at de henter WORKBENCH-skærmen tilbage). Linie 12: Lægger det, som findes på adressen a ind i a1. Linie 13: Lægger det, som findes på adressen al + 38 ind i COPPER-POINTERen. Linie 14: Åbner COPPER-DMAen igen. Linie 15: Afslutter programmet. Linie 17: LABEL til COPPER-listen. Linie 18: WAIT ($01,$90) Linie 19: MOVE $0F00 -> $DFF180 Linie 20: WAIT ($01,$A0) Linie 21: MOVE $0FFF-> $DFF180 Linie 22: WAIT ($01,$A4) Linie 23: MOVE $000F -> $DFF180 Linie 24: WAIT ($01,$AA) Linie 25: MOVE $0FFF -> $DFF180 Linie 26: WAIT ($01,AE) Linie 27: MOVE $0F00 -> $DFF180 Linie 28: WAIT ($01,$BE) Linie 29: MOVE $0000 -> $DFF180 Meget mere og endnu mere udførligt - vil blive forklaret i BREV IV. 22

23 BITPLANE-systemet i AMIGA Vi begynder med at sætte en skærm op: 1 move.w #$01a0,$dff move.w #$1200,$dffl00 4 move.w #0,$dff102 5 move.w #0,$dff104 6 move.w #0,$dff108 7 move.w #0,$dff1Oa 8 9 move.w #$2c81,$dff08e 10 move.w #$f4cl,$dff090 II move.w #$38cl,$dff move.w #$0038,$dff move.w #$00d0,$dffD lea.l copper.a1 17 move.l a1,$dff move.w #$8180,$dff wait: 22 btst #6,$bfe bne wait move.w #$0080,$dff move.l $4,a6 28 move.l 156(a6),a1 29 move.l 38(a1),$dff move.w #$80a0,$dff rts copper: 36 dc.w $2c01,$fffe 37 dcw $0100,$ dcw $00e0,$ dc.w $00e2,$ dc.w $0180,$ dc.w $0182,$0ff dc.w $ffdf,$fffe dcw $2c01,$fffe dc.w $0100,$ dcw $ffff,$fffe 23

24 Her følger en kort forklaring til hver instruktion. I BREV IV vil alt blive mere udførligt forklaret. Tag det derfor ikke så tungt, hvis du ikke forstår alt i første forsøg. Linie 1: Luk for BITPLANE-, COPER- og SPRITE-DMAerne. Linie 3: Sætter LORES - lav opløsning - (320 * 256), og et BITPLANE, altså 2 farver. Linie 4: Sætter SCROLL-værdi til 0. Linie 5: Sætter BITPLANE PRIORITY til 0 Linie 6: Sætter MODULO for ODD BITPLANES til 0. Linie 7: Sætter MODULO for EVEN BITPLANES til 0. Linie 9: Sætter øverste, venstre hjørne på skærmen til position: Y (vertikalt) = $2C og X (horisontalt) = $81. Linie 10: Sætter nederste højre hjørne på skærmen til position: Y (horisontalt) = $F4 og X (vertikalt) = $C1. Linie 11: Lægger $38 til Y-positionen, altså $fe + $38 = $12C. X-positionen bliver den samme. Linie 13: Sætter DATAFETCH START til $0038. Linie 14: Sætter DATAFETCH STOP til $00d0. Linie 16: Lægger copper-listen's adresse ind i al. Linie 17: Lægger værdien, som er i al ind i COPPER-POINTERen. Linie 19: Aktiviserer BITPLANE- og COPPER-DMAerne igen (ikke SPRITE-DMAen) Linie 21: EN LABEL. Linie 22: Kontrollerer om venstre mustast trykkes ned. Linie 23: Hvis der ikke er trykket på mustasten, så hop tilbage til "wait:". Linie 25: Slukker COPPER-DMAen. Linie 27: Henter (Husk egentlig er det: kopierer) tallet, som ligger i adresse $ ind i a6. Linie 28: Henter tallet, som ligger på den adresse som a6 indeholder + 156, ind i a1. Linie 29: Henter tallet, som ligger på den adresse som a1 indeholder + 38 ind i COPPER-POINTERen ($DFF080). 24

25 Linie 31: Åbner COPPER- og SPRITE-DMAen igen. Linie 33: Afslutter. Linie 35: LABELen til COPPER-listen. Linie 36: WAIT ($01,$2C) Linie 37: MOVE $1200 -> $DFF100 Linie 39: MOVE $0000 -> $DFF0E0 Linie 40: MOVE $0000 -> $DFF0E2 Linie 42: MOVE $0000 -> $DFF180 (sort baggrund) Linie 43: MOVE $0FF0 -> $DFF182 (gul forgrund) Linie 45: WAIT ($DF,$FF). Dette medfører at maskinen slår om til PAL AMIGA med 256 linier. I USA, hvor man har et andet system (NTSC), har AMIGA kun 200 linier). Linie 47: WAIT ($01,$2C). Den vertikale position ($2C) vil her svare til $251252C, fordi vi udførte PLA-WAIT på linien ovenfor. Linie 49: MOVE $0200 -> $DFF100 Linie 51: Stopper COPPERen og hopper tilbage til begyndelsen af COPPER-listen (udfører den endnu engang). 25

26 LØSNINGER TIL BREV II Opgave 0201: Opgave 0202: Opgave 0203: Fordi der findes 8 SPRITE DMAer, 4 AUDIO DMAer, 4 BLITTER DMA, 1 DISK DMA, 6 BITPLANE DMAer og 1 COPPER DMA. En SUBRUTINE er en delrutine eller et underprogram, som udfører en speciel opgave. I et WORD er der to BYTEs lig med 16 BITs. Opgave 0204: I et LONGWORD er der 4 BYTEs lig med 32 BITs. Opgave 0205: Opgave 0206: Opgave 0207: Opgave 0208: Opgave 0209: Opgave 0210: I MC findes der 8 ADRESSEREGISTRE, og de hedder A0, A1, A2, A3, A4, A5, A6 og A7. I MC findes der 8 DATAREGISTRE, og de hedder D0, D1, D2, D3, D4, D5, D6 og D7. Instruktionen lægger det, som findes i adresse $10 ind i ADRESSEREGISTER 3. MSB betyder MOST SIGNIFICANT BIT, og angiver den højeste værdi-bit i en BITgruppe. LSB betyder LEAST SIGNIFICANT BIT, og angiver den laveste værdi-bit i en BITgruppe. COPPERen har 3 instruktioner og de hedder MOVE, WAIT og SKIP. En elektronkanon er den stråle, som tegner billedet på skærmen. 26

27 KOMMENTARER TIL BREV III Dette er et langt brev! Her er meget at gennemgå. Det er heller ikke alt som er lige let, men med lidt tålmodighed kommer du langt. Når man skriver et brevkursus i et så omfattende emne som AMIGA, så sker det at vi må hoppe lidt frem og tilbage i forklaringerne. Skulle der være noget du ikke forstår, eller som du synes er noget rodet, så vent til du modtager BREV IV, det forklarer meget af det, som måske er lidt "tåget" i øjeblikket. Det er meget vigtigt at du bruger K-SEKA (eller en anden assembler) og øver dig. Skriv alle eksempler ind og prøv at ændre på dem. Hvis programmet låser sig fast, så prøv igen. Det er utrolig så meget man lærer af sine fejl. Hvad du end finder på - GIV IKKE OP! Med venlig hilsen DATASKOLEN Carsten Nordenhof Mekanisk, fotografisk eller anden gengivelse af dette brev eller dele heraf er ikke tilladt iflg dansk lovgivning om ophavsret. Copyright på navnet AMIGA tilhører COMMODORE COMPUTERS. 27

Programmering i maskinkode på AMIGA

Programmering i maskinkode på AMIGA Programmering i maskinkode på AMIGA A.Forness & N.A.Holten Copyright 1989 ARCUS Copyright 1989 DATASKOLEN Hæfte 4 Indhold Maskinkode III Bitmap Farveregistre Bitplane DMA tidsforbrug Overscan DATASKOLEN

Læs mere

Programmering i maskinkode på AMIGA

Programmering i maskinkode på AMIGA Programmering i maskinkode på AMIGA A.Forness & N.A.Holten Copyright 1989 ARCUS Copyright 1989 DATASKOLEN Hæfte 2 Indhold DMA-kanaler Time Slot Allocation Copper Maskinkode-standarder med K-SEKA DATASKOLEN

Læs mere

Programmering i maskinkode på AMIGA

Programmering i maskinkode på AMIGA Programmering i maskinkode på AMIGA A.Forness & N.A.Holten Copyright 1989 ARCUS Copyright 1989 DATASKOLEN Hæfte 6 Indhold Logisk Matematik Blitter Modulo Blitter Object Tabel over Blitterens logiske funktioner

Læs mere

Programmering i maskinkode på AMIGA

Programmering i maskinkode på AMIGA Programmering i maskinkode på AMIGA A.Forness & N.A.Holten Copyright 1989 ARCUS Copyright 1989 DATASKOLEN Indhold Blitter Copper-cycling Fonts Scrollning Maskinkode VI DATASKOLEN Postboks 62 Nordengen

Læs mere

Programmering i maskinkode på AMIGA

Programmering i maskinkode på AMIGA Programmering i maskinkode på AMIGA A.Forness & N.A.Holten Copyright 1989 ARCUS Copyright 1989 DATASKOLEN Hæfte 5 Indhold Sprites Follow Me Maskinkode IV DATASKOLEN Postboks 62 Nordengen 18 2980 Kokkedal

Læs mere

Programmering i maskinkode på AMIGA

Programmering i maskinkode på AMIGA Programmering i maskinkode på AMIGA A.Forness & N.A.Holten Copyright 1989 ARCUS Copyright 1989 DATASKOLEN Hæfte 10 Indhold Operativsystemet Library Hukommelses-allokering Læsning og skrivning af filer

Læs mere

Programmering i maskinkode på AMIGA

Programmering i maskinkode på AMIGA Programmering i maskinkode på AMIGA A. Forness & N. A. Holten Copyright 1989 ARCUS Copyright 1989 DATASKOLEN Hæfte 11 Indhold Ham CIA-chips Aflæsning af musen Parallelporten Maskinkode X DATASKOLEN Postboks

Læs mere

Programmering i maskinkode på AMIGA

Programmering i maskinkode på AMIGA Programmering i maskinkode på AMIGA A.Forness & N.A.Holten Copyright 1989 ARCUS Copyright 1989 DATASKOLEN Hæfte 1 Indhold Introduktion Det binære talsystem Det hexadecimale talsystem Assemblerens funktion

Læs mere

DATASKOLEN Postboks 62 Nordengen 18 2980 Kokkedal. Programmering i maskinkode på AMIGA

DATASKOLEN Postboks 62 Nordengen 18 2980 Kokkedal. Programmering i maskinkode på AMIGA Programmering i maskinkode på AMIGA A.Forness & N.A.Holten Copyright 1989 ARCUS Copyright 1989 DATASKOLEN Indhold Interrupts Keyboard Interrupt Maskinkode VIII DATASKOLEN Postboks 62 Nordengen 18 2980

Læs mere

Programmering i maskinkode på AMIGA

Programmering i maskinkode på AMIGA Programmering i maskinkode på AMIGA A.Forness & N.A.Holten Copyright 1989 ARCUS Copyright 1989 DATASKOLEN Hæfte 8 Indhold Audio Sampling Maskinkode VII MIDI DATASKOLEN Postboks 62 Nordengen 18 2980 Kokkedal

Læs mere

Programmering i maskinkode på AMIGA

Programmering i maskinkode på AMIGA Programmering i maskinkode på AMIGA A.Forness & N.A.Holten Copyright 1989 ARCUS Copyright 1989 DATASKOLEN Hæfte 12 Indhold Hires Interlace Wave Rotering Demo-eksempler Vector-grafik DATASKOLEN Postboks

Læs mere

Talsystemer I V X L C D M 1 5 10 50 100 500 1000. Hvad betyder halvanden??. Kan man også sige Halvtredie???

Talsystemer I V X L C D M 1 5 10 50 100 500 1000. Hvad betyder halvanden??. Kan man også sige Halvtredie??? Romertal. Hvordan var de struktureret?? Systematisk?? I V X L C D M 1 5 10 50 100 500 1000 Regler: Hvis et lille tal skrives foran et stort tal trækkes tallet fra: IV = 5-1 = 4 Hvis et lille tal skrives

Læs mere

Boolsk algebra For IT studerende

Boolsk algebra For IT studerende Boolsk algebra For IT studerende Henrik Kressner Indholdsfortegnelse 1 Indledning...2 2 Logiske kredsløb...3 Eksempel:...3 Operatorer...4 NOT operatoren...4 AND operatoren...5 OR operatoren...6 XOR operatoren...7

Læs mere

ITS MP 013. Talsystemer V009. Elevens navn. IT Skolen Boulevarden 19A-C 7100 Vejle Tel.:+45 76 42 62 44

ITS MP 013. Talsystemer V009. Elevens navn. IT Skolen Boulevarden 19A-C 7100 Vejle Tel.:+45 76 42 62 44 ITS MP 013 V009 Elevens navn IT Skolen Boulevarden 19A-C 7100 Vejle Tel.:+45 76 42 62 44 ITS MP 013 Udarbejdet af Søren Haahr, juni 2010 Copyright Enhver mangfoldiggørelse af tekst eller illustrationer

Læs mere

(Positions) Talsystemer

(Positions) Talsystemer (Positions) Talsystemer For IT studerende Hernik Kressner Indholdsfortegnelse Indledning...2 Positions talsystem - Generelt...3 For decimalsystemet gælder generelt:...4 Generelt for et posistionstalsystem

Læs mere

LCD Character display Intro

LCD Character display Intro LCD Character display Intro Der findes flere typer af LCD karakter-displays, fra forskellige firmaer. Her er vist en type, der er blå. Pins: Nummer 1 fra venstre Her er vist en nærmere beskrivelse af de

Læs mere

Boolsk algebra For IT studerende

Boolsk algebra For IT studerende Boolsk algebra For IT studerende Henrik Kressner Indholdsfortegnelse Indledning...3 Logiske kredsløb...4 Eksempel:...4 Operatorer...4 NOT operatoren...5 AND operatoren...5 OR operatoren...6 XOR operatoren...7

Læs mere

De rigtige reelle tal

De rigtige reelle tal De rigtige reelle tal Frank Villa 17. januar 2014 Dette dokument er en del af MatBog.dk 2008-2012. IT Teaching Tools. ISBN-13: 978-87-92775-00-9. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM534 Rolf Fagerberg Mål Målet for disse slides er at beskrive, hvordan tal repræsenteres som bitmønstre i computere. Dette emne er et uddrag af kurset DM548 Computerarkitektur og

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM534 Rolf Fagerberg 1 / 18 Mål Målet for disse slides er at beskrive, hvordan tal repræsenteres som bitmønstre i computere. Dette emne er et uddrag af kurset DM548 Computerarkitektur

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM534 Rolf Fagerberg Bitmønstre 01101011 0001100101011011... Bitmønstre skal fortolkes for at have en betydning: Tal (heltal, decimaltal (kommatal)) Bogstaver Computerinstruktion

Læs mere

matematik Demo excel trin 1 preben bernitt bernitt-matematik.dk 1 excel 1 2007 by bernitt-matematik.dk

matematik Demo excel trin 1 preben bernitt bernitt-matematik.dk 1 excel 1 2007 by bernitt-matematik.dk matematik excel trin 1 preben bernitt bernitt-matematik.dk 1 excel 1 2007 by bernitt-matematik.dk matematik excel 1 1. udgave som E-bog 2007 by bernitt-matematik.dk Kopiering af denne bog er kun tilladt

Læs mere

Bits, bit operationer, integers og floating point

Bits, bit operationer, integers og floating point Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter

Læs mere

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Programmering Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Oversigt Undervisningen Hvad er programmering Hvordan er et program organiseret? Programmering og fysik Nobelprisen

Læs mere

Det endelige tal fremkommer ved at opstille bogstavkombinationer, hvor følgende regler gælder:

Det endelige tal fremkommer ved at opstille bogstavkombinationer, hvor følgende regler gælder: Talsystemer Et talsystem er betegnelsen for den måde, hvorpå tal kan skrives ud fra et grundtal. I dag anvendes i de fleste lande titalssystemet, hvor tallets placering har en værdi (positionssystem),

Læs mere

DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E

DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E Vejledende løsninger til

Læs mere

Introduktion til EXCEL med øvelser

Introduktion til EXCEL med øvelser Side 1 af 10 Introduktion til EXCEL med øvelser Du kender en almindelig regnemaskine, som kan være til stort hjælp, når man skal beregne resultater med store tal. Et regneark er en anden form for regnemaskine,

Læs mere

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit.

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit. Kapitel 20: Talsystemer 20 Resumé af talsystemer... 344 Indtastning og omregning af talsystemer... 345 Udførelse af matematiske beregninger med hexadecimale og binære tal... 346 Sammenligning eller manipulation

Læs mere

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) Efterår 2009 1 Simpel aritmetik på maskinniveau I SCO, appendix A, er det beskrevet, hvordan man adderer ikke-negative heltal

Læs mere

matematik Demo excel trin 2 bernitt-matematik.dk 1 excel 2 2007 by bernitt-matematik.dk

matematik Demo excel trin 2 bernitt-matematik.dk 1 excel 2 2007 by bernitt-matematik.dk matematik excel trin 2 bernitt-matematik.dk 1 excel 2 2007 by bernitt-matematik.dk matematik excel 2 1. udgave som E-bog 2007 by bernitt-matematik.dk Kopiering af denne bog er kun tilladt efter aftale

Læs mere

Programmering for begyndere Lektion 2. Opsamling mm

Programmering for begyndere Lektion 2. Opsamling mm Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger

Læs mere

Boolesk Algebra og det binære talsystem - temahæfte informatik. Oprindelse.

Boolesk Algebra og det binære talsystem - temahæfte informatik. Oprindelse. Boolesk Algebra og det binære talsystem - temahæfte informatik. I dette hæfte arbejdes der med to-tals systemet og logiske udtryk. Vi oplever at de almindelige regneregler også gælder her, og vi prøver

Læs mere

Mircobit Kursus Lektion 5 (Du skal her vælge Lets Code og nederst Microsoft Block Editor.)

Mircobit Kursus Lektion 5   (Du skal her vælge Lets Code og nederst Microsoft Block Editor.) Mircobit Kursus Lektion 5 http://microbit.org/ (Du skal her vælge Lets Code og nederst Microsoft Block Editor.) Vi laver en variabel point til at holde styr på pointene. Af en mystisk grund kunne man ikke

Læs mere

How to do in rows and columns 8

How to do in rows and columns 8 INTRODUKTION TIL REGNEARK Denne artikel handler generelt om, hvad regneark egentlig er, og hvordan det bruges på et principielt plan. Indholdet bør derfor kunne anvendes uden hensyn til, hvilken version

Læs mere

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003 Side 1 af 8 Dato: 14-05-2003 Til Sigurd Som aftalt vil jeg her fremsende vores program til vores 80C535 kit og display. Det gik jo ud på at vi skulle starte med at få den til at intialiserer displayet,

Læs mere

Klasse 1.4 Michael Jokil 03-05-2010

Klasse 1.4 Michael Jokil 03-05-2010 HTX I ROSKILDE Afsluttende opgave Kommunikation og IT Klasse 1.4 Michael Jokil 03-05-2010 Indholdsfortegnelse Indledning... 3 Formål... 3 Planlægning... 4 Kommunikationsplan... 4 Kanylemodellen... 4 Teknisk

Læs mere

DM13-1. Obligatorisk opgave E.05. Jacob Aae Mikkelsen

DM13-1. Obligatorisk opgave E.05. Jacob Aae Mikkelsen DM13-1. Obligatorisk opgave E.05 Jacob Aae Mikkelsen - 191076 26. september 2005 Indhold Analyse af problemstillingen........................ 2 Spørgsmål 1................................. 3 Spørgsmål

Læs mere

Programmeringskursus Kursusaften 3. Programmering for begyndere Brug af Arduino. Display. Kursusaften 3 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Programmeringskursus Kursusaften 3. Programmering for begyndere Brug af Arduino. Display. Kursusaften 3 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Programmering for begyndere Brug af Arduino Programmeringskursus Display EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Programmering for begyndere Brug af Arduino Programmeringskursus Sidste gang havde vi

Læs mere

DM13-3. Obligatorisk opgave E.05 Håndoptimering af SPARC assembler-kode

DM13-3. Obligatorisk opgave E.05 Håndoptimering af SPARC assembler-kode - 3. Obligatorisk opgave E.05 Håndoptimering af SPARC assembler-kode Jacob Aae Mikkelsen - 191076 12. december 2005 1 Indhold 1 Opgave beskrivelse 2 2 Muligheder for optimering 2 2.1 efter branch.........................

Læs mere

CPUer og maskinkode DM534. Rolf Fagerberg

CPUer og maskinkode DM534. Rolf Fagerberg CPUer og maskinkode DM534 Rolf Fagerberg CPUers opbygning En CPU er bygget op af elektriske kredsløb (jvf. sidste forelæsning), som kan manipulere bits. En CPU manipulerer flere bits ad gangen, deres antal

Læs mere

Lektion 3 Sammensætning af regnearterne

Lektion 3 Sammensætning af regnearterne Lektion Sammensætning af regnearterne Indholdsfortegnelse Indholdsfortegnelse... Plus, minus, gange og division... Negative tal... Parenteser og brøkstreger... Potenser og rødder... Lektion Side 1 Plus,

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM526 Rolf Fagerberg, 2009 Bitmønstre 01101011 0001100101011011... Bitmønstre skal fortolkes for at have en betydning: Tal (heltal, kommatal) Bogstaver Computerinstruktion (program)

Læs mere

Det er let og enkelt at udfylde det nye indrejseprogram. Se vejledning i nedenstående: Trin 3. Gem Deres ansøgningsnummer

Det er let og enkelt at udfylde det nye indrejseprogram. Se vejledning i nedenstående: Trin 3. Gem Deres ansøgningsnummer Vejledning i de nye indrejseregler til USA Den 12. januar 2009 trådte de amerikanske myndigheders nye indrejseprogram, Electronic System for Travel Authorization (ESTA) i kraft. Dette betyder at alle rejsende

Læs mere

Baggrundsnote om logiske operatorer

Baggrundsnote om logiske operatorer Baggrundsnote om logiske operatorer Man kan regne på udsagn ligesom man kan regne på tal. Regneoperationerne kaldes da logiske operatorer. De tre vigtigste logiske operatorer er NOT, AND og. Den første

Læs mere

Selektro CCM App. Brugermanual. Selektro CCM App Brugermanual DK. Selektro A/S, Erhvervsvej 29-35, DK-9632 Møldrup. Copyright Selektro A/S 2017

Selektro CCM App. Brugermanual. Selektro CCM App Brugermanual DK. Selektro A/S, Erhvervsvej 29-35, DK-9632 Møldrup. Copyright Selektro A/S 2017 Selektro CCM App Brugermanual Selektro A/S, Erhvervsvej 29-35, DK-9632 Møldrup Selektro CCM App Brugermanual DK Copyright Selektro A/S 2017 0881-1344006 V01 Indhold 1 Beskrivelse... 1 1.1 Funktion... 2

Læs mere

uprocessorens hardware

uprocessorens hardware uprocessorens hardware 8080 Architecture Kernen i en processor er ALUen. Det er den som kan udfører simple regne operationer. De tal den arbejdermed gemmes i en række registre. Når et tal skal hentes eller

Læs mere

Edb-tekstbehandling, præsentation mm

Edb-tekstbehandling, præsentation mm Edb-tekstbehandling, præsentation mm I denne lektion skal du: - hente kopier et skærmbillede og sætte det ind i et dokument - beskære billedet, så det passer til dit dokument Der findes specielle programmer

Læs mere

Åbn Paint, som er et lille tegne- og billedbehandlingsprogram der findes under Programmer i mappen Tilbehør. Åbn også Word.

Åbn Paint, som er et lille tegne- og billedbehandlingsprogram der findes under Programmer i mappen Tilbehør. Åbn også Word. 75 Paint & Print Screen (Skærmbillede med beskæring) Åbn Paint, som er et lille tegne- og billedbehandlingsprogram der findes under Programmer i mappen Tilbehør. Åbn også Word. 1. Minimer straks begge

Læs mere

Mark Jeays simple solution to the Rubik s cube oversat og redigeret af Jess Bonde. -

Mark Jeays simple solution to the Rubik s cube oversat og redigeret af Jess Bonde. - Mark Jeays simple solution to the Rubik s cube oversat og redigeret af Jess Bonde. jess@rubiks.dk - http://www.rubiks.dk Trin 0 Introduktion & notation Trin 1 De tre øverste sidestykker Trin 2 Hjørner

Læs mere

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje.

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje. Maple Dette kapitel giver en kort introduktion til hvordan Maple 12 kan benyttes til at løse mange af de opgaver, som man bliver mødt med i matematiktimerne på HHX. Skærmbilledet Vi starter med at se lidt

Læs mere

Fable Kom godt i gang

Fable Kom godt i gang Fable Kom godt i gang Vers. 1.3.1 Opdateret: 29-08-2018 Indholdsfortegnelse 1. Installer programmet 3 2. Pak robotten ud 5 3. I gang med at programmere 6 4. Programmér Fable til at køre fra 90 til -90

Læs mere

Blockprog Rev1.0. Block programmering CS1/CJ1. Qiuck guide OMRON

Blockprog Rev1.0. Block programmering CS1/CJ1. Qiuck guide OMRON Blockprog Rev1.0 Block programmering CS1/CJ1 Qiuck guide OMRON Indholdsfortegnelse 1. SPECIFIKATION... 3 2. PROGRAMMERINGS INSTRUKTIONER.... 4 3. BLOK PROGRAMMERING... 5 3.1. BPRG OG BEND... 5 4. BETINGELSES

Læs mere

Tal i det danske sprog, analyse og kritik

Tal i det danske sprog, analyse og kritik Tal i det danske sprog, analyse og kritik 0 Indledning Denne artikel handler om det danske sprog og dets talsystem. I første afsnit diskuterer jeg den metodologi jeg vil anvende. I andet afsnit vil jeg

Læs mere

Fable Kom godt i gang

Fable Kom godt i gang Fable Kom godt i gang Opdateret: 26-03-2018 Indholdsfortegnelse 1. Først skal du installere programmet på din computer 3 2. Når programmet er installeret er du klar til at pakke robotten ud 4 3. Nu er

Læs mere

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau)

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau) Matematik i WordMat En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau) Indholdsfortegnelse 1. Introduktion... 3 2. Beregning... 4 3. Beregning med brøker...

Læs mere

REDIGERING AF REGNEARK

REDIGERING AF REGNEARK REDIGERING AF REGNEARK De to første artikler af dette lille "grundkursus" i Excel, nemlig "How to do it" 8 og 9 har været forholdsvis versionsuafhængige, idet de har handlet om ting, som er helt ens i

Læs mere

Motto-Captura ApS, 2006. Ordblinde PDA. Lyt - lær - husk. Motto-Captura ApS, 2006 www.motto-catura.eu info@motto-captura.eu

Motto-Captura ApS, 2006. Ordblinde PDA. Lyt - lær - husk. Motto-Captura ApS, 2006 www.motto-catura.eu info@motto-captura.eu p1 Ordblinde PDA Lyt - lær - husk www.motto-catura.eu info@motto-captura.eu p2 p3 Vi håber meget, at du vil få glæde af løsningen. Du må meget gerne sende os forslag eller ringe til os. p4 Start Når du

Læs mere

DM13-1. Obligatoriske Opgave - Kredsløbs design

DM13-1. Obligatoriske Opgave - Kredsløbs design DM13-1. Obligatoriske Opgave - Kredsløbs design Jacob Christiansen moffe42@imada.sdu.dk Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense 1. Opgaven Opgaven består i at designe et kredsløb,

Læs mere

Programmering C RTG - 3.3 09-02-2015

Programmering C RTG - 3.3 09-02-2015 Indholdsfortegnelse Formål... 2 Opgave formulering... 2 Krav til dokumentation af programmer... 3 ASCII tabel... 4 Værktøjer... 5 Versioner af ASCII tabel... 6 v1.9... 6 Problemer og mangler... 6 v2.1...

Læs mere

Hukommelsesspil. Introduktion. Scratch

Hukommelsesspil. Introduktion. Scratch Scratch 2 Hukommelsesspil All Code Clubs must be registered. By registering your club we can measure our impact, and we can continue to provide free resources that help children learn to code. You can

Læs mere

1 Bits og Bytes Computere er fortræffelige til at opbevare data og behandle data Af data vil vi i dette afsnit primært beskæftige os med billeder, tekst og lyd, og se på, hvordan sådanne data lagres i

Læs mere

DATALOGI 1E. Skriftlig eksamen fredag d. 16. januar 2004

DATALOGI 1E. Skriftlig eksamen fredag d. 16. januar 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen fredag d. 16. januar 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

Introduktion til Calc Open Office med øvelser

Introduktion til Calc Open Office med øvelser Side 1 af 8 Introduktion til Calc Open Office med øvelser Introduktion til Calc Open Office... 2 Indtastning i celler... 2 Formler... 3 Decimaler... 4 Skrifttype... 5 Skrifteffekter... 6 Justering... 6

Læs mere

Vejledning INSTALLATION AF ZHC5010 BETJENINGSTRYK MED FIBARO HOME CENTER. ZHC5010 Firmware Version: 1.0

Vejledning INSTALLATION AF ZHC5010 BETJENINGSTRYK MED FIBARO HOME CENTER. ZHC5010 Firmware Version: 1.0 Vejledning INSTALLATION AF ZHC5010 BETJENINGSTRYK MED FIBARO HOME CENTER. ZHC5010 Firmware Version: 1.0 Indledning Denne vejledning beskriver hvordan det er muligt at oprette Z-Home Controls ZHC5010 Betjeningstryk

Læs mere

Encoding:...1 Et tegn sæt (character set):...1 UTF-8 og UTF-16 (Unicode):...2

Encoding:...1 Et tegn sæt (character set):...1 UTF-8 og UTF-16 (Unicode):...2 Encoding:...1 Et tegn sæt (character set):...1 UTF-8 og UTF-16 (Unicode):...2 Encoding: Vi har tidligere set på spørgsmålet om et XML dokuments encoding. Det er generelt altid en god ide at gemme et dokument

Læs mere

Løsning af simple Ligninger

Løsning af simple Ligninger Løsning af simple Ligninger Frank Nasser 19. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk:

Læs mere

Der er felter, og på hvert af disse felter har tårnet træk langs linjen og træk langs rækken.

Der er felter, og på hvert af disse felter har tårnet træk langs linjen og træk langs rækken. SJOV MED SKAK OG TAL Af Rasmus Jørgensen Når man en sjælden gang kører træt i taktiske opgaver og åbningsvarianter, kan det være gavnligt at adsprede hjernen med noget andet, fx talsjov, og heldigvis byder

Læs mere

Eksamen dcomnet Q2/2010. Navn

Eksamen dcomnet Q2/2010. Navn 2582 Eksamen dcomnet Q2/2010 ID Navn Example I A32-prg1 Betragt følgende program skrevet i IA-32 symbolsk maskinsprog:.section.data x:.long 2 r:.long 27.section.text.globl _start _start: pushl x movl $0,%ebx

Læs mere

MYLOQ 1101 Kodecylinder

MYLOQ 1101 Kodecylinder MYLOQ 1101 Kodecylinder Brugsanvisning DK Vigtig information før anvending Kodecylinderen skal aktiveres før brug (se side 3). En administrationskode skal tilføjes. Vær sikker på at få skrevet den nye

Læs mere

DTP MED WORD af listemageren

DTP MED WORD af listemageren DTP MED WORD af listemageren dtp med word: en billede-til-kant-publikation word er, som jeg har været inde på en del gange i andre sammenhænge, først og fremmest et tekstbehandlingsprogram (og et glimrende

Læs mere

Grundlæggende Matematik

Grundlæggende Matematik Grundlæggende Matematik Hayati Balo, AAMS August 2012 1. Matematiske symboler For at udtrykke de verbale udsagn matematisk korrekt, så det bliver lettere og hurtigere at skrive, indføres en række matematiske

Læs mere

Kom godt i gang med Fable-robotten

Kom godt i gang med Fable-robotten Kom godt i gang med Fable-robotten 1. Først skal du installere programmet på din computer. Gå ind på shaperobotics.com og under support vælger du download: Her vælger du, under PC App om du kører Windows

Læs mere

Dansk El-montage manual Portautomatik

Dansk El-montage manual Portautomatik Dansk El-montage manual Portautomatik (med fysiske ende stop) Terminaler: Power Portstyring 1 2 Power input 220/230Vac. Kabeldim. 3x1.5 PVIKJ eller lign. 3 4 Advarselslampe. Udgang 230Vac/20W. Signalet

Læs mere

SIKRING. KC KeySafe. Sikker opbevaring af nøgler! - et sikkert valg...

SIKRING. KC KeySafe. Sikker opbevaring af nøgler! - et sikkert valg... SIKRING KC KeySafe Sikker opbevaring af nøgler! - et sikkert valg... ELEKTRONISK DIGITAL KOMBINATIONSLÅS RUNNER GENERELLE NOTER (3. UDGAVE) TYPER DER FINDES 4 VERSIONER: NORMAL (V.01) MED KODE TIL BRUG

Læs mere

ALMINDELIGT ANVENDTE FUNKTIONER

ALMINDELIGT ANVENDTE FUNKTIONER ALMINDELIGT ANVENDTE FUNKTIONER I dette kapitel gennemgås de almindelige regnefunktioner, samt en række af de mest nødvendige redigerings- og formateringsfunktioner. De øvrige redigerings- og formateringsfunktioner

Læs mere

Vejledning i brugen af det digitale plantesøgningsprogram

Vejledning i brugen af det digitale plantesøgningsprogram Vejledning i brugen af det digitale plantesøgningsprogram Opsætning af pc Brugen af det digitale plantesøgningsprogram og kortet forudsætter at din computer tillader popups fra netadressen www.gis.slnet.dk

Læs mere

Oprids over grundforløbet i matematik

Oprids over grundforløbet i matematik Oprids over grundforløbet i matematik Dette oprids er tænkt som en meget kort gennemgang af de vigtigste hovedpointer vi har gennemgået i grundforløbet i matematik. Det er en kombination af at repetere

Læs mere

Spillernavn Klub Transfer-sum Ole Madsen Skævinge 67.000 kr Otto Skævben Døllefjelde 9.000 kr Lars Larsen Sengeløse 187.000 kr Viggo Lund KGB 885 kr

Spillernavn Klub Transfer-sum Ole Madsen Skævinge 67.000 kr Otto Skævben Døllefjelde 9.000 kr Lars Larsen Sengeløse 187.000 kr Viggo Lund KGB 885 kr Word-6: Tabulatorer Tabulatorer i tekstbehandling bruges til at lave opstillinger af den slags, hvor tingene står pænt under hinanden. Tit forsøger folk at lave noget lignende ved at bruge mellemrums-tasten

Læs mere

DUNE HD 102 Indhold DUNE HD HDMI WIFI Modtageren Tændt Slukket USB port AV OUT

DUNE HD 102 Indhold DUNE HD HDMI WIFI Modtageren Tændt Slukket USB port AV OUT Indhold DUNE HD TV-102 modtagerboks Strømforsyning HDMI-kabel AV-kabel (anvendes, hvis dit TV ikke har HDMI men kun scart-indgang) IR-øje (anvendes, hvis fjernbetjeningen ikke kan se boksen) Fjernbetjening

Læs mere

Introduktion til CD ere og Arkivdeling Gammel Dok - September-oktober 2003. Jonas Christiansen Voss

Introduktion til CD ere og Arkivdeling Gammel Dok - September-oktober 2003. Jonas Christiansen Voss Introduktion til CD ere og Arkivdeling Gammel Dok - September-oktober 2003 Jonas Christiansen Voss 2. marts 2004 Indhold 1 CD ere 2 1.1 Brænde dokumenter til CD....................... 2 1.2 Disk Copy.................................

Læs mere

Specielle tegn. Specielle tegn. Specielle tegn...1 Indhold:...1 Teori og praksis...1 Koder...2 Brug af symboler...5

Specielle tegn. Specielle tegn. Specielle tegn...1 Indhold:...1 Teori og praksis...1 Koder...2 Brug af symboler...5 Siede 1 af 6 Specielle tegn Indhold: Specielle tegn...1 Indhold:...1 Teori og praksis...1 Koder...2 Brug af symboler...5 Teori og praksis Man kan ind i mellem få brug for at kunne skrive specielle tegn.

Læs mere

Elementær Matematik. Mængder og udsagn

Elementær Matematik. Mængder og udsagn Elementær Matematik Mængder og udsagn Ole Witt-Hansen 2011 Indhold 1. Mængder...1 1.1 Intervaller...4 2. Matematisk Logik. Udsagnslogik...5 3. Åbne udsagn...9 Mængder og Udsagn 1 1. Mængder En mængde er

Læs mere

Kl. mikrobiologisk afdeling Side 1 af 15 Hvidovre Hospital vers.1.6

Kl. mikrobiologisk afdeling Side 1 af 15 Hvidovre Hospital vers.1.6 Kl. mikrobiologisk afdeling Side 1 af 15 Indholdsfortegnelse: Generelt om WWBakt...3 Brugere...3 Anvendelse af patientoplysninger....3 Adgang til programmet...3 Anbefalet skærmindstilling....3 Log på programmet...4

Læs mere

Generel brugsvejledning Ud over de specielle funktioner, er der en række generelle ting du skal vide.

Generel brugsvejledning Ud over de specielle funktioner, er der en række generelle ting du skal vide. Indledning M90 terminalen er det nyeste inden for håndholdte scannere. M90 terminalen kan benyttes til statusoptælling i Hands Satellite Statussystem og til vareflytning i Hands Satellite Lagersystem.

Læs mere

Scratch. - introduktionshæfte

Scratch. - introduktionshæfte Scratch - introduktionshæfte Opret bruger 2 Det første, du skal gøre er at oprette dig som bruger, så dine projekter bliver gemt. Gå ind på scratch.mit.edu/ Vælg knappen Meld dig ind i Scratch i den øverste

Læs mere

Det binære talsystem og lidt om, hvordan computeren virker

Det binære talsystem og lidt om, hvordan computeren virker Det binære talsystem og lidt om, hvordan computeren virker Det binære talsystem...2 Lidt om, hvorledes computeren anvender det binære talsystem...5 Lyst til at lege med de binære tal?...7 Addition:...7

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Measuring ability and aptitude. Forberedelsesguide

Measuring ability and aptitude. Forberedelsesguide Forberedelsesguide Indhold Måling af evner, intelligens Generel introduktion Test 1 Test 2 Test 3 Test 4: Test 5: Ræsonnement Opfattelseshastighed Talhastighed -nøjagtighed Sproglig forståelse Spatial

Læs mere

Digital Choice 12 + MERE, MERE, MERE!

Digital Choice 12 + MERE, MERE, MERE! MERE, MERE, MERE! Digital Choice Gå ind på mytpchoice.dk for at downloade flere minikategorier. Der er mere end 100 minikategorier at vælge mellem, bl.a. Helte & Heltinder, Science Fiction & Fantasy, Rejser

Læs mere

Regneark II Calc Open Office

Regneark II Calc Open Office Side 1 af 10 Gangetabel... 2 Udfyldning... 2 Opbygning af gangetabellen... 3 Cellestørrelser... 4 Øveark... 4 Facitliste... 6 Sideopsætning... 7 Flytte celler... 7 Højrejustering... 7 Kalender... 8 Dage

Læs mere

Seriel kommunikation RS232 / RS485

Seriel kommunikation RS232 / RS485 (fortsat fra Positionering/standardfunktion med RS232/RS485) Speed Commanderen har indbygget en seriel kommunikationsenhed, som understøtter RS232 og RS485 kommunikation. Speed Commanderen skal monteres

Læs mere

1. Opbygning af et regneark

1. Opbygning af et regneark 1. Opbygning af et regneark Et regneark er et skema. Vandrette rækker og lodrette kolonner danner celler, hvori man kan indtaste tal, tekst, datoer og formler. De indtastede tal og data kan bearbejdes

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Vejledning til DTU DOC & RSS Feeds

Vejledning til DTU DOC & RSS Feeds Vejledning til DTU DOC & RSS Feeds Jeg vil efterfølgende blande billeder og beskrivelser. Jeg har desværre ikke muligheden for at kunne danne de "rigtige" billeder, da jeg ikke har rettigheder til at søge

Læs mere

Diagrammer visualiser dine tal

Diagrammer visualiser dine tal Diagrammer visualiser dine tal Indledning På de efterfølgende sider vil du blive præsenteret for effektive måder til at indtaste data på i Excel. Vejledningen herunder er vist i Excel 2007 versionen, og

Læs mere

PCR 40 Door Access Control unit

PCR 40 Door Access Control unit Installations vejledning PCR 40 Door Access Control unit Ruko A/S Copyright 2003-2005, Ruko A/S Ruko A/S Marielundvej 20 DK - 2730 Herlev DENMARK Telefon: +45 44 54 44 54 Fax: +45 44 54 4444 E-post: support@ruko.dk

Læs mere

I gang med dit Gamer: bit Arkade Kit Denne guide er oversat og en smule forenklet fra Sparkfuns Hook-Up guide

I gang med dit Gamer: bit Arkade Kit Denne guide er oversat og en smule forenklet fra Sparkfuns Hook-Up guide I gang med dit Gamer: bit Arkade Kit Denne guide er oversat og en smule forenklet fra Sparkfuns Hook-Up guide Gamer: Bit Carrier Board er en docking-station til micro:bit, som gør det nemt at anvende alle

Læs mere

3. Om skalamønstrene og den indfoldede orden

3. Om skalamønstrene og den indfoldede orden Dette er den tredje af fem artikler under den fælles overskrift Studier på grundlag af programmet SKALAGENERATOREN (forfatter: Jørgen Erichsen) 3. Om skalamønstrene og den indfoldede orden Lad os begynde

Læs mere

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel: Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra

Læs mere