package Ġorg . j gl rx av pok . k ame boy . memory . car tr idget ypes Ċ Ċ import Ġorg . j gl rx av pok . k ame boy . help ful . as Unsigned Ċ import Ġorg . j gl rx av pok . k ame boy . help ful . set Bits Ċ import Ġorg . j gl rx av pok . k ame boy . memory . Car tr idge Ċ import Ġorg . j gl rx av pok . k ame boy . memory . Memory Component Ċ Ċ abstract Ġclass ĠCar tr idge Type : ĠMemory Component Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġaccepts ( address : ĠInt ): ĠBoolean ĊĊĠĠĠ Ġopen Ġfun Ġtick ( cycles : ĠInt ) Ġ{ Ġ} Ċ } Ċ Ċ class ĠROM Only ( val Ġcar tr idge : ĠCar tr idge ): ĠCar tr idge Type () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdata Ġ= Ġcar tr idge . raw Data ĊĊĠĠĠ Ġoverride Ġval Ġname Ġ= Ġ" ROM ĠOnly " ĊĊĠĠĠ Ġoverride Ġfun Ġwrite ( address : ĠInt , Ġvalue : ĠInt ) Ġ{ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġaccepts ( address : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġaddress Ġin Ġ 0 Ġuntil Ġ 0 x 8 0 0 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġread ( address : ĠInt ) Ġ= Ġdata [ address ]. as Unsigned () ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" ROM ĠOnly " ĊĠĠĠ Ġ} Ċ }