import{aasr0}from"./chunk-7BAKXSVO.js";import{Base0,Iast0,qasx0,tasa0,yasz}from"./chunk-YLYWUMYM.js";import{JasG,OasF,gasW,kasV,lasX,ras$,tasl}from"./chunk-ATS7PSQG.js";import"./chunk-5XVCUSSZ.js";varE=2051,A0=E,O=E,u0=O-A0,N=classextendsx0{constructor(){super();this.cpuFrequency=1022727;this.sampleRate=this.cpuFrequency;this.cpuCyclesPerLine=65;this.cpuCyclesPerFrame=this.cpuCyclesPerLine*262;this.canvasWidth=280;this.numVisibleScanlines=192;this.numTotalScanlines=262;this.defaultROMSize=48896-2051;this.ram=newUint8Array(77824);this.cpu=newa0;this.grdirty=newArray(49152>>7);this.grparams={dirty:this.grdirty,grswitch:P,mem:this.ram};this.kbdlatch=0;this.soundstate=0;this.auxRAMselected=!1;this.auxRAMbank=1;this.writeinhibit=!0;this.bank2rdoffset=0;this.bank2wroffset=0;this.slots=newArray(8);this.fakeDrive={readROM:x=>{vara=this.cpu.getPC();if(a>=50688&&a<50944)switch(x){case0:return0;case1:returnE&255;case2:returnE>>8&255;default:return0}elseswitch(x){case0:returnthis.rom&&(console.log(`Loading program into Apple ][ RAM at $${O.toString(16)}`),this.ram.set(this.rom.slice(u0),O)),76;case1:return32;case3:return0;case5:return3;case7:return60;default:return0}},readConst:x=>0,read:x=>this.floatbus(),write:(x,a)=>{}};this.loadBIOS(newV().decode(X(atob(C0)))),this.connectCPUMemoryBus(this),this.bios[54170-(65536-this.bios.length)]=96}saveState(){return{c:this.cpu.saveState(),ram:this.ram.slice(),kbdlatch:this.kbdlatch,soundstate:this.soundstate,grswitch:this.grparams.grswitch,auxRAMselected:this.auxRAMselected,auxRAMbank:this.auxRAMbank,writeinhibit:this.writeinhibit,slots:this.slots.map(x=>x&&x.saveState&&x.saveState()),inputs:null}}loadState(x){this.cpu.loadState(x.c),this.ram.set(x.ram),this.kbdlatch=x.kbdlatch,this.soundstate=x.soundstate,this.grparams.grswitch=x.grswitch,this.auxRAMselected=x.auxRAMselected,this.auxRAMbank=x.auxRAMbank,this.writeinhibit=x.writeinhibit,this.setupLanguageCardConstants();for(vara=0;a<this.slots.length;a++)this.slots[a]&&this.slots[a].loadState&&this.slots[a].loadState(x.slots[a]);this.ap2disp.invalidate()}saveControlsState(){return{inputs:null,kbdlatch:this.kbdlatch}}loadControlsState(x){this.kbdlatch=x.kbdlatch}loadBIOS(x,a){x.length!=12288&&(console.log(`apple2 loadBIOS !!!WARNING!!!: BIOS wants length 0x3000, but BIOS '${a}' has length 0x${x.length.toString(16)}`),console.log("will load BIOS to end of memory anyway...")),this.bios=Uint8Array.from(x),this.ram.set(this.bios,65536-this.bios.length),this.ram[48896]=76,this.ram[49007]=1}loadROM(x){if(x.length==35*16*256){vara=newc0(this,x);this.slots[6]=a}elsesuper.loadROM(x),this.slots[6]=this.fakeDrive}reset(){super.reset(),this.auxRAMselected=!1,this.auxRAMbank=1,this.writeinhibit=!0,this.ram.fill(0,768,1024),this.skipboot()}skipboot(){for(varx=0;x<2e6&&(this.cpu.advanceClock(),this.cpu.getPC()>>8!=198);x++);for(varx=0;x<2e6&&(this.cpu.advanceClock(),!(this.cpu.getPC()>>8<198));x++);}readConst(x){if(x<49152)returnthis.ram[x];if(x>=53248)returnthis.auxRAMselected?x>=57344?this.ram[x]:this.ram[x+this.bank2rdoffset]:this.bios[x-(65536-this.bios.length)];if(x>=49408&&x<51200){vara=x>>8&7;return(this.slots[a]&&this.slots[a].readConst(x&255))|0}elsereturn0}read(x){if(x&=65535,x<49152||x>=53248)returnthis.readConst(x);if(x<49408){vara=x>>4&15;switch(a){case0:returnthis.kbdlatch;case1:this.kbdlatch&=127;break;case3:this.soundstate=this.soundstate^1;break;case5:(x&15)<8&&((x&1)!=0?this.grparams.grswitch|=1<<(x>>1&7):this.grparams.grswitch&=~(1<<(x>>1&7)));break;case6:switch(x&7){case1:case2:case3:returnthis.floatbus()&127;case4:case5:returnthis.floatbus()|128;default:returnthis.floatbus()}case7:if(x==49264)returnthis.floatbus()|128;case8:returnthis.doLanguageCardIO(x);case9:case10:case11:case12:case13:case14:case15:return(this.slots[a-8]&&this.slots[a-8].read(x&15))|0}}elseif(x>=49408&&x<51200){vara=x>>8&7;return(this.slots[a]&&this.slots[a].readROM(x&255))|0}returnthis.floatbus()}write(x,a){if(x&=65535,a&=255,x<49152)this.ram[x]=a,this.grdirty[x>>7]=1;els