2017-01-06 00:14:12 +00:00
2018-06-20 07:09:37 +00:00
var Module = typeof Module !== 'undefined' ? Module : { } ;
2017-01-06 00:14:12 +00:00
if ( ! Module . expectedDataFileDownloads ) {
Module . expectedDataFileDownloads = 0 ;
Module . finishedDataFileDownloads = 0 ;
}
Module . expectedDataFileDownloads ++ ;
( function ( ) {
var loadPackage = function ( metadata ) {
var PACKAGE _PATH ;
if ( typeof window === 'object' ) {
PACKAGE _PATH = window [ 'encodeURIComponent' ] ( window . location . pathname . toString ( ) . substring ( 0 , window . location . pathname . toString ( ) . lastIndexOf ( '/' ) ) + '/' ) ;
} else if ( typeof location !== 'undefined' ) {
// worker
PACKAGE _PATH = encodeURIComponent ( location . pathname . toString ( ) . substring ( 0 , location . pathname . toString ( ) . lastIndexOf ( '/' ) ) + '/' ) ;
} else {
throw 'using preloaded data can only be done on a web page or in a web worker' ;
}
2018-06-20 07:09:37 +00:00
var PACKAGE _NAME = 'fs65-atari8.data' ;
var REMOTE _PACKAGE _BASE = 'fs65-atari8.data' ;
2017-01-06 00:14:12 +00:00
if ( typeof Module [ 'locateFilePackage' ] === 'function' && ! Module [ 'locateFile' ] ) {
Module [ 'locateFile' ] = Module [ 'locateFilePackage' ] ;
Module . printErr ( 'warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)' ) ;
}
var REMOTE _PACKAGE _NAME = typeof Module [ 'locateFile' ] === 'function' ?
Module [ 'locateFile' ] ( REMOTE _PACKAGE _BASE ) :
( ( Module [ 'filePackagePrefixURL' ] || '' ) + REMOTE _PACKAGE _BASE ) ;
var REMOTE _PACKAGE _SIZE = metadata . remote _package _size ;
var PACKAGE _UUID = metadata . package _uuid ;
function fetchRemotePackage ( packageName , packageSize , callback , errback ) {
var xhr = new XMLHttpRequest ( ) ;
xhr . open ( 'GET' , packageName , true ) ;
xhr . responseType = 'arraybuffer' ;
xhr . onprogress = function ( event ) {
var url = packageName ;
var size = packageSize ;
if ( event . total ) size = event . total ;
if ( event . loaded ) {
if ( ! xhr . addedTotal ) {
xhr . addedTotal = true ;
if ( ! Module . dataFileDownloads ) Module . dataFileDownloads = { } ;
Module . dataFileDownloads [ url ] = {
loaded : event . loaded ,
total : size
} ;
} else {
Module . dataFileDownloads [ url ] . loaded = event . loaded ;
}
var total = 0 ;
var loaded = 0 ;
var num = 0 ;
for ( var download in Module . dataFileDownloads ) {
var data = Module . dataFileDownloads [ download ] ;
total += data . total ;
loaded += data . loaded ;
num ++ ;
}
total = Math . ceil ( total * Module . expectedDataFileDownloads / num ) ;
if ( Module [ 'setStatus' ] ) Module [ 'setStatus' ] ( 'Downloading data... (' + loaded + '/' + total + ')' ) ;
} else if ( ! Module . dataFileDownloads ) {
if ( Module [ 'setStatus' ] ) Module [ 'setStatus' ] ( 'Downloading data...' ) ;
}
} ;
xhr . onerror = function ( event ) {
throw new Error ( "NetworkError for: " + packageName ) ;
}
xhr . onload = function ( event ) {
if ( xhr . status == 200 || xhr . status == 304 || xhr . status == 206 || ( xhr . status == 0 && xhr . response ) ) { // file URLs can return 0
var packageData = xhr . response ;
callback ( packageData ) ;
} else {
throw new Error ( xhr . statusText + " : " + xhr . responseURL ) ;
}
} ;
xhr . send ( null ) ;
} ;
function handleError ( error ) {
console . error ( 'package error:' , error ) ;
} ;
2017-05-18 02:33:56 +00:00
var fetchedCallback = null ;
var fetched = Module [ 'getPreloadedPackage' ] ? Module [ 'getPreloadedPackage' ] ( REMOTE _PACKAGE _NAME , REMOTE _PACKAGE _SIZE ) : null ;
if ( ! fetched ) fetchRemotePackage ( REMOTE _PACKAGE _NAME , REMOTE _PACKAGE _SIZE , function ( data ) {
2017-01-06 00:14:12 +00:00
if ( fetchedCallback ) {
fetchedCallback ( data ) ;
fetchedCallback = null ;
} else {
fetched = data ;
}
} , handleError ) ;
function runWithFS ( ) {
function assert ( check , msg ) {
if ( ! check ) throw msg + new Error ( ) . stack ;
}
Module [ 'FS_createPath' ] ( '/' , 'include' , true , true ) ;
2018-06-20 07:09:37 +00:00
Module [ 'FS_createPath' ] ( '/include' , 'em' , true , true ) ;
Module [ 'FS_createPath' ] ( '/include' , 'mouse' , true , true ) ;
2017-01-06 00:14:12 +00:00
Module [ 'FS_createPath' ] ( '/include' , 'tgi' , true , true ) ;
Module [ 'FS_createPath' ] ( '/include' , 'geos' , true , true ) ;
Module [ 'FS_createPath' ] ( '/include' , 'sys' , true , true ) ;
2018-06-20 07:09:37 +00:00
Module [ 'FS_createPath' ] ( '/include' , 'joystick' , true , true ) ;
2017-01-06 00:14:12 +00:00
Module [ 'FS_createPath' ] ( '/' , 'asminc' , true , true ) ;
Module [ 'FS_createPath' ] ( '/' , 'cfg' , true , true ) ;
Module [ 'FS_createPath' ] ( '/' , 'lib' , true , true ) ;
Module [ 'FS_createPath' ] ( '/' , 'target' , true , true ) ;
2018-06-20 07:09:37 +00:00
Module [ 'FS_createPath' ] ( '/target' , 'atari' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target/atari' , 'util' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target/atari' , 'drv' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target/atari/drv' , 'tgi' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target/atari/drv' , 'mou' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target/atari/drv' , 'emd' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target/atari/drv' , 'joy' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target/atari/drv' , 'ser' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target' , 'atari5200' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target/atari5200' , 'drv' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target/atari5200/drv' , 'joy' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target' , 'atarixl' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target/atarixl' , 'drv' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target/atarixl/drv' , 'tgi' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target/atarixl/drv' , 'mou' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target/atarixl/drv' , 'emd' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target/atarixl/drv' , 'joy' , true , true ) ;
Module [ 'FS_createPath' ] ( '/target/atarixl/drv' , 'ser' , true , true ) ;
2017-01-06 00:14:12 +00:00
function DataRequest ( start , end , crunched , audio ) {
this . start = start ;
this . end = end ;
this . crunched = crunched ;
this . audio = audio ;
}
DataRequest . prototype = {
requests : { } ,
open : function ( mode , name ) {
this . name = name ;
this . requests [ name ] = this ;
Module [ 'addRunDependency' ] ( 'fp ' + this . name ) ;
} ,
send : function ( ) { } ,
onload : function ( ) {
var byteArray = this . byteArray . subarray ( this . start , this . end ) ;
this . finish ( byteArray ) ;
} ,
finish : function ( byteArray ) {
var that = this ;
Module [ 'FS_createDataFile' ] ( this . name , null , byteArray , true , true , true ) ; // canOwn this data in the filesystem, it is a slide into the heap that will never change
Module [ 'removeRunDependency' ] ( 'fp ' + that . name ) ;
this . requests [ this . name ] = null ;
}
} ;
var files = metadata . files ;
2018-06-20 07:09:37 +00:00
for ( var i = 0 ; i < files . length ; ++ i ) {
2017-01-06 00:14:12 +00:00
new DataRequest ( files [ i ] . start , files [ i ] . end , files [ i ] . crunched , files [ i ] . audio ) . open ( 'GET' , files [ i ] . filename ) ;
}
function processPackageData ( arrayBuffer ) {
Module . finishedDataFileDownloads ++ ;
assert ( arrayBuffer , 'Loading data file failed.' ) ;
assert ( arrayBuffer instanceof ArrayBuffer , 'bad input to processPackageData' ) ;
var byteArray = new Uint8Array ( arrayBuffer ) ;
var curr ;
// copy the entire loaded file into a spot in the heap. Files will refer to slices in that. They cannot be freed though
// (we may be allocating before malloc is ready, during startup).
if ( Module [ 'SPLIT_MEMORY' ] ) Module . printErr ( 'warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting' ) ;
var ptr = Module [ 'getMemory' ] ( byteArray . length ) ;
Module [ 'HEAPU8' ] . set ( byteArray , ptr ) ;
DataRequest . prototype . byteArray = Module [ 'HEAPU8' ] . subarray ( ptr , ptr + byteArray . length ) ;
var files = metadata . files ;
2018-06-20 07:09:37 +00:00
for ( var i = 0 ; i < files . length ; ++ i ) {
2017-01-06 00:14:12 +00:00
DataRequest . prototype . requests [ files [ i ] . filename ] . onload ( ) ;
}
2018-06-20 07:09:37 +00:00
Module [ 'removeRunDependency' ] ( 'datafile_fs65-atari8.data' ) ;
2017-01-06 00:14:12 +00:00
} ;
2018-06-20 07:09:37 +00:00
Module [ 'addRunDependency' ] ( 'datafile_fs65-atari8.data' ) ;
2017-01-06 00:14:12 +00:00
if ( ! Module . preloadResults ) Module . preloadResults = { } ;
Module . preloadResults [ PACKAGE _NAME ] = { fromCache : false } ;
if ( fetched ) {
processPackageData ( fetched ) ;
fetched = null ;
} else {
fetchedCallback = processPackageData ;
}
}
if ( Module [ 'calledRun' ] ) {
runWithFS ( ) ;
} else {
if ( ! Module [ 'preRun' ] ) Module [ 'preRun' ] = [ ] ;
Module [ "preRun" ] . push ( runWithFS ) ; // FS is not initialized yet, wait for it
}
2018-06-20 07:09:37 +00:00
Module [ 'removeRunDependency' ] ( 'fs65-atari8.js.metadata' ) ;
2017-01-06 00:14:12 +00:00
}
var REMOTE _METADATA _NAME = typeof Module [ 'locateFile' ] === 'function' ?
2018-06-20 07:09:37 +00:00
Module [ 'locateFile' ] ( 'fs65-atari8.js.metadata' ) :
( ( Module [ 'filePackagePrefixURL' ] || '' ) + 'fs65-atari8.js.metadata' ) ;
2017-01-06 00:14:12 +00:00
var xhr = new XMLHttpRequest ( ) ;
xhr . onreadystatechange = function ( ) {
if ( xhr . readyState === 4 && xhr . status === 200 ) {
loadPackage ( JSON . parse ( xhr . responseText ) ) ;
}
}
xhr . open ( 'GET' , REMOTE _METADATA _NAME , true ) ;
xhr . overrideMimeType ( 'application/json' ) ;
xhr . send ( null ) ;
if ( ! Module [ 'preRun' ] ) Module [ 'preRun' ] = [ ] ;
Module [ "preRun" ] . push ( function ( ) {
2018-06-20 07:09:37 +00:00
Module [ 'addRunDependency' ] ( 'fs65-atari8.js.metadata' ) ;
2017-01-06 00:14:12 +00:00
} ) ;
} ) ( ) ;