summaryrefslogtreecommitdiffstats
path: root/src/mame/machine/lisa.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/lisa.cpp')
-rw-r--r--src/mame/machine/lisa.cpp66
1 files changed, 14 insertions, 52 deletions
diff --git a/src/mame/machine/lisa.cpp b/src/mame/machine/lisa.cpp
index 86f472ee854..4fbce2e6555 100644
--- a/src/mame/machine/lisa.cpp
+++ b/src/mame/machine/lisa.cpp
@@ -43,60 +43,30 @@
#include "screen.h"
-/*
- pointers with RAM & ROM location
-*/
-
/* up to 2MB of 68k RAM (normally 1MB or 512kb), generally 16kb of ROM */
/* offsets in "maincpu" */
#define RAM_OFFSET 0x004000
#define ROM_OFFSET 0x000000
-/* 1kb of RAM for 6504 floppy disk controller (shared with 68000), and 4kb of
-ROM (8kb on some boards, but then only one 4kb bank is selected, according to
-the drive type (TWIGGY or 3.5'')) */
-
-/* special ROM (includes S/N) */
-
-
/*
- MMU regs
-*/
-
-
-
+ 1kb of RAM for 6504 floppy disk controller (shared with 68000), and 4kb of
+ ROM (8kb on some boards, but then only one 4kb bank is selected, according to
+ the drive type (TWIGGY or 3.5''))
+ special ROM (includes S/N)
-/*
parity logic - only hard errors are emulated for now, since
a) the ROMs power-up test only tests hard errors
b) most memory boards do not use soft errors (i.e. they only generate 1
parity bit to detect errors, instead of generating several ECC bits to
fix errors)
-*/
-
-
-
-/*
- video
-*/
-
-
-/*
2 vias : one is used for communication with COPS ; the other may be used to interface
a hard disk
*/
/*
- floppy disk interface
-*/
-
-
-
-
-/*
lisa model identification
*/
enum lisa_model_t
@@ -110,14 +80,6 @@ enum lisa_model_t
/*
- protos
-*/
-
-
-
-
-
-/*
Interrupt handling
*/
@@ -558,7 +520,7 @@ TIMER_CALLBACK_MEMBER(lisa_state::set_COPS_ready)
m_via0->write_pb6(m_COPS_Ready);
/* impulsion width : +/- 20us */
- machine().scheduler().timer_set(attotime::from_usec(20), timer_expired_delegate(FUNC(lisa_state::read_COPS_command),this));
+ m_cops_cmd_timer->adjust(attotime::from_usec(20));
}
void lisa_state::reset_COPS()
@@ -934,12 +896,15 @@ void lisa_state::init_mac_xl()
void lisa_state::machine_start()
{
- m_mouse_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(lisa_state::handle_mouse),this));
+ m_mouse_timer = timer_alloc(FUNC(lisa_state::handle_mouse), this);
/* read command every ms (don't know the real value) */
- m_cops_ready_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(lisa_state::set_COPS_ready), this));
+ m_cops_ready_timer = timer_alloc(FUNC(lisa_state::set_COPS_ready), this);
m_cops_ready_timer->adjust(attotime::from_msec(1), 0, attotime::from_msec(1));
+ m_cops_cmd_timer = timer_alloc(FUNC(lisa_state::read_COPS_command), this);
+ m_cops_cmd_timer->adjust(attotime::never);
+
m_nvram->set_base(m_fdc_ram, 1024);
m_fifo_tail = 0;
@@ -989,17 +954,14 @@ void lisa_state::machine_reset()
/* reset COPS keyboard/mouse controller */
init_COPS();
+ m_cops_cmd_timer->adjust(attotime::never);
- {
- COPS_via_out_ca2(0); /* VIA core forgets to do so */
- }
+ COPS_via_out_ca2(0); /* VIA core forgets to do so */
/* initialize floppy */
+ if (m_features.floppy_hardware == sony_lisa2)
{
- if (m_features.floppy_hardware == sony_lisa2)
- {
- sony_set_enable_lines(m_fdc, 1); /* on lisa2, drive unit 1 is always selected (?) */
- }
+ sony_set_enable_lines(m_fdc, 1); /* on lisa2, drive unit 1 is always selected (?) */
}
}