2 REM COPYRIGHT CONTROL DATA  1980
10 OPEN #2,4,0,"S"
20 DIM ZZCP$(36)
30 ZZCP$="COPYRIGHT  CONTROL  DATA  1980"
31 ZZ0=0:ZZ1=1:ZZ2=2:ZZ3=3:ZZ4=4:ZZ5=5:ZZ6=6:ZZ10=10:ZZ14=14:ZZ21=21:ZZ125=125:ZZ126=126:ZZ180=180:ZZ200=200
32 ZZ7=7:ZZ8=8:ZZ9=9:ZZ12=12:ZZ20=20:ZZ22=22:ZZ128=128:ZZ150=150:ZZ170=170:ZZ190=190:ZZ23=23:ZZ764=764:ZZFF=255
33 DIM ZB$(1)
35 DIM ZZSP$(ZZ10),ZZB1$(ZZ1):ZZB1$="}":ZZSP$="          "
36 GOTO 41
37 FOR ZZINDX=ZZ1 TO 400:NEXT ZZINDX:RETURN 
38 POKE 82,ZZ2:POKE 83,39:RETURN 
41 GOSUB 38:GRAPHICS ZZ2+16:SETCOLOR ZZ4,ZZ9,ZZ2:PLOT ZZ6,ZZ5:? #ZZ6;"ATARI"
42 GOSUB 37:GOSUB 37:GRAPHICS ZZ0
46 GOSUB ZZ126:GOSUB ZZ150:? ZZB1$
60 POSITION ZZ6,ZZ2:? "A CONTROL DATA CORPORATION":? :? " ",ZZSP$;"tm":? " "," CYBERWARE":? :? 
29 ? "     Personal Computer Product":POSITION ZZ2,13
62 ? ZZSP$;"  ****  ****":? ZZSP$;" *****  *****":? ZZSP$;"******  ******":? ZZSP$;"***        ***"
63 ? ZZSP$;"***        ***":? ZZSP$;"******  ******":? ZZSP$;" *****  *****":? ZZSP$;"  ****  ****"
70 GOSUB 37:? ZZB1$:? :? "        зинсен═унд═тилгунг":? :? :? 
71 ? "Das Programm vergleicht Konditionen":? "von Hypotheken und Darlehen."
80 DIM ZZER$(35),ZZQ1$(ZZ1),ZZQ2$(ZZ1),ZZB$(ZZ1)
82 ZZER$="фехлер-ungueltige Daten -Neueingabe!":ZZB$="}":ZZEFLG=0:TRAP 110
83 DIM ZZBZ$(ZZ1):ZZBZ$=CHR$(253)
85 POSITION ZZ3,15:? ZZCP$:GOSUB ZZ180:GOSUB 300
90 ? "}":REM DRUCKOPTION
91 GOSUB 150:POSITION 7,5:? "оптион═фуер═ден═аусдруцк"
92 POSITION 2,10:? "Wuenschen sie den Ausdruck:":POSITION 13,12:? "а....80 spaltig":POSITION 13,14:? "б....40spaltig"
93 POSITION 1,18:? "друецкен═сие═ден═буцхстабен═ихрер═вахл":? :GOSUB 128
94 OPEN #ZZ3,ZZ4,ZZ0,"K:ZZKK":GET #ZZ3,ZZDATA:CLOSE #ZZ3
95 BB=39:CC=0
96 IF ZZDATA=65 THEN BB=38:CC=32
100 GOSUB 140:? ZZB$:? "Eingabe и fuer weitere Informationen":? "ueber das Programm."
101 ? :? "     ретурн fuer den Pogrammstart":? :GOSUB ZZ128
102 INPUT ZZQ2$:IF ZZQ2$="I" THEN GOSUB 155:? ZZB$:GOSUB 9000:GOTO 100
104 ? ZZB$:GOSUB ZZ150:GOTO 400
110 ZZGOTO=256*PEEK(187)+PEEK(186):ZZPEEK=PEEK(195):IF ZZPEEK=ZZ8 OR ZZPEEK=18 THEN GOSUB 170:TRAP 110:GOTO ZZGOTO
111 IF ZZPEEK<>ZZ3 AND ZZPEEK<>7 AND ZZPEEK<>11 THEN GOTO ZZGOTO
115 TRAP 110:? :? "фехлер- Ergebnis einer Berechnung ist groesser als die moegliche Anzeige "
116 GOSUB ZZ180:GOTO 130
120 ? :? "Die ИНЖЕРТИЕРТЕН═вЕРТЕ kennzeichnen   die Werte die einZugeben sind":? :RETURN 
125 POKE 752,ZZ0:RETURN 
126 POKE 752,ZZ1:RETURN 
128 POKE 764,255:GOSUB ZZ125:RETURN 
130 GOSUB 135:? ZZB$:? :? "Ende der Aufgabenstellung"
131 ? :? "Eingabe й fuer Programmneustart ":? :? "     ретурн fuer Ende":? :GOSUB ZZ128:INPUT ZZQ1$
132 IF ZZQ1$<>"J" THEN GRAPHICS ZZ0:TRAP 40000:END 
133 RESTORE :GOTO 90
135 SETCOLOR ZZ2,16,ZZ12:SETCOLOR ZZ4,13,ZZ6:SETCOLOR ZZ1,ZZ1,ZZ2:RETURN 
140 SETCOLOR ZZ2,13,ZZ2:SETCOLOR ZZ4,ZZ14,ZZ2:SETCOLOR ZZ1,ZZ0,ZZ12:RETURN 
145 SETCOLOR ZZ2,ZZ14,ZZ0:SETCOLOR ZZ4,ZZ14,ZZ8:SETCOLOR ZZ1,ZZ1,ZZ12:RETURN 
150 SETCOLOR ZZ2,ZZ9,ZZ2:SETCOLOR ZZ4,ZZ5,ZZ4:SETCOLOR ZZ1,ZZ0,ZZ12:RETURN 
155 SETCOLOR ZZ2,ZZ14,ZZ10:SETCOLOR ZZ4,ZZ14,ZZ0:SETCOLOR ZZ1,ZZ1,ZZ0:RETURN 
170 POSITION ZZ3,ZZ21:? ZZER$:ZZEFLG=ZZ1:? ZZBZ$:RETURN 
180 POSITION ZZ2,ZZ23:GOSUB 128:? "п fuer Ausdruck ,weiter mit ретурн";
181 OPEN #ZZ3,ZZ4,ZZ0,"K:ZZKK":GET #ZZ3,ZZDATA:CLOSE #ZZ3
182 IF ZZDATA=80 THEN TRAP 186:OPEN #ZZ5,ZZ8,ZZ0,"P:ZZPP":GOTO 186
183 IF ZZDATA<>155 THEN 180
184 GOSUB ZZ126:? ZZB$:RETURN 
186 REM NEUE PRINTROUTINE
187 FOR Y=0 TO 22:FOR X=0 TO BB:POSITION X,Y:GET #2,A:? #ZZ5;CHR$(A);CHR$(CC);:NEXT X:? #5;CHR$(155);:NEXT Y
188 TRAP 110:GOTO 180
190 IF ZZEFLG<>ZZ0 THEN POSITION ZZ1,ZZ21:? "°":ZZEFLG=ZZ0
191 RETURN 
200 ZZR2=ZZR8:IF ZZR2<ZZ0 THEN ZZR2=ZZ0
201 ZZR6=ZZR1+SGN(ZZR1)*0.5*ZZ10^(-ZZR2):ZZR3=ABS(ZZR6):ZZR4=ZZ0
203 IF ZZR3>ZZ1 THEN ZZR3=ZZR3*0.1:ZZR4=ZZR4+ZZ1:GOTO 203
204 ZZLB=ZZR9-ZZ1-ZZR4:IF ZZR6>=ZZ0 THEN ZZLB=ZZLB+ZZ1
205 IF ZZLB>ZZ0 AND ABS(ZZR6)<ZZ1 THEN ZZLB=ZZLB-ZZ1:ZZR3=ZZR3*0.1
206 IF ZZLB>ZZ0 THEN FOR ZZI=ZZ1 TO ZZLB:? " ";:NEXT ZZI
207 ZZDPT=ZZR9+ZZ1:ZZLOP=ZZR2+ZZR9:IF ZZLB>ZZ0 THEN ZZLOP=ZZLOP-ZZLB:ZZDPT=ZZDPT-ZZLB
208 FOR ZZI=ZZ1 TO ZZLOP:IF ZZR6<ZZ0 AND ZZI=ZZ1 THEN ? "-";:GOTO 212
209 IF ZZI=ZZDPT THEN ? ".";
210 IF ZZLB<ZZ0 THEN ? "*";:GOTO 212
211 ZZR3=ZZR3*ZZ10:ZZINT=INT(ZZR3):ZZR3=ZZR3-ZZINT:? ZZINT;
212 NEXT ZZI:RETURN 
300 DIM T$(80),Z$(80),Z(10),R(10),Y(10),P(10),P$(80),A$(3)
310 RETURN 
400 GOTO 500
500 GOSUB 126:GOSUB 7000:POSITION 2,1:GOSUB 150
510 ? "HYPOTHEKEN ODER DARLEHENSBETRAEGE":? "_________________________________":? :? 
520 FLG=0:FLG2=0
530 FOR I=1 TO 10
540 GOSUB 125:PRINT "Betrag(";I;")  ";
550 INPUT Z$:IF LEN(Z$)=0 AND I=1 THEN GOSUB 860:GOTO 530
560 IF LEN(Z$)=0 THEN GOTO 620
570 GOSUB 865:GOSUB 875
580 TRAP 4000:Z(I)=VAL(Z$)
590 Z0=I
600 NEXT I
620 ? "}":GOSUB 126:GOSUB 7000:POSITION 2,1:? 
630 ? "  ZU BETRACHTENDE  ZINSAETZE  ":? "_______________________________":? 
640 SETCOLOR 2,10,2:SETCOLOR 4,13,4
650 FOR I=1 TO 10
660 GOSUB 125:? "Zins(";I;")  ";:INPUT Z$
670 IF LEN(Z$)=0 AND I=1 THEN GOSUB 860INPUT <>#3:;82<.220>0I=1 THEN *4.1086E-993.00:0>4106E-87INT0 STEP 3:;82<.220>0740
ZZR6=.0<0>4108E-82e0VAL0.000016;2E+:6=.0<0>4108E-82e0VAL0.000016;<E+:6=.0=0>414E-780I)=VAL(Z$)
LIN9.36<32=<1E-;0
Y7.09<116>4E-;4680 IF LEN(Z$)=0 THEN 740
685 GOSUB 865:GOSUB 875
690 GOSUB 865:GOSUB 875
700 TRAP 4010:R(I)=VAL(Z$)
710 R0=I
720 NEXT I
740 ? "}":GOSUB 126:GOSUB 7000:POSITION 2,2
750 SETCOLOR 2,2,2:SETCOLOR 4,0,6
760 ? "GESAMMTLAUFZEIT IN JAHREN"
770 ? "_________________________":? 
780 FOR I=1 TO 10
790 GOSUB 125:? "Jahre(";I;")  ";:INPUT Z$
800 IF LEN(Z$)=0 AND I=1 THEN GOSUB 860:GOTO 780
810 IF LEN(Z$)=0 THEN 980
820 GOSUB 865:GOSUB 875
830 TRAP 4020:Y(I)=VAL(Z$):Y0=I
840 NEXT I
850 GOTO 980
860 FLG=1
861 POSITION 3,21:PRINT "фехлер- mindestens ein Wert wird              benoetigt":POSITION 2,5:RETURN 
865 IF FLG<>0 THEN POSITION 1,21:? "°":POSITION 2,6:FLG=0
866 RETURN 
870 POSITION 2,20:GOSUB 170:POSITION 2,5+I-1:RETURN 
875 GOSUB 190:POSITION 2,6+I-1:RETURN 
945 ? "und Darlehens-Laufzeit":GOSUB 180
980 TRAP 110:FOR Z1=1 TO Z0
981 GOSUB 5600:LIN=6
1050 A=Z(Z1)
1061 GOSUB 126
1090 FOR R9=1 TO R0
1092 R3=R(R9)/1200
1094 FOR Y3=1 TO Y0
1096 M9=1-(1/(1+R3)^(12*Y(Y3)))
1097 IF M9=0 THEN M=0:GOTO 1050
1098 M=A*R3/M9
1150 I1=M*12*Y(Y3)-A:IF I1<0 THEN I1=0
1160 ZZR1=R(R9):ZZR9=2:ZZR8=3:GOSUB 200
1180 ZZR1=Y(Y3):ZZR9=6:ZZR8=0:GOSUB 200:O9=FNP
1185 ZZR1=M:ZZR9=7:ZZR8=2:GOSUB 200
1190 ZZR1=I1:ZZR9=9:ZZR8=2:GOSUB 200:O9=FNP
1195 ? :GOSUB 5000
1280 NEXT Y3
1282 ? :GOSUB 5000
1284 NEXT R9
1288 IF Z1=Z0 THEN 1320
1290 IF LIN<>6 THEN GOSUB 180
1294 NEXT Z1
1320 GOSUB 180:GOTO 130
1330 END 
4000 GOSUB 870:GOTO 540
4010 GOSUB 870:GOTO 660
4020 GOSUB 870:GOTO 790
5000 LIN=LIN+1
5010 IF LIN<21 THEN RETURN 
5015 IF R9=R0 THEN LIN=6:RETURN 
5020 GOSUB 180
5030 IF R9=R0 THEN LIN=6:RETURN 
5035 GOSUB 5600
5040 RETURN 
5600 GOSUB 140
5605 ? "}":? "FUER EIN DARLEHEN VON: DM ";Z(Z1)
5610 ? "___________________________________"
5620 ? :? "ZINS   JAHRE   TILGUNG   ZINSSUMME"
5630 ? :LIN=5
5640 RETURN 
7000 POSITION 3,18:? "ретурн, ohne Eingabe beendet diese             Datengruppe."
7010 RETURN 
9000 ? "        зинсен═унд═тилгунг":? :? 
9020 ? "Dieses Programm gibt Ihnen die":? :? "Moeglichkeit, Hypotheken oder":? :? "Darlehen zu vergleichen.":? :? :? 
9030 ? "Das Programm berechnet fuer Sie":? :? "die monatliche Belastung, sowie ":? 
9040 ? "die Zinssumme und dies fuer alle":? :? "moeglichen Kombinationen von Zins,":? 
9045 ? "Laufzeit und Darlehenssumme.":GOSUB 180
9050 ? "Die Darlehens-Betraege werden in ":? :? "DM , die Zinsbetraege in Prozent":? 
9060 ? "und die Laufzeit in Jahren einge-":? :? "geben.":? 
9110 ? :? :? :? "Es ist eine Modifikation von":? :? "  MORTCOST":? :? "  Autor    J.E. Felch"
9120 ? :? "  Amos Tuck School of Business"
9130 GOSUB 180:? "Die Abfrage erfolgt fuer jeden ":? :? "Wert einzeln und ist nach":? :? "Datengruppen geordnet."
9140 ? :? :? "Sind alle Werte innerhalb einer":? :? "Datengruppe eingegeben, druecken"
9150 ? :? "Sie nochmals ретурн ohne Eingabe."
9160 ? :? "Das Programm geht danach zum":? :? "naechsten Datenblock oder startet":? :? "die Auswertung."
9170 ? :? "мАЬИМАЛ═╠╟═вЕРТЕ═ПРО═дАТЕНБЛОЦК"
9180 GOSUB 180:? "Fuer jeden Hypotheken-oder Darlehens-":? :? "betrag erscheint die Auswertung"
9190 ? :? "auf einer eigenen Bildschirmseite.":? :? :? "Koennen alle moeglichen Konditionen"
9195 ? :? "nicht auf einer Seite dargestellt"
9200 ? :? "werden, erscheint die Fortsetzung":? :? "auf den folgenden Bildschirmseiten."
9210 ? :? "Diese koennen Sie nacheinander auf-":? :? "rufen, bis Sie alle gesehen haben."
9215 GOSUB 180:? "Wurden alle Berechnungen gezeigt,":? :? "fragt Sie das Programm, ob Sie"
9220 ? :? "mit anderen Werten eine neue":? :? "Berechnung wuenschen.":? :? :? "Die Eingabe й oder йа fuehrt zum"
9230 ? :? "Programm Neustart."
9240 GOSUB 180:RETURN 
