home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1980-11-12 | 9.3 KB | 304 lines |
- ' ____ ____ __ ____ ____ _ _ _
- ' / \ / \ / \/\ / \ / \ / \ / \/ \
- ' / ___// / // / // / // // // / /
- ' / ___// // / / // / \__ // // /
- ' / / / / // / // / / / // // / /
- ' \_/ \_/\_/ \/\__/ \_/\_/ \/ \_/ \_/\_/
- '
- ' Hits ya with sone nice n cool screen wipes! All the coding
- ' was done by Yazoo of Fanatix, yep I have joined FX! Anyway
- ' don't forget, if you use em, credit me! Contact me....
- ' 104 London Road, Stanway, Colchester, Essex, CO3 5HD!
- '
- ' Enjoy em dudes! Yazoo in 1992!
- '
- ' (C) Fanatix. All Rights Reserved.
- ' A Yazoo product!
- '
- Hide
- AG:
- Screen Open 1,100,100,2,Lowres
- Screen Hide 1
- Screen Open 0,640,256,2,Hires
- Curs Off
- Palette $0,$FFF
- Print " ____ ____ __ ____ ____ _ _ _ "
- Print " / \ / \ / \/\ / \ / \ / \ / \/ \"
- Print " / ___// / // / // / // // // / /"
- Print " / ___// // / / // / \__ // // / "
- Print " / / / / // / // / / / // // / / "
- Print " \_/ \_/\_/ \/\__/ \_/\_/ \/ \_/ \_/\_/ "
- Print
- Print "Input a number and press return!"
- Print
- Print "1) Flood Fill!"
- Print
- Print "2) Vinetion Blinds! (God knows how you spell that!)"
- Print
- Print "3) Vinetion Blinds V2!"
- Print
- Print "4) Nicefade! (Not exactly a screen wipe...)"
- Print
- Print "5) Zoom! (No amos ZOOM command!)"
- Print
- Print "6) Squares! (So its a little lame, but I have space to fill!)"
- Print
- Print "7) Quit!"
- Print
- Print "All code by Yazoo. GFX from the AMOS data disk!"
- Print "Greets to all, and look out for Copper Colourz V2.3!"
- IN:
- Input ">";OPT
- If OPT>7 Then Goto IN
- If OPT=1 Then Gosub _DOSCRN : _FLOOD[0,1,0] : Wait Key : Goto AG
- If OPT=2 Then Gosub _DOSCRN : _VBLINDS[0,1,16] : Wait Key : Goto AG
- If OPT=3 Then Gosub _DOSCRN : _VBLINDSII[0,1,16] : Wait Key : Goto AG
- If OPT=4 Then Unpack 6 To 0 : _NICEFADE[0,1] : Wait Key : Goto AG
- If OPT=5 Then Gosub _DOSCRN : _ZOOM[0,1] : Wait Key : Goto AG
- If OPT=6 Then Gosub _DOSCRN : _SQUARES[0,1] : Wait Key : Goto AG
- If OPT=7 Then End
- Goto IN
- _DOSCRN:
- Screen Close 1
- Unpack 6 To 0
- Screen Hide 0
- Screen Open 1,320,256,32,Lowres
- Paper 0
- Cls
- Flash Off
- Curs Off
- Fade 1 To 0
- Wait 15
- Return
- '
- ' The routines....!
- '
- Procedure _FLOOD[SOURCE,DEST,CHUNK]
- '
- ' Another cool screen wipe routine from Yazoo of...
- '
- ' ____ ____ __ ____ ____ _ _ _
- ' / \ / \ / \/\ / \ / \ / \ / \/ \
- ' / ___// / // / // / // // // / /
- ' / ___// // / / // / \__ // // /
- ' / / / / // / // / / / // // / /
- ' \_/ \_/\_/ \/\__/ \_/\_/ \/ \_/ \_/\_/
- '
- ' Hey guyz n gals, don't forget to credit me, Yazoo/Fanatix
- ' if you use this routine! Write to me! 104 London Road, Stanway,
- ' Colchester, Essex, CO3 5HD! Greets to all I know! Laterz!
- '
- ' Please note that this routine is faster the any other of its type
- ' (that I have seen) even Peter Hickmans, was slow! Come on you lot,
- ' just think about the problem a little bit! This one keeps up its
- ' frame rate, even with large screens, so it does not speed up at
- ' the end! Enjoy it!
- '
- LINE=0
- SIZE=1
- SW=Screen Width(DEST)
- Screen Copy SOURCE,0,LINE,SW,LINE To DEST,0,LINE
- Do
- Screen Copy DEST,0,LINE,SW,LINE+SIZE To DEST,0,LINE+SIZE
- If SIZE+LINE>Screen Height(DEST)
- SIZE=0
- Inc LINE
- Screen Copy SOURCE,0,LINE,SW,LINE+1 To DEST,0,LINE
- If LINE>Screen Height(DEST)
- Exit
- End If
- End If
- SIZE=(SIZE+CHUNK)*2
- If SIZE=0
- SIZE=1
- End If
- Loop
- End Proc
- Procedure _VBLINDS[SOURCE,DEST,BLIND]
- '
- ' Another cool screen wipe routine from Yazoo of...
- '
- ' ____ ____ __ ____ ____ _ _ _
- ' / \ / \ / \/\ / \ / \ / \ / \/ \
- ' / ___// / // / // / // // // / /
- ' / ___// // / / // / \__ // // /
- ' / / / / // / // / / / // // / /
- ' \_/ \_/\_/ \/\__/ \_/\_/ \/ \_/ \_/\_/
- '
- ' Hey guyz n gals, don't forget to credit me, Yazoo/Fanatix
- ' if you use this routine! Write to me! 104 London Road, Stanway,
- ' Colchester, Essex, CO3 5HD! Greets to all I know! Laterz!
- '
- SW=Screen Width(DEST)
- LINE=0
- Do
- For HGT=BLIND To 1 Step -1
- Screen Copy SOURCE,0,LINE+HGT,SW,(LINE+BLIND) To DEST,0,LINE
- Wait Vbl
- Next HGT
- If LINE+BLIND+1=>Screen Height(DEST)
- Exit
- End If
- LINE=LINE+BLIND
- Dec LINE
- Loop
- End Proc
- Procedure _VBLINDSII[SOURCE,DEST,BLIND]
- '
- ' Another cool screen wipe routine from Yazoo of...
- '
- ' ____ ____ __ ____ ____ _ _ _
- ' / \ / \ / \/\ / \ / \ / \ / \/ \
- ' / ___// / // / // / // // // / /
- ' / ___// // / / // / \__ // // /
- ' / / / / // / // / / / // // / /
- ' \_/ \_/\_/ \/\__/ \_/\_/ \/ \_/ \_/\_/
- '
- ' Hey guyz n gals, don't forget to credit me, Yazoo/Fanatix
- ' if you use this routine! Write to me! 104 London Road, Stanway,
- ' Colchester, Essex, CO3 5HD! Greets to all I know! Laterz!
- '
- SW=Screen Width(DEST)
- LINE=0
- Do
- For HGT=BLIND To 1 Step -1
- Screen Copy SOURCE,0,LINE+HGT,SW,(LINE+BLIND) To DEST,0,LINE+HGT
- Wait Vbl
- Next HGT
- If LINE+BLIND+1=>Screen Height(DEST)
- Exit
- End If
- LINE=LINE+BLIND
- Dec LINE
- Loop
- End Proc
- Procedure _NICEFADE[SOURCE,FS]
- '
- ' Another cool screen wipe routine from Yazoo of...
- '
- ' ____ ____ __ ____ ____ _ _ _
- ' / \ / \ / \/\ / \ / \ / \ / \/ \
- ' / ___// / // / // / // // // / /
- ' / ___// // / / // / \__ // // /
- ' / / / / // / // / / / // // / /
- ' \_/ \_/\_/ \/\__/ \_/\_/ \/ \_/ \_/\_/
- '
- ' Hey guyz n gals, don't forget to credit me, Yazoo/Fanatix
- ' if you use this routine! Write to me! 104 London Road, Stanway,
- ' Colchester, Essex, CO3 5HD! Greets to all I know! Laterz!
- '
- Screen Hide SOURCE
- SCRN=Screen
- Screen SOURCE
- AMCL=Screen Colour
- Dim CL(AMCL),R(AMCL),G(AMCL),B(AMCL),TR(AMCL),TG(AMCL),TB(AMCL)
- For LOP=0 To AMCL-1
- CL(LOP)=Colour(LOP)
- Colour LOP,0
- Next LOP
- '
- ' I put this here so you would not see a flicker
- ' as I calculate the RGB values.
- '
- For LOP=0 To AMCL
- R(LOP)=CL(LOP)/$100
- G(LOP)=CL(LOP)/$10-((CL(LOP)/$100)*$10)
- B(LOP)=CL(LOP)-R(LOP)*$100
- B(LOP)=B(LOP)-G(LOP)*$10
- Next LOP
- '
- ' Do the fades!
- '
- ' First Red!
- '
- Screen Show SOURCE
- For LOPI=0 To 16
- For LOP=0 To AMCL
- If TR(LOP)=R(LOP)*$100 Then Goto RBY
- TR(LOP)=TR(LOP)+(1*$100)
- Colour LOP,TR(LOP)
- RBY:
- Next LOP
- Wait FS
- Next LOPI
- '
- ' Then Green!
- '
- For LOPI=0 To 16
- For LOP=0 To AMCL
- If TG(LOP)=G(LOP)*$10 Then Goto GBY
- TG(LOP)=TG(LOP)+(1*$10)
- Colour LOP,TR(LOP)+TG(LOP)
- GBY:
- Next LOP
- Wait FS
- Next LOPI
- '
- ' And last Blue!
- '
- For LOPI=0 To 16
- For LOP=0 To AMCL
- If TB(LOP)=B(LOP)*$1 Then Goto BBY
- TB(LOP)=TB(LOP)+(1*$1)
- Colour LOP,TR(LOP)+TG(LOP)+TB(LOP)
- BBY:
- Next LOP
- Wait FS
- Next LOPI
- End Proc
- Procedure _ZOOM[SOURCE,DEST]
- '
- ' Another cool screen wipe routine from Yazoo of...
- '
- ' ____ ____ __ ____ ____ _ _ _
- ' / \ / \ / \/\ / \ / \ / \ / \/ \
- ' / ___// / // / // / // // // / /
- ' / ___// // / / // / \__ // // /
- ' / / / / // / // / / / // // / /
- ' \_/ \_/\_/ \/\__/ \_/\_/ \/ \_/ \_/\_/
- '
- ' Hey guyz n gals, don't forget to credit me, Yazoo/Fanatix
- ' if you use this routine! Write to me! 104 London Road, Stanway,
- ' Colchester, Essex, CO3 5HD! Greets to all I know! Laterz!
- '
- ' This one makes a zoom type thing, but does no use the ZOOM command!
- '
- LINE#=Screen Height(DEST)+0.0
- Do
- CNT=1
- For Q=0 To Screen Height(DEST) Step LINE#
- Screen Copy SOURCE,0,Q,Screen Width(DEST),Q+1 To DEST,0,CNT
- Inc CNT
- Next Q
- If LINE#=1 Then Exit
- LINE#=LINE#-0.5
- Loop
- End Proc
- Procedure _SQUARES[SOURCE,DEST]
- '
- ' Another cool screen wipe routine from Yazoo of...
- '
- ' ____ ____ __ ____ ____ _ _ _
- ' / \ / \ / \/\ / \ / \ / \ / \/ \
- ' / ___// / // / // / // // // / /
- ' / ___// // / / // / \__ // // /
- ' / / / / // / // / / / // // / /
- ' \_/ \_/\_/ \/\__/ \_/\_/ \/ \_/ \_/\_/
- '
- ' Hey guyz n gals, don't forget to credit me, Yazoo/Fanatix
- ' if you use this routine! Write to me! 104 London Road, Stanway,
- ' Colchester, Essex, CO3 5HD! Greets to all I know! Laterz!
- '
- SW=Screen Width(DEST)
- SH=Screen Height(DEST)
- SW=SW-1
- SH=SH-1
- For LI=0 To SW/32
- For LII=0 To SH/32
- For LIII=16 To 0 Step -1
- Screen Copy SOURCE,(LI*32)+LIII,(LII*32)+LIII,((LI*32)+32)-LIII,((LII*32)+32)-LIII To DEST,(LI*32)+LIII,(LII*32)+LIII
- Wait Vbl
- Next LIII
- Next LII
- Next LI
- End Proc