PROGRAM bambi; (* Update Log: Lee Bradley, Sysop, Z-Node #12 Modem: (203) 665-1100 Date: 09/30/90 Compile End address = 3000. Added frame procedure, reducing code size. Made DELA, DELA1 constants. Using mixed case in title. Renumbered frame index. Added Xerox/Royal cursor on/off code. You may uncomment/comment and/or change for your terminal and recompile. Changed delay logic - user can control the speed now Added MyZ80 cursor on/off code - 7/3/2010 Added ANSI cursor on/off code - 5/30/2017 *) VAR bambi,godzilla : TEXT; deer : ARRAY[1..10] OF STRING[40]; foot : ARRAY[1..22] OF STRING[60]; i,j : BYTE; idelay : INTEGER; PROCEDURE cursoroff; BEGIN (* write(^[^R); *) (* Royal alphaTronic specific *) (* write(^E' '); *) (* Xerox specific *) (* write(^['"6'); *) (* MyZ80 *) write(^['[?25l'); (* ANSI *) END; PROCEDURE cursoron; BEGIN (* write(^[^S); *) (* Royal alphaTronic specific *) (* write(^E^B); *) (* Xerox specific *) (* write(^['"3'); *) (* MyZ80 *) write(^['[?25h'); (* ANSI *) END; PROCEDURE frame; BEGIN FOR i:=1 TO 10 DO READLN(bambi,deer[i]); GotoXY(1,11); FOR i:=1 TO 10 DO BEGIN WRITE(Deer[i]); ClrEol; WRITELN; END; END; BEGIN writeln; repeat write('Speed level (1-fast, 30-slow): '); readln(idelay); until idelay in [1..30]; idelay:=idelay*1000; ASSIGN(bambi,'BAMBI.DAT'); RESET(bambi); ClrScr; cursoroff; ASSIGN(godzilla,'GODZILLA.DAT'); RESET(godzilla); FOR i := 1 TO 22 DO READLN(godzilla,foot[i]); CLOSE(godzilla); GotoXY(1,8); WRITELN(' B a m b i M e e t s G o d z i l l a'); WRITELN; Delay(idelay); frame; Delay(idelay); (* #1 *) FOR j := 2 TO 3 DO frame; Delay(idelay); frame; Delay(idelay); (* #4 *) frame; Delay(idelay); (* #5 *) FOR j := 6 TO 14 DO BEGIN frame; IF j>10 THEN Delay(idelay); END; Delay(idelay); FOR j := 15 TO 34 DO frame; Delay(idelay); frame; Delay(idelay); (* #35 *) frame; Delay(idelay); (* #36 *) frame; Delay(idelay); (* #37 *) FOR j := 1 TO 9 DO BEGIN Delay(idelay); GotoXY(1,1); FOR i := 21-j TO 20 DO BEGIN WRITE(Foot[i]); ClrEol; WRITELN; END; END; frame; (* #38 *) FOR j := 10 TO 20 DO BEGIN Delay(idelay); GotoXY(1,1); FOR i := 21-j TO 20 DO BEGIN WRITE(Foot[i]); ClrEol; WRITELN; END; END; GotoXY(1,1); FOR i := 1 TO 22 DO BEGIN WRITE(Foot[i]); ClrEol; WRITELN; END; cursoron; END.