Home
HTBLuVA Wien V
Contents
1. startOn1 1 startOff 5 startOn2 7 t startOff startOnl A on t startOff startOn2 2 off t on 4 2 X 66 66 t t 6 3 off on Seite 163 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Stack Theis located in the RAM beginning from x5 The sp getsincrementbefore the byteis pushed pre increment so the sp always points to the last byte Words are pushed with the least significant byte first An example can be foundin the tutorial Data Data structures which are used inside the emulator and its messages and broadcasts Messages Details about the Communicator Implementation For the emulator including the messagesand broadcasts Seite 164 von 197 ausbildung mit zukunft RT SPENGERGASSE htl bildung mit zukunft Abteilung Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Emulator Data Data All more complex data structures used by the emulator are documented here State The emulator state is used by GET_STATE and SET_STATE messages rom new Uint8Array ram new Uint8Array stack new Uint8Array registers general b indices 0 31 w indices 31 special pc programm counter sp sta
2. DEBUG MELDUNG ETWAS WICHTIGES 1234 HALLO ICH BIN IN ZEILE XYZ Two s Two s Complement Debug egisters Breakpoints SBU egisters BERNER O1FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA O1FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA O1FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA O1 FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA Byte Register 0 AA Line 14 Word Register gt 5 Byte Register Previous Dieser Screen ist lediglich ein Mockup und kann sich im Laufe der Entwicklung ndern Debug Gibt jene Werte aus die als Parameter an Debug Befehle bergeben wurden Dabei werden die Befehle sequentiell in einer uneditierbaren Textbox ausgegeben werden Der clear Button leert die Textbox wieder Die Textbox wird zus tzlich automatisch beim Starten geleert RAM Gibt den Inhalt des RAMs aus In der unteren Leiste kann man ausw hlen in welchem Fo
3. Ein Anhang 2 Befehlsdokumentation Externe Kommunikation Siehe Anhang 4 Protokolle und Datenstrukturen IDE Die integrierte Entwicklungsumgebung von yasp wird in einer HTML5 Oberfl che implementiert sein Dabei wird das UI Toolkit Bootstrap verwendet da dieses sehr flexibel und leistungsstark ist Als Texteditor mit Syntaxhighlighting Funktion verwenden wir Code Mirror da es die Bed rfnisse von yaspam besten erf llt sehr gut dokumentiert ist und essich in anderen Projekten bereits gut bew hrt hat Die IDE wird auseinem Textfeld mitSyntaxhighlightingfunktion und einer Werkzeugleiste bestehen In dasTextfeld wird der Assemblercode eingegeben und die Werkzeugleiste erm glicht weitere Operationen e Ausf hren F hrtdasProgramm ausund startet den Debugger e Speichern Speichert den aktuellen SourceCodeim localStorage oder auf einem Server e Laden Ladt einen Source Codevom localStorage oder Server Seite 34 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft Fr Abteilung Informatik E a Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik e Hilfe ffnet die Hilfe mit einer Erkl rungzu jedem Befehl und zur generellen Funktionsweise e Einstellungen Festlegenfolgender Optionen o Syntaxhighlighting Themes o WievieleLeerzeichen ein Tab hat o Automatischesspeichern Ja Nein o AutovervollstandigungJa Nein o Sprache Englisch R ckg ngig Wiederholen Suchen Ersetzen Ge
4. cscsssscsssscsscsssscsssscsscsssscsscsssscssssssscaessesasscescsasacsacscescsasaceecsensesaesessesassees 63 Anhang 5 Hardware E 75 Anhang 5 Emulatoraktivit tsdiagramme scscscsssscssssssscscsscsssscsscsssscsscassscsesacsscscesesacacescsaeacsacacescsasacsaesensesatseesesaesees 77 Benutzer hata bu Ch isssicscsssaccescescucsets sescessovssascedsndcetsossonscsosassensovedesacesosasecosesecdesosesetesosesustvonas ouodetors etosesatarssssaseeoonsdetenessasdeoeee 79 ADNAN sii EE TET ET E EA A 94 Ve ET OTT 97 Seite 9 von 197 SPENGERGASSE ausbildung mit zukunft Abschlussbericht ssscseisscsassacsscsnssssscsdsccasessessonteaseassaceossacesseesas Anregungen f r Folgeprojekte Pers nliche Stellungname Style AV o A E E E A A TE T PROJEKTDOKUMENTATION Zeitaufwandsauswertung s ssesesesessseossesesosesesesesnseossesesse Milestoneplanung 2 2 2 2022202220222002022200002000000000n0nn0n 0002000 Sprint Protokolle sussssisseiasiec senenasss nssessiunssnstenssssenenesenne TECHNISCHE DOKUMENTATION Inhaltsverzeichnis EE yasp Assembler Tutorial 22 2 2222022220020220202200000022200000000 RE 480000 8HRRB orHsnecnnRssenene nern InstructionS usnsnssssnsnensssnensnsnnonsnsnnnnnnnnsnnensnsnnnnnnnnsnsnnsnsnsnnnennn e UE AONE TE Communicator ssscsssssessserscsesenseeesenesesensssceenenensesenenseeenenen Breadboards ssisscsccnssessccsssssnsacsssscacssosssacesssescessosseaccsstecce
5. are controlled via interrupts The interrupts are triggered by buttons init turn of low 3 low 4 low 5 Hh Fh all LEDs turn on interrupts on pin 1 and 2 Pin 87654321 6 00000110b enable 6 main program blinks the red LED main z toggle 5 pause 5000 jmp main interrupt service routine ggles the yellow LED toggle 3 reti return to interrupt service routine ggles the green LED toggle 4 reti table table starts at pin 0 pin 1 pin 2 terrupt the interrupt 0x100 0x101 0x102 0x103 0x104 0x105 ISR for pin 1 org 0x102 da isrl ISR for pin 2 org 0x104 da isr2 0x100 for pin 1 normal program for pin 2 each entry has 2 bytes Seite 177 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft Fr Abteilung Informatik E ai Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik 6 Testprogramm yasp testprogram 06 light a LED as long as the button is not pressed start high 3 turn on LED loop as long as the button is not pressed El pin L jz SZ low 3 turn the LED off loop as long as the button is pressed tin pin 1 jnz cin jmp Start end yasp testprogram 06 light a LED as long as the button is not pressed Scart high
6. stri STRING loooping str2 STRING done loooping lO There area number of commands which can be used to control hardware connected to the emulator HIGH LOW turn a pin on or off TOGGLE inverta output pin PIN read binaryvalue from pin ADC read analogue value of the ADC Pins legacy commands ADC ADC1 ADC2 Toggling LEDs main TOGGLE 3 3 switch LED on output pin 3 DELAY 30000 wait for 450ms JMP main Reading pushbutton main PIN 1 read value from pushbutton 3 PIN will set the zero flag to 1 if the pins state is zero so 3 pin is on gt z gt JNZ jumps pin is off gt z 1 gt JZ jumps JNZ on JMP main on TOGGLE 3 toggle an LED each time a button is pressed JMP main Stack Thereis a 16 byte stack which can be accessed by the Fairly standard PUSH and POP instructions MOV b 0x20 MOV b1 0x40 MOV b2 0x60 wO 0x2040 3 wl 0x6000 3 initial sp 0x50 b1 0x40 PUSH b1 3 Stack 0x40 sp 0x51 b 0x20 PUSH b 3 Stack 0x40 0x20 sp 0x52 Seite 139 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ S Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik 3 w1 0x6000 PUSH w1 3 Stack 0x40 0x20 0x00 0x60 sp 0x54 POP w 3 Stack 0x40 0x20 sp 0x52 wO 0x6000 Subroutines Subroutinenesting is also supported using the stack main PRINT str1 CALL subRo
7. Debugger Funktionen e Stepin F hrt die n chste Instruktion ausund pausiert danach e Step Back KANN Versetzt den Emulator in den Zustand den er vor der Ausf hrung der letzten Instruktion hatte e StepOut KANN Verhalt sich wie Step In allerdings wird ausgef hrt bis die n chste RETURN Instruktion ausgef hrt wird e Break Stoppt das Programm beim aktuellen AusFUhrungspunkt e Continue Die Programmausf hrung geht normal weiter e Set Program Counter Man w hlt eine Zeile aus und der Debugger springt zur angegebenen e Execute KANN F hrt beliebigen Assemblercode an der aktuellen Stelle aus e Breakpoints Der Debugger halt an sobald die Ausf hrung diesen Befehl erreicht Setzen Entfernen Tempor r deaktivieren Bedingte Breakpoints KANN H lt an wenn die eingegebene Bedingung erf llt ist Zeilenbezogene bedingte Breakpoints KANN oe wenn die Bedingung erf llt ist und der Emulator die angegebene Zeile ausf hrt 0000 O Externe Kommunikation Der Debugger kommuniziert mit Emulator und dem Assembler Detailssiehe Anhang 4 Protokolle und Datenstrukturen Seite 33 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Assembler Die Hauptaufgabe des Assemblers ist es Assemblercode in Maschinencode zu Ubersetzen Hierbei gibt es Folgende Resultate neben dem Maschinencode e Symbolta
8. labelsymbol labeldef label newline instruction symbol symbol param byteregister wordregister literal label instructiondef instruction newline param param whitespaces whitespaces param stringdef string whitespaces ALL_ASCII_CHARACTERS whitespaces ALL_ASCII_CHARACTERS datadef db dw whitespaces literal whitespaces literal dadef da whitespaces literal whitespaces literal orgdef org whitespaces literal enddef end definedef define whitespaces label whitespaces label directivedef datadef stringdef dadef orgdef enddef definedef statement labeldef instructiondef directivedef newline program statement Seite 158 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft Ze gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Testing Commands Testing the individual commandssuch as MOV is handled by the EmulatorTester Thisclasshas two basic methods addTest and done which should be called in this order The only argument of addTest is the test case which looks like this cmd setup steps All three of these attributes are optional Asinglestep can also be written as steps Process
9. EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Assembler Actions Assemblieren ASSEMBLE Request Payload code jobs symbols bitcode map Response Payload bitcode new Uint8Array symbols map e bitcode Maschinencode der vom Emulator ausgef hrt werden kann e symbols siehe Datenstrukturen Symboltabelle e map siehe Datenstrukturen Map Response Error oder null errors e errors siehe Datenstrukturen Assemblierungsfehler Datenstrukturen Symboltabelle labels usedRegisters defines instructions MOV e labels alleLabelnamen in alphabetischer Reihenfolge e usedRegisters alleverwendeten Register geordnet nach H ufigkeit Seite 65 von 197 ETS SPENGERGASSE htl ausbildung mit zukunft DZ gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik e defines alle Namen aller definesin alphabetischer Reihenfolge e instructions alleverwendetenInstruktionen und deren H ufigkeit Ma De MD macht es m glich den Befehl zu einer Zeilennummer zu finden Sie wird als Object dargestellt und enth lt als Key die Zeilennummer und als Value das entsprechende Offset im zur ckgegebenen Maschinencode Es ist m glich dass eine Zeile keinen entsprechenden OpCode hat zum Beispiel Kommentare o A U 0 1 2 4 Assem
10. English Puts the pin into the low or off state Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines OF Code LOC 1 Binary Code 10100000 001PPPPP MOV Byte Register Byte Literal Deutsch Schreibt den gegebenen Wert in das Register English Writes the given literal value into the register Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 1 Binary Code 00000000 OOORgRegRegeReRe LeleleLelglelele MOV Word Register Word Register Deutsch Kopiert den Wert des zweiten Registers in daserste English Copiesthe valueofthe second register into the first one Anzahl der Unit Tests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 1 Binary Code 00010000 010000RwRw RwRwRwRwRwRwRwRw SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Tools und Methodik LA Word Register Label Deutsch Schreibt die Adresse eines Labels in das Register English Writes the address of an label into the register Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines OF Code LOC 1 Binary Code 00101000 00000000 RwRwRwRwRwAAA AAAAAAAA MOV Byte Register Byte Register Deutsch Kopiert den Wert des zweiten Registers in das erste English Copies the value of the second register into the First one Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 1 Binary Code 00010000 000000R3R3
11. 3 Drittel Grine LED leuchtet Ausf hrungsmodus 02 Pulsweitenmodulation Testdaten Buttonseinzeln gedr ckt halten Testresultat Die Rote LED wird heller und dunkler Ausf hrungsmodus 03 Pulsweitenmodulation vom Potentiometer abh ngig Testdaten Der Potentiometer wird gedreht Testresultat Die Rote LED pulsiertin der eingestellten Geschwindigkeit Ausf hrungsmodus 04 Grundlegender Funktionstest Testdaten Debug und Register auf den DEC Modus schalten Seite 52 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ S Abteilung Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik bildung mit zukunft Testresultat Step 1 Register bO hat den Wert 23 Step 2 Register b1 hat den Wert 67 Step 3 Register bO hat den Wert 67 Step 4 Register bO hat den Wert 68 Step 5 Register bO hat den Wert 135 Step 6 Der Wert 135 im Debug Fenster Step 7 ZurUckzu Step 1 05 LEDs werden via Interrupts ein und ausgeschalten Testdaten Taster 1 dr cken Taster 2 dr cken Testresultat Die gr neLED blinkt Grauer Taster gedr ckt RoteLED wird umgeschalten Roter Taster gedr ckt GelbeLEDwird umgeschalten 06 LEDs werden via Polling ein und ausgeschalten Testdaten Grauen Taster dr cken Testresultat RoteLED leuchtet nurwenn der Taster nicht gedr ckt ist Seite 53 von 197 HTBLUVA Wien V SPENGERGASSE ht i ausbildung mit zukunft
12. 8 spaces Language lt gt English Label list lt gt always show Help lt gt always show Automatic save W Code completion e Theme Setzt dasSyntaxhervorhebungsthema Hier bei werden die Hintergrundfarben Kommentarfarben Befehlsfarben und mehr ver ndert Tab Size Setzt die Tab Gr e im Texteditor Language Setzt dieSprache in yasp Momentan sind die Sprachen Deutsch und Englisch implementiert Andere Sprachen sind jedoch m glich e Labellist Setzt die Darstellungsart der Labelliste Hierbei zeigt always show die Labelliste immer an showif needed nur wenn sie gebraucht wird Mauszeiger ist Uber der Liste und nev er show zeigt die Liste nie an e Help Setzt die Darstellungsart der Schnellhilfe Hierbei zeigt always show die Schnellhilfe immer an showif needed nur wenn sie gebraucht wird Mauszeiger ist Uber der Hilfe und never show zeigt dieHilfe nie an e Automatic Save Aktiviert oder deaktiv iert das automatische Speichern des Quellcodes Wenn dasautomatische Speichern aktiviert ist wird der Quelltextregelm ig lokal in der Datei Automatic Save zwischengespeichert e Code Completion Aktiviert oder deaktiviert die Autov ervollstandigung Sie kann jedoch selbstim deaktivierten Zustand durch Steuerung Leertaste aufgerufen werden Seite 83 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft A Abteilung bildung mit zukunf
13. Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Potentiometer Pin In Nein Pin Out Analog Erscheinung Drehregler Hardwareeinsatz LED e Rot o anPin 5 type gpio modeout e Gelb o anPin 4 type gpio modeout e Gr n o anPin 3 type gpio mode out Taster e Rot o anPin 1 type gpio modein e Schwarz o anPin 2 type gpio modein Potentiometer e Potentiometer o anPin 10 typeadc modein Seite 76 von 197 SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Toolsund Methodik Anhang 5 Emulatoraktivit tsdiagramme Generelle Funktionsweise Division durch Null Breakpoint erreicht Ende der Instruktion erreicht Hat sich der IO Status ge ndert Seite 77 von 197 SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Toolsund Methodik Action Behandlung Seite 78 von 197 HTBLUVA Wien V SPENGERGASSE Informatik Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik htl ausbildung mit zukunft I gt Abteilung bildung mit zukunft 5 un 2 Untitled Arie Menu 7 Toggle the green LED and increment a byte register by at a time Labels 2 Additionally the yellow LED is switched once an overflow occurs The red LED is toggled via an interrupt when the red button is pressed main INIT car MOV b0 0x00 di MOV bl 0x20 Iert Enable interrupts for the red button pi
14. In den betreffenden Funktionen im Emulator wurde Rate Limiting das Limitieren der maximalen Anzahl von Nachrichten in einer bestimmten Zeit eingesetzt um dieses Problem zu mildern SetTimeout bzw SetInterval Da JavaScriptimmer nur einen Thread hat und der Emulator quasi gleichzeitig Befehleausf hren und Nachrichten von dem Debugger empfangen muss wird f r die Befehle die setTimeout bzw setInterval Funktion verwendet Diese funktioniert im Firefox nach einer bestimmten Anzahl von Aufrufen schlicht nicht mehr was zu massiven Problemen im Emulator gef hrt hat Der zugeh rige Bug Report bei Mozilla findet sich hier https bugzilla mozilla org show_bug cgi id 972829 Layout Es wurden diverse Anpassungen im Layout des Debuggers vorgenommen da manche CSS Funktionen im Firefox unerwartet langsam sind was der Gesamtperformance sehr geschadet hat Breakpoints Sowohl im Emulator aus auch im Debugger wurden Breakpoints implementiert Es ist somit m glich das Programm an bestimmten Stellen anzuhalten um einen Fehler schneller zu Finden Seite 131 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ S Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik 11 Scrum Meeting 1 0 Erkenntnisse und Aktivit ten In Zeile Springen Diese Funktion erm glicht esim Debugger in beliebigen Codezeilen zu springen Hierzu dr ckt man den Button Jump To unddannin di
15. Neu Dialog erstellt eine Datei und speichert sie New File Neue Datei File Quick Share File 1 Name Eingabefeld In diesem Textfeld ist der Dateiname einzugeben der dann bernommen wird 2 Dateiliste In dieser Liste sind alle gespeicherten Dateien sichtbar Zus tzlich l sstsich durch dasL schen Symbol eine Dateiaus der Liste entfernen Das ffnen Symbol kopiert den Namen der Dateiin das Eingabefeld 3 Button Der Close Button bricht die aktuelle Aktion ab Der Create Button erstellt die entsprechende Dateiund ffnetsie in der IDE Seite 87 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Server Login Server Username Password Login Wenn man Dateien am Server speichern will so muss man sich vorher am Server einloggen Hierbei verwendet man seinen LDAP Useraccount Die Dateien werden danach beim Speichern auf den Schulservern geladen Seite 88 von 197 HTBLUVA Wien V SPENGERGASSE hkl ausbildung mit zukunft z Abteilung Informatik E ai Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Debugger Hauptfenster Debugger Step Step Back Break Continue m OD Stepping Toggle the green LED and increment a byte register Additionally the yellow LED is switched once an ove Debug RAM Registers Breakpoints
16. Scrum Meeting 0 3 Cr Erkenntnisse und Aktivit ten Aufholsprint I Implementierung aller verbleibenden Befehlebisauf Interrupts Analoge HW Befehle RANDOM PAUSE Zus tzlich werden im Emulator nicht immer alle Parameter geladen so ist zum Beispiel bei MOV wO w1 der Wert von wO irrelevant ORG Direktive W hrend der Programmierung der Interrupts sind wir auf ein Problem mit der Assembler Direktive ORG gesto en Diese hat den Maschinencode falsch generiert was dazu f hrte dass der Generator neuimplementiert werden musste Diese Aufgabe hat Robert Fischer erledigt Assembler Fehlermeldungen Die Fehlermeldungen des Assemblers bei invalider Syntaxeingabe sind nun um einiges verst ndlicher da der Assembler nun mehr Fehler einzeln abpr ft Seite 125 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ gt Abteilung bildung mit zukunft Informatik s Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik 5 Scrum Meeting 0 4 Cr Erkenntnisse und Aktivit ten Aufholsprint II Implementierung der verbleibenden Emulator Features Interrupts Analoge HW Befehle RANDOM PAUSE Pr sentationsvorbereitung Der REPL wurde f r die Statuspr sentation um eine sch nere Ausgabe erg nzt Die IDE wurdeebenfallsaufger umt so dass eine reibungslose Pr sentation sichergestellt werden konnte Assembler Fehlermeldung Wenn im Assembler ein Befehlsname als Label verwendet wu
17. Sprint Protokolle TECHNISCHE DOKUMENTATION yasp Assembler Tutorial Localisation Instructions Hardware FileDialog Communicator Breadboards Assembler Testing Emulator Testprogramme Autorenzuordnung EE O e Milestoneplanung o Y S SprintProtokolle XX Seite 197 von 197
18. The EmulatorTester then takes these values and does the following 1 create an Emulator and Assembler 2 assemble the given cmd 3 set the PC to 4 set all the values given in setup 5 load the bitcode from assembler into the emulator 4 step exactly the number of stepsgiven do each time 1 execute onestep in the emulator 2 checkallvaluesthat should be checked 3 execute thesetupgivenin ss setup ram o Uint8Array replacethe entire RAM o object replace individual bytesin the RAM like so 18 42 writes 42 to byte 18 rom see ram stack see ram e reg object changethevalueofanregister b 18 pc 3 possibleregisters o b b31 byte registers o w w31 word registers o pcprogramm counter o sp stack pointer e pin object set thestateofaninputoroutputpin 3 1 e interruptMask number set the interrupt mask see Tutorial e triggerInterrupt number e flag object set thecarryorzeroflag c true e breakpoints arrayof breakpoints see EmulatorDocumentation steps Stepis an array of step objects IF thereis just onestep thearraycanbeomitted steps A step executes a number of checks and the issues QUnit asserts to make sure commandsworkas intended All valid steps e ramcheckindividualbytesoftheRAM 18 42 offset 1 is 42 D rom see ram e stackseeram Seite 159 von 197 HTBLUVA Wien Y SPENGERGASSE htl ausbildung mit zukunft Zr S Abteilung Informatik E ai Ausbildungsschwerpunkt Intellige
19. appearance top 5px left 137px height 65px width 65px 03 Seite 153 von 197 ausbildung mit zukunft RT SPENGERGASSE htl bildung mit zukunft Abteilung Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Boilerplate if typeof yasp undefined yasp if yasp BreadBoardTypes yasp BreadBoardTypes function yasp BreadBoardTypes CHANGEME name de en 3 Jo description de nunn en 3 image optional upil S height 0 width oi hardware type params pin 1 tooltip optional placement top J appearance top oT left 0 height 50px width 50px HO Seite 154 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Assembler The assembler of yasp is very simple and straightforward Itis case insensitive and implemented in a multipass architecture There are two different types of statementsin the syntax Instruction An instruction is a command string Followed byzero one or two commands the assembler itself would support even more There are two distinctions between instructionsin the assembler itself butarenotvisible to the end user e Directives e Commands Directives are compile time in
20. checkif the instruction is cached if not disassemble and cache iv Fetch instruction fromthe cache v load needed values for parameters vi call the exec functionof the instruction vii checkandset the zero flag if specified in instruction File 2 setTickWrapperTimeout The timeout which is set by setTickWrapperTimeout can be interrupted bya number of things e CONTINUE message to allowfaster stepping e Hardware Interrupt In addition the timeout will be longer when the emulator waitTime see DELAY instruction isset PWM The emulator is capable of simulating PWM in terms of calculating a pins analogue output power when a pin is rapidly switched on and off This is done in the updatePwm helperfunction Note that this behaviour only used when the pins state changes more often than 10times a second otherwise the state of the pin will always be 1 or 8 PWM causes the state to be between 1 and 255 Impulse Pulse Seite 162 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Pulse width modulation t t on off lt gt lt gt bb lt gt lt gt lt gt lt gt t const t t t on off const Calculation of the output power 1234566789 Act
21. e Just numbersarealsonotallowed Example myAwesomeLabel Seite 155 von 197 SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Tools und Methodik Multi Pass Architecture The assembler is divided into 4 passes e Lexer e Analyser e Parser e Generator The assembler is managing allthe passes and holding information necessary for the editor debugger and assembler itself Additionally if Featuressome helper Functions for iterating over the token array yasp TokenIterator and other utility Functions yasp Assembler prototype riseSyntaxError Thefunction yasp Assembler prototype assemble is responsible forall the assembling The Function isreturning the Following datastructure if assembling wassuccessful success true bitcode new Uint8Array symbols symbols map key line number value instruction position ast astArray IF compiling fails success false errors errors symbols symbols only if it could be generated ast astArray only if it could be generated error structure type errorType currently minor and error error causing the compilation to be s topped and minor to be continued name E_ERR line error_line char error_character message error_msg kb se symbol structure d labels key labelname value label token containing the line and character usedRegisters key register value number of tim
22. Architektur Der Emulator mussin der Lage sein die Assembler Befehle auszuf hren Dabei wird jeder Befehl in die folgenden Befehle abstrahiert um ein flexibles und erweiterbares Design zu erm glichen e Register Oo riteWordRegister n v o riteByteRegister n v o ReadWordRegister o ReadByteRegister Seite 45 von 197 DT SPENGERGASSE ht i ausbildung mit zukunft ZZ gt Abteilung Informatik bildung mit zukunft Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik e WN cr DI Q aA o PushWord v o PushByte v o PopWord o PopByte e RAM ROM o ReadROM o riteROM o v ReadRAM o riteRAM o v e PC Flags ritePC pc ReadPC ReadFlags riteFlags flags isCarryFlagSet o isZeroFlagSet e Debugging o Debug o Echo o Break o Error e Hardware o Set o Get e Wait Oo O 00000 I0 I0 ct ct GA Instruktionen Register Befehle e MOV e ADD e SUB e INC e DEC e INV e CLR e RR e RL e CMP e AND e OR e XOR e MUL e DIV Stack e PUSH e POP Sprungbefehle e JMP Seite 46 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik e GOTO alias f r JMP e CALL e RETU
23. Assembler r r Omen a Er Einstellungen ver ndern A Kommentar Quelltext eingeben Ja Ss Seite 94 von 197 Ta AN SPENGERGASSE ht ausbildung mit zukunft Abteilung Informatik a Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik DE DE RE sm a wen fed fei va A volltext befehlssuche Debugger Free setzen Debugger Breakpoint entfernen Debugger Breakpoint tempor r deaktivieren edd TRIER SINSASRANSRERE Sass erat eae aaa aaa Bedingte Breakpoints Seite 95 von 197 Ta AN SPENGERGASSE htl ausbildung mit zukunft E A Abteilung bildung mit zukunft In Formatik s Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Gesamtfrodukt abgenommen Kran Robert FISCHER Dipl Ing Robert JELINEK f Seite 96 von 197 EE SPENGERGASSE ausbildung mit zukunft Fr ou Abteilung Informatik E ai Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Veroffentlichung Website Zur Ver ffentlichung von yasp haben wir eine Website mit den wichtigsten Fakten und Funktionen erstellt Die Website wurde technisch sehr simpel gestaltet und kam v llig ohne dynamische Elemente aus weswegen der Gesamtaufwand hierf r nur 2 5 Stunden betrug Um eine m glichst gro e Zielgruppe erreichen zu k nnen wurde die gesamte Website auf Englisch verfasst Insgesamt wurde d
24. Ausfalls von Michael Lutonsky siehe Sprint Protokolle stagnierte Der Gro teil der Entwicklung fand in den Monaten um den Jahreswechsel statt und war mit der 9 Woche abgeschlossen In die Abschlussdokumentation wurde vor allen von Robert Fischer investiert da er noch Stunden aufzuholen hatte Seite 117 von 197 HTBLUVA Wien V SPENGERGASSE ht f ausbildung mit zukunft A Abteilung bildung mit zukunft Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Programmteil Emulator Doctool Enden 7 Stunden Assembler 43 Stunden Server 12 Stunden Instruktionen 25 Stunden IDE 82 Stunden Hardware 15 Stunden Ein Gro teil der Zeit wurde mit Dokumentation und Meetings verbracht Weitere Schwerpunkte waren wie erwartet die IDE der Emulator und der Assembler wobei sich der Aufwand des Debuggers auf IDE und Emulator aufgeteilt Auf Grund eines verbesserten Test Systems konnte die ben tigte Zeit zur Implementierung der Instruktionen drastisch reduziert werden Bis auf den Assembler und die Serverkomponente wurde an allen Programmteilen von beiden Mitgliedern gearbeitet Die ungef hre Aufteilung nach Schwerpunkten sieht wie folgt aus Robert Fischer Seite 118 von 197 HTBLUVA Wien V SPENGERGASSE ht ausbildung mit zukunft Abteilung i bildung mit zukunft d In Formatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Milestoneplanung In der
25. Binary Code 00010000 000100RgRg RgeRgRgeRgRgeRgRgRsg AND Word Register Word Literal Wert des Registers und den zweiten Parameter an e Zero Flag wird gesetzt wenn das Ergebnis 0 ist English Calculates the binary AND of the value of the register and the even literal value e Zero Flagissetif the resultis 0 Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 2 Binary Code 00000000 100RgRgReReReg LelslLglelelelelg AND Word Register Word Register Deutsch Wendet den bin ren UND Operator auf den Deutsch Wendet den bin ren UND Operator auf die Wert des Registers und den zweiten Parameter an e Zero Flag wird gesetztwenn das Ergebnis 0 ist English Calculates the binary AND of the value of the register and the even literal value e Zero Flagissetif the resultis 0 Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 2 Binary Code 00100000 100RwRwRwRwRw LwLwlL wLwLwLwLwLwLwLwLwLwLwLwLwLw Werte der Register an e Zero Flag wird gesetzt wenn das Ergebnis 0 ist English Calculates the binary AND of the values of both registers e Zero Flagissetif the resultis 0 Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 2 Binary Code 00010000 010100RwWRw RwRwRwRwRwRwRwRw Seite 184 von 197 HTBLuVA Wien V Abteilung Ausbildungsschwerpunkt bildung mit zukunft BREAK Deutsch Stoppt die CPU English Stops
26. CALL so dass die Sub Prozedur bersprungen wird Code Injection Um neue Code Schnipsel zu testen k nnte der Debugger dynamisch Code in den Emulator laden und diese Ausf hren Passiv genutzte Register anzeigen Da in den ersten 16 Word Registern alle 32 Byte Register beinhalten wird beispielsweise bei der Verwendung des Registers bO auch w0 ver ndert Im Debugger sollten daher auch diese passiv genutzten Register angezeigt werden Editor Speichern der Breakpoints Breakpointswerden nicht mit der Datei abgespeichert da diese normalerweise nur w hrend einer Debugging Session interessant sind Trotzdem k nnte man diese mit der Datei zusammen abspeichern um zum Beispiel einem anderen Nutzer zu erm glichen dieselben Breakpoints zu verwenden Schnellhilfe f r Direktiven Die Direktiven zum Beispiel DW STRING oder ORG sind zwar im Tutorial von yasp beschrieben allerdings bietet der Editor selbst keine Hilfe dazu an Seite 107 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft zo gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Hardware Sound Der USB Master unterst tzt die Ausgabe von T nen entweder mittels PWM oder der fertigen SOUND Instruktion Dieses Feature k nnte in einer sp teren Version von yasp mittels der HTML5 Audio APlnachgebaut werden LED Matrix Als weiteres Hardware Element war eine LED Matrix ange
27. Code LOC 2 Binary Code 01100000 011 RwRwRwRwRw CMP Byte Register Byte Literal Deutsch Vergleicht zwei Werte e Zero Flag wird gesetzt wenn die Werte gleich sind Carry Flag wird gesetzt wenn der zweite Wert gr er ist als der erste English Compares two values e Zero Flagissetif the values are equal e Carry Flag is setif the second value is greater than the first value Anzahl der Unit T ests Number of Unit T ests 3 Codezeilen Lines OF Code LOC 3 Binary Code 00000000 Drees R Re Lelelelieleliglels Seite 185 von 197 HTBLuVA Wien V Abteilung Ausbildungsschwerpunkt bildung mit zukunft CMP Word Register Word Literal Deutsch Vergleicht zwei Werte e Zero Flag wird gesetzt wenn die Werte gleich sind Carry Flag wird gesetzt wenn der zweite Wert gr er ist als der erste English Compares two values e Zero Flagissetif the values are equal e Carry Flag is setif the second value is greater than the First value Anzahl der Unit T ests Number of Unit T ests 5 Codezeilen Lines Of Code LOC 3 Binary Code 00100000 011RwRwRwRwRw LwLwLwLwLwLwLwLwLwLwLwLwLwLw LwLw DEBUG Byte Register Deutsch Sendet den Wert eines Byte Registers zum Debugger English Sends the value of a byte register to the debugger Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 1 Binary Code 01010000 OOORgRgRsRsRs DEC Byte Register Deutsch Zieht 1 vom Wert des
28. Eae E aar eia E Esar EESAN 137 Big e ele lte e 137 Commands lge le el EE REN EE 141 Ed de de Uu EE Format of an instruction file EXEC FUNCLION aeeneeneennennennennenne Mi EI EE COMMUNICA OF a E E E A E A E E E Specific communicator implementations Messa gesaan 2 5 es a ee eege Jes ons eege ons EA EE Eliette eege A EAE A E T TEAT eege AEE E AT OAT TE ET E 152 Breadboard format heine ee ann tee tege Eege eege egene Gelee 152 Bi E 154 KT TE E 155 LAS UC ON EE 155 ET 155 M lti Pass Archi tect re asnan e nern seas entauesntesaa ee en Saab ann cas vavexn a ous rende ee 156 NIT 157 NC d 159 COMMANA S Ahne eT Ener EREU N E E E 159 Mee 159 Seite 135 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ S Abteilung Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik bildung mit zukunft Emulator Message Seehorn esorare ergeet ege ege KEREN Ener nee 168 Broadcasts MESSaReS une de coucouvevseavabceateauvoucedesbouscavdensslaveuncotesbebuces dora hau stars E E T TA RUN lge ln E 1 Testprogramm Testprogramm Testprogramm Testprogramm Testprogramm Testprogramm Testprogramm Testprogramm LD ON DU PS DO Testprogramm R NNEN 181 Seite 136 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Method
29. Ergebnis 0 ist e Carry Flag wird gesetzt wenn das Ergebnis gr er als 65535 ein word ist English Adds the value of the register and the given literal value e Zero Flagissetif the resultis 0 e Carry Flagissetifthe resultis greater than 65535 one word Anzahl der Unit T ests Number of Unit T ests 3 Codezeilen Lines OF Code LOC 3 Binary Code 00100000 001 RwRwRwRwRw LwLwLwL wLwLwLwLwLwLwLwLwLwLwLwLw AND Byte Register Byte Register SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Toolsund Methodik ADD Word Register Word Register Deutsch Addiert die Werte der beiden Register e Zero Flag wird gesetztwenn das Ergebnis 0 ist Carry Flag wird gesetzt wenn das Ergebnis gr er als 65535 ein word ist English Adds the values of both registers e Zero Flagissetif the resultis 0 e Carry Flag is setif the resultis greater than 65535 one word Anzahl der Unit T ests Number of Unit T ests 3 Codezeilen Lines OF Code LOC 3 Binary Code 00010000 010001RwRw RwRwRwRwRwRwRwRw AND Byte Register Byte Literal Deutsch Wendet den bindren UND Operator auf die Deutsch Wendet den bin ren UND Operator auf den Werte der Register an e Zero Flag wird gesetzt wenn das Ergebnis 0 ist English Calculates the binary AND of the values of both registers e Zero Flagissetif the resultis 0 Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 2
30. HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft i Abteilung Informatik bildung mit zukunft AUsbildungsschwerpunkt Intelligente Systeme Tools und Methodik The main goal of yasp is to make learning assembler for students as easy as possible The HTBLUVA Spengergasse in Vienna is using a piece of custom made hardware which was also developed there to accomplish the same goal It features a simplified variant of an assembly language to make it easier to understand Since it is soldered by hand by one of the professors and his students it is prone to defects Also setting it up properly is not an easy task which shortens the remaining time For the actual lesson considerably yasp seeks to Fix this problem by simulating the USB Master inside aweb browser including a fewsimple hardware elements like LEDs potentiometer and buttons This means that the time needed to begin a lesson is shortened to the boot time of the computers It also enables students to learn and exercise programming in the assembly language at home In addition to Abstract simple simulating the existing hardware an improved debugger English and editor has been implemented which also contributes toa smoother learning experience To make the migration to yasp easier the same variant of assembly has been implemented which makes it possible for teachers to just switch to yasp without the need to prepare new sample programs and tutorials The project h
31. PAUSE Word Register Deutsch Wartet die im Register angegebene Zeit z B 1000 15ms 60000 900ms English Waits a given time e g 1000 15ms 60000 900ms Anzahl der Unit T ests Number of Unit Tests 2 Codezeilen Lines Of Code LOC 1 Binary Code 01110000 01 ORwRwRwRwRw Seite 190 von 197 HTBLUVA Wien V Abteilung Ausbildungsschwerpunkt bildung mit zukunft PIN Pin Deutsch Liest einen digitalenWertvon dem gegebenen Pin low aus z 1 high an z 0 English Reads a digital value from the given pin low off z 1 high on z 0 Anzahl der Unit T ests Number of Unit Tests 2 Codezeilen Lines Of Code LOC 1 Binary Code 10100000 101PPPPP POP Word Register Deutsch Nimmt die zwei obersten Byte vom Stack und schreibt sie in dasregister Das erste Byte wird zum niederwertigsten Byte des Words English Takes the top two bytes from the stack and writes them into the register Thefirst byte becomes the leastsignificant bytein the word Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines OF Code LOC 1 Binary Code 01100000 111 RwRwRwRwRw PUSH Byte Register Deutsch Pusht ein byte auf den Stack English Pushes one byte onto the stack Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 1 Binary Code 01000000 110RgRgRgRgRg RANDOM Byte Register Deutsch Schreibt einen zuf lligen Wertin das Register English Writes a random valueinto
32. Registers ab Wenn der Wert 0x00 ist ist das Ergebnis OxFF e Zero Flag wird gesetzt wenn das Ergebnis 0 ist e Carry Flag wird gesetzt wenn der Wert 0 war English Subtracts one from the value of the register IF the value is 0x00 the result will be OxFF e Zero Flagissetif the resultis 0 e Carry Flag is setif the value was 0 Anzahl der Unit T ests Number of Unit T ests 3 Codezeilen Lines OF Code LOC 3 Binary Code 01000000 001 ReReRsReRs SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Toolsund Methodik CMP Word Register Word Register Deutsch Vergleicht zweiWerte e Zero Flag wird gesetztwenn die Werte gleich sind Carry Flag wird gesetztwenn der zweite Wert gr er ist als der erste English Compares two values e Zero Flagissetifthe values are equal e Carry Flagissetifthe second value is greater than the First value Anzahl der Unit T ests Number of Unit T ests 5 Codezeilen Lines OF Code LOC 3 Binary Code 00010000 010011RwRw RwRwRwRwRwRwRwRw DEBUG Word Register Deutsch Sendet den Wert eines Word Registers zum Debugger English Sends the value of a word register to the debugger Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines OF Code LOC 1 Binary Code 01110000 000RwRwRwRwRw DEC Word Register Deutsch Zieht 1 vom Wert des Registers ab Wenn der Wert 0x00 ist ist das Ergebnis OxFFFF e Zero Flag wird gesetzt wenn das Ergebni
33. RgRgRgRgRgRgRgRsg MOV Word Register Word Literal Deutsch Schreibt den gegebenen Wert in das Register English Writes the given literal value into the register Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 1 Binary Code 00100000 OOORWRwRwRwRw Lu wl wl Aw ww wl ww Lu wl wl wl wu LwLw MUL Word Register Word Register Deutsch Multipliziert die beiden niederwertigen bytes der register English Multiplies the two leastsignificant bytes of the registers Anzahl der Unit Tests Number of Unit Tests 2 Codezeilen Lines Of Code LOC 2 Binary Code 00010000 010111RwRw RwRwRwRwRwRwRwRw Seite 189 von 197 HTBLUVA Wien V Abteilung Ausbildungsschwerpunkt bildung mit zukunft OR Byte Register Byte Register Deutsch Wendet den bin ren ODER Operator auf die Werte der Register an e Zero Flag wird gesetzt wenn das Ergebnis 0 ist English Calculates the binary OR of the values of both registers e Zero Flagissetif the resultis 0 Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 2 Binary Code 00010000 000101RsRs RgRgRgRgeRgRegRegeReg OR Word Register Word Literal Deutsch Wendet den bindren ODER Operator auf den Wert des Registers und den zweiten Parameter an e Zero Flag wird gesetzt wenn das Ergebnis 0 ist English Calculates the binary OR of the value of the register and the even literal value e Zero Flagissetif t
34. The red LED is toggled via an interrupt when the rd VU VAVU INIT MOV bO 0x00 ba 0x80 MOV bl 0x20 be 8xa Enable interrupts for the red button pin b 8xc gt Pins 76543238 Mask 00000100 4dec bp Gxvep ENABLE 4 b xee Blink green and increment bO by b b 0x20 bO bl b0 0x40 bO send current f bO td I carry jump if bO had Stverflow toggle green LED 30000 wait for 450ms Format HEX main H3 Switch yellow 5 carry TOGGLE 4 toggle yellow LED JMP main called via interrupt when the red button is pr isrl TOGGLE 3 toggle red LED ECHO helloWorld send string hello world ti RETI return to main program 5 helloWorld STRING hello world interrupt table ORG 0x100 DW 0 pin not wired DW 0 black button DA isrl red button 1 Buttons und Status e Step F hrt die n chste Instruktion ausund halt die Ausf hrung anschlie end wieder an e Step Back Springt zu der zuletzt ausgef hrten Instruktion Dies ist nur m glich wenn vor Step Back ein Step ausgef hrt wurde e Break Halt die Ausf hrung an und wartet auf weitere Befehle wiezum Beispiel ein Step e Continue F hrt dieAusf hrungohneeEinschr nkungen aus Es werden so lange Instruktionen ausgef hrt bist der Emulatordurch den Break Befehlangehalten wird e JumpTo Setzt die aktuelle Position der Ausf hrung Hierzu wird aus dem Mauscursor ein Fadenkreuz mit dem die gew nschte Zeile ausgew hl
35. Tools und Methodik 2 Scrum Meeting 0 2 Erkenntnisse und Aktivit ten Vorhergehender Sprint Aufgaben Assembler Implementierung erfolgte wie geplant AlleTestcaseswerden erfolgreich ausgef hrt Implementierung einer ungeplanten interaktiven Assembler Umgebung REPL da man damit leichter den Fortschritt herzeigen kann Probleme e Dekodieren der Befehlewar mehr Aufwandalsgeplant 5 Stunden statt 1Stunde Dies war allerdingskein gr eres Problem N chster Sprint e Implementierung aller Basic Befehle e Implementierung der Hardwareelemente Ergebnis Wir k nnen unseren zweiten Sprint starten Seite 122 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ gt Abteilung bildung mit zukunft Informatik s Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik 3 Scrum Meeting Pause Grund Pause beendet weitere Plane und Milestonebesprechung Erkenntnisse und Aktivit ten Pause Herr Lutonsky hat mit 14 Oktober wegen eines anderen Projektes eine Pause angetreten Diese ist seit dem 10 November beendet und der normale Projektbetrieb ist wieder hergestellt In dieser Pause wurde von Herrn Fischer die Arbeit an der IDE begonnen Michael Lutonsky hat bereits einen Teil der fehlenden Stunden aufgeholt und wird sich weiterhin bem hen eine Stundengleichheit wiederherzustellen Aufgrund dieser Vorkommnisse haben wir das Sitzungsprotokoll nicht einhalten k nnen und versuc
36. ZZ gt Abteilung bildung mit zukunft S Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik 07 Eine Variable inkrementieren wenn ein Button gedr ckt wird Testdaten Taster 1 oder 2 dr cken Testresultat Taster 1 gedr ckt ausgegebener Werterh htsich Taster 2 gedr ckt ausgegebener Wert verringert sich 08 LED blinken Testdaten Keine Testresultat Rote LED blinkt 09 3 LEDs werden als Ampel mit fixem Zeitintervall geschaltet Testdaten Keine Testresultat Rote LED leuchtet Rote und gelbe LED leuchtet Gr ne LED leuchtet Gr ne LED blinkt vier mal Keine LED leuchtet Gelbe LED leuchtet gt Zum Anfang Seite 54 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ gt Abteilung bildung mit zukunft S Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik 10 Bitshift Testdaten Debug und Register auf den DEC Modus schalten Testresultat Step 1 Register b2 hatden Wert 1 Step 2 Register b3 hat den Wert 128 Step 3 Register b1 hatden Wert 7 Step 4 Register bO hat den Wert 18 Step 5 Register bO hat den Wert 19 Step 6 Register bO hat den Wert 147 Step 7 Register b2 hatden Wert 2 Step 8 Register b3 hat den Wert 64 Step 9 Register b1 hat den Wert 6 Step 10 Step 4 bis 9 7 mal ausf hren Step 11 vonvorne Unit Tests Assembler Testdaten Alle wahrend der Entwicklung geschriebenen Unit Tests werden ver
37. Ziel Eine Simulation f r ein Mikroprozessorsystem System on a Chip SoC soll programmiert werden Programmierumgebung objektorientiertes Javascript ohne Toolboxen mit HTMLS5 und CSS Beschreibung Es ist eine HTML Seite mit Javascript zu entwerfen welche ein einfaches Mikroprozessorsystem simuliert Randbedingungen Darstellung Eingabefenster f r den Quellcode Ausf hrungsfenster Simulation der Hardware LEDs Tasten Potentionmeter Quellcode Eingabe des Quellcodes ber einfache Textbox oder Attribut contenteditable Einf rben des Quellcodes Labels Mnemonics Parameter Kommentare Umwandlung des Quellcodes in Assembler Laden und Speicher von Quellcode ber PHP Prozessorsimulation beim Start ausw hlbar aus mehreren Architekturen Echte Simulation mit Speicher und Codes Eigener Prozessor mit 8 I O Pins und zwei analogen Eing ngen Intel Architektur 16 32 Bit ARM Architektur Register des eigenen Prozessors 32 mal Byte 8Bit 16 mal Word 16 Bit Befehle des eigenen Prozessors Einfache Adressierungsarten Kopieren Register Hauptspeicher Arithmetisch Logisch Bitschieben Vergleich bedingte und unbedingte Spr nge absolut und relativ Unterprogrammaufrufe VO Interruptverarbeitung Tabelle ab Adresse 0x100 je 2 Byte pro Adresse Ausf hrungsfenster Darstellung von Code Registern Stack Status PC I O und Interrupts Ver nderbarkeit von Registern Stack Status PC UO und Interrupts Setzen und L
38. an die entsprechende Stelleim Codeeditor gescrollt 3 Men Das Men von yaspistin zwei Teile aufgeteilt File und Menu Dadurch bleibt es bersichtlich und jeder Nutzer findet schnell dienotwendigen Aktionen File Im File Men sind die FileManager Operationen zug nglich Dazu geh rt Speichern Speichern unter ffnen Neu und Teilen e Save Offnetden Filedialog im Speichern Modus Das hei t Wenn die Datei bereits einen Namen erhalten hat wird die Dateidirekt gespeichert ansonsten wird der User l l Filer e aufgefordert einen Dateinamen festzulegen eng e Save As Hier wird in jedem Fall der User a BN aufgefordert einen Dateinamen Festzulegen iz geg abels auch wenn diese bereits einen Namen hat a amp Open Offnet ebenfalls den Dateidialog im Speichern i main Modus Save l En e New Erstellteineneue Datei Der User wird Save as hierbei aufgefordert den Dateinamen isr1 festzulegen Offnet den Dateidialog im Neu helloWorld Modus amp Share e Open Offneteine existierende Datei Der Dateidialog erscheint im Open Modus e Share Teilt eine Datei Hierbei wird der Quelltext auf einen Server hochgeladen undder User erhalt einen Link den er mit anderen teilen kann Somit erhalten sie ebenfalls Zugriff auf den Quelltext Seite 80 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft DZ gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tool
39. b0 18 or b0 b2 or b0 b3 rl p2 EE b3 dec bl jnz g jmp a end Seite 181 von 197 SPENGERGASSE ausbildung mit zukunft Intelligente Systeme Tools und Methodik HTBLUVA Wien V Informatik hti gt Abteilung Ausbildungsschwerpunkt bildung mit zukunft Befehlsdokumentation Seite 182 von 197 HTBLuVA Wien V Abteilung Ausbildungsschwerpunkt bildung mit zukunft ADCO Word Register Deutsch Liest einen analogenWertvon dem Pin 10 in das Register English Reads an analogue value from pin 10 into the given register Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines OF Code LOC 1 Binary Code 10010000 100RWRwRwRwRw ADC2 Word Register Deutsch Liest einen analogenWertvon dem Pin 12 in das Register English Reads an analogue value from pin 12 into the given register Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines OF Code LOC 1 Binary Code 10010000 110RwRwRwRwRw ADD Byte Register Byte Register Deutsch Addiert die Werte der beiden Register e Zero Flag wird gesetzt wenn das Ergebnis 0 ist e Carry Flag wird gesetzt wenn das Ergebnis gr er als 255 ein Byte ist English Adds the values of both registers e Zero Flagissetif the resultis 0 e Carry Flagissetifthe resultis greater than 255 one byte Anzahl der Unit T ests Number of Unit T ests 3 Codezeilen Lines Of Code LOC 3 Binary Code 00010000 000001 Hehe RgRgRgeRgR
40. carry bit IF the carry Flag is set the leftest bit will beset Example 00000010 gt 00000001 e Carry Flagissetifthe least significant bit of the value was 1 Anzahl der Unit T ests Number of Unit T ests 3 Codezeilen Lines Of Code LOC 5 Binary Code 01000000 100RgRgRsRsRs SUB Byte Register Byte Register SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Tools und Methodik RR Word Register Deutsch Rotiert das Register um ein Bit nach rechts durch Carry Flag Wenn das Carry Flag gesetzt ist wird das linkste Bit gesetzt z B 00000010 10000000 gt 00000001 01000000 e _Carry Flag wird gesetzt wenn das niederwertigste Bit des Wertes 1 war English Rotates the register by one bit to the right through the carry bit IF the carry Flag is set the leftest bit will beset Example 00000010 10000000 gt 00000001 01000000 e Carry Flagissetifthe least significant bit of the value was 1 Anzahl der Unit T ests Number of Unit T ests 3 Codezeilen Lines Of Code LOC 5 Binary Code 01100000 100RwRwRwRwRw SUB Byte Register Byte Literal Deutsch Subtrahiert den Wert des zweiten Registers Deutsch Subtrahiert den gegebenen Wert von dem von dem des ersten e Zero Flag wird gesetztwenn das Ergebnis 0 ist e Carry Flag wird gesetzt wenn das Ergebnis kleiner als 0 ist English Subtracts the value of the second register From the first one e Zero Flagissetif the resultis 0 e Car
41. die tats chlich f r Unterricht verbleibende Zeit erheblich vermindern Diese Probleme soll yasp l sen indem der USB Master i einem Webbrowser inklusive einiger Hardwareelemente wie LEDs einem Potentiometer und zwei Buttons simuliert wird Das bedeutet dass der Aufbau der Hardware entf llt und sich die Vorbereitungszeit auf die Startzeit der Computer beschr nkt Zus tzlich erm glicht yasp den Sch lerinnen und Sch lern auch zu Hause weiter zu Programmieren oder effektiver f r einen Test zu lernen Da der zum USB Master zugeh rige Editor sehr simpel gehalten ist wurde dieser in yasp ebenfalls erweitert was eine weitere Lernh rde eliminiert Um den bergang vom USB Master zu yasp m glichst einfach zu halten wurde die selbe Assemblervariante implementiert Das bedeutet dass problemlos zu yasp gewechselt werden kann ohne die Beispielprogramme und Anleitungen anzupassen Abstract Deutsch Das Projekt hat den USB Master in der HT BLUVA Spengergasse bereits erfolgreich ersetzt und wird derzeit in allen Assembler Stunden eingesetzt Die R ckmeldung von ProfessorInnen und Sch lerInnen ist durchgehend positiv was vor allem auf den Entfall der echten Hardware und den neuen Debugger zur ckzuf hren ist Da das Projekt nicht nur f r Sch lerinnen und Sch lern der Spengergasse interessant ist wurde es auf diversen Blogs und News Seiten wie Hack a day reddit und hackernews ver ffentlicht was zu einer Ge
42. eine Frage gab wurde sie sofort Uber Instant Messaging Skype gestellt und es wurde sofort beantwortet informell und schnell Ich finde dass die Teamgr e und die Teammitglieder f r dieses Projekt perfekt gew hlt wurden Michael Lutonsky war ein sehr f higer Projektleiter und hat sich fast schon perfektionistisch Fur das Projekt eingesetzt Die Meilensteine die wir uns am Anfang des Projektes gesetzt haben haben sich als gut geplant herausgestellt was sich in der besonders fr hen und vor allem erfolgreichen Projektabnahme Ende Februar erkennen l sst Die HTBLUVA Spengergasse vertreten durch Dipl Ing Jelinek war ein sehr angenehmer Projektpartner da wir jederzeit Fragen stellen konnten und wir immer gute Antworten bekommen haben Das einzige was ich zu bem ngeln habe war die Tatsache dass uns 100 00 Budget zugestanden wurde f r Entwicklungsumgebungen und Domainkosten die wir leider nicht erhalten haben wodurch diese Kosten weitgehend auf unseren R cken fiel In Zukunft k nnte ich mir vorstellen weiter an yasp zu arbeiten und neue Funktionen und Verbesserungen zu implementieren Das Projekt hat viel Potential und sollte dieses auch aussch pfen Seite 110 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Styleguides Assembler Styleguide Assemblercode kann auf viele Arten
43. folgenden Tabelle sind unsere Milestones und die zugeh rigen Daten aufgef hrt Es wurden alle Milestones bis auf einen rechtzeitig Fertiggestellt Einzig der 2 Milestone wurde hat sich um ein Monat verz gert wasan der Schnittstelle zwischen Filemanager und Serverkomponente lag Dieser Unterpunkt was unabh ngig vonanderen Milestones so dass die Entwicklung trotzdem wie geplant fortgef hrt werden konnte Ist Datum e Assembler Fertigstellung des Anfang 20 Dezember e Emulator Assemblersund Emulators Dezember inklusive aller Befehle Emulator ohne Debugging Br Debugger Oberflache und Ende J nner ee J nner Be im Emulator Endnutzerdokumentation EndeFebruar Da Februar Befehlsdokumentation Abnahme Seite 119 von 197 ausbildung mit zukunft HTBLUVA Wien V SPENGERGASSE hti bildung mit zukunft P teilung Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Sprint Protokolle 1 Scrum Meeting 0 1 Erkenntnisse und Aktivit ten N chster Sprint Vollst ndige Implementierung des MOV Befehls samt Emulatorarchitektur Implementierung des Assemblers Implementierung aller Direktiven Andere Aktivit ten e Hinzuf gen von User Storysin e API e Debugger e Editor e Anpassungen im Pflichtenhefts e yasp git Repo erweitert Ergebnis Wirk nnen unseren ersten Sprint starten Seite 120 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ S Abteilun
44. meinlabel hat die falsche Adresse in den Maschinencode geschrieben Seite 127 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ S Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik 7 Scrum Meeting 0 6 Erkenntnisse und Aktivit ten FileManager Der FileManager wurde implementiert das hei t man kann nun einfach Dateien speichern laden l schen und umbenennen Dabei wurde ein Driver System implementiert wodurch es m glich ist den FileManager sowohl lokal als auch am Server speichern zu lassen Server Die Serverkomponente von yasp erm glicht es in Verbindung mit dem Filemanager Dateien auf den Schulservern zu speichern Hierbei loggt sich der User mit dem Active Directory Account ein und die Dateien werden entsprechend gespeichert Der Server wurde in PHP geschrieben Localization Localization ist die bersetzung des Programmes in verschiedene Sprachen Hierbei haben wir eine eigene Library geschrieben die dynamisch den HTML DOM abarbeitet und jegliche Texte in die entsprechende Sprache bersetzt Die Daten f r die Sprachen sind in den Dateien langs de js f r Deutsch und langs en js f r Englisch hinterlegt Seite 128 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ S Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik 8 Scrum Meeting 0 7
45. result is greater than 255 one byte Jo n de same as en version D Tests for this command which are executed by the EmulatorTester See doc testing instructions md for more information A testcase here must not use any commands but its own as this is the only one available Assembler directives may be used though tests the code is the static part of the bitcode which is representing this comm and It is at the very beginning of the bitcode and must be unique across all instructions since the emulator uses it to identify the commands The value can be given as number Literal or as string containing a binary representation of a number Literal Seite 143 von 197 HTBLUVA Wien V SPENGERGASSE ht f ausbildung mit zukunft A Abteilung Informatik E ai Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik values must not exceed one byte in Length binary values do not have a Len gth Limitation code value 0x10 value 000001 length 6 L The parameters of this command are used by both the assembler and the emu Lator They consist of a type and an optional valueNeeded attribute which indicates that the value of ar egister parameter is not used in the instructions code and should not be Loaded which can give your comman da serious performance boost Currently the number of parameters is restri
46. schen von Haltepunkten mit Durchgangsz hlern schrittweise Ausf hrung Simulation der Hardware LED wird je nach Anteil des Leuchtens in ihrer Helligkeit simuliert PWM Simulation eines Schrittmotors Javascript Ausf hrung in Firefox Safari Android Browser Opera Internet Explorer Objekte f r simulierte Hardwareelemente und Darstellungselemente keine Toolboxen f r Javascript Seite 18 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft hti Abteilung Informatik bildung mit zukunft Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik SCRUM Tools Als Projektentwicklungsmodell wurde w hrend der Entwicklung von yasp auf SCRUM gesetzt Konventionelle Projektverwaltungswerkzeuge wie das von der Schule zur Verf gung gestellte MS Project unterst tzen diese Form des Projektmanagements unzureichend weshalb wir gezwungen waren eine Alternative zu suchen Untersuchung Im Rahmen der V orstudie haben wir mehrere SCRUM Tools auf ihre Funktionen untersucht Eine der harten Voraussetzungen f r das Tool waren keine beziehungsweise nur geringe Kosten da die Schule das notwendige Budget nicht zur Verf gung stellen konnte Zus tzlich muss das Tool eine Exportfunktion besitzen da wir diese f r die Zeitauswertung ben tigen Die Ergebnisse unserer Recherche finden sich in folgender Tabelle Kosten Plattform Fehlende Funktionen Targetprocess Gratis Web MangelhaftesSprintmanagement keine Burndown
47. spaces 2 Corresponding linein the language file settings tabSize spaces spaces Seite 142 von 197 HTBLUVA Wien V SPENGERGASSE hkl ausbildung mit zukunft BR a Abteilung Informatik bildung mit zukunft Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Instructions An instruction in yasp consists of a singlefileinsidethe src app instructions directory Thereis no code in the emulator or assembler dealing with specific instructions Although some new instructions might need additional Featuresin the emulator The instructionsin the instructions directory are later combined into src app js commands js Thisis done by the grunt task commands or watchcommands which can be used to update the File automatically once something has changed Internally this is done by the doctool Format of an instruction file name of the instruction used by the assembler to identify it in the code name ADD documentation section each instruction should be documented in English and German but the Engli sh version is more important doc an general description of what this command does description Adds the values of both registers if the command sets any flags you should document when these flags a re set here if there are no flags set at all you can ombit the flags section tot ally flags z is set if the result is 0 c is set if the
48. the CPU Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 1 Binary Code 00111000 CLR Byte Register Deutsch Setzt den Wert des Registers auf 0x00 English Sets the value of the register to 0x00 Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 2 Binary Code 01000000 011 RgRgRgRgRsg CMP Byte Register Byte Register Deutsch Vergleicht zwei Werte e Zero Flag wird gesetztwenn die Werte gleich sind Carry Flag wird gesetztwenn der zweite Wert gr erist als der erste English Compares two values e Zero Flagissetif the values are equal e Carry Flag is setif the second valueis greater than the first value Anzahl der Unit T ests Number of Unit T ests 3 Codezeilen Lines Of Code LOC 3 Binary Code 00010000 000011RgRg Be Bra Be Beie Be De SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Tools und Methodik CALL Label Deutsch Pusht die aktuelle Position als Word auf den Stack und springt dann zum gegebenen Label English Pushes the current position onto the stack and jumps to the given label Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 2 Binary Code 11000AAA AAAAAAAA CLR Word Register Deutsch Setzt den Wert des Registers auf 0x0000 English Sets the value of the register to 0x0000 Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines OF
49. the register Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 1 Binary Code 01010000 001 ReReRsReRs SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Toolsund Methodik POP Byte Register Deutsch Nimmt das oberste Byte von dem Stack und schreibt es in das Register English Takes the top byte from the stack and writes it into the register Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines OF Code LOC 1 Binary Code 01000000 111 RgRgRgRgRsg POT Pin Word Register Deutsch Liest einen analogen Wertvon dem gegebenen Pin English Reads an analogue value from the given pin Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines OF Code LOC 1 Binary Code 00010000 100110PP PPPRwRwRwRwRw PUSH Word Register Deutsch Pusht ein Word auf den Stack Das niederwertige Byte wird zuerst gepusht English Pushes one word onto the stack Theleast significant byte is pushed first Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 1 Binary Code 01100000 110RwRwRwRwRw RETI RET RETURN Deutsch Springt aus einer Subroutine oder einem Interrupt heraus Es wird Word vondem Stack gelesenund als Zieladresse genutzt English Jumps out of a subroutine orinterrupt One wordis read from the stack and used as targetaddress Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Line
50. 0 0x0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AYAAAN AA AA AA AA AA on _AA_AA_AA AA_AA AN AA _AA_AA_AM 7 In der RAM View kann der aktuelle Inhalt des RAMs berpr ft werden Im RAM liegen unter anderem die Werte der Register Anderungen seit dem letzten Step werden rot markiert Dieser Tab wird aus Performancegr nden nur bei jedem Step aktualisiert und nicht im run Modus Seite 91 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft I gt Abteilung Informatik an una Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik ROM View Debug RAM ROM Registers Breakpoints 0x0000 00 00 00 00 01 20 00 el 04 10 04 0150 00 08 18 0x0010 a0 45 30 60 75 30 bO 09 a0 44 bO 09 a0 43 dO 21 0x0020 3b 68 65 6c 6c 6f 20 77 6f 72 6c 64 00 00 00 00 0x0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0080 00 00 00 00 00 00 00
51. 00 00 00 00 00 00 00 00 00 0x0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AYAA A AA_AA_AA_AA_AA_AA_AA_AA_AA AA _AA_AA_AA_AA _AA_AA hd In der ROM Viewkann der aktuelle Inhalt des ROMs berpr ft werden Im ROM liegen vor allem der assemblierte Programmcode welcher in der Abbildung sichtbar ist Zus tzlich befindet sich ab 0x100 die Interrupttabelle welche ebenfalls berpr ft werden kann nderungen seit dem letzten Step werden rot markiert Dieser Tab wird aus Performancegr nden nur bei jedem Step aktualisiert und nicht im run Modus Register Debug RAM ROM Registers Breakpoints 3 registers Format HEX Stack CZ PC SP bO Se 9 00 000e 0056 co SS SS BYE 0 _ 000c C055 CO 28 C C k saa Laadad aa A LE A EENEG e _6 0 0 0018 0055 a0 0 O K O aaa 2 510 0 0014 0055 a0 20 a 0012 0055 a0 20 gt CH 0010 0055 a0 20 000e 0055 a0 20 000c 0054 a0 20 Dieser Tab wird ausPerformancegr nden nur beijedem Step aktualisiert und nicht im run Modus Niwis oioio HZH 1 Registerwerte Hier sind die Werte der Flags der SPRs Special Purpose Registers und aller verwendeten GPRs General Purpose Registers zu sehen Bei jedem Step wird eine Zeile in der History hinzugef gt so dass sich nderungen mit Hilfe der Einf rbung leicht nachvollziehen lassen 2 Stack Der Stack welcher hier vonoben nach unten w chst ist ebenfalls sichtbar Das oberste Elemen
52. 3 turn on LED loop as long as the button is not pressed El pin L jz EL low 3 turn the LED off Loop as long as the button is pressed t1n pin 1 jnz Eln jmp Start end Seite 178 von 197 HTBLuVA Wien V SPENGERGASSE ausbildung mit zukunft Informatik bildung mit zukunft Abteilung 7 Testprogramm Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik yasp increment or decrement w0 by pressing two but testprogram 07 t the register ttons This is done using in terrupts For more information on interrupts see testprogram 05 nit enable 0x06 enable interrupts on pin 1 and 2 mov w0 500 initialize value nterrupt service routine for pin 1 i ll ll ll H H ei LEDs toggle 3 e all toggle 4 togg a toggle 5 send value debug w0 to debugger jmp inc reti dec reti org da org da interrupt service routine interrupt service routine interrupt main for pin 1 wo for pin 2 wo table 0x2102 7 pin isrl 0x104 isr2 pin 2 end 8 Testprogramm a z 4 A yasp testprogram 08 toggle the red LED every 5 seconds main high 3 turn red LED on delay 30000 wait 0 5s low 3 turn red LED off delay 30000 wait 0 5s jmp main end Seite 179 von 197 HTBLU
53. Bootstrap jQuery Editor CodeMirror Icons Font Awesome Befehlsdokumentation JSDoc doctool Eigene Entwicklung Task Runner grunt Packet Manager npm Projektentwicklung e Versionsverwaltung GitHub e Projektmanagement OnTimeNow e Entwicklungsumgebung W ebStorm Seite 20 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft i Abteilung Informatik bildung mit zukunft AUsbildungsschwerpunkt Intelligente Systeme Tools und Methodik Vorgehensweise Projektmanagement Zur Organisation des Projektes haben wir eine f r den Schulgebrauch angepasste V ersion von SCRUM verwendet Die User Storieswurden alle vor Projektbeginn erstellt gerankt und in Kategorien zum Beispiel Emulator oder Assembler ein geteilt Da das Projekt mit zwei Mitgliedern sehr klein war und es zu diesem Zeitpunkt ein ausf hrliches Pflichtenheft gab haben wir auf eine genauere Beschreibung der Stories verzichtet und es nur bei einem Titel belassen Zum Beispiel ist die Story Registers View Kategorie IDE Debugger nur im PflichtenheftanhandeinesMockupsn her beschrieben wasim nachhinein betrachtet v llig ausgereicht hat SCRUM Tool OnTimeNow Wiein der Vorstudie beschrieben haben wir mehrereSCRUM Tools auf die Tauglichkeit f r unser Vorhaben untersucht Letztendlich haben wir uns f r OnTimeNow von axosoft entschieden welches ein Web Tool ist Ein Account f r zwei Benutzer wurde uns von axosoft kostenlos f r S
54. ERAM und READRAM Der USB Master bietetkeine M glichkeit an beliebige Adressen im RAM zu schreiben oder diese zu lesen Diese Funktionalit tistwichtig f r Compiler welche den USB Master oder yasp als Plattform verwenden Dies wurdein yasp durch die zus tzlichen Befehle WRRAMund RDRAM erg nzt N heres ist in der Hilfe Funktion zum jeweiligen Befehl zu finden Binarsignatur von LA Beim USB Master teilt sich LA die Signatur mit MOV w 1 Das ist mit dem modularen Aufbau von yasp nicht ohne Tricks realisierbar Deswegen nderte sich die Bin rsignatur zu code register label address 0x28 000ddddd XXXXXXXX XXX00000 Seite 104 von 197 SPENGERGASSE ausbildung mit zukunft HTBLuVA Wien V Abteilung Ausbildungsschwerpunkt bildung mit zukunft Informatik Intelligente Systeme Tools und Methodik DEFINE Direktive Es wurde eine DEFINE Direktive eingef hrt die es erlaubt Synonyme im Sourcecode einzuf hren Eine solche wird zwar in der USB Master Dokumentation verwendet allerdings nicht dokumentiert Sie kann unter anderem verwendet werden um den Code leichter lesbar zu machen zum Beispiel DEFINE LED YELLOW 3 HIGH LED YELLOW p vs HIGH 3 Umgesetzte Instruktionen Wir haben knapp zwei Drittel der im USB Master verf gbaren Instruktionen umgesetzt In der nachfolgenden Tabelle ist sichtbar welche Befehle geplant und umgesetzt wurden Geplant Umgesetzt Kategorie Befehl Kat
55. Erkenntnisse und Aktivitaten Debugger In diesem Sprint wurden die Grundfunktionen des Debuggers implementiert Ein Gro teil der Arbeit war die Schaffung der notwendigen Infrastruktur wie zum Beispiel das Tab System oder die eigentliche Verbindung zum Emulator selbst Zus tzlich kann sich der Nutzer nun den Inhalt des RAMs und ROMsanschauen Der Debugger beherrscht auch alle grundlegenden Funktionen wie Stepping oder das Anzeigen der aktuellen Zeile im Editor Debug Commandos Die beiden Debug Instruktionen ECHO eine Zeichenkette ausgeben und DEBUG einen Registerwert ausgeben wurden implementiert und die notwendige Ausgabem glichkeit im Debugger geschaffen Somit ist es nun m glich Werte zum Debugger zu schicken Technische Dokumentation Erste Schritte im Bereich der technischen Dokumentation wurden ebenfalls get tigt Es gibt nun eine genaue Beschreibung des Instruktionsformates von yasp und grundlegende Informationen zum Emulator Seite 129 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ S Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik 9 Scrum Meeting 0 8 C Erkenntnisse und Aktivit ten Debugger Im letzten Sprint wurden weitere Debugger Features implementiert Das Wichtigste ist wohl der Register Tab in dem man die Werte alle im Codeverwendeten Register berpr fen kann Dort ist auch eine History aller vorherigen We
56. Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Quelitext eingeben Testdaten Testfall01 in die IDE eingeben Testresultat Das Eingabefenster der IDE beinhaltet den eingegebenen Quelltext Suchen Testdaten Testfall01in die IDE laden ffnen der Suchfunktion via Shortcutoder Men punkt Eingabe des Suchterms JMP Testresultat Daserste Suchergebnisvon JMPwird hervorgehoben und dasEingabefenster ui a SS en Ersetzen Testdaten Testfall01in die IDE laden ffnen der Ersetzen Funktion via Shortcutoder Men punkt Eingabe des Suchterms JMP Eingabedes Ersetzungsterms GOTO Jedes Vorkommnis mit Yes Bestatigen Testresultat Jedes VorkommnisvonJMPist nun ein GOTO Gehe Zu Zeile Testdaten Testfall01in die IDE laden ffnen desentsprechenden Dialogs im Men Eingabe der gew nschten Sprungzeile 42 Testresultat Die Zeile 42 wird hervorgehoben und das Eingabefenster springt an die entsprechende Position Seite 57 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ gt Abteilung bildung mit zukunft S Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Schnellhilfe Testdaten 1 Testfall01in die IDE laden 2 Cursorzu einem bestimmten Befehl bewegen Testresultat Es werden die Befehlsdefinition die Beschreibung und die entsprechenden Parameter angezeigt Testdaten 1 Hilfebuttonmit der Maus dr cke
57. OV 123 PUSH 123 POP 123 Dieser Screen ist lediglich ein Mockup und kann sich im Laufe der Entwicklung ndern Links ist das Codepanel dasnicht editierbar ist Uber dem Codepanel sind die Debuggingaktionen Step In Step Back Continue Rechts oben davon ist die Informationsansicht die den aktuellen Status ausgibt F r weitere Informationen siehe entsprechende Mockups e GE unten von dem Codepanelist eine Ansicht die den aktuellen Hardwarestatus ausgibt Seite 37 von 197 HTBLUVA Wien V SPENGERGASSE Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik ht ausbildung mit zukunft Abteilung i bildung mit zukunft Debugger Informationsansicht SE O1FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA O1FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA O1 FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA O1FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA O1 FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01 FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA 01FF AA 56 10 45 BB FF AA
58. Payload empty object Error Payloads O0 countisnegative skipBreakpointis of invalid type Seite 169 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft Fr Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Message BREAK Stopsthe execution This will also cause a BREAK broadcast to be issued Message Payload empty object Response Payload empty object Error Payloads none Message GET_STATE Get the current state of the emulator such asregisters pc stack and so on Message Payload empty object Response Payload state object see Data section in emulator documentation Error Payloads none Message SET_STATE Sets the currentstate of the emulator Message Payload state object see Data section in emulator documentation Response Payload empty object Error Payloads none Seite 170 von 197 LAA Wien V SPENGERGASSE ausbildung mit zukunft ht Abteilung Informatik a Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik Testprogramme Folgende Assembler Codeswurden verwendet um dieFunktionalit tvon yaspsicherzustellen Sie wurden bei der Abnahme und w hrend der Entwicklung alsBasiscodesverwendet da sie sehr viele Aspekte des Emulatorsabdecken Seite 171 von 197 bildung mit Eskuan HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft Abteilung Informatik Ausbildungsschwerpunkt Intelli
59. Projektbeschreibung Zielbestimmung Soll Ziele Kann Ziele Nicht Ziele Produkteinsatz Anwendungsbereiche Zielgruppen Betriebsbedingungen Entwicklungsumgebung Produktfunktionen undProduktumsetzung Komponentenkommunikations bersichtsdiagramm Produktdaten Produktleistungen Anhang 1 Glossar Anhang 2 Befehlsdokumentation Anhang 3 Abnahmeprotokoll Anhang 5 Hardware Anhang 5 Emulatoraktivit tsdiagramme Einstellungen FileManager Pilichtenheft XK Projektbeschreibung PX jZielbestimmung IT k Sottziee o E P e E Kann Ziele o K K e O Nicht Ziele S E A e OE Produkteinsatz ITT O Anwendungsbereiche PX Zielgruppen S o A e O Betriebsbedingungen PK pEntwicklungsumgebung TX N ProduktfunktionenundProduktumsetzung TX KomponentenkommunikationsUbersichtsdiagramm X Produktdaten PK Produktleistungen eeh S O Anh ang1 Glossar KK Anhang Befehlsdokumentation X O Anhang3 Abnahmeprotokoll X Anh ang5 Hardware TT O Anhang 5 Emulatoraktivit tsdiagramme X Joo o S y O DE S 2S SY Einstellungen o S A e O FteManager TT SE Seite 196 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft m Abteilung Informatik RE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Debugger A Abnahme Ver ffentlichung Abschlussbericht Anregungen f r Folgeprojekte Styleguides PROJEKTDOKUMENTATION eitaulwandsauswertung Milestoneplanung
60. RN e JZ e JNZ e JC e JNC e JMPI Interrupts e ENABLE e DISABLE e RET e LA kinda alias FUr Mov Debugging e DEBUG e BREAK e ECHO Hardwarebefehle e HIGH e LOW e TOGGLE e PIN e POT e ADC1 Sonstiges e DELAY e PAUSE aliasf r DELAY e RANDOM Zus tzliche Befehle Diese Befehlesind nichtin der Dokumentation definiert sind aber f r Folgeprojekte sinnvoll und werden deshalb zus tzlich implementiert e WRITERAM e READRAM Direktiven e ORG Setzt die aktuelle Position im Bitcode e STRING Schreibt einen nullterminierten String in den Bitcode e DA Schreibt die Adresse des gegebenen Labels in den Maschinencode e DB Seite 47 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ S Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Schreibt ein Byte in den Bitcode e END Beendet die Assemblierung e DEFIN Definiert einen Alias Seite 48 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ ou Abteilung bildung mit zukunft Informatik s Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Anhang 3 Abnahmeprotokoll Testprogramm 01 Testprogramm 02 Testprogramm 03 Testprogramm 04 Testprogramm 05 Testprogramm 06 Ja Testprogramm 07 Testprogramm 08 Testprogramm 09 Testprogramm 10 Unit Tests U
61. SPENGERGASSE HTBLuVA Wien V hll ausbildung mit zukunft H here Lehranstalt f r Informatik Ausbildungsschwerpunkte Intelligente Systeme Tools und Methodik bildung mit zukunft Abschlussdokumentation Ausgef hrt im Schuljahr 2013 14 von Betreuer Michael Lutonsky 5EHIF Dipl Ing Robert Jelinek Robert Fischer SAHIF Dipl Ing Joachim Gr neis Wien am 14 04 2014 Eidesstattliche Erkl rung Ich erkl re an Eids statt dass wir die vorliegende Diplomarbeit selbstst ndig und ohne fremde Hilfe verfasst andere als die angegeben Quellen und Hilfsmittel nicht benutzt und die den benutzten Quellen w rtlich und inhaltlich entnommenen Stellen alssolche erkenntlich gemacht habe Wien am 14 04 2014 Michael Lutonsky SEH Robert Fischer SAHIF HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ht Abteilung Informatik bildung mit zukunft Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik DIPLOMARBEIT Dokumentation Name der MichaelLutonsky 5EHIF Verfasser innen Robert Fischer SAHIF Jahrgang Klasse SAHIF 2013 14 Schuljahr SEHIF 2013 14 Reimplementierung des USB Masters im Web samt Debugger Thema der Diplomarbeit Assembler Editor und Emulator H here Technische Bundes Lehr und Versuchsanstalt Kooperationspartner Spengergasse 20 A 1050 Das Ziel unseres Projekts ist die Bereitstellung einer plattformunabh ngigen Entwicklungsumgebung um Sch lern und Sch lerinnen
62. USB Master wird nat rlich auch Einzug in yasp finden Die F higkeit das aktuell laufende Programm zu stoppenund jeden Winkel des Speichers zu begutachten hilft den Sch lerinnen und Sch lern die Materie besser zu verstehen und dabei Spa zu haben Seite 13 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft l I Abteilung Informatik bildung mit zukunft Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Grundlagen und Methoden Seite 14 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft i Abteilung Informatik bildung mit zukunft AUsbildungsschwerpunkt Intelligente Systeme Tools und Methodik Projektantrag DIPLOMARBEIT SAHIF SEHIF Reife und Diplompr fung 2013 14 Reimplementierung des USB Masters im Web samt Debugger Assembler Editor und Emulator Das Ziel unseres Projekts ist die Bereitstellung einer plattformunabh ngigen Entwicklungsumgebung die eine komfortable M glichkeit bietet den Umgang mit Assembler zu erlernen Aufgabenstellung Kurzfassung Das bedeutet dass die Sch lerinnen und Sch ler sich nicht mehr um das komplizierte Auf und Abbauen der Hardware k mmern m ssen sie eine zuverl ssige Plattform verwenden k nnen und dadurch mehr Spa beim Entwickeln haben Weitersk nnen sie auch zu Hause den Umgang mit Hard und Softwareelementen lernen Zus tzlich erleichtert das den Unterricht der Lehrerinnen und Lehrer sehr da sie sich keine Sorg
63. VA Wien V SPENGERGASSE htl ausbildung mit zukunft Fr Abteilung Informatik E ai Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik 9 Testprogramm yasp testprogram 08 Simulate a traffic light using the 3 LEDs red green yellow MOV WI 60000 MOV W2 20000 MOV W3 40000 main HIGH 3 red on DELAY W1 long HIGH 4 yellow on DELAY W3 short LOW 3 both off LOW 4 HIGH 5 green DELAY W1 long DELAY W loop 4 times MOV W4 4 blink LOW 5 blink green LED DELAY W2 HIGH 5 DELAY W2 DEC w4 JNZ blink LOW DELAY W2 Oo h h r green Ori CH ELAY W3 LOW 4 Seite 180 von 197 Tata Wien V SPENGERGASSE Informatik Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik htl ausbildung mit zukunft zo gt Abteilung bildung mit zukunft 10 Testprogramm Register 7 bO Anzeige lt pl Z hler p2 rechteste Bit beim Start b3 linkeste Bit beim Start 7 uster gt 1001 0011 0101 0010 0011 0110 0001 1010 0001 1010 0011 0110 0101 0010 1001 0011 0101 0010 a fix 0001 0010 zusammensetzen 0001 0010 0100 0010 siec 0101 0010 Rechenoperation Oder a mov b2 1 mov en 128 p mov bl 7 er mov
64. X yasp just yasptastic D Ausf hren Speichern Laden Hllfe Einstellungen Suchen Ersetzen Gehe zu Zeile Wiederholen R ckg ngig Dieser Screen ist lediglich ein Mockup und kann sich im Laufe der Entwicklung ndern Seite 39 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Qualitatsanforderungen SieheAnhang 3 Abnahmeprotokoll Nichtfunktionale Anforderungen Datenschutz Da das Projekt yasp eine Serverkomponente hat und dementsprechend Daten der Sch lerinnen und Sch ler gespeichert werden muss sichergestellt sein dass keine Daten in falsche H nde geraten Dies wird durch optional setzbare Passw rter erreicht Seite 40 von 197 TER en vi SPENGERGASSE ht i ausbildung mit zukunft ZZ Abteilung Informatik ALAND NIE ZURHNTE Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik Anh nge Glossar Befehlsdokumentation Abnahmeprotokoll Protokolle und Datenstrukturen Hardware Emulator Aktiv it tsdiagramme su E a Seite 41 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft 7 gt Abteilung bildung mit zukunft S Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Anhang 1 Glossar Emulator F hrt Maschinencode auf Plattformen aus welche ganz andere Umgebungs
65. aScript Breakpoint Wenn dieProgrammausf hrung einen Breakpointerreicht wird pausiert und man kann alle notwendigen Informationen im Debugger begutachten Web Worker Erm glicht die parallele Ausf hrung von Befehlen in Browsern Callback Eine Funktion die aufgerufenwird sofern ein Ereignis bzw ein Ergebniseiner Berechnung vorliegt PC Program Counter Ein Wertim Emulator der auf den aktuell auszuf hrenden Befehl zeigt Mockup Wireframe Eine nicht finale Darstellungeiner Softwarekomponente Dienthaupts chlich um die generelle Funktionsweise n herzubringen erkannt werden kann wo ein String aufh rt Seite 43 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ gt Abteilung Informatik E a Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Anhang 2 Befehlsdokumentation Ein Befehl Jeder Befehl befindet sich in einer eigenen JavaScript Datei In dieser Datei befinden sich Metadaten zum Befehl sowie der eigentliche JavaScript Code um den Befehl auszuf hren Diese Informationen werden vom Parser Emulator und au erdem zum Erzeugen der Dokumentation verwendet Befehlsformat name MOV description code value string number length 8 l params type r_byte r_word I_byte l_word pin address J l exec function Code Die Code Eigenschaft gibt den statischen Start eines Befeh
66. able address null see table Thereis a number of Functions you can use inside the exec Function to interact with the emulator They aredocumented in the class documenation All Functions marked as private must not be called Seite 145 von 197 ausbildung mit zukunft bildung mit zukunft Abteilung Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik TBA wien SPENGERGASSE htl Boilerplate name doc en description flags ze rA o mn 3 3 de description flags oy aa Hom mn A tests d cmd setup steps l code value 0x00 l params valueNeeded true type r_byte l checkFlags z false exec function rbyte Seite 146 von 197 ETS SPENGERGASSE htl ausbildung mit zukunft Fr Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Hardware All hardware elementsin yasp sharea common interface which allows the breadboard tosetand get their state but also set parameters like their color A hardware element should always Fill up all space given in its wrapper element Additionally it must not communicate with the emulator but relyonthe breadboard to do this It should also never be initialized by itself but defined ina breadboard file For moreinformation about breadboardstak
67. acoestozecss ASSO MIE ees scssansisscsaccscessenseisstosanscesseadvadessassctessasuasteesadcvassvesasede TO SUING EEE E AEN E EA E W UE EMUlAat OF sisssscscsssssccssesncecssssecacsnsesadcsosssnacessuscscsosscseesssosseacoscseccess Emulator D ata viz saccsssasciastssssscvssascusdosssecsssonsecasosssnscensasccesoessoneess Emulator MSS ARES sicinsinsccscscccosscesoscsascossseseveronsnosssn cevcecsnssesstes Testprogramme sc0sus200004002006sn000s00n000n na0s00nnanssnaransesenenneee BEFEHLSDOKUMENTATION AUTORENZUORDNUNG Seite 10 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft i Abteilung Informatik bildung mit zukunft AUsbildungsschwerpunkt Intelligente Systeme Tools und Methodik Einleitung Seite 11 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft i Abteilung Informatik bildung mit zukunft AUsbildungsschwerpunkt Intelligente Systeme Tools und Methodik IST Zustand Sch ler und Sch lerinnen der ersten und zweiten Klassen der HTBLVA Spengergasse lernen im Unterricht den Umgang mit Assembler und der entsprechenden Hardware Momentan wird hierf r der USB Master verwendet Dies ist eine eigens von Dipl Ing Tarkany entwickelte Hardware auf welcher mit einem vereinfachten Assemblerdialekt programmiert werden kann Die Programmierung selbst geschieht in dem ebenfalls von Dipl Ing Tarkany geschrieben Programm mas editor analyze button run button editor E grenzen ma
68. an unknown action was sent ready yasp Communicator UNKNOWN_ACTION break Seite 150 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft I gt Abteilung Informatik E E Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik send a broadcast communicator broadcast TEST payload reason reason Jo error null Main Threads POV var communicator new yasp Communicator url to file js communicator sendMessage MSG NAME params of message see documentation of the specific communicator impl you re working with function data var error data error var payload data payload function broadHandler data var error data error var payload data payload subscribe to an broadcast message communicator subscribe BROAD NAME broadHandler unsubscribe again communicator subscribe BROAD NAME broadHandler kill webworker communicator terminate Seite 151 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft I SS Abteilung Informatik E a Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Breadboards A breadboard isresponsible for handling the hardware elements It wires up the hardware to the emulator relaysevents and aligns the hardware asspecified in one of the breadboard files Additionally it shows the user which hardware is attached to which pin and has
69. arning assembly with a web based assembler Seite 98 von 197 HTBLUVA Wien V SPENGERGASSE Informatik Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik hkl Se ausbildung mt zukunft A Abteilung bildung mit zukunft r i Four short links 21 February 2014 O Reilly Radar O Reilly betreibt ein Fachblog in dem jeden Tag RER sccianetwork algorithms freier y g J g 4 neua rtig e Proje kte in ku rzer Fo rm by Nat Torkington gnat Nat Torkington Comment February 21 2014 ve ro ffe n tl ic h t we rd en Am 2 1 Fe b ruar 201 4 1 Mapping Twitter Topic Networks Pew Internet Conversations on Twitter create war yasp d a b ei D ies war zu s tzl ic h ein e d er networks with identifiable contours as people reply to and mention one another in their tweets These conversational structures differ depending on the subject and the ers te n R ea ktio nen au F d as P roj e kt in d er people driving the conversation Six structures are regularly observed divided ER a unified fragmented clustered and inward and outward hub and spoke structures O ffe n tl IC h ke t These are created as individuals choose whom to reply to or mention in their Twitter messages and the structures tell a story about the nature of the conversation via Washington Post Lin k h ttp J ra d ar o reill y LO My 201 4j 02 fo Hits 2 yasp a fully functional web based assembler development environment including 2 h o rt
70. as Byte Register e _Carry Flag wird gesetzt wenn die Adresse au erhalb des RAMs liegt English Reads the valuein RAM at the address of the word register into the byte register e Carry Flag is setif the address is outside the bounds of the RAM Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 2 Binary Code 00010000 000111RgRg ReReReRwRwRwRwRw RLWord Register Deutsch Shiftet das register um ein Bit nach links in das Carry Flag Wenn das Carry Flag gesetzt ist wird dasrechteste Bit gesetzt z B 00000010 10000000 gt 00000101 00000000 e _Carry Flag wird gesetzt wenn das h chstwertigste Bit des Wertes 1 war English Shifts the register by one bit to the leftinto the carry bit IF the carry Flag is set the rightest bit will beset Example 00000010 10000000 gt 00000101 00000000 e Carry Flagissetif the most significant bit of the value was 1 Anzahl der Unit T ests Number of Unit T ests 3 Codezeilen Lines Of Code LOC 5 Binary Code 01100000 101 RwRwRwRwRw Seite 192 von 197 HTBLuVA Wien V Abteilung Ausbildungsschwerpunkt bildung mit zukunft RR Byte Register Deutsch Rotiert das Register um ein Bit nach rechts durch Carry Flag Wenn das Carry Flag gesetztist wird das linkste Bit gesetzt z B 00000010 gt 00000001 e _Carry Flag wird gesetzt wenn das niederwertigste Bit des Wertes 1 war English Rotates the register by one bit to the right through the
71. as successfully replaced the USB Master and is currently being used in all assembly lessons The Feedback from students and teachershas been great sincetheydo not have to worry about hardware problems anymore It is also easier For them to work with the software now because of the improved debugger and editor Since this project is not only interesting to students of the HTBLUVA Spengergasse the project has been publicized at numerous blogs and news sites like Hack a day reddit and hackernews It has been met with a great response and a total number of hits over 40 000 in early 2014 at the project s website http yasp me Prufer in teilungsvorstand Approval Date Sign Seite 8 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft hti em Abteilung Informatik bildung mit zukunft AUsbildungsschwerpunkt Intelligente Systeme Tools und Methodik Inhaltsverzeichnis EINLEITUNG ee neh 11 IST ZUSE Il aaa E E ala rhenenenrn eng A E 12 SOLL ZUSt ain ssascasssscsssssscscsassnsctsnsscceasossenccoosossccsovseaccessosssacoossocecesoesteconss osctsensosnastuassicussoveneatesssnsusosuescussessssassovonasssssdacnssoeeseucios 13 GRUNDLAGEN UND METHODEN vwssssitvccececivesscncissscessiecscccdsoctcacsedetssstscendsavtedsiatstecceciivesences 14 Projekt ntrag u n geg 15 V E 18 VOFRENEMS WISE A ATL E TE E ENE EE scenesdeasebaheca senestovehe E ES 21 ERGEBNISSE issiecsetssasncsceriencasansav
72. ates the 1 s complement of the specified register e Zero Flagissetif the resultis 0 Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 2 Binary Code 01000000 010RgRgRgRgReg JC Label Deutsch Springt zum gegebenen Label wenn das Carry Flag gesetztist English Jumps to the given label only when the carry flag is set Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 1 Binary Code 00001AAA AAAAAAAA JMPI Word Register Deutsch Springt zur adresse aus dem Word Register English Jumps to the address given in the word register Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 1 Binary Code 01110000 001RwRwRwRwRw JNZ Label Deutsch Springt zum gegebenen Label wenn das Zero Flag gesetzt nicht ist English Jumps to the given label only when the zero Flag is not set Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 1 Binary Code 11110AAA AAAAAAAA Seite 188 von 197 HTBLuVA Wien V Abteilung Ausbildungsschwerpunkt bildung mit zukunft JZ Label Deutsch Springt zum gegebenen Label wenn das Zero Flag gesetztist English Jumps to the given label only whenthe zero Flag is set Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 1 Binary Code 11100AAA AAAAAAAA LOW Pin Deutsch Setzt den Pin auf den low bzw aus Zustand
73. bedingungen bereitstellen und erfordern Dabeiwerden auf der auszuf hrenden Plattform die entsprechenden Komponenten der jeweiligen Zielplattform implementiert Ubersetzt Quellcode in Maschinencode IDE Steht f r Integrated Development Environment Eine m glichstkomfortable Umgebung dieso abgeschlossen d h ohne externe Tools wie m glich agiert Entwicklungsumgebung Siehe IDE Debugger Erlaubt das genaue Inspizieren von laufenden Programmen und den Werten im Speicher Programmiersprache Eine Programmiersprache definiert eine Syntax diedann vomComputer alsLogikoperationen ausgef hrt werden kann Gehirn des Computers f hrt die Befehle aus Wird direktvon der CPU ausgelesen und ausgef hrt Dialekt Eine Abwandlungeiner anderen Programmiersprache Programmiersprachen Analog zu einem Dialekt in menschlichen Sprachen Ein Feld in das man Text oft Quelltext eingebenkann Hebt gewisse Schl sselw rter im Editor hervor Sourcecode geschrieben werden umein Ziel zu erreichen RAM Random Access Memory Ein Fl chtiger tempor rer Speicher indemProgrammdaten gespeichert werden k nnen Seite 42 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft GT Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik JavaScript Eine dynamisch typisierte Programmiersprache die auf allen Browserplattformen zurVerf gung steht ECMA Script Siehe Jav
74. belle e Map Das Format und die genauen Inhalte dieser sind in Anhang 2 Befehlsdokumentation n her definiert Welche Befehle vom Assembler in welcher Weise umgesetzt werden ist in Anhang 2 Befehlsdokumentation definiert Die Assemblierung einer Quelldatei unterteilt sich in Folgende Schritte die der Reihe nach ausgef hrt werden 1 Lexikalische Analyse Zerteilt den Quellcode in einzelne Tokens 2 Syntaktische Analyse berpr ft die syntaktische Korrektheit 3 Semantische Analyse Erstellt die Map SieheAnhang 4 Protokolle und Datenstrukturen 4 Pr prozessor Ersetzt die Direktiven 5 Parser Erkennt anhand der Tokens die Befehle und erstellt eine entsprechende Darstellung im Speicher 6 Generator Generiert anhand der zuvor in den Speicher geladenen Befehlen den Maschinencode der schlie lich vom Emulator ausgef hrt werden k nnen Externe Kommunikation Siehe Anhang 4 Protokolle und Datenstrukturen Emulator Der Emulator f hrt den vom Assembler generierten Maschinencode aus Er l uft in einem eigenen Web Worker was eine ruckelfreie Entwicklungsumgebung f r die User schafft F r weitere Informationen bez glich unterst tzter Befehle siehe Anhang 2 Befehlsdokumentation Ein Aktiv it tsdiagramm welches die genaue Funktionsweise des Emulators erkl rt befindet sich im Anhang 6 Emulator Aktivit tsdiagramme Interrupts yasp unterst tzt Interrupts Siehe Befehle DA ORG INT ENABLE DISAB S
75. bers to instruction positions The generator usesthe yasp BitWriter which is used to write simple bit data internally writes into a string andreturnsan Uint8Array For moreinformation see assembler generator js EBNF To givearough overviewof thesyntaxhereis an EBNF of the syntax byteregister be hi ban b3 ha be b6 57 bg ho b10 b11 bl Pa b13 Kia b15 b16 b17 b18 b19 b20 527 hoo h23 HA ihag b26 Hoy b28 baam b30 b31 wordregister O wo bP io ud W3 nA ug w6 WSA ug w9 w10 W171 yi2 W113 wa Dt En w16 w17 w18 w19 w20 w21 w22 w23 w24 w25 w26 w27 w28 w29 w30 w31 simpleliteral o EH na Bes ae SE Wen Bsp Ee o literal simpleliteral x simpleliteral s 1 ol Hait ph nen nq a f g nm gu Sa k wpe m n te p q HI r ig E u vi W x vi z literal whitespaces Seite 157 von 197 HTBLUVA Wien V SPENGERGASSE Informatik Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik htl ausbildung mit zukunft gt Abteilung bildung mit zukunft newline n labelsymbol symbol _ label labelsymbol
76. blierungsfehler success true false errors type error warning name E_ERR line 1 ehar 8 message 3 Broadcasts Keine Emulator Actions L dt den Code in den Speicher LOAD Request Payload bitcode new Uint8Array start 0 Seite 66 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft A Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik e start bezeichnet wo der neue Bitcode geladen werden soll Hierbei wird nicht der gesamte Speicher zurUckgesetzt sondern nurvon start bisstart bitcode length geschrieben M glicher Inhalt des Speichers wird dabei berschrieben Response Payload 3 Error Payload odernull code e code ist der entsprechende Fehlercode Dabeigibtes folgende m gliche Literale Start ung ltig Code von aktuellem PC ausf hren CONTINUE Request Payload count null 8 e count Anzahl der Instruktionen Null bedeutet dasses uneingeschr nkt ausf hrt Response Payload 3 Error Payload oder nu11 code e code ist der entsprechende Fehlercode Dabeigibt es folgende m gliche Literale Countung ltig Negativ oder au erhalb des erlaubten Bereichs Falscher Datentyp Seite 67 von 197 HERE SPENGERGASSE htl ausbildung mit zukunft DZ gt Abteilung Informatik EE Ausbildun
77. charts agilefant Gratis Web Eigener Server notwendig pivotaltracker 7 00 Monat Web Fehlendes Timetracking kostenpflichtig sprintly 17 34 Monat Web Mangelhaftes Sprintmanagement kostenpflichtig Desktop Fehlender Export Desktopanwendung Web Kostenpflichtig Web Mangelhaftes Sprintmanagement Fehlendes Export Web Keine Burndowncharts Mangelhaftes Sprintmanagement u u u Seite 19 von 197 HEES Wien SPENGERGASSE ausbildung mit zukunft Abteilung Informatik bildung mit zukunft A Usbildungsschwerpunkt Intelligente Systeme Toolsund Methodik OnTimeNow von axosoft http Awww axosoft com i Product Backlog Defect Backiog Help Desk Wiki Dashboard Work Logs Letztendlich haben wir uns f r OnTime von axosoft entschieden Dieses Tool bietet nicht nur eine ausgezeichnete Online Oberfl che und Plattformunabh ngigkeit eine Exportfunktion sondern erf llt auch alle weiteren Kriterien e Zeitaufzeichnung e SprintManagement e Mehrbenutzersystem e Issuetracker Dieses Projektmanagementwerkzeug war perfekt f r yasp geeignet Ein kostenfreier Account wurde uns von axosoft zur Verf gung gestellt Risiken JavaScript Engineszu langsam Mittel Optimierung Ein Teammitglied f llt aus Se Projektk rzen k rzen Unv ollst ndige USB Master Gering Se Dokumentation Technologien und Frameworks Realisierung e Client HTMLS JavaScript und CSS Server PHP Testing QUnit User Interface
78. cht da man hier viel Zeit mit der Fehlersuche verbrachte Der Debugger des echten USB Masters hat leider nicht sehr viele Funktionen was die M glichkeiten zur Behebung eines Fehlers erheblich einschr nkt Das war einer der Punkte die mich immer am USB Master gest rt haben Einige Jahresp ter wurdeunsin der vierten Klasse angeboten den USB Master in den Browser zu verlegen Nach kurzer berlegung holte ich mir Robert Fischer mit ins Boot Zusammen haben wir die aktuelle Situation analysiert und uns dann f r das Projekt entschieden Bei den Projektpr sentationen in der 4 Klasse fand sich kein weiteres Projektmitglied weswegen es bei einer Teamgr e von zwei Leute blieb Da wir beide viel Erfahrung im Bereich der Softwareentwicklung haben schr nkte dies den Umfang des Projekts aber nicht wirklich ein Ich habe bereits in der 3 Klasse zum Spa einen Emulator f r den USB Master entwickelt allerdingsin C net nicht in JavaScript Diesen habeich auch auf den netduino geportet sodass man am Ende wieder echte Hardware hatte Hier waren allerdings alle Befehle fest in den Emulator einprogrammiert weswegen die Programmstruktur sehr unterschiedlich zu yasp ist In Zukunft k nnte ich mir auch vorstellen den Emulator von yasp auf tessl io eine Hardwareplattform auf welcher man JavaScript ausf hren kann zu portieren Wir beide haben jeweils die Programmteile erledigt in denen wir uns fachlich am sichersten waren Robert Fischer hat
79. chulzwecke zur Verf gung gestellt Im Gro en und Ganzen waren wir sehr zufrieden mit dem Tool allerdings lassen die Export M glichkeiten zur weiteren Auswertung ein wenig zu w nschen brig Ein weiterer kleiner Kritikpunkt ist dass die nderungen anderer Nutzernichtsofort bei allen offenen Instanzen der Software sichtbar sind Abhilfe schafft der Reload Button auf der Seite der auch wirklich nur die betreffende Liste neu l dt nicht die ganze Seite Sprints Unsere Sprint L nge haben wir auf eine Woche fixiert da eine so kurze Lange recht wenig Controlling innerhalb des Sprints selbst erfordert Am Ende jedes Sprints wurden alle erledigten Features getestet und anschlie end in die stabile Version miteinbezogen siehe Verwaltung des Source Codes Weiters haben wir nach jedem Sprint ein Sprintprotokoll verfasst dasden entsprechenden Sprint dokumentiert hat Siehe Sprintprotokolle Unser SCRUM Tool hat zus tzlich ein Task Board und Time Tracking eingebaut so dass wir die komplette Abwicklung der Sprintsin OnTimeNow erledigen konnten ohne ein zweites Tool zu verwenden Verwaltung des Source Codes Sourcecode Hosting F r das Hosting des Sourcecodes haben wir uns f r GitHub entschieden da das Unternehmen kostenfreie private Accounts f r Bildungszwecke zur Verf gung stellt Auf Grund der kleinen Teamgr e und damit verbundenen kleineren Code Menge pro Sprint haben wir unsf r ein simples Branchingmodel mit nur zwe
80. ck pointer Flags C true carry flag Z true zero flag jo IO States IO State Stateofaninputor output pin Used bythe IO_CHANGED Broadcastand SET_STATE Message pin 0 pin number type adc or gpio mode in or out state 0 255 Seite 165 von 197 ETS SPENGERGASSE ht SS ausbildung mit zukunft Abteilung i Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Breakpoints offset byte offset or null to break at specific statements condition can be null type register flag io ram or rom see table param see table operator see table value null number Uint8Array or null param vae I Men je oo ae e oinnumber number byte s change _ el TE number byte or Uint8Array lt gt lt gt change Examples stop at byte offset 8 offset 8 condition null stop at byte offset 5 if pin 3 is high offset 5 condition type io param 3 operator value 1 stop if register b22 is written offset null condition type register param b22 operator change value null Seite 166 von 197 GE ausbildung mit zukunft HTBLUVA Wien V SPENGERGASSE htl D H S bildung mit zukunft Abteilung Informatik Ausbildungsschwerpunkt Intelligen
81. cted to 8 1 or 2 for performa nce reasons The total number of bits must be divisible by 8 no half bytes params d valueNeeded false since this is ADD this should be true but dem o hey type r_byte J valueNeeded defaults to true here type r_byte the optional checkFlags attribute can be used to set the zero flag automat ically if this is true the emulator checks the value of the first parameter for z ero and sets the flag accordingly checkFlags z true function which actually executes the command the parameters are of the same types as given in the params array exec function rbytel rbyte2 var newVal rbytel value rbyte2 value this writeByteRegister rbytel address newVal amp xFF this writeFlags newVal gt OxFF null Seite 144 von 197 HTBLUVA Wien V SPENGERGASSE ht ausbildung mit zukunft Abteilung Informatik sami aii makina Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Parameter Types Sb a4 Din 5bits e e Ia I pin number null pim number address 11 bits memory adress label in See null assembler exec function All parameters which are given in the params arraywillbeinterpretedbytheemulatorandthen passed on as objects into the exec Function Do not modify these objects They are reused for performance reasons type e g r_byte value null see t
82. current position in the bitcode see Interrupts STRING write a zero terminated string into the bitcode see Debugging DEFINE definesa assemble time constant which will be replaced before the actual assembling process Seite 141 von 197 ETS SPENGERGASSE htl ausbildung mit zukunft Zr S Abteilung Informatik BLAU aii akin Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Localisation yasp uses a custom library For localisation Strings can either be referenced in the DOM via data attributes or in javascript code The translations themselves live in src app langs andare represented bya simple key v alue format The code for the translation library itself is in src app js 110n js DOM A verysimple example is getting a string and replacing the innerText of an element with the translation lt h6 data 110n editor about version gt lt h6 gt Additionally parameters can be used lt option value 2 data 110n settings tabSize spaces data 110n p 2 gt lt option gt Corresponding linein the language file settings tabSize spaces spaces IF you need to set HTML instead of the text add a data 110n html true attribute JavaScript Retranslate the document yasp 110n translateDocument Get the currently active language var lang yasp 110n getLangName Get a translationusing the key the last parameteris optional var trans yasp 110n getTranslation settings tabSize
83. d bedeutete Unterschiede zum USB Master Der originale USB Master verh lt sich in manchen Situationen nicht wie erwartet zus tzlich sind manche Befehle oder Parameter nicht klar definiert so dass Annahmen getroffen wurden END Direktive Beim USB Master wird am Ende jedes Programmesein END Statement erwartet Auf Grund eines Bugs m ssen manchmal sogar mehrerehiervonverwendet werden um das Programm starten zu k nnen In yasp ist das END Statement optional Flags bei Word Befehlen Der USB Master setzt bei diversen Word Befehlen das Zero und Carry Flag nicht richtig In yasp wurde dieses Fehlverhalten nicht bernommen DELAY und PAUSE Beim USB Master gibt es die Befehle DELAY und PAUSE welche beide die Ausf hrung f r eine gewisse Zeit anhalten Es ist nicht klar definiert welcher der Befehle ein Word Register und welcher ein Word Literal erwartet In yasp k nnen beide Befehle mit sowohl einem Register als auch einem Literal verwendet werden Beim USB Master bedeutet 0 als Parameter die maximale Wartezeit In yasp wird bei dem Wert 0 gar nicht gewartet Weiters wurde die Bin rsignatur von 011XXXXX X unbeachtet zu 01100000 ge ndert daesf r unbeachtete Werte keinen technischen Grund gibt und ein Fixer Wert leichter zu implementieren war Bezeichnung von Labels In yasp ist es nicht m glich Labels mit Register Bezeichnungen GB w3004 oder b21 zu definieren da dies zu Unklarheiten im Code f hren kann WRIT
84. d f hrt diese dann im Browser aus Dadurch bleibt alles plattformunabh ngig unddie Sch ler und Sch lerinnen k nnen komfortabel den Umgang mit Assembler erlernen Der leistungsf hige Debugger vom USB Master wird nat rlich auch Einzug in yasp finden Die F higkeit das aktuell laufende Programm zu stoppenund jeden Winkel des Speichers zu begutachten hilft den Sch lerinnen und Sch lern die Materie besser zu verstehen und dabei Spa zu haben Seite 28 von 197 ausbildung mit zukunft HTBLUVA Wien V SPENGERGASSE pej ta Wen SPENGERGASSE bildung mit zukunft P teilung Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Zielbestimmung Soll Ziele 1 Assemblerimplementieren 2 Emulatorimplementieren a CPU gem derin Anhang 2 Befehlsdokumentationdefinierten Befehle b RAM c Hardware gem Anhang 5 Hardware Debugger implementieren Integrierte Entwicklungsumgebungim Browser Modularer Aufbau so dassverschiedene Architekturen ARM x86 64 MIPS etc in Folgeprojekten implementiert werden k nnen 6 ClientseitigesSpeichern von Quellcode im localStorage u BW Kann Ziele 1 Mehrbenutzersystem mit gleichzeitigem Editieren desselben Programmes 2 C Like Compiler mit Echtzeit Assembler Darstellung 3 Unterst tzung mobiler Endger te z B Android oder iOS 4 ServerseitigesSpeichern von Quellcode 5 Unterst tzung der Sound Befehle 6 Unterst tzung von Autovervollst ndi
85. dacht welche mit einem seriellen Protokoll angesprochen wird 7 Segment Display In der 1 Klasse wird auch die Ansteuerung eines 7 Segment Displays unterrichtet Dieses k nnte in yasp nach Implementierung der Hardware mit mehreren Pins realisiert werden um noch mehr Ziele des Unterrichts abzudecken Hardware mit mehreren Pins yaspunterst tzt nur Hardware mit einem Ausgangs bzw Eingangspin wie zum Beispiel LEDs oder Potentiometer F r komplexere Hardwareelement wie ein 7 Segment Display oder eine LED Matrix ist es notwendig mehrere Pins pro Element verwalten zu k nnen Schrittmotor Um ein weiteres Beispiel der Hardwareansteuerung im Unterricht durchnehmen zu k nnen w re die Implementierung einesSchrittmotorsin yasp m glich Da ein Schrittmotor jedoch naturgem mehrere Eing nge hat m sste zuerst dasHardware System von yasp auf Elemente mit mehreren Pins erweitert werden Seite 108 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ S Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Personliche Stellungname Michael Lutonsky In der ersten Klasse meiner Schullaufbahn an der HTL Spengergasse wurden meine Klassenkollegen und ich mit dem USB Master und Assembler konfrontiert Ich wusste zwar was Assembler ist habe die Sprache aber zu dem Zeitpunkt jedoch noch nie verwendet Die ersten bungen waren recht einfach die sp teren allerdings ni
86. den Hardware Momentan wird hierf r der USB Master v erwendet Dies ist eine eigens von Dipl Ing Tarkany entwickelte Hardware auf welcher mit einem vereinfachten Assemblerdialekt programmiert werden kann Die Programmierung selbst geschieht in dem ebenfallsvon Dipl Ing Tarkany geschrieben Programm mas editor mas editor Code Editor Der Code Editor besteht aus analyze button einem simplen Textfeld ohne mas Editor E STER UMASTF QUMAUSB_HOSTWA MAS Formatierungshilfen oder me ee Syntaxhighlighting DasUser Poe eee Interface bestehtim Wesentlichen aus zwei Buttons ker g counter ug gt Run toggle 0 sowitch LED on off 10000 swait 0 2 se Assembliert den Sourcecode SS es undf hrtihn normal auf dem SS me USB Master aus gt Analyze Assembliert den Sourcecode ffnet den Debugger current content and history of registers PIN states change byte and word registers start clr counter mas editor Debugger Der Debugger zeigt zusatzlich zum Code welcher momentan auf dem USB Master l uft aktuelle und vergangene Registerwerte und den Stack an Der Step Button f hrt den n chsten Befehl ausund h lt den USB Master anschlie end wieder an Der Run Button startet eine normale Ausf hrung welche mit dem Step Button wieder gestoppt werden kann debug events user code stack Seite 16 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft i Abteilung Informatik bildung mit zu
87. die 64 General Purpose Register o special sind die Special Purpose CPU Register m pc Program Counter m sp ist der Stack Pointer o flags die Flags des Emulators m cCarry Bit m Zero Bit e iobeinhaltet alle lO Objekte siehe IO F r weitere Informationen desEmulators als Array Seite 71 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ee gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik IO Das sind Objekte die den Zustand eines Input Output Objektes bezeichnen IO Objekte k nnen mit LED Taster Potentiometer Schrittmotoren oder Pins verbunden sein pin type gpio adc mode in out state 8 true false e type bezeichnet welcheslO Objekt gemeintist Breakpoint Ein Breakpoint zeigt aufeinen Punktim Code an dem die aktuelleProgrammausf hrung gestoppt werden soll offset null 0 condition null e offset bezeichnetden Opcode an dem der Breakpoint gesetzt wurde Wenn er null ist bedeutet dies dass angehalten wird sobald die condition erf llt ist was bedeutet dass der Emulator diesen Breakpoint nach jedem Ausf hren eines Opco des berpr fen muss e condition ist die Bedingung bei der gestoppt werden soll Die condition ist ein Condition Objekt f r weitere Informationen siehe Datenstrukturen Condition Wenn condition nullist darf offset nicht null sein und vice ve
88. e 106 von 197 EGA Wien Y SPENGERGASSE htl ausbildung mit zukunft zo gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Anregungen fur Folgeprojekte W hrend der Entwicklung von yasp sind dem Projektteam mehrere Erweiterungsm glichkeiten aufgefallen Da die meisten hiervon nicht notwendig waren wurden Sie nicht sofort implementiert sondern wurden hier als Anregungen f r Folgeprojekte aufgelistet Allgemeines Compiler f r eine Hochsprache Ein gr eres Projekt w re ein Compiler welcher mit yasp kompatiblen Assembler Code erzeugt Dieser k nnte eserm glichen Hochsprachen wie C oder BASIC auf yasp auszuf hren Mehrbenutzersystem Ein Mehrbenutzersystem wurde es mehreren Benutzernerlauben gleichzeitig an einem Dokument zu arbeiten hnlich wie Google Docs oder Etherpad lite Mobile Endger te Momentan werden mobile Endger te nur rudiment r unterst tzt da die Oberfl che nicht f r Touch Ger te optimiert ist Zus tzlich m sste berpr ft werden ob die Rechenkraft eines Smartphones ausreichend ist um den Emulator auszuf hren Debugger Stepping Aktuell werden die Step und StepBack Kommandosunterst tzt Weiter Step Funktionen wie zum Beispiel Step out oder Step over w ren sinnvoll Step out f hrt das Programm bis zum n chsten RET aus Step over kann nur beieinem CALL Befehl verwendet werden Es setzt einen Breakpoint auf die n chste Zeilenach dem
89. e 2004 als Web Magazin f r Engadget gegr ndet Wir haben unser Projekt bei hackaday eingereicht woraufhin einer der Redakteure einen Artikel Uber yasp verfasste welcher am 23 me M rz 2014 ver ffentlicht wurde d Der vollst ndige Artikel Very few people know assembly Luto seeks to make learning 1 assembly justa little bit easier with his Fully Functional web based assembler development environment including a real assembler emulator and debugger These days you can bea microcontroller expert without knowing a thing about assembly While you don t need to know assembly it actually can help you understand quite a bit about embedded programming and how your C code actually works Writing asmall part of your codein assembly can reduce code size and speed things up quite a bit It also can result in some very cool projects such as using Java to program microcontrollers With high quality example code it is very easy to get started learning assembly The emulator consists of a microcontroller with 32 registers hooked up to three LEDs two buttons and a potentiometer This is way better than painfully learning assembly on real hardware Be sure to checkoutthe online demo Being able to step through each line of code and clearly see the result help make assembly easier to use and understand It would be great to see this kind of tool widely adopted in engineering programs Link http hackaday com 2014 03 23 le
90. e Dateien der Benutzer werden in einer filebasierten Datenbank gespeichert die via REST API angesprochen wird Die Serverprogrammierung wird mithilfe von PHP umgesetzt F r weitere Informationen siehe REST API definiert in Anhang 4 Protokolle und Datenstrukturen DasDatenmodellsieht folgenderma en aus kann allerdingsw hrend der Entwicklung modifiziert werden document v id INT e id ist eine Numerische Identifikationsnummer dieautomatisch usemame VARCHAR 255 vergeben wird l e username Unter jenem Usernamen wurde die Datei S pw CRAT gespeichert 9 filename VARCHAR 255 e filename Der Dateiname content TEXT e content Die Quelldatei createdate DATETIME e createdate Datum als die Datei erstellt wurde lasteditdate DATETIME e lasteditdate Datum alsdie Dateizuletzt ge ndert wurde gt Seite 36 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft Fr Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Benutzeroberflache Debugger Der Debugger erscheint als Dialog sobald man auf den Ausf hren Buttonin der IDE klickt yasp just yasptastic Debugger REECH Some Perso PRAM ROM Yeates YSN Erare MOV 123 PUSH 123 POP 123 MOV 123 MOV 123 PUSH 123 ASDF POP 123 MOV 123 MOV 123 PUSH 123 POP 123 MOV 123 HALLO MOV 123 PUSH 123 POP 123 MOV 123 EINLABEL MOV 123 PUSH 123 USBMaster Hardware POP 123 MOV 123 M
91. e designierte Zeile und der Emulator setzt den Program Counter auf die ausgew hlte Zeile Serverkommunikation Der Driver Fur die Serv erkommunikation zwischen Server und FileManager wurde implementiert so dasses nun im Browser m glich istauch auf den Server zu speichern Kontextsensitive Autovervollst ndigung Die Autovervollst ndigungin der IDE zeigt nun nicht mehr alle Kommandosund m gliche Register an sondern basierend auf der aktuellen Cursorposition Kontextsensitiv Wenn der Cursor nun beim Befehl Mov ist werden nur Byte und Word Register angezeigt da dies die einzigen validen Parameter f r mov an erster Stelle sind Schnellhilfe Verbesserungen Die Schnellhilfewird nun angezeigt auch wenn der Befehlnicht Fertig eingegeben wurde sondern nur teilweise Wenn der angegebene Befehlnicht eindeutig zuordenbar ist so wird eine Liste m glicher Befehle angezeigt Um dieses Featureimplementieren zu k nnen musste der Assembler in der Lagesein syntaktisch invaliden Code dennoch in einen AST zu konvertieren Dies wurde mit sog UNKNOWN_COMMANDSAST Nodeserreicht Seite 132 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft Fr Abteilung Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik bildung mit zukunft Mehrere Parameter Die Befehle DB DA DW und STRING unterst tzen nun beliebig viele Parameter wodurch es m glich ist mehrere Werte auf einmal in den Masch
92. ealookatbreadboards md Hardware implementations can be found in the src app js hardware directory Types Currently implemented hardware typesare e LED e PUSHBUTTON e POTI They aredocumented in the doc hardware directory Boilerplate if typeof yasp undefined yasp if yasp HardwareType undefined yasp HardwareType function ZE description sss Params S yasp HardwareType PUSHBUTTON render function if this element the hardware must set the this element property this element document createElement div change the state probably because the user interacted with the UI this receiveStateChange 1 render the hardware here gt initialState function return HO Seite 147 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ S Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik FileDialog This moduleis responsible of saving loading managingand creating Files additionally it featuresa powerful driversystem allowing multiple backends Usage e yasp FileDialog show mode shows the FileDialog mode describing in which mode the FileDialog should be started Possible parametersare o yasp FileDialogMode OPEN FileDialog in open mode o yasp FileDialogMode SAVE in save mode o yasp FileDialogMode SAVEAS in save as mode o yasp FileDialogMode NEW i
93. ebugger Thisbroadcastis rate limited to only be Fired every 100 milliseconds Payload debug object see Data section in emulator documentation Seite 168 von 197 ETS SPENGERGASSE htl ausbildung mit zukunft Fr Abteilung Informatik E a Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Broadcast IO_CHANGED Thestate of the emulators output pins has changed This broadcastis rate limited to only be fired every 50 ms for each pin so the real number of broadcasts can be higher Payload IO State object see Data section in emulator documentation Messages Message LOAD Loadbitcode probablyformtheassembler into the ROM to be executed later Message Payload d bitcode new Uint8Array start byte offset to start Loading Response Payload empty object Error Payloads startis outof bounds EE 1 bitcodearraytoolarge 1 Ditcode is of invalid type startis of invalid type Message CONTINUE Startor continue the execution of bitcode in the ROM The count parameter can be used to controlthe number of instructions executed which is used to step through a program instead of running it IF the skipBreakpoint parameter is set to true the execution will even be continued if the currentinstruction hasa breakpoint set Message Payload count null null run unlimited steps number run only x steps skipBreakpoint false Response
94. egorie Befehl asic asic asic asic asic asic asic asic asic asic asic asic asic ADD SU D zZ iw M ty W COOC DO Ke DO Z O lt G Q g E Z Q CO DO C C i asic XI asic oj an Fi o E D K asic D D Z CO e E asic 3 al HJ G ae Di to ol Fl Aaj E un gt myo oja Di Di serial serial u n oO d adc d A MO MO MO MO MO MO MO MO MO MO interrupts interrupts interrupts interrupts directives a a DI o OJo ig Cyc WO Q SEROUT TXBAUD Wei We am H E Q Q Q E Di x E Z BREC Q ae P eo G d gjg ala o J un Wel Z GO J Z D u El E Ziwa w aj w ye ay ol asi fei es Hla e e MW Di Di Op er i D 1 FA 4 Alo o Z J un D DO a J pa GI a bi Q fan O olH Ae D g D D RG Seite 105 von 197 HTBLUVA Wien V SPENGERGASSE hkl ausbildung mit zukunft E 7 Abteilung Informatik E ai Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Da D directives F serial RXFIRST serial SERSTR ER e R Insgesamt wurden 47 von 79 Befehlen implementiert Seit
95. eine komfortable M glichkeit zu bieten den Umgang mit Assembler zu erlernen An der HTBLuVA Spengergasse wird dies derzeit mit einer eigens entwickelten Hardware realisiert Unser Projekt wird diese abl sen wasbedeutet dassdieSch lerinnen und Sch ler sich nicht mehr um das komplizierte Auf und Abbauen der Hardware k mmern m ssen Sie k nnen so eine zuverl ssige Plattform verwendenund dadurch mehr Spa beim Entwickeln haben Weitersk nnen sie auch zu Hause den Umgang mit Hard und Softwareelementen lernen Zus tzlich erleichtert es den Unterricht ungemein da sich niemand Sorgen mehr um das Funktionieren der Hardware machen muss Aufgabenstellung Realisierung HTML5 JavaScript HTML CSS PHP yaspist unter http demo yasp me erreichbar Ergebnisse HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft i Abteilung Informatik bildung mit zukunft AUsbildungsschwerpunkt Intelligente Systeme Tools und Methodik Das Ziel von yasp ist es das Lernen einer Assembler Programmiersprache so einfach wie m glich zu gestalten Die HTBLuVA Spengergasse setzt eine ebenfalls an dieser Schule entwickelte Hardware ein Mit dieser k nnen die Sch lerinnen und Sch ler in einer vereinfachten Variante der Assembler Programmiersprache programmieren und so den Umgang mit der Hardware erlernen Da die diese h ndisch gel tet wird ist sie leider sehr fehleranf llig Zus tzlich gibt es bei dem Aufbau immer wieder Probleme welche
96. em Fenster unter 2e TTT socere 4 WER dem aktuellen Cursor die m glichen Texteingaben 3 en angezeigt Seite 79 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft A Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik zun main unknown command MOV number byte register BEE Ee CH Als weitere Hilfe gibt es die Fehleranzeige welche dem Benutzer oder der Benutzerin bereits wahrend dem Tippen Fehler im Code anzeigt und diese genau beschreibt und das ohne vorher kompilieren zu m ssen e MOV bl Weitersunterst tzt die IDE das Setzen von Haltepunkten Breakpoints Dieses sind spezielle Markierungen im Quelltext die dem Debugger die a Information geben wann angehalten werden soll Diesist vor allem dann ray 2 praktisch wenn man nach Fehlern sucht oder Programme analysieren muss pores BII Das Setzen von Haltepunkten ist einfach Durch Klick auf die TTT wg b0 Zeilennummer wird ein roter Punkt angezeigt der den Haltepunkt oe ae darstellt Ein weiterer Klick entfernt diesen Haltepunkt wieder En S JMP ma 2 Label Liste Diese Liste zeigt alle Labels die im aktuellen Quelltext definiert wurden an Dies ist vor allem f r l ngere Sourcecodes praktisch da hierdurch die bersicht bewahrt werden kann Weiters ist es m glich durch Klick auf ein bestimmtes Label den Cursor direkt zur Definition springen lassen zu k nnen wenn n tig wird auch
97. en Reaktion Nach diversen Reparaturversuchen auf Seiten beider Projektmitglieder wurde der erste Ansatz letztendlich verworfen Letztendlich konnte uns v llig berraschend Professor Andreas Resch helfen da er sich in seiner Freizeit selbst viel mit Hardware besch ftigt Der jetzt implementierte Ansatz misst die Zeit zwischen den jeweiligen Flanken und berechnet sich daraus das Verh ltnis Aus Performancegr nden wurde dieser vollst ndig im Emulator implementiert was einige nderungen im LED Code notwendig machte Seite 103 von 197 EGA Wien Y SPENGERGASSE htl ausbildung mit zukunft Fr Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Unklarheiten in der USB Master Dokumentation Die USB Master Dokumentation war in vielen Fallen unklar oder nicht genau genug so dass Annahmen getroffen wurden welche im Punkt Unterschiede zum USB Master dokumentiert sind Ein gro es Problem gab es bei der Implementierung der ORG Direktive Diese setzt die Position im generierten Bitcode an eine bestimmte Position womit es m glich wird an beliebige Stellen zum Beispiel 0x100 f r die Interrupt Tabelle zu schreiben Jedoch wurde der Befehl so interpretiert dass es den Pointer immer um die gegebene Anzahl an Bytesrelativ nach vorner ckt nicht absolut setzt Das Beheben dieses Fehlers machte es notwendig den Generator im Assembler komplett neu zu implementieren was 6 Stunden Mehraufwan
98. en mehr um das Funktionieren der Hardware machen m ssen Erg nzende Ausf hrungen siehe Projektbeschreibung Schw erpunkt Dipl Ing Gr neis Dipl Ing Jelinek LUTONSKY Michael FISCHER Robert Dipl Ing Gr neis Dipl Ing Gr neis Externe Kooperationspartner Firma Institution HTBLVA Spengergasse Betreuer Kontaktperson Dipl Ing Jelinek Robert Schriftliche Kooperationsv ereinbarung liegt vor Ja Budget 100 00 Bedeckung durch HTBLVA Spengergasse Geplante Verw ertung der Ergebnisse yasp soll den USB Masters samt Soft und Hardware ersetzen 1 Gem 23 Abs 3 Z 3 der Verordnung Uber die abschlie enden Prifungenin den berufsbildenden mittleren und h heren Schulen BGBl II Nr 70 2000 Seite 15 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft i Abteilung Informatik bildung mit zukunft AUsbildungsschwerpunkt Intelligente Systeme Tools und Methodik Beilage 1 Erg nzende Ausf hrungen Reimplementierung des USB Masters im Web samt Debugger Assembler Editor und Emulator Projektmotiv ation und Aufgabenstellung Projektbeschreibung Langfassung yasp ist ein Assembler Emulator IDE Debugger der den USB Master welcher derzeit in den ersten Klassen alsProgrammiermittel eingesetzt wird ersetzen soll IST Situation Sch ler und Sch lerinnen der ersten und zweiten Klassen der HTBLVA Spengergasse lernen im Unterricht den Umgang mit Assembler und der entsprechen
99. er haben Funktionen sollten wenn m glich als JSDoc dokumentiert werden VorundnachOperatoren mussein Leerzeichen sein Nach Schl sselw rtern if while or mussein Leerzeichen sein Innerhalb leerer Klammern O mussein Leerzeichen eingef gt werden Der Codesollteeinger ckt werden wobeijede ffnende geschwungene Klammer eine neue Ebene startet und jede schlie ende geschwungene Klammer eine Ebeneschlie t e Einger cktwird mit 2 Leerzeichen Beispiel comment d comment 2 exports externalfoo function a b c var foo 42 var bar foo var fuz null foo key value key2 42 foo 4 example one line per IF WHILE DO FOR not 2 not 3 ONE if true IE a if a 42 foo Seite 112 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft Zr gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik for var i i lt 42 i bla do code while false internalfoo b function err val val 42 console log val HTML Styleguide HTMLwird zur Strukturierung der Daten im Browser verwendet Grunds tzliche Regeln e GENEE u Ebene EingerUckt wird mit zwei Leerzeichen HTML Tagswerden klein geschrieben Es wird kein Inline CSS oder Inline JavaScript verwendet Als Doctype wird das HTML5 doctypeverwendet Beispiel lt doctype htm
100. erden Der Parameter payloadenth ltInformationen f r den Worker Wennder Worker mit der Ausf hrung der Anweisung fertig ist wird die cb Funktion aufgerufen subscribe event cb unsubscribe event cb Weiters werden f r sog Broadcast Messages z B Emulator hat die Ausf hrung angehalten alle Callbacks aufgerufen die via subscribe angegeben wurden Dabei ist event die Art der Broadcast Nachricht und cb die auszuf hrende Funktion terminate Beendetden Worker Seite 63 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft I gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Webworker Protokoll Jeder Web Worker kommuniziert mit Hilfe des hier definierten Protokolls Die eigentliche Kommunikation mit dem Worker findet in der Connector Klasse statt Request s communicator sendMessage action Ian nn payload e action was der Worker machensoll e id eindeutiger Bezeichner f r diese Nachricht e payload Parameter f r den Worker Response s cb in communicator sendMessage amp communicator subscribe action f K Ee error payload action ausdem Request oder name des Broadcasts id ausdem Requestoder nullbeiBroadcast payload RUckgabe des Workers error Fehlermeldungen des Workers Seite 64 von 197 ETS SPENGERGASSE htl ausbildung mit zukunft Fr Abteilung Informatik
101. es used defines key define name value replace with instructions key instruction name value number of times used Seite 156 von 197 EGA Wien Y SPENGERGASSE htl ausbildung mit zukunft ZZ S Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Lexer This pass dividesthe source code into small atomicpieces it also removesallcommentsin the input file The result of the Lexer is an array containingall the tokens For moreinformation see assembler lexer js Analyser In this pass all label names and DEFINEsare identified This has to be implemented so backwards definitionsof labelsare possible JMP 1bl vn 1b1 same reason applies to defines For moreinformation see assembler analyser js Parser The parser is responsible For doing the Following tasks e Generating the abstract syntax tree in assembler the treeis moreor less just an array e Generating thesymbol table used bythe editor and debugger e Checksemanticand syntax For moreinformation see assembler parser js Generator The generator generates the bitcode out of the given AST which can be executed by the emulator It is divided into the Following sub steps e Calculate bit sizes This oneis used to get proper label addresses e Generate bit code This one Finally generates the bitcode Additionally it has following tasks e Generate bitcode e Generate map Used for converting line num
102. esceasidacnauharedacassiesteaksuscadinedaraeniccentaseassetancidzenalteseaksesiadaenacianeal 23 PHlICHtO MNO HE secsscciceisessescescosacdshesseacessevcasssssseecboxteccertessevoonsccesasecovuscstnsesvesssntovecsesvorsecsosseqcovoessddeestecorsebsorseteevsstedvoosssvesseveouer vers 23 INMANTSVERZE d E 25 nderungsverzeichnis c ssssssssssssssssssssesssssssssssssessessessssssssussussusessessessusssssussussnssnseuseusessussussnssnsenseusensessussessuuensensensensenseneeesnes 26 Projektbeschre ibun 8 sscscsscecssssosansseiccvessesuccsescassasssoncisee nsncsecssvesuessasussossesedosabe odbeedsvocousee ses cesoesessedcedcoss soswouceassus obandeuaceseveedasons 28 Zie IDS du TT 29 Produkteinsatz x cieiscescasassessacsassscueasvaed sosasossseacsoscsesasoosnnacossoscvascsesusesasmeadexovoe cexonsvosaessosoeectsouseodcdesouoranisodesebsssbearocsnsvansnspoeatoce 30 Ent wick UMGSUMPODUN E eseu Eegeregie EEGENEN 31 Produktfunktio nen und Produktumsetzung ssscscsssscesesssscssessesessessssessesesseseesesaesesaeseesesaesesacseesesaeseesesansecacesssesscsecaes 32 TIET 41 ET E e 42 Anhang 2 Befeh sdo kum entation s ic scsscsscsssssscssscosscssnscsecsnoss ssecconsnesessudse deonesessoeocscsassucsuancvcescencee sh osscensnosdececocensnosesscsoaesees 44 Anhang 3 AbmahMe protOkolllllscsccssssssssscceccccssecssectsssesesessessese ss ovened seve ovssoevssscesasosewrevessoavscsotosscessuescsustesssstuosiesasscssesversssesess 49 Anhang 4 Protokolle und Datenstrukturen
103. ets its outputto 1 as long asthe user presses it IF the button is pressed while the shift key is pressed the button will stay pressed even if the button is not clicked anymore State e Gets nothing e Sets 1if pressed else Parameters color rgb 100 100 100 pushcolor rgb 6 60 6 Potentiometer aka Poti Sets an ADC Input Pin to avalue from 8to 255 depending on the user input State e Gets nothing e Sets value from to 255 Parameters d Seite 161 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Emulator The emulator executes the bitcode generated by the assembler Ticks The emulator worksin ticks Each tick executes one instruction which is Fetched from the rom Ticks executed by the tickWrapper which is invoked bya simple setTimeout Because thereis a limiton howfrequent setTimeout can Fire a number of ticks is executed in each tickWrapper call 1 tickWrapper a checkif the emulator isrunning if not exit b checkif the number of instructions to be executed has been executed if yes exit see CONTINUE Message c checkif the emulator should be waiting PAUSE or DELAY executed if yes set a timeout of the desired time and exit Thisis skipped if the emulator isstepping d tick i check for interrupts ii Fetch the next instruction fromthe ROM ii
104. etzwerken und Blogs e Tweets https twitter com search q yasp me 200R 20demo yasp me amp src typd amp f realtime e Spanische Retro Community http www zonadepruebas comWiewtopic php F 15 amp t 4916 e ProtogisischesForum http www zonadepruebas comWiewtopic php f 15 amp t 4916 e Tuts4You Forum https Forum tuts4you com topic 34778 yasp web based assembleremulator to learn assembly e cyberhades Blog Spanisch http www cyberhades com 2014 02 22 aprende ensamblador de una manera facil y segura e geektheplanet Blog Spanisch http qeektheplanet net 7875 yasp aprendiendo ensamblador en linea xhtml e dtrinf Blog Spanisch http dtrinf wordpress com 2014 03 02 apren der ensambrador facilmente e unocero Blog Spanisch http www unocero com 2014 03 23 aprenda ensamblador desde una pagina web e embedds Blog http www embedds com learning assembly the easy wa Seite 99 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft A Abteilung bildung mit zukunft In Formatik s Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik e SeriousTrolling Blog http blog puercopop com post 78006432044 yas e Another Word For lt Blog http tm durusau net p 50889 e Digitrode Blog Russisch http digitrode ru theo rogramming 110 yasp brauzernyy assembler s virtualnym mikrokontrollerom html AXA Wettbewerb Der AxA Wettbewerb wurde 2012 ins Leben gerufen um junge zuk nftige Tech
105. feld ist der Dateiname einzugeben der dann bernommen wird 2 Dateiliste In dieser Liste sind alle gespeicherten Dateien sichtbar Zus tzlich l sstsich durch das L schen Symbol e eine Dateiaus der Liste entfernen Das ffnen Symbol kopiert den Namen der Dateiin das Eingabefeld 3 Button Der Close Button bricht die aktuelle Aktion ab Der Save Button speichert die Dateiunter dem angegebenenNamen Danachwirdsie ge ffnet Seite 85 von 197 HTBLUVA Wien V SPENGERGASSE ht ausbildung mit zukunft Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Offnen Der ffnen Dialog 6ffnet eine Datei und schlie t Falls vorhanden die alte Datei File Quick Share File File Quick Share File 1 Name Eingabefeld In diesem Textfeld ist der Dateiname einzugeben der dann bernommen wird 2 Dateiliste In dieser Liste sind alle gespeicherten Dateien sichtbar Zus tzlich l sstsich durch das L schen Symbol eine Dateiaus der Liste entfernen Das ffnen Symbol kopiert den Namen der Dateiin das Eingabefeld 3 Button Der Close Button bricht die aktuelle Aktion ab Der Open Button ffnet die entsprechend ausgew hlte Dateiin der IDE Seite 86 von 197 HTBLUVA Wien V SPENGERGASSE ht Sg ausbildung mt zukunft Abteilung i bildung mit zukunft In Formatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Neu Der
106. formatiert werden Um ein einheitliches Bild in dieser Dokumentation festzulegen wird hier dieses Format definiert Grunds tzliche Regeln e Einr ckungmit TABs empfohlene Tabweite sind 8 Spaces e Allesbis auf Labels und Kommentare um mindestenseine Stufe einr cken e Kommentare o m ssen nach dem ein Leerzeichen haben o m ssen fallsin der selben Zeile ein Befehl ist einger ckt werden o Tabvordem wennhintereinemBefehl Befehle o Leerzeichen nach dem Beistrich in der Parameterliste o immer komplettin Gro buchstaben o TAB nach demBefehlsnamen Labels o CamelCase o Kein Befehlin der selben Zeile o Kein Kommentar in der selben Zeile e Registernamen mit kleinen Buchstaben e Immer ein END Befehl am Ende des Programmes welcher nicht einger ckt werden darf Beispiel loop HIGH 3 gt YOt DELAY wl bleibt lange rot MOV w4 4 JMP subOne back OV w4 6 JMP loop Endlosschleife subOne MOV w4 5 JMP back END Seite 111 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft A Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik JavaScript Styleguide JavaScript ist die prim re Programmiersprache in der yasp entwickelt wurde Um eine klare Struktur festzulegen wurden folgende Regeln definiert Grunds tzliche Regeln Jede Zeile muss mit einem Semikolon abgeschlossen werden Kommentare m ssen ein Leerzeichen zwischen Text und Bezeichn
107. fthe address is outside the bounds of the RAM Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 2 Binary Code 00010000 001000RwRw RwRwRwReRegRegRgRg XOR Byte Register Byte Register Deutsch Wendet den bin ren Exklusiv Oder Operator auf die Werte der Register an e Zero Flag wird gesetztwenn das Ergebnis 0 ist English Calculates the binary exclusive or of the values of both registers e Zero Flagissetif the resultis 0 Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines OF Code LOC 2 Binary Code 00010000 000110RgRg Rebebebebebe bebe Seite 194 von 197 HTBLuVA Wien V Abteilung Ausbildungsschwerpunkt bildung mit zukunft XOR Byte Register Byte Literal Deutsch Wendet den bin ren Exklusiv Oder Operator auf den Wert des Registers und den zweiten Parameter an e Zero Flag wird gesetztwenn das Ergebnis 0 ist English Calculates the binary exclusive or of the value of the register and the given literal value e Zero Flagissetif the resultis 0 Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 2 Binary Code 00000000 110RgRgReRsgRes Leleleletetdede XOR Word Register Word Register Deutsch Wendet den bin ren Exklusiv Oder Operator auf die Werte der Register an e Zero Flag wird gesetztwenn das Ergebnis 0 ist English Calculates the binary exclusive or of the values of both registers e Zero Flagissetif t
108. g Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Meeting mit Professor Jelinek Bericht der aktuellen Vorg nge Erkenntnisse und Aktivitaten Repl Das REPL 1 mit samt der MOV Befehle wurde pr sentiert Es wurde ein geringf gigesProblem am Assembler entdeckt welches noch zu evaluieren ist MOV b0 ab wird vom Assembler als Syntaxfehler gesehen jedoch k nnte der User erwarten dass dies als Hexa Dezimale Zahl interpretiert wird Dokumentation und Milestones Die vorl ufigen Milestones 2 wurden besprochen Dabei wurde festgestellt dass der Debugger samt Register Ansicht vom Editor und der IDE unabh ngig und erst sp ter entwickelt wird Des Weiteren wurdeangemerkt dasses kein Problem ist wenn das Projekt fr her fertig wird solange das Stundenbudget ausgenutzt wird Tessil io Prof Jelinek hatte noch keine Zeit sich tessl io anzuschauen Verschoben auf das n chste Meeting 1 http yasp me yasp src app test repl html 2 http pad yasp spengr co p milestones Ergebnis Alles Kar f r den n chsten Sprint Es wurde vergessen zu fragen wie es bez glich Lizenz aussieht Dies muss beim n chsten Meeting nachgeholt werden Tessl io muss bei einem sp teren Meeting besprochen werden Seite 121 von 197 HTBLUVA Wien V SPENGERGASSE GE ausbildung mit zukunft z gt Abteilung bildung mit zukunft Informatik s Ausbildungsschwerpunkt Intelligente Systeme
109. gRgRegeReg SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Tools und Methodik ADC1 Word Register Deutsch Liest einen analogen Wertvon dem Pin 11 in das Register English Reads an analogue value from pin 11 into the given register Anzahl der Unit T ests Number of Unit T ests 1 Coderzeilen Lines Of Code LOC 1 Binary Code 10010000 101 RwRwRwRwRw ADC Word Register Pin Deutsch Liest einen analogen Wertvon einem Pin das Register English Reads an analogue value from apin into the given register Anzahl der Unit Tests Number of Unit Tests 2 Codezeilen Lines Of Code LOC 1 Binary Code 10010000 111000RwRw RwRwRwPPPPP ADD Byte Register Byte Literal Deutsch Addiert den Wert des Registers mit dem zweiten Parameter e Zero Flag wird gesetztwenn das Ergebnis 0 ist Carry Flag wird gesetzt wenn das Ergebnis gr er als 255 ein word ist English Adds the value of the register and the given literal value e Zero Flagissetif the resultis 0 e Carry Flagissetifthe resultis greater than 255 one word Anzahl der Unit T ests Number of Unit T ests 3 Codezeilen Lines OF Code LOC 3 Binary Code 00000000 001RgRgRegRegReg LgLgLeleleglelels Seite 183 von 197 HTBLuVA Wien V Abteilung Ausbildungsschwerpunkt bildung mit zukunft ADD Word Register Word Literal Deutsch Addiert den Wert des Registers mit dem zweiten Parameter e Zero Flag wird gesetzt wenn das
110. gegriffen werden kann so dass die Bit Operationen pro Befehl nur einmal zum Einsatz kommen Loop Unrolling Der Emulator sollte eine variable Anzahl von Parametern f r die Instruktionen unterst tzen Zu diesem Zweck wurden die notwendigen Werte in einer Schleife geladen und zu einem Array hinzugef gt Dieses V orgehen unterst tzt zwar eine beliebige Anzahlan Parametern ist allerdings nichtsehr performant Die letztendlich implementierte Variante unterst tzt nur null einen oder zwei Parameter womit die Performance drastisch gesteigert werden konnte Falls in der Zukunft mehr als zwei Parameter notwendig sein sollten l sst sich der Code leicht erweitern Zugriffe auf Objekteund Arrays Zugriffe auf Arrays sind wie erwartet im JavaScript weit schneller als Zugriffe auf Objekt Attribute auch wenn das Objekt nur numerische Indexe hat Dies war zum Beispiel beim Caching der Instruktionen im Emulator wichtig Typed Arrays Seit einigen JavaScript Versionen ist es m glich sogenannte Typed Arrays einzusetzen Diese werden intern als genau der gew nschte Datentyp abgelegt und bieten somit eine weit bessere Performancealsklassische JavaScript Arrays Im Emulatorwurdevor allem vom Uint 8Array ein Array von bytes ohne Vorzeichen gebrauch gemacht um den RAM und ROM abzuspeichern Identity vs Equality Operator In Javascript gibt eszwei Operatoren und die Gleichheit zweier Werte zu berpr fen den Equality Operator und den Ident
111. gente Systeme Tools und Methodik 1 Testprogramm yasp testprogram 01 light a different LED depending on a potentiometers state Values 0 80 gt red LED is 81 165 gt yellow LED 166 255 gt green LED main adcl wo read value from potentiometer The value is written to the higher byte of the given word debug bl output said byte r r test for boundary red is between 0 and 80 so if bl is gt 81 we must jump to yellow cmp bi 81 jnc ml r we re below the yellow boundary so it s red high 3 turn on red low 4 turn off yellow low 5 turn off green jmp main ml test for boundary yellow is between 81 and 165 so if bl is gt 166 we must jump to green cmp bl 166 jnc m2 low 3 turn off red igh 4 turn on yellow low 5 turn off green jmp main m2 we ve checked all boundaries so bl must be between 166 and 255 low 3 turn off red low 4 turn off yellow high 5 turn on green jmp main end Seite 172 von 197 HTBLUVA Wien V SPENGERGASSE Informatik Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik htl ausbildung mit zukunft zo gt Abteilung bildung mit zukunft 2 Testprogramm yasp testprogram 02 dimm an LED using PWM Pulse width modulation The light level of the LED is controllable v
112. gsschwerpunkt Intelligente Systeme Tools und Methodik Anhang 5 Hardware Beschreibung Die Hardware Klasse beschreibt die einzelnen Hardwarekomponenten des USB Masters Dabei wird die konkrete Hardware abstrahiert und ein generisches Zugriffsinterface angeboten Durch diese Abstrahierung wird es zuk nftig m glich sein neue Hardwarelemente leicht zu implementieren Methoden Hardware stateChanged container Ist der Konstruktor und entnimmt ein Callback stateChanged entgegen das aufgerufen wird falls sich der Status der Hardware ndert und zus tzlich nimmt der Konstruktor den Parameter container entgegen der das HTML Element festlegt das diese Hardware repr sentiert Die Implementierung der Zustands nderungen des HTML Elements werden in der Implementierung der Hardware Klasse festgelegt sein ReceiveStateChange state Wird aufgerufen wenn sich der Status des Pins mit dem die Hardware verbunden ist Zum Beispiel durch die Ausf hrungeines HIGH oder LOW Befehls Das Hardwareelement muss auf die nderung reagieren und zum Beispiel die LED ein oder ausschalten Hardwaretypen LED Pin In Bin r Pin Out Nein Erscheinung Ein Aus Taster Pin In Keine Pin Out Bin r standard OFF solange der User den Taster gedr ckt halt on Erscheinung Gedr ckt nichtgedr ckt Seite 75 von 197 HTBLUVA Wien V SPENGERGASSE hkl ausbildung mit zukunft A Abteilung bildung mit zukunft In Formatik
113. gsschwerpunkt Intelligente Systeme Tools und Methodik Ausf hrung anhalten BREAK Request Payload Response Payload Zustand des Emulators abfragen GET_STATE Request Payload Response Payload state Error Payload code e state beinhaltet das State Objekt des Emulators F r weitere Informationen siehe Datenstrukturen State Zustand des Emulators setzen SET_STATE Request Payload state Response Payload 3 Error Payload code Seite 68 von 197 I HTBLuVA Wien V SPENGERGASSE ausbildung mit zukunft hei ZZ Abteilung bildung mit zukunft Informatik s Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Ung ltiger RAM zu gro klein Setzt die Liste der Breakpoints SET_BREAKPOINTS Request Payload breakpoints Response Payload Error Payload code Ung ltiges Array 1 Ein Breakpoint Objektist ung ltig und oder eines der Attribute des Breakpoints Ausf hrung von beliebigem Bitcode EXECUTE Request Payload bitcode new Uint8Array Response Payload Error Payload code Seite 69 von 197 HTBLuVA Wien V hti Abteilung bildung mit zukunft Informatik SPENGERGASSE ausbildung mit zukunft Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik Beschreibung Ung ltiges Array Broadca
114. gung in der IDE Nicht Ziele 1 Implementationeiner anderen Zielplattform z B x86 ARM usw 2 Unterst tzung desRaspberryPisalsZielplattform Realisierung in Folgeprojekt 3 Schulung der Nutzer Seite 29 von 197 ausbildung mit zukunft HTBLUVA Wien V SPENGERGASSE hti bildung mit zukunft Abteilung Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Produkteinsatz Das Produkt wird alsLehrmittel an der HTBLVASpengergasse eingesetzt werden Anwendungsbereiche e Lernenundverstehen des Umgangs mit der USBMaster Plattform e Kosten und Aufwandseinsparung durch Wegfallen des Hardwareeinsatzes Zielgruppen e Schuler der 1 und 2 Klassen e Lehrerderselbigen Betriebsbedingungen yasp wird in den folgenden Browsern getestet e Chrome32 e Firefox26 e InternetExplorer 10 Die Funktionalit t wird in den oben genannten Browsern auf f r das Jahr 2013 g ngiger Hardware getestet Die Lauff higkeitin anderen Umgebungen kann nicht sichergestellt werden Seite 30 von 197 GE ausbildung mit zukunft HTBLUVA Wien V SPENGERGASSE hti bildung mit zukunft Abteilung Informatik Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik Entwicklungsumgebung F r die Entwicklung wird unsererseits Linuxund OS X verwendet Wir werden darauf achten dass alle verwendeten Tools z B grunt less qunit auch mit anderen Betriebssystemen kompatibel sind k nnen aber hier keinen Supp
115. haupts chlich am Assembler gearbeitet da er schon mehrere Compiler geschrieben hat und ich habe den Emulator entwickelt Dies hat bis auf die ORG Direktive zu einem sehr reibungslosen Projektablauf gef hrt Da war das gesamte Projekt in den Sommerferien durchgeplant haben stellte sich die Kommunikation w hrend des Projekts als sehr einfach heraus Es war immer klar welche Arbeiten unter eine allgemeinen Bezeichnung wie Debugger fallen und wie genau diese zu implementieren sind Aus diesem Grund konnten wir die meisten Meetings ber das Internet und in weniger als einer Stunde abhalten was viel Zeit gespart hat Au erdem wurden so viele Diskussionen ber Implementationsdetails w hrend des Projektes vermieden da diese in den Sommerferien stattfanden Insgesamt bin ich mit dem Projekt sehr zufrieden Wir haben alles erreicht was wir erreichen wollten und konnten sogar noch ein paar KANN Ziele unterbringen Wenn sich Zeit findet werde ich aufjeden Fall noch ein paar der verbleibenden Punkte siehe Anregungen f r Folgeprojekte in meiner Freizeit erledigen einfach weil es mir bis jetzt sehr viel Spa gemacht hat an yasp weiter zu Programmieren Weiters hoffe ich dass sich n chstes Jahr ein Diplom oder Begleitprojekt findet welches ebenfalls yasp ein wenig nach vorne treiben wird Seite 109 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ S Abteilung Informatik EE Ausbildungsschwerpunk
116. he Zu Zeile Codeformatierung gem Styleguide siehe Anhang 7 Assembler Styleguide o AutomatischeFormatierung KANN IDE instellungen an DTN Wiederholen ver ndern Con gt ES Text Eingabe Externe Kommunikation Siehe Anhang 4 Protokolle und Datenstrukturen Seite 35 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft Zr gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Server Ein Anwender kann den geschriebenen Quellcode nicht nur im localStorage speichern sondern auch auf einem Server Uber den Speichern Dialog kann man wahlweise die Quelldatei auF dem Server speichern Hierbei hat man Folgende Optionen e Benutzername Passwort Benutzer k nnen nur auf die Datei zugreifen sofern das Passwort richtig ist bzw das Masterpasswort angegeben wurde e Benutzername Kein Passwort Da vielleicht Sch lerinnen und Sch ler ihr Ergebnis mit anderen Sch lern teilen wollen oder Angst haben ihr Passwort zu vergessen wird es die M glichkeit geben Dateien ungesch tzt zu speichern ber den Laden Dialog wird die entsprechende Datei vom Server geladen Dabei bekommt man nach Angabe des Benutzername eine Auswahl der unter diesem Namen gespeicherten Dokumente Diese kann man schlie lich nach Angabe des Passworts sofern ben tigt ffnen Weiters haben Lehrer nach Angabe des Masterpasswortes die M glichkeit beliebige Dateien zu ffnen Di
117. he resultis 0 Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 2 Binary Code 00100000 1071RwRwRwRwRw LwLwLwLwLwLwLwLw Lu wl Aw wl wu LwLw DELAY PAUSE Word Literal Deutsch Wartet die angegebene Zeit z B 1000 15ms 60000 900ms English Waits a given time e g 1000 15ms 60000 900ms Anzahl der Unit T ests Number of Unit Tests 2 Codezeilen Lines Of Code LOC 1 Binary Code 00110000 01100000 Lal www wl wl www wl ww ww wl SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Tools und Methodik OR Byte Register Byte Literal Deutsch Wendet den bindren ODER Operator auf den Wert des Registers und den zweiten Parameter an e Zero Flag wird gesetzt wenn das Ergebnis 0 ist English Calculates the binary OR of the value of the register and the even literal value e Zero Flagissetif the resultis 0 Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 2 Binary Code 00000000 101RsRsRBRSRE Lslelelelelelele OR Word Register Word Register Deutsch Wendet den bin ren ODER Operator auf die Werte der Register an e Zero Flag wird gesetztwenn das Ergebnis 0 ist English Calculates the binary OR of the values of both registers e Zero Flagissetif the resultis 0 Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 2 Binary Code 00010000 010101RwRw RwRwRwRwRwRwRwRw DELAY
118. he resultis 0 Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 2 Binary Code 00010000 010110RwRw RwRwRwRwRwRwRwRw SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Toolsund Methodik XOR Word Register Word Literal Deutsch Wendet den bin ren Exklusiv Oder Operator auf den Wert des Registers und den zweiten Parameter an e Zero Flag wird gesetztwenn das Ergebnis 0 ist English Calculates the binary exclusive or of the value of the register and the given literal value e Zero Flagissetif the resultis 0 Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines OF Code LOC 2 Binary Code 00100000 110RwRwRwRwRw LwLwLwLwLwLwLwLw LwLwLwLwLwLw LwLw Seite 195 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ ou Abteilung bildung mit zukunft Informatik s Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Autorenzuordnung Michae Robert Dipl Ing Statik Fischer lo EINLEITUNG LEUTE m BG o o mas edikor 7Code Edto E mas editor De psOtl zustand RRE GRUNDLAGEN UND METHODEN Projektanta OOOO O p ER E Projektbeschreibung III isrsituation OO 5 GE S SSS solStuton OO OoOo o i E e SSCS A 5 GEHE Be A YT SSCS S LE ll Technologien Vorgehensweise OOOO O S o o Projekte Verwaltungdessource ode Kommune Automatische Tests e Ge DE ERGEBNISSE Pflichtenheft
119. hen unseren regul ren Arbeitsablauf nun wiederherzustellen Vorstudien Pr sentation Die Pr sentation wurde f r den 27 November vorbereitet Milestones Die Milestonessolltentrotz der Pause eingehalten werden k nnen Allerdings muss in den verbleibenden Wochen zur Erreichung des ersten Milestones Fertigstellung des Assemblers inklusive aller Befehle und Fertigstellung des Assemblers inklusive aller Befehle ohne Debugging Features mehr gearbeitet werden Optimierung des Emulators Der Emulator wurde von 17Hz auf 22 kHz optimiert Neues Test System Das Testsystem wurde optimiert so dass das Schreiben eines Tests nun durchschnittlich 2 Minuten statt von 5 7 Minuten dauert Seite 123 von 197 SPENGERGASSE HTBLuVA Wien V ht Abteilung Informatik a Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik Dokumentationsformat AktuellesFormat name MOV description moves stuff NeuesFormat name MOV description moves stuff schiebt zeug an de d Zusatzliche Anderungen Wenn die description null ist wird die Beschreibung von einem Befehl bernommen welcher den selben Namen hat Siehe Erkenntnisse und Aktivit ten Ergebnis Seite 124 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ gt Abteilung bildung mit zukunft Informatik s Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik 4
120. i Abteilung Informatik bildung mit zukunft AUsbildungsschwerpunkt Intelligente Systeme Tools und Methodik Projektbeschreibung DasZiel von yasp ist den USB Master samt Entwicklung in den Browser zu verlegen Dabei soll der Umgang mit Assembler n her gebracht werden Das bedeutet dass die Sch lerinnen und Sch ler sich nicht mehr um das komplizierte Auf und Abbauen der Hardware k mmern m ssen sie eine zuverl ssige Plattform verwenden k nnen und dadurch mehr Spa beim Entwickeln haben Weitersk nnen sie auch zu Hause den Umgang mit Hard und Softwareelementen lernen Zus tzlich erleichtert es den Unterricht ungemein da sich niemand Sorgen mehr um dasFunktionieren der Hardware machen muss Dabeiwird das gesamte Software und Hardwarepaket rund um den USB Master im Browser implementiert Es wird eine IDE geben die mit Syntaxhighlighting und weiteren komfortablen Funktionalit ten dasLeben der Sch lerinnen und Sch ler erleichtern wird Da der aktuelleEditor keine solchen Funktionalit ten bietet wird dies das Programmieren mit dem USB Master um einiges vereinfachen Was bringt einem eine ordentliche Entwicklungsumgebung wenn man seinen Code nicht komfortabel ausf hren kann Genau deshalb wird unser Projekt auch einen entsprechenden Assembler samt Emulator beinhalten Der Assembler wird daf r zust ndig sein die eingegebenen Befehlezu Bin rcode f r den Emulator umzuwandeln Der Emulator nimmt die Bits und Bytes des Assemblers un
121. i Branches entschieden master und stabile Der master Branch stellt den aktuellen Entwicklungsstand dar und ist m glicherweise nicht funktionst chtig Hier findet auch die Entwicklung der Sprints statt In Kontrast dazu steht der stabile Branch welcher immer den Stand nach dem letzten Sprint enth lt Dieser bietet immer eine funktionierende Version von yasp an und sollte vor allem von Endnutzern verwendet werden Kommunikation Vor Projektbeginn fanden fast ausschlie lich Meetings statt auf denen das Pflichtenheft und die User Stories geschrieben wurde Nach jedem Meeting gab es ein bis zwei kleine Aufgaben f r jedes Mitglied die bis zum n chsten zu erledigen waren Seite 21 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft i Abteilung Informatik bildung mit zukunft AUsbildungsschwerpunkt Intelligente Systeme Tools und Methodik Die Kommunikation w hrend des Projekts wurde gro teils ber das Internet abgewickelt da die beiden Teammitglieder in verschiedenen Schulklassen waren Hier wurde meistens die Software Skype verwendet um auch Telefonkonferenzen zu erm glichen Alle Dokumente die w hrend des Projektes anfielen wurden in Google Docs erfasst da dies eine Echtzeitkollaboration m glich macht Am Ende jedes Sprints haben wir uns getroffen die Erneuerungen besprochen und anschlie end den stabile Branch aktualisiert Hier wurden auch Defects Fehler in OnTime eingetragen um Nachbe
122. ia two buttons Impulse Pulse width modulation e t on off lt gt lt gt lt gt lt gt lt gt lt gt gt A const H t t on off const mov wO 1 sz T on mov wl 200 T off main PWM high 3 turn the LED on delay w0 wait for Ton low 3 turn the LED off delay wl wait for T off control lightlevel lighter if button 1 is pressed pin jnz ligher darker if button 2 is pressed pin 2 Seite 173 von 197 bildung mit zukunft jnz jmp ligher inc dec jz jnz darker inc dec jz jmp end darker main wo wl darker main wl wo heller main a r HTBLuVA Wien V Abteilung Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik T on T OFE check T on eat Check SPENGERGASSE ausbildung mit zukunft Informatik E for bounds in wl if hit increase again for bounds in wl if hit increase again Seite 174 von 197 HTBLUVA Wien V SPENGERGASSE Informatik Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik htl ausbildung mit zukunft DZ gt Abteilung bildung mit zukunft 3 Testprogramm f yasp testprogram 03 dimm an LED using PWM Pulse width modulation The l
123. ie Seite im Zeitraum von FebruarbisAnfang April 25 000 mal von Usern aus der ganzen Welt aufgerufen wie im Punkt Besucherstatistiken zu sehen ist Link http yasp me Demo http demo yasp me Besucherstatistiken Besucheranzahl Die Website des Projekts wurde insgesamt 25 000 mal aufgerufen Bei der Auswertung der Aufrufe Fallen zwei Spikes ins Auge welche in der folgenden Grafik gut sichtbar sind Die Aufrufe in den Flachen Teilen betragen circa 30 40 Besucher pro Tag wo sich die Zahlen auch Anfang Mai 2014 noch befanden Der erste Spike wurde von der Ver ffentlichung auf hackernews https news ycombinator com verursacht der zweite durch den Artikel auf hackaday u Insgesamt waren wir mit der Anzahl der Besucher berrascht und sehr zufrieden sun Vistes Unique visitors 5560 D aa Fri14 Feb Thu 27 Feb Wed 12 Mar Tue 25 Mar Mon 7 Apr Seite 97 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft I gt Abteilung bildung mit zukunft Informatik s Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Besucherherkunft 19 5k visits zez SS g pr e PE Hackaday Hackaday ist ein Online Magazin welches jeden Tag Hacks und jede Woche ein sogenanntes How To ver ffentlicht Ein Hack ist in diesem Fall die nderung eines Produktes oder einer Software zum Zweck der Bequemlichkeit Neuheit Funktion oder Kreativit t Hack a Day wurd
124. ied dass call die Parameter der Funktion direkt bergeben func call 1 2 bekommt applyjedochalsArray func apply 1 2 Dader Emulator eine variable Anzahl von Parametern f rdie einzelnen Instruktionen unterst tzensoll wurde die apply Funktion gew hlt Es stellte sich jedoch schnell heraus dass diese viel langsamer als call ist Im Source Codevon v8 die JavaScript Engine von Google Chrome ist zu sehen dass call den bereits bergebenen Stack welcher auch die Parameter enth lt recycled apply jedoch den Stack aus der Array Referenz komplett neu aufbauen muss was um einiges l nger dauert Letztendlich wurde im Emulator die call Funktion zusammen mit Loop Unrolling eingesetzt Cachin pert onn auf Bit Ebene wie zum Beispiel Shiften sind bei JavaScript nicht sehr performant was daran liegt dass die Sprache nur einen Datentyp Fur Zahlen kennt den double Somit muss die Zahl f r jede Bit Operation in einen Integer umgewandelt die Operation angewendet und danach wieder zur ckgewandelt werden Diese Operationen werden beim Einlesen der Befehle im Emulatorsehr oft verwendet was zu einer schlechten Performance gef hrt hat Die L sung war Seite 102 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft u gt Abteilung Informatik E ai Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik ein Cache der schon eingelesenen Befehle auf welchen sehr viel schneller zu
125. ight level of the LED can be changed via an potentiometer For more information about PWM take a look at testprogram 02 main adel wo Read potentiometer value into the higher byte of w0 which is bl This value will be used as T on mov wl w0 copy T on to T off inv b3 T on T off 255 high 3 turn the LED on delay w0 wait for T on low 3 turn the LED off delay wl wait for T off jmp main end Seite 175 von 197 bildung mit zukunft HTBLuVA Wien V Abteilung Ausbildungsschwerpunkt SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Toolsund Methodik 4 Testprogram m x yasp testprogram 04 d very basic program to test various register commands z main mov mov mov inc add debug jmp end bO b1 b0 bo BO bo main 23 7 write 23 to b 67 write 67 to bl copy the content of bl 67 to bO increment b0 by 1 add bO and bl send bO 135 write the result 135 to bO to the debugger Seite 176 von 197 bildung mit zukunft 5 r r Abteilung Testprogramm HTBLuVA Wien V Ausbildungsschwerpunkt SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Toolsund Methodik yasp testprogram 05 the red LED blinks and the other LEDs
126. ik yasp Assembler Tutorial yasp uses a custom assembler which wascreated a decade ago bya teacher of our school HTL Spengergasse It has been designed to help students understand computers better and is thereforereallysimple and easy tolearn A number of documented sample programscan be found in sampleprograms Basic Syntax label COMMAND parameteri1 parameter2 COMMAND parameter1 3 comment A valid label must e onlycontain Numbers Letters _or e notbeacommand name e g MOV Processor Features e 32 byteregisters b b31 e 32 wordregisters we w31 e thecontentof the first 16 word registersis equal to the byte registers e anumber of IO Pins see lO e Hardware Interrupts e Carryand Zero Flag e 16 bytestack e Simplesubroutines e PWM Simulation gt soft blinking LEDs Commands This is only a list of the most important commands or instructions Use the help feature of the IDE to geta Full list of commandsand their parameters and descriptions Basic Commands All of these commandstake two parameters e register register e register literal The result of the operation will be written into the First parameter the register e MOV e ADD SUB e DIV MUL e OR XOR AND MOV be 2 MOV b1 3 ADD b b1 b is 5dec MOV b3 1 AND b3 b b3 is 4dec Seite 137 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ S Abteilung Informatik bildung mit zukunft Ausbildungssch
127. ilfe ist eine Dokumentation die vor allem f r Anf nger eine gro e Hilfe darstellt w hrend man den Befehl eintippt liefert sie n tzliche Informationen wie zum Beispiel Parameter und Beschreibung die dem Programmierer oder der Programmiererin viel Arbeit abnehmen Wenn nicht eindeutig ist welcher Befehl gesucht ist liefert die Schnellhilfe eine Liste m glicher Befehle Seite 81 von 197 ausbildung mit zukunft __ HTBLUVA Wien V SPENGERGASSE ht bildung mit zukunft Abteilung Informatik Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik 5 Aktionsmen DasAktionsmen besteht aus vier Buttons die alle bereitsim regul ren Men erreichbar sind jedoch so h ufig gebraucht werden dasses praktischer ist wenn diese direkt sichtbar sind Eu F hrt dasaktuelle Programm ausund ffnet den Debugger a F hrtdasaktuelle Programm aus stoppt aberan der ersten Instruktion im Debugger o Offnetdie Dokumentation Uber alle Befehle in einem Dialogfenster amp Teilteine Datei Seite 82 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft zo gt Abteilung bildung mit zukunft x In formatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Einstellungen Im Einstellungsdialog wird das V erhalten der IDE kontrolliert und eskann nach eigenen Vorlieben und Interessen angepasst werden Settings Theme lt gt Eclipse Tab Size lt gt
128. inencode zu schreiben Assembler GitHub Dokumentation Die Dokumentation des Assemblers ist nun auf GitHub dokumentiert und f r jeden einsehbar Rescale Breadboard Wenn der Debugger skaliert wird so wird auch das Breadboard samt Hardware Elemente an die neue Gr e angepasst Hierbei gab es kleinere Probleme mit dem Potentiometer weil dieser fixe Pixelwerte verwendet hat Unit Tests in Befehlsdateien ausgelagert Die Unit Tests der Instruktionen des Emulators waren vorher dezentral im tests Ordner gespeichert Jetzt werden sie stattdessen direkt in der Befehlsdateimitsamt der Implementation und Metadaten persistiert wodurch es bersichtlicher wird Diverse Bugfixes Mehrere kleinere Fehler in der IDE Debuggerund Emulator wurden behoben wie zum Beispiel dass Strings rot markiert waren die automatische Speicherfunktionnun fehlerfrei funktioniert und die Tabgr e wird nun bei nderungen korrekt dargestellt Seite 133 von 197 LAA Wien V SPENGERGASSE htl ausbildung mit zukunft sliding Se Abteilung Informatik Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik Technische Dokumentation Seite 134 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ gt Abteilung bildung mit zukunft Informatik s Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Inhaltsverzeichnis vasp Assembler TU ONA aana raaa a aaora Eare rera rA A a EEEE A aaO ae ER ASA E
129. ionen angesprochen werden k nnen Es ist eine rote Pin 3 eine gelbe Pin 4 und eine gr ne Pin 5 LED verf gbar Buttons Ein grauer undein roter Button an Pin 1 und 2 Diese k nnen mit der PIN Instruktion ausgelesen werden Zus tzlich ist es m glich Interrupts zu triggern wasim Tutorial der TechnischenDokumentationn her beschrieben wird Anzeige des aktuell ausgef hrten Sourcecodes Durch einen Klick auf eine Zeilennummerkann ein Breakpoint gesetzt oder entfernt werden Falls sich der Emulator im Stepping Modus befindet wird das nachste Statement grau hinterlegt Seite 90 von 197 SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Toolsund Methodik Debugger Tabs Debug Log Debug RAM ROM Registers Breakpoints b 0x20 ba 0x40 b 0x60 b 0x80 ba 8xa b 8xc Format HEX Im Debug Log werden die Ausgaben der DEBUG und PRINT Instruktionen angezeigt Standardm ig werden alle Register Werte in im Hexadezimal Format ausgegeben dies kann mit dem Format Switch ge ndert werden Mit dem Clear Button kann dasLog geleert werden Dieser Tab wird auch aktualisiert wenn sich das Programm im run Modus befindet also nicht gesteppt wird RAM View Debug RAM ROM Registers Breakpoints 0x0000 cO 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0
130. ity Operator Der Equality Operator berpr ft zus tzlich auch Werte die nicht ganz gleich sind aber eine gleiche Bedeutung haben Zum Beispiel sind 0 und false mit gleich Das kann wie auch beiif variable auf Kosten der Performance gehen Firefox Firefox ist bei vielen Funktionen relativ eigenwillig so kann man nicht ohne Weiteres eine gro e Anzahl an Webworker Messages oder Log Messages absetzen ohne das Einfrieren des gesamten Browsers zu riskieren Zus tzlich hat Firefox Probleme mit gro en DOM Elementen wie zum Beispiel das Debug Log in unserem Fall in dem sich schnell mehrere tausend Nachrichten ansammelnk nnen Die L sung ist hier oft Rate Limiting wie im Sprint Protokoll 0 9 beschrieben Simulation der Pulsweitenmodulation PWM Pulsweitenmodulation ist einer der Hauptinhalte des Lehrstoffs und war damit unentbehrlich Prinzipiell ist es einen Technik mit der man LEDs dimmen oder pulsieren lassen kann Urspr nglich waren f r die Simulation von PWM zwei Stunden Arbeitsaufwand eingeplant jedoch stelltesich schnell heraus dasswir hier noch gr ere Probleme haben werden welche sich ber mehrere Monate zogen Der erste Ansatz z hlte die Anzahl der An und Aus Status nderungen berechnet das Verh ltnis und bestimmte so die Leuchtkraft der LED Dieser L sungsweg wurde in dem Hardwareelement selbst realisiert Leider f hrteer je nach genauer Einstellung der Parameter entweder zu Flickern oder einer viel zu langsam
131. kunft AUsbildungsschwerpunkt Intelligente Systeme Tools und Methodik SOLL Situation Das Ziel unseres Projektes ist den USB Master samt Entwicklung in den Browser zu verlegen Dabei soll der Umgang mit Assembler n her gebracht werden Das bedeutet dass die Sch lerinnen und Sch ler sich nicht mehr um das komplizierte Auf und Abbauen der Hardware k mmern m ssen sie eine zuverl ssige Plattform verwenden k nnen unddadurch mehr Spa beim Entwickeln haben Weiters k nnen sie auch zu Hause den Umgang mit Hard und Softwareelementen lernen Zus tzlich erleichtert das dasLeben der Lehrerinnen undLehrerungemein da sie sich keine Sorgen mehr um das Wohlergehen der Hardware machen m ssen Dabeiwird das gesamte Software und Hardwarepaket rund um den USB Master im Browser implementiert Es wird eine IDE geben die mit Syntaxhighlighting und weiteren komfortablen Funktionalit ten das Leben der Sch lerinnen und Sch ler erleichtern wird Da der aktuelle Editor keine solchen Funktionalit ten bietet wird dies das Programmieren mit dem USB Master um einiges vereinfachen Was bringt einem eine ordentliche Entwicklungsumgebung wenn man seinen Code nicht komfortabel ausf hren kann Genau deshalb wird unser Projekt auch einen entsprechenden Assembler samt Emulator beinhalten Der Assembler wird daf r zust ndig sein dass ausden eingegebenen Befehlen Bin rcode f r den Emulator erstellt wird Der Emulator nimmt die Bits und Bytes des Assembler
132. l gt lt head gt lt title gt lt title gt lt head gt lt body gt lt h1 gt Hello World lt h1 gt lt p class foo gt foobar lt p gt lt body gt lt html gt Seite 113 von 197 REECH SPENGERGASSE htl ausbildung mit zukunft DZ gt Abteilung Informatik BLAUE aii aati Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik CSS Styleguide CSS wird zur Formatierung und Darstellungssteuerung in yaspv erwendet Grunds tzliche Regeln e Jede offenegeschwungene Klammer startet eine neue Einr ckungsebene und schlie ende geschwungene Klammer schlie t eine EinrUckungsebene Einger cktwird mit zwei Leerzeichen Nach jedem Doppelpunkt mussein Leerzeichen kommen davor keines Nach und vor jedem Verkn pfungsoperator mussein Leerzeichen kommen Beispiel foo height 100px width 20px foo bar color red ul asd gt li bar background color red Seite 114 von 197 ausbildung mit zukunft EH HTBLUVA Wien V SPENGERGASSE pej TUNA Wen SPENGERGASSE bildung mit zukunft P teilung Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik JSON Styleguide Die JavaScript Object Notation dient zur Datenhaltung und Kommunikation zwischen den einzelnen Komponenten Grunds tzliche Regeln e Es gelten grunds tzlich die selben Regeln wie f r JavaScript e Zus tzlich mussjeder Key in doppelten Anf hrungszeichen maskiert
133. lag wird gesetzt wenn der Wert OxFFFF war English Adds 1 to the value of the register If the valueis OxFFFF the result will be 0x00 e Zero Flagissetif the resultis 0 e Carry Flag is setif the value was OxXFFFF Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 3 Binary Code 01100000 OOORWRwRwRwRw INV Word Register Deutsch Berechnet das Einser Kompliment des angegebenen registers e Zero Flag wird gesetzt wenn das Ergebnis 0 ist English Calculates the 1 s complement of the specified register e Zero Flagissetif the resultis 0 Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 2 Binary Code 01100000 O010RwRwRwRwRw GOTO JMP Label Deutsch Springt zum gegebenen Label English Jumps to the given label Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines OF Code LOC 1 Binary Code 10110AAA AAAAAAAA JNC Label Deutsch Springt zum gegebenen Label wenn das Carry Flag nicht gesetzt ist English Jumps to the given label only whenthe carry flag is notset Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines Of Code LOC 1 Binary Code 00011AAA AAAAAAAA SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Tools und Methodik INV Byte Register Deutsch Berechnet das Einser Kompliment des angegebenen registers e Zero Flag wird gesetzt wenn das Ergebnis 0 ist English Calcul
134. lator gibt es eine gro e Anzahl an Unittests die die korrekte bersetzung beziehungsweise Ausf hrung des Codes garantieren Diese wurden jedoch nur auf Wunsch der Entwickler ausgef hrt was dazu f hrte dass Fehler in den exotischeren Bereichen zum Beispiel der RANDOM Befehl nicht sofort aufgefallen sind F r weitere Projekte empfehlen Seite 101 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik wir es sehr einen Build bzw Continuous Integration Server aufzusetzen welcher die Tests automatisch ausf hrt und bei Fehlern Alarm gibt Sprintl nge streng einhalten Die meisten unserer Sprints waren wie auch geplant eine Woche lang Jedoch wurde die Sprint l nge gegen Ende des Projektes manchmal auf zwei Wochen erh ht da auch der Aufwand an Haus bungen und Testszunahm Dasf hrtezu einer lascheren Kontrolle der erledigten Arbeiten da diese immer nur am Ende eines Sprints durchgef hrt wurde Wir h tten die L nge der Sprints streng einhalten sollen selbst wenn das bedeutet dass in manchen Wochen nur ein bis drei Stunden Arbeit verrichtet werden Technische Hindernisse bei der Umsetzung Emulator Performance in JavaScript Der Emulator in yasp musste eine bestimmte Taktrate erreichen um wirklich gut nutzbar zu sein Da das gesamte Projekt in JavaScript realisiert wurde war dies eine kleine Hera
135. li n ks 2 1 F e b rua 2 01 4 h tm a real assembler emulator and debugger The assembler dialect is a custom which is ia ia y iz D held very simple so as to keep the learning curve as shallow as possible 3 The 12 Factor App twelve habits of highly successful web developers essentially 4 Fast Approximation of Betweenness Centrality through Sampling PDF Betweenness centrality is a fundamental measure in social network analysis expressing the importance or influence of individual vertices in a network in terms of the fraction of shortest paths that pass through them Exact computation in large networks is prohibitively expensive and fast approximation algorithms are required in these cases We present two efficient randomized algorithms for betweenness estimation tags algorithms education programming research social graph Twitter web web app CoderRadio Coder Radio ist ein Podcast welcher sich mit IT Projekten und Softwareentwicklungbesch ftigt Das Projekt wurde in zwei Folgen behandelt e in Folge 92 circa Minute 14 Interview ber dasProjekt mit dem Projektleiter http www jupiterbroadcasting com 53142 persona non grata cr 92 bzw http youtu be K4gyEmzWRc4 t 14m e in Folge 90 circa Minute 9 Erw hnung des Projektes und kurzes Review http www jupiterbroadcasting com 52237 get yourself tested cr 90 bzw http youtu be lZzzwvl2VOgo t 9m45s Blogs und Foren Diverse Ver ffentlichungen in Foren sozialen N
136. lichtenheft e Produktleistungen IDE e Angefangen Nichtfunktionale Anforderungen Datenschutz Draft6 15 August 2013 i Anderungen im Pflichtenheft Kleinere AnpassungenbeilDE Server amp Datenmodell Use Case Diagramm IDE Komponentenkommunikations bersichts Diagramm Mockup IDE Emulator Aktiv it tsdiagramme Hardware Klassendiagramm amp Infos Mockup Debugger nderungen in Anhang 4 Protokolle Datenstrukturen e Server Seite 26 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft i Abteilung Informatik bildung mit zukunft AUsbildungsschwerpunkt Intelligente Systeme Tools und Methodik Draft7 12 September 2013 Titelblatt Betriebsbedingungen angepasst Projektziele angepasst Befehlsdokumentation Format nderungen Entwicklungsumgebung Draft8 13 September2013 fish Debugger Mockups Redesign Debugger Beschreibung Draft9 14 September 2013 luto Anpassung der KANN SOLL Ziele fish Abnahmeprotokoll Draft10 19 September 2013 Assembler Styleguides Fish Draft11 22 September 2013 luto Definition Emulator Architektur Fish Anpassung Befehlsdokumentation Definition Hardware Erweiterung desAbnahmeprotokolls Glossar erweitert Draft12 23 September 2013 fish Serverteil ausgebaut und angepasst Assembler Pass Beschreibung Rechtsschreib und Grammatikkorrekturen Draft13 25 September 2013 layout fixes Fish Seite 27 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft
137. ls an Dieser wird vom Emulator verwendet um den Befehl zu erkennen e value der Wert nach dem gesucht werden soll o alsString bin r o alsZahl literal e length Lange des Wertes in Bits Darf 8 nicht Ubersteigen Parameter Die Parameter werden nach dem letzten Bit des Code gelesen Parametertypen e r byte o L nge 5 Bits o Nummer eines Byte Registers RAM Adresse value Seite 44 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft A Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik e r word o L nge 5 Bits o NummereinesWord Registers RAM Adresse value 2 e 1 byte o Lange 8 Bits o Byte literal e word o Lange 16 Bits o Worldliteral o L nge 5Bits o NummereinesPins e address o L nge 11 Bits o ROM Adresse z B f r Sprunginstruktionen Exec Funktion Die exec Funktion wird im Kontext des Emulatorsaufgerufen und hatsomit vollst ndigen Zugriff auf alle Funktionen und Speicherwerte Parameter Vor dem Ausf hren der Funktion werden alle ben tigten Werte geladen und als Parameter zur Verf gung gestellt value null number address null number e r byte r word o value WertdesRegisters o address Adresse des Registersim RAM l byte 1l word o value Angegebener Wert o address null e pin o value aktueller Zustand des Pins o address Nummer desPins e address o value Adresse im RAM o address null Emulator
138. n 2 Nach den Befehl MOVsuchen Testresultat Es werden die 4 Uberladungen des MOV Befehlesin demDialog sichtbar Speichern Testdaten Testfall01in die IDE laden Beliebigen Befehl ndern Lokal Speichern via Men punkt oder Shortcut Testresultat Der Quellcodewirdim localStorage gespeichert MUSS Weiters wird der Quellcode Falls gewollt am Schulserver gespeichert KANN Laden Testdaten 1 Offnen viaMen punkt oder Shortcut 2 Zuvorgespeicherte Datei dffnen Testresultat Der zuvor gespeicherte Quellcode wurde geladen und wird in der IDE angezeigt Seite 58 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ A Abteilung Informatik a acai Ausbildungsschwerpunkt Intelligente Systeme Toolsund Methodik R ckg ngig Testdaten Testfall01in die IDE laden Codeeingeben z B Kommentar hinzuf gen R ckg ngigfunktion aufrufen via Men punkt oder Shortcut Testresultat Der urspr ngliche Quellcode ist im Eingabefenster Wiederholen Testdaten TestfallO1in die IDE Laden Codeeingeben z B Kommentar hinzuf gen R ckg ngigfunktion aufrufen via Men punkt oder Shortcut Wiederholenfunktion aufrufen via Men punkt oder Shortcut Testresultat Der urspr ngliche Quellcode mit den nderungen istsichtbar Debugger Break Testdaten 1 Testfall01 in die IDE laden 2 Ausf hrung starten 3 Break Funktion ausf hren Testresultat Pausier
139. n 2 helloWorld 3 Pins 76543210 Mask 000007100 4dec ENABLE 4 Blink green and increment b0 by bl main ADD b0 bl DEBUG b0 send current value of b0 to debugger JC carry jump if b0 had an overflow TOGGLE 5 toggle green LED PAUSE 30000 wait for 450ms JMP main 1 Switch yellow carry TOGGLE 4 toggle yellow LED JMP main called via interrupt when the red button is pressed isrl TOGGLE 3 toggle red LED ECHO helloWorld send string hello world to debugger RETI return to main program 5 helloWorld STRING hello world interrupt table ORG 0x100 DELAY PAUSE Word Literal Waits a given time e g 1000 15ms 60000 900ms 1 Texteditor Dies ist das Herzst ck der IDE Es ist die Komponente mit der Quelltext eingegeben wird Wdhrend man Code mit der Tastatur eintippt wird dieser in Echtzeit eingef rbt Syntaxhighlighting wodurch es einfacher ist Befehle Parameter Labels und Kommentare voneinander zu unterscheiden Zus tzlich gibt es eine EinrUckungsfunktion welche den Quelltext entsprechend einr ckt Befehle sind auf Ebene 1 Der END Befehl auf Ebene 0 und Kommentare auf beliebiger Einr ckungsstufe a i a gut wee woos 5 3 18 W hrend man Quelltext in das Fenster eingibt hilft die CS 30000 ze kontextsensitive Autovervollstandigung dem Programmierer e a oder der Programmiererin die richtigen Befehle und JE switch yellow Parameter zu finden Hierzu werden in ein
140. n new mode e yasp FileDialog close closescurrent FileDialog Driver Currently there are two possible ways of storing Files e Local Thissaves everything serialized asa JSON object in the localStorage e PHP Thissavesto the PHP server specifically programmed for yasp Thedriversareall callback based soit is easily possible to transform the operations into REST requests Structure A Driver hasto support Following operations DRIVERNAME newFile function name cb newfile gt cb instance of the createdFile s requestList function cb requests list gt cb array of all the files s deleteFile function name cb deletes file gt cb instance of the deletedFile s renameFile function oldname newname cb renames file gt cb successful openFile function name cb opens file gt cb instance of the opened file s saveFile function file cb saves file gt cb instance of the saved file Theyshould bedeclaredin the yasp FileDialog FileSystemDriver object Seite 148 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik File The filesare a object thatrepresenta specific filein the JS environment Followingattributes definea File filename name_of_file username name_of_user createdate time_of_creation group group_of_user changedate la
141. nikerInnen die T r zu ffnen und ihre Ideen Projekte und Forschungsarbeiten in einem wertsch tzenden und fachkundigen Rahmen vorzustellen Der Wettbewerb selbst richtet sich vor allem an Maschinenbau und Hardwareprojekte Wir haben uns ebenfalls bei diesem Wettbewerb beworben sind allerdings auf Grund der Zielgruppe nicht in die zweite Runde gekommen Link http www xtest at news axa_teilnehmer_innen html Seite 100 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft 7 gt Abteilung bildung mit zukunft Informatik s Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Abschlussbericht Ziele In der nachfolgenden Tabelle findet sich die Zusammenfassung unserer Zeil e Es wurden alle SOLL Ziele erf llt und die H lfte der KANN Ziele Zus tzlich ist anzumerken dass die gr eren KANN Zeile vor allem als Anregungen f r Folgeprojekte gedacht waren und sind Unterst tzung von Autovervollst ndigung in der IDE KANN Retrospektive Frontend Framework f r die IDE Die IDE wurde abgesehen von jQuery und Bootstrap in purem JavaScript geschrieben da eine Anforderung im Lastenheft war so wenig externe Libraries wie m glich zu verwenden Im Nachhinein betrachtet w re eine Library wie zum Beispiel AngularJS sehr praktisch bei der Implementierung gewesen da dieseviel Arbeit vor allem beim Anzeigen von dynamischen Werten wie im Debugger abnimmt Unit Tests F r den Assembler und Emu
142. nit Tests IDE Offnen Ja Ja Ja Ja J J J J J J J d IDE Schlie en IDE Einstellungen Nein ver ndern d d d d d d d d d Quelltext eingeben J Z Suchen ein Ersetzen ein Gehezu Zeile ein Schnellhilfe ein Hilfe ein Speichern Ja Seite 49 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft 7 D Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik enw eve eee remem m Debugger Execute Nein Lo Ea Debugger Breakpointtempor r Nein deaktivieren Debugger Bedingte Breakpoints Nein setzen Debugger Zeilenbezogene Nein Bedingte Breakpoints Seite 50 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Gesamtprodukt abgenommen Robert FISCHER Michael LUTONSKY Dipl Ing Robert JELINEK Dipl Ing Joachim GR NEIS Wien am Seite 51 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft Fr Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Testfalle Testprogramme Die Testprogramme befinden sich im doc sampleprograms Verzeichnis 01 Die eingeschaltene LED vom Potentiometer abhangig Testdaten Der Potentiometer wird gedreht Testresultat 1 Drittel Rote LED leuchtet 2 Drittel Gelbe LED leuchtet
143. nte Systeme Tools und Methodik reg see setup reg pin see setup pin interruptMask see setup interruptMask flags see setup flags waitTime number checkDELAY instructions running boolean checkif the emulator isrunning true or not false debug checkif a debug message has been issued see Emulator Documentation ss object execute another setup Thisis done after all the checks Format of literal values Values which areallowed forall literals like42 in reg b 42 e hex xFF normal javascript number literal e dec 255 normal javascript number literal e bin 1111111 binary format written asstring spaces are allowed Full example var tester new yasp test EmulatorTester demonstration tester addTest cmd ADD be 1 setup reg bO OxFF steps reg be ot flags c true z true tester addTest cmd INV be setup reg be 00000001 steps reg be 11111110 flags c false z false tester done Seite 160 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft Zr S Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Hardware LED Like a light bulb just newer State e Gets Float from to 1 indicating the light level e Sets nothing Parameters onColor rgb 8 255 0 offColor rgb 60 PushButton Button which s
144. ort bieten Bei der bergabe wird ein Build und Quellcode zur Verf gung gestellt welcher den letzten fertigen Stand unserer Entwicklung darstellt Seite 31 von 197 HTBLUVA Wien V SPENGERGASSE hkl ausbildung mit zukunft Fr Abteilung Informatik ALAND aii aati Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Produktfunktionen und Produktumsetzung Komponentenkommunikations bersichtsdiagramm Dieses Diagramm beschreibt wie die einzelnen Komponenten miteinander kommunizieren Informationen zur genauen technischen Umsetzung dieser Actions und Broadcasts findet sich im Anhang 4 Protokolle und Datenstrukturen ke 3 5 E P E WW V E 2 mA O Di d T v v HO oz S td SE S GG E E ke eo vw Di m MI cuz e E Ee ge Li u ki 4 i O Du el Gi Di Se u GI E Ei e a 3 ee e Z Hg re HM on om D arms ve eg Ex Eu En lt nuQ wA caom Do 7 eeeeee Ka Ak gt 5 bei 9 amp 3 E O LU Op GO w s S Di D OM GEES OH ba OO KS Oo a a Gd OI DI ra o D amv ELCeee wo Seite 32 von 197 HTBLUVA Wien V SPENGERGASSE ht i ausbildung mit zukunft ZZ gt Abteilung bildung mit zukunft S Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Produktdaten Assemblercode localStorage oder Server lesen schreiben Maschinencode lesen schreiben Befehlsdefinitionen JavaScript Code Produktleistungen
145. other visual clues It is possible to change the used hardware by defining a new breadboard in src app js editor breadboard Breadboard Format if typeof yasp undefined yasp if yasp BreadBoardTypes yasp BreadBoardTypes function yasp BreadBoardTypes usbmaster humanreadable name which is shown in menus name de USB Master en USB Master hs a short description which should not exceed two sentences description de Breadboard das aussieht wie der USB Master en Breadboard which mimics the USB Masters look hs background image to use optionaL image url app img usbmaster png height 260px width 335px definition of the hardware elements to create add and wire hardware hardware type see doc hardware md type POTI parameters for the hardware see files in doc hardware params onColor rgb 255 0 0 offColor rgb 60 0 0 pin on the emulator to attach this hardware to pin 11 Seite 152 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft I SSS Abteilung Informatik E ai Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik where to show the tooltip which contains additional information such as used pin possible values Left right top bottom default top tooltip placement bottom D size and placement of this piece of hardware
146. r of Unit T ests 3 Codezeilen Lines Of Code LOC 3 Binary Code 00100000 FOR A le LwLw TOGGLE Pin Deutsch Invertiert den digitalen Werteines Ausgangs Pins English Inverts the digital value of an output pin Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines OF Code LOC 1 Binary Code 10100000 010PPPPP WRROM Word Register Byte Register Deutsch Schreibt den Wert des Byte Registers in den ROM an die Adresse des Word Registers e _Carry Flag wird gesetzt wenn die Adresse au erhalb des RAMs liegt English Writes the value of the byte registerinto the ROM at the address of the word register e Carry Flagissetifthe address is outside the bounds of the RAM Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines OF Code LOC 2 Binary Code 00010000 011010RwRw RwRwRwReReReReRe SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Tools und Methodik e Carry Flagissetifthe result smaller than 0 Anzahl der Unit T ests Number of Unit T ests 3 Codezeilen Lines OF Code LOC 3 Binary Code 00010000 010010RwRw RwRwRwRwRwRwRwRw WRRAM Word Register Byte Register Deutsch Schreibt den Wert des Byte Registers in den RAM an die adresse des Word Registers e Carry Flag wird gesetzt wenn die Adresse au erhalb des RAMs liegt English Writes the value of the byte register into the RAM at the address of the word register e Carry Flagisseti
147. rch das niederwertige Byte des zweiten Registers English Divides the value of the first Register with the least significant byte of the second register Anzahl der Unit T ests Number of Unit T ests 4 Codezeilen Lines Of Code LOC 4 Binary Code 00010000 011000RwRw RwRwRwRwRwRwRwRw ENABLE Byte Literal Deutsch Aktiviert die Interrupts die in der gegebenen Maske bin r 1 sind z B 0x03 00000011b interrupts 1 und 2 English Enables Interrupts based on the given mask z B 0x03 00000011b interrupts 1 and 2 Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 1 Binary Code 00000000 11100001 LaLgLgleLglgLele INC Byte Register Deutsch Addiert 1 zum Wert des Registers Wenn der Wert OxFF ist ist das Ergebnis 0x00 e Zero Flag wird gesetzt wenn das Ergebnis 0 ist e _Carry Flag wird gesetzt wenn der Wert OxFF war English Adds 1 to the value of the register If the value is OxFF the result will be 0x00 e Zero Flagissetif the resultis 0 e Carry Flag is set if the value was OxFF Anzahl der Unit T ests Number of Unit T ests 2 Codezeilen Lines OF Code LOC 3 Binary Code 01000000 O00RBR3sRBRERB Seite 187 von 197 HTBLuVA Wien V Abteilung Ausbildungsschwerpunkt bildung mit zukunft INC Word Register Deutsch Addiert 1 zum Wert des Registers Wenn der Wert OxFFFF ist ist das Ergebnis 0x00 e Zero Flag wird gesetzt wenn das Ergebnis 0 ist e Carry F
148. rde zum Beispiel SUB GOTO SUB dann f hrte dies zu einer unverst ndlichen Meldung die vom Benutzer nur schwer interpretierbar war Ergebnis Der Emulator istnun Feature Complete Pr sentationsdemosvorbeitetet Verbesserung der Fehlermeldungen des Assemblers Milestone 1 Assembler und Emulator fertiggestellt Seite 126 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ S Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik 6 Scrum Meeting 0 5 Erkenntnisse und Aktivitaten Editorintegration Assembler und Emulator wurdenin den Editor integriert Es ist jetzt m glich alle Features der beiden im Editor zu verwenden Zus tzlich werden unter dem Textfeld weitere Informationen und die Parameter des aktuellen Befehls angezeigt Hardwareintegration Im Debugger wird nun die Hardware angezeigt und es ist m glich diese mit Befehlen wie z B HIGH vom Emulator anzusprechen Hardwareanpassungen Die Wertebereich des Potis wurde von 0 359 zu 0 255 ge ndert Die Werte des Pushbuttonswurdenvon trueund falseauf 0 und 1 ge ndert Bugfixes im Assembler Der Assembler warf eine Syntaxfehlermeldung wenn ein Kommentar in einer Zeile war wo bereits ein Befehl vorhanden war MOV bO 10 Ein super Kommentar Weiters war der Befehl DA nicht korrekt implementiert so dass er eine falsche Adresse in den Maschinencode geschrieben hat ORG lmeinlabel DA
149. rlegen Dabei soll der Umgang mit Assembler n her gebracht werden Das bedeutet dass die Sch lerinnen und Sch ler sich nicht mehr um das komplizierte Auf und Abbauen der Hardware k mmern m ssen sie eine zuverl ssige Plattform verwenden k nnen und dadurch mehr Spa beim Entwickeln haben Weiters k nnen sie auch zu Hause den Umgang mit Hard und Softwareelementen lernen Zus tzlich erleichtert es den Unterricht ungemein da sich niemand Sorgen mehr um das Funktionieren der Hardware machen muss Dabeiwird das gesamte Software und Hardwarepaket rund um den USB Master im Browser implementiert Es wird eine IDE geben die mit Syntaxhighlighting und weiteren komfortablen Funktionalit ten das Leben der Sch lerinnen und Sch ler erleichtern wird Da der aktuelle Editor keine solchen Funktionalit ten bietet wird dies das Programmieren mit dem USB Master um einiges vereinfachen Was bringt einem eine ordentliche Entwicklungsumgebung wenn man seinen Code nicht komfortabel ausf hren kann Genau deshalb wird unser Projekt auch einen entsprechenden Assembler samt Emulator beinhalten Der Assembler wird daf r zust ndig sein die eingegebenen Befehle zu Bin rcode f r den Emulator umzuwandeln Der Emulator nimmt die Bits und Bytes des Assemblers und f hrt diese dann im Browser aus Dadurch bleibt alles plattformunabh ngig unddie Sch ler und Sch lerinnen k nnen komfortabel den Umgang mit Assembler erlernen Der leistungsf hige Debugger vom
150. rmat der Inhalt ausgegeben werden soll Au erdem kann man den Inhalt eines Bytes Words setzen indem man mit dem Cursor draufklickt und dann in die untere Textbox den Inhalt eingibt ROM Siehe RAM Zeigt statt dem RAM den ROM an Seite 38 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft Fr Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Registers Die linke Seite zeigt den aktuellen Inhalt des Stacks an Zus tzlich bezeichnet SP den Inhalt des Stackpointers an Das Carry Bit und Zero Bit zeigen den jeweiligen Inhalt der Flagsan Alle Werte Stackpointer Carry Bit und Zero Bit k nnen vom Anwender bearbeitet werden Breakpoints Die Tabelle zeigt die jeweiligen Breakpoints an die im Quellcode definiert wurden Position ist die Zeile des Breakpoints Condition ist die Bedingung bei der der Debugger anh lt Nur wenn jener Ausdruck wahr ist wird dort angehalten Active gibt an ob beim Breakpoint pausiert wird oder ob er vor bergehend deaktiviert ist Jump To springt zur jeweiligen Zeile im Quellcode Assembler Der Assembler ansich besitzt kein Userinterface und wird vollst ndig im Hintergrund ausgef hrt Er wird gestartet wenn der User auf den Ausf hren Button klickt Emulator Der Debugger ist das Frontend desEmulators Weshalb der Emulator selbst im Hintergrund l uft Gestartet wird der Emulator durch den Klick auf Ausf hren IDE OO
151. rsa Condition Eine Condition bezeichnet eine Bedingung die verwendet wird um zu bestimmen ob bei einem Breakpoint gestoppt werden soll Dabeiwird der Bezugswert genommen errechnet sich aus type und param und wird mit dem Wert in value mit dem Vergleichsoperator operator verglichen type register flag io ram rom param Operator Tiret ler Mal T3 MEN EISEN write J value new Uint8Array 0 e type bezeichnet wasdie Bedingung berpr ft e paramist der zus tzliche Parameter der n her spezifiziert was genau untersucht werden soll Seite 72 von 197 HTBLUVA Wien V SPENGERGASSE ht ausbildung mit zukunft Abteilung j Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik bildung mit zukunft Bedeutung des Parameters M glichkeiten register Welches Register ist gemeint WO0 31 Wordregister BO 31 Byteregister PC Program Counter SP Stack Pointer Flag Welches Flag ist gemeint C Carry Bit Z Zero bit io welcher Pin ist WelcherPinistgememt 0000 Su Offsetvon e C vergleichen e operator besagt welche Operation zwischen dem Bezugswert der sich aus der Kombination von type und paranm ergibt angewandt werden soll e value bezeichnet den Zielwert bei dem angehalten wird Je nach type und param m ssen andere Datentypen in value sein RAM ROM E dem angegebenen Offset verglichen wird Sei
152. rte sichtbar in der jede nderung eines Wertes farbig markiert wird In diesem Tab wird auch der aktuelle Wert der SPRs Special Purpose Registers wie SP oder PC sowie der Stack selbst angezeigt Der Debugger speichert bei jedem Step den aktuellen Zustand des Emulators ab Diese gespeicherten Zust nde k nnen mit dem Step Back Befehl wieder hergestellt werden Somitist es m glich in der Ausf hrung wieder einen Schritt zur ck zu gehen was beim Debuggen sehr hilfreich sein kann PushButton sperren Beim Debuggen ist es manchmal notwendig einen der beiden Buttons zu dr cken und gleichzeitig zu Steppen Dies war bislang nicht m glich da ein Button nur solang gedruckt blieb wie die Maustaste selbst Es ist jetzt m glich mit einem SHIFT Klick die Status des Buttons zu sperren womit er auch gedr ckt bleibt wenn die Maus den Button verl sst Seite 130 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ gt Abteilung bildung mit zukunft Informatik s Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik 10 Scrum Meeting 0 9 Erkenntnisse und Aktivitaten Firefox Probleme Webworker Messages Firefox hat im Gegensatz zu anderen Browsers Probleme mit einer gro en Anzahl von Webworker Messages welche zum Beispiel durch das schnelle Blinken einer LED zustanden kommen k nnen Es war somit m glich den gesamten Browser mit einem yasp Programm zum Stillstand zu bringen
153. ry Flag is setif the resultsmaller than 0 Anzahl der Unit T ests Number of Unit T ests 3 Codezeilen Lines Of Code LOC 3 Binary Code 00010000 000010RgRg RgeRgRgeRgRgeRgRgRsg SUB Word Register Word Literal Deutsch Subtrahiert den gegebenen Wert von dem Wert des Registers e Zero Flag wird gesetzt wenn das Ergebnis 0 ist e Carry Flag wird gesetzt wenn das Ergebnis kleiner als 0 ist English Subtracts the given value from the value of the first register e Zero Flagissetif the resultis 0 Wert des Registers e Zero Flag wird gesetzt wenn das Ergebnis 0 ist e Carry Flag wird gesetzt wenn das Ergebnis kleiner als 0 ist English Subtracts the given value from the value of the First register e Zero Flagissetif the resultis 0 e Carry Flagissetifthe resultsmaller than 0 Anzahl der Unit T ests Number of Unit T ests 3 Codezeilen Lines OF Code LOC 3 Binary Code 00000000 010RgRegRgRegRse Le oelelelelele SUB Word Register Word Register Deutsch Subtrahiert den Wert des zweiten Registers von dem des ersten e Zero Flag wird gesetzt wenn das Ergebnis 0 ist e _Carry Flag wird gesetzt wenn das Ergebnis kleiner als 0 ist English Subtracts the value of the second register From the first one e Zero Flagissetif the resultis 0 Seite 193 von 197 HTBLUVA Wien V Abteilung Ausbildungsschwerpunkt bildung mit zukunft e Carry Flagissetifthe result smaller than 0 Anzahl der Unit T ests Numbe
154. s 0 ist e Carry Flag wird gesetzt wenn der Wert 0 war English Subtracts one from the value of the register IF the value is 0x00 the result will be OxFFFF e Zero Flagissetif the resultis 0 e Carry Flagissetifthe value was 0 Anzahl der Unit T ests Number of Unit T ests 3 Codezeilen Lines OF Code LOC 3 Binary Code 01100000 001 RwRwRwRwRw Seite 186 von 197 HTBLuVA Wien V Abteilung Ausbildungsschwerpunkt bildung mit zukunft DISABLE Deutsch Deaktiviert alle interrupts English Disables all interrupts Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 1 Binary Code 00111010 ECHO DEBUG PRINT Label Deutsch Sendet einen String zum Debugger Der String muss wie folgt definiert sind string Name ST RING Foobar English Sends a string to the debugger The string has to be defined like this stringName ST RING Foobar Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 1 Binary Code 11010AAA AAAAAAAA HIGH Pin Deutsch Setzt den Pin auf den high bzw an Zustand English Puts the pin into the high or on state Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines OF Code LOC 1 Binary Code 10100000 000PPPPP SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Tools und Methodik DIV Word Register Word Register Deutsch Dividiert den Wert des ersten Registers du
155. s OF Code LOC 1 Binary Code 00111011 Seite 191 von 197 HTBLuVA Wien V Abteilung Ausbildungsschwerpunkt bildung mit zukunft SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Tools und Methodik RDROM Byte Register Word Register RDRAM Byte Register Word Register Deutsch Liest den Wert im ROM an der Adresse des Word Registers in das Byte Register e _Carry Flag wird gesetzt wenn die Adresse au erhalb des RAMs liegt English Readsthe valuein ROM atthe address of the word register into the byte register e Carry Flag is setif the address is outside the bounds of the RAM Anzahl der Unit T ests Number of Unit T ests 1 Codezeilen Lines Of Code LOC 2 Binary Code 00010000 011001RgRg RgRgeReRwRwRwRwRw RL Byte Register Deutsch Shiftet das register um ein Bit nach links in das Carry Flag Wenn das Carry Flag gesetzt ist wird das rechteste Bit gesetzt z B 00100000 gt 01000000 e Carry Flag wird gesetzt wenn das h chstwertigste Bit des Wertes 1 war English Shifts the register by one bit to the leftinto the carry bit If the carry flag is set the rightest bit will beset Example 00100000 gt 01000000 e Carry Flag is set if the most significant bit of the value was 1 Anzahl der Unit T ests Number of Unit T ests 3 Codezeilen Lines Of Code LOC 5 Binary Code 01000000 101 ReReRsReRs Deutsch Liest den Wert im RAM an der Adresse des Word Registers in d
156. s editor Code Editor ee oe Der Code Editor besteht aus einem simplen TAE US AA Textfeld ohne Formatierungshilfen oder ISS FERN Syntaxhighlighting Das User Interface besteht im Wesentlichen aus zwei Buttons gt Run Assembliert den Sourcecode und f hrt ihn normal auf dem USB Master aus gt Analyze Assembliert den Sourcecode ffnet den Debugger curent comert and history of registers PIN states change byte and word regsiers mas editor Debugger Der Debugger zeigt zus tzlich zum Code welcher momentan auf dem USB Master l uft aktuelle und vergangene Register werte und den Stack an Der Step Button f hrt den n chsten Befehlaus und halt den USB Master anschlie end wieder an Der Run Button startet eine normale Ausf hrung welche mit dem Step Button wieder gestoppt werden kann Oe events user code stack Das Problem an diesen Softwarepaket ist dass die Hardware auf denen sie basieren der USB Master Fehleranfallig und m hsam aufzubauensind Zus tzlich ist es den Sch lerinnen und Sch lern nicht m glich von zuhause aus die Assemblerprogrammierung zu erlernen weil es nicht gestattet ist die Hardware mit nach Hause zu nehmen Seite 12 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft i Abteilung Informatik bildung mit zukunft AUsbildungsschwerpunkt Intelligente Systeme Tools und Methodik SOLL Zustand DasZiel von yasp ist den USB Master samt Entwicklung in den Browser zu ve
157. s und f hrt diese dann im Browser aus Dadurch bleibt alles plattformunabh ngig und die Sch ler und Sch lerinnen k nnen komfortabel den Umgang mit Assembler erlernen Der leistungsf hige Debugger vom USB Master wird nat rlich auch Einzug in yasp finden Die F higkeit das aktuell laufende Programm zu stoppen und jeden Winkel desSpeicherszu begutachten hilft den Sch lerinnen und Sch lern die Materie besser zu verstehen und dabei Spa zu haben Projektablauf und e Assembler und Emulator fertig Meilensteine e Editor und Debugger Fertig e Benutzer Dokumentation Ressourcen Vom Projektteam bereit gestellt e GitHub Education Private Repository e OnTime Vom Projektpartner bereit gestellt e USB Master Dokumentation Lastenheft USB Master Hardware Software Testprogramme WebStorm Subdomain Server Risiken JavaScript Engines zu langsam Ausfall eines Teammitglieds Unv ollst ndige USB Master Dokumentation Neue Browserv ersionen werden inkompatibel aufgrund ver nderter Standards Seite 17 von 197 HTBLUVA Wien V SPENGERGASSE Sch f ausbildung mit zukunft ee Abteilung Informatik bildung mit zukunft Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Vorstudie Lastenheft Das Projekt wurde von Dipl Ing Robert Jelinek mit seinem Lastenheft initiiert Seine W nsche wurden entsprechend besprochen und die tats chlich zu implementierenden Punkte finden sich im Pflichtenheft wieder JS Master
158. s und Methodik Menu Sim Im Men punkt Menu lassen sich alle anderen Aktionen Flew E Menu durchf hren e Run F hrtdas aktuelle Programmausund ffnet Run den Debugger Debug e Debug F hrt dasaktuelle Programm aus stoppt aber an der ersten Instruktion im Debugger Undo e Undo R ckg ngig Funktion Die letzte Aktion wird gt Redo ungeschehen gemacht e Redo Wiederholen Funktion Die letzte Aktion wird wiederhergestellt Q Find e Find Findet einen Text im Quelltext Diesen muss man in das gegebene Textfeld eingeben und durch Eingabe best tigen Q Go to line e Replace Ersetzt einen Text im Quelltext durch einen anderen Hierbei wird im ersten Textfeld der Q Replace Suchstring und im zweiten Textfeld der Help Ersetzungsstring eingegeben Settings e Goto line Springtzurangegebenen Zeile im Texteditor Scrollt wenn notwendig zur gesuchten amp About Zeile e Help ffnetdie Dokumentation beralle Befehle in einem Dialogfenster In diesem Fenster kann Help zus tzlich nach einem bestimmten Befehl ber die Suchfunktion gesucht werden Siehe Bild e Settings ffnet das Einstellungsmen mit dem Search MOV das Verhalten der IDE modifiziert werden kann e About ffnetden Uber uns Dialog der MOV Informationen ber yasp und das Entwicklerteam Sica jie ek Wits is ace bereitstel l t Copies the value of the second register into the first one 4 Schnellhilfe Die Schnellh
159. samtzahl von ber 40 000 Besuchern im Fr hjahr 2014 auf der Website http yasp me gef hrt hat Pr fer in Abteilungsvorstand Approbation Datum Unterschrift Seite 6 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft hti emm Abteilung Informatik bildung mit zukunft AUsbildungsschwerpunkt Intelligente Systeme Tools und Methodik DIPLOMA THESIS Documentation Michael Lutonsky 5EHIF Author s Robert Fischer 5AHIF Form SAHIF 2013 14 Academic Year SEHIF 2013 14 Reimplement the USB Master in the Web with debugger Topic assembler editor and emulator H here Technische Bundes Lehr und Versuchsanstalt Co operation partners Spengergasse 20 A 1050 The main goal of yasp is to make learning assembler for students as easy as possible The HTBLUVA Spengergasse in Vienna is using a piece of custom made hardware which was also developed there to accomplish the same goal Y asp seeks to replace this hardware by a simulation inside a web browser Assignment of tasks This means thatstudents do not need to set up the hardware at the beginning of every lesson They can use a reliable platform and therefore have more fun learning Assembler Furthermore it is possible for students to learn the usage of software and ER at home without the need to take the hardware ome Realization HTMLS5 JavaScript HTML CSS PHP yaspis available at http demo yasp me Results Seite 7 von 197
160. se Autoren Robert Fischer kurz fish Michael Lutonsky kurz luto Seite 24 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft SS bildung mit zukunft Inhaltsverzeichnis Anderungsverzelc hnis sucas oasen idar a Aaa iaa aaa Aaaa aa TEA Ea Ea ANSE 26 Projektbeschreib ng ra ar a eaa rE aa rarr Ora eae EA E Sea SAS A AEE A r a Era iai 28 PATA E un TT 29 eil 29 IRIN EE 29 rel ETC 29 Prod kteinsatz A A E A A E A A A E E E 30 Anwendungs bereit EE 30 Zielgruppe Manen A a EA IE A EA A EAA N E EEN EAEN AEAEE EEs 30 Betriebsbeding ungen eg deser gegen SECE Eed eege ere rennen Onana A AnS EEEE EEEE Egide 30 AAE A TAANA DUNG E AAEE E A A A AEE A A 31 Produktfunktionen und Produktumsetzung s ssesesssssesssessssesossesnsnseensusesneseusussenceescusseneeesoseseseeeeneeenseessnesenseresneseneersssee Komponentenkommunikations bersichts dia gramm et e EE Pro duktleist ngen EE SET 41 Anhang 1 Glossar siscsevsassesssssscdscsdsnse cies sassesos shbsnscus esase davebuaducsessasodssckesa estes va sbeedeacbedsuta Suausaduovesebsneseds cuosduenosatsoibsasshoseesoecesouss 42 Anhang 2 Befehlsdokumentation IST UE BGR MUS ele EE E TT e EE Em lator en TT IEN gd Ae E EE Direktiv n sinnn kein in ova ans REESEN EES dE here Anhang 3 Abnahmeprotokoll Anhang 4 Protokolle und Datenstrukturen sscsssssscsssscsscssssssssscssessescssesasscssessesesaesessesaesesaesensesaesessesecsecacees
161. sesscseaes 63 Communicator nissen ahni hinaukibeinbiunseisiiniainshunsinte 63 EE ee eer Eegen ERSTER 65 STEE 66 SENVEM scsiatsnaieiecdtccineuscsedacacutedecceetatanesded dedscossedaactcsnerscavedcdscnudanedevchedudeedaendedentedacebe dbase dated see suacdbechscasabecdccueceadavatsdediocedessuadende 74 Anhang 5 El HIE 75 Beschreibung Methode a aa a e E E AE a E N EA dds eats ee EE HardW retvpen EEN 75 APA HE 76 Anhang 5 Emulatoraktivit tsdiagramme sssssscsssscssssssscsssscsasacsscsssscsscacescsesacsscseeseacacsscsceacsacaceecsaeacsacsensesatsesaesaesees 77 Generelle Funktionsweise Aetton Behanglung eege erc cxsdececs vas see en nenn anna Seite 25 von 197 SPENGERGASSE ausbildung mit zukunft e oos Draft 2 11 August 2013 nderungen in Anhang 4 e von Workerprotokoll in Protokolle und Datenstrukturen umbenannt Div erse Layout Fixes Aufteilung in Datenstrukturen und Protokoll Map in ASSEMBLE Action des Assemblers hinzu Draft 3 12 August 2013 i Anderungen in Anhang 4 Ausbesserung vonRechtsschreib und Inhaltsfehlern Datenstruktur Breakpoint beschrieben Datenstruktur State beschrieben Broadcasts IO_Changed Started Stopped Neuer Befehl SET_IO Draft4 13 August 2013 i Anderungen in Anhang 4 e Datenstruktur Condition beschrieben e BREAK SET BREAKPOINTS beschrieben e Rechtsschreibfehler ausgebessert Draft5 14 August 2013 i Anderungen im Pf
162. sserungen zu organisieren Die Protokolle jedes Meetings wurden an beide Betreuer ausgeschickt und sind im Anhang Automatische Tests Als Unit Test Framework wurde JUnit verwendet auf welches wir allerdings viele Erweiterungen aufsetzten um das Testen der Instruktionen oder Breakpoints zu vereinfachen Mehr Informationen hierzu finden sich im Anhang Technische Dokumentation welche auch im Internet auf GitHub verf gbar ist Wie auch im Abschlussbericht erw hnt haben wir keinen Continuous Integration Server eingesetzt was im Nachhinein gesehen ein Nachteil war damanchmal Fehler nicht sofort aufgefallen sind JSDoc Zur Dokumentation der einzelnenJavaScript Funktionen und Felder in yasp haben wir JSDoc eingesetzt Da JavaScript die Angabe von Typen im Sourcecode nicht vorsieht wurden die erwarteten Parametertypen jeder Funktion ebenfalls in JSDoc notiert Das Tool erm glicht es einen HTML Export der Dokumentation zu erstellen welcher im GitHub Repository zu finden ist Seite 22 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft i Abteilung Informatik bildung mit zukunft AUsbildungsschwerpunkt Intelligente Systeme Tools und Methodik Ergebnisse Seite 23 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft d i Abteilung Informatik bildung mit zukunft A Usbildungsschwerpunkt Intelligente Systeme Tools und Methodik Pflichtenheft des Diplomprojektes an der HTLBV A Spengergas
163. st_change_of_file content content_of_file Files have to beserializable by JSON stringify otherwise the backend drivers do not work properly Seite 149 von 197 ETS SPENGERGASSE htl ausbildung mit zukunft I gt Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Communicator Operations that takelongsuch asassembling or do noteven havean end like emulating are executed inside webworkers On the browser level webworkers havea simple string messaging api whichis extended by yasp s Communicator class Specific communicator imple mentations e Assembler see assembler md e Emulator see emulator md Messages Internal format of communicator messages The only values exposed via the API are error payload and action id is used only internally to coordinate the callbacks Normal messages action id error payload Broadcasts Broadcastsarethesame as the normal messages but their id will always be null API Workers POV if typeof yasp undefined yasp importScripts relative urls to scripts var communicator new yasp CommunicatorBackend self function data ready callback is called if a message is received switch data action case NAME reply to the message will cause the callback on the main thread to be called ready payload error null break default compLain if
164. structions to the assembler which are not directly converted into bitcode Following directives currently exist DW write a literal word into the bitcode length 2 bytes DB write a literal byte into the bitcode length 1 byte DA write a literal label adress into the bitcode length 2 bytes ORG set the current position in the bitcode see Interrupts STRING write a zero terminated string into the bitcode see Debugging DEFINE definesa assemble time constant which will be replaced before the actual assembling process e END quits currentassembling at the current position any further code will beignored Note The data directives DW DB DA STRING are capable of writing multiple values to the bitcode simply by separation bya comma The directives are parsed in the function yasp Parser prototype parseDirective in assembler parser js Commandsare defined in the instructions js Fileand are dynamically loaded The commands are parsed in the function yasp Parser prototype parseCommand in assembler parser js For moreinformation see Instructions Example MOV b b1 Label A label isa string Followed by indicating thatitis a label Labels are parsed in the Function yasp Parser prototype parseLabel in assembler parser js Important note aboutlabelnames e Cannothavethesamenameasa register or similar names b1 or b1000 e Cannotonly contain alphanumeric characters _ and e Cannothavethesame nameasan instruction or directive
165. sts IO ver ndert IO_CHANGED Broadcast Payload ion rf 3 e iobeinhaltet daslO Objekt welchessich verdndert hat Ausf hrung angehalten BREAK Broadcast Payload reason breakpoint break divide_by_zero Ausf hrung fortgefahren CONTINUED Broadcast Payload Code geladen LOADED Broadcast Payload start length Debug Nachricht DEBUG Broadcast Payload message breakpoint register type b number Ges Seite 70 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft Zr S Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik value e Entwedermessage oder registerkannnullsein Datenstrukturen State Ein State beschreibt den aktuellen Status des Emulators Dabei enth lt dies den aktuellen PC RAM ROM Register und weitere Informationen Der State wird dazu verwendet um im Debugger die entsprechenden Informationen wie z B Registerinhalte anzuzeigen rom new Uint8Array ram new Uint8Array registers general b w special pc sp flags c true false Z true false io A e xombeinhaltet den ROM des Emulators als Byte Array ram beinhaltet den RAM des Emulators als Byte Array registers beinhaltet die diversen Registers des Emulators o general sind
166. t Intelligente Systeme Tools und Methodik Robert Fischer Aus der technischen Sicht war f r mich yasp nichts Neues Ich habe bereits zuvor ein Projekt entwickelt das hnlich wie unser aktuelles Projekt im Browser lief mit Entwicklungsumgebung und Compiler darum habe ich bereits Erfahrungen aus diesem Projekt von Anfang an in die Entwicklung einbringen k nnen Beispielsweise habe ich von Anfang an darauf bestanden dass sowohl der Assembler alsauch der Emulator in einem WebWorker l uft was sich als sehr wichtig herausgestellt hat In Zusammenspiel mit den Erfahrungen von Michael Lutonsky im Bereich der Webentwicklung und Emulation des USB Masters war die Umsetzung des Projektes sehr straightforward Bis auf kleinere Probleme mit bestimmten Browsern und Herausforderungen mit der Performance von JavaScript w rde ich sagen lief alles weitgehend nach Plan Aus der Sicht des Projektmanagement war unser Diplomprojekt f r mich weitgehend Neuland Ich habe zuvor noch nie SCRUM angewandt geschweige denn von A bis Z umgesetzt Es hat sich als schwieriger alsgedacht herausgestellt da die Sprints wahrend der Schulzeit eben nicht immer die oberste Priorit t hatten Dennoch finde ich eignet sich von den agilen Methoden SCRUM am besten weil es sehr stark auf Kommunikation setzt Unser Team war mit zwei Personen sehr klein was dazu f hrte das Kommunikation meiner Meinung nach kein Problem war Fallsjemand ein Problem hatte oder es
167. t wird durch einen Pfeil markiert 3 Format Mit dem Format Switch l sst sich das Ausgabeformat der Registerwerte und des Stacks anpassen so dass beispielsweise Bitshift Operationen leichter nachvollziehbar sind Seite 92 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft Fr Abteilung Informatik E acai Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Breakpoints Debug RAM ROM Registers Breakpoints Line Condition Active 12 None 19 None Y 22 None v Eine Liste aller eingetragenen Breakpoints Ein Breakpoint kann tempor r deaktiviert werden indem man seine Checkboxbet tigt er wird dann in grau dargestellt Falls das Programm gerade durch einen Breakpoint angehalten wurde wird dieser rot hinterlegt Ein Klick auf die Zeilennummer zeigt die Zeile im Editor an Seite 93 von 197 HTBLUVA Wien V SPENGERGASSE hkl ausbildung mit zukunft A Abteilung bildung mit zukunft In Formatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Abnahme Emulator Testprogramm 01 Ja Assembler Emulator Testprogramm 02 Ja Assembler Emulator Testprogramm 03 Ja Assembler Emulator Testprogramm 04 Ja Assembler Emulator Testprogramm 05 Ja Assembler Emulator Testprogramm 06 Ja Assembler Emulator Testprogramm 07 Ja Assembler Emulator Testprogramm 08 Ja Assembler Emulator Testprogramm 09 Ja Assembler Emulator Testprogramm 10 Ja
168. t In Formatik s Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik FileManager Der FileManager stellt alle g ngigen Dateioperationen zur Verf gung und dient zur einfachen Verwaltung der Daten Die Daten werden im localStorage des Browsers gespeichert sofern man sich im Local Tab befindet und auf einem Server Falls die Selektion am Serv ertab ist Speichern Unter Der Speichern Unter Dialog wird in jedem Fall ge ffnet auch wenn die Datei bereits einen Namenhat Save As File BlinkenDatei File Quick Share File 1 Name Eingabefeld In diesem Textfeld ist der Dateiname einzugeben der dann bernommen wird 2 Dateiliste In dieser Liste sind alle gespeicherten Dateien sichtbar Zus tzlich l sstsich durch dasL schen Symbol eine Dateiaus der Liste entfernen Das ffnen Symbol kopiert den Namen der Dateiin das Eingabefeld 3 Button Der Close Button bricht die aktuelle Aktion ab Der Save As Button speichert die Datei unter dem angegebenen Namen Danach wird sie ge ffnet Seite 84 von 197 HTBLUVA Wien V SPENGERGASSE hE ausbildung mit zukunft Abteilung i bildung mit zukunft d In Formatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Speichern Der Speichern Dialog wird nur dann ge ffnet Falls die Datei gespeichert wird jedoch keinen Namenhat Save File BlinkenDatei2 Quick Share File 1 Name Eingabefeld In diesem Text
169. t die Ausf hrung desProgrammsam momentanenPC Die Daten k nnen im Debugger begutachtet werden Seite 59 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ gt Abteilung bildung mit zukunft S Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Step Testdaten Testfall01in die IDE laden Ausf hrung starten Ausf hrung pausieren mit Break Funktion Step Funktion ausf hren Testresultat Der Programcounter wird inkrementiert der n chste Befehl wird ausgef hrt der Emulator pausiert und man kanndie Daten im Debugger begutachten Step Back Testdaten Testfall01in die IDE laden Ausf hrung starten Ausf hrung pausieren mit Break Funktion Step Funktion ausf hren Step Back Funktion ausf hren Testresultat Der Zustand des Emulatorsist der selbe wie vor dem Ausf hren von Step Die Daten k nnen im Debugger begutachtet werden Continue Testdaten Testfall01in die IDE laden Ausf hrung starten Ausf hrung pausieren Break Ausf hrung fortfahren Continue Testresultat DasProgramm l uft normal weiter Seite 60 von 197 HTBLuVA Wien V Abteilung Ausbildungsschwerpunkt bildung mit zukunft PC setzen Testdaten Testresultat Execute Testdaten Testresultat Breakpoint setzen Testdaten Testresultat Breakpoint entfernen Testdaten SPENGERGASSE ausbildung mit zukunft Informa
170. t werden kann e Status Zeigt den aktuellen Status des Emulators an Folgende M glichkeiten gibt es o Running Der Emulator l uftin Echtzeit Seite 89 von 197 HTBLUVA Wien V SPENGERGASSE hti Abteilung Informatik bildung mit zukunft ausbildung mit zukunft Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik 2 Hardware Stepping Der Emulator f hrt eine Instruktion nach der anderenaus siehe Step BREAK Instruction Der Emulator wurde durch eine BREAK Instruktionangehalten Divided by zero Es wurde v ersucht mit dem DIV Befehl durch Null zu teilen Debugger Der Emulator wurde durch das Break Kommando angehalten Invalid instruction Es wurde versucht eine ung ltige Instruktion auszuf hren Dies kann entweder auf einen Fehler in yasp selbst hinweisen oder es wurden mit der WRROM Instruktion ung ltige Daten in den ROM geschrieben Breakpoint Ein Breakpointwurde erreicht Die Ausf hrung kann mit Step oder Continue fortgef hrt werden Bei 2 wird der aktuelle Status der Hardware angezeigt In der Standardkonfiguration stehen folgende Elemente zur Verf gung 3 Sourcecode Potentiometer Ein Drehregler welcher im Emulator mit den ADc Instruktionen ausgelesen werden kann Er meldet einen analogen Wert vonObis 255 an den Emulatorzur ck Standardm ig ist dieser an Pin 11 angeschlossen LEDs Leuchtdiodenin 3 Farben welche im Emulator mit den HIGH LOW und TOGGLE Instrukt
171. te 73 von 197 ETS SPENGERGASSE htl ausbildung mit zukunft DZ gt Abteilung Informatik BLAUE ai akin Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Server Der Server welcher den Sourcecode der Nutzer speichert verf gt ber eine simple REST API Ein Sch ler oder eine Sch lerin darf nur seine eigenen Dateien abrufen Ein Lehrer oder eine Lehrerin darf alle Dateien abfragen Die Authentifizierungwird ber den Activ eDirectory Serv er der Schule gel st Die bergabe des Usernames und des Passwords erfolgt ber basic authentication GET file php Gibt eine Liste aller Dateien zur ck Format filename username createdate group changedate GET file php username USER Gibt eine Liste aller Dateien desangegebenenUserszur ck Format Siehe GET file GET file php username USER amp filename FILE Gibt den Inhalt einer Dateizur ck Format filename username createdate changedate group T content POST file php username USER amp filename FILE Speichert oder aktualisiert die Datei des Users mit dem angegebenen Namen Im Requestbody befindet sich der Inhalt der Datei DELETE file username USER amp filename FILE L scht die angegebene Datei Seite 74 von 197 HTBLUVA Wien V SPENGERGASSE hkl ausbildung mit zukunft z Abteilung Informatik E ai Ausbildun
172. te Systeme Tools und Methodik Debug Data structure used by the DEBUG Broadcast type subtype addr val number or string subtype reaister number 010 31 offsetin ROM A Seite 167 von 197 HTBLUVA Wien Y SPENGERGASSE ausbildung mit zukunft Fr Abteilung Informatik E ai Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Emulator Messages Broadcasts Some broadcasts DEBUG and IO_CHANGED arerate limited due to the poor webworker implementation of Firefox Broadcast BREAK The emulator has been stopped by a BREAK Message breakpoint etc Payload state see State in doc emulator data md reason Reasons e count the number of instructions to be executed has been reached see CONTINUE Message e break_instr the BREAK Instruction was executed e divide by zero thevalueofthesecond register of a DIV Instruction was zero e break_msg aBREAK Messagehas been issued e invalid_instr a invalidinstruction hasbeen found e breakpoint a breakpoint hasbeen hit Broadcast CONTINUE The emulator has continued this is caused bya CONTINUE Message Payload empty object Broadcast LOADED A program has been loaded into the emulator using the LOAD Message Payload start length o Broadcast DEBUG A DEBUG or ECHO Instruction was executed These instructionscan send thevalueofan register ora string stored in the ROM to the d
173. tik Intelligente Systeme Tools und Methodik Testfall01 in die IDE laden Ausf hrung starten Auf Jump to clicken auf eine beliebige Zeile klicken Der PC wird gesetzt und der Emulator gestoppt Die Ausf hrung kann mit Continue gestartet werden Testfall01 in die IDE laden Ausf hrung starten Assembler Befehl e in die Execute Konsole eingeben Dereingegebene Quellcode wird ausgef hrt und danach wirdvomalten PC ausweiter ausgef hrt 1 Testfall01in die IDE laden 2 Klickin der Breakpoint Leiste in der entsprechenden Zeile Ein Punkterscheint und es wird pausiert sobald die Ausf hrung zur entsprechenden Position gelangt TestfallO1in die IDE laden Nachdem man einen Breakpoint erstellt hat nochmal an dieselbe Stelle klicken Der Breakpointist entfernt und eswird nicht mehr an der entsprechenden Position pausiert Testresultat Seite 61 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ gt Abteilung bildung mit zukunft S Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Breakpoint temporar deaktivieren Testdaten Testfall01in die IDE laden Breakpointerstellen Breakpointin der Breakpoint Liste deaktivieren Testresultat Die Ausf hrungsollte nicht mehr angehalten werden es bleibt aber weiterhin in der IDE ersichtlich dass dort ein Breakpointist der leicht wieder aktiviert werden kann Bedingte Breakpoin
174. ts setzen Testdaten 1 Testfall01in die IDE Laden 2 Den Men punkt Globale Breakpoints ausw hlen Testresultat Ein Dialog ffnet und man kann die entsprechende Bedingungeingeben Die Ausf hrung pausiert sobald dieBedingung erf lltist Zeilenbezogene bedingte Breakpoints setzen Testdaten 1 Testfall01in die IDE laden 2 Breakpointerstellen 3 Rechtsklick aufden Breakpoint und Bedingter Breakpoint ausw hlen Testresultat Ein Dialog ffnet und man kann die entsprechende Bedingungfestlegen Wenn der Quellcode dieseZeileerreicht und die Bedingung erf llt ist wird pausiert Seite 62 von 197 HTBLUVA Wien V SPENGERGASSE hkl ausbildung mit zukunft EH gt Abteilung bildung mit zukunft Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Anhang 4 Protokolle und Datenstrukturen In diesem Dokument werden die von yasp verwendeten Protokolle und Datenstrukturen n her beschrieben Communicator Die Kommunikation mit den Workern findet ber die Communicator Klasse statt Diese kapselt den Webworker so weit wie m glich ab so dass es einfacher ist Browserunabh ngig zu bleiben und eine einheitliche Schnittstelle f r andere Programmteile zu bieten Alle cb Parameter haben folgende Signatur function error payload und den R ckgabewert void sendMessage action payload cb Dabei kann mit der Methode sendMessage eine Nachricht an den jeweiligen Worker gesendet w
175. usforderung Auf Grund des Sprach Designs von JavaScript zum Beispiel dynamic Typing istes keine besonders schnelle Programmiersprache Einzig der Wettbewerb zwischen den Browsern hat sehr viele Optimierungen an den Implementierungen von JavaScript selbst hervorgebracht welche ein rechenintensives Programm wie einen Emulator berhaupteerst m glich machen Dennoch gibt es eine Reihe von Tipps und Tricks die man beachten sollte if variable Ein if Statement kann in JavaScriptleicht verwendet werden um zu berpr fen ob eine Variable einen Wert enth lt Dieser Code ist sehr schnell zu schreiben und findet sich zu Hauf in normalem JavaScript Programmen DasProblem hierbei ist dass in JavaScript viele Werte gibt welche false entsprechen wiezum Beispiel die Zahl 0 ein leerer String ein leeresArray oder sogar die Zahl O als String 0 Die Engine muss nun jeden dieser Werte mit der gegeben Variable vergleichen was zu Performanceproblemen f hren kann wenn dieser Code oft ausgef hrt wird wie in einem Emulator Wenn man wei welcher Wert genau gesucht wird zum Beispiel null oder undefined sollte immer der Identity Operator und der gesuchte Wert verwendet werden siehe auch Identity vs Equality Operator call und apply Um in JavaScript den Wert von this f r einen Funktionsaufruf zu setzen stehen zwei M glichkeiten zur Auswahl call und apply Aus Programmierersicht ist der einzige Untersch
176. ut PRINT str2 JMP main subRout PRINT str3 RETURN str1 STRING main1 str2 STRING main2 str3 STRING sub PWM yasp supports the emulation of PWM Outputs This can be archived by switching an output pin on and off rapidly More information about the internal process can be found in the Emulator Documentation This code causes the LED to be dimmed pwm HIGH 3 PAUSE 3000 LOW 3 PAUSE 2000 JMP pwm Interrupts The emulator supports hardware interrupts To make them work you need two things e ENABLE enablesinterrupts based on the given bitmask e BRETT jumpsoutof aninterrupt e Interrupt table o startsat 0x100 8x188 gt jump adressfor pin O o 8x182 gt jump adressfor pin 1 o x104 gt jump adressfor pin 2 OU aes Seite 140 von 197 HTBLUVA Wien V SPENGERGASSE ausbildung mit zukunft ZZ S Abteilung Informatik EE Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Inter 765 Oo ve we ve ENABLE 3 main TOGGLE 5 JMP main isri TOGGLE 3 RETI isr2 TOGGLE 4 RETI ORG 0x100 set the current position in the bitcode to 0x100 DW 3 skip pin DA isri interrupt service routine for pin 1 DA isr2 interrupt service routine for pin 2 Assembler Directives DW write a literal word into the bitcode length 2 bytes DB write a literal byte into the bitcode length 1 byte DA write a literal label adress into the bitcode length 2 bytes ORG set the
177. wendet Testresultat Erfolgreiche Ausf hrung Unit Tests Emulator Testdaten Allew hrend der Entwicklung geschriebenen Unit Testswerden verwendet Testresultat Erfolgreiche Ausf hrung Seite 55 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ gt Abteilung bildung mit zukunft S Informatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik IDE Offnen Testdaten Die IDE wird ge ffnet indem man die entsprechende URL eingibt Testresultat Die IDE ist offen allerelevanten Komponentensind einsatzbereit und esist zu keinem Absturzgekommen Schlie en Testdaten Die IDE wird geschlossen indem man das entsprechende Browser Fenster bzw Tab schlie t Testresultat Die IDE ist nichtmehr aktiv undalle relevanten Daten sindim localStorage gespeichert e Einstellungen e Quelltext falls gespeichert Einstellungen ver ndern Testdaten Einstellungen Dialog ffnen und folgende Einstellungenver ndern SyntaxHighlighting Theme ndern Leerzeichen eines Tabs auf 4 andern Automatischen Speichern abschalten Autovervollst ndigung deaktivieren Fallsimplementiert Sprache auf Englisch stellen Die Label Liste immer anzeigen Die Quickhelp immer anzeigen Testresultat Die Einstellungenwurden ge ndert und sind nunaktiv Seite 56 von 197 HTBLUVA Wien V SPENGERGASSE htl ausbildung mit zukunft ZZ gt Abteilung bildung mit zukunft S
178. werden sobald es ein Key V alue Paar ist Beispiel key subkey1 42 43 Te 42 L subkey2 Iuto 42 fisch foo asdf lol Seite 115 von 197 SPENGERGASSE ausbildung mit zukunft Intelligente Systeme Tools und Methodik HTBLUVA Wien V Informatik hti gt Abteilung Ausbildungsschwerpunkt bildung mit zukunft Projektdokumentation Seite 116 von 197 HTBLUVA Wien V SPENGERGASSE ht ausbildung mit zukunft Abteilung i bildung mit zukunft In Formatik Ausbildungsschwerpunkt Intelligente Systeme Tools und Methodik Zeitaufwandsauswertung Teammitglied m Michael Lutonsky E Robert Fischer Wie in der Abbildung zu sehen ist betrug der Gesamtaufwand 430 Stunden Michael Lutonsky investierte 30 Stunden mehr was mit einem geringeren schulischen Aufwand begr ndet wird Ingesamt haben wir rund 30 Stunden mehr investiert als gedacht was vor allem auf die Probleme mit PWM und dem Firefox Browser zur ckzuf hren ist Dies hatte allerdings keine Auswirkungen auf die Projektdauer Die Arbeit wurde dennoch rechtzeitig fertiggestellt Zeitabschnitt E Robert Fischer m Michael Lutonsky 2013 18 Woche 9 2013 bis 31 2013 bestand aus der Vorprojektphase Hier wurden erste Meetings get tigt und das Pflichtenheft verfasst Direkt danach wurde mit der eigentlichen Implementierung begonnen welche in Woche 43 auf Grund des
179. werpunkt Intelligente Systeme Tools und Methodik be Sdec 88888101b 3 b3 1dec 00000001b result Idec 00000001b Sleep DELAY can be used to wait for a certain time Both literal and word registerscan be used as the parameter A value of 68888 roughly equals 909 milliseconds Debugging There area few commandswhich can help you on debugging e DEBUG sends thevalue of aregister to the debugger e PRINT sends a string to the debugger MOV b 42 DEBUG b send the value of b 42 to the debugger PRINT str print a string on the debugger str STRING hello tutorial Jumping There instructions are used to controlthe program flow e JMP label e JC label INC label jump if the carry flag is not set e JZ label JNZ label jump if the zero flag is not set main INC b 3 increment be DEBUG b JMP main Comparisons Y ou can use the CMP Command to compare two values If the values equal the zero flag will beset if the 2nd valueis bigger than the Firstv alue the carry Flag will beset Using CMP and JC onecan build simple loops MOV be 5 max loop count MOV b1 counter loop PRINT stri INC b1 increment the couter CMP b b1 compare couter and max JZ endLoop jump if they equal JMP loop 3 otherwise continue looping endLoop PRINT str2 trap JMP trap loop infinitly Seite 138 von 197 SPENGERGASSE ausbildung mit zukunft Informatik Intelligente Systeme Tools und Methodik
Download Pdf Manuals
Related Search
Related Contents
Electro-Voice HM1x User's Manual Diesel Engine Rotation Sensor CP-044 取扱説明書 - iiyama (EPM-MJ10)取扱説明書PDFダウンロード User's guide to javaSimulation INSTALLATION MANUAL 5.5 Amp VS Reciprocating Saw Operator`s Manual VHS Dreiländereck - Deutsches Institut für Erwachsenenbildung Copyright © All rights reserved.
Failed to retrieve file