From e791011d7ba392442b82ba6fa18c38fda76259ab Mon Sep 17 00:00:00 2001 From: Brooke Chalmers Date: Wed, 22 Nov 2023 15:27:16 -0500 Subject: [PATCH] Restructure ROMs --- aiie/applesoft.bin | Bin 0 -> 10240 bytes aiie/char.bin.new.bin | Bin 9164 -> 0 bytes aiie/{char.bin => character.bin} | Bin aiie/firmware.bin | Bin 0 -> 3840 bytes aiie/monitor.bin | Bin 0 -> 2048 bytes src/systems/aiie/mod.rs | 18 ++++++++++++------ src/systems/aiie/roms.rs | 23 ++++++++++++++++------- 7 files changed, 28 insertions(+), 13 deletions(-) create mode 100644 aiie/applesoft.bin delete mode 100644 aiie/char.bin.new.bin rename aiie/{char.bin => character.bin} (100%) create mode 100644 aiie/firmware.bin create mode 100644 aiie/monitor.bin diff --git a/aiie/applesoft.bin b/aiie/applesoft.bin new file mode 100644 index 0000000000000000000000000000000000000000..7c515ab6a91d0c469ed4d9e3d32c23ccd405e64c GIT binary patch literal 10240 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 literal 0 HcmV?d00001 diff --git a/aiie/char.bin.new.bin b/aiie/char.bin.new.bin deleted file mode 100644 index c268030c37bf4d92904383ab17729c5180e9ea10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9164 zcmeHM%W51)6fK%TG(w26n8je4VQ7pAgBL~(#+YGN{ssSne?iLx0!hFS0$GG$$R>+` z4e{HuEnD73Nt2x+50osj%cAoOIk)QGI#oUG#32~Gm{!wO=TzO-nd#z6s_Mm+v&GVt zle%8jwVTzo+^(vNqNppuxMpru6tkjO=~%cWmiOzW!y?RTSCw*AZY~$>>b>o)?Y-Jz z8?KeBFD(|buddH8_GLdn9sI*@;qhYcf{!nDh+m1HmG@gp9KYWW6OR{*OX6=LsrwOI z-D*BAN0R53Tr1~_Q8}JFx4I}7uvChtUhmt)hjFEwOeUV1Ojh`rxN^B&y*De})_M5d zzvxEW+at+SV#$SI1wuFknIp6-7gbp;uvV5x-EYBkBohg)7Z!Y;4t4G?&ZEw9M>42@ z=To2md_0x<$J5E)YCMMSGq3CAQGt&Hx`_Q~B)Z8h<8nUUg@5GWqhLf_Q3DEqfhKs0 z8sM;hjPy$P*UJ~UPd*4^`aC%X`t4Cl#rcUC_3l>#K6+bT2Y>wNbt`X)fA#n+InLaE zb~A%(iiOob4qv{>wm0ANd-g%Rx)pw4A180_>mA$~zRmI#ujWgfKscCiD9nK6Oj^1* zSiB6fUax?s=SDMmQv~B3slxsm-+g)I@P@hRcs$Y` z9&eh*II|E>{LP)avLz>&#INQvHw^aMIy;=iu=%xX>-JaAtaHO93!jUoI$nf(eM=i*icw|gGGO;8~m``Lg zO06Z$xC2Y7qQVd(67{-_whD{8^v2aY9R@$M^6g91M zM7ULjrj?Eew+3xmZ5GiKHEq8mYFg=taBERbD;*JTO|WSX0YX#MwDRv#R^PPpUtz1g zX&(YvwxJ!e=Y6cO;-= zKrS>v#MFbFX+p+yArqP(;-Q&o#5L22Oe_Tx+aFpULs(Fq5=K=@7&JQxif$85OHCL} z!5ry{@iA#kY%R1jhNwlts1^x>W+p+=ZNh1B38U#6 c6Pg%9)WR6k!mw#!I5aPYsD&|Bvtf>Z0|kn8(*OVf diff --git a/aiie/char.bin b/aiie/character.bin similarity index 100% rename from aiie/char.bin rename to aiie/character.bin diff --git a/aiie/firmware.bin b/aiie/firmware.bin new file mode 100644 index 0000000000000000000000000000000000000000..c93511ce5d30f1446122f07d9684df8fcbfc7c1b GIT binary patch literal 3840 zcmZWseQ+Da72ng{$&zfxa^fT=ANc&$o@`~Jx@qFhnAQz6y_hT5scG_0rq?ob6sE(N zPTO%u?ZhRyjxZdRhBD(eFsMS;@wptxg+iP*!^Vzm%aW`mGjvKB8n+B8ZXjHt2?Qlk z-<~8Bz+>(1+qe6BZ{NOs?;Um$Ru0eN8tCquosfi%4Dpyn&L_e|;!JSTI3vycCod_9 z4!sk&SB3x0#!&DGO0`EUq3x=CVODQbJ7eg0hqa=&(G|L=cIiH~JJA{r9$`}L$$C0F zEk?V--YbEB#t=Z1cP2WFSX5j*+Zwr&+-!(ytI@2s8=KY63cCeXf`H&8Rp`1_%U`th{Sh*qbv$yxO6K zIJ3yBo!*_oP)6_Yw_q=y3vm{!g?M`2_u;(8AWR3CfvQp<0rVQm0GLq%ndV_^eg~W1 z!-4JQcd>VCENLLM&v>a!_MwA^<-6zPmYQ;A4k>s@v(|yssg}tEet$JVTEBY;OeznjC z)Gd($tO$BpSPWa}fW=@SMKa%ECG#RHMLaMA+`*ehY)}plHUzbcY*2d#es25&+Eqyx zB_(4{`>-YmhrZ!&D_ow+$4kF8EOobWP2FQYfQ3U>;V#{(M|Dk|Zp4Q#E_hjCL+Y&+ z7qPU5u)h&&$8dQ{8^iwfSbG2m>=mGre*;yxLh{((gyA3+(vAI_u;!|gwb;KIYo02} zV1F~#;L<3R@W{0|GD@oJ^cH;ha#aB*C{T~VF}1qtt_JMC8EfmR$gcPe7A9E4XA|_$*7_m}fxU zlC>k9C);m?I}h5=R}TCVj8CNzSnqkmsj}pmaqE87p|YU7^#t|KHx|qx9B%}3>6}%o z!>NXl>XgsT>kc~5ot_9E7l2Ls&Pv}^>33H8U6sDK()U&Re(2?yXny*+7&L#R%`|P2(9FQ^B>Y~4-wQF6%e@kt&z@O`rJg^9()lX!r&CCCVy%>q zAp@7)E*6;imJDa^ zxuR7kjOJ<2jmjGqjX8CX`elPxdyN_h3rH0V1n(-~Fq+ghJ4r#Z(rF$sm>oq9(t$j< z2w+2VG=I9Btr~;jp=u2nQjXZ{q8Y{wb9$@qI^DRIY;4iB711n679*^Dd67olmniD* z7R`_|t&!%Z5%zAtkCFzz7t?VOAG25(`;MlCq*M4!M*i30(;*&K3-2voqys+H8exUE zGcXdKUAFUGa0)^wEKva8-4FOMw$sY%%fiNt276y$PM?4`@M2mxkcTPZo;(OpA`VDg zjj#SNZSi66hXL=*v9#|f$b>%dSD8^CeDxvT+5!dAYne5{qnz-$ zEL10>Tsp28ZSv5PApnwaA_pg+S)Yx&l^b0F>qt z9j=S>xvU*#(FwsUBFjgNufhAAnGD8}QOMTORO-jnp4tG2DR* zShQYo20GkhRPh_UV?Eu=Sp0H`CrsnA@<&2-D=mVArTiy9+#! z(-3DO?qS4vwha-BwH`mef{5p1T6w;0++xBLFcX{-wq(H&U?|W?@;c#|FjG}9VgAEnFP=Bd{>~B zihWn_N;f4}!EK?Kk`FDrMq}dfZvQYA+Lrxb)3)VAH+f%F=DYRofyrqxL3vRTF8X8G zGUnZ%!K}wY@GNQ{upa=UaEUV`N>TWyBer7NtS>E{lr6M9arQA(;8b_Wwb?FJIOJ;?oUUfRIKkJ+mI0zo7q+ z(?3-A=({C2)b8os(cLtu?;)3hkbWT<2fYpBUZ**RsI%hfd^_Za=RWyq=s!tL3%0D}?T4Ektc{_XVZ>#NX1)5d<53xC*S^xk5 literal 0 HcmV?d00001 diff --git a/aiie/monitor.bin b/aiie/monitor.bin new file mode 100644 index 0000000000000000000000000000000000000000..cb6d7e1374e5c5d454be5f89de9d7a9fcd1c2b49 GIT binary patch literal 2048 zcmYjS4NP0t6~6WZW5^HA(gyOk-hgrJ&H+Pygp30uh34V8(yFj3O;+tGTDIqjO;eUh znKY?s>PI|Uwnr1XbW5}w&yVs@oY^dyN;AgXDb)2y@<#sr%iA$q zq&?}~bI$!a_xyb4T(24LOWWm2(deHO>SMM}S6%&!wgDT5QF_uDT@%Nv)8Zq)fd!eL z+9p2aNCP#Jt$}T1tBeE}wx@%ZM;z;QFy$q}R^Cw!nqC!b6&0m6!Ny6hYCq$s6kHYX zmAV8M=Ph0sv)RQGFMN(lZpa;O!EYBZo4Mc~_KM}-j#|`^w$gFRJ2HMagMXN&CFF#R zM#hISLcN0#8qPX?I&zjUbA8$huW0sq%W;rq<3YN}>AH?jrrDSq-ztO**qfPbh>QOY zF-nQJ$PbSx8NoS*vcfhQky6t(oAcQqP5Xb3?-UYr0qzesgiLdcw#ig4t{(qQ2Ij}d zG8(hI{uvi^eFkc!dNmnyi;MWB%t(?N;%8y5&j;5rGFjf3=9;C3aLb6r5Io`*4RNjn zce_@dC=r>O?(Ibi@)O!plu=E`_Eqr?wC2B5HWVq$KcTk9Q$I&rUOS1<%P$PP)$0|` zUz9KYYB)TLX2M~#sc%#5D{pMPaK3MI?fEx0UqFuam;A%)Ypwe?!oU6k+HmNQ{DghI!T9Xr~=k2Z~>8nj`9&35!?Fg}^Eu^ka>K`52NKPkwaLOURIPbjyXnei`XAwTjs3|G96w4^J^y_`jJomfXYqkASaZQ(Zg z+ozKsOz77ENE0)&^yA3)6aw1DzoA%4;xrxPKp`7>Nr`kTkrx#iX)7XMQ6l>lyelm~ zCDgzwCT99|xmu`|tAsjVO&%Y}6Z4ok_s;5)Abrd&d)ohi;naRweGw^^waRH)31KMm zIpuYY0p3^0HT#_T;W0Lgf0n~r3hJMtcU4tPsW-HFnlzb@JD*m}{bh;|O{D%;d5$NQ zXNNko3wBODMZX}oY^*A>!dn7kvoDxWtXDa{RL6cZo%l({tn~U=;s7!&f)7aiH*G% zi@Y~_kxWo}V~QB)x{uWBe4pOZXOtZSx+G zc5~#*_|rVi_?My&$rfPa&=Cq^DQN<75i7)*;6i2=XY>5C#GQah;6gqa;grq>OS-c` zXi!c-Y+`oS(N^9*VCQ?95ixv;^R3!ypx;Wq5U#J*QrsAdmaUP8!M)gC zFiDn+4#U1#4*y_Deu~93jrV5+cc6uDh6LW@`n0kuoDo``Zg)?Z-z@RzO5F0|RNn z3;EYPo%Jve3U-Pb$W!&&DtQV#lRqlD2lP}iH!Lf44m}^_*3 xg-wHH#!?Oa>-4+R?~JO~CU(9#`S!1?s=oBh>#x3Y<4V4&>LHV34rkl5{{e#!<7@x` literal 0 HcmV?d00001 diff --git a/src/systems/aiie/mod.rs b/src/systems/aiie/mod.rs index b1e63a7..7545a2a 100644 --- a/src/systems/aiie/mod.rs +++ b/src/systems/aiie/mod.rs @@ -299,9 +299,6 @@ impl SystemBuilder for AiieSystemB let peripheral_card = LoggingMemory::new(Box::new(NullMemory::new()), "Peripheral Card", 0xC100); - //let applesoft_interpreter = BlockMemory::from_file(0x2800, roms.applesoft); - //let monitor = BlockMemory::from_file(0x4000, roms.monitor); - let rom = BlockMemory::from_file(16128, roms.rom); let memory = BranchMemory::new() .map( @@ -361,9 +358,18 @@ impl SystemBuilder for AiieSystemB Box::new(io), // Box::new(LoggingMemory::new(Box::new(io), "I/O", 0xC000)), ) - .map(0xC100, Box::new(rom)); - //.map(0xD000, Box::new(applesoft_interpreter)) - //.map(0xF800, Box::new(monitor)); + .map( + 0xC100, + Box::new(BlockMemory::from_file(0x0F00, roms.firmware)), + ) + .map( + 0xD000, + Box::new(BlockMemory::from_file(0x2800, roms.applesoft)), + ) + .map( + 0xF800, + Box::new(BlockMemory::from_file(0x0800, roms.monitor)), + ); let cpu = Mos6502::new(Box::new(memory)); diff --git a/src/systems/aiie/roms.rs b/src/systems/aiie/roms.rs index 184179a..22cc00f 100644 --- a/src/systems/aiie/roms.rs +++ b/src/systems/aiie/roms.rs @@ -6,7 +6,14 @@ pub struct AiieSystemRoms { /// Character ROM. Used to generate the 7x8 character bitmaps. pub character: RomFile, - pub rom: RomFile, + /// Firmware ROM. Contains text drawing and I/O routines. + pub firmware: RomFile, + + /// AppleSoft BASIC ROM. Contains the BASIC interpreter and editor. + pub applesoft: RomFile, + + /// Monitor ROM. Contains reset vectors and the system monitor. + pub monitor: RomFile, } impl AiieSystemRoms { @@ -14,14 +21,16 @@ impl AiieSystemRoms { pub fn from_disk() -> Self { use crate::roms::DiskLoadable; - // let character = RomFile::from_file("aiie/char.bin"); - //let applesoft = RomFile::from_file("aiie/applesoft.bin"); - //let monitor = RomFile::from_file("aiie/monitor.bin"); - let rom = RomFile::from_file("aiie/appleiie.bin"); - let character = RomFile::from_file("aiie/char.bin"); + let character = RomFile::from_file("aiie/character.bin"); + let firmware = RomFile::from_file("aiie/firmware.bin"); + let applesoft = RomFile::from_file("aiie/applesoft.bin"); + let monitor = RomFile::from_file("aiie/monitor.bin"); + Self { character, - rom + firmware, + applesoft, + monitor, } } }