;File: KSUB01.ASM                         04.05.91/KN
;----------------------------------------------------
; Hinweis: Vor Betrieb im Simulator die Daten in den ent-
;         sprechenden Speicherstellen ablegen.
;------------------------------------------------------
;Programmteil
INIT1:   LD  IX,1900h
         LD  H,04
         LD  C,(IX)
         INC IX
         LD  B,(IX)
         INC IX
LOOP1:   LD  E,(IX)
         INC IX
         LD  D,(IX)
         INC IX
         CALL ADD
         DEC H
         JP NZ,LOOP1
         NOP
         HALT
;
;Unterprogramm zur Durchf”rung der Addition
ADD:     LD  A,E  ;Addition
         ADD C    ;C=C+E
         DAA      ;Register     insgesamt Addition
         LD  C,A  ;               BC=BC+DE
         LD  A,D  ;Addition     im BCD-Code
         ADC B    ;B=B+D
         DAA      ;Register
         LD  B,A  ;
         RET      ;R…ksprung ins Hauptprogramm
;
;-------------------------------------------------------
         END
;-------------------------------------------------------
;Erklaerungen
;Das Programm addiert ab 1900h abgelegte
;3-stellige BCD-Zahlen
;Am Ende der gesamten Addition liegt das Ergebnis
;stellenrichtig im BC-Registerpaar
;Beispielwerte 423,612,514,211,822 mit Summe 2582
;ab 1900h steht 2304,1206,1405,1102,2208
;Das Programm nutzt fast alle CPU-Register
;Parameter｜ergabe HP - UP erfolgt ｜er Register