Open spotlessmind1975 opened 4 months ago
DESIGN needs a specific number of following basic lines all starting with an "@" (these lines represent the definition of either sprites or characters, depending on the first parameter which can be either 0,1, 2, 3, 5, or 7).
Arndt
Hi @godot64 , and thank you for the comment!
Yes, I will take note of this, for sure. I will work with the goal of "backward compatibility" since actually ugBASIC allows direct loading of PNG/GIF/BMP/... images to define the sprites, instead of using this command.
Syntax:
reserve space in memory for a sprite. The
DESIGN
command reserves it in the COMMODORE 64's memory enough space to contain the sprite you want to create. Sprite uses 64 bytes. The first parameter of theDESIGN
command specifies whether the sprite is in high-resolution mode or in multi-color mode, which are indicated by the values 0 and 1 respectively. The second parameter, ad, defines the starting address in memory of the first byte of the sprite. This number must be a multiple of 64, and must be included in the 2048 and 16319 range; it can be introduced in either form decimal, than hexadecimal. If the value is hexadecimal, it must be preceded by the$
character. If the sprite is to be used on screen high-resolution, you must add a constant value of 49152 in decimal base, or $C000, in hexadecimal base. Each 64-byte area available in memory for a MOB is called 'block'. If you divide the starting address of a sprite by 64, you get the block number. This number is used in theMOB SET
command (paragraph 8.2.5) to initialize the sprite. NOTE The value of the graphic constant MUST NOT be added to the starting address to calculate the block number. The areas available in the COMMODORE 64's memory for MOBs and is associated block numbers are listed below:If you used the
MEM
command (paragraph 8.3.2), only the blocks 192-255 are available to store sprites. You can store as many sprites as the space contains memory of your COMMODOR 64. However, you can only view eight at the same time. During the course of the program, you can replace one of the sprites on the screen with another present in memory, using the starting address of its location in the memory itself.