1: /*	physio.c	1.6	83/07/18	*/
   2: 
   3: #include <stdio.h>
   4: #include "cpmio.h"
   5: #include <sys/file.h>
   6: 
   7: /*
   8:  * Write physical sector to floppy disk file
   9:  */
  10: 
  11: putpsect(tr, sect, buf)
  12:     char buf[];
  13: {
  14: 
  15:     long newpos;
  16: 
  17:     if (sect > sectrk || sect < 1) {
  18:         fprintf(stderr, "putpsect: sector number out of range: %d\n",
  19:                                     sect);
  20:         return (EOF);
  21:     }
  22:     newpos = (long) (sect + (tr * sectrk) -1 ) * seclth;
  23:     if (lseek(fid, newpos, 0) == -1) {
  24:         perror("putpsect");
  25:         return (EOF);
  26:     }
  27:     if (write(fid, buf, seclth) == seclth)
  28:         return (1);
  29:     perror("putpsect");
  30:     fprintf(stderr, "track %d, sect %d\n", tr, sect);
  31:     return (EOF);
  32: }
  33: 
  34: /*
  35:  * Read physical sector from floppy disk file
  36:  */
  37: 
  38: getpsect(tr, sect, buf)
  39:     char buf[];
  40: {
  41: 
  42:     long newpos;
  43: 
  44:     if (sect > sectrk || sect < 1) {
  45:         fprintf("getpsect: sector number out of range: %d\n",sect);
  46:         return (EOF);
  47:     }
  48:     newpos = (long) (sect + (tr * sectrk) -1 ) * seclth;
  49:     if (lseek(fid, newpos, 0) == -1) {
  50:         perror("getpsect");
  51:         return (EOF);
  52:     }
  53:     if (read(fid, buf, seclth) != seclth) {
  54:         perror("getpsect");
  55:         fprintf(stderr, "track %d, sect %d\n", tr, sect);
  56:         return (EOF);
  57:     }
  58:     return (1);
  59: }
  60: 
  61: /*
  62:  * Initialize a new floppy disk file in "name",
  63:  * return its file pointer.
  64:  */
  65: 
  66: initcpm(name)
  67:     char *name;
  68: {
  69:     int f, i;
  70:     char buf[512];
  71: 
  72:     if ((f = open(name, O_CREAT|O_RDWR, 0644)) < 0)
  73:         return (EOF);
  74:     for (i=0; i<512; i++)
  75:         buf[i] = '\345';
  76:     /*
  77: 	 * Initialize (with 0xe5) the first four tracks
  78: 	 * on the `floppy'
  79: 	 */
  80:     for (i=0; i < (4*seclth*sectrk); i += 512)
  81:         write(f, buf, 512);
  82:     return (f);
  83: }

Defined functions

getpsect defined in line 38; used 1 times
initcpm defined in line 66; used 2 times
putpsect defined in line 11; used 1 times
Last modified: 1983-07-18
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 912
Valid CSS Valid XHTML 1.0 Strict