back to fun with pread.c

Well I know this topic keeps comming up over & over that the pread.c that I had used to build my Xenix on Qemu is long lost.

Anyways someone else was asking me for it, and I stumbled accross this Microsoft Memo:

http://support.microsoft.com/kb/100027

which means the device name I was listing was wrong… I’m unsure if it means in 2003 it change from what it was since 1991….

Anyways here is my new ‘pread’.

#include <stdio.h>
#include <stdlib.h>

define BUFFSIZE 1024*1024
void main(void)
{
FILE *disk;
FILE *ofile;
int disknumber;
char fname[255];
char oname[255];
char *buffer;
int rc;
int pass;
buffer=(char)malloc(BUFFSIZE); if(buffer==(char)NULL)
{printf("\nError allocating buffer!!\n");return;}
printf("please tell me the disk NUMBER that you want to read\n");
printf("for \\.\PhysicalDrive1 just answer 1\n\n:");
memset(fname,0x0,sizeof(fname));
scanf("%d",&disknumber);
sprintf(fname,"\\.\PhysicalDrive%d",disknumber);
printf("reading the device %s\n",fname);
disk=fopen(fname,"rb");
memset(oname,0x0,sizeof(oname));
printf("\nWhat is the output file name?\n\n:");
scanf("%s",oname);
ofile=fopen(oname,"wb");
if(ofile==NULL){printf("\n\nERROR with %s\n",oname);return;}
if(disk==NULL){printf("\n\nERROR with disk %s\n",fname);return;}
rc=5;
pass = 0;
while(rc!=0)
{
memset(buffer,0x0,sizeof(buffer));
rc=fread(buffer,1,BUFFSIZE,disk);
printf("\r%d\t%d:Megabytes processed",rc,pass);
fwrite(buffer,1,rc,ofile);
pass++;
}
fclose(disk);
fclose(ofile);
printf("\n\n\nDone!%c",7);
}

Virtual disks revisted…

Again for Linux/ OSX users, it’s no big deal as they have access to the ‘dd’ command. Well I was installing AT&T SYSVr4 when it hit me that you can somewhat convert physical disks with Virtual PC & Qemu…
linked disk1
In Virtual PC you can create a ‘virtual disk’ that links to a physical volume..
linked disk2

And again, just select a physical slave disk with your legacy OS already installed.

Once the disk is linked, re-run the utility and you can then convert the linked disk into a dynamic disk. Once you have your .vhd, you can use Qemu’s qemu-img tool to convert the disk image into qcow,qcow2 (Qemu) or even VMDK for VMWare. The syntax is pretty simple..

qemu-img convert –f vpc attsysv.vhd –O qcow attsysv.dsk

I’ve tested it with AT&T SYSVr4 & OS/2 1.3! Much to my amazement with the fixpacks, OS/2 1.3 will actually RUN on Virtual PC 2007. It’s a shame that IBM saw the SDK’s for OS/2 as a revenue generation opportunity, as it’s amazing how quick it is (once it’s done initializing….) but I guess that’s a given of any 16bit OS that’s written in assembly….

For the heck of it, here’s a screenshot.

OS/2 1.3 running from a linked disk

OS/2 1.3 running from a linked disk

 

Fun with Qemu & Large Disks….

I was playing around with NeXTSTEP under a snapshot of qemu and I noticed that my arrow keys were not working correctly. After a few hours of digging about I found the fix was easy enough:
-k en-us
That’s it, just append that to your boot string, and away you go! Another annoyance has been my quest to install AROS onto a P4 computer.. I picked up a new 320GB IDE disk (WD Caviar Blue) .. which the BIOS & AROS promptly refused to acknowledge corectly. Everything was going to hell until I gave up and read the manual. Once again it was simple, there is a jumper setting for ‘older’ OS’s to see only 32gb, and naturally the BIOS is now happier. If only I could say the same of AROS…