home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 12: Textmags & Docs / nf_archive_12.iso / MAGS / SOURCES / ATARI_SRC.ZIP / atari source / HDX_BACK / HDX302.ST / BOOTSTOP.S < prev    next >
Encoding:
Text File  |  2001-02-09  |  1.5 KB  |  58 lines

  1. * bootstop.s
  2. * $Header$
  3.  
  4. *------------------------------------------------------------------------
  5. *                                    :
  6. *    Stop DMA boot from completing                    :
  7. *    Copyright 1986, Atari Corp.                    :
  8. *                                    :
  9. *  When written to a hard disk's boot sector, this code prevents    :
  10. *  the DMA bus from locking up on 20-Nov-1985-derived versions of    :
  11. *  TOS.                                    :
  12. *                                    :
  13. *  Modified 18-Feb-1988 by AKP to stop the boot sequence ONLY        :
  14. *  on 11/20 ROMs.                            :
  15. *                                    :
  16. *  Modified 02-Dec-1988 by ML to stop the boot sequence ONLY on ROMS    :
  17. *  built before 04/22/87.  The date of system build is checked instead    :
  18. *  of the OS version number.                        :
  19. *                                    :
  20. *------------------------------------------------------------------------
  21.  
  22. * $Log$
  23.  
  24.  
  25.  
  26. *+
  27. *  Stop the boot sequence in its tracks by
  28. *  jamming $100-$20 into D7 and returning.
  29. *  This causes the code in the BIOS routine
  30. *  `dmaboot' to quit early, thinking that it
  31. *  has scanned all eight devices, when in
  32. *  fact it has only (hopefully) touched the
  33. *  first device.
  34. *
  35. *-
  36.     .globl _bootstop
  37.     .globl _bootend
  38.  
  39. _sysbase = $4f2
  40.  
  41. _bootstop:
  42.     move.l    _sysbase,a0    ; get system header address
  43.     move.w    $1a(a0),d0    ; d0.w = YYYY of ROM date
  44.     swap    d0
  45.     move.w    $18(a0),d0    ; d0.l = YYYYMMDD of ROM date
  46.     cmp.l    #$19870422,d0    ; does this version of ROM need bootstop?
  47.     bcc.s    dontstop    ; nope, if OS is built on or after 4/22/87
  48.     move.w    #$100-$20,d7
  49. dontstop:
  50.     rts
  51.  
  52.     dc.b    '$Header$',0
  53.     even
  54.  
  55. _bootend:
  56.     dc.l    0
  57.  
  58.