home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 10: Diskmags / nf_archive_10.iso / MAGS / ST_USER / 1989 / USER0989.MSA / EXFORMAT.S < prev    next >
Text File  |  1989-07-02  |  3KB  |  100 lines

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