A-Side-Projekte menue history Letztmalig dran rumgefummelt: 23.05.24 02:57:42
A-Side und LC-80 sind unsere Leitmotive - Operationen im Zusammenhang mit der bestehenden Hardware ergeben sich somit fast zwangsläufig Kontakte mit der Interna der CPU, der gegebenen Peripherie sowie ihrer Speichervwerwaltung  - in sich getrennt nach ROM oder RAM tangierend die Problematik der Stapelverarbeitung sowie der Subroutinen.

Sorry an alle harten LINUX-Freaks - hier stehen nur aufgearbeitete Erfahrungen ;-)

die Elektronikseiten

Logo der A-Side Assembler-Programmierung

inhaltlich auf korrektem Stand - evtl. partiell unvollständig ;-)

Informatik-Profi-Wissen

  1. A-Side-Assembler und die Z80-CPU
  2. Laden von Registern sowie Arithmetische Operationen mit den Registern
  3. Auslagern der Ein- und Ausgabewerte auf den RAM
  4. Stack-Operationen
  5. Subroutines und RET
  6. Standard-Subroutines und Stack-Operationen
  7. Peripherie-I/O-Komponenten
  8. Interrupt-Programmierung
  9. Verwandte Themen

Z80-Innenleben

Z80-Innenleben im CorelDraw 11-Format zum Download

Programmzustandstabelle Z80 vollständig mit Register sowie Hauptspeicher

Programmzustandstabelle Z80 vollständig zum Download im CoreDraw 11.0-Format

Z80-ASide-Assembler

Der LC-80 Emulator zum direkten Starten


1. A-Side-Assembler und die Z80-CPU history menue scroll up

Geschrieben wird nunmehr Assembler-Quellcode - das ist streng genommen nichts weiter als ein Text-File - geht also auch im TXT-Editor. Variablen-Namen sowie Sprungmarken, jedoch auch BREAKPOINT's können definiert werden. Die aktuell mitlaufende Befehlsbeschreibung hilft, schnell Fehler zu korrigieren und Verwandtschaften der Befehle aufzuzeigen.

BREAKPOINTS sind bedeutsam für das spätere Arbeiten mit dem KC-EMU-Debugger von enormer Bedeutung (... aber vorerst viel später!!!)
SPRUNGMARKEN dagegen sind von Anfang an real und sofort da, weil prinzipiell auch verständlich
Laden        
         

2. Laden von Registern sowie Arithmetische Operationen mit den Registern history menue scroll up

Dies demonstrieren wir hier von ganz einfach - also direkt mit Befehlsliste bis hin zum kompletten A-Side-Assembler mit auch dann schon den Alternativ-Registern. Ziel ist natürlich, dies mit A-Side-Assembler-Code-nachzuvollziehen, wobei eben Assembler bereits eine erste "Hochsprache" darstellt - ich muss nicht mehr in der "Hexadzimalwelt" des Prozessors denken, sondern kann mich auf die konkreten Inhalte der Register stützen - leider sind diese logischerweise natürlich auch im "HEX-Format" - und zwar immer - auch, wenn ich aktuelle und aus meiner Warte nur einzelne Bits betrachte!!!
Am Anfang gibt's noch "HEX-Listings" - etwas später lediglich nur noch die Assembler-Programme.

... einfaches Register Laden mit Direktwerten - auch für Anfänger direkt auf dem LC-80 lösbar   ... einfaches Register Laden mit Direktwerten - auch für Anfänger mit A-Side lösbar ... einfaches Register Laden über Index-Register - für Anfänger alleine fast unlösbar

Einfaches Register Laden

Register Laden -Operationen - Beispiel 3
  Projekt als A-Side Assembler Datei
(das Projekt sollte per 22.4.2020 fehlerfrei sein!!!)

... als HEX-Datei

Register Laden -Operationen - Beispiel 4
  Projekt als A-Side Assembler Datei
(das Projekt sollte per 22.4.2020 fehlerfrei sein!!!)


3. Auslagern der Ein- und Ausgabewerte auf den RAM history menue scroll up

In der Assemblersprache werden die einzelnen Maschinenbefehle durch Textzeilen formuliert. Jeder Befehl entspricht einer Zeile, in, der der Operationscode und die Operanden durch Abkürzungen geschrieben werden. Statt, der Speicheradresse, p die der Maschinenbefehl gespeichert wird, bekommt die Assemblerzeile einen Namen (Marke). Da der Rechner jedoch nur Maschinenbefehle versteht, muss ein Assemblerprogramm in Maschinenbefehle umgewandelt werden. Dies realisiert der Assembler.

... Multiplikation ohne Übertrag auf dem RAM      

Multiplikation von zwei HEX-Zahlen unter RAM-Nutzung
  Projekt als A-Side Assembler Datei

... als HEX-Datei

)


4. Stack-Operationen history menue scroll up

Die weitaus meisten Stapel-Operationen werden vom Programmierer unbeeinflusst automatisch vom System wahrgenommen (nicht zuletzt gilt für die Praxis: "... das Stack-Pointer-Register ist für Programmierer-Anwendungen absolut tabu, es sei denn, es wird nicht verändert!).

Stack-Operationen 2019/20
PUSH - POP zum ersten        

Stack-Operationen - Beispiel 1

Download im ASide-Format

       

5. Subroutines und RET history menue scroll up

Eigenständige Subroutinen werden gehandelt wie Programmschleifen, also in sich wiederkehrende Programmabschnitte, aber diesmal eben nicht immer an gleicher Stelle - sondern eben an verschiedenen Stellen im Hauptprogramm mit wiederkehrend gleichen Schritten, jedoch verschiedenen Parametern

         
         

6. Standard-Subroutines und Stack-Operationen history menue scroll up

Die Standard-Subroutinen sind im LC-80 fest implementiert und können nur dann "umgeschrieben" werden, wenn ich sie genau kenne oder in einen neuen Betriebssystem-Schalkreis neu "einbrennen". Allerdings lässt sich damit in Bezug auf die doch bescheidene Hardware.

Standard-Subrotinen als Nutzung zur Ton- und Schriftgestaltung  - das Projekt LAUFSCHRIFT
Laufschrift von Anne Muth Laufschrift von Fritzi Gütschow Laufschrift von Alexej Anisimow Laufschrift von Lucie Kläfling - die hat sich Hilfe von einem Informatik-Studenten geholt  - nicht verboten  - und die Lösung ist ziemlich cool!!! Laufschrift von Marlies Boehme

Laufschrift 2014 - Anne Muth
Download im ASide-Format

Laufschrift 2014 - Fritzi Gütschow
Download im ASide-Format

Laufschrift 2014 - Alexej Anisimow
Download im ASide-Format

Laufschrift 2014 - Lucie Kläfling
Download im ASide-Format

Laufschrift 2014 - Marlies Boehme
Download im ASide-Format

Laufschrift von F. Rost Laufschrift von Frank Rost      

Laufschrift 2014 - Anne Muth
 

Laufschrift 2014 - Frank Rost
Download im ASide-Format

     
Standard-Subrotinen im Schuljahr 2012/13 - das Projekt MINISPIEL
Minispiel 2007 Version 1 Minispiel 2007 Version 2 Minispiel 2007 Version 3 Minispiel 2007 Version 4 Minispiel 2007 Version 5

Standardsubroutinen 2007 - Beispiel 1
Download im ASide-Format

Standardsubroutinen 2007 - Beispiel 2
Download im ASide-Format

Standardsubroutinen 2007 - Beispiel 3
Download im ASide-Format

Standardsubroutinen 2007 - Beispiel 4
Download im ASide-Format

Standardsubroutinen 2007 - Beispiel 5
Download im ASide-Format

Subrotinen im Schuljahr 2012/13 - das Projekt Zufallszahlen
Zufallszahlen        

 

Standardsubroutinen 2007 - Beispiel 1
Download im ASide-Format

       
Subrotinen im Schuljahr 2013/14 - das Projekt Sortieralgorithmen
Bubble-Sort - 2020 nicht geprüft Simple Sort - 2020 nicht geprüft      

 

Standardsubroutinen 2007 - Beispiel 1
Download im ASide-Format

Simple Sort von Paul Gerber 2012 - Beispiel 1
Download im ASide-Format

     
Subrotinen im Schuljahr 2014/15 - das Projekt Taschenrechner
Addition        

 

Standardsubroutinen 2007 - Beispiel 1
Download im ASide-Format

       
Standard-Subrotinen im Schuljahr 2012/13 - das Projekt SCHLANGE
Schlange von Moritz Garn 2013 Schlange von Philipp Garn 2013 Schlange von Björn Preuninger 2013 Schlange von Marcel Stelzner 2013 Schlange von Carl Gäbert 2013

Schlange - Version 1
Download im ASide-Format

Schlange - Version 2
Download im ASide-Format

Schlange - Version 3
Download im ASide-Format

Schlange - Version 4
Download im ASide-Format

Schlange - Version 5
Download im ASide-Format

Standard-Subrotinen im Schuljahr 2012/13 - Projekt MUSIC
Music-Projekt von Moritz Garn 2013 Music-Projekt von Philip Garn 2013 Music-Projekt von Björn Preuninger 2013 Music-Projekt von Marcel Stelzner 2013 Music-Projekt von Carl Gäbert 2013

Music - Version 1
Download im ASide-Format

Music - Version 2
Download im ASide-Format

Music - Version 3
Download im ASide-Format

Music - Version 4
Download im ASide-Format

Music - Version 5
Download im ASide-Format

Standard-Subrotinen im Schuljahr 2015/16 sowie 2021- Projekt MORSECODE
Morsecode-Projekt LK 2016 Gymnasium Hartha Morsecode-Projekt LK 2016 Gymnasium Hartha - Ausbaustufe I Morsecode-Projekt LK 2016 Gymnasium Hartha - Ausbaustufe II    

Morsecode - Lösung 1
Download im ASide-Format

Morsecode - Detail-Lösung a
Download im ASide-Format

Morsecode - Detail-Lösung b
Download im ASide-Format

   
Standard-Subrotinen im Schuljahr 2015/16 sowie 2022- Projekt Zufallszahlen - rein rechentechnisch ein Riesenproblem
Projekt Zufallszahlen        

 

Morsecode - Lösung 1
Download im ASide-Format

       

7. Peripherie-I/O-Komponenten history menue scroll up

Vier Bausteine stehen hier in der Warteschlange - jeder in sich extrem komplex, aber für de entsprechende Hardware angepasst auch extrem leistungsfähig. Hier existieren jedoch derzeit lediglich die Ausarbeitungen für PIO sowie CTC - das soll jetzt zügig anders werden.

 

8. Interrupt-Programmierung history menue scroll up

Wenn man bis hierher kommt, dann hat man von der Programmierung externer Rechnerbausteine zumindest schon einmal etwas gehört - auch davon, dass es die Möglichkeit zum Verwenden von Interrupts gibt und dass diese über die Baustein-Programmierung zumindest vorbereitet werden müssen. Auch dass es verschiedene Interrupt-Modi gibt sowie der Umstand, dass diese ganz verschieden voneinander reagier, ist Dir eine bekannte Tatsache - denn ansonsten liest sich das Folgende wie: "... Ägypten???".

Interupt Mode 2 im Schuljahr 2012/13
Michi Krasselts Display-Steuerung im IMO 2 - 2013 mit eleganten Verzweigungen In-Out-Steuerung vom Chef via IMO 2 - 2013 Paul Gerbers Count-Down-Anzeige via IMO 2 - 2013 - hochinteressant gelöst Anja Leheis  Ampelsteuerung via IMO 2 - 2013 - hochinteressant gelöst

Interrpt-Mode 2 im Jahr 2013 - Beispiel 1
Download im ASide-Format

Interrpt-Mode 2 im Jahr 2013 - Beispiel mit exakter Beschreibung CTC-Programmierung
Download im ASide-Format

Interrpt-Mode 2 im Jahr 2013 - Beispiel 2
Download im ASide-Format

Interrpt-Mode 2 im Jahr 2013 - Beispiel 3
Download im ASide-Format
Download im ASide-Format -
Version 2

Interupt-Programmierung  im Schuljahr 2020/21
Interrupt-Mode 0 für zwei PIO-Ports im Byte-Betrieb - nicht fertig am 30.10.2020 In-Out-Steuerung für zwei PIO-Ports im Bitbetrieb im IMO 0 - nicht fertig am 30.10.2020 ein CTC-Kanal löst Interrupts im Mode 1 aus - funktioniert seit 1.11.2020 ein CTC-Kanal löst Interrupts im Mode 2 aus - funktioniert seit 30.10.2020

Interrpt-Mode 0 im Jahr 2020- Beispiel 1

Download im ASide-Format

Interrpt-Mode 0 im Jahr 2020 - Beispiel 2

Download im ASide-Format

Interrpt-Mode 1 CTC-Kanal 0 im Jahr 2020 - Beispiel 1

Download im ASide-Format

Interrpt-Mode 2 CTC-Kanal 0 im Jahr 2020 - Beispiel 1

Download im ASide-Format

Aussagenlogik, Logik und Kombinatorik, Kanonische Normalformen - aber auch die Gesetze zur logischen Schaltungsentwicklung sowie auch ihre Vereinfachung spielen alle in diese Feld der Grundlagen. Hier einige Tipps, um diese näher zu beschnuppern, oder daran vollkommen zu verzweifeln.

Programmierwerkzeuge für Mikrorechner

The Mother of Tetraed Codes - der HEX-Code

Mnemonik-Codierung

Assembler/Disassambler

ASide-Assembler

Assembler-Programmierung

komplexer Mikrorechner mit Funktionsanalysator

Der LC-80 Simulator

Assembler-Programmierung

Assembler-Programmierung

  • 128 KByte RAM einschließlich entsprechender Decodierlogik

  • zusätzliche Peripherieschaltkreise (SIO, DMA, CTC, PIO)

  • vollständiger BUS-Analysator und Taktzähler

LC-80 mit vollständig ausdecodiertem BUS-Analysator und Einzel-STEP-Betrieb im Einzeltaktverfahren in freier Frequenz (also auch extrem klein)

  • 128 KByte RAM einschließlich entsprechender Decodierlogik

  • zusätzliche Peripherieschaltkreise (SIO, DMA, CTC, PIO)

  • Analysebesteck on board (Logiktester, Äquivalenztester)

LC-80 mit vielen Extras

 

     
Witz zum Thema:

Ein Österreicher sitzt über der Zeitung und liest. Er unterbricht seine Lektüre, als er liest, dass ein berühmter Physiker und Nobelpreisträger gestorben ist.
„Ist schon spaßig“, meint er, „fast jeden Tag steht in der Zeitung, dass irgendein berühmter Mann gestorben ist. Wenn aber einer geboren wird, das schreiben sie nicht.“



zur Hauptseite
© Samuel-von-Pufendorf-Gymnasium Flöha © Frank Rost im Mai 2007

... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-)

„Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“

Diddi Hallervorden, dt. Komiker und Kabarettist