1
0
mirror of https://github.com/PDP-10/stacken.git synced 2026-02-06 08:14:51 +00:00
Files
Lars Brinkhoff 6e18f5ebef Extract files from tape images.
Some tapes could not be extracted.
2021-01-29 10:47:33 +01:00

140 lines
2.6 KiB
Plaintext

BEGIN "SIMPLE PERSPECTIVE"
DEFINE EP="EXTERNAL PROCEDURE",EIP="EXTERNAL INTEGER PROCEDURE";
DEFINE CRLF="('15&'12)",REF="REFERENCE",INT="INTEGER";
EIP DINI(INT N,CH;REF INT AR;INT S);
EIP DGET;
EP DOPEN(INT N);
EIP DPOST(INT N);
EP DDONE;
EIP DVECT3(REAL X1,Y1,Z1,X2,Y2,Z2);
EIP DMOVE3(REAL X1,Y1,Z1);
EIP DDRAW3(REAL X1,Y1,Z1);
EP DPUSH(INT NAME);
EP DPOP(INT NAME);
EP DAPPLY(REF REAL AR;INT NAME);
EP DCOMPOSE(REF REAL AR;INT NAME);
REQUIRE "REL:DISSAI" LOAD!MODULE;
INTEGER B;;
REAL EYEX,EYEY,EYEZ,CX,CY,CZ,T,X,Y,Z;
REAL ARRAY M,IDENTITY[1:4,1:4];
INTEGER ARRAY D[1:1];
OPEN(1,"TTY",0,1,1,100,B,B);
DINI(4,10,D[1],0);
DGET;
COMMENT SET UP IDENTITY MATRIX;
FOR B_1 STEP 1 UNTIL 4 DO IDENTITY[B,B]_1;
COMMENT GO ROUND IN AN INFINITE LOOP;
WHILE TRUE DO BEGIN "WIEV"
ARRTRAN(M,IDENTITY); "THE 'P' MATRIX"
M[1,1]_M[2,2]_COSD(30)/SIND(30);
DAPPLY(M[1,1],0); "AND MAKE IT CURRENT TRANSFORM"
COMMENT INPUT THE WIEVING POINT AND THE DIRECTION
COSINES;
OUTSTR("WIEVPOINT: ");
EYEX_REALIN(1);
EYEY_REALIN(1);
EYEZ_REALIN(1);
OUTSTR("LOOKING TOWARDS POINT: ");
CX_REALIN(1)-EYEX;
CY_REALIN(1)-EYEY;
CZ_REALIN(1)-EYEZ;
T_SQRT(CX*CX+CY*CY+CZ*CZ); "LENGTH OF THE VECTOR"
CX_CX/T;
CY_CY/T;
CZ_CZ/T;
T_SQRT(CX*CX+CZ*CZ);
COMMENT NOW MAKE R1;
ARRTRAN(M,IDENTITY); "THIS IS ACTUALLY R2"
M[2,2]_M[3,3]_T;
M[3,2]_-(M[2,3]_CY);
DCOMPOSE(M[1,1],0);
COMMENT THIS IS R1 THOUGH;
ARRTRAN(M,IDENTITY);
M[1,1]_M[3,3]_-CZ/T;
M[3,1]_-(M[1,3]_CX/T);
DCOMPOSE(M[1,1],0);
COMMENT THE CONCATENATION OF T AND L;
ARRTRAN(M,IDENTITY);
M[3,3]_-1;
M[4,1]_-EYEX;
M[4,2]_-EYEY;
M[4,3]_EYEZ;
DCOMPOSE(M[1,1],0); "COCLUDES THE TRANSFORMS"
BEGIN "FIGURE"
DOPEN(1);
FOR Z_-1,0 DO BEGIN
DMOVE3(-0.5,-1,Z);
DDRAW3(-0.5,1,Z);
DDRAW3(0,2,Z);
DDRAW3(0.5,1,Z);
DDRAW3(0.5,-1,Z);
DDRAW3(-0.5,-1,Z);
END;
FOR X_-0.5,0.5 DO
FOR Y_-1,1 DO BEGIN
DMOVE3(X,Y,-1);
DDRAW3(X,Y,0);
END;
DVECT3(0,2,-1,0,2,0);
COMMENT NEXT BODY OF THE CHURCH;
FOR Z_0,1.5 DO BEGIN
DMOVE3(-1,-1,Z);
DDRAW3(-1,0,Z);
DDRAW3(0,0.5,Z);
DDRAW3(1,0,Z);
DDRAW3(1,-1,Z);
DDRAW3(-1,-1,Z);
END;
FOR X_-1,1 DO
FOR Y_-1,0 DO BEGIN
DMOVE3(X,Y,0);
DDRAW3(X,Y,1.5);
END;
DVECT3(0,0.5,0,0,0.5,1.5);
FOR X_1,1.5 DO BEGIN
DMOVE3(X,-1,0.5);
DDRAW3(X,-0.5,0.5);
DDRAW3(X,-0.25,0.75);
DDRAW3(X,-0.5,1);
DDRAW3(X,-1,1);
DDRAW3(X,-1,0.5);
END;
FOR Z_0.5,1 DO
FOR Y_-1,-0.5 DO BEGIN
DMOVE3(1,Y,Z);
DDRAW3(1.5,Y,Z);
END;
DVECT3(1,-0.25,0.75,1.5,-0.25,0.75);
DPOST(1); DDONE;
END "FIGURE";
END "WIEV";
END;