10 REM LATIN AUTO DECLINER
20 REM CONCEIVED BY IAN JOHNSON  6-24-85
30 REM COMPLETED  5-7-86
40 FOR N=1 TO 22:PRINT:NEXT N
50 WIDTH 52
60 FOR N=1 TO 26
70 PRINT CHR$(127);"-";
80 NEXT N
90 PRINT
100 PRINT"LATIN AUTO DECLINER"
110 PRINT"CREATED BY IAN JOHNSON"
120 PRINT"COPYRIGHT (C) 1986"
130 FOR PAUSE=1 TO 500:NEXT PAUSE
140 PRINT CHR$(26)
150 FOR N=1 TO 52:PRINT"_";:NEXT N
160 PRINT
170 PRINT" This program will ask for several parts of a Latin noun and will print them out fully declined with sug-gested tranlations for the various cases."
180 PRINT
190 PRINT"<ANY KEY TO CONTINUE>"
200 PRINT
210 A$=INKEY$
220 IF LEN(A$)>0 THEN 290
230 PRINT CHR$(30);
240 PRINT"   >-----*MAKE SURE YOUR PRINTER IS ON!!!!*-----<"
250 FOR PAUSE=1 TO 500:NEXT PAUSE
260 PRINT CHR$(30);"   >                                            "
270 FOR PAUSE=1 TO 300:NEXT PAUSE
280 GOTO 210
290 PRINT CHR$(26)
300 PRINT"                LATIN AUTO DECLINER
310 FOR N=1 TO 52:PRINT"_";:NEXT N
320 PRINT"What is the nominative of your noun?"
330 INPUT NOM$
340 PRINT "Nominative = ";NOM$;"  O.K.? (Y/N)"
350 A$=INKEY$
360 IF A$="Y" THEN 390
370 IF A$="N" THEN 320
380 GOTO 350
390 PRINT
400 PRINT"What is the genitive of your noun?"
410 INPUT GENITIVE$
420 PRINT"Genitive = ";GENITIVE$;"  O.K.?  (Y/N)"
430 A$=INKEY$
440 IF A$="N" THEN GOTO 400
450 IF A$="Y" THEN GOTO 470
460 GOTO 430
470 GEN$=RIGHT$(GENITIVE$,2)
480 IF GEN$>"I" THEN 490 ELSE 520
490 IF GEN$="EI" THEN 510
500 IF GEN$="IS" THEN 520
510 GEN$="I"
520 PRINT "Ending of ";GEN$
530 A=LEN(GENITIVE$)
540 B=LEN(GEN$)
550 C=A-B
560 STEM$=LEFT$(GENITIVE$,C)
570 PRINT
580 PRINT"What is the gender of your noun? (M,F,N)"
590 SEX$=INKEY$
600 IF SEX$="M" OR SEX$="F" OR SEX$="N" THEN 620 ELSE 610
610 GOTO 590
620 PRINT"Gender = ";SEX$;" -  O.K.? (Y/N)"
630 A$=INKEY$
640 IF A$="N" THEN 580
650 IF A$="Y" THEN 670
660 GOTO 630
670 PRINT"Ok"
680 PRINT
690 PRINT"What is the definition of your noun? i.e.' FARMER '"
700 INPUT SINGDEF$
710 PRINT"Simple defintion - ";SINGDEF$;"  O.K.?  (Y/N)"
720 A$=INKEY$
730 IF A$="Y" THEN 770
740 IF A$="N" THEN 680
750 GOTO 720
760 PRINT
770 PRINT"What is the plural defintion of your noun?          i.e. 'children'"
780 INPUT PLURALDEF$
790 PRINT"Plural definition - ";PLURALDEF$;"  O.K.?  (Y/N)"
800 A$=INKEY$
810 IF A$="Y" THEN 850
820 IF A$="N" THEN 760
830 GOTO 800
840 PRINT
850 PRINT NOM$;",";STEM$;GEN$;" - ";SEX$;" ---> ";SINGDEF$
860 REM ****** LPRINTING SUB ROUTINE *******
870 LPRINT:LPRINT
880 LPRINT NOM$;", ";STEM$;GEN$;", ";SEX$;" ------>";SINGDEF$
890 IF GEN$="AE" THEN GOTO 990
900 IF GEN$="I" THEN GOTO 1030
910 IF GEN$="IS" THEN GOTO 1120
920 IF GEN$="US" THEN GOTO 1190
930 IF GEN$="EI" THEN GOTO 1260
940 CLEAR
950 PRINT"Do you wish to do another? (Y/N)"
960 A$=INKEY$
970 IF A$="Y" THEN 10
980 IF A$="N" THEN 1440
985 GOTO 960
990 READ DAT$,ACC$,ABL$,NOMP$,GENP$,DATP$,ACCP$,ABLP$
1000 DATA AE,AM,a,AE,ARUM,IS,AS,IS
1010 LET NEUT$=STEM$
1020 GOSUB 1300:CLEAR:GOTO 940
1030 IF SEX$="N" THEN 1090 ELSE 1180
1040 DAT$="O":ACC$="UM":ABL$="O":NOMP$="I"
1050 GENP$="ORUM":DATP$="IS":ACCP$="OS":ABLP$="IS"
1060 LET NEUT$=STEM$
1070 GOSUB 1300:CLEAR:GOTO 940
1080 END
1090 DAT$="O":ACC$="":ABL$="O":NOMP$="A":GENP$="ORUM"
1100 DATP$="IS":ACCP$="A":ABLP$="IS":NEUT$=NOM$
1110 GOSUB 1300:CLEAR:GOTO 940
1120 IF SEX$="N" THEN 1160 ELSE 1130
1130 DAT$="I":ACC$="EM":ABL$="E":NOMP$="ES":GENP$="UM"
1140 DATP$="IBUS":ACCP$="ES":ABLP$="IBUS":NEUT$=STEM$
1150 GOSUB 1300:CLEAR:GOTO 940
1160 DAT$="I":ACC$="":ABL$="E":NOMP$="A":GENP$="UM"
1170 DATP$="IBUS":ACCP$="A":ABLP$="IBUS":NEUT$=NOM$
1180 GOSUB 1300:CLEAR:GOTO 940
1190 IF SEX$="N" THEN 1230 ELSE 1200
1200 DAT$="UI":ACC$="UM":ABL$="U":NOMP$="US":GENP$="UUM"
1210 DATP$="IBUS":ACCP$="US":ABLP$="IBUS":NEUT$=STEM$
1220 GOSUB 1300:CLEAR:GOTO 940
1230 DAT$="U":ACC$="":ABL$="U":NOMP$="UA":GENP$="UUM"
1240 DATP$="IBUS":ACCP$="UA":ABLP$="IBUS":NEUT$=NOM$
1250 GOSUB 1300:CLEAR:GOTO 940
1260 DAT$="EI":ACC$="EM":ABL$="E":NOMP$="E":GENP$="ERUM"
1270 DATP$="EBUS":ACCP$="ES":ABLP$="EBUS":NEUT$=STEM$
1280 GOSUB 1300:CLEAR:GOTO 940
1290 REM ************ DECLINING SUB-ROUTINE ************
1300 LPRINT"        SINGULAR"
1310 LPRINT
1320 LPRINT"NOM.:";NOM$;"  THE OR A ";SINGDEF$
1330 LPRINT"GEN.:";STEM$;GEN$;" OF THE OR A ";SINGDEF$
1340 LPRINT"DAT.:";STEM$;DAT$;" TO OR FOR THE OR A ";SINGDEF$
1350 LPRINT"ACC.:";NEUT$;ACC$;" THE OR A ";SINGDEF$
1360 LPRINT"ABL.:";STEM$;ABL$;" (PREP)  THE OR A ";SINGDEF$
1370  LPRINT"         PLURAL"
1380 LPRINT"NOM.:";STEM$;NOMP$;" THE ";PLURALDEF$
1390 LPRINT"GEN.:";STEM$;GENP$;" OF THE ";PLURALDEF$
1400 LPRINT"DAT.:";STEM$;DATP$;" TO OR FOR THE ";PLURALDEF$
1410 LPRINT"ACC.:";STEM$;ACCP$;" THE ";PLURALDEF$
1420 LPRINT"ABL.:";STEM$;ABLP$;" (PREP) THE ";PLURALDEF$
1430 RETURN
1440 REM ********** QUIT ROUTINE **********8
1450 PRINT
1460 PRINT"ARE YOU SURE YOU WANT TO QUIT?"
1470 A$=INKEY$
1480 IF LEN(A$)<1 THEN 1470 
1490 IF A$="N" THEN 1780
1500 IF A$="Y" THEN 1520
1510 GOTO 1470
1520 PRINT
1530 PRINT"OPTIONS: A>SYSTEM     B>BASIC"
1540 PRINT"( <ESC> TO BACK UP ONE FRAME )"
1550 B$=INKEY$
1560 IF LEN(B$)<1 THEN 1550
1570 IF B$=CHR$(27) THEN 1450
1580 IF B$="A" THEN 1720
1590 IF B$="B" THEN 1610
1600 GOTO 1550
1610 PRINT
1620 PRINT"OPTIONS: A>CLEARED RAM  B>PROGRAM IN RAM"
1630 PRINT"<ESC> TO BACK UP"
1640 D$=INKEY$
1650 IF LEN(D$)<1 THEN 1640
1660 IF D$=CHR$(27) THEN 1520
1670 IF D$="A" THEN 1700
1680 IF D$="B" THEN 1710
1690 GOTO 1640
1700 NEW
1710 END
1720 PRINT
1730 PRINT"INSERT SYSTEM DISKETTE IN A: AND PRESS ANY KEY"
1740 F$=INKEY$
1750 IF LEN(F$)>0 THEN 1770
1760 GOTO 1740
1770 SYSTEM
1780 GOTO 10
TEM DISKETTE IN A: AND PRESS ANY KEY"
1740 F$=INKEY$
1750 IF LEN(F$)>0 THEN 1770
1760 GOTO 1740
1770 SYSTEM
1780 GOT