; Extracted from the SAILDART page-dump (SAILDART [SW,BGB]) by stripping the ; per-line record markers, leaving the MACRO-10 / SAIL source as listed. ; Upstream: saildart.org. Provenance: see README in this folder. ; BEGIN "SHIPS" REQUIRE "ABBREV[SYS,BGB]" SOURCEFILE; REQUIRE "DPYIII[SYS,BGB]" SOURCEFILE; REQUIRE "SAITRG[SYS,BGB]" SOURCEFILE; DEFINE SCALE="30"; PROCEDURE VECTOR (REAL L,DIR); BEGIN REAL DX,DY,W; W _ *DIR/64; DX _ SCALE * L * SIN(W); DY _ SCALE * L * COS(W); RVECT (DX,DY); END; PROCEDURE SHIP1; BEGIN AIVECT(0,12*SCALE); VECTOR(4,'70); VECTOR(17,'100); VECTOR(4,'60); VECTOR(6,'0); VECTOR(4,'160); VECTOR(3,'140); VECTOR(4,'120); VECTOR(6,'100); VECTOR(4,'20); VECTOR(3,'40); VECTOR(3,'140); VECTOR(17,'0); VECTOR(4,'10); END; PROCEDURE SHIP2; BEGIN AIVECT(0,12*SCALE); VECTOR(4,'70); VECTOR(19,'100); VECTOR(3,'30); VECTOR(6,'0); VECTOR(3,'150); VECTOR(3,'140); VECTOR(3,'130); VECTOR(6,'100); VECTOR(3,'50); VECTOR(3,'40); VECTOR(3,'140); VECTOR(19,'0); VECTOR(4,'10); END; PROCEDURE SHIP3; BEGIN AIVECT(0,12*SCALE); VECTOR(4,'70); VECTOR(19,'100); VECTOR(3,'40); VECTOR(6,'0); VECTOR(4,'152); VECTOR(2,'140); VECTOR(4,'126); VECTOR(6,'100); VECTOR(6,'40); VECTOR(3,'140); VECTOR(19,'0); VECTOR(4,'10); END; PROCEDURE SHIP4; BEGIN AIVECT(0,12*SCALE); VECTOR(4,'70); VECTOR(19,'100); VECTOR(4,'40); VECTOR(8,'165); VECTOR(2.5,'140); VECTOR(8,'112); VECTOR(6,'40); VECTOR(2.5,'140);VECTOR(19,'0); VECTOR(4,'10); END; PROCEDURE SHIP5; BEGIN AIVECT(0,12*SCALE); VECTOR(4,'70); VECTOR(19,'100); VECTOR(2,'60); VECTOR(4,'20); VECTOR(6,'160); VECTOR(4,'140); VECTOR(6,'120); VECTOR(4,'60); VECTOR(2,'20); VECTOR(4,'40); VECTOR(3,'140); VECTOR(19,'0); VECTOR(4,'10); END; PROCEDURE SHIP0; BEGIN REAL Q; Q _ SCALE/2; AIVECT(4*Q,21*Q); AVECT(-4*Q,21*Q); AVECT(-4*Q,-10*Q); AVECT(-11*Q,-10*Q); AVECT(-11*Q,-23*Q); AIVECT(-11*Q,-25*Q);DPYSST("DEATH ZONE"); AIVECT(-11*Q,-23*Q); AVECT(+11*Q,-23*Q); AVECT(+11*Q,-10*Q); AVECT( 4*Q,-10*Q); AVECT( 4*Q, 21*Q); END; INTEGER ARRAY DPYBUF[1:1000]; DEFINE SS(X)= "DPYSET(DPYBUF);SHIP0;AIVECT(0,12*SCALE);X;DPYOUT(1);"; WHILE TRUE DO BEGIN SS(SHIP1); INCHRW; SS(SHIP2); INCHRW; SS(SHIP3); INCHRW; SS(SHIP4); INCHRW; SS(SHIP5); INCHRW; END; END "SHIPS";