home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / sourcecode / amos_tips / testchange / testchange.amos / testchange.amosSourceCode
Encoding:
AMOS Source Code  |  1992-03-01  |  1.4 KB  |  70 lines

  1. '*********************************************************** 
  2. '*                      TestChange.AMOS                    * 
  3. '*                 ï¿½1992 by Volker Stepprath               * 
  4. '*       Shows the number of diskchanges in any drive      * 
  5. '*  and if is a disk in diskdrive also a `Not a DOS Disk`  * 
  6. '*********************************************************** 
  7. '
  8. '**** Turn off request ****
  9. '
  10. Request Off 
  11. '
  12. '**** Define variables ****
  13. '
  14. Global DEVNAME$,DEVNAMEADR
  15. Global IOREQ$,IOREQADR
  16. Global UNIT
  17. '
  18. DEVNAME$="trackdisk.device"+Chr$(0)
  19. IOREQ$=Space$(80)+Chr$(0)
  20. UNIT=0
  21. '
  22. DEVNAMEADR=Varptr(DEVNAME$)
  23. IOREQADR=Varptr(IOREQ$)
  24. '
  25. '**** Install register ****
  26. '
  27. _REGISTER
  28. '
  29. '**** Open device **** 
  30. '
  31. XOPENDEV=Execall(-444)
  32. '
  33. '**** Call testroutines **** 
  34. '
  35. _CHANGENUM
  36. _CHANGESTATE
  37. '
  38. '**** Close device ****
  39. '
  40. XCLOSEDEV=Execall(-450)
  41. '
  42. End 
  43. '
  44. '**** Get number of diskchanges **** 
  45. '
  46. Procedure _CHANGENUM
  47.   Doke IOREQADR+28,13
  48.   XDOIO=Execall(-456)
  49.   CHANGENUM=(Leek(IOREQADR+32)-1)/2
  50.   Print "Diskchanges of drive"+Str$(UNIT)+":";CHANGENUM
  51. End Proc
  52. '
  53. '**** If is disk in drive ? **** 
  54. '
  55. Procedure _CHANGESTATE
  56.   Doke IOREQADR+28,14
  57.   XDOIO=Execall(-456)
  58.   CHANGESTATE=Leek(IOREQADR+32)
  59.   If CHANGESTATE Then N$="NO" Else N$="YES"
  60.   Print "Disk is in drive"+Str$(UNIT)+": "+N$
  61. End Proc
  62. '
  63. '**** Define register **** 
  64. '
  65. Procedure _REGISTER
  66.   Areg(0)=DEVNAMEADR
  67.   Areg(1)=IOREQADR
  68.   Dreg(0)=UNIT
  69.   Dreg(1)=0
  70. End Proc