Outils pour utilisateurs

Outils du site


neo-geo:rom-mess-out

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
neo-geo:rom-mess-out [2023/08/04 10:09] – créée fraterneo-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 =====
  
 {{:neo-geo:pasted:20230804-100817.png}} {{:neo-geo:pasted:20230804-100817.png}}
  
-MESS_OUT executes the command buffer in the [[System ROM]]'s work RAM that starts at '''BIOS_MESS_BUFFER''' (constant $10FF00) and goes up to '''BIOS_MESS_POINT''' (longword variable $10FDBE). This can be used to display text messages, boxes... on the [[fix layer]] (is it used for sprites too ?).+MESS_OUT executes the command buffer in the [[System ROM]]'s work RAM that starts at **BIOS_MESS_BUFFER** (constant $10FF00) and goes up to **BIOS_MESS_POINT** (longword variable $10FDBE). This can be used to display text messages, boxes... on the [[fix layer]] (is it used for sprites too ?)
 + 
 +//MESS_OUT is automatically called in the [[SYSTEM_INT1]] call//
  
-<s>MESS_OUT is automatically called in the [[SYSTEM_INT1]] call</s>. '''BIOS_MESS_BUSY''' ($10FDC2.b) can be used to prevent this (when setting up the command list, for example).+**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:
 </syntaxhighlight> </syntaxhighlight>
  
-==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:
 </syntaxhighlight> </syntaxhighlight>
  
-==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:
 </syntaxhighlight> </syntaxhighlight>
  
-==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:
 </syntaxhighlight> </syntaxhighlight>
  
-==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:
 </syntaxhighlight> </syntaxhighlight>
  
-==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).<br /> 0x60-0x7F map to 0x0A0-0x0BF (upper) and 0x0E0-0x0FF (lower).<br />
  
-==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:
 '''The call stack seems to be 5 addresses deep.''' Be sure to avoid nesting too many list calls. '''The call stack seems to be 5 addresses deep.''' Be sure to avoid nesting too many list calls.
  
-==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:
 </syntaxhighlight> </syntaxhighlight>
  
-==Command D: Repeat and increment output==+==== Command D: Repeat and increment output ==== 
 *2 words *2 words
  
neo-geo/rom-mess-out.1691136586.txt.gz · Dernière modification : 2023/08/04 10:09 de frater