In May this year, Mandarin Software (UK) will launch a new BASIC language for the Amiga. It`s name will be AMOS, it will change the way basic is looked at. It will be the only available language to directly access all the features of the Amiga we all know so well. Sound, sprites, bobs, colours, music, scrolling.. its all in there and it does most things on interrupt (50 times a second). Having been fortunate enough to see Amos as it has been developed I have been continually stunned at what the programmer (Francois Lionet) has managed to fit in and come up with. His own inventive enthusiasm has seen Amos change from an initial port-over from STOS (the St equivalent) to a total reprogramming to make use of all the features of this superb machine. Intuition has gone out of the window so forget what you know and what you thought was possible!! If you haven`t seen a demo of Amos then I`d advise you to get hold of the PD demo thats available, take note of what that does and remember its an old demo! Its fairly shocking when you see an interpreted language such as basic smooth-scrolling a screen from left to right with a Ham full-screen picture scrolling over it from top to bottom, and with another small screen cycling over that!! To list every feature of Amos would take an age, there are hundreds of powerful commands letting loose for the first time the Amiga powers to the majority. Amos will become the standard for `casual` amiga programmers and expect to see many productions using it. Later on there will be an Amos compiler which will obviously lead to commercial products being written with it - its very capable of that! For those interested at what AMOS looks like, here are 3 programs that do different things... HERES A PROGRAM THAT FIRSTLY LOADS UP A STANDARD IFF SCREEN AND THEN CREATES 7 `CLONES` OF IT. THEN THE SCREENS ARE SCROLLED HORIZONTALLY AND DOWNWARDS, ALL AT ONCE! POSITIONS OF SCREENS IS CONTROLLED DIRECTLY BY USING OFFSETS, MEANING EASY SMOOTH MULTIDIRECTIONAL SCROLLING. Screen Close 0 Auto View Off Rem ---> Open normal screen, and load picture Screen Open 0,320,256,32,Lowres Flash Off Load Iff "amos:amos_pictures/amosbig.d3" Rem ---> Open CLONE screens For N=1 To 7 Screen Clone N Next N Rem ---> Display For Y=0 To 960 Step 2 C=1 For N=0 To 7 Screen Display N,,Y+N*50-500,,95 If N and 1 Screen Offset N,Y,65 Else Screen Offset N,2480-Y,65 C=C+1 End If Next N View Next THIS NEXT SHORT LISTING DEMONSTRATES HOW COPPER LISTINGS CAN BE USED TO PRODUCE THE POPULAR BARS/RAINBOW EFFECTS USED IN MANY DEMOS AND PROGRAMS. THE `AMAL` (AMIGA ANIMATION LANGUAGE) COMMANDS INSTRUCT THE BARS ON SPEED AND MOVEMENT, THE PROGRAM MOVES A LARGE GREEN AND RED COPPER BAND UP AND DOWN THE SCREEN, LIMITED BY A BLUE RANGE WHICH IS BROUGHT DOWN BY MOVING THE MOUSE UP AND DOWN. NOTICE THE COMMANDS FOR LIMITING MOUSE MOVEMENTS. ALL COPPER ROUTINES ARE OF COURSE INTERRUPT DRIVEN. Limit Mouse 0,40 To 512,330 Set Rainbow 1,0,60,"(2,1,15)(2,-1,15)","","" Set Rainbow 2,0,60,"","(2,1,15)(2,-1,15)","" Set Rainbow 3,0,30,"","","(1,1,15)(1,-1,15)" Rainbow 1,0,50,60 Rainbow 2,0,50+250,60 Rainbow 3,0,40,60 Channel 1 To Rainbow 1 Channel 2 To Rainbow 2 Channel 3 To Rainbow 3 Amal 1,"Loop: Move 0,250,Z(63)+2; Move 0,-250,Z(63)+2; Jump Loop" Amal 2,"Loop: Move 0,-250,Z(31)+2; Move 0,250,Z(31)+2; Jump Loop" Amal 3,"Loop: For R0=0 To 29; Let X=R0; Let A=YMouse-40; Pause; Next R0; Jump Loop" Amal On Centre At(,3)+"Hello interruptions!" Centre At(,10)+"To have a better view" Centre At(,11)+"close screen 0!" Centre At(,13)+"Move the mouse to set blue" Centre At(,14)+"rainbow Y size!" Direct THIS VERY SMALL LISTING ALLOWS YOU TO LOAD IN AN IFF SCREEN AND MAKE A ZOOM COPY OF IT BY JUST MOVING THE MOUSE. THE CALCULATION OF THE SIZE IS DONE AS FAST AS PROGRAMS SUCH AS DPAINT III!! Load Iff "amos:amos_pictures/amosbig.d3",0 Screen Open 1,320,256,64,0 Flash Off : Get Palette(0) Screen Display 1,,,,256 : View : Limit Mouse Repeat Zoom 0,0,70,320,175 To 1,0,0,X Screen(X Mouse)+1,Y Screen(Y Mouse)+1 Until Mouse Key FRANCOIS LIONET, PROGRAMMER OF AMOS HAS DONE SOME AMAZING NEW THINGS WITH MENUS, THROWING THE OLD SYSTEM OUT OF THE WINDOW, HE HAS CREATED MENUS THAT CAN DO ALMOST ANYTHING!! THE MENU SELECTIONS CAN BE SPRITES, BOBS, PICTURES, EVEN DRAWINGS IN REALTIME!! YOU CAN DO ALMOST ANYTHING WITH THEM, AND OF COURSE ITS VERY FAST TOO.. THE EXAMPLE BELOW SETS UP A LARGE MENU SYSTEM WITH ALL THE SELECTION BOXES BEING FILLED WITH BOBS. THE MENU SYSTEM IS INCREDIBLY VERSATILE AND IT WILL SURPRISE MANY, MANY PEOPLE. Load "sprites.abk" Flash Off : Get Sprite Palette Print "Initializing menu..." Menu Separate 1 Menu Bar 1 Menu Line 2 MN1$="(ink 1,0:bar 32,20:locate 0,0:bob 1)" MN2$="(ink 1,5:bar 32,20:locate 0,0:bob 2)" MN3$="(ink 1,0:bar 48,48:locate 0,0:bob 9:locate 48,48)" MN4$="(ink 1,5:bar 48,48:locate 0,0:bob 5:locate 48,48)" MN5$="(ink 1,0:bar 32,32:locate 0,0:bob 12:locate 32,32)" MN6$="(ink 1,5:bar 32,32:locate 0,0:bob 13:locate 32,32)" For L1=1 To 5 Menu$(L1)=MN1$,MN2$ For L2=1 To 4 Menu$(L1,L2)=MN3$,MN4$ For L3=1 To 4 Menu$(L1,L2,L3)=MN5$,MN6$,,"(lo 0,0)" For L4=1 To 4 Menu$(L1,L2,L3,L4)="(ink 1,6:ink 2,0) Do you like my menus??? ","(ink 1,0:ink 2,6) Worth waiting ? " Next Next Next Next Print "Done! Press a key to end..." Menu On Wait Key Edit WE PLAN TO FEATURE AMOS TIPS, HINTS AND IDEAS AS WELL AS LISTINGS WHEN IT EVENTUALLY GETS RELEASED (ABOUT MAY I HEARD LAST!).. IF YOU HAVE ANY IDEAS AND COMMENTS PLEASE DROP US A LINE AND WE CAN PASS THEM ON TO MANDARIN.