update 0.9.0
This commit is contained in:
parent
2276cd4df8
commit
fbf36a4fa5
36 changed files with 65950 additions and 22044 deletions
179
sae/filesys.js
Normal file
179
sae/filesys.js
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
/*-------------------------------------------------------------------------
|
||||
| SAE - Scripted Amiga Emulator
|
||||
| https://github.com/naTmeg/ScriptedAmigaEmulator
|
||||
|
|
||||
| Copyright (C) 2012-2016 Rupert Hausberger
|
||||
|
|
||||
| This program is free software; you can redistribute it and/or
|
||||
| modify it under the terms of the GNU General Public License
|
||||
| as published by the Free Software Foundation; either version 2
|
||||
| of the License, or (at your option) any later version.
|
||||
|
|
||||
| This program is distributed in the hope that it will be useful,
|
||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
| GNU General Public License for more details.
|
||||
|
|
||||
| Note: ported from WinUAE 3.2.x
|
||||
-------------------------------------------------------------------------*/
|
||||
|
||||
function SAEO_Filesys() {
|
||||
this.uci_set_defaults = function(uci, rdb) {
|
||||
//memset(uci, 0, sizeof(struct uaedev_config_info));
|
||||
//controller
|
||||
//if (uci.controller_type == 0)
|
||||
uci.controller_type = SAEC_Config_Mount_Controller_Type_MB_IDE;
|
||||
uci.controller_unit = 0; //IDE channel + unit
|
||||
uci.controller_media_type = 0; // 1 = CF IDE, 0 = normal
|
||||
uci.unit_feature_level = SAEC_Config_Mount_Controller_Level_ATA_2;
|
||||
uci.unit_special_flags = 0; //1 = force LBA48
|
||||
//file
|
||||
//uci.type = UAEDEV_HDF;
|
||||
//uci.file.name = "";
|
||||
//uci.file.size = 0;
|
||||
//uci.file.data = "";
|
||||
uci.readonly = false;
|
||||
//rdb
|
||||
//drive geometry
|
||||
uci.blocksize = 512;
|
||||
uci.cyls = 0; // calculated/corrected highcyl
|
||||
if (!rdb) {
|
||||
uci.surfaces = 1;
|
||||
uci.sectors = 32;
|
||||
}
|
||||
//partition
|
||||
uci.bootable = true;
|
||||
uci.automount = true;
|
||||
uci.unit = 0;
|
||||
uci.flags = 0;
|
||||
uci.devname = "";
|
||||
//DosEnvec
|
||||
uci.sectorsperblock = 1;
|
||||
if (!rdb)
|
||||
uci.reserved = 2;
|
||||
uci.interleave = false;
|
||||
uci.lowcyl = 0;
|
||||
uci.highcyl = 0; // zero if detected from size
|
||||
uci.buffers = 50;
|
||||
uci.bufmemtype = 1;
|
||||
uci.maxtransfer = 0x7fffffff;
|
||||
uci.mask = 0xffffffff;
|
||||
uci.bootpri = 0;
|
||||
uci.dostype = 0x444f5301;
|
||||
//filesystem
|
||||
uci.filesys = "";
|
||||
//DeviceNode
|
||||
uci.stacksize = 4000;
|
||||
uci.priority = -129;
|
||||
//uci.device_emu_unit = -1;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
|
||||
function allocuci(p, nr, idx, unitnum) {
|
||||
if (typeof unitnum == "undefined")
|
||||
unitnum = -1;
|
||||
var uci = p.mount.config[nr];
|
||||
if (idx >= 0) {
|
||||
/*var ui = mountinfo.ui[idx];
|
||||
ui.configureddrive = 1;*/
|
||||
|
||||
uci.configoffset = idx;
|
||||
uci.unitnum = unitnum;
|
||||
} else {
|
||||
uci.configoffset = -1;
|
||||
uci.unitnum = -1;
|
||||
}
|
||||
}
|
||||
|
||||
/*---------------------------------*/
|
||||
|
||||
function getunittype(uci) {
|
||||
return "HD" //uci.type == UAEDEV_CD ? "CD" : (uci.type == UAEDEV_TAPE ? "TAPE" : "HD");
|
||||
}
|
||||
function ismainboardide() {
|
||||
return SAEV_config.chipset.ide != 0;
|
||||
}
|
||||
/*function isa3000scsi() {
|
||||
return SAEV_config.chipset.mbdmac == 1;
|
||||
}
|
||||
function isa4000tscsi() {
|
||||
return SAEV_config.chipset.mbdmac == 2;
|
||||
}
|
||||
function iscdtvscsi() {
|
||||
return currprefs.cs_cdtvscsi != 0;
|
||||
}*/
|
||||
function add_mainboard_unit_init() {
|
||||
if (ismainboardide()) {
|
||||
SAEF_log("filesys.add_mainboard_unit_init() Initializing mainboard IDE");
|
||||
SAER.gayle.gayle_add_ide_unit(-1, null);
|
||||
}
|
||||
/*if (isa3000scsi()) {
|
||||
SAEF_log("filesys.add_mainboard_unit_init() Initializing A3000 mainboard SCSI");
|
||||
a3000_add_scsi_unit(-1, null, null);
|
||||
}
|
||||
if (isa4000tscsi()) {
|
||||
SAEF_log("filesys.add_mainboard_unit_init() Initializing A4000T mainboard SCSI");
|
||||
a4000t_add_scsi_unit(-1, null, null);
|
||||
}
|
||||
if (iscdtvscsi()) {
|
||||
SAEF_log("filesys.add_mainboard_unit_init() Initializing CDTV SCSI expansion");
|
||||
cdtv_add_scsi_unit(-1, null, null);
|
||||
}*/
|
||||
}
|
||||
|
||||
function add_ide_unit(type, unit, uci) {
|
||||
var added = false;
|
||||
if (type == SAEC_Config_Mount_Controller_Type_MB_IDE) {
|
||||
if (ismainboardide()) {
|
||||
SAEF_log("filesys.add_ide_unit() Adding mainboard IDE %s unit %d ('%s')", getunittype(uci), unit, uci.file.name);
|
||||
SAER.gayle.gayle_add_ide_unit(unit, uci);
|
||||
added = true;
|
||||
}
|
||||
}
|
||||
return added;
|
||||
}
|
||||
|
||||
function initialize_mountinfo() {
|
||||
// init all controllers first
|
||||
add_mainboard_unit_init();
|
||||
|
||||
for (var nr = 0; nr < 6; nr++) {
|
||||
var uci = SAEV_config.mount.config[nr].ci;
|
||||
var type = uci.controller_type;
|
||||
var unit = uci.controller_unit;
|
||||
var added = false;
|
||||
if (type == 0 || uci.file.size == 0)
|
||||
continue;
|
||||
if (type == SAEC_Config_Mount_Controller_Type_MB_IDE)
|
||||
added = add_ide_unit(type, unit, uci);
|
||||
else if (type == SAEC_Config_Mount_Controller_Type_PCMCIA_SRAM) {
|
||||
SAER.gayle.gayle_add_pcmcia_sram_unit(uci);
|
||||
added = true;
|
||||
}
|
||||
else if (type == SAEC_Config_Mount_Controller_Type_PCMCIA_IDE) {
|
||||
SAER.gayle.gayle_add_pcmcia_ide_unit(uci);
|
||||
added = true;
|
||||
}
|
||||
if (added)
|
||||
allocuci(SAEV_config, nr, -1);
|
||||
}
|
||||
}
|
||||
function free_mountinfo() {
|
||||
SAER.gayle.free_units();
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
|
||||
this.start_threads = function() {} //filesys_start_threads()
|
||||
|
||||
this.cleanup = function() { //filesys_cleanup()
|
||||
free_mountinfo();
|
||||
}
|
||||
|
||||
this.reset = function() { //filesys_reset()
|
||||
free_mountinfo();
|
||||
initialize_mountinfo();
|
||||
}
|
||||
this.prepare_reset = function() {} //filesys_prepare_reset()
|
||||
}
|
||||
Loading…
Reference in a new issue