Difference between revisions of "Asp (Classic)"
Cholmondely (talk | contribs) m (Tagged as Classic Ships) |
|||
(4 intermediate revisions by 3 users not shown) | |||
Line 17: | Line 17: | ||
[[Galactic Navy]] vessel designed and manufactured in government workshops, incorporating secret self-destruct devices which are primed to activate when the astrogation controls are used by unfamiliar hands. Integument has chameleon properties enabling the ship to assume effective camouflage in any type of environment. Intended for reconnaissance and the transport of high-ranking military personnel from combat it is very fast and maneuverable. Despite its hazardous nature it makes an ideal pirate vessel, primarily because of the speed, camouflage and high intensity Hassoni-Kruger Burst-lasers. The '''Asp II''' has room for powerful shield generators, but only one missile port. |
[[Galactic Navy]] vessel designed and manufactured in government workshops, incorporating secret self-destruct devices which are primed to activate when the astrogation controls are used by unfamiliar hands. Integument has chameleon properties enabling the ship to assume effective camouflage in any type of environment. Intended for reconnaissance and the transport of high-ranking military personnel from combat it is very fast and maneuverable. Despite its hazardous nature it makes an ideal pirate vessel, primarily because of the speed, camouflage and high intensity Hassoni-Kruger Burst-lasers. The '''Asp II''' has room for powerful shield generators, but only one missile port. |
||
+ | |||
+ | The Asp was designed by [[Ian Bell]]: "My contributions ... were: ... Various ship designs, the Asp was my favourite of these." |
||
== Dry Dock == |
== Dry Dock == |
||
− | During coding of Classic Elite 'dry-dock' code was used to view some of the ships during development (referred to as *VIEW on [http://www.iancgbell.clara.net/elite/text/index.htm Ian Bell's] web site). |
+ | During coding of Classic Elite 'dry-dock' code was used to view some of the ships during development (referred to as *VIEW on [http://www.iancgbell.clara.net/elite/text/index.htm Ian Bell's] web site). |
− | |||
− | The BBC Basic listing program (from Ian Bell's) website that generated the ship data for the Asp Mk II |
||
− | |||
− | <tt> |
||
− | 5 REM - - - A S P - - - |
||
− | 7 MODE 3 |
||
− | 10 Q%=2 |
||
− | 15 F%=2^Q% |
||
− | 20 B%=&6000 \ arrive here from line 255 if power 2 given |
||
− | 40 DPT=&18 |
||
− | 50 MAXLI=25 |
||
− | 60 P1=22:P2=31:P3=3:P5=8 |
||
− | 70 GUN=8 |
||
− | 120 GOSUB 1000 |
||
− | 140 GOSUB 2000 |
||
− | 200 PRINT'" Nodes " |
||
− | 210 FOR I%=0 TO N%: |
||
− | PRINT I%,FNR(V(I%,0)),FNR(V(I%,1)),FNR(V(I%,2)): |
||
− | NEXT |
||
− | 211 PRINT 2*A*S1" "2*A*S2 |
||
− | 212 REM FOR I%=0 TO N%: FOR J%=I% TO N%: |
||
− | REM PRINT I%,J%,,FNR(SQR((V(I%,0)-V(J%,0))^2+(V(I%,1)-V(J%,1))^2+(V(I%,2)-V(J%,2))^2)): |
||
− | REM NEXT, |
||
− | 230 PRINT'" Normals * 2^";Q%' |
||
− | 240 FOR I%=0 TO M%: |
||
− | PRINT I%,FNR(U(I%,0)),FNR(U(I%,1)),FNR(U(I%,2)): |
||
− | NEXT |
||
− | 250 INPUT'"Power of two? "A$: |
||
− | IF A$<>"": Q%=VALA$: CLEAR: F%=2^Q%: PRINT'': GOTO 20 |
||
− | 260 MODE1 |
||
− | |||
− | 300 REM Pack Nodes |
||
− | 310 RESTORE 5000 |
||
− | 320 W%=20 |
||
− | 330 DIM W%(N%,3) |
||
− | |||
− | 340 FOR I%= 0 TO N%: |
||
− | PROCC(V(I%,0),V(I%,1),V(I%,2),31): |
||
− | PROCB(A0):PROCB(A1):PROCB(A2):PROCB(A3) |
||
− | 350 READ A0,A1,A2,A3 |
||
− | 370 PROCB(16*A0+A1):PROCB(16*A2+A3) |
||
− | 372 W%(I%,0)=A0: |
||
− | W%(I%,1)=A1: |
||
− | W%(I%,2)=A2: |
||
− | W%(I%,3)=A3 |
||
− | 380 NEXT |
||
− | |||
− | 400 REM Pack Node Walk |
||
− | 410 RESTORE 6000 |
||
− | 414 P=18 |
||
− | 420 B%?3 = W% MOD256: |
||
− | B%?16 = W% DIV256 |
||
− | 430 READ L% |
||
− | 440 FOR I%=1 TO L%: |
||
− | READ P,B0,B1 |
||
− | 442 C%=0: |
||
− | A0=FNMATCH(B0,B1): |
||
− | C%=C%+1: |
||
− | A1=FNMATCH(B0,B1) |
||
− | 450 PROCB(P):PROCB(16*A0+A1):PROCB(4*B0):PROCB(4*B1) |
||
− | 460 NEXT \ line 440 |
||
− | |||
− | 500 REM Pack Normals |
||
− | 520 B%?4 =W% MOD256:B%?17 =W% DIV256 |
||
− | 540 FOR I%=0 TO M%: |
||
− | PROCC(U(I%,0),U(I%,1),U(I%,2),31): |
||
− | PROCB(A3):PROCB(A0):PROCB(A1):PROCB(A2): |
||
− | NEXT |
||
− | 570 B%?6=4*GUN: |
||
− | B%?8=6*N%+6: |
||
− | B%?9=L%: |
||
− | B%?12=M%*4+4: |
||
− | B%?18=Q%: |
||
− | B%?5=4*MAXLI+1: |
||
− | B%?13=DPT |
||
− | 580 OSCLI("S.ASP "+STR$~B%+" "+STR$~(B%+W%)): \ save file with info |
||
− | PRINT~W% |
||
− | 600 END |
||
− | |||
− | 900 DEFPROCN(I%,I,J,K) |
||
− | 910 U0=V(J,0)-V(I,0):U1=V(J,1)-V(I,1):U2=V(J,2)-V(I,2) |
||
− | 920 V0=V(K,0)-V(I,0):V1=V(K,1)-V(I,1):V2=V(K,2)-V(I,2) |
||
− | 930 W0=U1*V2-U2*V1: |
||
− | W1=U2*V0-U0*V2: \ w is vector cross of: u x v |
||
− | W2=U0*V1-U1*V0 |
||
− | 940 S=SQR(W0*W0+W1*W1+W2*W2): |
||
− | W0=W0/S:W1=W1/S:W2=W2/S \ normalsize |
||
− | 950 R=W0*V(I,0)+W1*V(I,1)+W2*V(I,2): |
||
− | W0=R*F%*W0:W1=R*F%*W1:W2=R*F%*W2 |
||
− | 960 U(I%,0)=W0:U(I%,1)=W1:U(I%,2)=W2 |
||
− | 990 ENDPROC |
||
− | |||
− | 1000 REM NODES -Put coords into V(,) |
||
− | 1005 REM No. is... |
||
− | 1010 N%=18 |
||
− | 1050 DIM V(N%,2),P(2) |
||
− | 1060 A=45:WF=.3 |
||
− | 1070 S1=SIN(PI/5): |
||
− | S2=SIN(2*PI/5): |
||
− | C1=COS(PI/5): |
||
− | C2=COS(2*PI/5) |
||
− | 1080 CA=((S2/S1)-1)/2/S1: |
||
− | D=ACS(CA): |
||
− | SA=SIN(D) |
||
− | 1090 H1=2*A*S1*SA: |
||
− | A1=A*S2/S1 |
||
− | 1092 CB=((S2/S1)-C1)/(1+C1): |
||
− | SB=SIN(ACS(CB)): |
||
− | H2=A*(1+C1)*SB |
||
− | 1100 V(0,1)=-A1 |
||
− | 1110 V(1,1)=-A: |
||
− | V(1,2)=-H1 |
||
− | 1120 PROCROT(3,0,2*PI/5) |
||
− | 1130 PROCROT(2,1,2*PI/5) |
||
− | 1140 PROCROT(4,0,PI/5): |
||
− | V(4,2)=H2-H1 |
||
− | 1150 PROCROT(8,1,PI/5): |
||
− | V(8,2)=H2 |
||
− | 1160 PROCNX(5,2) |
||
− | 1170 PROCNX(6,3) |
||
− | 1180 PROCNX(7,4) |
||
− | 1190 PROCNX(9,8) |
||
− | 1200 CY=V(2,1): |
||
− | |||
− | FOR I%= 0TO 9: |
||
− | V(I%,1)=V(I%,1)-CY: |
||
− | NEXT |
||
− | 1210 PROCNY(12,1) |
||
− | 1220 PROCNY(10,4) |
||
− | 1230 PROCNY(11,7) |
||
− | |||
− | 1300 FOR I%=0 TO N%: |
||
− | V(I%,1)=V(I%,1)*WF: |
||
− | NEXT |
||
− | 1320 PROCDET(13,5,1,12,.3,.3) |
||
− | 1330 PROCDET(14,5,1,12,.3,.55) |
||
− | 1340 PROCNY(15,14) |
||
− | 1350 PROCNX(16,13) |
||
− | 1360 PROCNX(17,14) |
||
− | 1370 PROCNX(18,15) |
||
− | 1400 RETURN |
||
− | |||
− | 1700 DEFPROCDET(R%,S%,T%,U%,M,N): |
||
− | LOCALI% |
||
− | 1710 FOR I%=0 TO 2: |
||
− | V(R%,I%)=V(S%,I%)+M*(V(T%,I%)-V(S%,I%))+N*(V(U%,I%)-V(S%,I%)): |
||
− | NEXT |
||
− | 1720 ENDPROC |
||
− | |||
− | 1800 DEF PROCNX(I%,J%): |
||
− | V(I%,0)=-V(J%,0): |
||
− | V(I%,1)=V(J%,1): |
||
− | V(I%,2)=V(J%,2): |
||
− | ENDPROC |
||
− | |||
− | 1850 DEF PROCNY(I%,J%): |
||
− | V(I%,1)=-V(J%,1): |
||
− | V(I%,2)=V(J%,2): |
||
− | V(I%,0)=V(J%,0): |
||
− | ENDPROC |
||
− | |||
− | 1900 DEF PROCROT(I%,J%,B): |
||
− | V(I%,0)=V(J%,0)*COS(B)-V(J%,1)*SIN(B): |
||
− | V(I%,1)=V(J%,1)*COS(B)+V(J%,0)*SIN(B): |
||
− | V(I%,2)=V(J%,2): |
||
− | ENDPROC |
||
− | |||
− | 2000 REM NORMALS - Put into U(,) |
||
− | 2004 REM No. is... |
||
− | 2005 M%=11 |
||
− | 2010 DIM U(M%,2) |
||
− | 2015 RESTORE 3000 |
||
− | 2020 FOR I%=0 TO M%: |
||
− | READ I,J,K: |
||
− | PROCN(I%,I,J,K): |
||
− | NEXT |
||
− | 2090 RETURN |
||
− | 2099 REM Three Nodes for each Normal \ triangles |
||
− | 3000 DATA 0,8,9 |
||
− | 3010 DATA 0,2,3 |
||
− | 3020 DATA 0,5,6 |
||
− | 3030 DATA 10,11,12 |
||
− | 3040 DATA 8,9,10 |
||
− | 3050 DATA 5,6,12 |
||
− | 3060 DATA 2,3,12 |
||
− | 3070 DATA 3,4,8 |
||
− | 3080 DATA 6,7,9 |
||
− | 3090 DATA 3,8,10 |
||
− | 3100 DATA 6,9,11 |
||
− | 3110 DATA 1,2,5 |
||
− | |||
− | 4990 REM Four Normals associated to each node \ cross |
||
− | 5000 DATA 0,1,2,2 \ look at this data first |
||
− | 5010 DATA 1,2,11,11 |
||
− | 5020 DATA 1,6,11,11 |
||
− | 5030 DATA 1,6,7,9 |
||
− | 5040 DATA 0,1,7,7 |
||
− | 5050 DATA 2,5,11,11 |
||
− | 5060 DATA 2,5,8,10 |
||
− | 5070 DATA 0,2,8,8 |
||
− | 5080 DATA 0,4,7,9 |
||
− | 5090 DATA 0,4,8,10 |
||
− | 5100 DATA 3,4,6,9 |
||
− | 5110 DATA 3,4,5,10 |
||
− | 5120 DATA 3,5,6,11 |
||
− | 5130 DATA 11,11,11,11 |
||
− | 5140 DATA 11,11,11,11 |
||
− | 5150 DATA 11,11,11,11 |
||
− | 5160 DATA 11,11,11,11 |
||
− | 5170 DATA 11,11,11,11 |
||
− | 5180 DATA 11,11,11,11 |
||
− | |||
− | 6000 REM NODE WALK |
||
− | 6005 REM No. Lines is... |
||
− | 6008 DATA 29 |
||
− | 6009 REM Pr No1 No2 |
||
− | 6010 DATA P1, 0,1 |
||
− | 6020 DATA P1, 0,4 |
||
− | 6030 DATA P1, 0,7 |
||
− | 6040 DATA 31, 1,2 |
||
− | 6050 DATA 31, 2,3 |
||
− | 6060 DATA P5, 3,8 |
||
− | 6070 DATA 31, 8,9 |
||
− | 6080 DATA P5,6,9 |
||
− | 6090 DATA 31,5,6 |
||
− | 6100 DATA 31,1,5 |
||
− | 6110 DATA P2,3,4 |
||
− | 6120 DATA P2,4,8 |
||
− | 6130 DATA P2,6,7 |
||
− | 6140 DATA P2,7,9 |
||
− | 6150 DATA 31,2,12 |
||
− | 6160 DATA 31,5,12 |
||
− | 6170 DATA P1,10,12 |
||
− | 6180 DATA P1,11,12 |
||
− | 6190 DATA P1,10,11 |
||
− | 6200 DATA P2,6,11 |
||
− | 6210 DATA P2,9,11 |
||
− | 6220 DATA P2,3,10 |
||
− | 6230 DATA P2,8,10 |
||
− | 6240 DATA P3,13,14 |
||
− | 6250 DATA P3,14,15 |
||
− | 6260 DATA P3,15,13 |
||
− | 6270 DATA P3,16,17 |
||
− | 6280 DATA P3,17,18 |
||
− | 6290 DATA P3,18,16 |
||
− | 7000 DEF FNMATCH(J%,K%) |
||
+ | * A movie for the Asp Mk. II generated using *VIEW run under the BBC emulator BeebEm3 is available [http://www.box.net/shared/xgbcuyijr4 here]. |
||
− | 7010 IF W%(J%,C%)=W%(K%,0) THEN =W%(K%,0) |
||
− | 7020 IF W%(J%,C%)=W%(K%,1) THEN =W%(K%,1) |
||
− | 7030 IF W%(J%,C%)=W%(K%,2) THEN =W%(K%,2) |
||
− | 7040 IF W%(J%,C%)=W%(K%,3) THEN =W%(K%,3) |
||
− | 7050 C%=C%+1: |
||
− | GOTO 7010 |
||
− | 10000 DEF FNR(X)=" "+STR$(INT(X+.5)) |
||
+ | * A movie for a slightly earlier version (different exhausts and no prominent gun, is available [http://www.box.net/shared/4dmj7v641p here]. |
||
− | 11000 DEF PROCB(X): |
||
+ | ==Links== |
||
− | W%?B%=INT(X+.5): |
||
+ | * [[Classic_Elite_ships|Classic Elite ships]] |
||
− | W%=W%+1: |
||
− | ENDPROC |
||
− | 12000 DEF PROCC(X0,X1,X2,X3): |
||
+ | [[Category:Classic]][[Category:Classic ships]] |
||
− | A0=INT(X0+.5): |
||
− | A1=INT(X1+.5): |
||
− | A2=INT(X2+.5) |
||
− | 12010 A3=X3: |
||
− | IF A0<0 A3=A3 OR 128:A0=-A0 |
||
− | 12020 IF A1<0 A3=A3 OR 64:A1=-A1 |
||
− | 12030 IF A2<0 A3=A3 OR 32:A2=-A2 |
||
− | 12040 ENDPROC |
||
− | <\tt> |
||
− | [[Category:Classic]] |
Latest revision as of 10:52, 11 April 2021
Overview
Galactic Navy vessel designed and manufactured in government workshops, incorporating secret self-destruct devices which are primed to activate when the astrogation controls are used by unfamiliar hands. Integument has chameleon properties enabling the ship to assume effective camouflage in any type of environment. Intended for reconnaissance and the transport of high-ranking military personnel from combat it is very fast and maneuverable. Despite its hazardous nature it makes an ideal pirate vessel, primarily because of the speed, camouflage and high intensity Hassoni-Kruger Burst-lasers. The Asp II has room for powerful shield generators, but only one missile port.
The Asp was designed by Ian Bell: "My contributions ... were: ... Various ship designs, the Asp was my favourite of these."
Dry Dock
During coding of Classic Elite 'dry-dock' code was used to view some of the ships during development (referred to as *VIEW on Ian Bell's web site).
- A movie for the Asp Mk. II generated using *VIEW run under the BBC emulator BeebEm3 is available here.
- A movie for a slightly earlier version (different exhausts and no prominent gun, is available here.