home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG008.ARK / FORMAT.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  4KB  |  172 lines

  1. ;************************************************************
  2. ;
  3. ;        FORMAT.  A PROGRAM FOR FORMATTING DISKETTES
  4. ;        IN THE IBM 3740 STANDARD FORMAT FOR USERS
  5. ;        OF THE TARBELL FLOPPY DISK INTERFACE.
  6.  
  7. ;************************************************************
  8.  
  9. ;        JAMES A. WILLIS, M.D.
  10. ;        3300 BARBERRY LN. SACTAMENTO CA. 95825
  11.  
  12. ;************************************************************
  13. ;        THIS PROGRAM IS INTENDED FOR SINGLE
  14. ;        DISK INSTALLATIONS AND WILL HALT
  15. ;        WHEN CALLED TO ALLOW THE USER TO INSERT
  16. ;        THE DISK TO BE FORMATTED.  THE USER THEN
  17. ;        MUST START THE PROGRAM AT LOCATION 0200H
  18. ;        MANUALLY.  THE PROGRAM WILL THEN FORMAT THE
  19. ;        DISK, HALTING AT THE END OF THE OPERATION.
  20. ;************************************************************
  21. ;        SUBROUTINE DESCRIPTIONS:
  22. ;        DISC: FORMATS EACH OF 77 TRACKS IN TURN
  23. ;        TRACK:  WRITES 1 TRACK, REG.D CONTAINS
  24. ;                TRACK NUMBER
  25. ;        IMAGE:  CREATES AN IMAGE OF THE INFORMATION
  26. ;                TO BE WRITTEN ON EACH TRACK IN CORE
  27. ;                STARTING AT LOACTION 1000H.
  28. ;                TRACK NUMBER IN REGISTER D., SECTOR
  29. ;            NUMBER IN REGISTER C.
  30. ;
  31. ;        NOTE:  THIS SOFTWARE SHOULD BE
  32. ;            READILY ADAPTABLE TO OTHER DISK
  33. ;            SYSTEMS BY RE-WRITING DISK DRIVER
  34. ;            ROUTINES IN SUBROUTINE TRACK.
  35. ;************************************************************
  36.             ORG 0100H
  37. START       HLT
  38. ;
  39. ;
  40.             ORG 0200H
  41. DISC        MVI D,0
  42.             MVI A,3
  43.             OUT 0F8H; OUT HOME
  44.             IN 0FCH; WAIT
  45. ;
  46. D1          CALL IMAGE
  47.             CALL TRACK
  48.             MOV A,D;TRACK#TOA
  49.             CPI 4CH; LAST TRACK?
  50.             JZ LAST
  51.             INR D
  52.             JMP D1
  53. ;
  54. LAST        HLT
  55. ;
  56. ;
  57. TRACK       LXI H,1000H
  58.             MOV A,D
  59.             OUT 0FBH;TRACK # DR
  60.             MVI A,13H; LOAD SEEK
  61.             OUT 0F8H; ISSUE SEEK
  62.             IN 0FCH;WAIT
  63.             MVI A,0F4H; WRITE TRACK COMMAND LOAD
  64.             OUT 0F8H;ISSUE WRITE TRACK
  65. ;
  66. WLOOP       IN 0FCH; WAIT
  67.             ORA A
  68.             JP DONE
  69.             MOV A,M
  70.             OUT 0FBH;DATA OUT
  71.             INX H
  72.             JMP WLOOP
  73. ;
  74. DONE        RET
  75. ;
  76. ;
  77. ;
  78. IMAGE       LXI H,1000H ;ORG OF DATA
  79.             MVI C,40
  80.             MVI B,0
  81.             CALL PUT
  82. ;
  83.             MVI C,6
  84.             MVI B,0
  85.             CALL PUT
  86. ;
  87.             MVI C,1
  88.             MVI B,0FCH
  89.             CALL PUT
  90. ;
  91.             MVI C,26
  92.             MVI B,0
  93.             CALL PUT
  94. ;
  95. ;SECTOR =1
  96.             MVI E,1;SET E=1 SECTOR1
  97. ;
  98. LOOP1       MVI C,6
  99.             MVI B,0
  100.             CALL PUT
  101. ;
  102.             MVI C,1
  103.             MVI B,0FEH;ID ADDRESS MARK
  104.             CALL PUT
  105. ;
  106.             MVI C,1
  107.             MOV B,D; TRACK 
  108.             CALL PUT
  109. ;
  110.             MVI C,1
  111.             MVI B,0
  112.             CALL PUT
  113. ;
  114.             MVI C,1
  115.             MOV B,E;SECTOR #
  116.             CALL PUT
  117. ;
  118.             MVI C,1
  119.             MVI B,0
  120.             CALL PUT
  121. ;
  122.             MVI C,1
  123.             MVI B,0F7H;2 CRC'S
  124.             CALL PUT
  125. ;
  126.             MVI C,11
  127.             MVI B,0
  128.             CALL PUT
  129. ;
  130.             MVI C,6
  131.             MVI B,0
  132.             CALL PUT
  133.             MVI C,1
  134.             MVI B,0FBH;DATA ADDRESS MARK
  135.             CALL PUT
  136. ;
  137.             MVI C,128
  138.             MVI B,0E5H;DATA E5
  139.             CALL PUT
  140. ;
  141.             MVI C,1
  142.             MVI B,0F7H; 2CRC'S
  143.             CALL PUT
  144. ;
  145.             MVI C,27
  146.             MVI B,0
  147.             CALL PUT
  148. ;
  149.             MOV A,E
  150.             CPI 26
  151.             JZ FINIS
  152.             INR E
  153.             JMP LOOP1
  154. ;
  155. ;
  156. FINIS       MVI C,255; FILL
  157.             MVI B,0
  158.             CALL PUT
  159.             RET
  160.  
  161. ;
  162. ;
  163. PUT         MOV A,C
  164.             CPI 0
  165.             RZ
  166.             MOV M,B
  167.             INX H
  168.             DCR C
  169.             JMP PUT
  170. ;
  171. ;
  172.