trunk/src/emu/bus/abcbus/lux21056.c
| r26120 | r26121 | |
| 11 | 11 | |
| 12 | 12 | /* |
| 13 | 13 | |
| 14 | | Use the CHDMAN utility to create a 5MB image for ABC 850: |
| 14 | Use the CHDMAN utility to create a 10MB image for ABC 850: |
| 15 | 15 | |
| 16 | 16 | $ chdman createhd -o ro202.chd -chs 321,4,17 -ss 512 |
| 17 | | $ chdman createhd -o basf6185.chd -chs 440,6,32 -ss 256 |
| 17 | $ chdman createhd -o basf6186.chd -chs 440,4,32 -ss 256 |
| 18 | 18 | |
| 19 | | or a 10MB image for ABC 852: |
| 19 | or a 20MB image for ABC 852: |
| 20 | 20 | |
| 21 | $ chdman createhd -o basf6185.chd -chs 440,6,32 -ss 256 |
| 21 | 22 | $ chdman createhd -o nec5126.chd -chs 615,4,17 -ss 512 |
| 22 | 23 | |
| 23 | | or a 20MB image for ABC 856: |
| 24 | or a 60MB image for ABC 856: |
| 24 | 25 | |
| 25 | 26 | $ chdman createhd -o micr1325.chd -chs 1024,8,33 -ss 256 |
| 26 | 27 | |
| r26120 | r26121 | |
| 28 | 29 | with the new CHD and a UFD-DOS floppy mounted: |
| 29 | 30 | |
| 30 | 31 | $ mess abc800m -bus hdd -bus:hdd:io2 xebec,bios=ro202 -flop1 ufd631 -hard ro202.chd |
| 32 | $ mess abc800m -bus hdd -bus:hdd:io2 xebec,bios=basf6186 -flop1 ufd631 -hard basf6186.chd |
| 33 | |
| 34 | or with the ABC 852 attached: |
| 35 | |
| 31 | 36 | $ mess abc800m -bus hdd -bus:hdd:io2 xebec,bios=basf6185 -flop1 ufd631 -hard basf6185.chd |
| 32 | 37 | $ mess abc800m -bus hdd -bus:hdd:io2 xebec,bios=nec5126 -flop1 ufd631 -hard nec5126.chd |
| 38 | |
| 39 | or with the ABC 856 attached: |
| 40 | |
| 33 | 41 | $ mess abc800m -bus hdd -bus:hdd:io2 xebec,bios=micr1325 -flop1 ufd631 -hard micr1325.chd |
| 34 | 42 | |
| 35 | 43 | Configure the floppy controller for use with an ABC 850: |
| r26120 | r26121 | |
| 51 | 59 | Enter "DOSGEN,F HD0:" to start the formatting utility. |
| 52 | 60 | Enter "J", and enter "J" to confirm the formatting. |
| 53 | 61 | |
| 54 | | To Be Continued... |
| 62 | If you have a 20MB image, format the second partition by entering "DOSGEN,F HD1:", "J", and "J". |
| 55 | 63 | |
| 64 | If you have a 60MB image, format the third partition by entering "DOSGEN,F HD2:", "J", and "J", |
| 65 | and format the fourth partition by entering "DOSGEN,F HD3:", "J", and "J". |
| 66 | |
| 67 | You can now list your freshly created partitions by entering "LIB". |
| 68 | |
| 69 | Or skip all of the above and use the preformatted images in the software list: |
| 70 | |
| 71 | $ mess abc800m -bus hdd -bus:hdd:io2 xebec,bios=basf6185 -flop1 ufd631 -hard abc852 |
| 72 | $ mess abc800m -bus hdd -bus:hdd:io2 xebec,bios=micr1325 -flop1 ufd631 -hard abc856 |
| 73 | |
| 56 | 74 | */ |
| 57 | 75 | |
| 58 | 76 | #include "lux21056.h" |
| r26120 | r26121 | |
| 87 | 105 | ROM_REGION( 0x2000, Z80_TAG, 0 ) |
| 88 | 106 | // ABC 850 |
| 89 | 107 | ROM_SYSTEM_BIOS( 0, "ro202", "Rodime RO202 (CHS: 321,4,17,512)" ) |
| 90 | | ROMX_LOAD( "rodi202.bin", 0x0000, 0x0800, CRC(337b4dcf) SHA1(791ebeb4521ddc11fb9742114018e161e1849bdf), ROM_BIOS(1) ) // Rodime RO202 (http://stason.org/TULARC/pc/hard-drives-hdd/rodime/RO202-11MB-5-25-FH-MFM-ST506.html) |
| 91 | | ROM_SYSTEM_BIOS( 1, "basf6185", "BASF 6185 (CHS: 440,6,32,256)" ) |
| 92 | | ROMX_LOAD( "basf6185.bin", 0x0000, 0x0800, CRC(06f8fe2e) SHA1(e81f2a47c854e0dbb096bee3428d79e63591059d), ROM_BIOS(2) ) // BASF 6185 (http://stason.org/TULARC/pc/hard-drives-hdd/basf-magnetics/6185-22MB-5-25-FH-MFM-ST412.html) |
| 108 | ROMX_LOAD( "rodi202.bin", 0x0000, 0x0800, CRC(337b4dcf) SHA1(791ebeb4521ddc11fb9742114018e161e1849bdf), ROM_BIOS(1) ) // Rodime RO202 (http://stason.org/TULARC/pc/hard-drives-hdd/rodime/RO202-11MB-5-25-FH-MFM-ST506.html) |
| 109 | ROM_SYSTEM_BIOS( 1, "basf6186", "BASF 6186 (CHS: 440,4,32,256)" ) |
| 110 | ROMX_LOAD( "basf6186.bin", 0x0000, 0x0800, NO_DUMP, ROM_BIOS(2) ) // BASF 6186 (http://stason.org/TULARC/pc/hard-drives-hdd/basf-magnetics/6186-14MB-5-25-FH-MFM-ST412.html) |
| 93 | 111 | // ABC 852 |
| 94 | | ROM_SYSTEM_BIOS( 2, "nec5126", "NEC 5126 (CHS: 615,4,17,512)" ) |
| 95 | | ROMX_LOAD( "nec5126.bin", 0x0000, 0x1000, CRC(17c247e7) SHA1(7339738b87751655cb4d6414422593272fe72f5d), ROM_BIOS(3) ) // NEC 5126 (http://stason.org/TULARC/pc/hard-drives-hdd/nec/D5126-20MB-5-25-HH-MFM-ST506.html) |
| 112 | ROM_SYSTEM_BIOS( 2, "basf6185", "BASF 6185 (CHS: 440,6,32,256)" ) |
| 113 | ROMX_LOAD( "basf6185.bin", 0x0000, 0x0800, CRC(06f8fe2e) SHA1(e81f2a47c854e0dbb096bee3428d79e63591059d), ROM_BIOS(3) ) // BASF 6185 (http://stason.org/TULARC/pc/hard-drives-hdd/basf-magnetics/6185-22MB-5-25-FH-MFM-ST412.html) |
| 114 | ROM_SYSTEM_BIOS( 3, "nec5126", "NEC 5126 (CHS: 615,4,17,512)" ) |
| 115 | ROMX_LOAD( "nec5126.bin", 0x0000, 0x1000, CRC(17c247e7) SHA1(7339738b87751655cb4d6414422593272fe72f5d), ROM_BIOS(4) ) // NEC 5126 (http://stason.org/TULARC/pc/hard-drives-hdd/nec/D5126-20MB-5-25-HH-MFM-ST506.html) |
| 96 | 116 | // ABC 856 |
| 97 | | ROM_SYSTEM_BIOS( 3, "micr1325", "Micropolis 1325 (CHS: 1024,8,33,256)" ) |
| 98 | | ROMX_LOAD( "micr1325.bin", 0x0000, 0x0800, CRC(084af409) SHA1(342b8e214a8c4c2b014604e53c45ef1bd1c69ea3), ROM_BIOS(4) ) // Micropolis 1325 (http://stason.org/TULARC/pc/hard-drives-hdd/micropolis/1325-69MB-5-25-FH-MFM-ST506.html) |
| 117 | ROM_SYSTEM_BIOS( 4, "micr1325", "Micropolis 1325 (CHS: 1024,8,33,256)" ) |
| 118 | ROMX_LOAD( "micr1325.bin", 0x0000, 0x0800, CRC(084af409) SHA1(342b8e214a8c4c2b014604e53c45ef1bd1c69ea3), ROM_BIOS(5) ) // Micropolis 1325 (http://stason.org/TULARC/pc/hard-drives-hdd/micropolis/1325-69MB-5-25-FH-MFM-ST506.html) |
| 99 | 119 | ROM_END |
| 100 | 120 | |
| 101 | 121 | |
trunk/src/mess/machine/s1410.c
| r26120 | r26121 | |
| 161 | 161 | AM_RANGE(0xc3, 0xc3) AM_WRITENOP |
| 162 | 162 | ADDRESS_MAP_END |
| 163 | 163 | |
| 164 | |
| 164 | 165 | //------------------------------------------------- |
| 165 | 166 | // MACHINE_DRIVER( s1410 ) |
| 166 | 167 | //------------------------------------------------- |
| r26120 | r26121 | |
| 185 | 186 | return MACHINE_CONFIG_NAME( s1410 ); |
| 186 | 187 | } |
| 187 | 188 | |
| 189 | |
| 190 | |
| 188 | 191 | //************************************************************************** |
| 189 | 192 | // LIVE DEVICE |
| 190 | 193 | //************************************************************************** |
| r26120 | r26121 | |
| 199 | 202 | } |
| 200 | 203 | |
| 201 | 204 | #define S1410_CMD_CHECK_TRACK_FORMAT ( 0x05 ) |
| 205 | #define S1410_CMD_FORMAT_TRACK ( 0x06 ) |
| 206 | #define S1410_CMD_SEEK ( 0x0b ) |
| 202 | 207 | #define S1410_CMD_INIT_DRIVE_PARAMS ( 0x0c ) |
| 203 | 208 | #define S1410_CMD_FORMAT_ALT_TRACK ( 0x0E ) |
| 204 | 209 | #define S1410_CMD_WRITE_SEC_BUFFER ( 0x0F ) |
| r26120 | r26121 | |
| 215 | 220 | { |
| 216 | 221 | switch( command[ 0 ] ) |
| 217 | 222 | { |
| 223 | case S1410_CMD_FORMAT_TRACK: |
| 224 | { |
| 225 | lba = (command[1]&0x1f)<<16 | command[2]<<8 | command[3]; |
| 226 | |
| 227 | switch( m_sector_bytes ) |
| 228 | { |
| 229 | case 256: |
| 230 | blocks = 32; |
| 231 | break; |
| 232 | |
| 233 | case 512: |
| 234 | blocks = 17; |
| 235 | break; |
| 236 | } |
| 237 | |
| 238 | logerror("S1410: FORMAT TRACK at LBA %x for %x blocks\n", lba, blocks); |
| 239 | |
| 240 | int dataLength = blocks * m_sector_bytes; |
| 241 | UINT8 data[dataLength]; |
| 242 | memset(data, 0xc6, dataLength); |
| 243 | |
| 244 | WriteData(data, dataLength); |
| 245 | |
| 246 | m_phase = SCSI_PHASE_STATUS; |
| 247 | m_transfer_length = 0; |
| 248 | } |
| 249 | break; |
| 250 | |
| 251 | case S1410_CMD_SEEK: |
| 252 | lba = (command[1]&0x1f)<<16 | command[2]<<8 | command[3]; |
| 253 | |
| 254 | logerror("S1410: SEEK to LBA %x\n", lba); |
| 255 | |
| 256 | m_phase = SCSI_PHASE_STATUS; |
| 257 | m_transfer_length = 0; |
| 258 | break; |
| 259 | |
| 218 | 260 | case S1410_CMD_INIT_DRIVE_PARAMS: |
| 219 | 261 | m_phase = SCSI_PHASE_DATAOUT; |
| 220 | 262 | m_transfer_length = TRANSFERLENGTH_INIT_DRIVE_PARAMS; |
| r26120 | r26121 | |
| 253 | 295 | { |
| 254 | 296 | switch( command[ 0 ] ) |
| 255 | 297 | { |
| 298 | case S1410_CMD_FORMAT_TRACK: |
| 299 | if ((disk) && (blocks)) |
| 300 | { |
| 301 | while (dataLength > 0) |
| 302 | { |
| 303 | if (!hard_disk_write(disk, lba, data)) |
| 304 | { |
| 305 | logerror("S1410: HD write error!\n"); |
| 306 | } |
| 307 | lba++; |
| 308 | blocks--; |
| 309 | dataLength -= m_sector_bytes; |
| 310 | data += m_sector_bytes; |
| 311 | } |
| 312 | } |
| 313 | break; |
| 314 | |
| 256 | 315 | case S1410_CMD_INIT_DRIVE_PARAMS: |
| 257 | 316 | { |
| 258 | 317 | int sectorsPerTrack = 0; |