yasp - Webbasierte Assembler Entwicklungsumgebung
Übersicht

![]() |
cooloBetreff: yasp - Webbasierte Assembler Entwicklungsumgebung |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hello Leute!
Ich würde euch gerne unser (ich + ein Schulkollege) web-basierten Assembler/Emulator/Debugger-Projekt yasp vorstellen! Angefangen hat das ganze als Diplomprojekt (=> letztes großes Schulprojekt vor der Matura an einer HTL) in unserer Schule. Jetzt haben wir das gesamte Projekt als GPLv3 veröffentlicht. Das Hauptziel von yasp, ist es Schülerinnen und Schülern eine Web-Plattform zum lernen von Assembler zur Verfügung zu stellen. Darum haben wir uns für einen eigenen Assembler Dialekt entschieden, damit alles einfach bleibt. Dies erlaubt uns die Lernkurve so flach wie möglich zu halten. Zusätzlich gibt es mehrere Hardware-Elemente (LED, Potentiometer und Button). Für weitere Informationen, könnt ihr euch im Editor die About-Seite ansehen oder unsere Webseite besuchen. Website: http://yasp.me/ Gleich zur Demo: http://demo.yasp.me/ Tutorial: https://github.com/yasp/yasp/b...utorial.md FB Seite: https://www.facebook.com/pages...2106285016 Wenn du irgendwelche Verbesserungsvorschläge hast, kannst du gerne eine Issue bei GitHub erstellen oder einfach auf diesen Post antworten. Danke! Screenshots: ![]() ![]() |
||
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project! "Eigenzitate sind nur was für Deppen" -Eigenzitat |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Ganze ist wirklich schön gemacht. Hab für die Uni auch mal sowas Ähnliches gemacht (wenn du an der TU Informatik studierst, dann wirst du mein Assembler SDK/Emulator auch noch verwenden dürfen).
Ist ziemlich schön. Es gibt aber ein paar Kleinigkeiten, die mich stören: 1) Die Autoformatierung des Editors ist zwar gut, da sie wirklich schön formatiert, aber ein wenig bevormundend und damit unangenehm. Besser würde ich es finden, wenn es mich die Zeile schreiben ließe wie ich will und erst danach formatieren, eventuell auch erst auf Knopfdruck (also irgendwo einen Knopf mit "Autoformatieren" hin machen). 2) Der Emulator lässt sich nicht pausiert starten. Drücke ich auf "Run" beginnt das Programm direkt laufend und dadurch verpasse ich garantiert den Anfang des Programms wenn ich es schrittweise durchgehen will. Was ich da gemacht habe war eine Trennung in "Flash ROM", was die VM startet und den ROM befüllt, und dann erst Knöpfe mit "Step" und "Run". 3) Die Grafik des Emulators ist nicht wirklich einheitlich. Das Board ist ein Foto, die IO-Elemente sind aber nur Paint. Mach am Besten entweder alles mit Paint-Grafik oder alles Fotorealistisch. Dazu noch eines: Auf der Grafik des Boards sollten keine nicht verwendbaren Elemente sein. Der Chip ist ok, aber z.B. die Pinleiste rechts sollte nicht drauf sein, da sie ablenkt, bzw. falsche Hoffnungen weckt ![]() Oder mach sie irgendwie verwendbar, das wäre echt cool. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
coolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo DAK!
Danke für das Feedback. DAK hat Folgendes geschrieben: 1) Die Autoformatierung des Editors ist zwar gut, da sie wirklich schön formatiert, aber ein wenig bevormundend und damit unangenehm. Besser würde ich es finden, wenn es mich die Zeile schreiben ließe wie ich will und erst danach formatieren, eventuell auch erst auf Knopfdruck (also irgendwo einen Knopf mit "Autoformatieren" hin machen). Darüber sind wir auch gerade am überlegen. Es wäre zum Beispiel praktisch, wenn ein zusätzlicher Tab nach einem Befehl kommt und die Kommentare ebenfalls einheitlich eingerückt werden. DAK hat Folgendes geschrieben: 2) Der Emulator lässt sich nicht pausiert starten. Drücke ich auf "Run" beginnt das Programm direkt laufend und dadurch verpasse ich garantiert den Anfang des Programms wenn ich es schrittweise durchgehen will. Was ich da gemacht habe war eine Trennung in "Flash ROM", was die VM startet und den ROM befüllt, und dann erst Knöpfe mit "Step" und "Run". Neben dem Run Button gibt es einen Button mit so einem Käfer drauf (Debug Button), dieser startet den Debugger pausiert. Zusätzlich kann man einen Breakpoint setzen, indem man auf die entsprechende Zeilennummer klickt. DAK hat Folgendes geschrieben: 3) Die Grafik des Emulators ist nicht wirklich einheitlich. Das Board ist ein Foto, die IO-Elemente sind aber nur Paint. Mach am Besten entweder alles mit Paint-Grafik oder alles Fotorealistisch. Dazu noch eines: Auf der Grafik des Boards sollten keine nicht verwendbaren Elemente sein. Der Chip ist ok, aber z.B. die Pinleiste rechts sollte nicht drauf sein, da sie ablenkt, bzw. falsche Hoffnungen weckt ![]() Oder mach sie irgendwie verwendbar, das wäre echt cool. Die Grafik stammt vom USBMaster (wovon yasp auch den Assemblerdialekt bzw. Befehlssatz geerbt hat). Designtechnisch ist es bestimmt nicht die allerschönste Variante, da ja Skeumorphismus mit Flat-Design vermischt wurde, allerdings erfüllt es seinen Job. |
||
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project! "Eigenzitate sind nur was für Deppen" -Eigenzitat |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
@2) Ah, habe ich auch gerade selbst gesehen^^
Hast du eine Ahnung, warum bei folgendem Code der schwarze Knopf nicht geht: Code: [AUSKLAPPEN] ; Toggle the green LED and increment a byte-register by at a time.
; Additionally the yellow LED is switched once an overflow occurs. ; The red LED is toggled via an interrupt when the red button is pressed. ; ---- INIT MOV b0, 0x00 MOV b1, 0x20 ; Enable interrupts for the red button (= pin 2) ; Pin: 7 6 5 4 3 2 1 0 ; Mask: 0 0 0 0 0 1 0 0 = 4dec ENABLE 4 ; ---- Blink green and increment b0 by b1 main: ADD b0, b1 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 ; ---- Switch yellow carry: TOGGLE 4 ; toggle yellow LED JMP main ; ---- called via interrupt when the red button is pressed isr1: TOGGLE 3 ; toggle red LED ECHO helloWorld ; send string "hello world" to debugger RETI ; return to main program isr2: mov b0, 0x00 echo hitBlack reti helloWorld: STRING "hello world" hitBlack: String "Hit black" ; ---- interrupt table ORG 0x100 DW 0 ; pin 0 (not wired) DA isr1 ; black button DA isr2 ; red button END Vertauscht man die beiden DA-Zeilen, dann geht isr1, aber der schwarze Knopf geht immer noch nicht, es liegt also nicht an dem isr1 / isr2-Blöcken. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
coolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem liegt daran, dass du den Interrupt nicht aktiviert hast. Die Maske für ENABLE war auf 4 gesetzt, aber um beide zu aktivieren muss die Maske auf 6 sein (siehe Kommentar).
Folgender Code funktioniert bei mir: Code: [AUSKLAPPEN] ; Toggle the green LED and increment a byte-register by at a time.
; Additionally the yellow LED is switched once an overflow occurs. ; The red LED is toggled via an interrupt when the red button is pressed. ; ---- INIT MOV b0, 0x00 MOV b1, 0x20 ; Enable interrupts for the red and black button (= pin 1 and 2) ; Pin: 7 6 5 4 3 2 1 0 ; Mask: 0 0 0 0 0 1 1 0 = 6dec ENABLE 6 ; ---- Blink green and increment b0 by b1 main: ADD b0, b1 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 ; ---- Switch yellow carry: TOGGLE 4 ; toggle yellow LED JMP main ; ---- called via interrupt when the red button is pressed isr1: TOGGLE 3 ; toggle red LED ECHO helloWorld ; send string "hello world" to debugger RETI ; return to main program isr2: mov b0, 0x00 echo hitBlack reti helloWorld: STRING "hello world" hitBlack: String "Hit black" ; ---- interrupt table ORG 0x100 DW 0 ; pin 0 (not wired) DA isr1 ; black button DA isr2 ; red button END |
||
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project! "Eigenzitate sind nur was für Deppen" -Eigenzitat |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ah, verstehe, jetzt geht es^^
Gute Arbeit mit dem Ganzen! |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group