home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / sourcecode / various / testchange.amos / testchange.amosSourceCode
AMOS Source Code  |  1993-01-08  |  1KB  |  47 lines

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