symbolics: init ram to 0xFFFF instead of 0 and try to emulate one i/o register; notetaker fix a comment (nw)

This commit is contained in:
Lord-Nightmare 2016-03-23 16:15:22 -04:00
parent 22ac6aff21
commit b804339384
2 changed files with 29 additions and 7 deletions

View File

@ -631,7 +631,7 @@ irq7 VSync (interrupt from the VSYN VSync pin from the crt5027)
0xf2 to port 0x142 (reg1 interlaced, hswidth=0xE, hsdelay=2) \
0x7d to port 0x144 (reg2 16 scans/row, 5 chars/datarow) \
0x1d to port 0x146 (reg3 0 skew bits, 0x1D datarows/frame) \_ set up CRTC
0x04 to port 0x148 (reg4 4 scan lines/frame /
0x04 to port 0x148 (reg4 4 scan lines/frame) /
0x10 to port 0x14a (reg5 0x10 vdatastart) /
0x00 to port 0x154 (reset the crtc) /
0x1e to port 0x15a (reg8 load cursor line address = 0x1e) /

View File

@ -75,6 +75,7 @@ public:
required_device<m68000_base_device> m_maincpu;
DECLARE_DRIVER_INIT(symbolics);
DECLARE_READ16_MEMBER(buserror_r);
DECLARE_READ16_MEMBER(fep_paddle_id_prom_r);
//protected:
// virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
@ -90,6 +91,11 @@ READ16_MEMBER(symbolics_state::buserror_r)
return 0;
}
READ16_MEMBER(symbolics_state::fep_paddle_id_prom_r) // bits 8 and 9 do something special if both are set.
{
return 0x0300;
}
/******************************************************************************
Address Maps
@ -138,7 +144,7 @@ a23 a22 a21 a20 a19 a18 a17 a16 a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 x? 1 RW MPSC-1-B
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 *? R? SPY-DMA-HIGH-ADDRS
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 *? R SPY-DMA-CONTROLLER
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 ?? R FEP-PADDLE-ID-PROM
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 x? 0 0 0 ?? R FEP-PADDLE-ID-PROM
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 ?? R FEP-BOARD-ID-PROM
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 W FEP-BOARD-ID-CONTROL
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 W FEP-DMA-AND-CLOCK-CTL
@ -156,23 +162,37 @@ Now for stuff the 3670 nfep code actually accesses:
| | | | | | hex
| | | | | | | | octal
@310: write
@A2A4: write to FF
Soft reset
[:maincpu] ':maincpu' (000310): unmapped program memory write to FF00E0 = 0202 & 00FF (FEP-BOARD-ID-CONTROL)
[:maincpu] ':maincpu' (00A2AA): unmapped program memory read from FF00B0 & FF00 (FEP-PADDLE-ID-PROM)
[:maincpu] ':maincpu' (00A2EA): unmapped program memory write to FF018A = 5555 & FFFF (unknown)
[:maincpu] ':maincpu' (006B48): unmapped program memory write to 000000 = 000A & FFFF off into the weeds?
[:maincpu] ':maincpu' (006B4C): unmapped program memory write to 000002 = 0000 & FFFF "
[:maincpu] ':maincpu' (006B4C): unmapped program memory write to 000004 = 0000 & FFFF "
[:maincpu] ':maincpu' (006B50): unmapped program memory write to 000006 = 0000 & FFFF "
[:maincpu] ':maincpu' (006B50): unmapped program memory write to 000008 = 0000 & FFFF "
[:maincpu] ':maincpu' (006B58): unmapped program memory write to 00000A = FFFF & FFFF "
[:maincpu] ':maincpu' (006B60): unmapped program memory write to FFFFFE = FFFF & FFFF "
[:maincpu] ':maincpu' (00A2AA): unmapped program memory read from FF00B0 & FF00
*/
static ADDRESS_MAP_START(m68k_mem, AS_PROGRAM, 16, symbolics_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x01ffff) AM_ROM /* ROM lives here, and writing to 0x00-0x08 writes to the main lisp ram? */
//AM_RANGE(0x000000, 0x01ffff) AM_ROM /* ROM lives here */
AM_RANGE(0x000000, 0x00bfff) AM_ROM
AM_RANGE(0x010000, 0x01bfff) AM_ROM
//AM_RANGE(0x020000, 0x03ffff) AM_RAM /* Local FEP ram seems to be here? there are 18 mcm4164s on the pcb which probably map here, plus 2 parity bits? */
AM_RANGE(0x020000, 0x03ffff) AM_RAM /* Local FEP ram seems to be here? there are 18 mcm4164s on the pcb which probably map here, plus 2 parity bits? */
AM_RANGE(0x020000, 0x03ffff) AM_RAM AM_REGION("fepdram", 0) /* Local FEP ram seems to be here? there are 18 mcm4164s on the pcb which probably map here, plus 2 parity bits? */
// 2x AM9128-10PC 2048x8 SRAMs @F7 and @G7 map somewhere
// 6x AM2148-50 1024x4bit SRAMs @F22-F27 map somewhere
//AM_RANGE(0x040000, 0xffffff) AM_READ(buserror_r);
//AM_RANGE(0x800000, 0xffffff) AM_RAM /* paged access to lispm ram? */
//FF00B0 is readable, may be to read the MC/SQ/DP/AU continuity lines?
AM_RANGE(0xff00b0, 0xff00b1) AM_READ(fep_paddle_id_prom_r)
//FF00E1 is writable, may control the LBUS_POWER_RESET line, see http://bitsavers.trailing-edge.com/pdf/symbolics/3600_series/Lisp_Machine_Hardware_Memos.pdf page 90
// or may be writing to FEP-LBUS-CONTROL bit 0x02 DOORBELL INT ENABLE ?
// or may actually be setting LBUS_ID_REQ as the patent map shows
//FF018A is writable, gets 0x5555 written to it
ADDRESS_MAP_END
@ -209,6 +229,7 @@ TIMER_CALLBACK_MEMBER(symbolics_state::outfifo_read_cb)
/* Driver init: stuff that needs setting up which isn't directly affected by reset */
DRIVER_INIT_MEMBER(symbolics_state,symbolics)
{
}
static MACHINE_CONFIG_START( symbolics, symbolics_state )
@ -281,6 +302,7 @@ ROM_START( s3670 )
LBARB.4 @I18
SERCTL.4 @K6
*/
ROM_REGION16_BE( 0x20000, "fepdram", ROMREGION_ERASEFF )
ROM_END
/******************************************************************************