MISCELLANEOUS INSTRUCTIONS : ----------------------------- Multi Yes : enables multitasking. Multi No : disables multitasking. Gives about 10% speed increase... watch out !!! if you disable the multitasking process, you disable the keyboard. So allways enable multitasking if you want some input from the keyboard ! Vbl Wait x : wait until the raster beam has reached a given value. 0 <= X <= 256 I've implemented this one because Wait Vbl doesn't work if you disable interrupts... It also gives a better screen synchronisation than the original Wait Vbl command. Ex.: 'Let's take a standard screen... Screen Open 0,320,200,8,Lowres 'And lot's of scrollers... _SCROLL_NR=0 For I=0 To 100 Step 10 Inc _SCROLL_NR Blit Store Left 0,_SCROLL_NR,0,0 To 320,I,-1 Next I 'So the maximum Y value of the screen that will be 'SCROLLED is 100. The other screen lines will not 'be affected by the scroll. So it has no point waiting 'until the raster beam has reached the TOP of your 'screen before executing your scrollers ! Repeat ' WAIT UNTIL LINE 101 OF YOUR SCREEN IS REACHED... Vbl Wait 101 ' AND EXECUTE THE SCROLLS Multi Blit 1 To 10 Until Mouse Click 'Ok, let's give some more information about this 'procedure... 'A screen display is made of lines and they 'are scanned from the top of the display (line 0) 'to the bottom (line 312 --> PAL, line 262 --> NTSC). 'Now comes the tricky part...It is possible to alter 'anything on the screen even if the raster beam is 'allready further than the area of the screen to be 'changed ! It will only be visible during the next 'scan of the screen. So you are able to use the SCAN 'LINES (more processing time) that are not used by 'the actual screen for displaying more BOBS,SCROLLERS,... 'And this without any annoying flicker on your screen ! 'Sometimes it takes some experimentation to find the 'right value. But a smoother display is guaranteed ! MISCELLANEOUS FUNCTIONS : -------------------------- X=Lsl.b(x,y) : bytewise logical shift to the left. ex.: ANSWER=Lsl.b(value,shift count) A=Lsl.b(5,1) gives A=10 A=Lsl.b(C,1) gives A=10 with C=5 X=Lsl.w(x,y) : wordwise logical shift to the left X=Lsl.w(x,y) : long logical shift to the left The same commands exist for logical shifting to the right... X=Lsr.b(x,y) X=Lsr.w(x,y) X=Lsr.l(x,y) X=L Swap(x) : does the same thing as the machine-language instruction... ex.: A=$FFFF1111 B=L Swap(A) gives B=$1111FFFF X=Test.b(x,y) : compares the lower 8 bits of a variable with a given value results 0 if false -1 if true X=Test.w(x,y) : compares the lower word of a variable with a given value results 0 if false -1 if true X=Raw Key(n) : does the same thing as the Key State function but works even if multitasking is disabled ! Thanks SyNTAX/TsL for a new version that works on all AMIGA versions !!! X=Left Click : I've implemented this function because it seems that when multitasking is disabled the Mouse Key function isn't working anymore... Now you can check for the LEFT mouse-button !!! Returns TRUE if left mouse is pressed... R=Cpu Info : This function returns what cpu-type is in your AMIGA. 00 plain 68000 10 68010 processor 20 68020 processor 30 68030 processor 40 68040 processor R=Math Info : This functions returns what type of math coprocessor you have in your AMIGA. 000 no coprocessor installed 881 MC68881 coprocessor installed 882 MC68882 coprocessor installed