A-Side-Projekte menue history Letztmalig dran rumgefummelt: 07.12.19 17:29:41
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, 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

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

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

 

 

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.

 

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-Subrotinenzur Nutzung als Laufschrift
Laufschrift Anne Muth        

Laufschrift 2014 - Anne Muth 2014

Download im ASide-Format

       
Standard-Subrotinen im Schuljahr 2012/13
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

Standard-Subrotinen im Schuljahr 2012/13
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
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

 

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 Mode 0 im Schuljahr 2019/20
Interrupt-Mode 0 für zwei PIO-Ports im Byte-Betrieb In-Out-Steuerung für zwei PIO-Ports im Bitbetrieb im IMO 0    

Interrpt-Mode 0 im Jahr 2019 - Beispiel 1

Download im ASide-Format

Interrpt-Mode 0 im Jahr 2019 - Beispiel 2

Download im ASide-Format

   
9. Verwandte Themen history menue scroll up
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

 

     


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