home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 10: Diskmags / nf_archive_10.iso / MAGS / ST_USER / 1990 / USERJA90.MSA / LISTINGS_FSFORMAT.S < prev    next >
Text File  |  1989-10-26  |  3KB  |  121 lines

  1. *    FastDisc single sided formatter
  2. *     By R.A.Waddilove
  3. *    Speeds up loading/saving by 50%
  4. *    Makes discs go twice as fast
  5.  
  6.     OPT O+            all optimising on
  7.  
  8.     MOVE.L 4(A7),A6        get base page in A6
  9.     MOVE.L $C(A6),D0    get text segment size
  10.     ADD.L $14(A6),D0    add data segment
  11.     ADD.L  $1C(A6),D0    add uninitialised bit
  12.     ADD.L #$100,D0        add base page length
  13.     ADDA.L D0,A6        buffer starts here
  14.  
  15.     PEA prompt(PC)       Print prompt
  16.     MOVE.W #9,-(A7)
  17.     TRAP #1              BDOS 9
  18.     ADDQ.L #6,A7          Tidy stack
  19.     MOVE #8,-(A7)        C_NECIN
  20.     TRAP #1            wait for keypress
  21.     ADDQ.L #2,A7
  22.  
  23.     PEA okmess(PC)       Print formatting message
  24.     MOVE.W #9,-(A7)
  25.     TRAP #1              BDOS 9
  26.     ADDQ.L #6,A7          Tidy stack
  27.  
  28.     MOVE #0,D7        FOR i=0 TO 79
  29. loop    MOVE #0,D0        format side 0
  30.     BSR format
  31.     CMPI #0,D0        everything ok?
  32.     BNE error
  33.     ADDQ #1,D7        NEXT track?
  34.     CMP #80,D7
  35.     BNE loop
  36.  
  37.     MOVE #2400,D0
  38.     MOVEA.L A6,A5        copy buffer address
  39. loop1    CLR.L (A5)+        zero buffer
  40.     DBRA D0,loop1
  41.  
  42. *     Zero directory
  43.     MOVE #0,D0        side 0
  44.     MOVE #1,D1        track 1
  45.     BSR write        zero track
  46.     CMPI #0,D0        everything ok?
  47.     BNE error
  48.  
  49. *    Create boot sector
  50.     MOVE #0,-(A7)        not executable boot sector
  51.     MOVE #2,-(A7)        80 track single side
  52.     MOVE.L #$1000001,-(A7)    random serial number
  53.     MOVE.L A6,-(A7)        buffer address
  54.     MOVE #18,-(A7)        _PROTOBT
  55.     TRAP #14        make prototype boot sector
  56.     ADDA.L #14,A7        tidy stack
  57.  
  58. *    Write boot sector
  59.     MOVE #0,D0        side 0
  60.     MOVE #0,D1        track 0
  61.     BSR write        write boot sector & FAT
  62.     CMPI #0,D0        everything ok?
  63.     BEQ exit
  64.  
  65. error    PEA errmess(PC)       Print error message
  66.     MOVE.W #9,-(A7)
  67.     TRAP #1              BDOS 9
  68.     ADDQ.L #6,A7          Tidy stack
  69.     MOVE #8,-(A7)        C_NECIN
  70.     TRAP #1            wait for keypress
  71.     ADDQ.L #2,A7        tidy stack
  72.  
  73. exit    MOVE.W #0,-(A7)      Return to Desktop
  74.     TRAP #1              BDOS 1
  75.  
  76. *********************************************************************
  77. * Write side D0, track D1, buffer A6
  78. *********************************************************************
  79. write    MOVE #9,-(A7)        9 sectors
  80.     MOVE D0,-(A7)        side D0
  81.     MOVE D1,-(A7)        track D1
  82.     MOVE #1,-(A7)        sector 1
  83.     MOVE #0,-(A7)        drive 0
  84.     MOVE.L #0,-(A7)        not used
  85.     MOVE.L A6,-(A7)        buffer address
  86.     MOVE #9,-(A7)        _FLOPWR
  87.     TRAP #14        write
  88.     ADDA.L #20,A7        tidy stack
  89.     RTS
  90.  
  91. *********************************************************************
  92. * Format side D0, track D7, buffer A6
  93. *********************************************************************
  94. format    MOVE #$E5E5,-(A7)    format code
  95.     MOVE.L #$87654321,-(A7)    magic number
  96.     MOVE #11,-(A7)        interleave factor
  97.     MOVE D0,-(A7)        side D0
  98.     MOVE D7,-(A7)        track D7
  99.     MOVE #9,-(A7)        9 sectors per track
  100.     MOVE #0,-(A7)        drive 0
  101.     MOVE.L #0,-(A7)        not used
  102.     MOVE.L A6,-(A7)        buffer address=A6
  103.     MOVE #10,-(A7)        _FLOPFMT
  104.     TRAP #14        format track
  105.     ADDA.L #26,A7        tidy stack
  106.     RTS
  107.  
  108.     EVEN
  109. prompt    DC.B "******* FastDisc Formatter *******",13,10
  110.     DC.B "Makes your discs go twice as fast!",13,10
  111.     DC.B " Single sided 80 track x 9 sector",13,10
  112.     DC.B " Insert disc to format in Drive A",13,10
  113.     DC.B " Then press a key...",0
  114.     EVEN
  115. okmess    DC.B 13,10," Formatting...",0
  116.     EVEN
  117. errmess    DC.B 13,10," An error has occurred!"
  118.     DC.B 13,10," Press a key to exit...",0
  119.     EVEN
  120.     END
  121.