home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol179 / cutils.lbr / SECTRAN.C < prev    next >
Text File  |  1985-02-09  |  1KB  |  37 lines

  1. /* Program to print a translation table based on the logged in drive. */
  2.  
  3. main()
  4. {
  5. int    logdrv,bios,seldrv,sectran,dphadr,xtbl,dpbadr;
  6. int    sec,maxsec,physec;
  7.  
  8. logdrv=peek(4);
  9. bios=getadr(1);
  10. seldrv=bios+24;
  11. sectran=bios+45;
  12. dphadr=call(seldrv,0,0,logdrv,0);
  13. printf("\n\nLogical to physical sector translation program");
  14. printf(" ver 1.0  C.B. Mueller 12-16-82\n\n");
  15. printf("Disk Parameter Header address = %x\n",dphadr);
  16. printf("Translation Table Address     = %x\n",xtbl=getadr(dphadr));
  17. printf("Disk Paramater Block Address  = %x\n",dpbadr=getadr(dphadr+10));
  18. printf("Logical Sectors per Track     = %dD\n\n",maxsec=peek(dpbadr));
  19.  
  20. sec = 0;
  21. for (sec=0; sec < maxsec; sec++) {
  22.     printf("logical= %2d physical = %2d\n",sec,
  23.         physec=(call(sectran,0,0,sec,xtbl)));
  24. }
  25. exit();
  26. }
  27.  
  28. getadr(lobyte)
  29. int lobyte;
  30. {
  31. int    lsbyte,msbyte,adr;
  32.  
  33. lsbyte=peek(lobyte);
  34. msbyte=peek(lobyte+1);
  35. adr = (msbyte * 0x100)+lsbyte;
  36. return(adr);
  37. }