Сегодня же - Международный день анимации ! )
ASCMAN.PAS(SAV) - на прилепленном образе,
что-бы запустить и посмотреть в динамике -
наваял от настроения, четыре кадра-примитив.
Но всё по теме - написано на ПАСКАЛЕ! )
Код:
PROGRAM ASCMAN;
/* ARCHIVE.PDP-11.ORG.RU */
PROCEDURE GOTOXY(XX,YY: INTEGER);
BEGIN
WRITE(CHR(27),'Y',CHR(32+YY),CHR(32+XX));
END;
PROCEDURE WAIT(T: INTEGER);
VAR WT: INTEGER;
BEGIN
IF T>0 THEN FOR WT:=T DOWNTO 0 DO;
END;
PROCEDURE PROMOTKA(S: INTEGER);
VAR P: INTEGER;
BEGIN
IF S>0 THEN FOR P:=1 TO S DO WRITELN;
END;
PROCEDURE POS1(X,Y: INTEGER);
BEGIN
IF (X>=0)AND(Y>=0) THEN BEGIN
GOTOXY(X,Y);WRITE(' ## ');
GOTOXY(X,Y+1);WRITE(' # # ');
GOTOXY(X,Y+2);WRITE(' # # ');
GOTOXY(X,Y+3);WRITE(' ## ');
GOTOXY(X,Y+4);WRITE(' ######## ');
GOTOXY(X,Y+5);WRITE(' # # # # ');
GOTOXY(X,Y+6);WRITE(' # # # # ');
GOTOXY(X,Y+7);WRITE(' # # ');
GOTOXY(X,Y+8);WRITE(' ## ');
GOTOXY(X,Y+9);WRITE(' ## ## ');
GOTOXY(X,Y+10);WRITE(' # # ');
GOTOXY(X,Y+11);WRITE(' ## ## ');
END;
END;
PROCEDURE POS2(X,Y: INTEGER);
BEGIN
IF (X>=0)AND(Y>=0) THEN BEGIN
GOTOXY(X,Y);WRITE(' ## ');
GOTOXY(X,Y+1);WRITE(' # # ');
GOTOXY(X,Y+2);WRITE(' # # ');
GOTOXY(X,Y+3);WRITE(' ## ');
GOTOXY(X,Y+4);WRITE(' ######## ');
GOTOXY(X,Y+5);WRITE('# # # # ');
GOTOXY(X,Y+6);WRITE('## # # ## ');
GOTOXY(X,Y+7);WRITE(' # # ');
GOTOXY(X,Y+8);WRITE(' ## ');
GOTOXY(X,Y+9);WRITE(' ## ## ');
GOTOXY(X,Y+10);WRITE(' # # ');
GOTOXY(X,Y+11);WRITE(' ## ## ');
END;
END;
PROCEDURE POS3(X,Y: INTEGER);
BEGIN
IF (X>=0)AND(Y>=0) THEN BEGIN
GOTOXY(X,Y);WRITE(' ## ');
GOTOXY(X,Y+1);WRITE(' # # ');
GOTOXY(X,Y+2);WRITE(' # # ');
GOTOXY(X,Y+3);WRITE(' ## ');
GOTOXY(X,Y+4);WRITE(' ######## ');
GOTOXY(X,Y+5);WRITE(' # # # # ');
GOTOXY(X,Y+6);WRITE('## # # ## ');
GOTOXY(X,Y+7);WRITE(' # # ');
GOTOXY(X,Y+8);WRITE(' ## ');
GOTOXY(X,Y+9);WRITE(' ## ## ');
GOTOXY(X,Y+10);WRITE(' # # ');
GOTOXY(X,Y+11);WRITE(' ## ## ');
END;
END;
BEGIN
PROMOTKA(24);
REPEAT
POS1(20,10);
WAIT(3000);
POS2(20,10);
WAIT(3000);
POS1(20,10);
WAIT(3000);
POS3(20,10);
WAIT(3000);
UNTIL 0>0;
END.
SHKEYS.PAS(SAV) - и до кучи там же, ещё одна программка на ПАСКАЛЕ
- выводит 10-ые номера и соотв. им символы.
ПАСКАЛЬ опять же )
Код:
PROGRAM SHOWKEYS;
VAR
INKEY ORIGIN 177560B: INTEGER;
KEY ORIGIN 177562B: INTEGER;
I: INTEGER;
/* SHKEYS v0.1a */
FUNCTION KEYPRESS: BOOLEAN;
BEGIN
KEYPRESS:=FALSE;
INKEY:=0;
IF(INKEY AND 128)<>0 THEN KEYPRESS:=TRUE;
END;
BEGIN
I:=0;WRITELN;
WRITELN('[ Номер \ Символ ]');
FOR I:=32 TO 127 DO WRITE('[ I=',I:2,' \ ',CHR(I),' ]');
REPEAT
WRITELN;
WRITELN('[',CHR(14),' tEST KLAWIATURY ',CHR(15),']');
REPEAT
UNTIL KEYPRESS;
WRITELN('[ 177562=',KEY:3,'. \ SYM=',CHR(KEY):3,' ]');
IF KEY=3 THEN
BEGIN
WRITELN(CHR(15),'[ SHKEYS v0.1a ]');
/*$C EMT ^O350 */
END;
UNTIL 0>0;
END.
(! Важно) Образ дискеты загружается только в эмуляторе ДВК - Patrona, но данные читаются везде конечно! )
На дискете присутствуют PASY2K.(SAV,OBJ) - пропатченный и поправленный form'ом и PASDWK.(SAV,OBJ) - OMSI Pascal.