OSD: use the same commands for Minimig.
This commit is contained in:
6
menu.cpp
6
menu.cpp
@@ -846,7 +846,7 @@ void HandleUI(void)
|
||||
{
|
||||
menu_visible = 0;
|
||||
video_menu_bg((user_io_8bit_set_status(0, 0) & 0xE) >> 1, 1);
|
||||
spi_osd_cmd(MM1_OSDCMDDISABLE);
|
||||
spi_osd_cmd(OSD_CMD_DISABLE);
|
||||
}
|
||||
else if (!menu_visible)
|
||||
{
|
||||
@@ -863,8 +863,8 @@ void HandleUI(void)
|
||||
c = 0;
|
||||
menu_visible = 1;
|
||||
video_menu_bg((user_io_8bit_set_status(0, 0) & 0xE) >> 1);
|
||||
spi_osd_cmd(MM1_OSDCMDWRITE | 8);
|
||||
spi_osd_cmd(MM1_OSDCMDENABLE);
|
||||
spi_osd_cmd(OSD_CMD_WRITE | 8);
|
||||
spi_osd_cmd(OSD_CMD_ENABLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
74
osd.cpp
74
osd.cpp
@@ -226,10 +226,7 @@ void OsdWriteOffset(unsigned char n, const char *s, unsigned char invert, unsign
|
||||
stipple = 0;
|
||||
|
||||
// select buffer and line to write to
|
||||
if (!is_minimig())
|
||||
spi_osd_cmd_cont(MM1_OSDCMDWRITE | n);
|
||||
else
|
||||
spi_osd_cmd32_cont(OSD_CMD_OSD_WR, n);
|
||||
spi_osd_cmd_cont(OSD_CMD_WRITE | n);
|
||||
|
||||
if (invert) invert = 255;
|
||||
|
||||
@@ -293,11 +290,7 @@ void OsdWriteOffset(unsigned char n, const char *s, unsigned char invert, unsign
|
||||
|
||||
// send new line number to OSD
|
||||
DisableOsd();
|
||||
|
||||
if (!is_minimig())
|
||||
spi_osd_cmd_cont(MM1_OSDCMDWRITE | n);
|
||||
else
|
||||
spi_osd_cmd32_cont(OSD_CMD_OSD_WR, n);
|
||||
spi_osd_cmd_cont(OSD_CMD_WRITE | n);
|
||||
}
|
||||
else if (i<(linelimit - 8)) { // normal character
|
||||
unsigned char c;
|
||||
@@ -344,14 +337,7 @@ void OsdDrawLogo(int row)
|
||||
uint n = row * mag;
|
||||
|
||||
// select buffer and line to write to
|
||||
if (!is_minimig())
|
||||
{
|
||||
spi_osd_cmd_cont(MM1_OSDCMDWRITE | n);
|
||||
}
|
||||
else
|
||||
{
|
||||
spi_osd_cmd32_cont(OSD_CMD_OSD_WR, n);
|
||||
}
|
||||
spi_osd_cmd_cont(OSD_CMD_WRITE | n);
|
||||
|
||||
for (int k = 0; k < mag; k++)
|
||||
{
|
||||
@@ -410,13 +396,9 @@ void OSD_PrintText(unsigned char line, const char *hdr, const char *text, unsign
|
||||
int i, j;
|
||||
|
||||
// select buffer and line to write to
|
||||
if (!is_minimig())
|
||||
spi_osd_cmd_cont(MM1_OSDCMDWRITE | line);
|
||||
else
|
||||
spi_osd_cmd32_cont(OSD_CMD_OSD_WR, line);
|
||||
spi_osd_cmd_cont(OSD_CMD_WRITE | line);
|
||||
|
||||
if (invert)
|
||||
invert = 0xff;
|
||||
if (invert) invert = 0xff;
|
||||
|
||||
p = &titlebuffer[(osd_size - 1 - line) * 8];
|
||||
if (start>2)
|
||||
@@ -532,10 +514,7 @@ void OSD_PrintInfo(const char *message, int *width, int *height, int frame)
|
||||
|
||||
for (y = 0; y < h; y++)
|
||||
{
|
||||
if (!is_minimig())
|
||||
spi_osd_cmd_cont(MM1_OSDCMDWRITE | y);
|
||||
else
|
||||
spi_osd_cmd32_cont(OSD_CMD_OSD_WR, y);
|
||||
spi_osd_cmd_cont(OSD_CMD_WRITE | y);
|
||||
|
||||
for (x = 0; x < w; x++)
|
||||
{
|
||||
@@ -550,14 +529,8 @@ void OSD_PrintInfo(const char *message, int *width, int *height, int frame)
|
||||
// clear OSD frame buffer
|
||||
void OsdClear(void)
|
||||
{
|
||||
// select buffer to write to
|
||||
if (!is_minimig()) spi_osd_cmd_cont(MM1_OSDCMDWRITE);
|
||||
else spi_osd_cmd32_cont(OSD_CMD_OSD_WR, 0);
|
||||
|
||||
// clear buffer
|
||||
spi_osd_cmd_cont(OSD_CMD_WRITE);
|
||||
spi_n(0x00, OSDLINELEN * OsdGetSize());
|
||||
|
||||
// deselect OSD SPI device
|
||||
DisableOsd();
|
||||
}
|
||||
|
||||
@@ -565,27 +538,14 @@ void OsdClear(void)
|
||||
void OsdEnable(unsigned char mode)
|
||||
{
|
||||
user_io_osd_key_enable(mode & DISABLE_KEYBOARD);
|
||||
|
||||
mode &= DISABLE_KEYBOARD;
|
||||
|
||||
if (!is_minimig()) spi_osd_cmd(MM1_OSDCMDENABLE | mode);
|
||||
else spi_osd_cmd8(OSD_CMD_OSD, 0x01 | mode);
|
||||
spi_osd_cmd(OSD_CMD_ENABLE | mode);
|
||||
}
|
||||
|
||||
void InfoEnable(int x, int y, int width, int height)
|
||||
{
|
||||
user_io_osd_key_enable(0);
|
||||
|
||||
if (!is_minimig())
|
||||
{
|
||||
spi_osd_cmd_cont(MM1_OSDCMDENABLE | OSD_INFO);
|
||||
}
|
||||
else
|
||||
{
|
||||
spi_osd_cmd_cont(OSD_CMD_OSD);
|
||||
spi8(1 | OSD_INFO);
|
||||
}
|
||||
|
||||
spi_osd_cmd_cont(OSD_CMD_ENABLE | OSD_INFO);
|
||||
spi_w(x);
|
||||
spi_w(y);
|
||||
spi_w(width);
|
||||
@@ -595,15 +555,7 @@ void InfoEnable(int x, int y, int width, int height)
|
||||
|
||||
void OsdRotation(uint8_t rotate)
|
||||
{
|
||||
if (!is_minimig())
|
||||
{
|
||||
spi_osd_cmd_cont(MM1_OSDCMDDISABLE);
|
||||
}
|
||||
else
|
||||
{
|
||||
spi_osd_cmd_cont(OSD_CMD_OSD);
|
||||
spi8(0);
|
||||
}
|
||||
spi_osd_cmd_cont(OSD_CMD_DISABLE);
|
||||
spi_w(0);
|
||||
spi_w(0);
|
||||
spi_w(0);
|
||||
@@ -616,11 +568,7 @@ void OsdRotation(uint8_t rotate)
|
||||
void OsdDisable(void)
|
||||
{
|
||||
user_io_osd_key_enable(0);
|
||||
|
||||
if (!is_minimig())
|
||||
spi_osd_cmd(MM1_OSDCMDDISABLE);
|
||||
else
|
||||
spi_osd_cmd8(OSD_CMD_OSD, 0x00);
|
||||
spi_osd_cmd(OSD_CMD_DISABLE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
63
osd.h
63
osd.h
@@ -1,48 +1,29 @@
|
||||
#ifndef OSD_H_INCLUDED
|
||||
#define OSD_H_INCLUDED
|
||||
|
||||
/*constants*/
|
||||
#define OSDCTRLUP 0x01 /*OSD up control*/
|
||||
#define OSDCTRLDOWN 0x02 /*OSD down control*/
|
||||
#define OSDCTRLSELECT 0x04 /*OSD select control*/
|
||||
#define OSDCTRLMENU 0x08 /*OSD menu control*/
|
||||
#define OSDCTRLRIGHT 0x10 /*OSD right control*/
|
||||
#define OSDCTRLLEFT 0x20 /*OSD left control*/
|
||||
#include <inttypes.h>
|
||||
|
||||
// some constants
|
||||
#define OSDLINELEN 256 // single line length in bytes
|
||||
|
||||
// ---- old Minimig v1 constants -------
|
||||
#define MM1_OSDCMDREAD 0x00 // OSD read controller/key status
|
||||
#define MM1_OSDCMDWRITE 0x20 // OSD write video data command
|
||||
#define MM1_OSDCMDENABLE 0x41 // OSD enable command
|
||||
#define MM1_OSDCMDDISABLE 0x40 // OSD disable command
|
||||
#define MM1_OSDCMDRST 0x80 // OSD reset command
|
||||
#define MM1_OSDCMDAUTOFIRE 0x84 // OSD autofire command
|
||||
#define MM1_OSDCMDCFGSCL 0xA0 // OSD settings: scanlines effect
|
||||
#define MM1_OSDCMDCFGIDE 0xB0 // OSD enable HDD command
|
||||
#define MM1_OSDCMDCFGFLP 0xC0 // OSD settings: floppy config
|
||||
#define MM1_OSDCMDCFGCHP 0xD0 // OSD settings: chipset config
|
||||
#define MM1_OSDCMDCFGFLT 0xE0 // OSD settings: filter
|
||||
#define MM1_OSDCMDCFGMEM 0xF0 // OSD settings: memory config
|
||||
#define MM1_OSDCMDCFGCPU 0xFC // OSD settings: CPU config
|
||||
#define OSD_CMD_WRITE 0x20 // OSD write video data command
|
||||
#define OSD_CMD_ENABLE 0x41 // OSD enable command
|
||||
#define OSD_CMD_DISABLE 0x40 // OSD disable command
|
||||
|
||||
// ---- new Minimig v2 constants -------
|
||||
#define OSD_CMD_READ 0x00
|
||||
#define OSD_CMD_RST 0x08
|
||||
#define OSD_CMD_CLK 0x18
|
||||
#define OSD_CMD_OSD 0x28
|
||||
#define OSD_CMD_CHIP 0x04
|
||||
#define OSD_CMD_CPU 0x14
|
||||
#define OSD_CMD_MEM 0x24
|
||||
#define OSD_CMD_VID 0x34
|
||||
#define OSD_CMD_FLP 0x44
|
||||
#define OSD_CMD_HDD 0x54
|
||||
#define OSD_CMD_JOY 0x64
|
||||
#define OSD_CMD_AUD 0x74
|
||||
#define OSD_CMD_OSD_WR 0x0c
|
||||
#define OSD_CMD_WR 0x1c
|
||||
#define OSD_CMD_VERSION 0x88
|
||||
// ---- Minimig v2 constants -------
|
||||
#define OSD_CMD_READ 0x00
|
||||
#define OSD_CMD_RST 0x08
|
||||
#define OSD_CMD_CLK 0x18
|
||||
#define OSD_CMD_CHIP 0x04
|
||||
#define OSD_CMD_CPU 0x14
|
||||
#define OSD_CMD_MEM 0x24
|
||||
#define OSD_CMD_VID 0x34
|
||||
#define OSD_CMD_FLP 0x44
|
||||
#define OSD_CMD_HDD 0x54
|
||||
#define OSD_CMD_JOY 0x64
|
||||
#define OSD_CMD_AUD 0x74
|
||||
#define OSD_CMD_WR 0x1c
|
||||
#define OSD_CMD_VERSION 0x88
|
||||
|
||||
#define DISABLE_KEYBOARD 0x02 // disable keyboard while OSD is active
|
||||
#define OSD_INFO 0x04 // display info
|
||||
@@ -55,15 +36,13 @@
|
||||
#define CONFIG_NTSC 2
|
||||
#define CONFIG_A1000 4
|
||||
#define CONFIG_ECS 8
|
||||
#define CONFIG_AGA 16
|
||||
#define CONFIG_AGA 16
|
||||
|
||||
#define CONFIG_FLOPPY1X 0
|
||||
#define CONFIG_FLOPPY2X 1
|
||||
|
||||
#define OSD_ARROW_LEFT 1
|
||||
#define OSD_ARROW_RIGHT 2
|
||||
|
||||
#include <inttypes.h>
|
||||
#define OSD_ARROW_LEFT 1
|
||||
#define OSD_ARROW_RIGHT 2
|
||||
|
||||
/*functions*/
|
||||
void OsdSetTitle(const char *s, int arrow = 0); // arrow > 0 = display right arrow in bottom right, < 0 = display left arrow
|
||||
|
||||
Reference in New Issue
Block a user