home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <dos.h>
- #include <exec/types.h>
- #include <exec/memory.h>
-
- main()
- {
- int i,j,nb,nb1,nbr,dn,(*ROM_Load)(void *,int);
- ULONG f,f1;
- char *p,*rom,ml[10]={0x48,0xe7,0x7f,0xfe,0x78,0x04,0x20,0x6f,0x00,0x3c};
- unsigned char rp[98] = {
- 0x48,0xe7,0x7f,0xfe,0x2c,0x78,0x00,0x04,0x70,0x00,0x43,0xfa,0x00,0x42,
- 0x4e,0xae,0xfd,0xd8,0xc1,0x8d,0x24,0x3c,0x00,0x00,0x03,0xed,0x43,0xfa,
- 0x00,0x3e,0xc3,0x89,0x4e,0xad,0xff,0xe2,0x2f,0x00,0xc3,0x40,0x24,0x2f,
- 0x00,0x40,0x26,0x3c,0x00,0x02,0x00,0x00,0x4e,0xad,0xff,0xd6,0x22,0x1f,
- 0x4e,0xad,0xff,0xdc,0xcb,0x49,0x4e,0xae,0xfe,0x62,0x20,0x3c,0x00,0x00,
- 0x00,0x00,0x4c,0xdf,0x7f,0xfe,0x4e,0x75,0x64,0x6f,0x73,0x2e,0x6c,0x69,
- 0x62,0x72,0x61,0x72,0x79,0x00,0x4d,0x61,0x63,0x52,0x4f,0x4d,0x73,0x00
- };
-
- p = (char *)AllocMem(100000,MEMF_CLEAR);
- if (p) {
- rom = (char *)AllocMem(196608,MEMF_CLEAR);
- if (rom) {
- f = Open("A-Max Startup",MODE_OLDFILE);
- if (f) {
- nb = Read(f,p,100000);
- if (nb!=-1) {
- for (i=0; i<100000; i++) {
- if (*(p+i)==ml[0]) {
- for (j=1; j<10; j++) if (*(p+i+j)!=ml[j]) break;
- if (j==10) break;
- }
- }
- if (i!=100000) {
- ROM_Load = p+i;
- printf("Reading ROMs...");
- dn = (*ROM_Load)((void *)rom,0);
- printf("Done!\n");
- rp[68] = dn/16777216;
- rp[69] = (dn-(rp[68]*16777216))/65536;
- rp[70] = (dn%65536)/256;
- rp[71] = dn%256;
- for (j=0; j<98; j++) *(p+i+j) = rp[j];
- f1 = Open("A-Max Startup.patch",MODE_NEWFILE);
- if (f1) {
- nb1 = Write(f1,p,nb);
- if (nb1!=nb) printf("FastAMax error: couldn't write output file for patched A-Max\n");
- Close(f1);
- }
- else printf("FastAMax error: couldn't open output file for patched A-Max\n");
- if (rp[69]==0x69) nbr = 65536; else nbr = 131072;
- f1 = Open("MacROMs",MODE_NEWFILE);
- if (f1) {
- nb1 = Write(f1,rom,nbr);
- if (nb1!=nbr) printf("FastAMax error: couldn't write output file for Macintosh ROMs\n");
- Close(f1);
- }
- else printf("FastAMax error: couldn't open output file for Macintosh ROMs\n");
- }
- else printf("FastAMax error: couldn't identify A-Max program file\n");
- }
- else printf("FastAMax error: couldn't read A-Max program file\n");
- Close(f);
- }
- else printf("FastAMax error: couldn't open A-Max program file\n");
- FreeMem((APTR *)rom,196608);
- }
- else printf("FastAMax error: couldn't allocate memory for ROM image\n");
- FreeMem((APTR *)p,100000);
- }
- else printf("FastAMax error: couldn't allocate memory for A-Max program\n");
- }
-