![]() |
||
Thanks to Julio Marchi for this space in MSX All |
||
Create animated displays for MSX screen 2 images.
Here we present the available displays to load a image on screen 2. Each display follows the Assembly source code, a program in Basic to test the algorithm and the source code in RSCII assembler "ASM" format. Author: Marcelo Silveira Programs license: GNU-GPL v. 3.x - http://www.gnu.org/licenses/gpl-3.0.txt. For testing the display code, please run the program in Basic that follows each code. It is located at the bottom of the "txt" file. After running the program, the display code is already in the memory and ready to run. But, for that, you must clear MSX memory using command NEW and running the next program. 10 SCREEN 2 20 DEFUSR=&HC000 30 X=USR(0) Displays using map Maybe the easiest way to create screen 2 displays is by using a pointer map in RAM, which contains the 8x8 blocks (tiles) inserting order. According to that, we are just concerned in set the order of the tiles instead of coding. The map represents 768 blocks of 8x8 pixels of 2 bytes each, taking 1536 bytes at all. Each position in the map has a generic pointer to memory, using the MSX 1x8 pattern, starting from 0 and stepping by 8. The map is placed right after the generic display codes "map" or "map 2", at the RAM address &HC100. Then, the display code reads the map from &HC100 to &HC6FF in search of the tiles that have to be moved to VRAM. Which are the differences between "map" and "map 2"? The program "map" use frames, where a delay is inserted whenever a frame is detected. The MSB of the first tile of the new frame is set, in order to sign the frame changing. Example: +--------+--------+--------+--------+ | blc 1 | blc 2 | blc 3 | blc 4 | +--------+--------+--------+--------+ | &H8000 | &H0008 | &H8010 | &H0018 | +--------+--------+--------+--------+ | frame 1 | frame 2 | +--------+--------+--------+--------+In the example above, we have 4 blocks of 8x8 pixels, where 2 frames with 2 blocks each were created. We can have many frames and with arbitrary size, as we wish. For that, we must sign the first block of the frame. The frame bit is signed in red. The program "map 2" forces a delay between all tiles loading, ignoring the delay bit. The programs are compatible. So, the maps work well in both programs. Available display maps: Author: Marcelo Silveira Maps license: GNU-GPL v. 3.x - http://www.gnu.org/licenses/gpl-3.0.txt. The new displays are available from MSX Viewer 5.2 on. |
||