ReC98/pc98.inc
nmlgc 152ecaa496 [Separate translation units] [th05] Music Room piano (undecompilable functions)
Reasons:
• piano_fm_part_put_raw(): SI register referenced and not saved on
  the stack
• piano_current_note_from(): Would be decompilable… into a mess.
  Not worth adding a separate translation unit just for it.
• piano_part_keys_put_raw(): DI register saved before the SI register
• piano_pressed_key_put(): DI register referenced and not immediately
  saved on the stack
• piano_label_put_raw(): SI and DI registered referenced and not saved
  on the stack
• grcg_setcolor_direct_seg1_raw(): Let's procrastinate this one until
  we have to reference all of these instances in C land.

And we could have even emitted that PIANO_KEY_PRESSED_TOP pixel data
into the code segment, by using `#pragma option -z` to give identical
names to both the code and the data segment. At least we can decompile
the first two functions here.

Part of P0135, funded by [Anonymous].
2021-03-19 23:23:06 +01:00

43 lines
653 B
HTML

; ReC98
; -----
; PC-98 hardware constants not covered by master.lib
; Text
; ====
GAIJI_W = 16
GAIJI_TRAM_W = (GAIJI_W / 8)
GLYPH_HALF_W = 8
GLYPH_FULL_W = 16
GLYPH_H = 16
; ====
; Graphics
; ========
BYTE_DOTS = 8
RES_X = 640
RES_Y = 400
ROW_SIZE = (RES_X / BYTE_DOTS)
PLANE_SIZE = (ROW_SIZE * RES_Y)
COLOR_COUNT = 16
PLANE_COUNT = 4
; RGB color triple, used for the Palettes structure
rgb_t struc
r db ?
g db ?
b db ?
rgb_t ends
palette_t struc
colors rgb_t COLOR_COUNT dup(<?>)
palette_t ends
; ========
SEG_PLANE_B = 0A800h
SEG_PLANE_R = 0B000h
SEG_PLANE_G = 0B800h
SEG_PLANE_E = 0E000h
SEG_PLANE_DIST_BRG = 800h
SEG_PLANE_DIST_E = 2800h