Initial revision
This commit is contained in:
		
							parent
							
								
									2bf16c5b2f
								
							
						
					
					
						commit
						4c265a7cc6
					
				
					 1 changed files with 41 additions and 0 deletions
				
			
		
							
								
								
									
										41
									
								
								mach/pmds/cv/pdp_cv.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								mach/pmds/cv/pdp_cv.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,41 @@
 | 
				
			||||||
 | 
					/* The format of the a.out files produced by the assemblers
 | 
				
			||||||
 | 
					   is machine dependent.
 | 
				
			||||||
 | 
					   This program acts as a gateway between two machines and it's effect
 | 
				
			||||||
 | 
					   is independent of the machine it executes on.
 | 
				
			||||||
 | 
					   The a.out file is assumed to be made on a pdp-11
 | 
				
			||||||
 | 
					   while the target machine is a Philip Microcomputer Development system
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main(argc,argv) char **argv ; {
 | 
				
			||||||
 | 
						char i_addr[4];
 | 
				
			||||||
 | 
						short count;
 | 
				
			||||||
 | 
						char i_count[2];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (argc != 3) {
 | 
				
			||||||
 | 
							fprintf(stderr,"Usage: %s pdp-a.out VU-pmds-a.out\n",argv[0]);
 | 
				
			||||||
 | 
							exit(-1);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (freopen(argv[1],"r",stdin)==NULL) {
 | 
				
			||||||
 | 
							perror(argv[1]);
 | 
				
			||||||
 | 
							exit(-1);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (freopen(argv[2],"w",stdout)==NULL) {
 | 
				
			||||||
 | 
							perror(argv[2]);
 | 
				
			||||||
 | 
							exit(-1);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						while (fread(&i_addr,sizeof i_addr,1,stdin)==1) {
 | 
				
			||||||
 | 
							putchar(i_addr[1]) ; putchar(i_addr[0]) ;
 | 
				
			||||||
 | 
							putchar(i_addr[3]) ; putchar(i_addr[2]) ;
 | 
				
			||||||
 | 
							if (fread(&i_count,sizeof i_count,1,stdin)!=1)
 | 
				
			||||||
 | 
								exit(fprintf(stderr,"foo\n"));
 | 
				
			||||||
 | 
							putchar(i_count[1]) ; putchar(i_count[0]) ;
 | 
				
			||||||
 | 
							count= ((i_count[1]&0377)<<8) | (i_count[0]&0377) ;
 | 
				
			||||||
 | 
							while (count--) {
 | 
				
			||||||
 | 
								putchar(getchar());
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue