Mounting RW image on VICE

From Jay's Cafe' Wiki
Revision as of 13:33, 22 June 2018 by Jayctheriot (talk | contribs)
          • WARNING! This is a living document and information will change frequently. Please, subscribe for updates*****

Problem: Running ImageBBS v1.2a+ in VICE using tcpser incurs two problems: REL file corruption and datastream corruption using tcpser.

Hypothesis:

  1. Mount an msdos formatted image file or files to one or more of the available four drives to VICE. Method to be described below.
  2. Route emulated Swiftlink traffic to com port then have com port connected via TelBBS wire to a 2nd PC running BBS Server.

Thoughts:

  • Filesystem:
    • Mounting a directory in VICE allows the underlying operating system hosting VICE access to that directory. I feel this is what is causing the REL file difficulty. By mounting an "img" of the storage device, then access to the file system from the hosting system is denied. All access is through VICE.
  • Internet Connection:
    • I have witnessed datastream corruption in tcpser. The timing between VICE and the outside world doesn't work well consistently with tcpser. BBS Server is a known good. By routing the i/o through the host computers serial port then through the TelBBS wire, to a 2nd PC, you should be able to avoid this timing issue and provide a sustainable data stream.

Method: Run VICE v.3.2 on Ubuntu. Create SD Card with partitions using gparted. Partitions formatted as FAT32, 33MB. Block size of 512 Using DD, capture the image of the SD Card:

dd if=/dev/sd<Letter> of=<raw image filename.img>

To successfully mount the partitions, you need to know the offset. This is done by multiplying the valuse in the "Start" column by the I/O size, in this case, it is 512.

Disk BayouBBS_SD8.img: 14.9 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x10f541c2

Device	            	Start	End		Sectors		Size	Id	Type	offset	=512*Start
BayouBBS_SD8.img1	2048	69631		67584		33M	b	FAT32	1048576
BayouBBS_SD8.img2	69632	31115263	31045632	14.8G	5	Extended		 
BayouBBS_SD8.img5	71680	139263		67584		33M	b	FAT32	36700160
BayouBBS_SD8.img6	141312	208895		67584		33M	b	FAT32	72351744
BayouBBS_SD8.img7	210944	278527		67584		33M	b	FAT32	108003328
BayouBBS_SD8.img8	280576	348159		67584		33M	b	FAT32	143654912
BayouBBS_SD8.img9	350208	417791		67584		33M	b	FAT32	179306496
BayouBBS_SD8.img10	419840	31115263	30695424	14.7G	b	FAT32	214958080


for the sake of automation: parts.dat is a tab-delimited text file containing partition name and offset, one per line.

Such as:

system	1048576
plus_files	35651584
etc_user	72351744
ud-1	108003328
ud-2	143654912
mail	179306496
ux-dirs	214958080

mount_parts.sh contains the script to mount them all. (I should just have the parts.dat have the start and then have the script do the math!!)