home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1991-06-11 | 5.1 KB | 219 lines |
- Rem Rotating Scroll Demo
- Rem by JAG of FANATIX
- Rem
- SETUP
- Procedure SETUP
- Break Off
- Load "rotmus.abk",3
- Load "rotdata.abk",8
- Load "rotlogo.abk",7
- Load "rotfont.abk",6
- DEMO
- Screen Open 0,320,256,2,Lowres : Curs Off : Hide On : Colour 1,$0 : Cls 1
- Rainbow 0,0,300,16
- Rainbow 1,0,300,16
- Set Rainbow 0,0,16,"","",""
- Set Rainbow 1,0,16,"","",""
- Wait Vbl
- Screen Close 0
- Run "StarHarrier.AMOS"
- End Proc
- Procedure DEMO
- Rem Effects:
- Rem [ = F off
- Rem ~ = "
- Rem ^ = Triangle
- Rem ] = FX
- Rem @ = Face
- Rem � = Rotate slow
- Rem $ = Rotate fast
- Rem % = Stop slow
- Rem & = Stop Fast
- Rem | = Music on
- Rem { = Fast scroll
- Rem } = Slow scroll
- Screen Open 0,320,256,2,Lowres : Cls 0 : Hide On
- Close Workbench : Close Editor : Led Off : Break Off
- If Length(8)<>3668 Then Goto LAMER
- Dim CL(16)
- CL(16)=$F00 : CL(15)=$E00 : CL(14)=$D00 : CL(13)=$C00 : CL(12)=$B00
- CL(11)=$A00 : CL(10)=$900 : CL(9)=$800 : CL(8)=$700 : CL(7)=$600
- CL(6)=$500 : CL(5)=$400 : CL(4)=$300 : CL(3)=$200 : CL(2)=$100 : CL(1)=$0
- M$="Restart: Let X=0; Pause; Loop: Let X=X+1; If X>63 then Jump Restart; Pause; Jump Loop;"
- Z$="Restart: Let Y=1; Pause; Loop: Let Y=Y+1; If Y>20 then Jump Restart; Pause; Jump Loop;"
- X$="Restart: Let Y=1; Pause; Pause; Loop: Let Y=Y+1; If Y>20 then Jump Restart; Pause; Pause; Jump Loop;"
- C$=" Loop: Let Y=Y+1; If Y>20 then Jump Stop; Pause; Jump Loop; Stop: Let Y=0; "
- V$=" Loop: Let Y=Y+1; If Y>20 then Jump Stop; Pause; Pause; Jump Loop; Stop: Let Y=0; "
- O$="Restart: Let X=1; Pause; Loop: Let X=X+1; If X>321 then Jump Restart; Pause; Jump Loop;"
- Dim L$(54) : Dim X(54) : Dim Y(54) : Gosub VARLOAD
- SC=8 : CH=1 : SCAR=7 : SCR=1
- LETTER$="[!~^]@'()+,-. 0123456789:;=?abcdefghijklmnopqrstuvwxyz"
- Screen Open 0,400,36,2,Lowres : Curs Off : Hide On : Cls 0
- Unpack 7 To 2 : Hide On
- Screen Display 2,108,40,,119
- Screen Display 0,128,225,,17
- F=1
- Set Rainbow 0,1,64,"","",""
- Rainbow 0,1,224,20
- Set Rainbow 1,0,64,"","","(2,1,15)(2,-1,15)"
- Rainbow 1,1,40,120
- Restore RDATA
- RD:
- Read R
- If R=9999 Then Goto COK
- Rain(0,F)=R
- Inc F
- Goto RD
- COK:
- Channel 0 To Screen Offset 0
- Channel 2 To Screen Offset 2
- Channel 1 To Rainbow 1
- Amal 1,M$ : Amal 2,O$
- Unpack 6 To 1
- Screen To Back 1
- Screen Hide 1
- F=1
- Amal On
- Def Scroll 1,0,0 To 360,36,-2,0
- Def Scroll 2,0,0 To 360,36,-4,0
- SC$=Space$(3666) : For F=Start(8) To Start(8)+3666 : Poke Varptr(SC$)+F-Start(8),Peek(F) : Next F
- Rem **************************************************************
- Rem
- Rem
- Do
- Gosub MESSAGE
- Wait Vbl
- Gosub MESSAGE
- Gosub EQWALS
- Update : Wait Vbl
- If Mouse Key=1 Then Goto DIE
- Loop
- Rem
- Rem
- Rem **************************************************************
- MESSAGE:
- Screen 0
- Scroll SCR
- Inc SCAR : If SCAR=SC Then SCAR=0 : Inc CH : Gosub PCHAR
- Return
- PCHAR:
- If CH=Len(SC$) Then CH=0 : Return
- S$=Mid$(SC$,CH,1)
- P=Instr(LETTER$,S$)
- If P=0 Then Goto FX
- Screen Copy 1,X(P),Y(P),(X(P))+15,(Y(P))+15 To 0,332,0
- Screen Copy 1,X(P),Y(P),(X(P))+15,(Y(P))+15 To 0,332,20
- Return
- FX:
- If S$="�" Then Amal 0,X$ : Amal On 0 : Return
- If S$="%" Then Amal 0,V$ : Amal On 0 : Return
- If S$="$" Then Amal 0,Z$ : Amal On 0 : Return
- If S$="&" Then Amal 0,C$ : Amal On 0 : Return
- If S$="|" and MU=0 Then Music 1 : MU=1
- If S$="{" Then SCR=2 : SC=4 : Return
- If S$="}" Then SCR=1 : SC=8 : Return
- EQWALS:
- Screen 2
- V0=Vumeter(0) : If V0>10 Then C0=16
- V1=Vumeter(1) : If V1>10 Then C1=16
- V2=Vumeter(2) : If V2>10 Then C2=16
- V3=Vumeter(3) : If V3>10 Then C3=16
- C0=C0-2 : If C0<1 Then C0=1
- C1=C1-2 : If C1<0 Then C1=1
- C2=C2-2 : If C2<0 Then C2=1
- C3=C3-2 : If C3<0 Then C3=1
- Colour 1,CL(C0)
- Colour 2,CL(C1)
- Colour 3,CL(C2)
- Colour 4,CL(C3)
- Return
- VARLOAD:
- Restore SCDATA
- For F=1 To 54
- Read A$ : Read A : Read B
- L$(F)=A$ : X(F)=A : Y(F)=B
- Next F
- Return
- SCDATA:
- Data "[",0,0
- Data "!",16,0
- Data "~",32,0
- Data "^",48,0
- Data "]",64,0
- Data "@",80,0
- Data "'",112,0
- Data "(",128,0
- Data ")",144,0
- Data "+",176,0
- Data ",",192,0
- Data "-",208,0
- Data ".",224,0
- Data " ",240,0
- Data "0",256,0
- Data "1",272,0
- Data "2",288,0
- Data "3",304,0
- Data "4",0,16
- Data "5",16,16
- Data "6",32,16
- Data "7",48,16
- Data "8",64,16
- Data "9",80,16
- Data ":",96,16
- Data ";",112,16
- Data "=",144,16
- Data "?",176,16
- Data "a",208,16
- Data "b",224,16
- Data "c",240,16
- Data "d",256,16
- Data "e",272,16
- Data "f",288,16
- Data "g",304,16
- Data "h",0,32
- Data "i",16,32
- Data "j",32,32
- Data "k",48,32
- Data "l",64,32
- Data "m",80,32
- Data "n",96,32
- Data "o",112,32
- Data "p",128,32
- Data "q",144,32
- Data "r",160,32
- Data "s",176,32
- Data "t",192,32
- Data "u",208,32
- Data "v",224,32
- Data "w",240,32
- Data "x",256,32
- Data "y",272,32
- Data "z",288,32
- RDATA:
- Data $110,816,1360,2176,2720,2720,3520,3520,4080,3520,3520,2720,2720,2176,1360,816,$110,9999
- LAMER:
- Screen Open 0,640,512,2,Hires
- Curs Off
- Cls 0
- Colour 1,$FFF
- Print "Well, well well, if it isn't a lamer"
- Print "that tried to change the scrolling message."
- Print
- Locate 0,10
- Centre "Bad luck loser."
- Do
- Centre "Bad luck loser."
- For F=1 To 10000 : Next F
- Centre " "
- For F=1 To 10000 : Next F
- Loop
- DIE:
- Screen Close 0
- Screen Close 1
- Screen 2
- Fade 5
- For F=63 To 0 Step -1
- Mvolume F : For T=0 To 2000 : Next T
- Next F
- Screen Close 2
- End Proc