mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
(MESS) abc806: Implemented flashing, double height, and underlined characters by hooking up the RAD PROM. [Curt Coder]
This commit is contained in:
parent
18db099c19
commit
1fab76fe36
@ -137,6 +137,16 @@ Notes:
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
TODO:
|
||||
|
||||
- cassette
|
||||
- abc806 RTC
|
||||
- abc806 disks except ufd631 won't boot
|
||||
|
||||
*/
|
||||
|
||||
#include "includes/abc80x.h"
|
||||
|
||||
|
||||
@ -1628,4 +1638,4 @@ DRIVER_INIT_MEMBER(abc806_state,driver_init)
|
||||
COMP( 1981, abc800c, 0, 0, abc800c, abc800, abc800c_state, driver_init, "Luxor Datorer AB", "ABC 800 C/HR", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1981, abc800m, abc800c, 0, abc800m, abc800, abc800m_state, driver_init, "Luxor Datorer AB", "ABC 800 M/HR", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1983, abc802, 0, 0, abc802, abc802, abc802_state, driver_init, "Luxor Datorer AB", "ABC 802", GAME_SUPPORTS_SAVE )
|
||||
COMP( 1983, abc806, 0, 0, abc806, abc806, abc806_state, driver_init, "Luxor Datorer AB", "ABC 806", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
|
||||
COMP( 1983, abc806, 0, 0, abc806, abc806, abc806_state, driver_init, "Luxor Datorer AB", "ABC 806", GAME_SUPPORTS_SAVE )
|
||||
|
@ -6,17 +6,6 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/*
|
||||
|
||||
TODO:
|
||||
|
||||
- hook up RAD prom
|
||||
- flashing
|
||||
- double height
|
||||
- underline
|
||||
|
||||
*/
|
||||
|
||||
#include "includes/abc80x.h"
|
||||
|
||||
|
||||
@ -227,7 +216,6 @@ MC6845_UPDATE_ROW( abc806_state::abc806_update_row )
|
||||
{
|
||||
const pen_t *pen = m_palette->pens();
|
||||
|
||||
// UINT8 old_data = 0xff;
|
||||
int fg_color = 7;
|
||||
int bg_color = 0;
|
||||
int underline = 0;
|
||||
@ -242,21 +230,21 @@ MC6845_UPDATE_ROW( abc806_state::abc806_update_row )
|
||||
{
|
||||
UINT8 data = m_char_ram[(ma + column) & 0x7ff];
|
||||
UINT8 attr = m_attr_ram[(ma + column) & 0x7ff];
|
||||
UINT16 rad_addr;
|
||||
UINT8 rad_data;
|
||||
|
||||
if ((attr & 0x07) == ((attr >> 3) & 0x07))
|
||||
{
|
||||
// special case
|
||||
|
||||
switch (attr >> 6)
|
||||
{
|
||||
case 0:
|
||||
// use previously selected attributes
|
||||
break;
|
||||
|
||||
case 1:
|
||||
// reserved for future use
|
||||
break;
|
||||
|
||||
case 2:
|
||||
// blank
|
||||
fg_color = 0;
|
||||
@ -264,6 +252,7 @@ MC6845_UPDATE_ROW( abc806_state::abc806_update_row )
|
||||
underline = 0;
|
||||
flash = 0;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
// double width
|
||||
e5 = BIT(attr, 0);
|
||||
@ -299,10 +288,8 @@ MC6845_UPDATE_ROW( abc806_state::abc806_update_row )
|
||||
}
|
||||
else
|
||||
{
|
||||
rad_addr = (e6 << 8) | (e5 << 7) | (flash << 6) | (underline << 5) | (m_flshclk << 4) | ra;
|
||||
UINT16 rad_addr = (e6 << 8) | (e5 << 7) | (flash << 6) | (underline << 4) | (m_flshclk << 5) | (ra & 0x0f);
|
||||
rad_data = m_rad_prom->base()[rad_addr] & 0x0f;
|
||||
|
||||
rad_data = ra; // HACK because the RAD prom is not dumped yet
|
||||
}
|
||||
|
||||
UINT16 chargen_addr = (th << 12) | (data << 4) | rad_data;
|
||||
@ -328,8 +315,6 @@ MC6845_UPDATE_ROW( abc806_state::abc806_update_row )
|
||||
{
|
||||
column++;
|
||||
}
|
||||
|
||||
// old_data = data;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user