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 | ||