home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
mbug
/
mbug027.arc
/
LIST.INC
< prev
next >
Wrap
Text File
|
1979-12-31
|
5KB
|
172 lines
overlay PROCEDURE List(date : str14);
LABEL
escape;
VAR
i,l,k,ok : INTEGER;
Bottom : INTEGER;
rec : INTEGER;
ch : CHAR;
bl : charset;
ear : str5;
Animal : Animal_rec;
yy,ww,dd : INTEGER;
ok2 : BOOLEAN;
PROCEDURE Movecurs(ch : CHAR; VAR G : INTEGER);
VAR
old : INTEGER;
BEGIN
old := G;
CASE ch OF
^E : BEGIN
G := G -1;
IF g = 3
THEN g := bottom + 3;
END;
^X : BEGIN
G := G + 1;
IF g = bottom + 4
THEN g := 4;
END;
^Q : G := 4;
END; {Case of ch}
dis(1,old,' ');
dis(1,G,'->');
END;
BEGIN
IF (filesize(infile) = 0) THEN GOTO escape;
RESET(infile);
rec := 0;
line(1);
dis(1,2,'LIST NAME EAR NUMBER SEX AGE');
ClrEOL;
Display_Recs_Used;
line(16);
l := 4;
REPEAT
ear := '';
dis(1,5,'Press RETURN to LIST ALL or type Starting Ear No. _____');
InputStr(ear,5,50,4,[^M,^Z,^X,^E],ch);
IF ear <> '' THEN
BEGIN
ear := UpCaseStr(ear);
fillup(ear);
find_ear(rec,ear);
IF (NOT found) THEN
BEGIN
Writeln;
Writeln('Ear Number Not Found');
END;
END;
UNTIL found OR (ear = '');
ClearFrame;
seek(infile,rec);
Bottom := 0;
dis(1,17,' | | | | | | S = Screen | P = Printer | <ESC> = MAIN MENU |');
BL := ['P','S',#27,^M];
select(75,17,' ',BL,Ch);
IF ch = #27 THEN GOTO escape;
IF ch = 'P' THEN
BEGIN
Writeln(lst);
Writeln(lst,' LIST of Animals on the ',date_Today);
Writeln(lst,' Name Ear No Sex Sire Dam Birth Death');
Writeln(lst);
REPEAT
Read(infile,Animal);
WITH Animal DO
BEGIN
Write(lst,name,' ':20 -(Length(name)),ear_no,sex: 4,sire: 7,dam: 7);
Writeln(lst,date_born:14,date_died:14);
END;
l := l + 1;
IF l = 57 THEN
BEGIN
Write('Press RETURN to continue.':50);
Readln;
Writeln(lst);
Writeln(lst,' LIST of Animals on the ',date_Today);
Writeln(lst,' Name Ear No Sex Sire Dam Birth Death');
Writeln(lst);
l := 4;
END;
UNTIL (EOF(infile));
Writeln(lst);
END;
l := 4;
rec := 0;
RESET(infile);
REPEAT
IF (filesize(infile) <= 12) THEN
BEGIN
dis(1,17,' | | | | | | | | <ESC> = MAIN MENU');
bl := [#27,^E,^X,^Q,'1','2','3','4','5','6'];
END;
IF (rec <= 12) AND (filesize(infile) > 12) THEN
BEGIN
dis(1,17,' | | | | | | | N = Next screen | <ESC> = MAIN MENU');
bl := ['N',#27,^E,^X,^Q,'1','2','3','4','5','6'];
END;
IF (rec > 12) THEN
BEGIN
dis(1,17,' | | | | | | B = Back | N = Next screen | <ESC> = MAIN MENU');
bl := ['B','N',#27,^E,^X,^Q,'1','2','3','4','5','6'];
END;
seek(infile,rec);
Read(infile,Animal);
Bottom := Bottom + 1;
rec := rec + 1;
list_table[bottom ] := Animal;
WITH Animal DO
BEGIN
dis(4,L,name);
dis(30,L,Ear_no);
dis(45,L,sex);
yy := 0;
ww := 0;
dd := 0;
verify_date(Date_Born,ok2);
IF ok2 THEN
BEGIN
verify_date(Date_Died,ok2);
IF ok2
THEN age(Date_Born,Date_Died,yy,ww,dd)
ELSE age(Date_Born,Date,yy,ww,dd);
GotoXY(50,L);
IF yy > 0
THEN Write(YY:2,' Years',ww:3,' Weeks',dd:3,' Days')
ELSE Write(ww:2,' Weeks',dd:3,' Days');
END;
END;
L := L + 1;
IF (l = 16) OR (rec = Filesize(infile)) THEN
BEGIN
i := 4;
f_table;
REPEAT
movecurs(ch,i);
select(74,17,' ',BL,Ch);
IF ch = #27 THEN GOTO escape;
k := 0;
val(ch,k,ok);
IF k IN [1..6] THEN
Animals_table(k,list_table[i-3]);
UNTIL (ch = 'N') OR (ch = 'B');
IF ch = 'B' THEN
BEGIN
rec := rec - (12 + bottom);
IF rec < 1 THEN rec := 0;
END;
IF rec = filesize(infile) THEN rec := 0;
Bottom := 0;
ClearFrame;
l := 4;
END;
UNTIL (ch = #27);
escape:
close(infile);
END;