4491This constant represent the "DOWN" key (move cursor down), when used as a value
4492to compare with ''SCANCODE'',''KEY STATE'' and ''KEY PRESSED''.
4493If the key does not exist in the corresponding target, the
4494value will be zero.
4495
4496@italian
4497
4498Questa costante rappresenta il tasto "DOWN" (muovi il cusorse in giù), quando
4499viene utilizzata come valore da confrontare con ''SCANCODE'',
4500''KEY STATE'' and ''KEY PRESSED''. Se il tasto non esiste nel
4501target corrispondente, il valore sarà zero.
4502
4503@syntax = DOWN
4504
4505@example IF KEY STATE(KEY DOWN) THEN
4506@example PRINT "DOWN has been pressed!"
4507@example ENDIF
4508
4509</usermanual> */
4510
4511/* <usermanual>
4512@keyword WORD (data type)
4513
4514@english
4515
4516The ''WORD'' is a data type that allow to store a 16-bit word.
4517
4518@italian
4519
4520''WORD'' è un tipo di dati che consente di memorizzare una
4521parola a 16 bit.
4522
4523@syntax ... AS WORD
4524
4525@example DIM parolaLunga AS WORD
4526
4527</usermanual> */
4528
4529/* <usermanual>
4530@keyword SIGNED WORD (data type)
4531
4532@english
4533
4534The ''SIGNED WORD'' is a data type that allow to store a 16-bit word, with sign.
4535
4536@italian
4537
4538''WORD'' è un tipo di dati che consente di memorizzare una
4539parola a 16 bit, con segno.
4540
4541@syntax ... AS SIGNED WORD
4542
4543@example DIM parolaLunga AS SIGNED WORD
4544
4545@alias INT (data type)
4546@alias INTEGER (data type)
4547</usermanual> */
4548
4549/* <usermanual>
4550@keyword DWORD (data type)
4551
4552@english
4553
4554The ''DWORD'' is a data type that allow to store a 32-bit word (''WORD'').
4555
4556@italian
4557
4558''DWORD'' è un tipo di dati che consente di memorizzare una
4559parola (''WORD'') a 32 bit.
4560
4561@syntax ... AS DWORD
4562
4563@example DIM parolaLunga AS DWORD
4564
4565</usermanual> */
4566
4567/* <usermanual>
4568@keyword SIGNED DWORD (data type)
4569
4570@english
4571
4572The ''SIGNED DWORD'' is a data type that allow to store a 32-bit word (''DWORD''), with sign.
4573
4574@italian
4575
4576''SIGNED DWORD'' è un tipo di dati che consente di memorizzare una
4577parola lunga a 32 bit, con segno.
4578
4579@syntax ... AS SIGNED DWORD
4580
4581@example DIM parolaLunga AS SIGNED DWORD
4582
4583@alias LONG (data type)
4584
4585</usermanual> */
4586
4587/* <usermanual>
4588@keyword EMPTY TILE
4589
4590@english
4591
4592This is a special parameter of ugBASIC, which allows you to change what
4593is considered the "space" character on the screen. It is used, in text
4594modes, to clear the screen.
4595
4596@italian
4597
4598Questo è un parametro speciale di ugBASIC, che consente di modificare
4599quello che viene considerato il carattere "spazio" sullo schermo.
4600Viene utilizzato, nelle modalità testuali, per cancellare lo schermo.
4601
4602@syntax = EMPTY TILE
4603@syntax EMPTY TILE = ...
4604
4605@example EMPTY TILE = 65
4606@example CLS
4607
4608@alias EMPTYTILE
4609
4610</usermanual> */
4611
4612/* <usermanual>
4613@keyword EMPTYTILE
4614
4615@english
4616
4617@italian
4618
4619@syntax = EMPTYTILE
4620@syntax EMPTYTILE = ...
4621
4622@example EMPTYTILE = 65
4623@example CLS
4624
4625@alias EMPTY TILE
4626
4627</usermanual> */
4628
4629/* <usermanual>
4630@keyword EQUAL (constant)
4631
4632@english
4633
4634This constant represent the "EQUAL" key (=), when used as a value
4635to compare with ''SCANCODE'',''KEY STATE'' and ''KEY PRESSED''.
4636If the key does not exist in the corresponding target, the
4637value will be zero.
4638
4639@italian
4640
4641Questa costante rappresenta il tasto "UGUALE" (=), quando
4642viene utilizzata come valore da confrontare con ''SCANCODE'',
4643''KEY STATE'' and ''KEY PRESSED''. Se il tasto non esiste nel
4644target corrispondente, il valore sarà zero.
4645
4646@syntax = EQUAL
4647
4648@example IF KEY STATE(KEY EQUAL) THEN
4649@example PRINT "EQUAL has been pressed!"
4650@example ENDIF
4651
4652</usermanual> */
4653
4654/* <usermanual>
4655@keyword FALSE (constant)
4656
4657@english
4658
4659This constant represent the boolean value for FALSE (0).
4660
4661@italian
4662
4663Questa costante rappresenta il valore booleano per FALSE (0).
4664
4665@syntax = FALSE
4666
4667@example IF v = FALSE THEN
4668@example PRINT "V is false!"
4669@example ENDIF
4670
4671</usermanual> */
4672
4673/* <usermanual>
4674@keyword FLOAT (data type)
4675
4676@english
4677
4678The ''FLOAT'' is a data type that allow to store a floating
4679point number.
4680
4681@italian
4682
4683''FLOAT'' è un tipo di dati che consente di memorizzare un
4684numero in virgola mobile.
4685
4686@syntax ... AS FLOAT
4687
4688@example DIM numero AS FLOAT
4689
4690@alias SINGLE
4691
4692</usermanual> */
4693
4694/* <usermanual>
4695@keyword SINGLE (data type)
4696
4697@english
4698
4699@italian
4700
4701@syntax ... AS SINGLE
4702
4703@example DIM numero AS SINGLE
4704
4705@alias FLOAT
4706
4707</usermanual> */
4708
4709/* <usermanual>
4710@keyword GET
4711
4712@italian
4713
4714@syntax GET var
4715
4716@example GET tasto
4717
4718@alias INKEY
4719
4720</usermanual> */
4721
4722/* <usermanual>
4723@keyword GLOBAL
4724
4725@english
4726
4727When you write a program, variables are like containers that store data.
4728Depending on where you declare them, these variables can have different "scopes,"
4729meaning they can be accessed from different parts of your code. The ''GLOBAL''
4730command allows to define a variable as accessible from everywhere.
4731
4732You should use ''GLOBAL'' to store parameters that do not change during program execution,
4733to share the state between different parts of your code, and generally to improve performance,
4734but it is important to weigh the pros and cons carefully. In general, it is a good idea to limit
4735the use of global variables and use local variables whenever possible.
4736
4737You can use the name of variables to make them global, or a string with a "pattern"
4738to follow, to choose if a variable will be global or not. Pattern uses "wildcard"
4739to match any letter in name of the variables.
4740
4741@italian
4742
4743Quando scrivi un programma, le variabili sono come contenitori che memorizzano dati.
4744A seconda di dove le dichiari, queste variabili possono avere diversi "ambiti",
4745ovvero possono essere accessibili da diverse parti del tuo codice. Il comando ''GLOBAL''
4746consente di definire una variabile come accessibile da qualsiasi luogo.
4747
4748Dovresti usare ''GLOBAL'' per memorizzare parametri che non cambiano durante
4749l'esecuzione del programma, per condividere lo stato tra diverse parti del tuo
4750codice e in generale per migliorare le prestazioni, ma è importante soppesare
4751attentamente i pro e i contro. In generale, è una buona idea limitare l'uso di
4752variabili globali e usare variabili locali quando possibile.
4753
4754Puoi usare il nome delle variabili per renderle globali o una stringa con un
4755"pattern" da seguire, per scegliere se una variabile sarà globale o meno.
4756Il pattern usa "carattere jolly" per abbinare qualsiasi lettera nel nome
4757delle variabili.
4758
4759@syntax GLOBAL var[, var[, ...]]
4760@syntax GLOBAL string
4761
4762@example GLOBAL var42
4763@example GLOBAL "a*"
4764
4765@seeAlso SHARED
4766
4767</usermanual> */
4768
4769/* <usermanual>
4770@keyword HOME (constant)
4771
4772@english
4773
4774This constant represent the "HOME" key, when used as a value
4775to compare with ''SCANCODE'',''KEY STATE'' and ''KEY PRESSED''.
4776If the key does not exist in the corresponding target, the
4777value will be zero.
4778
4779@italian
4780
4781Questa costante rappresenta il tasto "HOME", quando
4782viene utilizzata come valore da confrontare con ''SCANCODE'',
4783''KEY STATE'' and ''KEY PRESSED''. Se il tasto non esiste nel
4784target corrispondente, il valore sarà zero.
4785
4786@syntax = HOME
4787
4788@example IF KEY STATE(KEY HOME) THEN
4789@example PRINT "HOME has been pressed!"
4790@example ENDIF
4791
4792</usermanual> */
4793
4794/* <usermanual>
4795@keyword IMAGE (data type)
4796
4797@english
4798
4799The ''IMAGE'' data type maintains a reference to an image that
4800can be drawn on the screen
4801
4802@italian
4803
4804Il tipo di dato ''IMAGE'' mantiene un riferimento a una immagine
4805che può essere disegnata sullo schermo.
4806
4807@syntax ... AS IMAGE
4808
4809</usermanual> */
4810
4811/* <usermanual>
4812@keyword INCLUDE
4813
4814@english
4815
4816The ''INCLUDE'' command allows you to insert a source from an external
4817file. In practice, what happens is that the content of the file, without
4818any interpretation, is copied "as is" at the point where the statement
4819was inserted. All variables and scopes will be maintained.
4820
4821Particular attention should be paid to the fact that all the
4822configurations and values at the time the command is executed will be
4823maintained. This means that, for example, if you include a source that
4824manages graphics, it will work with the graphics mode defined up to
4825that moment.
4826
4827@italian
4828
4829Il comando ''INCLUDE'' consente di inserire una sorgente da un file esterno.
4830In pratica, ciò che accade è che il contenuto del file, senza alcuna
4831interpretazione, viene copiato "così com'è" nel punto in cui è stata inserita
4832l'istruzione. Tutte le variabili e gli ambiti verranno mantenuti.
4833
4834Particolare attenzione si dovrà porre al fatto che tutte le configurazioni
4835e valori al momento in cui il comando viene eseguito saranno mantenute.
4836Questo significa che, se ad esempio includete un sorgente che gestisce
4837la grafica, questa lavorerà con la modalità grafica definita fino a
4838quel momento.
4839
4840@syntax INCLUDE filename
4841@syntax INCLUDE "filename"
4842
4843</usermanual> */
4844
4845/* <usermanual>
4846@keyword INSERT (constant)
4847
4848@english
4849
4850This constant represent the "INSERT" key, when used as a value
4851to compare with ''SCANCODE'',''KEY STATE'' and ''KEY PRESSED''.
4852If the key does not exist in the corresponding target, the
4853value will be zero.
4854
4855@italian
4856
4857Questa costante rappresenta il tasto "INSERT", quando
4858viene utilizzata come valore da confrontare con ''SCANCODE'',
4859''KEY STATE'' and ''KEY PRESSED''. Se il tasto non esiste nel
4860target corrispondente, il valore sarà zero.
4861
4862@syntax = INSERT
4863
4864@example IF KEY STATE(KEY INSERT) THEN
4865@example PRINT "INSERT has been pressed!"
4866@example ENDIF
4867
4868</usermanual> */
4869
4870/* <usermanual>
4871@keyword INT (data type)
4872
4873@english
4874
4875The ''INT'' is a data type that allow to store a signed 16-bit word.
4876
4877@italian
4878
4879Il tipo ''INT'' è un tipo di dati che consente di memorizzare una
4880parola con segno a 16 bit.
4881
4882@syntax ... AS INT
4883
4884@example DIM parolaLunga AS INT
4885
4886@alias INTEGER (data type)
4887@alias SIGNED WORD (data type)
4888
4889</usermanual> */
4890
4891/* <usermanual>
4892@keyword INTEGER (data type)
4893
4894@english
4895
4896@italian
4897
4898@syntax ... AS INTEGER
4899
4900@example DIM parolaLunga AS INTEGER
4901
4902@alias INT (data type)
4903@alias SIGNED WORD (data type)
4904
4905</usermanual> */
4906
4907/* <usermanual>
4908@keyword JOY UP (constant)
4909
4910@english
4911
4912This constant represents the bitmask to use to identify the "up direction"
4913bit for the value returned by the JOY function.
4914
4915@italian
4916
4917Questa costante rappresenta la bitmask da utilizzare per identificare il
4918bit "direzione su" per il valore restituito dalla funzione JOY.
4919
4920@syntax = JOY UP
4921
4922@example IF JOY(0) AND JOY UP THEN
4923@example PRINT "UP!"
4924@example ENDIF
4925
4926</usermanual> */
4927
4928/* <usermanual>
4929@keyword JOY DOWN (constant)
4930
4931@english
4932
4933This constant represents the bitmask to use to identify the "down direction"
4934bit for the value returned by the JOY function.
4935
4936@italian
4937
4938Questa costante rappresenta la bitmask da utilizzare per identificare il
4939bit "direzione giù" per il valore restituito dalla funzione JOY.
4940
4941@syntax = JOY DOWN
4942
4943@example IF JOY(0) AND JOY DOWN THEN
4944@example PRINT "DOWN!"
4945@example ENDIF
4946
4947</usermanual> */
4948
4949/* <usermanual>
4950@keyword JOY LEFT (constant)
4951
4952@english
4953
4954This constant represents the bitmask to use to identify the "left direction"
4955bit for the value returned by the JOY function.
4956
4957@italian
4958
4959Questa costante rappresenta la bitmask da utilizzare per identificare il
4960bit "direzione sinistra" per il valore restituito dalla funzione JOY.
4961
4962@syntax = JOY LEFT
4963
4964@example IF JOY(0) AND JOY LEFT THEN
4965@example PRINT "LEFT!"
4966@example ENDIF
4967
4968</usermanual> */
4969
4970/* <usermanual>
4971@keyword JOY RIGHT (constant)
4972
4973@english
4974
4975This constant represents the bitmask to use to identify the "right direction"
4976bit for the value returned by the JOY function.
4977
4978@italian
4979
4980Questa costante rappresenta la bitmask da utilizzare per identificare il
4981bit "direzione destra" per il valore restituito dalla funzione JOY.
4982
4983@syntax = JOY RIGHT
4984
4985@example IF JOY(0) AND JOY RIGHT THEN
4986@example PRINT "RIGHT!"
4987@example ENDIF
4988
4989</usermanual> */
4990
4991/* <usermanual>
4992@keyword LEFT (constant)
4993
4994@english
4995
4996This constant represent the "LEFT" key, when used as a value
4997to compare with ''SCANCODE'',''KEY STATE'' and ''KEY PRESSED''.
4998If the key does not exist in the corresponding target, the
4999value will be zero.
5000
5001@italian
5002
5003Questa costante rappresenta il tasto "LEFT", quando
5004viene utilizzata come valore da confrontare con ''SCANCODE'',
5005''KEY STATE'' and ''KEY PRESSED''. Se il tasto non esiste nel
5006target corrispondente, il valore sarà zero.
5007
5008@syntax = LEFT
5009
5010@example IF KEY STATE(KEY LEFT) THEN
5011@example PRINT "LEFT has been pressed!"
5012@example ENDIF
5013
5014</usermanual> */
5015
5016/* <usermanual>
5017@keyword RIGHT (constant)
5018
5019@english
5020
5021This constant represent the "RIGHT" key, when used as a value
5022to compare with ''SCANCODE'',''KEY STATE'' and ''KEY PRESSED''.
5023If the key does not exist in the corresponding target, the
5024value will be zero.
5025
5026@italian
5027
5028Questa costante rappresenta il tasto "RIGHT", quando
5029viene utilizzata come valore da confrontare con ''SCANCODE'',
5030''KEY STATE'' and ''KEY PRESSED''. Se il tasto non esiste nel
5031target corrispondente, il valore sarà zero.
5032
5033@syntax = RIGHT
5034
5035@example IF KEY STATE(KEY RIGHT) THEN
5036@example PRINT "RIGHT has been pressed!"
5037@example ENDIF
5038
5039</usermanual> */
5040
5041/* <usermanual>
5042@keyword UP (constant)
5043
5044@english
5045
5046This constant represent the "UP" key, when used as a value
5047to compare with ''SCANCODE'',''KEY STATE'' and ''KEY PRESSED''.
5048If the key does not exist in the corresponding target, the
5049value will be zero.
5050
5051@italian
5052
5053Questa costante rappresenta il tasto "UP", quando
5054viene utilizzata come valore da confrontare con ''SCANCODE'',
5055''KEY STATE'' and ''KEY PRESSED''. Se il tasto non esiste nel
5056target corrispondente, il valore sarà zero.
5057
5058@syntax = UP
5059
5060@example IF KEY STATE(KEY UP) THEN
5061@example PRINT "UP has been pressed!"
5062@example ENDIF
5063
5064</usermanual> */
5065
5066/* <usermanual>
5067@keyword DOWN (constant)
5068
5069@english
5070
5071This constant represent the "DOWN" key, when used as a value
5072to compare with ''SCANCODE'',''KEY STATE'' and ''KEY PRESSED''.
5073If the key does not exist in the corresponding target, the
5074value will be zero.
5075
5076@italian
5077
5078Questa costante rappresenta il tasto "DOWN", quando
5079viene utilizzata come valore da confrontare con ''SCANCODE'',
5080''KEY STATE'' and ''KEY PRESSED''. Se il tasto non esiste nel
5081target corrispondente, il valore sarà zero.
5082
5083@syntax = DOWN
5084
5085@example IF KEY STATE(KEY DOWN) THEN
5086@example PRINT "DOWN has been pressed!"
5087@example ENDIF
5088
5089</usermanual> */
5090
5091/* <usermanual>
5092@keyword LONG (data type)
5093
5094@english
5095
5096The ''LONG'' is a data type that allow to store a signed 32-bit word.
5097
5098@italian
5099
5100''LONG'' è un tipo di dati che consente di memorizzare una
5101parola (''WORD'') a 32 bit con segno.
5102
5103@syntax ... AS LONG
5104
5105@example DIM parolaLunga AS LONG
5106
5107@alias SIGNED DWORD (data type)
5108
5109</usermanual> */
5110
5111/* <usermanual>
5112@keyword MINUS (constant)
5113
5114@english
5115
5116This constant represent the "MINUS" key, when used as a value
5117to compare with ''SCANCODE'',''KEY STATE'' and ''KEY PRESSED''.
5118If the key does not exist in the corresponding target, the
5119value will be zero.
5120
5121@italian
5122
5123Questa costante rappresenta il tasto "MINUS", quando
5124viene utilizzata come valore da confrontare con ''SCANCODE'',
5125''KEY STATE'' and ''KEY PRESSED''. Se il tasto non esiste nel
5126target corrispondente, il valore sarà zero.
5127
5128@syntax = MINUS
5129
5130@example IF KEY STATE(KEY MINUS) THEN
5131@example PRINT "MINUS has been pressed!"
5132@example ENDIF
5133
5134</usermanual> */
5135
5136/* <usermanual>
5137@keyword MOB ON
5138
5139@english
5140
5141@italian
5142
5143@syntax MOB ON
5144
5145@alias SPRITE ENABLE
5146
5147</usermanual> */
5148
5149/* <usermanual>
5150@keyword MOB OFF
5151
5152@english
5153
5154@italian
5155
5156@syntax MOB OFF
5157
5158@alias SPRITE DISABLE
5159
5160</usermanual> */
5161
5162/* <usermanual>
5163@keyword MSPRITE (data type)
5164
5165@english
5166
5167The ''MSPRITE'' is a data type that allow to store a reference to a multiplexed
5168sprite.
5169
5170@italian
5171
5172''MSPRITE'' è un tipo di dati che consente di memorizzare il riferimento
5173a uno sprite multiplexed.
5174
5175@syntax ... AS MSPRITE
5176
5177@example DIM player AS MSPRITE
5178
5179</usermanual> */
5180
5181/* <usermanual>
5182@keyword MUL
5183
5184@english
5185
5186The ''MUL'' statement is used to multiply the value of a numeric variable by
5187a specified amount. In other words, it is like multiply one number with another.
5188It is the same as ''var = var * expr''.
5189
5190It takes the ''var'' to which you want
5191to multiply a value and the ''expr'' as the expression you want to multiply
5192to the variable.
5193
5194@italian
5195
5196L'istruzione ''MUL'' viene utilizzata per moltiplicare il valore di una
5197variabile numerica per una quantità specificata. In altre parole, è come
5198moltiplicare un numero per un altro. È uguale a ''var = var * expr''.
5199
5200Prende la ''var'' a cui vuoi moltiplicare un valore e ''expr'' come
5201espressione che vuoi moltiplicare per la variabile.
5202
5203@syntax MUL var, expr
5204
5205@example MUL v, 42
5206
5207</usermanual> */
5208
5209/* <usermanual>
5210@keyword MULTI
5211
5212@english
5213
5214MULTI sets three of the colors of the C64's multicolor mode and switches
5215the multicolor mode on. The fourth possible color (the background color,
5216multicolor bit combination %00, controlled by memory address $D021) is defined with
5217the ''COLOR'' command. The first parameter of ''MULTI'' (''color1'') controls
5218the color of the bit combination %01, ''color2'' corresponds to the color of the
5219bit combination %10 and ''color3'' colors the bit combination %11.
5220
5221@italian
5222
5223''MULTI'' imposta tre dei colori della modalità multicolore del C64 e attiva la
5224modalità multicolore. Il quarto colore possibile (il colore di sfondo, la
5225combinazione di bit multicolore %00, controllata dall'indirizzo di memoria $D021)
5226è definito con il comando ''COLOR''. Il primo parametro di ''MULTI'' (''color1'')
5227controlla il colore della combinazione di bit %01, ''color2'' corrisponde al
5228colore della combinazione di bit %10 e ''color3'' colora la combinazione di
5229bit %11.
5230
5231@syntax MULTI color1, color2, color3
5232
5233@example MULTI RED, GREEN, YELLOW
5234@seeAlso MULTI ON
5235@seeAlso MULTI OFF
5236
5237</usermanual> */
5238
5239/* <usermanual>
5240@keyword MULTI ON
5241
5242@english
5243
5244''MULTI ON'' activates the multicolor mode without setting any colors.
5245
5246@italian
5247
5248''MULTI ON'' attiva la modalità multicolore senza impostare alcun colore.
5249
5250@syntax MULTI ON
5251
5252@example MULTI ON
5253
5254@seeAlso MULTI OFF
5255
5256</usermanual> */
5257
5258/* <usermanual>
5259@keyword MULTI OFF
5260
5261@english
5262
5263''MULTI OFF'' deactivates the multicolor mode.
5264
5265@italian
5266
5267''MULTI OFF'' disattiva la modalità multicolore.
5268
5269@syntax MULTI OFF
5270
5271@example MULTI OFF
5272
5273@seeAlso MULTI ON
5274
5275</usermanual> */
5276
5277/* <usermanual>
5278@keyword MUSIC (data type)
5279
5280@english
5281
5282The ''MUSIC'' is a data type that reference the data for any music track.
5283
5284@italian
5285
5286''MUSIC'' è un tipo di dati che fa riferimento ai dati di qualsiasi traccia musicale.
5287
5288@syntax ... AS MUSIC
5289
5290@example DIM music AS MUSIC
5291
5292</usermanual> */
5293
5294// @tobe NEW TILESET
5295
5296/* <usermanual>
5297@keyword NONE (constant)
5298
5299@english
5300
5301This constant represent the fact that no key has been pressed, when used
5302as a valueto compare with ''SCANCODE''.
5303
5304@italian
5305
5306Questa costante rappresenta il fatto che non è stato premuto alcun tasto,
5307quando viene utilizzata come valore da confrontare con ''SCANCODE''.
5308
5309@syntax = NONE
5310
5311@example IF SCANCODE = KEY NONE THEN
5312@example PRINT "No key has been pressed"
5313@example ENDIF
5314
5315</usermanual> */
5316
5317/* <usermanual>
5318@keyword NOP
5319
5320@english
5321
5322''NOP'' is short for "No OPeration" and it is a very special instruction:
5323it generates an equivalent instruction in assembly languages that
5324does not perform any useful operation, that is, it does not change the
5325state of the processor or the data in memory.
5326
5327By inserting a sequence of ''NOP'' instructions, you can create a timed
5328delay within your program. This can be useful, for example, to synchronize
5329several actions or to create animation effects. In some cases, it is necessary
5330to align the code to certain memory locations. By inserting ''NOP'' instructions,
5331you can "fill" the missing space and ensure correct alignment. NOP instructions
5332can be used to insert "placeholders" into code, making debugging and testing
5333easier.
5334
5335When the program encounters a ''NOP'' instruction, it simply increments
5336the program counter (PC) to the next instruction, without performing any data
5337operations. In effect, the processor "wastes time" executing this empty instruction.
5338
5339It is important to note that excessive use of NOP instructions can slow
5340down the execution of the program, so it is advisable to use them sparingly
5341and only when absolutely necessary.
5342
5343This instruction can also be used within a copper list.
5344
5345@italian
5346
5347''NOP'' è l'abbreviazione di "No OPeration" ed è un'istruzione molto speciale:
5348genera un'istruzione equivalente nei linguaggi assembly che
5349non esegue alcuna operazione utile, ovvero non modifica lo
5350stato del processore o i dati in memoria.
5351
5352Inserendo una sequenza di istruzioni ''NOP'', puoi creare un ritardo temporizzato all'interno del tuo programma. Questo può essere utile, ad esempio, per sincronizzare
5353diverse azioni o per creare effetti di animazione. In alcuni casi, è necessario
5354allineare il codice a determinate posizioni di memoria. Inserendo istruzioni ''NOP'',
5355puoi "riempire" lo spazio mancante e garantire un allineamento corretto. Le istruzioni NOP
5356possono essere utilizzate per inserire "segnaposto" nel codice, semplificando il debug e il test.
5357
5358Quando il programma incontra un'istruzione ''NOP'', incrementa semplicemente
5359il contatore del programma (PC) all'istruzione successiva, senza eseguire alcuna operazione sui dati. In effetti, il processore "perde tempo" eseguendo questa istruzione vuota.
5360
5361È importante notare che un uso eccessivo di istruzioni NOP può rallentare
5362l'esecuzione del programma, quindi è consigliabile usarle con parsimonia
5363e solo quando assolutamente necessario.
5364
5365Questa istruzione si può utilizzare anche all'interno di una copper list.
5366
5367@syntax NOP
5368
5369@example IF tooEarly THEN
5370@example NOP: NOP: NOP: NOP: NOP
5371@example ENDIF
5372
5373</usermanual> */
5374
5375
5376/* <usermanual>
5377@keyword NOTE (constant)
5378
5379@english
5380
5381The keyword ''NOTE'' allows you to indicate a note on the musical scale.
5382The syntax must indicate the note, any variations and the reference octave.
5383If the octave is omitted, octave no. 4 (the fifth octave) is understood.
5384
5385@italian
5386
5387La parola chiave ''NOTE'' permette di indicare una nota sulla scala musicale.
5388La sintassi deve indicare la nota, eventuali variazioni e l'ottava di
5389riferimento. Se l'ottava viene omessa, si intende l'ottava nr. 4
5390(la quinta ottava).
5391
5392@syntax NOTE note [#] [octave]
5393@syntax note: C|D|E|F|G|A|B
5394
5395@example SOUND NOTE C#3, 200
5396
5397</usermanual> */
5398
5399/* <usermanual>
5400@keyword NTSC (constant)
5401
5402@english
5403
5404The keyword ''NTSC'' allows you to know if the target is running
5405with a video chipset that supports NTSC standard.
5406
5407@italian
5408
5409La parola chiave ''NTSC'' consente di sapere se il target è in
5410 esecuzione con un chipset video che supporta lo standard NTSC.
5411
5412@syntax = NTSC
5413
5414@example IF NTSC THEN
5415@example PRINT "I am using the NTSC video standard!"
5416@example ENDIF
5417
5418</usermanual> */
5419
5420/* <usermanual>
5421@keyword PAGE A (constant)
5422
5423@english
5424
5425This constant can be used to identify the first of two
5426buffers in a double buffering screen.
5427
5428@italian
5429
5430Questa costante può essere utilizzata per identificare il
5431primo dei due buffer di uno schermo con doppio buffering.
5432
5433@syntax = PAGE A
5434
5435@example IF SCREEN PAGE = PAGE A THEN
5436@example PRINT "I am showing the page A!"
5437@example ENDIF
5438
5439@alias PAGE 0
5440</usermanual> */
5441
5442/* <usermanual>
5443@keyword PAGE 0 (constant)
5444
5445@english
5446
5447@italian
5448
5449@syntax = PAGE 0
5450
5451@example IF SCREEN PAGE = PAGE 0 THEN
5452@example PRINT "I am showing the page 0!"
5453@example ENDIF
5454
5455@alias PAGE A
5456
5457</usermanual> */
5458
5459/* <usermanual>
5460@keyword PAGE A (constant)
5461
5462@english
5463
5464This constant can be used to identify the second of two
5465buffers in a double buffering screen.
5466
5467@italian
5468
5469Questa costante può essere utilizzata per identificare il
5470secondo dei due buffer di uno schermo con doppio buffering.
5471
5472@syntax = PAGE B
5473
5474@example IF SCREEN PAGE = PAGE B THEN
5475@example PRINT "I am showing the page B!"
5476@example ENDIF
5477
5478@alias PAGE 1
5479</usermanual> */
5480
5481/* <usermanual>
5482@keyword PAGE 1 (constant)
5483
5484@english
5485
5486@italian
5487
5488@syntax = PAGE 1
5489
5490@example IF SCREEN PAGE = PAGE 1 THEN
5491@example PRINT "I am showing the page 1!"
5492@example ENDIF
5493
5494@alias PAGE B
5495
5496</usermanual> */
5497
5498/* <usermanual>
5499@keyword PAL (constant)
5500
5501@english
5502
5503The keyword ''PAL'' allows you to know if the target is running
5504with a video chipset that supports PAL standard.
5505
5506@italian
5507
5508La parola chiave ''PAL'' consente di sapere se il target è in
5509esecuzione con un chipset video che supporta lo standard PAL.
5510
5511@syntax = PAL
5512
5513@example IF PAL THEN
5514@example PRINT "I am using the PAL video standard!"
5515@example ENDIF
5516
5517</usermanual> */
5518
5519/* <usermanual>
5520@keyword PALETTE
5521
5522@english
5523
5524The ''PALETTE'' command allows you to define and modify the range of colors that can
5525be used to draw on the screen. You can give a number for each element of the
5526palette, sequentially. Thenumber is then used to refer to the specific color
5527when drawing shapes or objects. Thanks to RGB function you can change the
5528red, green and blue value of each color in the palette, allowing you to
5529create custom color combinations, provided that the hardware allows it.
5530
5531The palette is applied immediately to all the graphic elements on the screen.
5532This allows you to define a color palette that adapts to the atmosphere
5533of the game, creating particular visual effects. It allows to
5534create transition effects between different colors, simulating for example
5535the passage of time or changes in state. Finally, it customizes the appearance
5536of the interface, making it more attractive and functional.
5537
5538The maximum number of colors that can be defined in a palette varies
5539depending on the video chipset and the mode selected.
5540
5541@italian
5542
5543Il comando ''PALETTE'' consente di definire e modificare la gamma di colori
5544che possono essere utilizzati per disegnare sullo schermo. È possibile
5545assegnare un numero a ciascun elemento della tavolozza, in sequenza.
5546Il numero viene quindi utilizzato per fare riferimento al colore specifico
5547quando si disegnano forme o oggetti. Grazie alla funzione RGB è possibile
5548modificare il valore rosso, verde e blu di ciascun colore nella tavolozza,
5549consentendo di creare combinazioni di colori personalizzate, a condizione che
5550l'hardware lo consenta.
5551
5552La tavolozza viene applicata immediatamente a tutti gli elementi grafici
5553sullo schermo. Ciò consente di definire una tavolozza di colori che si
5554adatta all'atmosfera del gioco, creando effetti visivi particolari.
5555Consente di creare effetti di transizione tra diversi colori, simulando ad
5556esempio il passare del tempo o i cambiamenti di stato. Infine, personalizza
5557l'aspetto dell'interfaccia, rendendola più accattivante e funzionale.
5558
5559Il numero massimo di colori che possono essere definiti in una tavolozza
5560varia a seconda del chipset video e della modalità selezionata.