home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / sourcecode / demos / techno.amos / techno.amosSourceCode < prev   
AMOS Source Code  |  1989-11-29  |  18KB  |  639 lines

  1. Set Buffer 10
  2. Close Editor : Close Workbench 
  3. NUM_PTS=8
  4. NUM_LINES=12
  5. Dim X(NUM_PTS),Y(NUM_PTS),Z(NUM_PTS)
  6. Dim XP(NUM_PTS),YP(NUM_PTS),ZP(NUM_PTS)
  7. Dim SYN#(359)
  8. Dim C0S#(359)
  9. Dim LINEA(NUM_LINES),LINEB(NUM_LINES)
  10. Global NUM_PTS,NUM_LINES,DIST#,XCEN,YCEN
  11. Global X(),Y(),Z(),XP(),YP(),LINEA(),LINEB()
  12. Global SYN#(),C0S#(),XSCALE#,YSCALE#,ZSCALE#,SCN,SCN1,X,Y
  13. Palette ,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  14. SET_UP
  15. MAIN_LOOP
  16. LINE_VECTORS
  17. OMEGA_VECTORS
  18. MAD_DOTS[15]
  19. _LOADING
  20. Procedure MAIN_LOOP
  21.    TXT_WRITER["first",9]
  22.    BORING_TD
  23.    INNER_SPACE
  24.    For T=1 To 5
  25.       Screen Open T,320,200,16,Lowres
  26.       Curs Off : Flash Off : Cls 0
  27.    Next T
  28.    MEGA_TD[50,100,0,0,0,5,-4500,0,6000,$F,$5,$55F]
  29.    MEGA_TD[100,300,500,10,100,5,-6000,-300,6000,$F00,$500,$F55]
  30.    Rainbow Del 0
  31.    TXT_WRITER["third",6]
  32.    HAM_VECS
  33.    TXT_WRITER["second",4]
  34.    LINES[10,1,5,1]
  35.    LINES[10,2,1,1]
  36.    TXT_WRITER["fifth",9]
  37. End Proc
  38. Procedure INNER_SPACE
  39.    Palette $FFF,,,,,,,,,$FFF,$FFF,$FFF
  40.    Wait 4
  41.    Palette 0,,,,,,,,,$F,$A,$5
  42.     Extension_4_0054 190
  43.     Extension_4_0548 
  44.     Extension_4_00EC 0,0,0,0
  45.     Extension_4_0036 1,"reversed_cube",0,0,700,0,2000,0
  46.    Repeat 
  47.       Wait Vbl 
  48.        Extension_4_018C 1,800,800,800
  49.        Extension_4_053C 
  50.        Extension_4_0318 
  51.       Screen Swap 
  52.    Until Mouse Click
  53.     Extension_4_0090 1
  54.    Screen Swap : Cls Logic(0) : Screen Swap : Cls Logic(0)
  55. End Proc
  56. Procedure SET_UP
  57.    Set Sprite Buffer 150
  58.    Wait Vbl 
  59.    Curs Off : Flash Off : Hide : Wait Vbl : Fade 3 : Wait 15*3
  60.     Extension_4_04D6 "golden-ages#1:amos_system/"
  61.     Extension_4_0016 "3col_cube"
  62.     Extension_4_0016 "3col_cube1"
  63.     Extension_4_0016 "reversed_cube"
  64.     Extension_4_0054 200
  65.    Reserve As Chip Data 13,73406
  66.    Copy Start(14),Start(14)+52584 To Start(13)
  67.    Erase 14
  68.    L= Extension_5_00E4(Start(13),52584)
  69.    Sam Swapped
  70.    Sload Start(13),
  71.     Extension_1_022E 0,0,0,1
  72. End Proc
  73. Procedure TXT_WRITER[TXT$,NL]
  74.    Timer=0
  75.    Unpack 7 To 7
  76.    Palette 0,0,0,0,0,0,0,0
  77.    Screen Open 0,320,250,8,Lowres
  78.    Curs Off : Flash Off : Cls 0
  79.    Wait Vbl 
  80.    Dual Playfield 0,7
  81.    Palette 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  82.    Fade 1,0,$FFF,$F,,,,,,$FFF,$AAF,$88F,$55F,$11F,$E,$7,$2 : Wait 32
  83.    Screen 0 : Screen To Front 0
  84.    FIRST:
  85.    Data "  welcome welcome  "
  86.    Data "to the first part  "
  87.    Data "of the golden ages "
  88.    Data "  demo by omega   "
  89.    Data "   look listen    "
  90.    Data "    and enjoy     "
  91.    Data "                   "
  92.    Data " lets step inside "
  93.    Data "      a cube      "
  94.    SECOND:
  95.    Data " and now we have a "
  96.    Data "   collection of   "
  97.    Data " very rare antique "
  98.    Data "     mad lines     "
  99.    THIRD:
  100.    Data "        next      "
  101.    Data "         a        "
  102.    Data " three dimensional"
  103.    Data "      object      "
  104.    Data " displayed over a "
  105.    Data "    ham picture   "
  106.    FOURTH:
  107.    Data "  credits for the "
  108.    Data " line vector code "
  109.    Data "      go to       "
  110.    Data "   richard gale   "
  111.    Data " optimization by  "
  112.    Data "     utilizer     "
  113.    FIFTH:
  114.    Data "    now we have  "
  115.    Data "three dimensional"
  116.    Data "   line vectors  "
  117.    Data ""
  118.    Data ""
  119.    Data "  left button to "
  120.    Data " advance objects "
  121.    Data " right button to "
  122.    Data "       quit      "
  123.    SIXTH:
  124.    Data "  now some line  "
  125.    Data " vecs of our own "
  126.    Data " with drop shadow"
  127.    Data "     and also"
  128.    Data "  light sourcing "
  129.    Data " "
  130.    SEVENTH:
  131.    Data "   now for some  "
  132.    Data " reet smart bobs "
  133.    Data "  that come from "
  134.    Data "      wigan"
  135.    EIGHTH:
  136.    Data " credits for this"
  137.    Data "     madness     "
  138.    Data "  code cerberus  "
  139.    Data "  amazing music  "
  140.    Data " titled sunrider "
  141.    Data "    by ds ate    "
  142.    Data "  ideas and gfx  "
  143.    Data "    by lazarus   "
  144.    X=0 : Y=0 : OFF=1
  145.    Restore TXT$
  146.    For N=1 To NL
  147.       Read TXT$
  148.       For T=0 To Len(TXT$)
  149.          TX$=Upper$(TXT$)
  150.          T$=Mid$(TX$,OFF,1)
  151.          C=Asc(T$)
  152.          C=C-64
  153.          If C>0
  154.             Paste Bob X,Y,C
  155.          End If 
  156.          Add X,16
  157.          Add OFF,1
  158.          Wait Vbl : Wait Vbl 
  159.       Next T
  160.       Wait 25
  161.       Add Y,16 : X=10 : OFF=1
  162.    Next N
  163.    Fade 1,0,$FFF,$F
  164.    Repeat 
  165.       Wait Vbl 
  166.    Until Timer=>(NL-2*100)
  167.    Fade 1,,,,,,,0,0,0,0,0,0,0,0,0,0 : Wait 32
  168.    Wait Vbl 
  169.    Fade 1,0,$FFF,0 : Wait 16
  170.    Fade 1 : Wait 16 : Cls 0
  171. End Proc
  172. Procedure BORING_TD
  173.    Timer=0
  174.    Screen Open 0,320,200,16,Lowres
  175.    Curs Off : Flash Off : Cls 0
  176.    Double Buffer : Autoback 0
  177.     Extension_4_0054 190
  178.    Palette ,,,,,,,,,$F,$A,$5
  179.    Flash 9,"(fff,2)(00f,5)(005,5)(003,5)(000,5)"
  180.    Flash 10,"(fff,2)(00f,5)(005,5)(003,2)(000,1)"
  181.    Flash 11,"(fff,1)(00f,10)(005,10)(003,2)(000,1)"
  182.     Extension_4_0036 1,"3col_cube",0,0,1000,0,0,0
  183.    Timer=-370
  184.    Repeat 
  185.        Extension_4_018C 1,200,600,800
  186.       If Timer>=200
  187.           Extension_4_0100 0,-500
  188.       End If 
  189.       Wait Vbl 
  190.        Extension_4_053C 
  191.        Extension_4_0318 
  192.       Screen Swap 
  193.    Until Timer>=300
  194.    Timer=0
  195.    Flash Off 
  196.    Palette 0,,,,,,,,,$F,$A,$5,,,,,
  197.    Repeat 
  198.        Extension_4_018C 1,500,500,500
  199.        Extension_4_0100 0,500
  200.       Wait Vbl 
  201.        Extension_4_053C 
  202.        Extension_4_0318 
  203.       Screen Swap 
  204.    Until Timer>=108
  205.     Extension_4_0090 1
  206. End Proc
  207. Procedure MEGA_TD[XR,YR,ZR,FWSP,FR,SS,X,Y,Z,C1,C2,C3]
  208.     Extension_4_00EC 0,0,0,0
  209.    For T=1 To 5
  210.       Screen T : Palette ,,,,,,,,,C1,C2,C3
  211.    Next T
  212.     Extension_4_0036 1,"3col_cube1",X,Y,Z,0,0,0
  213.    Degree 
  214.    SCNS=1
  215.    Repeat 
  216.        Extension_4_00D4 1,1+Sin(S/4)*XR,1+Cos(S)*XR,Sin(S)*ZR
  217.        Extension_4_00D4 1,1+Sin(S/4)*XR,1+Cos(S)*YR,Sin(S)*ZR
  218.        Extension_4_0100 1,-FWSP+Sin(S)*FR
  219.       Screen To Front SCN : Screen SCNS
  220.        Extension_4_018C 1,1000,1000,1000
  221.        Extension_4_0318 
  222.       Add S,SS
  223.       Add SCNS,1,2 To 5
  224.       Add SCN,1,2 To 5
  225.       Wait Vbl 
  226.    Until Mouse Key=1
  227.     Extension_4_0090 1
  228.    Fade 1 : Wait 16
  229.    For T=1 To 5
  230.       Screen T : Cls 0
  231.    Next T
  232. End Proc
  233. Procedure HAM_VECS
  234.     Extension_4_00EC 0,0,0,0
  235.     Extension_4_00C2 0,"(0,0,0)(0,0,0)"
  236.    For T=1 To 5
  237.       Screen Close T
  238.    Next T
  239.    Screen Open 0,320,200,16,Lowres
  240.    Curs Off : Flash Off : Cls 0
  241.     Extension_4_0036 2,"3col_cube",-470,150,1300,0,0,0
  242.    Unpack 6 To 1
  243.    Colour 16,$5
  244.    Colour 17,$F
  245.    Colour 18,$5
  246.    Colour 19,$F
  247.    Colour 20,$5
  248.    Colour 21,$F
  249.    Colour 22,$5
  250.    Colour 23,$F
  251.    Colour 24,$5
  252.    Colour 25,$F
  253.    Colour 26,$5
  254.    Colour 27,$F
  255.    Colour 28,$5
  256.    Colour 29,$F
  257.    Colour 30,$5
  258.    Colour 31,$F
  259.    Flash 18,"(00f,5)(00c,5)(00a,5)(008,5)(006,5)(004,5)(002,5)(000,5)(002,5)(004,5)(006,5)(008,5)(00a,5)(00c,5)(00e,5)(00f,5)"
  260.    Flash 20,"(00f,5)(00c,5)(00a,5)(008,5)(006,5)(004,5)(002,5)(000,5)(002,5)(004,5)(006,5)(008,5)(00a,5)(00c,5)(00e,5)(00f,5)"
  261.    Flash 22,"(00f,5)(00c,5)(00a,5)(008,5)(006,5)(004,5)(002,5)(000,5)(002,5)(004,5)(006,5)(008,5)(00a,5)(00c,5)(00e,5)(00f,5)"
  262.    Flash 24,"(00f,5)(00c,5)(00a,5)(008,5)(006,5)(004,5)(002,5)(000,5)(002,5)(004,5)(006,5)(008,5)(00a,5)(00c,5)(00e,5)(00f,5)"
  263.    Flash 26,"(00f,5)(00c,5)(00a,5)(008,5)(006,5)(004,5)(002,5)(000,5)(002,5)(004,5)(006,5)(008,5)(00a,5)(00c,5)(00e,5)(00f,5)"
  264.    Flash 28,"(00f,5)(00c,5)(00a,5)(008,5)(006,5)(004,5)(002,5)(000,5)(002,5)(004,5)(006,5)(008,5)(00a,5)(00c,5)(00e,5)(00f,5)"
  265.    Flash 28,"(00f,5)(00c,5)(00a,5)(008,5)(006,5)(004,5)(002,5)(000,5)(002,5)(004,5)(006,5)(008,5)(00a,5)(00c,5)(00e,5)(00f,5)"
  266.    Flash 30,"(00f,5)(00c,5)(00a,5)(008,5)(006,5)(004,5)(002,5)(000,5)(002,5)(004,5)(006,5)(008,5)(00a,5)(00c,5)(00e,5)(00f,5)"
  267.    Flash 17,"(00f,1)(00c,1)(00a,1)(008,1)(006,1)(004,1)(002,1)(000,1)(002,1)(004,1)(006,1)(008,1)(00a,1)(00c,1)(00e,1)(00f,1)"
  268.    Flash 19,"(00f,1)(00c,1)(00a,1)(008,1)(006,1)(004,1)(002,1)(000,1)(002,1)(004,1)(006,1)(008,1)(00a,1)(00c,1)(00e,1)(00f,1)"
  269.    Flash 21,"(00f,1)(00c,1)(00a,1)(008,1)(006,1)(004,1)(002,1)(000,1)(002,1)(004,1)(006,1)(008,1)(00a,1)(00c,1)(00e,1)(00f,1)"
  270.    Flash 23,"(00f,1)(00c,1)(00a,1)(008,1)(006,1)(004,1)(002,1)(000,1)(002,1)(004,1)(006,1)(008,1)(00a,1)(00c,1)(00e,1)(00f,1)"
  271.    Flash 25,"(00f,1)(00c,1)(00a,1)(008,1)(006,1)(004,1)(002,1)(000,1)(002,1)(004,1)(006,1)(008,1)(00a,1)(00c,1)(00e,1)(00f,1)"
  272.    Flash 27,"(00f,1)(00c,1)(00a,1)(008,1)(006,1)(004,1)(002,1)(000,1)(002,1)(004,1)(006,1)(008,1)(00a,1)(00c,1)(00e,1)(00f,1)"
  273.    Flash 29,"(00f,1)(00c,1)(00a,1)(008,1)(006,1)(004,1)(002,1)(000,1)(002,1)(004,1)(006,1)(008,1)(00a,1)(00c,1)(00e,1)(00f,1)"
  274.    Flash 31,"(00f,1)(00c,1)(00a,1)(008,1)(006,1)(004,1)(002,1)(000,1)(002,1)(004,1)(006,1)(008,1)(00a,1)(00c,1)(00e,1)(00f,1)"
  275.    Screen To Front 1 : Screen 1
  276.    Screen Open 2,320,140,4,Lowres
  277.    Curs Off : Flash Off : Cls 0 : Screen Hide 2
  278.    Screen 0
  279.    Sprite 10,100,100,27
  280.    Channel 0 To Sprite 10
  281.    Amal 0,"L:Move200,0,200;Move-200,0,200;JL"
  282.    Amal On 
  283.    Repeat 
  284.       Screen Copy 0,0,0,128,140 To 2,0,0
  285.       Get Sprite 2,27,0,0 To 127,140
  286.        Extension_4_018C 2,1000,1000,1000
  287.       Wait Vbl 
  288.        Extension_4_053C 
  289.        Extension_4_0318 
  290.       Screen Swap 
  291.    Until Mouse Key=1
  292.    Sprite Off 10
  293.    Screen Close 0
  294.    Screen Close 1
  295.    Screen Close 2
  296. End Proc
  297. Procedure LINES[NBB,SP,A,OMEGA]
  298.    Degree 
  299.    CO=0
  300.    NBS=5
  301.    Default Palette ,$FFF,$FFF,0,666,333,111,0,,,$777,$555,$222,$111,$222,0,0,$FAA,$F00,$400,$F00,$F00,$F00,$400,$F00,$FAA,$F00,$400,$F00,$F00,$F00,$400
  302.    For I=0 To NBS
  303.       Screen Open I,320,256,2,Lowres : Flash Off : Curs Off : Cls 0
  304.    Next I
  305.    Dim TAX(190) : Dim TAY(190)
  306.    DG=2
  307.    T#=0
  308.    OP=10 : TU=0
  309.    For K=0 To 100 : TAX(K)=0 : TAY(K)=0 : Next K
  310.    If OMEGA=1
  311.       For X=0 To 300 Step 3
  312.          Sprite 10,220-290+X,100,28
  313.          Wait Vbl 
  314.       Next X
  315.    End If 
  316.    Repeat 
  317.       Inc S : If S=NBS Then S=0 : Add TU,NBS : If TU=(NBS*NBB) Then TU=0
  318.       Screen To Front S : Screen S
  319.       TAX(CO)=X : TAY(CO)=Y
  320.       Ink 0
  321.       Inc CO : If NP>=NBB-2 Then Draw TAX(S+TU),TAY(S+TU) To 100,TAX(S+TU) : If CO=NBS*NBB Then CO=0
  322.       D=Sin(SS)*100
  323.       X=150+D*Cos(T#)+D
  324.       Y=124+D*Sin(T#)+D
  325.       T#=T#+A
  326.       Add SS,SP
  327.       Inc NP
  328.       Ink 1
  329.       Draw X,Y To 100,X
  330.       Wait Vbl 
  331.    Until Mouse Key
  332.    Fade 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,, : Wait 32
  333.    For T=0 To NBS
  334.       Screen T : Cls 0
  335.    Next T
  336.    Fade 1 : Wait 16
  337.    If OMEGA=1
  338.       For X=0 To 300 Step 3
  339.          Sprite 10,230+X,,
  340.          Wait Vbl 
  341.       Next X
  342.       Sprite Off 10
  343.    End If 
  344. End Proc
  345. Procedure LINE_VECTORS
  346.    INIT_TRIG
  347.    While Screen<>-1
  348.       Screen Close Screen
  349.    Wend 
  350.    For X=0 To 2
  351.       Screen Open X,320,256,2,Lowres
  352.       Curs Off 
  353.       Flash Off 
  354.       Palette 0,$FFF
  355.    Next 
  356.    Do 
  357.       Screen To Front SCN
  358.       Screen SCN1
  359.       Cls 0
  360.       Add ROTX,4,0 To 359
  361.       Add ROTY,4,0 To 359
  362.       Add ROTZ,4,0 To 359
  363.       XSCALE#=XSCALE#+0.01
  364.       ZSCALE#=ZSCALE#+0.01
  365.       If ZSCALE#>5.5
  366.          ZSCALE#=5.5
  367.          XSCALE#=5.5
  368.       End If 
  369.       _CALC_IMAGE[ROTX,ROTY,ROTZ,TRANX,TRANY,TRANZ,XSCALE#,YSCALE#,ZSCALE#]
  370.       _DRAW_IMAGE[XCEN,YCEN]
  371.       Add SCN,1,0 To 2
  372.       Add SCN1,1,0 To 2
  373.       If Mouse Key=1 and Timer=>100
  374.          Add V,1,1 To 3 : Timer=0
  375.          On V Proc _INITIALIZE2,_INITIALIZE3,_INITIALIZE1
  376.       End If 
  377.       Exit If Mouse Key=2
  378.    Loop 
  379.    While Screen<>-1
  380.       Screen Close Screen
  381.    Wend 
  382.    TXT_WRITER["fourth",6]
  383.     Extension_4_057C 
  384.    While Screen<>-1
  385.       Screen Close Screen
  386.    Wend 
  387. End Proc
  388. Procedure INIT_TRIG
  389.    Degree 
  390.    _INITIALIZE1
  391.    TRANX=0 : TRANY=0 : TRANZ=150
  392.    ROTX=0 : ROTY=0 : ROTZ=0
  393.    XSCALE#=1
  394.    YSCALE#=1
  395.    ZSCALE#=1
  396.    SS=1
  397.    SCN=0
  398.    SCN1=1
  399.    Timer=0
  400.    For X=0 To 359
  401.       C0S#(X)=Cos(X)
  402.       SYN#(X)=Sin(X)
  403.    Next 
  404. End Proc
  405. Procedure _DRAW_IMAGE[X,Y]
  406.    For LINE=1 To NUM_LINES
  407.       PNT1=LINEA(LINE)
  408.       PNT2=LINEB(LINE)
  409.       Draw XP(PNT1)+X,YP(PNT1)+Y To XP(PNT2)+X,YP(PNT2)+Y
  410.    Next LINE
  411. End Proc
  412. Procedure _CALC_IMAGE[ROTX,ROTY,ROTZ,TRANX,TRANY,TRANZ,XSCALE#,YSCALE#,ZSCALE#]
  413.    CX#=C0S#(ROTX) : SX#=SYN#(ROTX)
  414.    CY#=C0S#(ROTY) : SY#=SYN#(ROTY)
  415.    CZ#=C0S#(ROTZ) : SZ#=SYN#(ROTZ)
  416.    For PNT=1 To NUM_PTS
  417.       X=X(PNT)*XSCALE#
  418.       Y=Y(PNT)*YSCALE#
  419.       Z=Z(PNT)*ZSCALE#
  420.       X1#=X*CZ#-Y*SZ#
  421.       Y1#=X*SZ#+Y*CZ#
  422.       Z1#=Z
  423.       X2#=X1#*CY#-Z1#*SY#
  424.       Y2#=Y1#
  425.       Z2#=X1#*SY#+Z1#*CY#
  426.       X3#=X2#
  427.       Y3#=Y2#*CX#+Z2#*SX#
  428.       Z3#=Z2#*CX#-Y2#*SX#
  429.       X4#=X3#+TRANX
  430.       Y4#=Y3#-TRANY
  431.       Z4#=Z3#-TRANZ
  432.       DD#=Z4#+DIST#
  433.       If DD#=0 Then DD#=1
  434.       X#=X4#*(DIST#/DD#)
  435.       Y#=Y4#*(DIST#/DD#)
  436.       XP(PNT)=X#
  437.       YP(PNT)=Y#
  438.    Next PNT
  439. End Proc
  440. Procedure _INITIALIZE1
  441.    For I=1 To NUM_PTS
  442.       Read X(I),Y(I),Z(I)
  443.    Next I
  444.    For I=1 To NUM_LINES
  445.       Read LINEA(I),LINEB(I)
  446.    Next I
  447.    XSCALE#=1
  448.    YSCALE#=1
  449.    ZSCALE#=1
  450.    XCEN=160
  451.    YCEN=100
  452.    DIST#=250
  453.    Degree 
  454.    Data 0,50,0
  455.    Data 20,-20,0
  456.    Data -20,-20,0
  457.    Data 0,0,20
  458.    Data 0,0,-20
  459.    Data ,,,,,,,,
  460.    Data 1,2
  461.    Data 1,3
  462.    Data 2,3
  463.    Data 4,1
  464.    Data 4,2
  465.    Data 4,3
  466.    Data 5,1
  467.    Data 5,2
  468.    Data 5,3
  469.    Data 5,5,5,5,5,5,5,5,5,5,5,5
  470. End Proc
  471. Procedure _INITIALIZE2
  472.    For I=1 To NUM_PTS
  473.       Read X(I),Y(I),Z(I)
  474.    Next I
  475.    For I=1 To NUM_LINES
  476.       Read LINEA(I),LINEB(I)
  477.    Next I
  478.    XCEN=160
  479.    YCEN=100
  480.    DIST#=250
  481.    XSCALE#=1
  482.    YSCALE#=1
  483.    ZSCALE#=1
  484.    Degree 
  485.    Data -20,-20,-20
  486.    Data 20,-20,-20
  487.    Data 20,20,-20
  488.    Data -20,20,-20
  489.    Data -20,-20,20
  490.    Data 20,-20,20
  491.    Data 20,20,20
  492.    Data -20,20,20
  493.    Data 1,2,2,3
  494.    Data 3,4,4,1
  495.    Data 5,6,6,7
  496.    Data 7,8,8,5
  497.    Data 1,5,4,8
  498.    Data 3,7,2,6
  499. End Proc
  500. Procedure _INITIALIZE3
  501.    For I=1 To NUM_PTS
  502.       Read X(I),Y(I),Z(I)
  503.    Next I
  504.    For I=1 To NUM_LINES
  505.       Read LINEA(I),LINEB(I)
  506.    Next I
  507.    XCEN=160
  508.    YCEN=100
  509.    DIST#=250
  510.    XSCALE#=1
  511.    YSCALE#=1
  512.    ZSCALE#=1
  513.    Degree 
  514.    Data 0,20,0
  515.    Data 20,-20,-3
  516.    Data -20,-20,-3
  517.    Data 0,20,0
  518.    Data 20,-20,3
  519.    Data -20,-20,3
  520.    Data 20,-30,0
  521.    Data -20,-30,0
  522.    Data 1,2
  523.    Data 1,3
  524.    Data 2,3
  525.    Data 4,5
  526.    Data 4,6
  527.    Data 5,6
  528.    Data 2,5
  529.    Data 3,6
  530.    Data 3,8
  531.    Data 6,8
  532.    Data 2,7
  533.    Data 5,7
  534. End Proc
  535. Procedure OMEGA_VECTORS
  536.    TXT_WRITER["sixth",6]
  537.    Cls 0
  538.    Screen Open 0,320,250,4,Lowres
  539.    Curs Off : Flash Off : Cls 0 : Get Sprite Palette 
  540.    Palette 0,$FFF,$F,$F00,
  541.    Double Buffer : Autoback 0
  542.    Ink 2
  543.    Degree 
  544.    S=0
  545.    X=10
  546.    Y=10
  547.    D=50
  548.    DD=25
  549.    XD=50
  550.    XXD=25
  551.    Repeat 
  552.       Cls Logic(0)
  553.       Ink 2
  554.       If XD>0
  555.          Colour 2,XD/16+2
  556.          Colour 1,XD/4*16*16+$200
  557.          Polygon XX+Sin(S+0)*XD,YY+Cos(S+0)*D To XX+Sin(S+90)*XD,YY+Cos(S+90)*D To XX+Sin(S+180)*XD,YY+Cos(S+180)*D To XX+Sin(S+270)*XD,YY+Cos(S+270)*D
  558.          Ink 3
  559.          Ink 0
  560.          Polygon X2-15+Sin(S+0)*XXD,Y2-5+Cos(S+0)*DD To X2-15+Sin(S+90)*XXD,Y2-5+Cos(S+90)*DD To X2-15+Sin(S+180)*XXD,Y2-5+Cos(S+180)*DD To X2-15+Sin(S+270)*XXD,Y2-5+Cos(S+270)*DD
  561.          Ink 3
  562.          Draw XX+Sin(S+0)*XD,YY+Cos(S+0)*D To X2+Sin(S),Y2+Cos(S)
  563.          Draw XX+Sin(S+90)*XD,YY+Cos(S+90)*D To X2+Sin(S+90),Y2+Cos(S+90)
  564.          Draw XX+Sin(S+180)*XD,YY+Cos(S+180)*D To X2+Sin(S+180),Y2+Cos(S+180)
  565.          Draw XX+Sin(S+270)*XD,YY+Cos(S+270)*D To X2+Sin(S+270),Y2+Cos(S+270)
  566.          Ink 1
  567.          Polygon X2+Sin(S+0)*XXD,Y2+Cos(S+0)*DD To X2+Sin(S+90)*XXD,Y2+Cos(S+90)*DD To X2+Sin(S+180)*XXD,Y2+Cos(S+180)*DD To X2+Sin(S+270)*XXD,Y2+Cos(S+270)*DD
  568.       Else 
  569.          Colour 2,-XD/4+2
  570.          Colour 1,-XD/8*16*16+$200
  571.          Ink 1
  572.          Polygon X2+Sin(S+0)*XXD,Y2+Cos(S+0)*DD To X2+Sin(S+90)*XXD,Y2+Cos(S+90)*DD To X2+Sin(S+180)*XXD,Y2+Cos(S+180)*DD To X2+Sin(S+270)*XXD,Y2+Cos(S+270)*DD
  573.          Ink 0
  574.          Polygon X2-25+Sin(S+0)*XD,Y2-5+Cos(S+0)*D To X2-25+Sin(S+90)*XD,Y2-5+Cos(S+90)*D To X2-25+Sin(S+180)*XD,Y2-5+Cos(S+180)*D To X2-25+Sin(S+270)*XD,Y2-5+Cos(S+270)*D
  575.          Ink 3
  576.          Draw XX+Sin(S+0)*XD,YY+Cos(S+0)*D To X2+Sin(S),Y2+Cos(S)
  577.          Draw XX+Sin(S+90)*XD,YY+Cos(S+90)*D To X2+Sin(S+90),Y2+Cos(S+90)
  578.          Draw XX+Sin(S+180)*XD,YY+Cos(S+180)*D To X2+Sin(S+180),Y2+Cos(S+180)
  579.          Draw XX+Sin(S+270)*XD,YY+Cos(S+270)*D To X2+Sin(S+270),Y2+Cos(S+270)
  580.          Ink 2
  581.          Polygon XX+Sin(S+0)*XD,YY+Cos(S+0)*D To XX+Sin(S+90)*XD,YY+Cos(S+90)*D To XX+Sin(S+180)*XD,YY+Cos(S+180)*D To XX+Sin(S+270)*XD,YY+Cos(S+270)*D
  582.       End If 
  583.       Ink 2
  584.       XX=150+Sin(SS)*-50 : YY=100+Cos(SS)
  585.       X2=150+Sin(SS)*50 : Y2=100+Cos(SS)
  586.       X3=150-Sin(SS)*25 : Y3=100+Cos(SS)
  587.       Add SS,5
  588.       Add S,5
  589.       Add XD,Sin(SS+180)*5
  590.       Add XXD,Sin(SS+180)*3
  591.       Screen Swap 
  592.       Wait Vbl 
  593.    Until Mouse Click
  594. End Proc
  595. Procedure _LOADING
  596.    TXT_WRITER["eighth",8]
  597.    Wait 100
  598.    Screen Open 0,320,34,2,Lowres
  599.    Curs Off : Flash Off : Cls 0 : Colour 1,0
  600.    Screen Display 0,,148,,
  601.    Paste Bob 55,0,48
  602.    Fade 1,0,$F : Wait 16
  603.    Sam Swapped
  604.    Run "insert_disk_ii.amos"
  605. End Proc
  606. Procedure MAD_DOTS[NO]
  607.    TXT_WRITER["seventh",4]
  608.    Unpack 8 To 0
  609.    Wait Vbl 
  610.    Double Buffer : Autoback 0
  611.    Palette 0,$55F,$F,$6 : Shift Up 1,4,14,1
  612.    B$="R0=1;A:Move -5,R0,R0-5;Let R0=R0+1;If R0=10 J B;P;J A"
  613.    B$=B$+"B:Move 5,R0,R0-5; LetR0=R0-1;If R0=-10 J C;P;JB"
  614.    B$=B$+"C:Move 5,R0,R0-5;Let R0=R0+1:If R0=10 J D;P;J C"
  615.    B$=B$+"D:Move -5,R0,R0-5;Let R0=R0-1:If R0=-10 J A;P;J D"
  616.    '
  617.    C$="R0=5;A:Move 5,R0,R0-5;Let R0=R0-1;If R0=-10 J B;P;J A"
  618.    C$=C$+"B:Move -5,R0,R0-5; LetR0=R0+1;If R0=10 J C;P;JB"
  619.    C$=C$+"C:Move -5,R0,R0-5;Let R0=R0-1:If R0=-10 J D;P;J C"
  620.    C$=C$+"D:Move 5,R0,R0-5;Let R0=R0+1:If R0=10 J A;P;J D"
  621.    Degree 
  622.    A=NO/2
  623.    For T=A To 1 Step -1
  624.       Bob T,100+Sin(T+(T*10))*50,60+Cos(T+(T*10))*50,40
  625.       Channel T To Bob T
  626.       Amal T,B$ : Amal On 
  627.       Wait Vbl 
  628.    Next T
  629.    For T=A+1 To NO
  630.       Bob T,100+Sin(T+(T*10))*50,130+Cos(T+(T*10))*50,40
  631.       Channel T To Bob T
  632.       Amal T,C$ : Amal On 
  633.       Wait Vbl 
  634.    Next T
  635.    Repeat 
  636.       Wait Vbl 
  637.    Until Mouse Click
  638.    Shift Off 
  639. End Proc