Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| neo-geo:rom-mess-out [2023/08/04 10:09] – créée frater | neo-geo:rom-mess-out [2023/08/04 13:10] (Version actuelle) – frater | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== MESS_OUT ($C004CE): Generic VRAM output | + | ====== Neo-Geo : MESS_OUT ====== |
| + | |||
| + | ===== MESS_OUT ($C004CE): Generic VRAM output ===== | ||
| {{: | {{: | ||
| - | MESS_OUT executes the command buffer in the [[System ROM]]' | + | MESS_OUT executes the command buffer in the [[System ROM]]' |
| + | |||
| + | //MESS_OUT is automatically called in the [[SYSTEM_INT1]] call//. | ||
| - | < | + | **BIOS_MESS_BUSY** ($10FDC2.b) can be used to prevent this (when setting up the command list, for example). |
| The command buffer can be made of commands directly, or pointers to lists in ROM or user RAM. To put commands directly into the buffer, a null pointer ($00.l) needs to be placed before the command list. | The command buffer can be made of commands directly, or pointers to lists in ROM or user RAM. To put commands directly into the buffer, a null pointer ($00.l) needs to be placed before the command list. | ||
| Ligne 61: | Ligne 65: | ||
| </ | </ | ||
| - | ==Command 4: Set data address== | + | ==== Command 4: Set data address |
| *3 words | *3 words | ||
| Sets the output data address to the next longword. Actual writes to VRAM are done with this command. | Sets the output data address to the next longword. Actual writes to VRAM are done with this command. | ||
| Ligne 69: | Ligne 73: | ||
| </ | </ | ||
| - | ==Command 5: Add to current VRAM address== | + | ==== Command 5: Add to current VRAM address |
| *2 words | *2 words | ||
| Add the next word to the current VRAM address. (This is different from command 2). Useful to skip lines or spaces. | Add the next word to the current VRAM address. (This is different from command 2). Useful to skip lines or spaces. | ||
| Ligne 76: | Ligne 80: | ||
| </ | </ | ||
| - | ==Command 6: Resume data output== | + | ==== Command 6: Resume data output |
| *1 word | *1 word | ||
| Resume data output (instead of using command 4 again, keep going from the last address). | Resume data output (instead of using command 4 again, keep going from the last address). | ||
| - | ==Command 7: Directly define output data== | + | ==== Command 7: Directly define output data ==== |
| *at least 2 words | *at least 2 words | ||
| Directly define the data (instead of using command 4 to point to it). Don't forget the padding byte if the data ends on an odd address. | Directly define the data (instead of using command 4 to point to it). Don't forget the padding byte if the data ends on an odd address. | ||
| Ligne 89: | Ligne 93: | ||
| </ | </ | ||
| - | ==Command 8: Write text with 8x16 font== | + | ==== Command 8: Write text with 8x16 font ==== |
| *at least 2 words | *at least 2 words | ||
| {{16BitRegister|Upper data byte (fontset number)|8|$08|8}} | {{16BitRegister|Upper data byte (fontset number)|8|$08|8}} | ||
| Ligne 104: | Ligne 108: | ||
| </ | </ | ||
| - | ==Command 9: Write Japanese text== | + | ==== Command 9: Write Japanese text ==== |
| Same as command 8 but for Japanese characters. | Same as command 8 but for Japanese characters. | ||
| Ligne 115: | Ligne 119: | ||
| 0x60-0x7F map to 0x0A0-0x0BF (upper) and 0x0E0-0x0FF (lower).< | 0x60-0x7F map to 0x0A0-0x0BF (upper) and 0x0E0-0x0FF (lower).< | ||
| - | ==Command A: Call sub list== | + | ==== Command A: Call sub list ==== |
| *3 words | *3 words | ||
| Call sub command list. The next longword is a pointer to another command list. Return has to be made using command B. | Call sub command list. The next longword is a pointer to another command list. Return has to be made using command B. | ||
| Ligne 124: | Ligne 128: | ||
| ''' | ''' | ||
| - | ==Command B: Return from sub list== | + | ==== Command B: Return from sub list ==== |
| *1 word | *1 word | ||
| Return to calling command list. | Return to calling command list. | ||
| - | ==Command C: Repeated data output== | + | ==== Command C: Repeated data output |
| *2 words | *2 words | ||
| Repeat output. The upper byte of the command is the number of times to output the next word. | Repeat output. The upper byte of the command is the number of times to output the next word. | ||
| Ligne 136: | Ligne 140: | ||
| </ | </ | ||
| - | ==Command D: Repeat and increment output== | + | ==== Command D: Repeat and increment output |
| *2 words | *2 words | ||