Previous 15994 Revisions Next

r8086 Wednesday 19th May, 2010 at 14:33:12 UTC by Curt Coder
[AIM65_40] Mapped devices.
[src/mess/drivers]aim65_40.c
[src/mess/includes]aim65_40.h*

src/mess/includes/aim65_40.h
r0r8086
1#pragma once
2
3#ifndef __AIM65_40__
4#define __AIM65_40__
5
6#define M6502_TAG      "m6502"
7#define M6522_0_TAG      "m6522_0"
8#define M6522_1_TAG      "m6522_1"
9#define M6522_2_TAG      "m6522_2"
10#define M6551_TAG      "m6551"
11#define SPEAKER_TAG      "speaker"
12
13class aim65_40_state
14{
15public:
16   static void *alloc(running_machine &machine) { return auto_alloc_clear(&machine, aim65_40_state(machine)); }
17
18   aim65_40_state(running_machine &machine) { }
19
20   /* devices */
21   running_device *via0;
22   running_device *via1;
23   running_device *via2;
24   running_device *speaker;
25};
26
27#endif
src/mess/drivers/aim65_40.c
r8085r8086
66
77***************************************************************************/
88
9/*
10
11Attached are the three main aim-65/40 roms, plus one unlabeled expansion rom for the 65/40 which someone had accidentally stuck into the aim-65 non/40 I was restoring on campus. (The rom pinout is different between the two systems, iirc.). I have no idea what that rom does.
12The .zxx location on the rom filename (labeled R2332LP // R3224-11 // 8224) is hence wrong; it should probably be .z70 (at 0xc000-cfff) or .z72 (0xe000-0xefff)
13
14
15The aim-65/40 has the following stuff on it:
16XTALS: 16Mhz, 1.8432Mhz
176522 VIA ('Keyboard VIA' which reads the keyboard)
186522 VIA ('System VIA' which does the display and printer, and probably the cassette interface)
196522 VIA ('User VIA' which is in charge of the parallel port and expansion I/O)
206502 processor (clock is some division of the 16Mhz XTAL)
216551 ACIA (marked JACIA on board; used for serial port, has its own 1.8432Mhz XTAL)
22Onboard beeper/speaker
23Other chips: MC3242A, MC3480P, SN74159N, mc1488/1489 pair (for rs232)
24ROM: 8 sockets meant for 2332 mask roms/mcm68732 eproms, or, if only 4 sockets are used, 2364 mask roms/mcm68764 eproms, selectable which mode by jumper. (normal 2732s won't work due to an inverted vpp pin i think, but theres jumpers on the board which will probably allow it), each socket addresses 0x1000 (or 0x2000) of space:
25z63 is 0x8000-0x8fff, (see below about possible expansion ram here instead of rom)
26z64 is 0x9000-0x9fff, (see below about possible expansion ram here instead of rom)
27z65 is 0xa000-0xafff (first monitor rom lives here on my board),(see below about possible expansion ram here instead of rom)
28z66 is 0xb000-0xbfff (second monitor rom lives here on my board),(see below about possible expansion ram here instead of rom)
29z70 is 0xc000-0xcfff
30z71 is 0xd000-0xdfff
31z72 is 0xe000-0xefff
32z73 is 0xf000-0xffff (i/o rom always lives here)
33RAM:
34The aim-65/40 comes standard with anywhere from 4k to 16k of ram at 0x0000-0x3fff, and can be populated in 4k increments with another 16k at 0x4000-0x7fff and another 16k at 0x8000-0xbfff (if installed, this last 16k prevents the first four rom sockets from being used since they address the same place, and the monitor roms must be moved to the z70 and z71, or z71 and z72 sockets. The i/o rom knows to search on 4k boundaries for the monitor roms)
35The vias and acia are memory mapped over top of a blank area in the i/o rom from 0xff80 to 0xffe0, as such:
36ff80-ff9f = unknown, open bus?
37ffa0-ffaf = user via
38ffb0-ffbf = system via
39ffc0-ffcf = keyboars via
40ffd0-ffd3 (mirrored at ffd4, ffd8, ffdc probably) = acia
41
42I have a copy of the official 'green book' Aim 65/40 i/o rom listing/asm source code, which is very informative about how the hardware works. However it is going to be a major pain in the ass to scan, owing to its small size and failing binding.
43The source code there implies that *maybe* ff7e and ff7f are also open bus.
44
45*/
46
947#include "emu.h"
48#include "includes/aim65_40.h"
1049#include "cpu/m6502/m6502.h"
50#include "machine/6522via.h"
51#include "machine/6551.h"
1152#include "aim65_40.lh"
1253
13
1454/***************************************************************************
1555    ADDRESS MAPS
1656***************************************************************************/
1757
1858static ADDRESS_MAP_START( aim65_40_mem, ADDRESS_SPACE_PROGRAM, 8 )
19   AM_RANGE(0xa000, 0xffff) AM_ROM
59   AM_RANGE(0x0000, 0x3fff) AM_RAM
60   AM_RANGE(0xa000, 0xff7f) AM_ROM
61   AM_RANGE(0xffa0, 0xffaf) AM_DEVREADWRITE(M6522_0_TAG, via_r, via_w)
62   AM_RANGE(0xffb0, 0xffbf) AM_DEVREADWRITE(M6522_0_TAG, via_r, via_w)
63   AM_RANGE(0xffc0, 0xffcf) AM_DEVREADWRITE(M6522_0_TAG, via_r, via_w)
64   AM_RANGE(0xffd0, 0xffd3) AM_DEVREADWRITE(M6551_TAG, acia_6551_r, acia_6551_w)
65   AM_RANGE(0xffe0, 0xffff) AM_ROM
2066ADDRESS_MAP_END
2167
22
2368/***************************************************************************
2469    INPUT PORTS
2570***************************************************************************/
r8085r8086
2772static INPUT_PORTS_START( aim65_40 )
2873INPUT_PORTS_END
2974
75/***************************************************************************
76    DEVICE INTERFACES
77***************************************************************************/
3078
79static const via6522_interface user_via_intf =
80{
81   DEVCB_NULL,
82   DEVCB_NULL,
83   DEVCB_NULL,
84   DEVCB_NULL,
85   DEVCB_NULL,
86   DEVCB_NULL,
87   DEVCB_NULL,
88   DEVCB_NULL,
89   DEVCB_NULL,
90   DEVCB_NULL,
91   DEVCB_NULL,
92   DEVCB_NULL,
93   DEVCB_NULL
94};
95
96static const via6522_interface system_via_intf =
97{
98   DEVCB_NULL,
99   DEVCB_NULL,
100   DEVCB_NULL,
101   DEVCB_NULL,
102   DEVCB_NULL,
103   DEVCB_NULL,
104   DEVCB_NULL,
105   DEVCB_NULL,
106   DEVCB_NULL,
107   DEVCB_NULL,
108   DEVCB_NULL,
109   DEVCB_NULL,
110   DEVCB_NULL
111};
112
113static const via6522_interface kb_via_intf =
114{
115   DEVCB_NULL,
116   DEVCB_NULL,
117   DEVCB_NULL,
118   DEVCB_NULL,
119   DEVCB_NULL,
120   DEVCB_NULL,
121   DEVCB_NULL,
122   DEVCB_NULL,
123   DEVCB_NULL,
124   DEVCB_NULL,
125   DEVCB_NULL,
126   DEVCB_NULL,
127   DEVCB_NULL
128};
129
31130/***************************************************************************
32131    MACHINE DRIVERS
33132***************************************************************************/
34133
35134static MACHINE_DRIVER_START( aim65_40 )
36135   /* basic machine hardware */
37   MDRV_CPU_ADD("maincpu", M6502, 1000000)
136   MDRV_CPU_ADD(M6502_TAG, M6502, 1000000)
38137   MDRV_CPU_PROGRAM_MAP(aim65_40_mem)
39138
139   /* video hardware */
40140   MDRV_DEFAULT_LAYOUT(layout_aim65_40)
141
142   /* sound hardware */
143
144   /* devices */
145   MDRV_VIA6522_ADD(M6522_0_TAG, 0, user_via_intf)
146   MDRV_VIA6522_ADD(M6522_1_TAG, 0, system_via_intf)
147   MDRV_VIA6522_ADD(M6522_2_TAG, 0, kb_via_intf)
148   MDRV_ACIA6551_ADD(M6551_TAG)
41149MACHINE_DRIVER_END
42150
43
44151/***************************************************************************
45152    ROM DEFINITIONS
46153***************************************************************************/
47154
48155ROM_START( aim65_40 )
49   ROM_REGION(0x10000, "maincpu", 0)
50   ROM_LOAD("mon a v1.0 r32u5-11 8210.z65", 0xa000, 0x1000, CRC(8c970c67) SHA1(5c8aecb2155a10777a57d4f0f2d16b7ba7b1fb45))
51   ROM_LOAD("mon b v1.0 r32u6-11 8246.z66", 0xb000, 0x1000, CRC(38a1e0cd) SHA1(37c34e32ad25d27e9590ee3f325801ca311be7b1))
52   ROM_LOAD("r2332lp r3224-11 8224.z70",    0xc000, 0x1000, CRC(0878b399) SHA1(483e92b57d64be51643a9f6490521a8572aa2f68)) // Assembler
53   ROM_LOAD("i-of v1.0 r32t3-12 8152.z73",  0xf000, 0x1000, CRC(a62bec4a) SHA1(a2fc69a33dc3b7684bf3399beff7b22eaf05c843))
156   ROM_REGION( 0x10000, M6502_TAG, 0 )
157   ROM_LOAD( "mon a v1.0 r32u5-11 8210.z65", 0xa000, 0x1000, CRC(8c970c67) SHA1(5c8aecb2155a10777a57d4f0f2d16b7ba7b1fb45) )
158   ROM_LOAD( "mon b v1.0 r32u6-11 8246.z66", 0xb000, 0x1000, CRC(38a1e0cd) SHA1(37c34e32ad25d27e9590ee3f325801ca311be7b1) )
159   ROM_LOAD( "r2332lp r3224-11 8224.z70",    0xc000, 0x1000, CRC(0878b399) SHA1(483e92b57d64be51643a9f6490521a8572aa2f68) ) // Assembler
160   ROM_LOAD( "i-of v1.0 r32t3-12 8152.z73",  0xf000, 0x1000, CRC(a62bec4a) SHA1(a2fc69a33dc3b7684bf3399beff7b22eaf05c843) )
54161ROM_END
55162
56
57163/***************************************************************************
58164    GAME DRIVERS
59165***************************************************************************/

Previous 15994 Revisions Next


© 1998-2018 The MESS Team