[comp.sys.amiga.graphics] Looking for the Epic game demo...

gblock@csd4.csd.uwm.edu (Gregory R Block) (04/24/91)

Could someone PLEASE upload the demo for the game Epic to
ab20.larc.nasa.gov or some other FTP site???  I've been looking for it...

Thanks in advance,
						Greg



-- 
------------------------------------------------------------------------------
All opinions are my own, and not those of my employer.
Why?  He doesn't know I'm doing this.
								-Wubba

IO10062@MAINE.BITNET (05/01/91)

PROGRAM BANKACOWNZ(INPUT,OUTPUT);

(**********************************************************************
 HW 10


***********************************************************************)

{ THIS PROGRAM IS DESIGNED TO ORGANIZE BANK RECORDS AND PROCESS
  TRANSACTIONS. IT WILL FIND OUT WHERE AND HOW MUCH MONEY I HAVE
  OUT OF THE THREE BANKS I'M USING. IT WILL USE RECORDS, LOOPS, ARRAYS
  AND FUNCTIONS..... IT IS NOT A REALISTIC SCENARIO, I HAVE $$ ??!!!! }

CONST
    LISTLIMIT=100;
TYPE
    STRINGS20 = PACKED ARRAY[1..20] OF CHAR;
    STRINGS10 = PACKED ARRAY[1..10] OF CHAR;
    MONEYTABLE = ARRAY ['A'..'C',1..4]OF REAL;
    TRANSACTIONS = RECORD
                 MONTH: INTEGER;
                 DAY  : INTEGER;
                 YEAR : 80..100;
                 BANK :CHAR;
                 ACCOUNT: CHAR;
                 TRANSACTION : CHAR;
                 AMOUNT : REAL;
                 DATEKEYY :INTEGER;
                 END;
      RECORDHOLDERS = ARRAY[1..LISTLIMIT] OF TRANSACTIONS;
VAR
    RECORDHOLDER : RECORDHOLDERS; (* ARRAY OF RECORDS *)
    DATECASE : STRINGS10;

    WHERECASH : MONEYTABLE;
    I,
    COUNT:INTEGER;
    MORE   : INTEGER;
    BLANK: CHAR;

PROCEDURE HEADING;
      BEGIN
        WRITELN('          SAVINGS    CHECKING     IRA  MONEYMARKET');
        WRITELN('          ~~~~~~~    ~~~~~~~~~    ~~~  ~~~~~~~~~~~');
      END;

FUNCTION DATEKEY(YEAR,MONTH,DAY : INTEGER):INTEGER;
   BEGIN
   DATEKEY := 10000* YEAR  + 100*MONTH + DAY;
   END;

PROCEDURE READDATA;
VAR
   WHICHBANK : CHAR;
   WHERESTORED: INTEGER;
   BEGIN
     FOR WHICHBANK := 'A' TO 'C' DO
       BEGIN
         FOR WHERESTORED := 1 TO 4 DO
           BEGIN
                READ(WHERECASH[WHICHBANK,WHERESTORED]);
           END;
         WRITELN;
        END;
    END;

PROCEDURE WRITEARRAY;
VAR
 WHICHBANK : CHAR;
 WHERESTORED : INTEGER;
     BEGIN
         HEADING;
         FOR WHICHBANK := 'A' TO 'C' DO
           BEGIN
             WRITE('BANK ', WHICHBANK);
             FOR WHERESTORED := 1 TO 4  DO
                    WRITE (WHERECASH[WHICHBANK,WHERESTORED]:10:2);
          WRITELN;
           END;
     END;

PROCEDURE ACCOUNTCASE(RECORDHOLDER :CHAR);

  VAR
     ACCOUNTCASE : STRINGS20 ;
        BEGIN
          CASE RECORDHOLDER OF
            'S' : ACCOUNTCASE := 'SAVINGS ACCOUNT';
            'C' : ACCOUNTCASE := 'CHECKING ACCOUNT';
            'I' : ACCOUNTCASE := 'IRA ACCOUNT';
            'M' : ACCOUNTCASE := 'MONEY MARKET ACCOUNT';
        END;
       WRITE(ACCOUNTCASE);
    END;
PROCEDURE THECASE(RECORDHOLDER  :CHAR);
 VAR
  THEASE    : STRINGS10;
    BEGIN
      CASE RECORDHOLDER OF
         'D' : THEASE := 'DEPOSITED.';
         'W' : THEASE := 'WITHDRAWN.';
      END;
     WRITELN(THEASE);
END;

PROCEDURE READRECORDS(cownt : INTEGER; VAR COUNT : INTEGER);
   BEGIN
        WRITE('************** THE ECHO OF THE TRANSACTION DATA');
        WRITELN('**************');
       WHILE NOT EOF DO
          BEGIN (*FOR*)
          cownt:= cownt  + 1;
          WITH RECORDHOLDER[cownt] DO
             BEGIN  {WITH}
               READ(MONTH,DAY,YEAR,BLANK,BANK);
               READLN(BLANK,ACCOUNT,BLANK,TRANSACTION,AMOUNT);
               WRITE(MONTH:2,'/',DAY:2,'/19',YEAR:2,' AT BANK ',BANK);
               WRITE('  ON THE ');
               ACCOUNTCASE(RECORDHOLDER[cowNT].ACCOUNT)    ;
               WRITE(' ',AMOUNT:4:2,' WAS ');
               THECASE(RECORDHOLDER[COWNT].TRANSACTION);
               DATEKEYY :=(DATEKEY(YEAR,MONTH,DAY));
             END;  {WITH}
            COUNT := COWNT;
           END;  {FOR}
        END;  {READRECORDS}

PROCEDURE SORTRECORDS(COUNT: INTEGER);
 VAR
 LARGEST: TRANSACTIONS;
 LARGEPOS,I,J :INTEGER;
   BEGIN
       FOR I:= 1 TO COUNT-1 DO
        BEGIN
          LARGEPOS := I;
          LARGEST := RECORDHOLDER[LARGEPOS];
          FOR J:= I+1 TO COUNT DO
              IF RECORDHOLDER[J].DATEKEYY < LARGEST. DATEKEYY THEN
                 BEGIN
                   LARGEPOS := J;
                   LARGEST := RECORDHOLDER[J];
                 END;
              RECORDHOLDER[LARGEPOS] := RECORDHOLDER[I];
              RECORDHOLDER[I] := LARGEST;
              END;
      END;

PROCEDURE PRINTRECORDS(VAR RECORDHOLDER:RECORDHOLDERS; COUNT:INTEGER);
 VAR
   I :  INTEGER;
   BEGIN
     WRITELN('****** THE ORDERED TRANSACTIONS ******');
    FOR I:= 1 TO COUNT DO
     WITH RECORDHOLDER[I] DO
        BEGIN
          WRITE(MONTH:4,DAY:4,YEAR:4,BANK:2,ACCOUNT:2);
          WRITELN(TRANSACTION:2, AMOUNT:12:2);
        END;
    END;
PROCEDURE WITHDRAW(RECORDHOLDER : TRANSACTIONS);
  VAR
   WBANK :CHAR;
   WACCOUNT : INTEGER;
   MONEY : REAL;
   MANY : INTEGER;
   BEGIN
     WBANK := RECORDHOLDER.BANK;
     WITH RECORDHOLDER DO
          CASE ACCOUNT OF
            'S' : WACCOUNT := 1;
            'C' : WACCOUNT :=2;
            'I' : WACCOUNT :=3;
            'M' : WACCOUNT :=4;
          END;
    MONEY := WHERECASH [WBANK,WACCOUNT] - RECORDHOLDER.AMOUNT;
    WHERECASH [WBANK,WACCOUNT] := MONEY;
  END;

PROCEDURE DEPOSIT(RECORDHOLDER : TRANSACTIONS);
 VAR
  WBANK : CHAR;
  WACCOUNT: INTEGER;
  MONEY : REAL;
  MANY : INTEGER;
 BEGIN
   WITH RECORDHOLDER DO
        CASE BANK OF
         'A'  : WBANK :='A';
         'B'  : WBANK :='B';
         'C'  : WBANK := 'C';
         END;
   WITH RECORDHOLDER DO
        CASE ACCOUNT OF
         'S': WACCOUNT := 1;
         'C' : WACCOUNT :=2;
         'I' : WACCOUNT:= 3;
         'M' : WACCOUNT :=4;
        END;
   MONEY := WHERECASH [WBANK,WACCOUNT] +RECORDHOLDER.AMOUNT;
   WHERECASH [WBANK,WACCOUNT] := MONEY;
  END;

 PROCEDURE PASSMONEY(RECORDHOLDER : TRANSACTIONS);
VAR
  I: INTEGER;
     BEGIN
       IF RECORDHOLDER.TRANSACTION = 'W' THEN
          WITHDRAW(RECORDHOLDER)
       ELSE IF RECORDHOLDER.TRANSACTION = 'D' THEN
          DEPOSIT(RECORDHOLDER);
      END;

PROCEDURE CASEDATE(I : INTEGER);
     BEGIN
       CASE I OF
         1 : DATECASE := 'JANUARY';
         2 : DATECASE := 'FEBRUARY';
         3 : DATECASE := 'MARCH';
         4 : DATECASE := 'APRIL';
         5 : DATECASE := 'MAY';
         6 : DATECASE := 'JUNE';
         7 : DATECASE := 'JULY';
         8 : DATECASE := 'AUGUST';
         9 : DATECASE := 'SEPTEMBER';
        10 : DATECASE := 'OCTOBER';
        11 : DATECASE := 'NOVEMBER';
        12 : DATECASE := 'DECEMBER';
      END;
      WRITE(DATECASE,'  ');
     END;

 PROCEDURE SORTPASS;
  VAR
  J,I:INTEGER;
    FLAG: BOOLEAN;
   BEGIN
     FLAG := FALSE;
     FOR I := 1 TO COUNT-1 DO
       BEGIN
        IF FLAG = FALSE THEN
        BEGIN
          WRITE('ACCOUNTS FOR THE MONTH OF    ');
          CASEDATE(RECORDHOLDER[I].MONTH);
            WRITELN;
            WRITELN;
          END;
         IF RECORDHOLDER[I].MONTH = RECORDHOLDER[I +1].MONTH THEN
            BEGIN
             FLAG := TRUE;
             PASSMONEY(RECORDHOLDER[I]);
            BEGIN
             WITH RECORDHOLDER[I] DO
               WRITE(MONTH:2,'/',DAY:2,'/',YEAR:2,' BANK ',BANK);
               WRITE(' FROM THE ');
               ACCOUNTCASE(RECORDHOLDER[I].ACCOUNT);
               WRITE(' ',RECORDHOLDER[I].AMOUNT:4:2,' WAS ');
               THECASE(RECORDHOLDER[I].TRANSACTION);
               END;
              END
            ELSE
             BEGIN
               FLAG := FALSE;
               PASSMONEY(RECORDHOLDER[I]);
                  WITH RECORDHOLDER[I] DO

             BEGIN
              WRITE(MONTH:2,'/',DAY:2,'/',YEAR:2,'  BANK ',BANK);
              WRITE(' FROM THE ');
              ACCOUNTCASE(RECORDHOLDER[I].ACCOUNT);
              WRITE('  ',RECORDHOLDER[I].AMOUNT:4:2,' WAS ');
              THECASE(RECORDHOLDER[I].TRANSACTION);
             END;
    END;

         IF RECORDHOLDER[I].MONTH <> RECORDHOLDER[I+1].MONTH THEN
              BEGIN
               FLAG := FALSE;
               WRITELN;
               WRITEARRAY;
               WRITELN;
               WRITE('*******************************');
               WRITELN('*********************************************');
              END;
     END;
               WRITELN;
               WRITEARRAY;
               WRITELN;
               WRITE('*******************************');
               WRITELN('*********************************************')
     END;
 BEGIN (*MAIN*)
     PAGE;
     READDATA;
     READRECORDS(0, COUNT);
     SORTRECORDS(COUNT);
     PRINTRECORDS(RECORDHOLDER,COUNT);
     WRITELN('************BEGINING BALANCE************');
     WRITEARRAY;
     WRITELN;
     WRITELN('*******************************************************');
     WRITELN;
     SORTPASS;
     END.
$ENTRY
   2.09      12.91       100.00      5000.00
  22.00     456.78      2000.00       500.00
 100.13      77.66       250.00      1100.00
03 12 89 A I D  400.00
04 04 89 C S W    0.13
04 01 89 B C W  256.78
12 25 88 A M W 4500.00
12 24 88 C S D 4500.00
01 01 89 B I W 2000
04 15 89 C C D 2000.00
02 28 89 C M W 1050.00
03 09 89 C S D 1050.00
12 22 88 A C W    2.34
02 22 89 C S D    2.34
01 31 89 A S W    0.09
02 14 89 A C D    0.09