Rem open a high res overscan screen with 2 colours, 16 pixels high Screen Open 0,704,16,2,Hires Curs Off : Palette $0,$357 : Cls 0 : Rem turn off cursor,set colours and clear screen Rem set position Screen Display 0,112,260,, TXT$="zigzag scroll coded by gaz for all you new starters to the amiga and amos!" Rem define scrolling area Def Scroll 1,0,0 To 712,300,-2,0 OFFSET=1 : Rem set offset of character to be printed from txt$ Rem point AMAL channel 0 to the Screen Rem the 'P' command in the amal string is a Pause Command (It only checks the 1st character.) Rem all those P's are used to pause at the top and the bottom Channel 0 To Screen Display 0 AML$="L: For R0=240 To 280 ; Let Y=R0 ; Next R0 ; P ; P ; P ; P ; P ; P ; P ; P ; P ; P ;" AML$=AML$+"For R0=240 To 280 ; Let Y=520-R0 ; Next R0 ; P ; P ; P ; P ; P ; P ; P ; P ; P ; P ; Jump L" Rem turn on our amal program Amal 0,AML$ Amal On Repeat Rem postion cursor offscreen Locate 83,0 Rem print a character from the txt$ Rem see the Mid$ command in the manual to see how this works Print Mid$(TXT$,OFFSET,1) Rem increase our pointer to point to the next character in txt$ Rem and check to see if it has run out of letters to point to.If it has Rem reset to the start of txt$ Rem all this is done with one command!! Add OFFSET,1,1 To Len(TXT$) For A=0 To 3 Scroll 1 : Rem scroll out into view Wait Vbl Next Until Mouse Click : Rem exit if mouse click else repeat Amal Off : Rem turn off up'n'down amal routine