LC-80 als Taschenrechner history menue Letztmalig dran rumgefummelt: 03.02.16 19:21:31

     

Anmerkungen zur Steuerung: Register A, BC  sowie HL muss vor dem Aufruf der Subroutine SOUND gerettet werden

Pseudocode zum Programm:

1.) erste Zahl eingeben

2.) zweite Zahl eingeben

4.) Ergebnis bereitstellen und anzeigen

Zeile Marke Block Adresse Hex-Code Assembler-Code Kommentar
0001   ORG 2000H ;Adresse Programmbeginn
0002 INIT 2000H DD 21 98 21 LD IX,2198H ;Text holen
0003   2002H  0E 88 LD C,88H  ;Anzahl der Textzeichen
0004 :M2   2006H 06 30 LD B,30 ;Zeitkonstante für Anzeigezeit laden
0005 :M1   2008H C5 PUSH BC ;Registerpaar BC retten
0006   2009H DD E5 PUSH IX ;Register IX retten
0007   200BH CD 83 04 CALL DAK2 ;Text anzeigen
0008   200EH DD E1 POP IX ;Register IX wieder herstellen
0009   2010H C1 POP BC ;Registerpaar BC wieder herstellen
0010   2011H 10 F5 DJNZ 2008H ;Anzeigeroutine B-mal wiederholen
0011   2013H DD 2B DEC IX ;Text weiterrücken
0012   2015H 0D DEC C ;Zeichenanzahl kürzen
0013   2016H C2 06 20 JPNZ 2006H ;wenn nicht Null, dann 2006H
0014 :M9   2019H CD EA 04 CALL MONMUS ;Anfangsmusik einspielen
0015     201CH 16 02 LD D,02H ;Schleifenanzahl
0016 :M6   201EH DD 21 88 20 LD IX,2088H ;"1 . Zahl"
0017     2022H CD 5A 04 CALL DAK1 ;Anzeige des Bildwiederholspeichers (erste Zahl)
0018     2025H 06 04 LD B,04H ;vier mal wird im Bedarfsfall geschoben
0019 :M3   2027H CB 27 SLA A ;Zehnerstelle organisieren
0020     2029H 10 FC DJNZ 2027H ;vier mal wird im Bedarfsfall geschoben
0021     202BH 4F LD C,A ;Teilergebnis retten
0022     202CH DD 21 8E 20 LD IX,208EH ;"2. Zahl"
0023     2030H CD 5A 04 CALL DAK1 ;Anzeige des Bildwiederholspeichers
0024     2033H 81 ADD C ;erste Zahl entstanden
0025     2034H F5 PUSH AF ;Registerpaar AF retten
0026     2035H C5 PUSH BC ;Registerpaar BC retten
0027     2036H DD E5 PUSH IX ;Register IX retten
0028     2038H CD 75 20 CALL ZAHLANZ ;Aufruf Unterprogramm auf 2075H
0029     203BH DD E1 POP IX ;Register IX wieder herstellen
0030     203CH C1 POP BC ;Registerpaar BC wieder herstellen
0031     203EH F1 POP AF ;Registerpaar AF wieder herstellen
0032     203FH 15 DEC D ;Schleife kürzen
0033     2040H CA 4B 20 JPZ 204BH ;Sprung, wenn bereits 2 Zahlen eingegeben sind
0034     2043H 32 A2 20 LD (20A2H),A ;Ergebnis auf RAM schreiben
0035     2046H 97 SUB A ;schnellste Methode, REGISTER A 00H zu setzen
0036     2047H C3 1E 20 JP 201EH ;Sprung zum Anfang
0037     204AH 76 HALT ;Fehlerkontrolle - darf nicht erreicht werden ;-)
0038 :M5   204BH ED 43 96 20 LD (2096H),BC  
0039     204FH 2A A2 20 LD HL,(20A2H) ;erste Zahl holen
0040     2052H 85 ADD L ;addieren
0041     2053H 27 DAA ;dezimale Korrektur des Akkumulators
0042     2054H DC 6C 20 CAC 206CH ;bei Übertrag - UP aufrufen
0043     2057H 21 95 20 LD HL, 2195H ;ADR. für Code
0044     205AH CD D9 04 CALL TWOSEG ;Inhalt von A in Sieben-Segmentcode umwandeln
0045     205DH DD 21 95 20 LD IX,2095H ;Text holen
0046     2061H 06 FF LD B, FFH ;Zeitregister
0047 :M8   2063H CD 83 04 CALL DAK2 ;Anzeigen und Tastatur abfragen
0048     2066H 10 FB DJNZ 2163H ;Sprung & Anzeigezeitzeit kürzen
0049     2068H C3 19 20 JMP 2019H ;Sprung zum Anfang
0050     206BH 76 HALT ;Fehlerkontrolle - darf wieder nicht erreicht werden ;-)
0051 :M7   206CH 11 21 E6 LD DE,E621H ;bei Übertrag 1xx schreiben
0052     206FH ED 53 97 20 LD (2097H),DE ;BWS schaffen
0053     2073H C9 RET ;Rückkehr aus Unterprogramm (Anfang 206CH)
0054     2074H 76 HALT ;Fehlerkontrolle - darf ebenfalls nicht erreicht werden ;-)
0055 :M4   2075H 06 A0 LD B,A0 ;Anzeigezeit
0056     2077H 21 9C 20 LD HL,209CH ;Ziffern holen
0057     207AH CD D9 04 CALL TWOSEG Inhalt von A in Sieben-Segmentcode umwandeln
0058     207DH DD 21 9C 20 LD IX, 209CH ;Text holen
0059 :M11   2081H CD 83 14 CALL DAK2 ;Anzeigen und Tastatur abfragen
0060     2084H 10 FB DJNZ 2081H ;Sprung und Zeit kürzen
0061     2086H C9 RET ;Rückkehr aus Unterprogramm (Anfang 2075H)
0062     2087H 76 HALT ;Fehlerkontrolle - darf ebenfalls nicht erreicht werden ;-)
0063   CONTENTS     TABLE: ;Table of Contents
0064     2088H C2 DEFB C2H ;Anzeige "L" auf Digit 4
0065     2089H 6B DEFB 6BH ;Anzeige "H" auf Digit 3
0066     208AH 6F DEFB 6FH ;Anzeige "A" auf Digit 2
0067     208BH 8C DEFB 8CH ;Anzeige "Z" auf Digit 1
0068     208CH 00 DEFB 00H ;Anzeige " " auf Digit 1
0069     208DH 31 DEFB 31H ;Anzeige "2." auf Digit 1
0070     208EH C2 DEFB C2H ;Anzeige "L" auf Digit 1
0071     208FH 6B DEFB 6BH ;Anzeige "H" auf Digit 1
0072     2090H 6F DEFB 6FH ;Anzeige "A" auf Digit 1
0073     2091H 8C DEFB 8CH ;Anzeige "Z" auf Digit 1
0074     2092H 00 DEFB 00H ;Anzeige " " auf Digit 1
0075     2093H DD DEFB DDH ;Anzeige "1." auf Digit 1
0076     2094H 00 DEFB 00H ;Anzeige " " auf Digit 1
0077     2095H 00 DEFB 00H ;Anzeige " " auf Digit 1
0078     2096H 00 DEFB 00H ;Anzeige " " auf Digit 1
0079     2097H 00 DEFB 00H ;Anzeige " " auf Digit 1
0080     2098H E6 DEFB E6H ;Anzeige "G" auf Digit 1
0081     2099H 48 DEFB 48H ;Anzeige "R" auf Digit 1
0082     209AH CE DEFB CEH ;Anzeige "F" auf Digit 1
0083     209BH 00 DEFB 00H ;Anzeige " " auf Digit 1
0084     209CH 00 DEFB 00H ;Anzeige " " auf Digit 1
0085     209DH 00 DEFB 00H ;Anzeige " " auf Digit 1
0086     209EH 00 DEFB 00H ;Anzeige " " auf Digit 1
0087     209FH 4F DEFB 4FH ;Anzeige "P" auf Digit 1
0088     20A0H 68 DEFB 68H ;Anzeige "N" auf Digit 1
0089     2092H 20 DEFB 20H ;Anzeige "I" auf Digit 1

Additionsprogramm mit Anzeige



zur Hauptseite
© Samuel-von-Pufendorf-Gymnasium Flöha © Frank Rost am 10. Februar 2016 um 19.21 Uhr

... 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