> MMCHADFS 0.15 = Add/update HADFS ROM and disk image to GoMMC/GoSDC card : ( :CloseAll:: 2C ctrl%31,mem%511:X%=ctrl%:Y%=X%256:fsid%=12:dataid%=128:in%=0 " F fx(0,1)<6:fx(130,0)=&FFFF:ver%=rm(rom%*65536+&FFF08008):cmd$="": A%=11 13:cmd$=cmd$+rm(rom%*65536+&FFF08000+A%): A% P# ver%<34:fsid%=128:dataid%=128 Z[:"1: Add HADFS ROM image"'"2: Add empty HADFS disk image"'"3: Reset Go"cmd$'"0: Exit" d A$=: "0123",A$): n A$="1":AddROM: x A$="2":AddDisk:  A$="3":ResetMMC:  A$="0": ; *AddROM:"Add/Update HADFS ROM image" &"Pathname to HADFS image: "hadfs$ 5in%=(hadfs$): in%=0:"Can't open '"hadfs$"'.": Gadd%=mmc_Find("HADFS",mem%): add%=0:add%=mmc_Find("HADFS*",mem%) P add%:add%=mem%!4:new%= add%=mmc_Add("HADFS",&4000,1,fsid%,mem%):new%= / add%=0:"Go"cmd$" full or unformatted.": ; mem%!8<>&4000:"Existing ROM image not &4000 bytes": -len%=(#in%+255)256:"Loading ......";: 46,8);h0(add%,6);:gbpb(4,in%,mem%,256,#in%) Bmmc_(&4103,mem%,add%,256):add%=add%+256:len%=len%-1:len%<1: +#in%:in%=0: new%:A%=mmc_Sort(0,mem%)  ; "+AddDisk:"Add HADFS disk partition": ,1"Disk image size: K";8,8);:""size% 6: size%<1 size%>&3FFFFE:"Must be 4194302K maximum." @ size%<&3FFFFF size%>0 J"Disk image name: "name$ T; mmc_Find(name$,mem%):"Disk image already exists.": ^&?mem%=0:mem%!1=size%*4:size%=!mem% h[add%=mmc_Add(name$,size%,3,dataid%,mem%):add%=0:"Can't add entry - Go"cmd$" full.": r,A%=mmc_Sort(0,mem%):cmd$+"DISC "+name$ |6"To select this image, use"'" *"cmd$"DISC "name$' g"To install a blank HADFS system,"'"select HADFS and use:"'" *INSTALL M $ D";size%;"K"'  ; ResetMMC cmd$+"CONFIG FSNR "+fsid% "cmd$+"CONFIG FSRM "+(rom%1) $"Press SPACE to reset computer" "After resetting, enter:" " *"cmd$"CONFIG FSNR 0" " *"cmd$"DISC "name$ : =32:-99 cmd$+"RESET"  : -CloseAll:in%=in%:in%:A%=in%:in%=0:#A% 'out%=out%:out%:A%=out%:out%=0:#A% & 0: :%ݤstr(A%,N%):A%?N%:A%?N%=13:=$A% D5ݤstr0(A%):A$:A$=str(A%,254):=A$,A$+0,0)-1) Nݤuc(A$):B$:A$="":="" X5B$=B$+(A$((A$<"@")&DF)):A$=A$,2):A$="":=B$ b#ݤh0(A%,N%)="0000000"+~A%,N%) l5ݤfx(A%,X%):Y%:Y%=X%256:=((&FFF4)&FFFF00)256 vTgbpb(A%,chn%,addr%,num%,ptr%):!X%=chn%:X%!1=addr%:X%!5=num%:X%!9=ptr%:&FFD1: 7ݤrm(!&F6):Y%:Y%=?&F8+&40:Y%&40:?&F7>&BF:?&F9=0 5!&F6<0:?&F7>&7F Y%=&3E:=(&FFB9)&FF =?!&F6 : #mmc_(action%,addr%,mmc%,num%) T!X%=&1212:X%!2=action%:X%?4=&01:X%!6=addr%:X%!10=mmc%:X%!14=num%:A%=&B0:&FFF1: : ݤmmc_Find(A$,mem%)  csz%,n%,l%,match% #mem%!0=0:mmc_(&4003,mem%,0,64) #mem%?8=13:$mem%<>"GoMMCCat":=0 csz%=mem%!16:csz%=0:=0 ,A$=uc(A$):A$,1)="*":l%=A$-1 l%=255 *n%=0::mmc_(&4003,mem%,&200+64*n%,64) +match%=uc(str0(mem%+16)),l%)=A$,l%)  .n%=n%+1:n%=csz% match%:match%:=n% =0 :  +ݤmmc_Add(name$,size%,type%,subt%,mem%) * csz%,free%,add% 4size%=(size%+511)-512 >#mem%!0=0:mmc_(&4003,mem%,0,64) H#mem%?8=13:$mem%<>"GoMMCCat":=0 R'mem%?8=0:csz%=mem%!16:free%=mem%!20 \7add%=free%-size%:add%>0:add%-&200<&240+csz%*64:=0 f?!mem%=type%:mem%?1=subt%:mem%!4=add%:mem%!8=size%:mem%!12=0 p'$(mem%+16)=name$:mem%?(16+name$)=0 z%mmc_(&4103,mem%,&200+64*csz%,64) $mmc_(&4103,mem%,add%-512+16,64) '$mem%="GoMMCEnt":mem%!8=0:mem%!12=0 !mmc_(&4103,mem%,add%-512,16) mmc_(&4003,mem%,0,64) $mem%!20=add%-&200:mem%!16=csz%+1 mmc_(&4103,mem%,0,64) ?!mem%=type%:mem%?1=subt%:mem%!4=add%:mem%!8=size%:mem%!12=0 -$(mem%+16)=name$:mem%?(16+name$)=0:=add% : ݤmmc_Sort(sort%,mem%)  swap%,diff%,csz%,n% #mem%!0=0:mmc_(&4003,mem%,0,32) #mem%?8=13:$mem%<>"GoMMCCat":=0 csz%=mem%!16:csz%<2:=1 :swap%=0: n%=0csz%-2 Hmmc_(&4003,mem%+00,512+64*n%,64):mmc_(&4003,mem%+64,&240+64*n%,64) $diff%=0:sort%:diff%=mem%!(sort%+64)-mem%!sort% A%=0::diff%=mem%?A%-mem%?(A%+64):A%=A%+1:A%=A%-12*(A%=4): diff% A%=64 .Z diff%>0:mmc_(&4103,mem%+00,&240+64*n%,64):mmc_(&4103,mem%+64,512+64*n%,64):swap%=1 8n%:swap%=0:=csz%