Previous 199869 Revisions Next

r20914 Sunday 10th February, 2013 at 21:14:29 UTC by R. Belmont
apple2gs: Enable AE Vulcan IDE card (nw, will self-serve)
[src/mess/drivers]apple2gs.c
[src/mess/machine]a2vulcan.c apple2.c

trunk/src/mess/machine/a2vulcan.c
r20913r20914
44
55   Applied Engineering Vulcan IDE controller
66
7   Our copy of ROM version 1.4 will refuse any drive > 40 megs (top 2 bytes of # blocks >= 0x15b).
8   Protection against field upgrades?
9
10   Vulcan Gold ROMs omit this protection but don't work with the version of the partitioner program
11   we have.
12
713   Recognized drives by IDE features parameters:
814   (# of cylinders is never checked, just heads, sectors, and the vendor specific at 0x0A)
915
10    H  S    Vendor specific #5
11    8, 33 + 0x69
12    2, 33 + 0x69
13    4, 26 + 0x69
14    5, 29 + (any)
15    7, 29 + 0x44
16    9, 29 + (any)
17    9, 36 + 0x44
18    9, 36 + 0xff
19    7, 34 + (any)
20    4, 17 + 0x55
21    4, 26 + 0x55
22    5, 17 + 0x55
23    6, 26 + 0x55
24    2, 28 + 0x36
25    4, 28 + 0x36
26    4, 28 + 0x67
27    4, 27 + 0x43
28    5, 17 + 0x26
29   15, 32 + 0x43
30   16, 38 + 0x94
31   10, 17 + (any)
16   H  S    Vendor specific #5
17   8, 33 + 0x69  0x31d blocks   (400K?!)
18   2, 33 + 0x69  0xa208 blocks  (20 megs,  21237760  bytes)
19   4, 26 + 0x69  0x14500 blocks (40 megs,  42598400  bytes)
20   5, 29 + (any) 0x25c5b blocks (80 megs,  79214080  bytes) (chs = 1067,5,29)
21   7, 29 + 0x44  0x34e19 blocks (100 megs, 110899712 bytes)
22   9, 29 + (any) 0x44068 blocks (140 megs, 142659584 bytes) (chs = 1068,9,29)
23   9, 36 + 0x44  0x54888 blocks (180 megs, 177278976 bytes)
24   9, 36 + 0xff  0x645a8 blocks (200 megs, 210456576 bytes)
25   7, 34 + (any) 0x32252 blocks (100 megs, 105161728 bytes) (chs = 863,7,34)
26   4, 17 + 0x55  0xa218 blocks  (20 megs,  21245952  bytes)
27   4, 26 + 0x55  0xa218 blocks  (20 megs,  21245952  bytes)
28   5, 17 + 0x55  0x15234 blocks (40 megs,  44328960  bytes)
29   6, 26 + 0x55  0x15234 blocks (40 megs,  44328960  bytes)
30   2, 28 + 0x36  0xa250 blocks  (20 megs,  21274624  bytes)
31   4, 28 + 0x36  0x143c0 blocks (40 megs,  42434450  bytes)
32   4, 28 + 0x67  0x143c0 blocks (40 megs,  42434450  bytes)                                                                                         
33   4, 27 + 0x43  0x147cc blocks (40 megs,  42964992  bytes)
34   5, 17 + 0x26  0x13ec0 blocks (40 megs,  41779200  bytes) (chs = 960,5,17)
35   15, 32 + 0x43  0x5f6e0 blocks (200 megs, 200130560 bytes)
36   16, 38 + 0x94  0x6540c blocks (200 megs, 212342784 bytes)
37   10, 17 + (any) 0x2792f blocks (80 megs,  82992640  bytes) (chs = 954,10,17)
3238
39   Partition block:
40   +0000: 0xAE 0xAE  signature
41   +0002: bytesum of remaining 508 bytes of partition block
42   +0005: total # of blocks (3 bytes)
43   +000E: boot partition # (0 based)
44   +0100: partition records
45
46   Partition record:
47   +02: partition number (seems to be only valud for non-CLEAR partitions)
48   +03: little-endian unsigned word: # of 512 byte blocks
49   +06: bit 6 set for ON, bits 0-2 = 0 CLEAR, 1 PRODOS, 2 DOS 3.3, 3 PASCAL, 4 CP/M
50   +07: Partition name (Apple high-ASCII, zero terminated unless full 10 chars)
51 
3352*********************************************************************/
3453
3554#include "a2vulcan.h"
r20913r20914
107126   astring tempstring;
108127   m_rom = device().machine().root_device().memregion(this->subtag(tempstring, VULCAN_ROM_REGION))->base();
109128
110   // patch partition table check failure
111//   m_rom[0x59e] = 0xea;
112//   m_rom[0x59f] = 0xea;
129   // disable 40 meg partition size limit / protection
130   m_rom[0x59e] = 0xea;
131   m_rom[0x59f] = 0xea;
113132
114133   save_item(NAME(m_lastdata));
115134   save_item(NAME(m_ram));
r20913r20914
217236         break;
218237
219238      default:
220         printf("Write %02x @ C0n%x\n", data, offset);
239         logerror("a2vulcan: write %02x @ unhandled C0n%x\n", data, offset);
221240         break;
222241   }
223242}
r20913r20914
247266      return m_ram[offset + m_rambank];
248267   }
249268
250   return m_rom[(offset & 0x3ff)+m_rombank];
269   offset -= 0x400;
270   return m_rom[offset+m_rombank];
251271}
252272
253273void a2bus_vulcanbase_device::write_c800(address_space &space, UINT16 offset, UINT8 data)
trunk/src/mess/machine/apple2.c
r20913r20914
841841      }
842842      else
843843      {
844         meminfo->read_handler = &state->rd_c800;
845         meminfo->write_handler = &state->wd_c800;
844         meminfo->read_handler = &state->rd_ce00;
845         meminfo->write_handler = &state->wd_ce00;
846846      }
847847   }
848848}
trunk/src/mess/drivers/apple2gs.c
r20913r20914
6868#include "machine/a2sam.h"
6969#include "machine/a2alfam2.h"
7070#include "machine/a2midi.h"
71#include "machine/a2vulcan.h"
7172
7273static const gfx_layout apple2gs_text_layout =
7374{
r20913r20914
294295    SLOT_INTERFACE("sam", A2BUS_SAM)    /* SAM Software Automated Mouth (8-bit DAC + speaker) */
295296    SLOT_INTERFACE("alfam2", A2BUS_ALFAM2)    /* ALF Apple Music II */
296297   SLOT_INTERFACE("midi", A2BUS_MIDI)   /* Generic 6840+6850 MIDI board */
298   SLOT_INTERFACE("vulcan", A2BUS_VULCAN)   /* AE Vulcan IDE card */
297299//    SLOT_INTERFACE("softcard", A2BUS_SOFTCARD)  /* Microsoft SoftCard */  // appears not to be IIgs compatible?
298300//    SLOT_INTERFACE("scsi", A2BUS_SCSI)  /* Apple II SCSI Card */
299301SLOT_INTERFACE_END

Previous 199869 Revisions Next


© 1997-2024 The MAME Team