[Oberon] RISC.img format

Tomas Kral thomas.kral at email.cz
Sat Mar 19 16:09:26 CET 2016


Dear Paul,

I bought Pepino LX9 board recently. I am studying Project  Oberon 2013,
making my firsts steps. My earlier experience comes from Pascal and
Modula on ATARI-ST.

I asked a similar question about RISC.img format here, 
http://saanlima.com/forum/viewtopic.php?f=14&t=1280&sid=6771605d7bfdce198fa7d7cba611aab7

fdisk reports vfat and OBS partitons on my uSD card imaged with
RISC.img, size 256MB.

Having read chapters on file system - Files.Mod, FileDir.Mod,
I wish to know, if OBS partition grows somehow, so I can get more
sectors allocated on my 2GB uSD?

I also missed the point of media formating, as FileDir.Mod does not seem
to provide Format command in its ToolBox.

Many thanks.

-- 
Tomas Kral <thomas.kral at email.cz>


> 
> 
> Dear Oberoners,
> 
> I've been asked a couple of questions about the RISC.img SD-Card image
> downloadable from http://projectoberon.com for the FPGA RISC5 Oberon
> systems.  (If you can, please post questions publically rather than
> emailing me privately - otherwise I have to assume it's a private matter
> which is more time-consuming to deal with - if I can ever get to it - and
> doesn't benefit others.)
> 
> The RISC Oberon system boots from an SD-Card and uses it as its file
> system.  This filesystem is much simpler than common contemporary
> filesystems such as FAT, FAT32, NTFS, exFAT, EXT4 etc. and is not in any
> way compatible.  (On the original Ceres, the backup floppy disk format was
> very close to the FAT12 format, but with an altered directory to cope with
> long filenames, which were not in those days supported on FAT).
> 
> It would have been easy to make the RISC5 Oberon filesystem (including its
> reserved area for the bootfile) begin at offset 0 from the beginning of
> the SD-Card.  This would have dedicated the SD-Card to Oberon use, but
> simplified the bootloader.
> 
> Or alternatively, the Oberon filesystem could have perhaps been stored as
> a file in the FAT filesystem on the SD-Card, making it much more
> accessible to utilities running on other computers.  But this convenience
> would have come at a high cost: it would have made the bootloader much
> more complicated, and given many more possibilities for distracting
> problems in development.
> 
> In the end, it was decided to place the Oberon filesystem at a fixed
> offset from the beginning of the disk.  This was a trivial change to the
> bootloader, keeping it easily-understandable and within one block ram
> (BRAM) of the FPGA.
> 
> This meant that FAT-compatible data structures, and a reasonable-size and
> perhaps useful (256MB) FAT partition could still exist at the beginning of
> the disk.  If this FAT partition has nothing in it, it compresses very
> well and therefore does not significantly increase the RISC.img download
> time.
> 
> The MBR partition id for the Oberon filesystem was chosen as 0FFh, because
> the ids are historically rather a free-for-all and the filesystem is not
> exactly the same format as any that have gone before, even the ETH
> PC-based Oberon filesystems.  0FFh is clearly an arbitrary value, and also
> was only used by others for private data structures rather than for
> filesystems which were interoperable amongst systems.
> 
> Note that a lot of the motivation for this was defensive.  For example it
> makes it more difficult for the Oberon filesystem to be destroyed when the
> SD-Card is inserted in a Windows system.
> 
> When submitting some early additions to Peter de Wachter's RISC emulator
> 
> https://github.com/pdewacht/oberon-risc-emu
> 
> for emulated RS232 file transfer which he kindly incorporated, I also
> included a quick check on startup which allows the use of a disk image
> which only contains the Oberon file system (called .OBERON.FS in the
> Windows binary distribution of the emulator which I put on
> http://projectoberon.com).
> 
> This check is for the magic number 9B1EA38DH (FileDir.DirMark) which is at
> the beginning of the root directory sector.  Oberon uses a "parity" scheme
> for sector numbers, making all of them divisible by 29, so the first
> usable Oberon sector, number 29, begins at SD-Card sector offset 80002H. 
> This slightly odd value comes from the fact that SD-Cards have 512-byte
> sectors, but Oberon uses two of these (1K) for each Oberon sector, and
> that sector 0 is not used.
> 
> So if you are using a nice operating system and you know what you are
> doing (because it allows dangerous commands such as dd) you can extract
> the Oberon file system from the image with a command like (262145 = 40001H
> = 80002H * 512 DIV 1024)
> 
>   dd if=RISC.img of=.OBERON.FS  obs=1024 ibs=1024 skip=262145
> 
> and you can even (sudo) write it directly back to a real SD-Card with
> something like
> 
>   dd if=.OBERON.FS of=/dev/disk1 obs=1024 ibs=1024 seek=262145
> 
> The name .OBERON.FS was chosen to make it look like a system file, which
> would be totally destroyed if someone opened it and saved it with a text
> editor, for example.
> 
> Hope that's useful!
> Cheers,
> Paul
> 
> 
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon
> 
> 
> 
> 


More information about the Oberon mailing list